--- src/osd/sdl/drawsdl.c 2009-01-02 19:49:02.000000000 +0100 +++ src/osd/sdl/drawsdl.c 2009-03-09 17:45:11.000000000 +0100 @@ -631,11 +631,15 @@ { sdlwindow_blit_surface_size(window, window->width, window->height); } + else if (window->nativeres) + { + sdlwindow_blit_surface_size(window, window->minwidth, window->minheight); + } else { sdlwindow_blit_surface_size(window, window->monitor->center_width, window->monitor->center_height); } - if (!sdl->scale_mode->is_scale) + if (!sdl->scale_mode->is_scale || (window->nativeres && window->fullscreen)) render_target_set_bounds(window->target, window->blitwidth, window->blitheight, sdlvideo_monitor_get_aspect(window->monitor)); else render_target_set_bounds(window->target, sdl->hw_scale_width, sdl->hw_scale_height, 0); --- src/osd/sdl/osdsdl.h 2009-01-22 04:19:59.000000000 +0100 +++ src/osd/sdl/osdsdl.h 2009-03-09 17:45:11.000000000 +0100 @@ -254,6 +254,7 @@ #define SDLOPTION_CENTERH "centerh" #define SDLOPTION_CENTERV "centerv" #define SDLOPTION_PRESCALE "prescale" +#define SDLOPTION_NATIVERES "nativeres" /* FIXME: seems to be donge for a long time */ #define SDLOPTION_PRESCALE_EFFECT "prescale_effect" --- src/osd/sdl/sdlmain.c 2009-01-02 19:49:02.000000000 +0100 +++ src/osd/sdl/sdlmain.c 2009-03-09 17:45:11.000000000 +0100 @@ -96,6 +96,7 @@ { NULL, NULL, OPTION_HEADER, "PERFORMANCE OPTIONS" }, { SDLOPTION_MULTITHREADING ";mt", "0", OPTION_BOOLEAN, "enable multithreading; this enables rendering and blitting on a separate thread" }, { SDLOPTION_SDLVIDEOFPS, "0", OPTION_BOOLEAN, "show sdl video performance" }, + { SDLOPTION_NATIVERES ";nr", "0", OPTION_BOOLEAN, "UNOFFICIAL: enable native game resolutions in fullscreen mode (-video soft only)" }, // video options { NULL, NULL, OPTION_HEADER, "VIDEO OPTIONS" }, --- src/osd/sdl/window.c 2009-02-16 06:35:41.000000000 +0100 +++ src/osd/sdl/window.c 2009-03-09 17:45:11.000000000 +0100 @@ -792,6 +792,9 @@ // FIXME: Does not belong here window->startmaximized = options_get_bool(mame_options(), SDLOPTION_MAXIMIZE); + // determine desire for native game resolution + window->nativeres = options_get_bool(mame_options(), SDLOPTION_NATIVERES); + if (!window->fullscreen) { window->windowed_width = config->width; --- src/osd/sdl/window.h 2009-02-16 06:35:34.000000000 +0100 +++ src/osd/sdl/window.h 2009-03-09 17:45:11.000000000 +0100 @@ -66,6 +66,7 @@ int windowed_width; int windowed_height; int startmaximized; + int nativeres; // rendering info osd_event * rendered_event;