add --slot1-no8000prot, fixes #183

This commit is contained in:
zeromus 2019-01-13 14:51:32 -05:00
parent 066366184c
commit 9b1ce0efc3
4 changed files with 13 additions and 4 deletions

View File

@ -516,6 +516,7 @@ extern struct TCommonSettings
, PatchSWI3(false) , PatchSWI3(false)
, UseExtFirmware(false) , UseExtFirmware(false)
, UseExtFirmwareSettings(false) , UseExtFirmwareSettings(false)
, RetailCardProtection8000(true)
, BootFromFirmware(false) , BootFromFirmware(false)
, DebugConsole(false) , DebugConsole(false)
, EnsataEmulation(false) , EnsataEmulation(false)
@ -580,6 +581,7 @@ extern struct TCommonSettings
bool SWIFromBIOS; bool SWIFromBIOS;
bool PatchSWI3; bool PatchSWI3;
bool RetailCardProtection8000;
bool UseExtFirmware; bool UseExtFirmware;
bool UseExtFirmwareSettings; bool UseExtFirmwareSettings;
char ExtFirmwarePath[MAX_PATH]; char ExtFirmwarePath[MAX_PATH];

View File

@ -63,6 +63,7 @@ u32 Slot1Comp_Rom::read()
//feature of retail carts: //feature of retail carts:
//B7 "Can be used only for addresses 8000h and up, smaller addresses will be silently redirected to address `8000h+(addr AND 1FFh)`" //B7 "Can be used only for addresses 8000h and up, smaller addresses will be silently redirected to address `8000h+(addr AND 1FFh)`"
if(CommonSettings.RetailCardProtection8000)
if(address < 0x8000) if(address < 0x8000)
address = (0x8000 + (address & 0x1FF)); address = (0x8000 + (address & 0x1FF));

View File

@ -61,6 +61,7 @@ CommandLine::CommandLine()
, _slot1(NULL) , _slot1(NULL)
, _slot1_fat_dir(NULL) , _slot1_fat_dir(NULL)
, _slot1_fat_dir_type(false) , _slot1_fat_dir_type(false)
, _slot1_no8000prot(0)
#ifdef HAVE_JIT #ifdef HAVE_JIT
, _cpu_mode(-1) , _cpu_mode(-1)
, _jit_size(-1) , _jit_size(-1)
@ -156,6 +157,7 @@ ENDL
" Device type to be used SLOT-1; default RETAILAUTO" ENDL " Device type to be used SLOT-1; default RETAILAUTO" ENDL
" --preload-rom precache ROM to RAM instead of streaming from disk" ENDL " --preload-rom precache ROM to RAM instead of streaming from disk" ENDL
" --slot1-fat-dir DIR Directory to mount for SLOT-1 flash cards" ENDL " --slot1-fat-dir DIR Directory to mount for SLOT-1 flash cards" ENDL
" --slot1_no8000prot Disables retail card copy protection <8000 feature" ENDL
ENDL ENDL
"Arguments affecting contents of SLOT-2:" ENDL "Arguments affecting contents of SLOT-2:" ENDL
" --cflash-image IMG_FILE Mounts cflash in SLOT-2 with specified image file" ENDL " --cflash-image IMG_FILE Mounts cflash in SLOT-2 with specified image file" ENDL
@ -283,6 +285,8 @@ bool CommandLine::parse(int argc,char **argv)
{ "slot1", required_argument, NULL, OPT_SLOT1}, { "slot1", required_argument, NULL, OPT_SLOT1},
{ "preload-rom", no_argument, &_load_to_memory, 1}, { "preload-rom", no_argument, &_load_to_memory, 1},
{ "slot1-fat-dir", required_argument, NULL, OPT_SLOT1_FAT_DIR}, { "slot1-fat-dir", required_argument, NULL, OPT_SLOT1_FAT_DIR},
//and other slot-1 option
{ "slot1-no8000prot", no_argument, &_slot1_no8000prot, 1},
//slot-2 contents //slot-2 contents
{ "cflash-image", required_argument, NULL, OPT_SLOT2_CFLASH_IMAGE}, { "cflash-image", required_argument, NULL, OPT_SLOT2_CFLASH_IMAGE},
@ -433,6 +437,7 @@ bool CommandLine::parse(int argc,char **argv)
#endif #endif
if(_fw_boot) CommonSettings.BootFromFirmware = true; if(_fw_boot) CommonSettings.BootFromFirmware = true;
if(_bios_swi) CommonSettings.SWIFromBIOS = true; if(_bios_swi) CommonSettings.SWIFromBIOS = true;
if(_slot1_no8000prot) CommonSettings.RetailCardProtection8000 = false;
if(_spu_sync_mode != -1) CommonSettings.SPU_sync_mode = _spu_sync_mode; if(_spu_sync_mode != -1) CommonSettings.SPU_sync_mode = _spu_sync_mode;
if(_spu_sync_method != -1) CommonSettings.SPU_sync_method = _spu_sync_method; if(_spu_sync_method != -1) CommonSettings.SPU_sync_method = _spu_sync_method;
if(_spu_advanced) CommonSettings.spu_advanced = true; if(_spu_advanced) CommonSettings.spu_advanced = true;

View File

@ -61,6 +61,7 @@ public:
std::string console_type; std::string console_type;
std::string slot1_fat_dir; std::string slot1_fat_dir;
bool _slot1_fat_dir_type; bool _slot1_fat_dir_type;
int _slot1_no8000prot;
int disable_sound; int disable_sound;
int disable_limiter; int disable_limiter;
int windowed_fullscreen; int windowed_fullscreen;