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) ; Video Mode Feature Availability (1 = Available, 0 = Not Available)
; Left side starts with Video Mode 0 ; 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 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 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 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 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 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 ; Eagle 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 ; (Interp | 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 ; Full Screen 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 ; (Full Scr. | Wide Scr.) 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 ; Small Screen 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 ; Triple Buffering 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 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 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 ; If Windows Full Screen 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 ; Super 2xSAI Engine 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 ; Hi-Resolution Mode 7 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 ; Bilinear Filtering 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 ; Triple Buffering (Win) 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 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 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 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 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 SECTION .text
; **************************** ; ****************************

View File

@@ -88,13 +88,13 @@ EXTSYM NextLineCache,ResetTripleBuf,GUINGVID,ScanCodeListing
EXTSYM AdjustFrequency,GUISaveVars,Init_Mouse,Get_MouseData,Set_MouseXMax EXTSYM AdjustFrequency,GUISaveVars,Init_Mouse,Get_MouseData,Set_MouseXMax
EXTSYM Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement,GUIInit EXTSYM Set_MouseYMax,Set_MousePosition,Get_MousePositionDisplacement,GUIInit
EXTSYM GUIDeInit,SpecialLine,DrawWater,DrawBurn,SA1Enable,SA1RAMArea 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 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 ExitFromGUI,GUIWFVID,cfgvsync,newgfx16b,cfgscanline,cfginterp
EXTSYM NumVideoModes,cfgvolume,MusicVol,DSPMem,NumInputDevices,GUIInputNames EXTSYM NumVideoModes,cfgvolume,MusicVol,DSPMem,NumInputDevices,GUIInputNames
EXTSYM GUIVideoModeNames,GUISLVID,GUIINVID,GUIEAVID,GUIIEVID,GUIFSVID,GUIWSVID 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 cfgSoundQuality,cfgStereoSound,cfgforce8b,convertnum,converthex,snesmouse
EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk,outofmemfix EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk,outofmemfix
EXTSYM yesoutofmemory,JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209 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 RestoreSystemVars,GUIBIFIL,GUIHQ2X,GUIHQ3X,GUIHQ4X,firstsaveinc,nssdip1
EXTSYM nssdip2,nssdip3,nssdip4,nssdip5,nssdip6,SkipMovie,MovieStop,MoviePlay EXTSYM nssdip2,nssdip3,nssdip4,nssdip5,nssdip6,SkipMovie,MovieStop,MoviePlay
EXTSYM MovieRecord,MovieInsertChapter,MovieSeekAhead,MovieSeekBehind 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 LowPassFilterType,MovieStartMethod,MovieDisplayFrame,resetposn
EXTSYM SnapPath,SPCPath,BSXPath,SGPath,STPath,GNextPath,FEOEZPath,SJNSPath EXTSYM SnapPath,SPCPath,BSXPath,SGPath,STPath,GNextPath,FEOEZPath,SJNSPath
EXTSYM MDHPath,SPL4Path,CheatSrcByteSize,prevloadfnamel,prevloaddname EXTSYM MDHPath,SPL4Path,CheatSrcByteSize,prevloadfnamel,prevloaddname
@@ -139,8 +139,7 @@ EXTSYM GUIwinposy2,GUIwinposx2,AllowMultipleInst,Surround,SoundBufEn,SPCDisable
EXTSYM GUIEnableTransp,FilteredGUI,MouseWheel,TrapMouseCursor,AlwaysOnTop EXTSYM GUIEnableTransp,FilteredGUI,MouseWheel,TrapMouseCursor,AlwaysOnTop
EXTSYM pl1p209,pl1p209b,SaveMainWindowPos,FastFwdToggle,SidewinderFix,RaisePitch EXTSYM pl1p209,pl1p209b,SaveMainWindowPos,FastFwdToggle,SidewinderFix,RaisePitch
EXTSYM KeyDisplayBatt,PauseFocusChange,KeyIncreaseGamma,KeyDecreaseGamma EXTSYM KeyDisplayBatt,PauseFocusChange,KeyIncreaseGamma,KeyDecreaseGamma
EXTSYM MovieVideoMode, MovieAudio, MovieVideoAudio, MovieAudioCompress EXTSYM MovieVideoMode, MovieAudio,MovieVideoAudio,MovieAudioCompress
EXTSYM NTSCFilter,GUINTSC,GetDate, horizon_get
%ifdef __UNIXSDL__ %ifdef __UNIXSDL__
EXTSYM numlockptr EXTSYM numlockptr
@@ -998,22 +997,20 @@ NEWSYM StartGUI
mov byte[En2xSaI],0 mov byte[En2xSaI],0
mov byte[hqFilter],0 mov byte[hqFilter],0
.no2xSaIdis .no2xSaIdis
cmp byte[En2xSaI],0
je .no2xsaidis
mov byte[Triplebufen],0
.no2xsaidis
cmp byte[En2xSaI],0 cmp byte[En2xSaI],0
je .no2xsaien je .no2xsaien
mov byte[Triplebufen],0
mov byte[hqFilter],0 mov byte[hqFilter],0
mov byte[scanlines],0 mov byte[scanlines],0
mov byte[antienab],0 mov byte[antienab],0
.no2xsaien .no2xsaien
cmp byte[hqFilter],0 cmp byte[hqFilter],0
je .nohq je .nohqen
mov byte[En2xSaI],0 mov byte[En2xSaI],0
mov byte[scanlines],0 mov byte[scanlines],0
mov byte[antienab],0 mov byte[antienab],0
.nohq .nohqen
mov ecx,64 mov ecx,64
mov eax,SpecialLine mov eax,SpecialLine
.slloop .slloop

View File

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

View File

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

View File

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

View File

@@ -795,38 +795,37 @@ db '1024x896 ODR W',0 ;17
db '1280x960 ODS F',0 ;18 db '1280x960 ODS F',0 ;18
db '1280x1024 ODS F',0 ;19 db '1280x1024 ODS F',0 ;19
db '1600x1200 ODS F',0 ;20 db '1600x1200 ODS F',0 ;20
db 'VARIABLE ODR W',0 ;21 db 'VARIABLE OD W',0 ;21
%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,7,8,9,0,1 ; 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 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 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 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 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(w) 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 ; Eagle 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 ; (Interp | 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 ; Full Screen 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 ; (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,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 ; Small Screen 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 ; Triple Buffering 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 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 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 ; ?Mode 7 video thing? 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 ; If Windows Full Screen 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 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,1,0,0,0,0,0,0,0,0,0,0,0,0,0 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 ; binlinear = 1, nearest = 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 ; 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 ; Triple Buffering (Win) 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 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 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 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 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 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 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
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
SECTION .text SECTION .text

View File

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

View File

@@ -993,31 +993,31 @@ db '1680x1050 DR F',0 ;37
; 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
; 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 ; 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 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 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 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 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(w) 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 ; Eagle 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 ; (Interp | 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 ; Full Screen 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 ; (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,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 ; Small Screen 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 ; Triple Buffering 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 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 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 ; ?Mode 7 video thing? 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 ; If Windows Full Screen 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 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 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 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 ; Triple Buffering (Win) 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 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 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 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 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 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 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 SECTION .text