simple fix to -pal cmd setting turned into updating the whole infrastructure responsible for regions. now region change is also reported if it was specified in cmd.
fix #743
This commit is contained in:
parent
284d735bb9
commit
69752141c4
|
@ -122,7 +122,7 @@ void FCEUI_SetVidSystem(int a);
|
||||||
|
|
||||||
//Set variables for NTSC(0) / PAL(1) / Dendy(2)
|
//Set variables for NTSC(0) / PAL(1) / Dendy(2)
|
||||||
//Dendy has PAL framerate and resolution, but ~NTSC timings, and has 50 dummy scanlines to force 50 fps
|
//Dendy has PAL framerate and resolution, but ~NTSC timings, and has 50 dummy scanlines to force 50 fps
|
||||||
void FCEUI_SetRegion(int region);
|
void FCEUI_SetRegion(int region, int from_menu = 1);
|
||||||
|
|
||||||
//Convenience function; returns currently emulated video system(0=NTSC, 1=PAL).
|
//Convenience function; returns currently emulated video system(0=NTSC, 1=PAL).
|
||||||
int FCEUI_GetCurrentVidSystem(int *slstart, int *slend);
|
int FCEUI_GetCurrentVidSystem(int *slstart, int *slend);
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
#include "fceu.h"
|
||||||
#include "args.h"
|
#include "args.h"
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "../common/args.h"
|
#include "../common/args.h"
|
||||||
|
@ -42,8 +43,8 @@ extern bool turbo;
|
||||||
char *ParseArgies(int argc, char *argv[])
|
char *ParseArgies(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
static ARGPSTRUCT FCEUArgs[]={
|
static ARGPSTRUCT FCEUArgs[]={
|
||||||
{"-pal",&pal_setting_specified,&pal_emulation,0},
|
{"-pal", &pal_setting_specified,&PAL, 0},
|
||||||
{"-dendy",0,&dendy,0},
|
{"-dendy", &pal_setting_specified,&dendy, 0},
|
||||||
{"-noicon", 0, &status_icon, 0},
|
{"-noicon", 0, &status_icon, 0},
|
||||||
{"-gg", 0, &genie, 0},
|
{"-gg", 0, &genie, 0},
|
||||||
{"-no8lim", 0, &eoptions, 0x8000|EO_NOSPRLIM},
|
{"-no8lim", 0, &eoptions, 0x8000|EO_NOSPRLIM},
|
||||||
|
|
|
@ -767,12 +767,12 @@ int main(int argc,char *argv[])
|
||||||
LoadNewGamey(hAppWnd, 0);
|
LoadNewGamey(hAppWnd, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pal_setting_specified && !dendy)
|
if (PAL && !dendy)
|
||||||
{
|
FCEUI_SetRegion(1, pal_setting_specified);
|
||||||
// Force the PAL setting specified in the command line, unless Dendy
|
else if (dendy)
|
||||||
pal_emulation = saved_pal_setting;
|
FCEUI_SetRegion(2, pal_setting_specified);
|
||||||
FCEUI_SetVidSystem(pal_emulation);
|
else
|
||||||
}
|
FCEUI_SetRegion(0, pal_setting_specified);
|
||||||
|
|
||||||
if(PaletteToLoad)
|
if(PaletteToLoad)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1042,7 +1042,7 @@ bool ALoad(const char *nameo, char* innerFilename, bool silent)
|
||||||
|
|
||||||
if (GameInfo) FCEUI_CloseGame();
|
if (GameInfo) FCEUI_CloseGame();
|
||||||
|
|
||||||
if (FCEUI_LoadGameVirtual(nameo, 1, silent))
|
if (FCEUI_LoadGameVirtual(nameo, !pal_setting_specified, silent))
|
||||||
{
|
{
|
||||||
pal_emulation = FCEUI_GetCurrentVidSystem(0, 0);
|
pal_emulation = FCEUI_GetCurrentVidSystem(0, 0);
|
||||||
|
|
||||||
|
|
|
@ -502,6 +502,7 @@ FCEUGI *FCEUI_LoadGameVirtual(const char *name, int OverwriteVidMode, bool silen
|
||||||
// ################################## End of SP CODE ###########################
|
// ################################## End of SP CODE ###########################
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (OverwriteVidMode)
|
||||||
FCEU_ResetVidSys();
|
FCEU_ResetVidSys();
|
||||||
|
|
||||||
if (GameInfo->type != GIT_NSF)
|
if (GameInfo->type != GIT_NSF)
|
||||||
|
@ -964,7 +965,7 @@ int FCEUI_GetCurrentVidSystem(int *slstart, int *slend) {
|
||||||
return(PAL);
|
return(PAL);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FCEUI_SetRegion(int region) {
|
void FCEUI_SetRegion(int region, int from_menu) {
|
||||||
switch (region) {
|
switch (region) {
|
||||||
case 0: // NTSC
|
case 0: // NTSC
|
||||||
normalscanlines = 240;
|
normalscanlines = 240;
|
||||||
|
@ -972,8 +973,11 @@ void FCEUI_SetRegion(int region) {
|
||||||
dendy = 0;
|
dendy = 0;
|
||||||
// until it's fixed on sdl. see issue #740
|
// until it's fixed on sdl. see issue #740
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
if (from_menu)
|
||||||
|
{
|
||||||
FCEU_DispMessage("NTSC mode set", 0);
|
FCEU_DispMessage("NTSC mode set", 0);
|
||||||
FCEUI_printf("NTSC mode set");
|
FCEUI_printf("NTSC mode set");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 1: // PAL
|
case 1: // PAL
|
||||||
|
@ -981,8 +985,11 @@ void FCEUI_SetRegion(int region) {
|
||||||
pal_emulation = 1;
|
pal_emulation = 1;
|
||||||
dendy = 0;
|
dendy = 0;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
if (from_menu)
|
||||||
|
{
|
||||||
FCEU_DispMessage("PAL mode set", 0);
|
FCEU_DispMessage("PAL mode set", 0);
|
||||||
FCEUI_printf("PAL mode set");
|
FCEUI_printf("PAL mode set");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case 2: // Dendy
|
case 2: // Dendy
|
||||||
|
@ -990,8 +997,11 @@ void FCEUI_SetRegion(int region) {
|
||||||
pal_emulation = 0;
|
pal_emulation = 0;
|
||||||
dendy = 1;
|
dendy = 1;
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
|
if (from_menu)
|
||||||
|
{
|
||||||
FCEU_DispMessage("Dendy mode set", 0);
|
FCEU_DispMessage("Dendy mode set", 0);
|
||||||
FCEUI_printf("Dendy mode set");
|
FCEUI_printf("Dendy mode set");
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue