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

View File

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

View File

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

View File

@@ -895,7 +895,7 @@ SECTION .data
; Total Number of Video Modes
%ifdef __OPENGL__
NEWSYM NumVideoModes, dd 17
NEWSYM NumVideoModes, dd 18
%else
NEWSYM NumVideoModes, dd 4
%endif
@@ -908,47 +908,49 @@ db '256x224 R FULL',0 ;1
db '512X448 DR WIN ',0 ;2
db '640x480 DR FULL',0 ;3
%ifdef __OPENGL__
db '256x224 OGL WIN ',0 ;4
db '512x448 OGL WIN ',0 ;5
db '640x480 OGL FULL',0 ;6
db '640x576 OGL WIN ',0 ;7
db '768x672 OGL WIN ',0 ;8
db '896x784 OGL WIN ',0 ;9
db '1024x896 OGL WIN ',0 ;10
db '800x600 OGL FULL',0 ;11
db '1024x768 OGL FULL',0 ;12
db '640x480 OGL WIN ',0 ;13
db '800x600 OGL WIN ',0 ;14
db '1024x768 OGL WIN ',0 ;15
db 'VARIABLE OGL WIN ',0 ;16
db '256x224 OR WIN ',0 ;4
db '512x448 ODR WIN ',0 ;5
db '640x480 ODS FULL',0 ;6
db '640x480 ODS WIN ',0 ;7
db '640x576 ODR WIN ',0 ;8
db '768x672 ODR WIN ',0 ;9
db '800x600 ODS FULL',0 ;10
db '800x600 ODS WIN ',0 ;11
db '896x784 ODR WIN ',0 ;12
db '1024x768 ODS FULL',0 ;13
db '1024x768 ODS WIN ',0 ;14
db '1024x896 ODR WIN ',0 ;15
db '1280x1024ODS FULL',0 ;16
db 'VARIABLE ODS WIN ',0 ;17
%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
NEWSYM GUI16VID, db 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 GUISLVID, db 0,0,1,1,0,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 GUII2VID, db 0,0,1,1,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 GUIIEVID, db 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 GUIWSVID, db 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 GUITBVID, db 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 GUI2xVID, db 0,0,1,1,0,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 GUIWFVID, db 0,1,0,1,0,0,1,0,0,0,0,1,1,0,0,0,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 GUIRATIO, db 0,1,0,0,0,0,1,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 GUITBWVID, db 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 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 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 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
; 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,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 ; 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 ; Scanlines
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,0 ; Interpolation(w)
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,0 ; (Interp | Eagle)
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,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 ; Small Screen
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,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 ; 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 ; ?Mode 7 video thing?
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,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,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 ; Triple Buffering (Win)
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,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 ; hq3x 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

View File

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