diff --git a/changelog.txt b/changelog.txt index cd8fcfd8..73fe946e 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,5 @@ ---version 2.0.2 released--- - +12-aug-2008 - punkrockguy318 - SF [ 2047050 ] SDL "--special" option fixed for special video scaling filters 12-aug-2008 - zeromus - print a special message when trying to open an FCM reminding user to convert. (finishes SF [ 2011832 ] Opening non movie file crashes FCEUX) 12-aug-2008 - zeromus - SF [ 2046985 ] SRAM not wiped on power cycle (during movies) 11-aug-2008 - zeromus - restore IPS patching capability which was lost when archive support was added diff --git a/src/drivers/sdl/config.cpp b/src/drivers/sdl/config.cpp index 98f39074..3a7c3426 100644 --- a/src/drivers/sdl/config.cpp +++ b/src/drivers/sdl/config.cpp @@ -156,6 +156,7 @@ InitConfig() config->addOption("xstretch", "SDL.XStretch", 0); config->addOption("ystretch", "SDL.YStretch", 0); config->addOption("noframe", "SDL.NoFrame", 0); + config->addOption("special", "SDL.SpecialFilter", 0); // OpenGL options config->addOption("opengl", "SDL.OpenGL", 0); diff --git a/src/drivers/sdl/sdl-video.cpp b/src/drivers/sdl/sdl-video.cpp index 7952b703..809b6b62 100644 --- a/src/drivers/sdl/sdl-video.cpp +++ b/src/drivers/sdl/sdl-video.cpp @@ -84,30 +84,31 @@ KillVideo() s_IconSurface=0; } + + // return failure if the video system was not initialized + if(s_inited == 0) + return -1; + // if the rest of the system has been initialized, shut it down - if(s_inited) { #ifdef OPENGL - // check for OpenGL and shut it down - if(s_useOpenGL) - KillOpenGL(); - else + // check for OpenGL and shut it down + if(s_useOpenGL) + KillOpenGL(); + else #endif - // shut down the system that converts from 8 to 16/32 bpp - if(s_curbpp > 8) - KillBlitToHigh(); + // shut down the system that converts from 8 to 16/32 bpp + if(s_curbpp > 8) + KillBlitToHigh(); - // shut down the SDL video sub-system - SDL_QuitSubSystem(SDL_INIT_VIDEO); + // shut down the SDL video sub-system + SDL_QuitSubSystem(SDL_INIT_VIDEO); - s_inited = 0; - return 0; - } - - // return failure, since the system was not initialized - // XXX soules - this seems odd to me... why is it doing this? - return -1; + s_inited = 0; + return 0; } + +// this variable contains information about the special scaling filters static int s_sponge; /** @@ -143,7 +144,6 @@ InitVideo(FCEUGI *gi) #ifdef OPENGL g_config->getOption("SDL.OpenGL", &s_useOpenGL); #endif - // XXX soules - what is the sponge variable? g_config->getOption("SDL.SpecialFilter", &s_sponge); g_config->getOption("SDL.XStretch", &xstretch); g_config->getOption("SDL.YStretch", &ystretch); diff --git a/src/drivers/sdl/sdl.cpp b/src/drivers/sdl/sdl.cpp index 0508c2d9..eaa6308f 100644 --- a/src/drivers/sdl/sdl.cpp +++ b/src/drivers/sdl/sdl.cpp @@ -66,6 +66,8 @@ char *DriverUsage="\ --clipsides {0|1} Clips left and rightmost 8 columns of pixels.\n\ --noframe {0|1} Hides title bar and window decorations.\n\ --slstart {0 - 239} Sets the first drawn emulated scanline.\n\ +--special {1 - 4} Use special video scaling filters\n\ + (1 = hq2x 2 = Scale2x 3 = hq3x 4 = Scale3x)\n\ --slend {0 - 239} Sets the last drawn emulated scanline.\n\ --ntsccolor {0|1} Emulates an NTSC TV's colors.\n\ --hue x Sets hue for NTSC color emulation.\n\