From: Twinaphex Date: Thu, 23 Aug 2018 10:01:47 +0000 (+0200) Subject: Merge pull request #171 from malikolivier/support-memcard2 X-Git-Tag: r24l~766 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;ds=inline;h=7be95fd4c7023ef6143103e4f785c7368744153c;p=pcsx_rearmed.git Merge pull request #171 from malikolivier/support-memcard2 Support memcard2 --- 7be95fd4c7023ef6143103e4f785c7368744153c diff --cc frontend/libretro.c index a88b40b6,4816b628..f9accf2b --- a/frontend/libretro.c +++ b/frontend/libretro.c @@@ -1807,12 -1638,44 +1808,47 @@@ static void check_system_specs(void environ_cb(RETRO_ENVIRONMENT_SET_PERFORMANCE_LEVEL, &level); } + static int init_memcards(void) + { + int ret = 0; + const char *dir; + 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; + init_memcard(Mcd1Data); + // Memcard 2 is managed by the emulator on the filesystem, + // There is no need to initialize Mcd2Data like Mcd1Data. + + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { + SysPrintf("Memcard 2: %s\n", var.value); + if (memcmp(var.value, "enabled", 7) == 0) { + if (environ_cb(RETRO_ENVIRONMENT_GET_SAVE_DIRECTORY, &dir) && dir) { + if (strlen(dir) + strlen(CARD2_FILE) + 2 > sizeof(Config.Mcd2)) { + SysPrintf("Path '%s' is too long. Cannot use memcard 2. Use a shorter path.\n", dir); + ret = -1; + } else { + McdDisable[1] = 0; + snprintf(Config.Mcd2, sizeof(Config.Mcd2), "%s/%s", dir, CARD2_FILE); + SysPrintf("Use memcard 2: %s\n", Config.Mcd2); + } + } else { + SysPrintf("Could not get save directory! Could not create memcard 2."); + ret = -1; + } + } + } + return ret; + } + void retro_init(void) { - const char *bios[] = { "SCPH101", "SCPH7001", "SCPH5501", "SCPH1001" }; + const char *bios[] = { + "SCPH101", "SCPH7001", "SCPH5501", "SCPH1001", + "scph101", "scph7001", "scph5501", "scph1001" + }; const char *dir; char path[256]; int i, ret;