New resolutions for SDL port. [Aerdan]

This commit is contained in:
grinvader
2005-07-18 12:02:07 +00:00
parent ffaf266913
commit d23d41b1d5
3 changed files with 81 additions and 71 deletions

View File

@@ -452,21 +452,22 @@ void DOScreatenewcfg()
#endif
#ifdef __UNIXSDL__
#ifdef __OPENGL__
WRITE_LINE("; Video Mode, 0 - 18\r\n");
WRITE_LINE("; Video Mode, 0 - 21\r\n");
#else
WRITE_LINE("; Video Mode, 0 - 3\r\n");
WRITE_LINE("; Video Mode, 0 - 5\r\n");
#endif
WRITE_LINE("; 0 = 256x224 R WIN 1 = 256x224 R FULL\r\n");
WRITE_LINE("; 2 = 512x448 DR WIN 3 = 640x480 DS FULL\r\n");
WRITE_LINE("; 2 = 512x448 DR WIN 3 = 512x448 DR FULL\r\n");
WRITE_LINE("; 4 = 640x480 DR FULL 5 = 800x600 DR FULL\r\n");
#ifdef __OPENGL__
WRITE_LINE("; 4 = 256x224 OR WIN 5 = 512x448 ODR WIN\r\n");
WRITE_LINE("; 6 = 640x480 ODS FULL 7 = 640x480 ODS WIN\r\n");
WRITE_LINE("; 8 = 640x576 ODR WIN 9 = 768x672 ODR WIN\r\n");
WRITE_LINE("; 10 = 800x600 ODS FULL 11 = 800x600 ODS WIN\r\n");
WRITE_LINE("; 12 = 896x784 ODR WIN 13 = 1024x768 ODS FULL\r\n");
WRITE_LINE("; 14 = 1024x768 ODS WIN 15 = 1024x896 ODR WIN\r\n");
WRITE_LINE("; 16 = 1280x1024 ODS FULL 17 = 1600x1200 ODR FULL\r\n");
WRITE_LINE("; 18 = VARIABLE ODS WIN\r\n");
WRITE_LINE("; 6 = 256x224 OR WIN 7 = 512x448 ODR WIN\r\n");
WRITE_LINE("; 8 = 640x480 ODS FULL 9 = 640x480 ODS WIN\r\n");
WRITE_LINE("; 10 = 640x576 ODR WIN 11 = 768x672 ODR WIN\r\n");
WRITE_LINE("; 12 = 800x600 ODS FULL 13 = 800x600 ODS WIN\r\n");
WRITE_LINE("; 14 = 896x784 ODR WIN 15 = 1024x768 ODS FULL\r\n");
WRITE_LINE("; 16 = 1024x768 ODS WIN 17 = 1024x896 ODR WIN\r\n");
WRITE_LINE("; 18 = 1280x960 ODS FULL 19 = 1280x1024 ODS FULL\r\n");
WRITE_LINE("; 20 = 1600x1200 ODR FULL 21 = VARIABLE ODR WIN\r\n");
#endif
sprintf(buffer, "\r\nVideoModeLin = %d\r\n\r\n", cfgcvidmode);
SAVE_LINE(buffer);

View File

@@ -768,9 +768,9 @@ SECTION .data
; Total Number of Video Modes
%ifdef __OPENGL__
NEWSYM NumVideoModes, dd 19
NEWSYM NumVideoModes, dd 22
%else
NEWSYM NumVideoModes, dd 4
NEWSYM NumVideoModes, dd 6
%endif
; GUI Video Mode Names - Make sure that all names are of the same length
@@ -779,53 +779,56 @@ NEWSYM GUIVideoModeNames
db '256X224 R W',0 ;0
db '256x224 R F',0 ;1
db '512X448 DR W',0 ;2
db '640x480 DR F',0 ;3
db '512x448 DR F',0 ;3
db '640x480 DR F',0 ;4
db '800x600 DR F',0 ;5
%ifdef __OPENGL__
db '256x224 OR W',0 ;4
db '512x448 ODR W',0 ;5
db '640x480 ODS F',0 ;6
db '640x480 ODS W',0 ;7
db '640x576 ODR W',0 ;8
db '768x672 ODR W',0 ;9
db '800x600 ODS F',0 ;10
db '800x600 ODS W',0 ;11
db '896x784 ODR W',0 ;12
db '1024x768 ODS F',0 ;13
db '1024x768 ODS W',0 ;14
db '1024x896 ODR W',0 ;15
db '1280x1024 ODS F',0 ;16
db '1600x1200 ODS F',0 ;17
db 'VARIABLE ODR W',0 ;18
db '256x224 OR W',0 ;6
db '512x448 ODR W',0 ;7
db '640x480 ODS F',0 ;8
db '640x480 ODS W',0 ;9
db '640x576 ODR W',0 ;10
db '768x672 ODR W',0 ;11
db '800x600 ODS F',0 ;12
db '800x600 ODS W',0 ;13
db '896x784 ODR W',0 ;14
db '1024x768 ODS F',0 ;15
db '1024x768 ODS W',0 ;16
db '1024x896 ODR W',0 ;17
db '1280x960 ODS F',0 ;18
db '1280x1024 ODS F',0 ;19
db '1600x1200 ODS F',0 ;20
db 'VARIABLE ODR W',0 ;21
%endif
; Video Mode Feature Availability (1 = Available, 0 = Not Available)
; Left side starts with Video Mode 0
; vid mode column = 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8
NEWSYM GUI16VID, db 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 ; New Graphics Mode Available
NEWSYM GUISLVID, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,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 ; Interpolation
NEWSYM GUII2VID, db 0,0,1,1,0,0,0,0,0,0,0,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,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 ; (Interp | Eagle)
NEWSYM GUIFSVID, db 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 ; (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 ; Small Screen
NEWSYM GUITBVID, db 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,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; Half/Quarter Scanlines
NEWSYM GUI2xVID, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 2xSaI/Super Eagle Engines
NEWSYM GUIM7VID, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; ?Mode 7 video thing?
NEWSYM GUIWFVID, db 0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,0 ; If Windows Full Screen
NEWSYM GUIDSIZE, db 0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
NEWSYM GUIRATIO, db 0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
NEWSYM GUIBIFIL, db 0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; binlinear = 1, nearest = 0
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
NEWSYM GUIMBVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
NEWSYM GUIHQ2X, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1 ; hq2x filter
NEWSYM GUIHQ3X, db 0,0,0,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 ; hq4x filter
NEWSYM GUIRESIZE, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ; resizable
; vid mode column = 0,1,2,3,4,5,6,7,8,9,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,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 ; New Graphics Mode Available
NEWSYM GUISLVID, db 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,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 ; Interpolation
NEWSYM GUII2VID, db 0,0,1,1,1,1,0,0,0,0,0,0,0,0,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,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 ; (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 ; 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 ; (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 ; 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 ; Triple Buffering
NEWSYM GUIHSVID, db 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; Half/Quarter Scanlines
NEWSYM GUI2xVID, db 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 2xSaI/Super Eagle Engines
NEWSYM GUIM7VID, db 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; ?Mode 7 video thing?
NEWSYM GUIWFVID, db 0,1,0,1,1,1,0,0,1,0,0,0,1,0,0,1,0,0,1,1,1,0 ; If Windows Full Screen
NEWSYM GUIDSIZE, db 0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
NEWSYM GUIRATIO, db 0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; binlinear = 1, nearest = 0
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
NEWSYM GUIMBVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
NEWSYM GUIHQ2X, db 0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1 ; hq2x filter
NEWSYM GUIHQ3X, db 0,0,0,0,0,0,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 ; hq4x filter
NEWSYM GUIRESIZE, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 ; resizable
SECTION .text

View File

@@ -809,10 +809,10 @@ void initwinvideo(void)
FullScreen = GUIWFVID[cvidmode];
#ifdef __OPENGL__
UseOpenGL = 0;
if (cvidmode > 3)
if (cvidmode > 5)
UseOpenGL = 1;
#else
if (cvidmode > 3)
if (cvidmode > 5)
cvidmode = 2; // set it to the default 512x448 W
#endif
@@ -826,48 +826,54 @@ void initwinvideo(void)
WindowHeight = 224;
break;
case 2:
case 5:
case 18: // Variable
case 3:
case 7:
case 21: // Variable
WindowWidth = 512;
WindowHeight = 448;
break;
case 3:
case 6:
case 7:
case 4:
case 8:
case 9:
WindowWidth = 640;
WindowHeight = 480;
break;
case 8:
case 10:
WindowWidth = 640;
WindowHeight = 576;
break;
case 9:
case 11:
WindowWidth = 768;
WindowHeight = 672;
break;
case 10:
case 11:
case 5:
case 12:
case 13:
WindowWidth = 800;
WindowHeight = 600;
break;
case 12:
case 14:
WindowWidth = 896;
WindowHeight = 784;
break;
case 13:
case 14:
case 15:
case 16:
WindowWidth = 1024;
WindowHeight = 768;
break;
case 15:
case 17:
WindowWidth = 1024;
WindowHeight = 896;
break;
case 16:
case 18:
WindowWidth = 1280;
WindowHeight = 960;
break;
case 19:
WindowWidth = 1280;
WindowHeight = 1024;
break;
case 17:
case 20:
WindowWidth = 1600;
WindowHeight = 1200;
break;