Fix timing when changing from PAL/Dendy to NTSC
- Happens when starting with PAL/Dendy region and changing to NTSC can cause frame to get stuck in 50 Hz - using RETRO_ENVIRONMENT_SET_SYSTEM_AV_INFO should remedy this.
This commit is contained in:
@@ -1107,11 +1107,14 @@ static void set_apu_channels(int chan)
|
|||||||
static void check_variables(bool startup)
|
static void check_variables(bool startup)
|
||||||
{
|
{
|
||||||
struct retro_variable var = {0};
|
struct retro_variable var = {0};
|
||||||
int audio_video_updated = 0;
|
|
||||||
bool palette_updated = false;
|
bool palette_updated = false;
|
||||||
char key[256];
|
char key[256];
|
||||||
int i, enable_apu;
|
int i, enable_apu;
|
||||||
|
|
||||||
|
/* 1 = Performs only geometry update: e.g. overscans */
|
||||||
|
/* 2 = Performs video/geometry update when needed and timing changes: e.g. region and filter change */
|
||||||
|
int audio_video_updated = 0;
|
||||||
|
|
||||||
var.key = "fceumm_ramstate";
|
var.key = "fceumm_ramstate";
|
||||||
|
|
||||||
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
|
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
|
||||||
@@ -1141,7 +1144,10 @@ static void check_variables(bool startup)
|
|||||||
else if (strcmp(var.value, "monochrome") == 0)
|
else if (strcmp(var.value, "monochrome") == 0)
|
||||||
use_ntsc = NTSC_MONOCHROME;
|
use_ntsc = NTSC_MONOCHROME;
|
||||||
if (use_ntsc != orig_value)
|
if (use_ntsc != orig_value)
|
||||||
|
{
|
||||||
|
ResetPalette();
|
||||||
audio_video_updated = 2;
|
audio_video_updated = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
#endif /* HAVE_NTSC_FILTER */
|
#endif /* HAVE_NTSC_FILTER */
|
||||||
|
|
||||||
@@ -1282,7 +1288,7 @@ static void check_variables(bool startup)
|
|||||||
if (newval != use_overscan)
|
if (newval != use_overscan)
|
||||||
{
|
{
|
||||||
use_overscan = newval;
|
use_overscan = newval;
|
||||||
geometry_update = true;
|
audio_video_updated = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1367,7 +1373,10 @@ static void check_variables(bool startup)
|
|||||||
else if (!strcmp(var.value, "Dendy"))
|
else if (!strcmp(var.value, "Dendy"))
|
||||||
opt_region = 3;
|
opt_region = 3;
|
||||||
if (opt_region != oldval)
|
if (opt_region != oldval)
|
||||||
|
{
|
||||||
FCEUD_RegionOverride(opt_region);
|
FCEUD_RegionOverride(opt_region);
|
||||||
|
audio_video_updated = 2;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var.key = "fceumm_sndquality";
|
var.key = "fceumm_sndquality";
|
||||||
|
|||||||
Reference in New Issue
Block a user