From fd657429b7d6798ef86003a6e4d2e4f21926374f Mon Sep 17 00:00:00 2001 From: grinvader <> Date: Thu, 8 Sep 2005 22:02:22 +0000 Subject: [PATCH] New resolutions for win port. Also cleaner code for repackfunct, it was rather pitiful. --- zsnes/src/cfgload.c | 3 ++- zsnes/src/cpu/memtable.c | 25 ++++++------------ zsnes/src/win/winintrf.asm | 54 ++++++++++++++++++++------------------ zsnes/src/win/winlink.cpp | 4 ++- zsnes/src/zloader.c | 29 +++++++++++--------- 5 files changed, 57 insertions(+), 58 deletions(-) diff --git a/zsnes/src/cfgload.c b/zsnes/src/cfgload.c index 781e2ec7..3239b39a 100644 --- a/zsnes/src/cfgload.c +++ b/zsnes/src/cfgload.c @@ -447,7 +447,8 @@ void DOScreatenewcfg() WRITE_LINE("; 28 = 1280x1024 S WIN 29 = 1280x1024 DS WIN\r\n"); WRITE_LINE("; 30 = 1280x1024 S FULL 31 = 1280x1024 DR FULL\r\n"); WRITE_LINE("; 32 = 1280x1024 DS FULL 33 = 1600x1200 S WIN\r\n"); - WRITE_LINE("; 34 = 1600x1200 DS WIN\r\n\r\n"); + WRITE_LINE("; 34 = 1600x1200 DS WIN 35 = 1600x1200 DR FULL\r\n"); + WRITE_LINE("; 36 = 1600x1200 DS FULL\r\n\r\n"); sprintf(buffer, "VideoModeWin = %d\r\n\r\n", cfgcvidmode); SAVE_LINE(buffer); #endif diff --git a/zsnes/src/cpu/memtable.c b/zsnes/src/cpu/memtable.c index 6c97ce8e..24690ae0 100644 --- a/zsnes/src/cpu/memtable.c +++ b/zsnes/src/cpu/memtable.c @@ -147,7 +147,6 @@ void reg2119inc8inc(); void repackfunct() { - signed char val; unsigned char block; // Global/Echo Volumes @@ -161,22 +160,14 @@ void repackfunct() EchoFB = VolumeTableb[DSPMem[0x0D]]; // FIR Filter Values - val = DSPMem[0x0F]; - FIRTAPVal0 = (signed int)val; - val = DSPMem[0x1F]; - FIRTAPVal1 = (signed int)val; - val = DSPMem[0x2F]; - FIRTAPVal2 = (signed int)val; - val = DSPMem[0x3F]; - FIRTAPVal3 = (signed int)val; - val = DSPMem[0x4F]; - FIRTAPVal4 = (signed int)val; - val = DSPMem[0x5F]; - FIRTAPVal5 = (signed int)val; - val = DSPMem[0x6F]; - FIRTAPVal6 = (signed int)val; - val = DSPMem[0x7F]; - FIRTAPVal7 = (signed int)val; + FIRTAPVal0 = (signed int)DSPMem[0x0F]; + FIRTAPVal1 = (signed int)DSPMem[0x1F]; + FIRTAPVal2 = (signed int)DSPMem[0x2F]; + FIRTAPVal3 = (signed int)DSPMem[0x3F]; + FIRTAPVal4 = (signed int)DSPMem[0x4F]; + FIRTAPVal5 = (signed int)DSPMem[0x5F]; + FIRTAPVal6 = (signed int)DSPMem[0x6F]; + FIRTAPVal7 = (signed int)DSPMem[0x7F]; // Noise block = DSPMem[0x6C]; diff --git a/zsnes/src/win/winintrf.asm b/zsnes/src/win/winintrf.asm index a37e85b7..2d3738cd 100644 --- a/zsnes/src/win/winintrf.asm +++ b/zsnes/src/win/winintrf.asm @@ -946,7 +946,7 @@ NEWSYM ClearScreen SECTION .data ; Total Number of Video Modes -NEWSYM NumVideoModes, dd 35 +NEWSYM NumVideoModes, dd 37 ; GUI Video Mode Names - Make sure that all names are of the same length ; and end with a NULL terminator @@ -986,34 +986,36 @@ db '1280x1024 DR F',0 ;31 db '1280x1024 DS F',0 ;32 db '1600x1200 S W',0 ;33 db '1600x1200 DS W',0 ;34 +db '1600x1200 DR F',0 ;35 +db '1600x1200 DS F',0 ;36 ; Video Mode Feature Availability (1 = Available, 0 = Not Available) ; Left side starts with Video Mode 0 -; 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 -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,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,1,1,1,1,1,1,1,1,1,1 ; New Graphics Mode Available -NEWSYM GUISLVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1 ; 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,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,0,1,0,1,1,0,1,0,1,1,0,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,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,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,0,0,0,0,0,0,0,0,0,0 ; Full Screen -NEWSYM GUIWSVID, 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,0,0,0,0,0,0,0,0,0,0 ; (Full Scr. | Wide Scr.) -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,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,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,0,1,0,1,1,0,1,0,1,1,0,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,0,1,0,1,1,0,1,0,1,1,0,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,0,1,0,1,1,0,1,0,1,1,0,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,0,0,1,1,1,0,0,1,1,1,0,0 ; If Windows Full Screen -NEWSYM GUIDSIZE, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,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,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,0,0,0,0,0,0,0,0,0,0 -NEWSYM GUITBWVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0,0,0,1,1,1,0,0,1,1,1,0,0 ; Triple Buffering (Win) -NEWSYM GUISMODE, db 0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0 -NEWSYM GUIDSMODE, db 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1 -NEWSYM GUIHQ2X, db 0,0,0,1,0,1,1,1,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,0,0 ; hq2x filter -NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter -NEWSYM GUIHQ4X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1 ; hq4x filter +; 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 +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,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,1,1,1,1,1,1,1,1,1,1,1,1 ; New Graphics Mode Available +NEWSYM GUISLVID, db 0,0,0,1,0,1,1,1,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; 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,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,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,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,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,0,0,0,0,0,0,0,0,0,0,0,0 ; Full Screen +NEWSYM GUIWSVID, 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,0,0,0,0,0,0,0,0,0,0,0,0 ; (Full Scr. | Wide Scr.) +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,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,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,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,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,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,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,0,1,0,1,0,1,1,0,1,0,1,1,0,1,0,1,0,1,1,0,1,0,1,1,0,1,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,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,0,0,0,0,0,0,0,0,0,0,0,0 +NEWSYM GUITBWVID, db 0,1,0,0,0,0,1,1,1,0,0,0,0,1,1,1,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 GUISMODE, db 0,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,0 +NEWSYM GUIDSMODE, db 0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,1,0,0,1,0,1,0,1 +NEWSYM GUIHQ2X, db 0,0,0,1,0,1,1,1,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,0,0,0,0 ; hq2x filter +NEWSYM GUIHQ3X, db 0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter +NEWSYM GUIHQ4X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,1,0,1,0,1,1,0,1,1,1 ; hq4x filter SECTION .text diff --git a/zsnes/src/win/winlink.cpp b/zsnes/src/win/winlink.cpp index 1e6351f6..407a3ee3 100644 --- a/zsnes/src/win/winlink.cpp +++ b/zsnes/src/win/winlink.cpp @@ -1944,8 +1944,10 @@ void initwinvideo(void) break; case 33: case 34: + case 35: + case 36: WindowWidth=1600; - WindowHeight=1024; + WindowHeight=1200; break; default: WindowWidth=256; diff --git a/zsnes/src/zloader.c b/zsnes/src/zloader.c index 47a3c3ba..c049f719 100644 --- a/zsnes/src/zloader.c +++ b/zsnes/src/zloader.c @@ -120,7 +120,7 @@ static void display_help() put_line(" -u Force PAL timing"); put_line(" -v # Select Video Mode :"); #ifdef __WIN32__ -#define VIDEO_MODE_COUNT 32 +#define VIDEO_MODE_COUNT 34 put_line(" 0 = 256x224 R WIN 1 = 256x224 R FULL"); put_line(" 2 = 512x448 R WIN 3 = 512x448 DR WIN"); put_line(" 4 = 640x480 S WIN 5 = 640x480 DS WIN"); @@ -137,23 +137,26 @@ static void display_help() put_line(" 26 = 1280x960 DR FULL 27 = 1280x960 DS FULL"); put_line(" 28 = 1280x1024 S WIN 29 = 1280x1024 DS WIN"); put_line(" 30 = 1280x1024 S FULL 31 = 1280x1024 DR FULL"); - put_line(" 32 = 1280x1024 DS FULL"); + put_line(" 32 = 1280x1024 DS FULL 33 = 1600x1200 S WIN"); + put_line(" 34 = 1600x1200 DS WIN 35 = 1600x1200 DR FULL"); + put_line(" 36 = 1600x1200 DS FULL"); #endif #ifdef __UNIXSDL__ put_line(" 0 = 256x224 R WIN 1 = 256x224 R FULL"); - put_line(" 2 = 512x448 DR WIN 3 = 640x480 DS FULL"); + put_line(" 2 = 512x448 DR WIN 3 = 512x448 DR FULL"); + put_line(" 4 = 640x480 DR FULL 5 = 800x600 DR FULL"); #ifndef __OPENGL__ -#define VIDEO_MODE_COUNT 3 +#define VIDEO_MODE_COUNT 5 #else -#define VIDEO_MODE_COUNT 18 - put_line(" 4 = 256x224 OR WIN 5 = 512x448 ODR WIN"); - put_line(" 6 = 640x480 ODS FULL 7 = 640x480 ODS WIN"); - put_line(" 8 = 640x576 ODR WIN 9 = 768x672 ODR WIN"); - put_line(" 10 = 800x600 ODS FULL 11 = 800x600 ODS WIN"); - put_line(" 12 = 896x784 ODR WIN 13 = 1024x768 ODS FULL"); - put_line(" 14 = 1024x768 ODS WIN 15 = 1024x896 ODR WIN"); - put_line(" 16 = 1280x1024 ODS FULL 17 = 1600x1200 ODR FULL"); - put_line(" 18 = VARIABLE ODS WIN"); +#define VIDEO_MODE_COUNT 21 + put_line(" 6 = 256x224 OR WIN 7 = 512x448 ODR WIN"); + put_line(" 8 = 640x480 ODS FULL 9 = 640x480 ODS WIN"); + put_line(" 10 = 640x576 ODR WIN 11 = 768x672 ODR WIN"); + put_line(" 12 = 800x600 ODS FULL 13 = 800x600 ODS WIN"); + put_line(" 14 = 896x784 ODR WIN 15 = 1024x768 ODS FULL"); + put_line(" 16 = 1024x768 ODS WIN 17 = 1024x896 ODR WIN"); + put_line(" 18 = 1280x960 ODS FULL 19 = 1280x1024 ODR FULL"); + put_line(" 20 = 1600x1200 ODS FULL 21 = VARIABLE ODS WIN"); #endif #endif #ifdef __MSDOS__