Update Region Override
This commit is contained in:
@@ -52,7 +52,6 @@ static bool use_raw_palette;
|
|||||||
static bool use_par;
|
static bool use_par;
|
||||||
int turbo_enabler;
|
int turbo_enabler;
|
||||||
int turbo_delay;
|
int turbo_delay;
|
||||||
static int regionoverride = -1;
|
|
||||||
static int t[2] = { 0, 0 };
|
static int t[2] = { 0, 0 };
|
||||||
static int zapper_mode = 0; /* 0=absolute 1=relative */
|
static int zapper_mode = 0; /* 0=absolute 1=relative */
|
||||||
|
|
||||||
@@ -69,6 +68,8 @@ unsigned normal_scanlines = 240;
|
|||||||
unsigned extrascanlines = 0;
|
unsigned extrascanlines = 0;
|
||||||
unsigned vblankscanlines = 0;
|
unsigned vblankscanlines = 0;
|
||||||
|
|
||||||
|
static unsigned is_PAL = 0;
|
||||||
|
static unsigned setregion = 0;
|
||||||
unsigned dendy = 0;
|
unsigned dendy = 0;
|
||||||
|
|
||||||
int FCEUnetplay;
|
int FCEUnetplay;
|
||||||
@@ -741,45 +742,36 @@ static void retro_set_custom_palette(void)
|
|||||||
* Dendy has PAL framerate and resolution, but ~NTSC timings,
|
* Dendy has PAL framerate and resolution, but ~NTSC timings,
|
||||||
* and has 50 dummy scanlines to force 50 fps.
|
* and has 50 dummy scanlines to force 50 fps.
|
||||||
*/
|
*/
|
||||||
void FCEUD_RegionOverride(int region)
|
void FCEUD_RegionOverride(unsigned region)
|
||||||
{
|
{
|
||||||
static int w = 0;
|
|
||||||
struct retro_system_av_info av_info;
|
struct retro_system_av_info av_info;
|
||||||
|
unsigned pal = 0;
|
||||||
|
|
||||||
switch (region)
|
switch (region)
|
||||||
{
|
{
|
||||||
case 0: /* auto */
|
case 0: /* auto */
|
||||||
dendy = 0;
|
dendy = 0;
|
||||||
w = (GameInfo->vidsys == GIV_PAL) ? 1 : 0;
|
pal = is_PAL;
|
||||||
break;
|
break;
|
||||||
case 1: /* ntsc */
|
case 1: /* ntsc */
|
||||||
dendy = 0;
|
dendy = 0;
|
||||||
w = 0;
|
pal = 0;
|
||||||
FCEU_DispMessage("Switched to NTSC");
|
FCEU_DispMessage("Switched to NTSC");
|
||||||
break;
|
break;
|
||||||
case 2: /* pal */
|
case 2: /* pal */
|
||||||
dendy = 0;
|
dendy = 0;
|
||||||
w = 1;
|
pal = 1;
|
||||||
FCEU_DispMessage("Switched to PAL");
|
FCEU_DispMessage("Switched to PAL");
|
||||||
break;
|
break;
|
||||||
case 3: /* dendy */
|
case 3: /* dendy */
|
||||||
dendy = 1;
|
dendy = 1;
|
||||||
w = 0;
|
pal = 0;
|
||||||
FCEU_DispMessage("Switched to Dendy");
|
FCEU_DispMessage("Switched to Dendy");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
FSettings.PAL = w ;
|
normal_scanlines = dendy ? (240 + 50) : 240;
|
||||||
PAL = w ? 1 : 0;
|
FCEUI_SetVidSystem(pal);
|
||||||
normal_scanlines = dendy ? 290 : 240;
|
|
||||||
totalscanlines = normal_scanlines + (overclock_state ? extrascanlines : 0);
|
|
||||||
FCEUPPU_SetVideoSystem(w || dendy);
|
|
||||||
SetSoundVariables();
|
|
||||||
|
|
||||||
/* Update the timing(fps) in frontend */
|
|
||||||
retro_get_system_av_info(&av_info);
|
|
||||||
/* not needed in current implementation to update fps */
|
|
||||||
/* environ_cb(RETRO_ENVIRONMENT_SET_GEOMETRY, &av_info); */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void retro_deinit (void)
|
void retro_deinit (void)
|
||||||
@@ -825,7 +817,6 @@ static void check_variables(bool startup)
|
|||||||
struct retro_variable var = {0};
|
struct retro_variable var = {0};
|
||||||
struct retro_system_av_info av_info;
|
struct retro_system_av_info av_info;
|
||||||
bool geometry_update = false;
|
bool geometry_update = false;
|
||||||
unsigned old_regionoverride = regionoverride;
|
|
||||||
|
|
||||||
var.key = "fceumm_palette";
|
var.key = "fceumm_palette";
|
||||||
|
|
||||||
@@ -1021,17 +1012,19 @@ static void check_variables(bool startup)
|
|||||||
var.key = "fceumm_region";
|
var.key = "fceumm_region";
|
||||||
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
|
if (environ_cb(RETRO_ENVIRONMENT_GET_VARIABLE, &var) && var.value)
|
||||||
{
|
{
|
||||||
|
unsigned oldval = setregion;
|
||||||
if (!strcmp(var.value, "Auto"))
|
if (!strcmp(var.value, "Auto"))
|
||||||
regionoverride = 0;
|
setregion = 0;
|
||||||
else if (!strcmp(var.value, "NTSC"))
|
else if (!strcmp(var.value, "NTSC"))
|
||||||
regionoverride = 1;
|
setregion = 1;
|
||||||
else if (!strcmp(var.value, "PAL"))
|
else if (!strcmp(var.value, "PAL"))
|
||||||
regionoverride = 2;
|
setregion = 2;
|
||||||
else if (!strcmp(var.value, "Dendy"))
|
else if (!strcmp(var.value, "Dendy"))
|
||||||
regionoverride = 3;
|
setregion = 3;
|
||||||
|
if (setregion != oldval)
|
||||||
|
FCEUD_RegionOverride(setregion);
|
||||||
}
|
}
|
||||||
if (regionoverride != old_regionoverride)
|
|
||||||
FCEUD_RegionOverride(regionoverride);
|
|
||||||
|
|
||||||
var.key = "fceumm_aspect";
|
var.key = "fceumm_aspect";
|
||||||
|
|
||||||
@@ -1792,6 +1785,8 @@ bool retro_load_game(const struct retro_game_info *game)
|
|||||||
if (GameInfo->type == GIT_VSUNI)
|
if (GameInfo->type == GIT_VSUNI)
|
||||||
FCEU_PrintError("VS Unisystem rom loaded, will use default palette.\n");
|
FCEU_PrintError("VS Unisystem rom loaded, will use default palette.\n");
|
||||||
|
|
||||||
|
is_PAL = retro_get_region(); /* Save current loaded region info */
|
||||||
|
|
||||||
retro_set_custom_palette();
|
retro_set_custom_palette();
|
||||||
|
|
||||||
FCEUD_SoundToggle();
|
FCEUD_SoundToggle();
|
||||||
|
|||||||
@@ -726,6 +726,9 @@ int FDSLoad(const char *name, FCEUFILE *fp) {
|
|||||||
SetupCartMirroring(0, 0, 0);
|
SetupCartMirroring(0, 0, 0);
|
||||||
|
|
||||||
FCEU_printf(" Sides: %d\n\n", TotalSides);
|
FCEU_printf(" Sides: %d\n\n", TotalSides);
|
||||||
|
|
||||||
|
FCEUI_SetVidSystem(0);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -807,8 +807,10 @@ int iNESLoad(const char *name, FCEUFILE *fp) {
|
|||||||
|| strstr(name, "(Sweden)") || strstr(name, "(Sw)")
|
|| strstr(name, "(Sweden)") || strstr(name, "(Sw)")
|
||||||
|| strstr(name, "(Australia)") || strstr(name, "(A)")
|
|| strstr(name, "(Australia)") || strstr(name, "(A)")
|
||||||
|| strstr(name, "(a)")) {
|
|| strstr(name, "(a)")) {
|
||||||
GameInfo->vidsys = GIV_PAL;
|
FCEUI_SetVidSystem(1);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
FCEUI_SetVidSystem(0);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user