From aa3afd37365097efeaaa364ac01c0b0577015ca6 Mon Sep 17 00:00:00 2001 From: pagefault <> Date: Thu, 9 Aug 2001 23:03:15 +0000 Subject: [PATCH] Added 640x480 DS WIN --- zsnes/src/cfgload.asm | 21 ++++++----- zsnes/src/win/winintrf.asm | 77 +++++++++++++++++++------------------- zsnes/src/win/winlink.cpp | 50 ++++++++++++++----------- 3 files changed, 78 insertions(+), 70 deletions(-) diff --git a/zsnes/src/cfgload.asm b/zsnes/src/cfgload.asm index 61caec0a..e1e71af5 100644 --- a/zsnes/src/cfgload.asm +++ b/zsnes/src/cfgload.asm @@ -579,16 +579,17 @@ db '',13,10 db '; Video Mode, 0 - 23',13,10 db '; 0 = 256x224 R WIN 1 = 256x224 R FULL',13,10 db '; 2 = 512x448 R WIN 3 = 512x448 DR WIN',13,10 -db '; 4 = 640x480 S WIN 5 = 640x480 DR FULL',13,10 -db '; 6 = 640x480 DS FULL 7 = 640x480 S FULL',13,10 -db '; 8 = 768x672 R WIN 9 = 768x672 DR WIN',13,10 -db '; 10 = 800x600 S WIN 11 = 800x600 DS WIN',13,10 -db '; 12 = 800x600 S FULL 13 = 800x600 DR FULL',13,10 -db '; 14 = 800x600 DS FULL 15 = 1024x768 S WIN',13,10 -db '; 16 = 1024x768 DS WIN 17 = 1024x768 S FULL',13,10 -db '; 18 = 1024x768 DR FULL 19 = 1024x768 DS FULL',13,10 -db '; 20 = 1024x896 R WIN 21 = 1024x896 DR WIN',13,10 -db '; 22 = 1280x960 DR FULL 23 = 1280x960 DS FULL',13,10 +db '; 4 = 640x480 S WIN 5 = 640x480 DS WIN',13,10 +db '; 6 = 640x480 DR FULL 7 = 640x480 DS FULL',13,10 +db '; 8 = 640x480 S FULL 9 = 768x672 R WIN',13,10 +db '; 10 = 768x672 DR WIN 11 = 800x600 S WIN',13,10 +db '; 12 = 800x600 DS WIN 13 = 800x600 S FULL',13,10 +db '; 14 = 800x600 DR FULL 15 = 800x600 DS FULL',13,10 +db '; 16 = 1024x768 S WIN 17 = 1024x768 DS WIN',13,10 +db '; 18 = 1024x768 S FULL 19 = 1024x768 DR FULL',13,10 +db '; 20 = 1024x768 DS FULL 21 = 1024x896 R WIN',13,10 +db '; 22 = 1024x896 DR WIN 23 = 1280x960 DR FULL',13,10 +db '; 24 = 1280x960 DS FULL',13,10 db '',13,10 db 'VideoModeWin = %U',13,10 db '',13,10 diff --git a/zsnes/src/win/winintrf.asm b/zsnes/src/win/winintrf.asm index 0d9e3959..ad968c22 100644 --- a/zsnes/src/win/winintrf.asm +++ b/zsnes/src/win/winintrf.asm @@ -1215,7 +1215,7 @@ NEWSYM ClearScreen SECTION .data ; Total Number of Video Modes -NEWSYM NumVideoModes, dd 24 +NEWSYM NumVideoModes, dd 25 ; GUI Video Mode Names - Make sure that all names are of the same length ; and end with a NULL terminator @@ -1225,46 +1225,47 @@ db '256x224 R FULL',0 ;1 db '512x448 R WIN ',0 ;2 db '512x448 DR WIN ',0 ;3 db '640x480 S WIN ',0 ;4 -db '640x480 DR FULL',0 ;5 -db '640x480 DS FULL',0 ;6 -db '640x480 S FULL',0 ;7 -db '768x672 R WIN ',0 ;8 -db '768x672 DR WIN ',0 ;9 -db '800x600 S WIN ',0 ;10 -db '800x600 DS WIN ',0 ;11 -db '800x600 S FULL',0 ;12 -db '800x600 DR FULL',0 ;13 -db '800x600 DS FULL',0 ;14 -db '1024x768 S WIN ',0 ;15 -db '1024x768 DS WIN ',0 ;16 -db '1024x768 S FULL',0 ;17 -db '1024x768 DR FULL',0 ;18 -db '1024x768 DS FULL',0 ;19 -db '1024x896 R WIN ',0 ;20 -db '1024x896 DR WIN ',0 ;21 -db '1280x960 DR FULL',0 ;22 -db '1280x960 DS FULL',0 ;23 +db '640x480 DS WIN ',0 ;5 +db '640x480 DR FULL',0 ;6 +db '640x480 DS FULL',0 ;7 +db '640x480 S FULL',0 ;8 +db '768x672 R WIN ',0 ;9 +db '768x672 DR WIN ',0 ;10 +db '800x600 S WIN ',0 ;11 +db '800x600 DS WIN ',0 ;12 +db '800x600 S FULL',0 ;13 +db '800x600 DR FULL',0 ;14 +db '800x600 DS FULL',0 ;15 +db '1024x768 S WIN ',0 ;16 +db '1024x768 DS WIN ',0 ;17 +db '1024x768 S FULL',0 ;18 +db '1024x768 DR FULL',0 ;19 +db '1024x768 DS FULL',0 ;20 +db '1024x896 R WIN ',0 ;21 +db '1024x896 DR WIN ',0 ;22 +db '1280x960 DR FULL',0 ;23 +db '1280x960 DS FULL',0 ;24 ; 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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 16-bit mode -NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; New Graphics Mode Available -NEWSYM GUISLVID, db 0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation -NEWSYM GUII2VID, db 0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; Interpolation(w) -NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering -NEWSYM GUIHSVID, db 0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; Half/Quarter Scanlines -NEWSYM GUI2xVID, db 0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; 2xSaI/Super Eagle Engines -NEWSYM GUIM7VID, db 0,0,0,1,0,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; ?Mode 7 video thing? -NEWSYM GUIWFVID, db 0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1 ; If Windows Full Screen -NEWSYM GUIDSIZE, db 0,0,0,1,0,1,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1 -NEWSYM GUIRATIO, db 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 -NEWSYM GUITBWVID, db 0,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1 ; Triple Buffering (Win) +NEWSYM GUI16VID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 16-bit mode +NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; New Graphics Mode Available +NEWSYM GUISLVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Interpolation +NEWSYM GUII2VID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; Interpolation(w) +NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,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,0,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,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering +NEWSYM GUIHSVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; Half/Quarter Scanlines +NEWSYM GUI2xVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; 2xSaI/Super Eagle Engines +NEWSYM GUIM7VID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; ?Mode 7 video thing? +NEWSYM GUIWFVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1 ; If Windows Full Screen +NEWSYM GUIDSIZE, db 0,0,0,1,0,0,0,1,1,0,1,0,0,0,1,1,0,0,0,1,1,0,0,1,1 +NEWSYM GUIRATIO, db 0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 +NEWSYM GUITBWVID, db 0,1,0,0,0,1,0,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,1,1 ; Triple Buffering (Win) SECTION .text ; **************************** diff --git a/zsnes/src/win/winlink.cpp b/zsnes/src/win/winlink.cpp index 34ace3c8..1e54c38d 100644 --- a/zsnes/src/win/winlink.cpp +++ b/zsnes/src/win/winlink.cpp @@ -1529,98 +1529,104 @@ void initwinvideo(void) case 5: WindowWidth=640; WindowHeight=480; - SurfaceX=640; - SurfaceY=480; + SurfaceX=512; + SurfaceY=448; break; case 6: WindowWidth=640; WindowHeight=480; - SurfaceX=512; - SurfaceY=448; + SurfaceX=640; + SurfaceY=480; break; case 7: WindowWidth=640; WindowHeight=480; + SurfaceX=512; + SurfaceY=448; break; case 8: - WindowWidth=768; - WindowHeight=672; + WindowWidth=640; + WindowHeight=480; break; case 9: WindowWidth=768; WindowHeight=672; - SurfaceX=512; - SurfaceY=448; break; case 10: - WindowWidth=800; - WindowHeight=600; + WindowWidth=768; + WindowHeight=672; + SurfaceX=512; + SurfaceY=448; break; case 11: WindowWidth=800; WindowHeight=600; - SurfaceX=512; - SurfaceY=448; break; case 12: WindowWidth=800; WindowHeight=600; + SurfaceX=512; + SurfaceY=448; break; case 13: + WindowWidth=800; + WindowHeight=600; + break; + case 14: WindowWidth=800; WindowHeight=600; SurfaceX=640; SurfaceY=480; break; - case 14: + case 15: WindowWidth=800; WindowHeight=600; SurfaceX=512; SurfaceY=448; break; - case 15: + case 16: WindowWidth=1024; WindowHeight=768; break; - case 16: + case 17: WindowWidth=1024; WindowHeight=768; SurfaceX=512; SurfaceY=448; break; - case 17: + case 18: WindowWidth=1024; WindowHeight=768; break; - case 18: + case 19: WindowWidth=1024; WindowHeight=768; SurfaceX=640; SurfaceY=480; break; - case 19: + case 20: WindowWidth=1024; WindowHeight=768; SurfaceX=512; SurfaceY=448; break; - case 20: + case 21: WindowWidth=1024; WindowHeight=896; break; - case 21: + case 22: WindowWidth=1024; WindowHeight=896; SurfaceX=512; SurfaceY=448; break; - case 22: + case 23: WindowWidth=1280; WindowHeight=960; SurfaceX=640; SurfaceY=480; break; - case 23: + case 24: WindowWidth=1280; WindowHeight=960; SurfaceX=512;