Forgot to fix the hq soft screen refresh when using the hotkey, done. You can now switch from any filter to any other without restriction using either mouse or keyb. Fixed a case where switching modes with alt-enter could cause a crash. NTSC filter option limited to video modes likely to support it first. Set minimum rewind interval to 200ms - dividing by zero blows, man. Some comments and cleanup.

This commit is contained in:
grinvader
2006-03-23 11:58:16 +00:00
parent f2375e8875
commit 3bbe626f68
8 changed files with 340 additions and 362 deletions

View File

@@ -949,27 +949,27 @@ db ' ',0
; 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
NEWSYM GUI16VID, db 0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0 ; New Graphics Mode Available
NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0 ; Scanlines
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0 ; Interpolation
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 ; Eagle
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0 ; (Interp | Eagle)
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0 ; Full Screen
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0 ; (Full Scr. | Wide Scr.)
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0 ; Small Screen
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0 ; Triple Buffering
NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 ; Half/Quarter Scanlines
NEWSYM GUI2xVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; 2xSaI/Super Eagle Engines
NEWSYM GUIWFVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; If Windows Full Screen
NEWSYM GUII2VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Super 2xSAI Engine
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; Hi-Resolution Mode 7
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Bilinear Filtering
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Triple Buffering (Win)
NEWSYM GUIHQ2X, db 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,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 ; HQ4X Filter
NEWSYM GUINTSC, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; NTSC Filter
NEWSYM GUI16VID, db 0,0,0,0,0,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0 ; 16-bit mode
NEWSYM GUINGVID, db 1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,0 ; New Graphics Engine
NEWSYM GUISLVID, db 0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,1,1,1,0 ; Scanlines
NEWSYM GUIINVID, db 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,1,0 ; DOS Interpolation
NEWSYM GUIEAVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0 ; DOS Eagle
NEWSYM GUIIEVID, db 0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,1,0,1,0 ; DOS Eagle+Int
NEWSYM GUIFSVID, db 0,0,0,0,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,0 ; DOS Fullscreen
NEWSYM GUIWSVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0 ; DOS Widescreen
NEWSYM GUISSVID, db 0,0,0,0,0,0,1,0,0,0,0,1,1,1,1,1,1,1,1,0 ; DOS Smallscreen
NEWSYM GUITBVID, db 0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0 ; DOS Triple Buffer
NEWSYM GUIHSVID, db 0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0 ; Half/Quarter Scanlines
NEWSYM GUI2xVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; 2xSaI/Super Engines
NEWSYM GUIWFVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (Fullscreen)
NEWSYM GUII2VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (Interpolation)
NEWSYM GUIM7VID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0 ; Hires Mode 7
NEWSYM GUIBIFIL, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (SDL Bilinear Filter)
NEWSYM GUITBWVID, db 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; (Win Triple Buffer)
NEWSYM GUIHQ2X, db 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,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 ; (hq4x Filter)
NEWSYM GUINTVID, db 0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0 ; NTSC Filter
SECTION .text
; ****************************

View File

@@ -88,13 +88,13 @@ EXTSYM NextLineCache,ResetTripleBuf,GUINGVID,ScanCodeListing
EXTSYM AdjustFrequency,GUISaveVars,Init_Mouse,Get_MouseData,Set_MouseXMax
EXTSYM Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement,GUIInit
EXTSYM GUIDeInit,SpecialLine,DrawWater,DrawBurn,SA1Enable,SA1RAMArea
EXTSYM MMXCheck,SaveCombFile,showinfogui
EXTSYM MMXCheck,SaveCombFile,showinfogui,GetDate,horizon_get
EXTSYM ErrorPointer,MessageOn,GetTime,sndrot,regsbackup,GetScreen
EXTSYM GUITBWVID,Clear2xSaIBuffer,MouseWindow,cfgcvidmode
EXTSYM GUITBWVID,Clear2xSaIBuffer,MouseWindow,cfgcvidmode,cfgsoundon
EXTSYM ExitFromGUI,GUIWFVID,cfgvsync,newgfx16b,cfgscanline,cfginterp
EXTSYM NumVideoModes,cfgvolume,MusicVol,DSPMem,NumInputDevices,GUIInputNames
EXTSYM GUIVideoModeNames,GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID,GUIWSVID
EXTSYM GUISSVID,GUITBVID,GUIHSVID,GUI2xVID,GUII2VID,GUIM7VID,cfgsoundon
EXTSYM GUISSVID,GUITBVID,GUIHSVID,GUI2xVID,GUII2VID,GUIM7VID,GUINTVID
EXTSYM cfgSoundQuality,cfgStereoSound,cfgforce8b,convertnum,converthex,snesmouse
EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk,outofmemfix
EXTSYM yesoutofmemory,JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209
@@ -102,9 +102,9 @@ EXTSYM JoyMaxX209,JoyMinY209,JoyMaxY209,GetCoords,GetCoords3,MultiTap,SFXEnable
EXTSYM RestoreSystemVars,GUIBIFIL,GUIHQ2X,GUIHQ3X,GUIHQ4X,firstsaveinc,nssdip1
EXTSYM nssdip2,nssdip3,nssdip4,nssdip5,nssdip6,SkipMovie,MovieStop,MoviePlay
EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind
EXTSYM ResetDuringMovie,MovieDumpRaw
EXTSYM ResetDuringMovie,MovieDumpRaw,AutoLoadCht
EXTSYM GUIwinposx,GUIwinposy,maxskip,GUIEffect,hqFilter,En2xSaI,AutoLoadCht
EXTSYM GUIwinposx,GUIwinposy,maxskip,GUIEffect,hqFilter,En2xSaI,NTSCFilter
EXTSYM LowPassFilterType,MovieStartMethod,MovieDisplayFrame,resetposn
EXTSYM SnapPath,SPCPath,BSXPath,SGPath,STPath,GNextPath,FEOEZPath,SJNSPath
EXTSYM MDHPath,SPL4Path,CheatSrcByteSize,prevloadfnamel,prevloaddname
@@ -139,8 +139,7 @@ EXTSYM GUIwinposy2,GUIwinposx2,AllowMultipleInst,Surround,SoundBufEn,SPCDisable
EXTSYM GUIEnableTransp,FilteredGUI,MouseWheel,TrapMouseCursor,AlwaysOnTop
EXTSYM pl1p209,pl1p209b,SaveMainWindowPos,FastFwdToggle,SidewinderFix,RaisePitch
EXTSYM KeyDisplayBatt,PauseFocusChange,KeyIncreaseGamma,KeyDecreaseGamma
EXTSYM MovieVideoMode, MovieAudio, MovieVideoAudio, MovieAudioCompress
EXTSYM NTSCFilter,GUINTSC,GetDate, horizon_get
EXTSYM MovieVideoMode, MovieAudio,MovieVideoAudio,MovieAudioCompress
%ifdef __UNIXSDL__
EXTSYM numlockptr
@@ -998,22 +997,20 @@ NEWSYM StartGUI
mov byte[En2xSaI],0
mov byte[hqFilter],0
.no2xSaIdis
cmp byte[En2xSaI],0
je .no2xsaidis
mov byte[Triplebufen],0
.no2xsaidis
cmp byte[En2xSaI],0
je .no2xsaien
mov byte[Triplebufen],0
mov byte[hqFilter],0
mov byte[scanlines],0
mov byte[antienab],0
.no2xsaien
cmp byte[hqFilter],0
je .nohq
je .nohqen
mov byte[En2xSaI],0
mov byte[scanlines],0
mov byte[antienab],0
.nohq
.nohqen
mov ecx,64
mov eax,SpecialLine
.slloop

View File

@@ -119,7 +119,6 @@
mov %1,%2
%%clear
ret
%%noclick
%endmacro
%macro GUIKeyCheckbox 2
@@ -1111,15 +1110,15 @@ GUIVideoKeys:
cmp dword[GUIVideoTabs],2
jne near .notfilterstab
xor eax,eax
mov al,[cvidmode]
cmp byte[GUISLVID+eax],0
je .nofullscanlines
cmp dh,'F'
jne .nofullscanlines
cmp byte[En2xSaI],0
jne .nofullscanlines
cmp byte[hqFilter],0
jne .nofullscanlines
mov byte[En2xSaI],0
mov byte[hqFilter],0
mov byte[NTSCFilter],0
call ClearScreen
GUIkeystoggleoptn byte[scanlines],1
%ifdef __MSDOS__
@@ -1142,37 +1141,19 @@ GUIVideoKeys:
je near .noquarterscanlines
cmp dh,'5'
jne .nohalfscanlines
cmp byte[En2xSaI],0
jne .nohalfscanlines
cmp byte[hqFilter],0
jne .nohalfscanlines
mov byte[En2xSaI],0
mov byte[hqFilter],0
mov byte[NTSCFilter],0
call ClearScreen
GUIkeystoggleoptn byte[scanlines],3
%ifdef __MSDOS__
;cmp byte[cvidmode],2
;jne .nohalfscanlines
;mov byte[cbitmode],1
;call initvideo2
;mov byte[cbitmode],0
;call GUISetPal
%endif
.nohalfscanlines
cmp dh,'2'
jne .noquarterscanlines
cmp byte[En2xSaI],0
jne .noquarterscanlines
cmp byte[hqFilter],0
jne .noquarterscanlines
mov byte[En2xSaI],0
mov byte[hqFilter],0
mov byte[NTSCFilter],0
call ClearScreen
GUIkeystoggleoptn byte[scanlines],2
%ifdef __MSDOS__
;cmp byte[cvidmode],2
;jne .noquarterscanlines
;mov byte[cbitmode],1
;call initvideo2
;mov byte[cbitmode],0
;call GUISetPal
%endif
.noquarterscanlines
cmp dh,'Q'
jne .nohqfilter
@@ -1186,6 +1167,9 @@ GUIVideoKeys:
jne .hqfilter
jmp .nohqfilter
.hqfilter
pushad
call Clear2xSaIBuffer
popad
xor byte[hqFilter],1
jz .nohqfilter
mov byte[scanlines],0
@@ -1193,60 +1177,53 @@ GUIVideoKeys:
mov byte[En2xSaI],0
mov byte[antienab],0
mov byte[cfginterp],0
mov byte[NTSCFilter],0
.nohqfilter
cmp dh,'X'
jne .no2xsai
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .no2xsai
pushad
call Clear2xSaIBuffer
popad
GUIkeystoggleoptn byte[En2xSaI],1
.no2xsai
cmp dh,'E'
jne .nosupereagle
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .nosupereagle
pushad
call Clear2xSaIBuffer
popad
GUIkeystoggleoptn byte[En2xSaI],2
.nosupereagle
cmp dh,'S'
jne .nosuper2xsai
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .nosuper2xsai
cmp dh,'X'
jne .no2xsai
GUIkeystoggleoptn byte[En2xSaI],1
jmp .yesfilter
.no2xsai
cmp dh,'E'
jne .nosupereagle
GUIkeystoggleoptn byte[En2xSaI],2
jmp .yesfilter
.nosupereagle
cmp dh,'S'
jne .nosuper2xsai
GUIkeystoggleoptn byte[En2xSaI],3
.yesfilter
mov byte[hqFilter],0
mov byte[scanlines],0
mov byte[cfgscanline],0
mov byte[antienab],0
mov byte[cfginterp],0
mov byte[NTSCFilter],0
pushad
call Clear2xSaIBuffer
popad
GUIkeystoggleoptn byte[En2xSaI],3
.nosuper2xsai
cmp dh,'I'
jne .nointerpolationwin
xor eax,eax
mov al,[cvidmode]
cmp byte[GUII2VID+eax],0
je .nointerpolationwin
xor byte[antienab],1
mov al,[antienab]
mov [cfginterp],al
.nointerpolationwin
cmp dh,'I'
jne .nointerpolation
xor eax,eax
mov al,[cvidmode]
cmp byte[GUII2VID+eax],0
jne .interpolation
cmp byte[GUIIEVID+eax],0
je .nointerpolation
.interpolation
xor byte[antienab],1
mov al,[antienab]
mov [cfginterp],al
mov byte[En2xSaI],0
mov byte[hqFilter],0
mov byte[NTSCFilter],0
.nointerpolation
%ifdef __MSDOS__
cmp dh,'C'
jne .nofullscreen
xor eax,eax
@@ -1291,6 +1268,7 @@ GUIVideoKeys:
pop ecx
pop eax
.nosmallscreen
%endif
cmp dh,'H'
jne .nohiresmode7
xor ebx,ebx
@@ -1300,13 +1278,22 @@ GUIVideoKeys:
xor byte[Mode7HiRes16b],1
.nohiresmode7
cmp dh,'N'
jne .nontscfilters
jne .nontscfilter
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUINTSC+ebx],0
je .nohiresmode7
cmp byte[GUINTVID+ebx],0
je .nontscfilter
xor byte[NTSCFilter],1
.nontscfilters
jz .nontscfilter
mov byte[En2xSaI],0
mov byte[hqFilter],0
mov byte[scanlines],0
mov byte[cfgscanline],0
mov byte[antienab],0
mov byte[cfginterp],0
mov byte[BilinearFilter],0
.nontscfilter
%ifdef __UNIXSDL__
cmp dh,'B'
jne .nobilinearfilter
xor ebx,ebx
@@ -1314,7 +1301,9 @@ GUIVideoKeys:
cmp byte[GUIBIFIL+ebx],0
je .nobilinearfilter
xor byte[BilinearFilter],1
mov byte[NTSCFilter],0
.nobilinearfilter
%endif
%ifdef __WIN32__
cmp dh,'T'
jne .notriplebufferwin
@@ -1342,10 +1331,6 @@ GUIVideoKeys:
; mov byte[cfgvsync],0
.notriplebuffer
%endif
cmp dh,'G'
jne .nograyscale
xor byte[GrayscaleMode],1
.nograyscale
%ifndef __UNIXSDL__
cmp dh,'V'
jne .novsync
@@ -1357,12 +1342,15 @@ GUIVideoKeys:
pushad
call Clear2xSaIBuffer
popad
%endif
%ifdef __MSDOS__
%else
; mov byte[Triplebufen],0
%endif
.novsync
%endif
cmp dh,'G'
jne .nograyscale
xor byte[GrayscaleMode],1
.nograyscale
.notfilterstab
cmp dword[GUIVideoTabs],3

View File

@@ -893,14 +893,6 @@ SECTION .text
NEWSYM SwitchFullScreen
pushad
; mov ecx,255*296
; mov eax,[vidbufferofsb]
;.loop
; mov dword[eax],0FEFEFEFEh
; add eax,4
; dec ecx
; jnz .loop
xor eax,eax
mov al,[cvidmode]
cmp byte[GUIWFVID+eax],0
@@ -1243,58 +1235,6 @@ GUIWinClicked:
%%noclick
%endmacro
%macro GUIClickCButton5 4
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
cmp %3,%4
jne %%set
xor %3,%4
jmp %%clear
%%set
mov %3,%4
%%clear
ret
%%noclick
%endmacro
%macro GUIClickCButton6 4
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
cmp %3,%4
jne %%set
xor %3,%4
jmp %%clear
%%set
mov %3,%4
push eax
push ecx
mov eax,[vidbufferofsb]
mov ecx,288*128
%%loop
mov dword[eax],0
add eax,4
; loop %%loop
dec ecx
jnz %%loop
pop ecx
pop eax
%%clear
ret
%%noclick
%endmacro
%macro GUIClickCButton4 5
cmp eax,%1+1
jl near %%noclick
@@ -1334,6 +1274,57 @@ GUIWinClicked:
%%noclick
%endmacro
%macro GUIClickCButton5 4
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
cmp %3,%4
jne %%set
xor %3,%4
jmp %%clear
%%set
mov %3,%4
%%clear
ret
%%noclick
%endmacro
%macro GUIClickCButton6 4
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
cmp %3,%4
jne %%set
xor %3,%4
jmp %%clear
%%set
mov %3,%4
push eax
push ecx
mov eax,[vidbufferofsb]
mov ecx,288*128
%%loop
mov dword[eax],0
add eax,4
dec ecx
jnz %%loop
pop ecx
pop eax
%%clear
ret
%%noclick
%endmacro
%macro GUIClickCButtonfr 3
cmp eax,%1+1
jl %%noclick
@@ -1400,21 +1391,6 @@ GUIWinClicked:
%%noclick
%endmacro
%macro GUIClickCButtonHQ 3
cmp eax,%1+1
jl %%noclick
cmp edx,%2+3
jl %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
xor %3,1
jz %%noclick
mov byte[En2xSaI],0
%%noclick
%endmacro
%macro GUIClickCButtonT 4
cmp eax,%1+1
jl %%noclick
@@ -2186,6 +2162,23 @@ DisplayGUIMovieClick:
%%skip
%endmacro
%macro FilterExcl 3-* ; minX, minY, bytes to zero
cmp eax,%1+1
jl near %%noclick
cmp edx,%2+3
jl near %%noclick
cmp eax,%1+6
jg %%noclick
cmp edx,%2+8
jg %%noclick
%rotate 1
%rep (%0-2)
%rotate 1
mov byte[%1],0
%endrep
%%noclick
%endmacro
%macro GUIPTabClick 4 ; minX, maxX, var, value
cmp eax,%1+1
jl %%noclick
@@ -2385,8 +2378,9 @@ DisplayGUIOptionClick:
%endif
ret
DisplayGUIVideoClick2:
cmp dword[GUIVideoTabs],1 ; modes
cmp dword[GUIVideoTabs],1 ; modes
jne near .notmodestab2
push eax
mov eax,[NumVideoModes]
@@ -2418,67 +2412,39 @@ DisplayGUIVideoClick:
cmp dword[GUIVideoTabs],2 ; filters
jne near .notfilterstab
xor ebx,ebx
pushad
call Clear2xSaIBuffer
popad
call ClearScreen
xor ebx,ebx ; scanlines
mov bl,[cvidmode]
cmp byte[GUISLVID+ebx],0
je near .nocheckboxb
%ifdef __UNIXSDL__
FilterExcl 21,119,En2xSaI,hqFilter,NTSCFilter
GUIClickCButton4 21,119,byte[scanlines],byte[cfgscanline],1
%else
FilterExcl 21,114,En2xSaI,hqFilter,NTSCFilter
GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1
%endif
.nocheckboxb
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUITBVID+ebx],0
je .nocheckboxttb
GUIClickCButtonT 11,163,byte[Triplebufen],byte[vsyncon]
.nocheckboxttb
GUIClickCButton 11,183,byte[GrayscaleMode]
%ifdef __WIN32__
GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw
pushad
call Clear2xSaIBuffer
popad
%elifdef __MSDOS__
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
%endif
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIM7VID+ebx],0
je .nocheckboxtm7
GUIClickCButton5 11,173,byte[Mode7HiRes16b],1
.nocheckboxtm7
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIM7VID+ebx],0
je .nontscfilter
GUIClickCButton5 115,173,byte[NTSCFilter],1
.nontscfilter
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIHSVID+ebx],0
je near .nohsline
%ifdef __UNIXSDL__
FilterExcl 61,119,En2xSaI,hqFilter,NTSCFilter
FilterExcl 101,119,En2xSaI,hqFilter,NTSCFilter
GUIClickCButton4 61,119,byte[scanlines],byte[cfgscanline],3
GUIClickCButton4 101,119,byte[scanlines],byte[cfgscanline],2
%else
FilterExcl 61,114,En2xSaI,hqFilter,NTSCFilter
FilterExcl 101,114,En2xSaI,hqFilter,NTSCFilter
GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3
GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2
%endif
.nohsline
%ifdef __WIN32__
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUITBWVID+ebx],0
je near .notriplebufferwin
GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw
pushad
call Clear2xSaIBuffer
popad
.notriplebufferwin
%endif
xor ebx,ebx
xor ebx,ebx ; hq filters
mov bl,[cvidmode]
cmp byte[GUIHQ2X+ebx],0
jne .checkboxhq
@@ -2488,32 +2454,39 @@ DisplayGUIVideoClick:
jne .checkboxhq
jmp .nocheckboxhq
.checkboxhq
GUIClickCButtonHQ 115,163,byte[hqFilter]
pushad
call Clear2xSaIBuffer
popad
FilterExcl 115,163,En2xSaI,scanlines,cfgscanline,antienab,cfginterp,NTSCFilter
GUIClickCButton 115,163,byte[hqFilter]
.nocheckboxhq
xor ebx,ebx
xor ebx,ebx ; 2xsai and supers
mov bl,[cvidmode]
cmp byte[GUI2xVID+ebx],0
je near .no2xSaI
FilterExcl 11,133,hqFilter,scanlines,cfgscanline,antienab,cfginterp,NTSCFilter
FilterExcl 11,143,hqFilter,scanlines,cfgscanline,antienab,cfginterp,NTSCFilter
FilterExcl 11,153,hqFilter,scanlines,cfgscanline,antienab,cfginterp,NTSCFilter
GUIClickCButton6 11,133,byte[En2xSaI],1
GUIClickCButton6 11,143,byte[En2xSaI],2
GUIClickCButton6 11,153,byte[En2xSaI],3
.no2xSaI
xor ebx,ebx
xor ebx,ebx ; interpolations
mov bl,[cvidmode]
cmp byte[GUIIEVID+ebx],0
je .nocheckbox1b
je near .nocheckbox1b
mov byte[En2xSaI],0
mov byte[hqFilter],0
mov byte[NTSCFilter],0
FilterExcl 11,78,hqFilter,NTSCFilter,En2xSaI
GUIClickCButton3 11,78,byte[antienab],byte[cfginterp],1
.nocheckbox1b
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUIBIFIL+ebx],0
je .nocheckbox1bf
GUIClickCButton 11,163,byte[BilinearFilter]
.nocheckbox1bf
xor ebx,ebx
cmp byte[GUII2VID+ebx],0
je near .nocheckboxi2
FilterExcl 11,163,hqFilter,NTSCFilter,En2xSaI
GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1
.nocheckboxi2
%ifdef __MSDOS__
xor ebx,ebx ; small/fullscreen
mov bl,[cvidmode]
cmp byte[GUIFSVID+ebx],0
je .nocheckbox2b
@@ -2525,12 +2498,47 @@ DisplayGUIVideoClick:
je .nocheckbox3b
GUIClickCButton3 11,98,byte[smallscreenon],byte[GUIsmallscreenon],1
.nocheckbox3b
%endif
xor ebx,ebx ; hires m7
mov bl,[cvidmode]
cmp byte[GUIM7VID+ebx],0
je .nocheckboxtm7
GUIClickCButton5 11,173,byte[Mode7HiRes16b],1
.nocheckboxtm7
xor ebx,ebx ; ntsc effect
mov bl,[cvidmode]
cmp byte[GUINTVID+ebx],0
je near .nontscfilter
FilterExcl 115,173,En2xSaI,hqFilter,scanlines,cfgscanline,antienab,cfginterp,BilinearFilter
GUIClickCButton5 115,173,byte[NTSCFilter],1
.nontscfilter
%ifdef __UNIXSDL__
xor ebx,ebx ; bilinear
mov bl,[cvidmode]
cmp byte[GUIBIFIL+ebx],0
je .nocheckbox1bf
FilterExcl 11,163,NTSCFilter
GUIClickCButton 11,163,byte[BilinearFilter]
.nocheckbox1bf
%endif
xor ebx,ebx ; triple buffs
mov bl,[cvidmode]
cmp byte[GUITBVID+ebx],0
je .nocheckboxttb
GUIClickCButtonT 11,163,byte[Triplebufen],byte[vsyncon]
.nocheckboxttb
%ifdef __WIN32__
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUII2VID+ebx],0
je .nocheckboxi2
GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1
.nocheckboxi2
cmp byte[GUITBWVID+ebx],0
je near .notriplebufferwin
GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw
.notriplebufferwin
GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw
%elifdef __MSDOS__
GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen]
%endif
GUIClickCButton 11,183,byte[GrayscaleMode]
.notfilterstab
cmp dword[GUIVideoTabs],3 ; NTSC
@@ -3292,7 +3300,7 @@ DisplayGUISaveClick:
GUIPHoldbutton2 173,17,181,24,70,byte[RewindStates],1,99
GUIPHoldbutton2 184,17,192,24,71,byte[RewindStates],-1,0
GUIPHoldbutton2 173,29,181,36,72,byte[RewindFrames],1,99
GUIPHoldbutton2 184,29,192,36,73,byte[RewindFrames],-1,0
GUIPHoldbutton2 184,29,192,36,73,byte[RewindFrames],-1,1
DGOptnsProcBox 27,121,[KeyStateSlc0]
DGOptnsProcBox 27+45,121,[KeyStateSlc1]
DGOptnsProcBox 27+45*2,121,[KeyStateSlc2]

View File

@@ -1616,29 +1616,27 @@ DisplayGUIVideo:
mov byte[En2xSaI],0
mov byte[hqFilter],0
.no2xSaIdis
cmp byte[En2xSaI],0
je .no2xsaidis
mov byte[Triplebufen],0
.no2xsaidis
cmp byte[En2xSaI],0
je .no2xsaien
mov byte[Triplebufen],0
mov byte[hqFilter],0
mov byte[scanlines],0
mov byte[antienab],0
.no2xsaien
cmp byte[hqFilter],0
je .nohq3xen
je .nohqen
mov byte[En2xSaI],0
mov byte[scanlines],0
mov byte[antienab],0
.nohq3xen
.nohqen
GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options
xor ebx,ebx
mov bl,[NTSCFilter]
add ebx,2
mov [GUIVideoTabs+4],ebx
GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options
GUIDrawTab 5,GUIVideoTabs
cmp dword[GUIVideoTabs],1
@@ -1714,7 +1712,7 @@ DisplayGUIVideo:
cmp dword[GUIVideoTabs],2
jne near .notfilterstab
xor eax,eax ; 100% Scanlines
xor eax,eax ; Scanlines text
mov al,[cvidmode]
cmp byte[GUISLVID+eax],0
je near .notext2
@@ -1723,23 +1721,30 @@ DisplayGUIVideo:
%else
GUIDisplayText 5,13,111,GUIVideoTextC
%endif
.notext2
.notext2 ; Interpol.
xor eax,eax
;Checkboxes
xor eax,eax ; Interpolations
mov al,[cvidmode]
cmp byte[GUIINVID+eax],0
je near .notext3
GUIDisplayCheckboxu 5,11,78,antienab,GUIVideoText3,0
.notext3 ; Eagle Eng.
.notext3
xor eax,eax
mov al,[cvidmode]
cmp byte[GUII2VID+eax],0
je near .nocheckboxi2
GUIDisplayCheckboxu 5,11,163,antienab,GUIVideoText3,0
.nocheckboxi2
xor eax,eax ; Eagle Interp.
mov al,[cvidmode]
cmp byte[GUIEAVID+eax],0
je near .notext4
GUIDisplayCheckboxu 5,11,78,antienab,GUIVideoText4,9
.notext4
.notext4 ; Full/Widescreen
xor eax,eax
xor eax,eax ; Full/Widescreen
mov al,[cvidmode]
cmp byte[GUIFSVID+eax],0
je near .notext5
@@ -1749,36 +1754,35 @@ DisplayGUIVideo:
jmp .notext5
.notext4a
GUIDisplayCheckboxu 5,11,88,ScreenScale,GUIVideoText5,6
.notext5
.notext5 ; 2x
xor eax,eax
xor eax,eax ; Small Screen
mov al,[cvidmode]
cmp byte[GUISSVID+eax],0
je near .nocheckbox3b
GUIDisplayCheckboxu 5,11,98,smallscreenon,GUIVideoText6,1
.nocheckbox3b
xor eax,eax ; hq*x
mov al,[cvidmode]
cmp byte[MMXSupport],0
je near .notexthq4xa
cmp byte[GUIHQ2X+eax],0
je near .notexthq2xa
cmp byte[MMXSupport],0
je near .notexthq2xa
GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq2x,1
.notexthq2xa ; 3x
xor eax,eax
mov al,[cvidmode]
jmp .notexthq4xa
.notexthq2xa
cmp byte[GUIHQ3X+eax],0
je near .notexthq3xa
cmp byte[MMXSupport],0
je near .notexthq3xa
GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq3x,1
.notexthq3xa ; 4x
xor eax,eax
mov al,[cvidmode]
jmp .notexthq4xa
.notexthq3xa
cmp byte[GUIHQ4X+eax],0
je near .notexthq4xa
cmp byte[MMXSupport],0
je near .notexthq4xa
GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq4x,1
.notexthq4xa
xor eax,eax ; Checkboxes
xor eax,eax ; scanlines
mov al,[cvidmode]
cmp byte[GUISLVID+eax],0
je near .nocheckboxb
@@ -1787,7 +1791,6 @@ DisplayGUIVideo:
%else
GUIDisplayCheckboxun 5,21,114,scanlines,1,GUIVideoTextC1,0
%endif
.nocheckboxb
xor eax,eax
mov al,[cvidmode]
@@ -1800,17 +1803,25 @@ DisplayGUIVideo:
GUIDisplayCheckboxun 5,61,114,scanlines,3,GUIVideoTextC2,0
GUIDisplayCheckboxun 5,101,114,scanlines,2,GUIVideoTextC3,0
%endif
.nocheckboxw
xor eax,eax
xor eax,eax ; triple buffs
mov al,[cvidmode]
cmp byte[GUITBWVID+eax],0
je near .nocheckboxslw2
GUIDisplayCheckboxu 5,11,123,TripleBufferWin,GUIVideoText7,0
.nocheckboxslw2
xor eax,eax
mov al,[cvidmode]
cmp byte[GUITBVID+eax],0
je near .nocheckboxtbb
cmp byte[TripBufAvail],0
je near .nocheckboxtbb
GUIDisplayCheckboxun 5,11,163,Triplebufen,1,GUIVideoText7,0
.nocheckboxtbb
xor eax,eax ; 2xSaI & Supers
mov al,[cvidmode]
cmp byte[GUI2xVID+eax],0
je near .nocheckboxx
cmp byte[MMXSupport],0
@@ -1818,39 +1829,23 @@ DisplayGUIVideo:
GUIDisplayCheckboxun 5,11,133,En2xSaI,1,GUIVideoTextc,1
GUIDisplayCheckboxun 5,11,143,En2xSaI,2,GUIVideoTextd,6
GUIDisplayCheckboxun 5,11,153,En2xSaI,3,GUIVideoTextd2,0
.nocheckboxx
xor eax,eax
mov al,[cvidmode]
cmp byte[GUII2VID+eax],0
je near .nocheckboxi2
GUIDisplayCheckboxu 5,11,163,antienab,GUIVideoText3,0
.nocheckboxi2
xor eax,eax
xor eax,eax ; Bilinear
mov al,[cvidmode]
cmp byte[GUIBIFIL+eax],0
je near .nocheckboxe
GUIDisplayCheckboxu 5,11,163,BilinearFilter,GUIVideoTextbf,0
.nocheckboxe
xor eax,eax
xor eax,eax ; NTSC filter
mov al,[cvidmode]
cmp byte[GUINTSC+eax],0
cmp byte[GUINTVID+eax],0
je near .nocheckboxbf
GUIDisplayCheckboxu 5,115,173,NTSCFilter,GUIVideoTexte,0
.nocheckboxbf
xor eax,eax
mov al,[cvidmode]
cmp byte[GUITBVID+eax],0
je near .nocheckboxtbb
cmp byte[TripBufAvail],0
je near .nocheckboxtbb
GUIDisplayCheckboxun 5,11,163,Triplebufen,1,GUIVideoText7,0
.nocheckboxtbb
xor eax,eax
xor eax,eax ; Hires Mode7
mov al,[cvidmode]
cmp byte[GUIM7VID+eax],0
je near .nocheckboxm72
@@ -1858,20 +1853,13 @@ DisplayGUIVideo:
je near .nocheckboxm72
GUIDisplayCheckboxu 5,11,173,Mode7HiRes16b,GUIVideoText8b,0
.nocheckboxm72
GUIDisplayCheckboxu 5,11,183,GrayscaleMode,GUIVideoText8c,0
%ifndef __UNIXSDL__
GUIDisplayCheckboxu 5,115,183,vsyncon,GUIVideoText9,0
%endif
.nocheckbox2b
xor eax,eax
mov al,[cvidmode]
cmp byte[GUISSVID+eax],0
je near .nocheckbox3b
GUIDisplayCheckboxu 5,11,98,smallscreenon,GUIVideoText6,1
.nocheckbox3b
.notfilterstab
cmp dword[GUIVideoTabs],3
jne .notntsctab
.notntsctab

View File

@@ -795,38 +795,37 @@ 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
db 'VARIABLE OD 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,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
NEWSYM GUINTSC, db 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 ; NTSC Filter
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 Engine
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 ; (DOS 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
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 ; (DOS 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 ; (DOS Eagle+Int)
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 ; (DOS Fullscreen)
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 ; (DOS Widescreen)
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 ; (DOS Smallscreen)
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 ; (DOS Triple Buffer)
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 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 ; Hires Mode 7
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 ; Fullscreen
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 ; D modes
NEWSYM GUIRATIO, db 0,1,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; Ratio-Fullscreen modes
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 ; SDL Bilinear Filter
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 ; (Win Triple Buffer)
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 ; SDL Resizable
NEWSYM GUINTVID, db 0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 ; NTSC Filter
SECTION .text

View File

@@ -141,7 +141,7 @@ void sw_drawwin()
if (prevtot == frametot && (!GUIOn || !GUIOn2)) { return; }
if (curblank) return;
if (curblank || cvidmode > 5) return;
LockSurface();
ScreenPtr = vidbuffer;
@@ -208,5 +208,3 @@ void sw_drawwin()
}
UnlockSurface();
}

View File

@@ -993,31 +993,31 @@ db '1680x1050 DR F',0 ;37
; 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 5 6 7
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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,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,0
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,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,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,1 ; hq4x filter
NEWSYM GUINTSC, 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,1 ; NTSC Filter
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,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,1 ; New Graphics engine
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,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,0 ; (DOS 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,1 ; Interpolation
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,0 ; (DOS 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,0 ; (DOS Eagle+Int)
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,0 ; (DOS Fullscreen)
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,0 ; (DOS Widescreen)
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,0 ; (DOS Smallscreen)
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,0 ; (DOS Triple Buffer)
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,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,1 ; 2xSaI/Super 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,1 ; Hires Mode 7
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,1 ; Fullscreen
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,1 ; D-only modes
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,0 ; Ratio-Fullscreen modes
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,0 ; (SDL Bilinear Filter)
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,1 ; Win Triple Buffer
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,0 ; Win Stretched modes
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,0 ; Win D-Stretched modes
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,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,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,1 ; hq4x filter
NEWSYM GUINTVID, db 0,0,0,0,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,1 ; NTSC Filter
SECTION .text