summaryrefslogtreecommitdiff
path: root/shell/video/sdl/video_blit.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/video/sdl/video_blit.c')
-rw-r--r--shell/video/sdl/video_blit.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/shell/video/sdl/video_blit.c b/shell/video/sdl/video_blit.c
index 08aadcd..bf790bb 100644
--- a/shell/video/sdl/video_blit.c
+++ b/shell/video/sdl/video_blit.c
@@ -86,23 +86,30 @@ void Update_Video_Ingame(int width, int height)
uint16_t *s, *d;
uint32_t h, w;
uint8_t PAL = !!(Memory.FillRAM[0x2133] & 4);
+ if (height == SNES_HEIGHT_EXTENDED) height++; // 239 to 240
SDL_LockSurface(sdl_screen);
switch(option.fullscreen)
{
- case 0:
+ case 0: // Native
s = (uint16_t*) GFX.Screen;
d = (uint16_t*) sdl_screen->pixels + ((sdl_screen->w - width)/2 + (sdl_screen->h - height) * 160) - (PAL ? 0 : 2*320);
for(uint8_t y = 0; y < height; y++, s += GFX_PITCH / 2, d += sdl_screen->w) memmove(d, s, width * 2);
break;
- case 1:
- upscale_256xXXX_to_320x240((uint32_t*) sdl_screen->pixels, (uint32_t*) GFX.Screen, GFX_PITCH / 2, PAL ? 240 : 224);
+ case 1: // FS Sharp
+ upscale_256xXXX_to_320x240((uint32_t*) sdl_screen->pixels, (uint32_t*) GFX.Screen, GFX_PITCH / 2, height, height);
break;
- case 2:
+ case 2: // FS Smooth
+ upscale_256xXXX_to_320x240((uint32_t*) sdl_screen->pixels, (uint32_t*) GFX.Screen, GFX_PITCH / 2, height, 240/2);
+ break;
+ case 3: // Bilinear
if (height == 240) upscale_256x240_to_320x240_bilinearish((uint32_t*) sdl_screen->pixels, (uint32_t*) GFX.Screen, GFX_PITCH / 2, 239);
else upscale_256x240_to_320x240_bilinearish((uint32_t*) sdl_screen->pixels + (160*8), (uint32_t*) GFX.Screen, GFX_PITCH / 2, 224);
break;
+ case 4: // Overscan
+ upscale_240x208_to_320x240((uint16_t*) sdl_screen->pixels, (uint16_t*) GFX.Screen);
+ break;
}
//bitmap_scale(0, 0, IPPU.RenderedScreenWidth, IPPU.RenderedScreenHeight, sdl_screen->w, sdl_screen->h, SNES_WIDTH*2, 0, GFX.Screen, sdl_screen->pixels);