diff --git a/trunk/src/drivers/common/vidblit.cpp b/trunk/src/drivers/common/vidblit.cpp index a7d5e99a..73b6427c 100644 --- a/trunk/src/drivers/common/vidblit.cpp +++ b/trunk/src/drivers/common/vidblit.cpp @@ -19,6 +19,7 @@ */ #include +#include #include "scalebit.h" #include "hq2x.h" #include "hq3x.h" diff --git a/trunk/src/drivers/sdl/config.cpp b/trunk/src/drivers/sdl/config.cpp index 0dbb2a92..44c72f49 100644 --- a/trunk/src/drivers/sdl/config.cpp +++ b/trunk/src/drivers/sdl/config.cpp @@ -401,7 +401,7 @@ InitConfig() void UpdateEMUCore(Config *config) { - int ntsccol, ntsctint, ntschue, flag, start, end; + int ntsccol, ntsctint, ntschue, flag, region, start, end; std::string cpalette; config->getOption("SDL.NTSCpalette", &ntsccol); @@ -414,8 +414,8 @@ UpdateEMUCore(Config *config) LoadCPalette(cpalette); } - config->getOption("SDL.PAL", &flag); - FCEUI_SetVidSystem(flag ? 1 : 0); + config->getOption("SDL.PAL", ®ion); + FCEUI_SetRegion(region); config->getOption("SDL.GameGenie", &flag); FCEUI_SetGameGenie(flag ? 1 : 0); diff --git a/trunk/src/drivers/sdl/main.h b/trunk/src/drivers/sdl/main.h index fc9fefd5..9b6963e1 100644 --- a/trunk/src/drivers/sdl/main.h +++ b/trunk/src/drivers/sdl/main.h @@ -40,6 +40,8 @@ extern int _sound; extern long soundrate; extern long soundbufsize; +extern int pal_emulation; + int CLImain(int argc, char *argv[]); // Device management defaults diff --git a/trunk/src/drivers/sdl/sdl.cpp b/trunk/src/drivers/sdl/sdl.cpp index d23e5a64..3985158f 100644 --- a/trunk/src/drivers/sdl/sdl.cpp +++ b/trunk/src/drivers/sdl/sdl.cpp @@ -72,6 +72,11 @@ int mutecapture; #endif static int noconfig; +int pal_emulation; +int dendy; +// TODO: actually implement swapDuty +int swapDuty; + // -Video Modes Tag- : See --special static const char *DriverUsage= "Option Value Description\n" @@ -213,10 +218,23 @@ int LoadGame(const char *path) // set pal/ntsc int id; g_config->getOption("SDL.PAL", &id); - if(id) - FCEUI_SetVidSystem(1); - else - FCEUI_SetVidSystem(0); + switch(id) + { + case 0: + FCEUI_SetVidSystem(0); + pal_emulation = 0; + dendy = 0; + break; + case 1: + FCEUI_SetVidSystem(1); + pal_emulation = 1; + dendy = 0; + break; + case 2: + FCEUI_SetVidSystem(0); + pal_emulation = 0; + dendy = 1; + } std::string filename; g_config->getOption("SDL.Sound.RecordFile", &filename); diff --git a/trunk/src/drivers/sdl/sdl.h b/trunk/src/drivers/sdl/sdl.h index 0dc6b251..04fa6f01 100644 --- a/trunk/src/drivers/sdl/sdl.h +++ b/trunk/src/drivers/sdl/sdl.h @@ -20,6 +20,9 @@ const int INVALID_STATE = 99; extern int noGui; extern int isloaded; +extern int dendy; +extern int pal_emulation; + int LoadGame(const char *path); int CloseGame(void); void FCEUD_Update(uint8 *XBuf, int32 *Buffer, int Count); diff --git a/trunk/src/drivers/sdl/throttle.h b/trunk/src/drivers/sdl/throttle.h index 59984fba..5709c88a 100644 --- a/trunk/src/drivers/sdl/throttle.h +++ b/trunk/src/drivers/sdl/throttle.h @@ -1,2 +1,2 @@ -void RefreshThrottleFPS(void); +void RefreshThrottleFPS(); int SpeedThrottle(void); diff --git a/trunk/src/fceu.cpp b/trunk/src/fceu.cpp index 677af1d6..fe4f4f7c 100644 --- a/trunk/src/fceu.cpp +++ b/trunk/src/fceu.cpp @@ -56,8 +56,8 @@ extern bool isTaseditorRecording(); extern int32 fps_scale; extern int32 fps_scale_unpaused; extern int32 fps_scale_frameadvance; -extern void RefreshThrottleFPS(); #endif +extern void RefreshThrottleFPS(); #ifdef _S9XLUA_H #include "fceulua.h"