Added "O" flag in Video Modes, instead of just listing OGL. (sdlintrf.asm)

Added "O" flag to Legend in Video Options (guiwindp.inc)
Moved Scanlines options down (for above) (guiwindp.inc, guimouse.inc)
Added 1280x1024 OGL (ODS) Full, for people with LCD Monitors (sdlintrf.asm, sdllink.c)
Fixed 640x480 OGL (ODS) Win (sdllink.c)
Organized the video menu, by res. (sdlintrf.asm, sdllink.c)
Fixed insanely long HQ#x lines in sdlintrf.asm (sdllink.c)
Thank Aerdan and robust for the help with this!
This commit is contained in:
ipher
2005-01-12 12:43:02 +00:00
parent b0bff2db0f
commit c68f9a34c7
5 changed files with 116 additions and 60 deletions

View File

@@ -454,13 +454,13 @@ void DOScreatenewcfg()
WRITE_LINE("; 0 = 256x224 WIN 1 = 256x224 FULL\r\n"); WRITE_LINE("; 0 = 256x224 WIN 1 = 256x224 FULL\r\n");
WRITE_LINE("; 2 = 512x448 WIN 3 = 640x480 FULL\r\n"); WRITE_LINE("; 2 = 512x448 WIN 3 = 640x480 FULL\r\n");
#ifdef __OPENGL__ #ifdef __OPENGL__
WRITE_LINE("; 4 = 256x224 OGL WIN 5 = 512x448 OGL WIN\r\n"); WRITE_LINE("; 4 = 256x224 OR WIN 5 = 512x448 ODR WIN\r\n");
WRITE_LINE("; 6 = 640x480 OGL FULL 7 = 640x576 OGL WIN\r\n"); WRITE_LINE("; 6 = 640x480 ODS FULL 7 = 640x480 ODS WIN\r\n");
WRITE_LINE("; 8 = 768x672 OGL WIN 9 = 896x784 OGL WIN\r\n"); WRITE_LINE("; 8 = 640x576 ODR WIN 9 = 768x672 ODR WIN\r\n");
WRITE_LINE("; 10 = 1024x896 OGL WIN 11 = 800x600 OGL FULL\r\n"); WRITE_LINE("; 10 = 800x600 ODS FULL 11 = 800x600 ODS WIN\r\n");
WRITE_LINE("; 12 = 1024x768 OGL FULL 13 = 640x480 OGL WIN\r\n"); WRITE_LINE("; 12 = 896x784 ODR FULL 13 = 1024x768 ODS WIN\r\n");
WRITE_LINE("; 14 = 800x600 OGL WIN 15 = 1024x768 OGL WIN\r\n"); WRITE_LINE("; 14 = 1024x768 ODS WIN 15 = 1024x896 ODR WIN\r\n");
WRITE_LINE("; 16 = VARIABLE OGL WIN\r\n"); WRITE_LINE("; 16 = 1280x1024 OGL WIN 17 = VARIABLE ODS WIN\r\n");
#endif #endif
sprintf(buffer, "\r\nVideoModeLin = %d\r\n\r\n", cfgcvidmode); sprintf(buffer, "\r\nVideoModeLin = %d\r\n\r\n", cfgcvidmode);
SAVE_LINE(buffer); SAVE_LINE(buffer);

View File

@@ -2332,7 +2332,11 @@ DisplayGUIVideoClick:
mov bl,[cvidmode] mov bl,[cvidmode]
cmp byte[GUISLVID+ebx],0 cmp byte[GUISLVID+ebx],0
je near .nocheckboxb je near .nocheckboxb
%ifdef __LINUX__
GUIClickCButton4 21,119,byte[scanlines],byte[cfgscanline],1
%else
GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1 GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1
%endif
.nocheckboxb .nocheckboxb
xor ebx,ebx xor ebx,ebx
mov bl,[cvidmode] mov bl,[cvidmode]
@@ -2357,8 +2361,13 @@ DisplayGUIVideoClick:
mov bl,[cvidmode] mov bl,[cvidmode]
cmp byte[GUIHSVID+ebx],0 cmp byte[GUIHSVID+ebx],0
je near .nohsline je near .nohsline
%ifdef __LINUX__
GUIClickCButton4 61,119,byte[scanlines],byte[cfgscanline],3
GUIClickCButton4 101,119,byte[scanlines],byte[cfgscanline],2
%else
GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3 GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3
GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2 GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2
%endif
.nohsline .nohsline
%ifdef __WIN32__ %ifdef __WIN32__
xor ebx,ebx xor ebx,ebx

View File

@@ -1638,21 +1638,34 @@ DisplayGUIVideo:
GUIOuttextwin2 5,12,90,GUIVideoTextw2 GUIOuttextwin2 5,12,90,GUIVideoTextw2
GUIOuttextwin2 5,12,97,GUIVideoTextw3 GUIOuttextwin2 5,12,97,GUIVideoTextw3
%endif %endif
%ifdef __LINUX__
GUIOuttextwin2 5,12,104,GUIVideoTextw4
%endif
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
cmp byte[GUISLVID+eax],0 cmp byte[GUISLVID+eax],0
je near .notext2 je near .notext2
%ifdef __LINUX__
GUIOuttextwin2 5,13,116,GUIVideoTextb
GUIOuttextwin2u 5,36,124,GUIVideoTexta,0
%else
GUIOuttextwin2 5,13,111,GUIVideoTextb GUIOuttextwin2 5,13,111,GUIVideoTextb
GUIOuttextwin2u 5,36,119,GUIVideoTexta,0 GUIOuttextwin2u 5,36,119,GUIVideoTexta,0
%endif
.notext2 .notext2
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
cmp byte[GUIHSVID+eax],0 cmp byte[GUIHSVID+eax],0
je near .notexta je near .notexta
%ifdef __LINUX__
GUIOuttextwin2 5,13,116,GUIVideoTextb
GUIOuttextwin2u 5,76,124,GUIVideoTexta2,0
GUIOuttextwin2u 5,116,124,GUIVideoTexta3,0
%else
GUIOuttextwin2 5,13,111,GUIVideoTextb GUIOuttextwin2 5,13,111,GUIVideoTextb
GUIOuttextwin2u 5,76,119,GUIVideoTexta2,0 GUIOuttextwin2u 5,76,119,GUIVideoTexta2,0
GUIOuttextwin2u 5,116,119,GUIVideoTexta3,0 GUIOuttextwin2u 5,116,119,GUIVideoTexta3,0
%endif
.notexta .notexta
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
@@ -1760,21 +1773,35 @@ DisplayGUIVideo:
GUIOuttextwin2 5,11,82,GUIVideoTextw1 GUIOuttextwin2 5,11,82,GUIVideoTextw1
GUIOuttextwin2 5,11,89,GUIVideoTextw2 GUIOuttextwin2 5,11,89,GUIVideoTextw2
GUIOuttextwin2 5,11,96,GUIVideoTextw3 GUIOuttextwin2 5,11,96,GUIVideoTextw3
%endif
%ifdef __LINUX__
GUIOuttextwin2 5,11,103,GUIVideoTextw4
%endif %endif
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
cmp byte[GUISLVID+eax],0 cmp byte[GUISLVID+eax],0
je .notext2b je .notext2b
%ifdef __LINUX__
GUIOuttextwin2 5,12,115,GUIVideoTextb
GUIOuttextwin2 5,35,123,GUIVideoTexta
%else
GUIOuttextwin2 5,12,110,GUIVideoTextb GUIOuttextwin2 5,12,110,GUIVideoTextb
GUIOuttextwin2 5,35,118,GUIVideoTexta GUIOuttextwin2 5,35,118,GUIVideoTexta
%endif
.notext2b .notext2b
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
cmp byte[GUIHSVID+eax],0 cmp byte[GUIHSVID+eax],0
je near .notextab je near .notextab
%ifdef __LINUX__
GUIOuttextwin2 5,12,115,GUIVideoTextb
GUIOuttextwin2 5,75,123,GUIVideoTexta2
GUIOuttextwin2 5,115,123,GUIVideoTexta3
%else
GUIOuttextwin2 5,12,110,GUIVideoTextb GUIOuttextwin2 5,12,110,GUIVideoTextb
GUIOuttextwin2 5,75,118,GUIVideoTexta2 GUIOuttextwin2 5,75,118,GUIVideoTexta2
GUIOuttextwin2 5,115,118,GUIVideoTexta3 GUIOuttextwin2 5,115,118,GUIVideoTexta3
%endif
.notextab .notextab
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
@@ -1894,7 +1921,11 @@ DisplayGUIVideo:
jne .nocheckbox jne .nocheckbox
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox .nocheckbox
%ifdef __LINUX__
GUIDisplayIconWin 5,21,119,[GUITemp]
%else
GUIDisplayIconWin 5,21,114,[GUITemp] GUIDisplayIconWin 5,21,114,[GUITemp]
%endif
.nocheckboxb .nocheckboxb
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
@@ -1905,13 +1936,21 @@ DisplayGUIVideo:
jne .nocheckboxv jne .nocheckboxv
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckboxv .nocheckboxv
%ifdef __LINUX__
GUIDisplayIconWin 5,61,119,[GUITemp]
%else
GUIDisplayIconWin 5,61,114,[GUITemp] GUIDisplayIconWin 5,61,114,[GUITemp]
%endif
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[scanlines],2 cmp byte[scanlines],2
jne .nocheckboxv2 jne .nocheckboxv2
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckboxv2 .nocheckboxv2
%ifdef __LINUX__
GUIDisplayIconWin 5,101,119,[GUITemp]
%else
GUIDisplayIconWin 5,101,114,[GUITemp] GUIDisplayIconWin 5,101,114,[GUITemp]
%endif
.nocheckboxw .nocheckboxw
xor eax,eax xor eax,eax
mov al,[cvidmode] mov al,[cvidmode]
@@ -2207,6 +2246,7 @@ GUIVideoTextw0 db 'LEGEND:',0
GUIVideoTextw1 db ' S = SCALED TO FIT SCREEN',0 GUIVideoTextw1 db ' S = SCALED TO FIT SCREEN',0
GUIVideoTextw2 db ' R = MATCHED SCREEN RATIO',0 GUIVideoTextw2 db ' R = MATCHED SCREEN RATIO',0
GUIVideoTextw3 db ' D = ALLOW 2XSAI,HIRES,ETC',0 GUIVideoTextw3 db ' D = ALLOW 2XSAI,HIRES,ETC',0
GUIVideoTextw4 db ' O = OPENGL MODE',0
SECTION .bss SECTION .bss
GUIVStA resd 3 GUIVStA resd 3
@@ -5042,7 +5082,7 @@ DisplayGUIOptns:
GUIOuttextwin2u 10,26,183,GUIGUIOptnsTextF,2 GUIOuttextwin2u 10,26,183,GUIGUIOptnsTextF,2
GUIOuttextwin2u 10,138,38,GUIGUIOptnsTextK,1 GUIOuttextwin2u 10,138,38,GUIGUIOptnsTextK,1
GUIOuttextwin2u 10,26,193,GUIGUIOptnsTextL,1 GUIOuttextwin2u 10,26,193,GUIGUIOptnsTextL,1
GUIOuttextwin2u 10,138,58,GUIGUIOptnsTextN,3 GUIOuttextwin2u 10,138,58,GUIGUIOptnsTextN,1
%endif %endif
mov byte[GUIGUIOptnsText6],'R' mov byte[GUIGUIOptnsText6],'R'
GUIOuttextwin2 10,16,123,GUIGUIOptnsText6 GUIOuttextwin2 10,16,123,GUIGUIOptnsText6

View File

@@ -895,7 +895,7 @@ SECTION .data
; Total Number of Video Modes ; Total Number of Video Modes
%ifdef __OPENGL__ %ifdef __OPENGL__
NEWSYM NumVideoModes, dd 17 NEWSYM NumVideoModes, dd 18
%else %else
NEWSYM NumVideoModes, dd 4 NEWSYM NumVideoModes, dd 4
%endif %endif
@@ -908,47 +908,49 @@ db '256x224 R FULL',0 ;1
db '512X448 DR WIN ',0 ;2 db '512X448 DR WIN ',0 ;2
db '640x480 DR FULL',0 ;3 db '640x480 DR FULL',0 ;3
%ifdef __OPENGL__ %ifdef __OPENGL__
db '256x224 OGL WIN ',0 ;4 db '256x224 OR WIN ',0 ;4
db '512x448 OGL WIN ',0 ;5 db '512x448 ODR WIN ',0 ;5
db '640x480 OGL FULL',0 ;6 db '640x480 ODS FULL',0 ;6
db '640x576 OGL WIN ',0 ;7 db '640x480 ODS WIN ',0 ;7
db '768x672 OGL WIN ',0 ;8 db '640x576 ODR WIN ',0 ;8
db '896x784 OGL WIN ',0 ;9 db '768x672 ODR WIN ',0 ;9
db '1024x896 OGL WIN ',0 ;10 db '800x600 ODS FULL',0 ;10
db '800x600 OGL FULL',0 ;11 db '800x600 ODS WIN ',0 ;11
db '1024x768 OGL FULL',0 ;12 db '896x784 ODR WIN ',0 ;12
db '640x480 OGL WIN ',0 ;13 db '1024x768 ODS FULL',0 ;13
db '800x600 OGL WIN ',0 ;14 db '1024x768 ODS WIN ',0 ;14
db '1024x768 OGL WIN ',0 ;15 db '1024x896 ODR WIN ',0 ;15
db 'VARIABLE OGL WIN ',0 ;16 db '1280x1024ODS FULL',0 ;16
db 'VARIABLE ODS WIN ',0 ;17
%endif %endif
; Video Mode Feature Availability (1 = Available, 0 = Not Available) ; Video Mode Feature Availability (1 = Available, 0 = Not Available)
; Left side starts with Video Mode 0 ; 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 ; vid mode column = 0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7
NEWSYM GUI16VID, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; 16-bit mode NEWSYM GUI16VID, db 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 ; New Graphics Mode Available NEWSYM GUINGVID, db 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 ; Scanlines NEWSYM GUISLVID, db 0,0,1,1,0,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 ; Interpolation NEWSYM GUIINVID, db 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 ; Interpolation(w) NEWSYM GUII2VID, db 0,0,1,1,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 ; Eagle NEWSYM GUIEAVID, db 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 ; (Interp | Eagle) NEWSYM GUIIEVID, db 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 ; Full Screen NEWSYM GUIFSVID, db 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 ; (Full Scr. | Wide Scr.) NEWSYM GUIWSVID, db 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 ; Small Screen NEWSYM GUISSVID, db 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 ; Triple Buffering NEWSYM GUITBVID, db 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 ; Half/Quarter Scanlines NEWSYM GUIHSVID, db 0,0,1,1,0,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 ; 2xSaI/Super Eagle Engines NEWSYM GUI2xVID, db 0,0,1,1,0,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 ; ?Mode 7 video thing? NEWSYM GUIM7VID, db 0,0,1,1,0,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,0,1,1,0,0,0,0 ; If Windows Full Screen NEWSYM GUIWFVID, db 0,1,0,1,0,0,1,0,0,0,1,0,0,1,0,0,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 NEWSYM GUIDSIZE, db 0,0,1,1,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 NEWSYM GUIRATIO, db 0,1,0,0,0,0,1,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 ; binlinear = 1, nearest = 0 NEWSYM GUIBIFIL, db 0,0,0,0,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 ; Triple Buffering (Win) NEWSYM GUITBWVID, db 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 NEWSYM GUIMBVID, db 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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq2x filter NEWSYM GUIHQ2X, db 0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,1,0 ; 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,0,0,0,0,0,0,0,0,0,0,0 ; hq3x filter NEWSYM GUIHQ3X, db 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,0,0,0,0,0,0,0,0,0,0,0 ; hq4x filter NEWSYM GUIHQ4X, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; hq4x filter
SECTION .text SECTION .text

View File

@@ -821,6 +821,7 @@ void initwinvideo(void)
switch (cvidmode) switch (cvidmode)
{ {
//case 0: //case 0:
//case 4;
default: default:
WindowWidth = 256; WindowWidth = 256;
WindowHeight = 224; WindowHeight = 224;
@@ -831,42 +832,46 @@ void initwinvideo(void)
break; break;
case 2: case 2:
case 5: case 5:
case 13:
WindowWidth = 512; WindowWidth = 512;
WindowHeight = 448; WindowHeight = 448;
break; break;
case 3: case 3:
case 6: case 6:
case 16: case 7:
case 17: // Variable
WindowWidth = 640; WindowWidth = 640;
WindowHeight = 480; WindowHeight = 480;
break; break;
case 7: case 8:
WindowWidth = 640; WindowWidth = 640;
WindowHeight = 576; WindowHeight = 576;
break; break;
case 8: case 9:
WindowWidth = 768; WindowWidth = 768;
WindowHeight = 672; WindowHeight = 672;
break; break;
case 9:
WindowWidth = 896;
WindowHeight = 784;
break;
case 10: case 10:
WindowWidth = 1024;
WindowHeight = 896;
break;
case 11: case 11:
case 14:
WindowWidth = 800; WindowWidth = 800;
WindowHeight = 600; WindowHeight = 600;
break; break;
case 12: case 12:
case 15: WindowWidth = 896;
WindowHeight = 784;
break;
case 13:
case 14:
WindowWidth = 1024; WindowWidth = 1024;
WindowHeight = 768; WindowHeight = 768;
break; break;
case 15:
WindowWidth = 1024;
WindowHeight = 896;
break;
case 16:
WindowWidth = 1280;
WindowHeight = 1024;
break;
} }
adjustMouseXScale(); adjustMouseXScale();
adjustMouseYScale(); adjustMouseYScale();