From a87283f9e70e5e53a20a5a14030c49bb4d78e841 Mon Sep 17 00:00:00 2001 From: hpsolo <> Date: Wed, 30 May 2001 02:43:08 +0000 Subject: [PATCH] Added new video modes for Linux OpenGL --- zsnes/src/cfgload.asm | 12 +++++++---- zsnes/src/linux/sdlintrf.asm | 42 ++++++++++++++++++++---------------- zsnes/src/linux/sdllink.c | 29 ++++++++++++++++++++++++- 3 files changed, 59 insertions(+), 24 deletions(-) diff --git a/zsnes/src/cfgload.asm b/zsnes/src/cfgload.asm index e72b996c..5c6d7d28 100644 --- a/zsnes/src/cfgload.asm +++ b/zsnes/src/cfgload.asm @@ -599,16 +599,20 @@ db 'VideoMode = %U',13,10 db '',13,10 %elifdef __LINUX__ %ifdef __OPENGL__ -db '; Video Mode, 0 - 6',13,10 +db '; Video Mode, 0 - 10',13,10 %else db '; Video Mode, 0 - 3',13,10 %endif db '; 0 = 256x224 WIN 1 = 256x224 FULL',13,10 db '; 2 = 512x448 WIN 3 = 640x480 FULL',13,10 %ifdef __OPENGL__ -db '; 4 = 256x224 OGL WIN',13,10 -db '; 5 = 512x448 OGL WIN',13,10 -db '; 6 = 640x480 OGL FULL',13,10 +db '; 4 = 256x224 OGL WIN',13,10 +db '; 5 = 512x448 OGL WIN',13,10 +db '; 6 = 640x480 OGL FULL',13,10 +db '; 7 = 640x576 OGL WIN',13,10 +db '; 8 = 768x672 OGL WIN ',13,10 +db '; 9 = 896x784 OGL WIN ',13,10 +db '; 10 = 1024x896 OGL WIN ',13,10 %endif db '',13,10 db 'VideoMode = %U',13,10 diff --git a/zsnes/src/linux/sdlintrf.asm b/zsnes/src/linux/sdlintrf.asm index 13c6719e..a1167fb9 100644 --- a/zsnes/src/linux/sdlintrf.asm +++ b/zsnes/src/linux/sdlintrf.asm @@ -973,7 +973,7 @@ SECTION .data ; Total Number of Video Modes %ifdef __OPENGL__ -NEWSYM NumVideoModes, dd 7 +NEWSYM NumVideoModes, dd 11 %else NEWSYM NumVideoModes, dd 4 %endif @@ -989,28 +989,32 @@ db '640x480 DR FULL',0 ;3 db '256x224 OGL WIN ',0 ;4 db '512x448 OGL WIN ',0 ;5 db '640x480 OGL FULL',0 ;6 -db '800x600 OGL FULL',0 ;7 +db '640x576 OGL WIN ',0 ;7 +db '768x672 OGL WIN ',0 ;8 +db '896x784 OGL WIN ',0 ;9 +db '1024x896 OGL WIN ',0 ;10 %endif ; Video Mode Feature Availability (1 = Available, 0 = Not Available) ; Left side starts with Video Mode 0 -NEWSYM GUI16VID, db 1,1,1,1,1,1,1 ; 16-bit mode -NEWSYM GUINGVID, db 0,0,0,0,0,0,0 ; New Graphics Mode Available -NEWSYM GUISLVID, db 0,0,0,0,0,0,0 ; Scanlines -NEWSYM GUIINVID, db 0,0,0,0,0,0,0 ; Interpolation -NEWSYM GUII2VID, db 0,0,1,1,0,0,0 ; Interpolation(w) -NEWSYM GUIEAVID, db 0,0,0,0,0,0,0 ; Eagle -NEWSYM GUIIEVID, db 0,0,0,0,0,0,0 ; (Interp | Eagle) -NEWSYM GUIFSVID, db 0,0,0,0,0,0,0 ; Full Screen -NEWSYM GUISSVID, db 0,0,0,0,0,0,0 ; Small Screen -NEWSYM GUITBVID, db 0,0,0,0,0,0,0 ; Triple Buffering -NEWSYM GUIHSVID, db 0,0,1,1,0,0,0 ; Half/Quarter Scanlines -NEWSYM GUI2xVID, db 0,0,1,1,0,0,0 ; 2xSaI/Super Eagle Engines -NEWSYM GUIM7VID, db 0,0,1,1,0,0,0 ; ?Mode 7 video thing? -NEWSYM GUIWFVID, db 0,1,0,1,0,0,1 ; If Windows Full Screen -NEWSYM GUIDSIZE, db 0,0,1,1,0,0,0 -NEWSYM GUIRATIO, db 0,1,0,0,0,0,1 -NEWSYM GUIBIFIL, db 0,0,0,0,1,1,1 ; binlinear = 1, nearest = 0 +; vid mode column = 0,1,2,3,4,5,6,7,8,9,0,1 +NEWSYM GUI16VID, db 1,1,1,1,1,1,1,1,1,1,1,1 ; 16-bit mode +NEWSYM GUINGVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; New Graphics Mode Available +NEWSYM GUISLVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Scanlines +NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation +NEWSYM GUII2VID, db 0,0,1,1,0,0,0,0,0,0,0,0 ; Interpolation(w) +NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Eagle +NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; (Interp | Eagle) +NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Full Screen +NEWSYM GUISSVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Small Screen +NEWSYM GUITBVID, db 0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering +NEWSYM GUIHSVID, db 0,0,1,1,0,0,0,0,0,0,0,0 ; Half/Quarter Scanlines +NEWSYM GUI2xVID, db 0,0,1,1,0,0,0,0,0,0,0,0 ; 2xSaI/Super Eagle Engines +NEWSYM GUIM7VID, db 0,0,1,1,0,0,0,0,0,0,0,0 ; ?Mode 7 video thing? +NEWSYM GUIWFVID, db 0,1,0,1,0,0,1,0,0,0,0,0 ; If Windows Full Screen +NEWSYM GUIDSIZE, db 0,0,1,1,0,0,0,0,0,0,0,0 +NEWSYM GUIRATIO, db 0,1,0,0,0,0,1,0,0,0,0,0 +NEWSYM GUIBIFIL, db 0,0,0,0,1,1,1,1,1,1,1,1 ; binlinear = 1, nearest = 0 SECTION .text diff --git a/zsnes/src/linux/sdllink.c b/zsnes/src/linux/sdllink.c index cd84683f..c7e12171 100644 --- a/zsnes/src/linux/sdllink.c +++ b/zsnes/src/linux/sdllink.c @@ -754,6 +754,30 @@ void initwinvideo(void) SurfaceX=640; SurfaceY=480; break; + case 7: + WindowWidth=640; + WindowHeight=576; + SurfaceX=640; + SurfaceY=576; + break; + case 8: + WindowWidth=768; + WindowHeight=672; + SurfaceX=768; + SurfaceY=672; + break; + case 9: + WindowWidth=896; + WindowHeight=784; + SurfaceX=896; + SurfaceY=784; + break; + case 10: + WindowWidth=1024; + WindowHeight=896; + SurfaceX=1024; + SurfaceY=896; + break; default: WindowWidth=256; WindowHeight=224; @@ -1121,7 +1145,10 @@ void drawscreenwin(void) glfilters = GL_NEAREST; } - if (FullScreen) ratiox = 0.875; else ratiox = 1.0; + if (FullScreen) + ratiox = 0.875; + else + ratiox = 1.0; glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity();