X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=frontend%2Flibretro.c;h=06b66b11b561b7e8c0b867a66978f7e5fe34d1d5;hb=949ed5baf43dbb3ef3b51f43498f050e2d1e4c40;hp=7eb8480d8ffbad9eb2b221552e74739bb062f6e9;hpb=f8983cce17260bd0c570643734bc21ebd76e26c8;p=pcsx_rearmed.git diff --git a/frontend/libretro.c b/frontend/libretro.c index 7eb8480d..06b66b11 100644 --- a/frontend/libretro.c +++ b/frontend/libretro.c @@ -469,14 +469,14 @@ void retro_set_environment(retro_environment_t cb) { "pcsx_rearmed_bios", "Use BIOS; auto|HLE" }, { "pcsx_rearmed_region", "Region; auto|NTSC|PAL" }, { "pcsx_rearmed_memcard2", "Enable second memory card; disabled|enabled" }, - { "pcsx_rearmed_pad1type", "Pad 1 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad2type", "Pad 2 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad3type", "Pad 3 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad4type", "Pad 4 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad5type", "Pad 5 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad6type", "Pad 6 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad7type", "Pad 7 Type; default|none|standard|analog|dualshock|negcon" }, - { "pcsx_rearmed_pad8type", "Pad 8 Type; default|none|standard|analog|dualshock|negcon" }, + { "pcsx_rearmed_pad1type", "Pad 1 Type; standard|analog|dualshock|negcon|none" }, + { "pcsx_rearmed_pad2type", "Pad 2 Type; standard|analog|dualshock|negcon|none" }, + { "pcsx_rearmed_pad3type", "Pad 3 Type; none|standard|analog|dualshock|negcon" }, + { "pcsx_rearmed_pad4type", "Pad 4 Type; none|standard|analog|dualshock|negcon" }, + { "pcsx_rearmed_pad5type", "Pad 5 Type; none|standard|analog|dualshock|negcon" }, + { "pcsx_rearmed_pad6type", "Pad 6 Type; none|standard|analog|dualshock|negcon" }, + { "pcsx_rearmed_pad7type", "Pad 7 Type; none|standard|analog|dualshock|negcon" }, + { "pcsx_rearmed_pad8type", "Pad 8 Type; none|standard|analog|dualshock|negcon" }, { "pcsx_rearmed_multitap1", "Multitap 1; auto|disabled|enabled" }, { "pcsx_rearmed_multitap2", "Multitap 2; auto|disabled|enabled" }, { "pcsx_rearmed_negcon_deadzone", "NegCon Twist Deadzone (percent); 0|5|10|15|20|25|30" }, @@ -500,6 +500,7 @@ void retro_set_environment(retro_environment_t cb) { "pcsx_rearmed_show_bios_bootlogo", "Show Bios Bootlogo(Breaks some games); disabled|enabled" }, { "pcsx_rearmed_spu_reverb", "Sound: Reverb; enabled|disabled" }, { "pcsx_rearmed_spu_interpolation", "Sound: Interpolation; simple|gaussian|cubic|off" }, + { "pcsx_rearmed_idiablofix", "Diablo Music Fix; disabled|enabled" }, { "pcsx_rearmed_pe2_fix", "Parasite Eve 2/Vandal Hearts 1/2 Fix; disabled|enabled" }, { "pcsx_rearmed_inuyasha_fix", "InuYasha Sengoku Battle Fix; disabled|enabled" }, { NULL, NULL }, @@ -819,7 +820,7 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code) // cheat funcs are destructive, need a copy.. strncpy(buf, code, sizeof(buf)); buf[sizeof(buf) - 1] = 0; - + //Prepare buffered cheat for PCSX's AddCheat fucntion. int cursor=0; int nonhexdec=0; @@ -833,7 +834,7 @@ void retro_cheat_set(unsigned index, bool enabled, const char *code) } cursor++; } - + if (index < NumCheats) ret = EditCheat(index, "", buf); @@ -1557,6 +1558,17 @@ static void update_variables(bool in_flight) Config.RCntFix = 1; } + var.value = "NULL"; + var.key = "pcsx_rearmed_idiablofix"; + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) || var.value) + { + if (strcmp(var.value, "disabled") == 0) + spu_config.idiablofix = 0; + else if (strcmp(var.value, "enabled") == 0) + spu_config.idiablofix = 1; + } + var.value = "NULL"; var.key = "pcsx_rearmed_inuyasha_fix"; @@ -1581,7 +1593,7 @@ static void update_variables(bool in_flight) } else{ //not yet running - + //bootlogo display hack if (found_bios) { var.value = "NULL"; @@ -1881,9 +1893,12 @@ static int init_memcards(void) struct retro_variable var = { .key="pcsx_rearmed_memcard2", .value=NULL }; static const char CARD2_FILE[] = "pcsx-card2.mcd"; - McdDisable[0] = 0; - // Disable memcard 2 by default - McdDisable[1] = 1; + // Memcard2 will be handled and is re-enabled if needed using core + // operations. + // Memcard1 is handled by libretro, doing this will set core to + // skip file io operations for memcard1 like SaveMcd + snprintf(Config.Mcd1, sizeof(Config.Mcd1), "none"); + snprintf(Config.Mcd2, sizeof(Config.Mcd2), "none"); init_memcard(Mcd1Data); // Memcard 2 is managed by the emulator on the filesystem, // There is no need to initialize Mcd2Data like Mcd1Data. @@ -1916,8 +1931,10 @@ static void loadPSXBios(void) unsigned useHLE = 0; const char *bios[] = { - "SCPH101", "SCPH7001", "SCPH5501", "SCPH1001", - "scph101", "scph7001", "scph5501", "scph1001" + "SCPH101", "scph101", + "SCPH5501", "scph5501", + "SCPH7001", "scph7001", + "SCPH1001", "scph1001" }; struct retro_variable var = { @@ -1987,7 +2004,7 @@ void retro_init(void) psxUnmapHook = pl_vita_munmap; #endif ret = emu_core_preinit(); -#ifdef _3DS +#ifdef _3DS /* emu_core_preinit sets the cpu to dynarec */ if(!__ctr_svchax) Config.Cpu = CPU_INTERPRETER; @@ -2007,7 +2024,7 @@ void retro_init(void) #else vout_buf = malloc(VOUT_MAX_WIDTH * VOUT_MAX_HEIGHT * 2); #endif - + vout_buf_ptr = vout_buf; loadPSXBios();