From: notaz Date: Mon, 23 Sep 2013 23:31:45 +0000 (+0300) Subject: libretro: sound fix and a few options X-Git-Tag: v1.90~1 X-Git-Url: https://notaz.gp2x.de/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=27f190ea0097fa6a6f51bfacfd38a984d797e59b;p=picodrive.git libretro: sound fix and a few options --- diff --git a/platform/libretro.c b/platform/libretro.c index 49038471..f3252ab5 100644 --- a/platform/libretro.c +++ b/platform/libretro.c @@ -292,6 +292,8 @@ void retro_set_environment(retro_environment_t cb) //{ "region", "Region; Auto|NTSC|PAL" }, { "picodrive_input1", "Input device 1; 3 button pad|6 button pad|None" }, { "picodrive_input2", "Input device 2; 3 button pad|6 button pad|None" }, + { "picodrive_sprlim", "No sprite limit; disabled|enabled" }, + { "picodrive_ramcart", "MegaCD RAM cart; disabled|enabled" }, #ifdef DRC_SH2 { "picodrive_drc", "Dynamic recompilers; enabled|disabled" }, #endif @@ -704,7 +706,7 @@ bool retro_load_game(const struct retro_game_info *info) PicoWriteSound = snd_write; memset(sndBuffer, 0, sizeof(sndBuffer)); PsndOut = sndBuffer; - PsndRerate(1); + PsndRerate(0); return true; } @@ -799,6 +801,24 @@ static void update_variables(void) if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) PicoSetInputDevice(1, input_name_to_val(var.value)); + var.value = NULL; + var.key = "picodrive_sprlim"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { + if (strcmp(var.value, "enabled") == 0) + PicoOpt |= POPT_DIS_SPRITE_LIM; + else + PicoOpt &= ~POPT_DIS_SPRITE_LIM; + } + + var.value = NULL; + var.key = "picodrive_ramcart"; + if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value) { + if (strcmp(var.value, "enabled") == 0) + PicoOpt |= POPT_EN_MCD_RAMCART; + else + PicoOpt &= ~POPT_EN_MCD_RAMCART; + } + #ifdef DRC_SH2 var.value = NULL; var.key = "picodrive_drc";