--- src/osd/sdl/drawsdl.c 2010-10-21 21:42:07.000000000 +0200 +++ src/osd/sdl/drawsdl.c 2010-10-21 21:55:24.672745868 +0200 @@ -623,11 +623,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)) window->target->set_bounds(window->blitwidth, window->blitheight, sdlvideo_monitor_get_aspect(window->monitor)); else window->target->set_bounds(sdl->hw_scale_width, sdl->hw_scale_height); --- src/osd/sdl/osdsdl.h 2010-10-21 21:42:07.000000000 +0200 +++ src/osd/sdl/osdsdl.h 2010-10-21 21:52:59.721829064 +0200 @@ -54,6 +54,7 @@ #define SDLOPTION_CENTERH "centerh" #define SDLOPTION_CENTERV "centerv" #define SDLOPTION_PRESCALE "prescale" +#define SDLOPTION_NATIVERES "nativeres" #define SDLOPTION_SCALEMODE "scalemode" #define SDLOPTION_MULTITHREADING "multithreading" --- src/osd/sdl/sdlmain.c 2010-10-21 21:42:07.000000000 +0200 +++ src/osd/sdl/sdlmain.c 2010-10-21 21:52:59.722828992 +0200 @@ -81,6 +81,7 @@ { SDLOPTION_MULTITHREADING ";mt", "0", OPTION_BOOLEAN, "enable multithreading; this enables rendering and blitting on a separate thread" }, { SDLOPTION_NUMPROCESSORS ";np", "auto", 0, "number of processors; this overrides the number the system reports" }, { 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" }, // OS X can be trusted to have working hardware OpenGL, so default to it on for the best user experience --- src/osd/sdl/window.c 2010-10-21 21:42:07.000000000 +0200 +++ src/osd/sdl/window.c 2010-10-21 21:52:59.723829011 +0200 @@ -678,6 +678,9 @@ // FIXME: Does not belong here window->startmaximized = options_get_bool(machine->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 2010-10-21 21:42:07.000000000 +0200 +++ src/osd/sdl/window.h 2010-10-21 21:52:59.723829011 +0200 @@ -67,6 +67,7 @@ int windowed_width; int windowed_height; int startmaximized; + int nativeres; // rendering info osd_event * rendered_event;