commented part of CheatSearch, and moved the Auto Framerate/Framerate options to the Speed window

This commit is contained in:
ipher
2005-05-17 23:18:43 +00:00
parent 3ae21876ec
commit 9f4b0dc525
4 changed files with 246 additions and 211 deletions

View File

@@ -624,9 +624,9 @@ ViewBuffer resb 50*32
SECTION .data ; Window sizes and positions
; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO CHIP PATH SAVE SPED
GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,35 ,5 ,30 ,10 ,10 ,50 ,65 ,20 ,70 ,40 ,3 ,50 ,50 ,5 ,20 ,45
GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,30 ,20 ,20 ,60 ,30 ,65 ,35 ,22 ,60 ,60 ,20 ,30 ,50
GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,30 ,20 ,20 ,60 ,30 ,65 ,35 ,22 ,60 ,60 ,20 ,30 ,25
GUIwinsizex dd 0,244 ,126 ,189 ,167 ,180 ,188 ,244 ,8*16,235 ,240 ,190 ,9*16,8*16,9*16,180 ,250 ,160 ,160 ,244 ,200 ,150
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,160 ,190 ,100 ,100 ,190 ,160 ,140
GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,160 ,190 ,100 ,100 ,190 ,160 ,180
GUIwinptr db 0
section .bss

View File

@@ -601,17 +601,6 @@ GUIOptionKeys:
ja .nocap
sub dh,'z'-'Z'
.nocap
cmp dh,'A' ; Checkboxes
jne .noautofr
mov byte[FPSOn],0
cmp byte[frameskip],0
je .zero
mov byte[frameskip],0
jmp .notzero
.zero
mov byte[frameskip],2
.notzero
.noautofr
cmp dh,'N'
jne .nonewgfx
xor eax,eax
@@ -745,6 +734,17 @@ GUISpeedKeys:
jne .nofastforward
xor byte[FastFwdToggle],1
.nofastforward
cmp dh,'A' ; Checkboxes
jne .noautofr
mov byte[FPSOn],0
cmp byte[frameskip],0
je .zero
mov byte[frameskip],0
jmp .notzero
.zero
mov byte[frameskip],2
.notzero
.noautofr
ret
GUIAddonKeys:

View File

@@ -2326,7 +2326,6 @@ DisplayGUIInputClick:
ret
DisplayGUIOptionClick:
GUIClickCButtonfr 11,20,byte[frameskip] ; Clickboxes
xor ebx,ebx
mov bl,[cvidmode]
cmp byte[GUINGVID+ebx],1
@@ -2352,16 +2351,7 @@ DisplayGUIOptionClick:
%ifdef __WIN32__
GUIClickCButtonW 11,150,byte[DisableScreenSaver]
%endif
; Frameskip = 0
cmp byte[frameskip],0
je near .autopress
GUIPHoldbutton2 97,12,105,20,12,byte[frameskip],1,10
GUIPHoldbutton2 108,12,116,20,13,byte[frameskip],-1,1
ret
.autopress
GUIPHoldbutton2 118,12,126,20,12,byte[maxskip],1,9
GUIPHoldbutton2 129,12,137,20,13,byte[maxskip],-1,0
ret
ret
DisplayGUIVideoClick2:
push eax
@@ -3249,11 +3239,25 @@ DisplayGUISpeedClick:
sub eax,[GUIwinposx+21*4] ; effectively 'grabbing' the cursor !
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+21*4]
GUIClickCButton 11,125,byte[FastFwdToggle] ; Checkbox
GUIClickCButtonfr 11,165,byte[frameskip] ; Checkboxes
GUIClickCButton 11,175,byte[FastFwdToggle]
DGOptnsProcBox 12,108,[KeyFastFrwrd] ; Shortcut Boxes
DGOptnsProcBox 12,118,[KeySlowDown]
DGOptnsProcBox 12,128,[KeyResetSpeed]
; Frameskip = 0
cmp byte[frameskip],0
je near .autopress
GUIPHoldbutton2 97,42,105,50,12,byte[frameskip],1,10
GUIPHoldbutton2 108,42,116,50,13,byte[frameskip],-1,1
ret
.autopress
GUIPHoldbutton2 118,42,126,50,12,byte[maxskip],1,9
GUIPHoldbutton2 129,42,137,50,13,byte[maxskip],-1,0
DGOptnsProcBox 12,58,[KeyFastFrwrd] ; Shortcut Boxes
DGOptnsProcBox 12,68,[KeySlowDown]
DGOptnsProcBox 12,78,[KeyResetSpeed]
; Speed Slider
cmp eax,15 ; X-Range for click-area

View File

@@ -1452,13 +1452,6 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
mov byte[GUItextcolor],211
.zero
sub byte[GUItextcolor],15
mov dword[GUITemp],GUIOptionText1
cmp byte[frameskip],0
jne .noauto
mov dword[GUITemp],GUIOptionText1b
.noauto
GUIOuttextwin2 4,6,14,[GUITemp]
GUIOuttextwin2u 4,26,24,GUIOptionText2,0
GUIOuttextwin2u 4,26,34,GUIOptionText3,0
GUIOuttextwin2u 4,26,44,GUIOptionText4,0
GUIOuttextwin2u 4,26,54,GUIOptionText5,0
@@ -1481,8 +1474,6 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
%endif
add byte[GUItextcolor],15 ; Text
GUIOuttextwin2 4,5,13,[GUITemp]
GUIOuttextwin2 4,25,23,GUIOptionText2
GUIOuttextwin2 4,25,33,GUIOptionText3
GUIOuttextwin2 4,25,43,GUIOptionText4
GUIOuttextwin2 4,25,53,GUIOptionText5
@@ -1505,14 +1496,7 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
%endif
mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkboxes
cmp byte[frameskip],0
jne .nocheckbox
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox
GUIDisplayIconWin 4,11,20,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC
mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkboxes
cmp byte[newengen],0
je .nocheckbox1
mov dword[GUITemp],GUIIconDataCheckBoxC
@@ -1615,100 +1599,13 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
.nocheckbox13
GUIDisplayIconWin 4,11,150,[GUITemp]
%endif
ret
cmp byte[frameskip],0 ; Determine if AutoFR is enabled
je near .auto
DrawGUIWinBox 4,75,12,93,19,167 ; Frameskip (if not AutoFR)
mov al,[frameskip]
add al,47
mov [GUIOptionTextX],al
mov byte[GUItextcolor],223
GUIOuttextwin2 4,85,14,GUIOptionTextX
mov byte[GUItextcolor],221
cmp byte[GUIWincoladd],0
je .zero4
mov byte[GUItextcolor],222
.zero4
GUIOuttextwin2 4,84,13,GUIOptionTextX
mov byte[GUItextcolor],217
cmp byte[GUIWincoladd],0
je .zero6
mov byte[GUItextcolor],211
.zero6
DrawGUIButton 4,97,12,105,20,GUIOptionTextY,12,-2,-1
DrawGUIButton 4,108,12,116,20,GUIOptionTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw Borders
cmp byte[cwindrawn],1
jne .noone3
mov dword[GUIWincol],148+5
.noone3
cmp byte[cwindrawn],0
jne .nozero3
mov dword[GUIWincol],148
.nozero3
mov dl,[GUIWincol]
DrawGUIWinBox 4,75,11,93,11,dl
mov dl,[GUIWincol]
add dl,1
DrawGUIWinBox 4,74,12,73,19,dl
mov dl,[GUIWincol]
add dl,4
DrawGUIWinBox 4,75,20,93,20,dl
mov dl,[GUIWincol]
add dl,3
DrawGUIWinBox 4,95,12,94,19,dl
ret
.auto ; Max Frameskip (if AutoFR)
DrawGUIWinBox 4,96,12,114,19,167
mov al,[maxskip]
add al,48
mov [GUIOptionTextX],al
mov byte[GUItextcolor],223
GUIOuttextwin2 4,107,14,GUIOptionTextX
mov byte[GUItextcolor],221
cmp byte[GUIWincoladd],0
je .zero5
mov byte[GUItextcolor],222
.zero5
GUIOuttextwin2 4,106,13,GUIOptionTextX
mov byte[GUItextcolor],217
cmp byte[GUIWincoladd],0
je .zero7
mov byte[GUItextcolor],211
.zero7
DrawGUIButton 4,118,12,126,20,GUIOptionTextY,12,-2,-1
DrawGUIButton 4,129,12,137,20,GUIOptionTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw borders
cmp byte[cwindrawn],1
jne .noone2
mov dword[GUIWincol],148+5
.noone2
cmp byte[cwindrawn],0
jne .nozero2
mov dword[GUIWincol],148
.nozero2
mov dl,[GUIWincol]
DrawGUIWinBox 4,96,11,114,11,dl
mov dl,[GUIWincol]
add dl,1
DrawGUIWinBox 4,95,12,94,19,dl
mov dl,[GUIWincol]
add dl,4
DrawGUIWinBox 4,96,20,114,20,dl
mov dl,[GUIWincol]
add dl,3
DrawGUIWinBox 4,116,12,115,19,dl
ret
SECTION .data
GUIOptionText1 db 'FRAME RATE',0
GUIOptionText1b db 'MAX FRAME SKIP',0
GUIOptionText2 db 'AUTO FRAME RATE',0
;GUIOptionText1 db 'FRAME RATE',0
;GUIOptionText1b db 'MAX FRAME SKIP',0
;GUIOptionText2 db 'AUTO FRAME RATE',0
GUIOptionText3 db 'NEW GFX ENGINE',0
GUIOptionText4 db 'MMX SUPPORT',0
GUIOptionText5 db 'USE PL3/4 AS PL1/2',0
@@ -3148,39 +3045,41 @@ CSAddFlash:
DisplayGUISearch:
jmp .startcheat
call DrawWindowSearch
mov byte[GUItextcolor],217
cmp byte[GUIWincoladd],0
je .zero
mov byte[GUItextcolor],211
.zero
sub byte[GUItextcolor],15
GUIOuttextwin2 13,6,16,GUISrcText1
GUIOuttextwin2 13,6,26,GUISrcText2
GUIOuttextwin2 13,6,36,GUISrcText3
add byte[GUItextcolor],15
GUIOuttextwin2 13,5,15,GUISrcText1
GUIOuttextwin2 13,5,25,GUISrcText2
GUIOuttextwin2 13,5,35,GUISrcText3
ret
; DrawGUIButton 13,197,30,239,41,GUICSrcText8+2,40,0,0
ret
.startcheat
cmp byte[CheatWinMode],1
; call DrawWindowSearch ; Do we even need this?
; mov byte[GUItextcolor],217
; cmp byte[GUIWincoladd],0
; je .zero
; mov byte[GUItextcolor],211
;.zero
; sub byte[GUItextcolor],15
; GUIOuttextwin2 13,6,16,GUISrcText1
; GUIOuttextwin2 13,6,26,GUISrcText2
; GUIOuttextwin2 13,6,36,GUISrcText3
; add byte[GUItextcolor],15
; GUIOuttextwin2 13,5,15,GUISrcText1
; GUIOuttextwin2 13,5,25,GUISrcText2
; GUIOuttextwin2 13,5,35,GUISrcText3
; ret
;; DrawGUIButton 13,197,30,239,41,GUICSrcText8+2,40,0,0
; ret
.startcheat ; Start
cmp byte[CheatWinMode],1 ; Determine which CS window we're on
je near Incheatmode
cmp byte[CheatWinMode],2
je near Cheatmodeview
cmp byte[CheatWinMode],3
je near Cheatmodeadd
mov dword[GUIwinsizex+13*4],170
mov dword[GUIwinsizey+13*4],150
call DrawWindowSearch
mov al,[GUIWincol]
mov al,[GUIWincol] ; Yellow Shadow
mov byte[GUItextcolor],al
GUIOuttextwin2 13,6,16,GUICSrcText1
GUIOuttextwin2 13,6,101,GUICSrcText8
mov byte[GUItextcolor],163
mov byte[GUItextcolor],163 ; Yellow Text
cmp byte[GUIWincoladd],0
je .zero3
mov byte[GUItextcolor],164
@@ -3188,9 +3087,10 @@ DisplayGUISearch:
GUIOuttextwin2 13,5,15,GUICSrcText1
GUIOuttextwin2 13,5,100,GUICSrcText8
mov byte[GUItextcolor],217
cmp byte[GUIWincoladd],0
je .zero2
mov byte[GUItextcolor],217 ; Text AND Shadow
cmp byte[GUIWincoladd],0 ; maybe start converting other windows
je .zero2 ; to this format?
mov byte[GUItextcolor],211
.zero2
TextWindowMacro 13,25,30,GUICSrcText2
@@ -3201,21 +3101,29 @@ DisplayGUISearch:
TextWindowMacro 13,25,85,GUICSrcText7
TextWindowMacro 13,25,115,GUICSrcText9
TextWindowMacro 13,25,125,GUICSrcTextA
DrawGUIButton 13,95,140,140,152,GUICSrcTextB,50,0,1
GUIDisplayButtonHole 13,11,28,byte[CheatSrcByteSize],0
DrawGUIButton 13,95,140,140,152,GUICSrcTextB,50,0,1 ; Button
GUIDisplayButtonHole 13,11,28,byte[CheatSrcByteSize],0 ; Ratio Buttons
GUIDisplayButtonHole 13,11,38,byte[CheatSrcByteSize],1
GUIDisplayButtonHole 13,11,48,byte[CheatSrcByteSize],2
GUIDisplayButtonHole 13,11,58,byte[CheatSrcByteSize],3
GUIDisplayButtonHole 13,11,73,byte[CheatSrcByteBase],0
GUIDisplayButtonHole 13,11,83,byte[CheatSrcByteBase],1
GUIDisplayButtonHole 13,11,113,byte[CheatSrcSearchType],0
GUIDisplayButtonHole 13,11,123,byte[CheatSrcSearchType],1
ret
Incheatmode:
Incheatmode: ; Return and Re-search
mov dword[GUIwinsizex+13*4],180
mov dword[GUIwinsizey+13*4],150
call DrawWindowSearch
mov byte[GUItextcolor],217
mov byte[GUItextcolor],217 ; Text And Shadow
cmp byte[GUIWincoladd],0
je .zero2
mov byte[GUItextcolor],211
@@ -3227,15 +3135,17 @@ Incheatmode:
TextWindowMacro 13,5,40,GUICSrcTextO
TextWindowMacro 13,5,50,GUICSrcTextP
jmp DisplayChtSrcRes.nosearch
CheatSearching:
CheatSearching: ; Exact Value Search
cmp byte[CheatSrcSearchType],1
je near CheatSearchingComp
; Exact Value Search
TextWindowMacro 13,5,20,GUICSrcTextD
DrawGUIWinBox 13,10,40,80,47,167
; Draw border
mov dword[GUIWincol],148+10
TextWindowMacro 13,5,20,GUICSrcTextD ; Text (setup?)
DrawGUIWinBox 13,10,40,80,47,167 ; Input Box
mov dword[GUIWincol],148+10 ; Draw border
cmp byte[cwindrawn],1
jne .noone2
mov dword[GUIWincol],148+5
@@ -3256,39 +3166,41 @@ CheatSearching:
add dl,3
DrawGUIWinBox 13,82,40,81,47,dl ; 2,0,1,0
test byte[GUICCFlash],8
test byte[GUICCFlash],8 ; Flash Cursor Code?
jnz .nound
mov esi,CSInputDisplay
call CSRemoveFlash
.nound
mov byte[GUItextcolor],223
mov byte[GUItextcolor],223 ; Green Shadow
cmp byte[CSOverValue],1
jne .notdark
mov byte[GUItextcolor],202
mov byte[GUItextcolor],202 ; Alt Color
.notdark
GUIOuttextwin2 13,13,42,CSInputDisplay
mov byte[GUItextcolor],221
mov byte[GUItextcolor],221 ; Green Text
cmp byte[GUIWincoladd],0
je .zero4
mov byte[GUItextcolor],222
.zero4
cmp byte[CSOverValue],1
jne .notdark2
mov byte[GUItextcolor],207
mov byte[GUItextcolor],207 ; Alt Color
.notdark2
GUIOuttextwin2 13,12,41,CSInputDisplay
mov byte[GUItextcolor],217
mov byte[GUItextcolor],217 ; More Text
cmp byte[GUIWincoladd],0
je .zero2
mov byte[GUItextcolor],211
.zero2
TextWindowMacro 13,5,65,GUICSrcTextT
mov esi,CSInputDisplay
mov esi,CSInputDisplay ; More flash?
call CSAddFlash
xor eax,eax
xor eax,eax ; Find Max Size
mov al,[CheatSrcByteSize]
mov eax,[SrcMask+eax*4]
mov esi,GUICSrcTextQ
@@ -3302,11 +3214,11 @@ CheatSearching:
inc ecx
call converthex
.dec
TextWindowMacro 13,71,65,GUICSrcTextQ
TextWindowMacro 13,71,65,GUICSrcTextQ ; More Text (setup?)
jmp DisplayChtSrcRes
CheatSearchingComp:
; Comparative search
CheatSearchingComp: ; Comparative search
mov al,[GUIWincol]
mov byte[GUItextcolor],al
GUIOuttextwin2 13,6,16,GUICSrcTextE
@@ -6354,51 +6266,66 @@ DisplayGUISpeed: ;Speed Options
mov byte[GUItextcolor],211
.zero
sub byte[GUItextcolor],15
GUIOuttextwin2 21,40,59,GUISpeedTextA1
GUIOuttextwin2 21,40,69,GUISpeedTextA2
GUIOuttextwin2 21,40,79,GUISpeedTextA3
GUIOuttextwin2u 21,25,129,GUISpeedTextC1,0
mov dword[GUITemp],GUISpeedText1
cmp byte[frameskip],0
jne .noauto
mov dword[GUITemp],GUISpeedText1b
.noauto
GUIOuttextwin2 21,6,44,[GUITemp]
GUIOuttextwin2 21,40,109,GUISpeedTextA1
GUIOuttextwin2 21,40,119,GUISpeedTextA2
GUIOuttextwin2 21,40,129,GUISpeedTextA3
GUIOuttextwin2u 21,25,169,GUISpeedTextC1,0
GUIOuttextwin2u 21,25,179,GUISpeedTextC2,0
add byte[GUItextcolor],15 ;Text
GUIOuttextwin2 21,39,58,GUISpeedTextA1
GUIOuttextwin2 21,39,68,GUISpeedTextA2
GUIOuttextwin2 21,39,78,GUISpeedTextA3
GUIOuttextwin2 21,24,128,GUISpeedTextC1
GUIOuttextwin2 21,5,43,[GUITemp]
GUIOuttextwin2 21,39,108,GUISpeedTextA1
GUIOuttextwin2 21,39,118,GUISpeedTextA2
GUIOuttextwin2 21,39,128,GUISpeedTextA3
GUIOuttextwin2 21,24,168,GUISpeedTextC1
GUIOuttextwin2 21,24,178,GUISpeedTextC2
mov al,[GUIWincol] ;Yellow Shadow
mov byte[GUItextcolor],al
GUIOuttextwin2 21,8,49,GUISpeedTextA
GUIOuttextwin2 21,16,19,GUISpeedTextB
GUIOuttextwin2 21,8,99,GUISpeedTextA
GUIOuttextwin2 21,8,19,GUISpeedTextB
mov byte[GUItextcolor],163 ;Yellow Text
cmp byte[GUIWincoladd],0
je .zero3
mov byte[GUItextcolor],164
.zero3
GUIOuttextwin2 21,7,48,GUISpeedTextA
GUIOuttextwin2 21,15,18,GUISpeedTextB
GUIOuttextwin2 21,7,98,GUISpeedTextA
GUIOuttextwin2 21,7,18,GUISpeedTextB
DDrawBox 21,12,58,[KeyFastFrwrd] ;Shortcut Boxes
DDrawBox 21,12,68,[KeySlowDown]
DDrawBox 21,12,78,[KeyResetSpeed]
DDrawBox 21,12,108,[KeyFastFrwrd] ;Shortcut Boxes
DDrawBox 21,12,118,[KeySlowDown]
DDrawBox 21,12,128,[KeyResetSpeed]
DGOptnsBorderBox 21,11,57 ;Borders
DGOptnsBorderBox 21,11,67
DGOptnsBorderBox 21,11,77
DGOptnsBorderBox 21,11,107 ;Borders
DGOptnsBorderBox 21,11,117
DGOptnsBorderBox 21,11,127
mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkbox
cmp byte[FastFwdToggle],0
je .nocheckbox
mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkboxes
cmp byte[frameskip],0
jne .nocheckbox
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox
GUIDisplayIconWin 21,11,125,[GUITemp]
GUIDisplayIconWin 21,11,165,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[FastFwdToggle],0
je .nocheckbox1
mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox1
GUIDisplayIconWin 21,11,175,[GUITemp]
mov eax,dword[GUIwinposx+21*4] ;Slider
mov ebx,dword[GUIwinposy+21*4]
add eax,15
add ebx,31
mov ecx,eax
add ecx,116
@@ -6449,27 +6376,131 @@ DisplayGUISpeed: ;Speed Options
dec esi
mov byte[esi],'/' ; adds '/' before the slomo value
.convdone
mov [GUITemp],esi
mov [GUITemp],esi ; Display Value (Green)
mov byte[GUItextcolor],223
GUIOuttextwin2 21,63,19,[GUITemp]
GUIOuttextwin2 21,78,19,[GUITemp]
mov byte[GUItextcolor],221
cmp byte[GUIWincoladd],0
je .zero4
mov byte[GUItextcolor],222
.zero4
GUIOuttextwin2 21,62,18,[GUITemp]
GUIOuttextwin2 21,77,18,[GUITemp]
cmp byte[frameskip],0 ; Determine if AutoFR is enabled
je near .auto
DrawGUIWinBox 21,75,42,93,49,167 ; Frameskip (if not AutoFR)
mov al,[frameskip]
add al,47
mov [GUISpeedTextX],al
mov byte[GUItextcolor],223
GUIOuttextwin2 21,85,44,GUISpeedTextX
mov byte[GUItextcolor],221
cmp byte[GUIWincoladd],0
je .zero8
mov byte[GUItextcolor],222
.zero8
GUIOuttextwin2 21,84,43,GUISpeedTextX
mov byte[GUItextcolor],217
cmp byte[GUIWincoladd],0
je .zero6
mov byte[GUItextcolor],211
.zero6
DrawGUIButton 21,97,42,105,50,GUISpeedTextY,12,-2,-1
DrawGUIButton 21,108,42,116,50,GUISpeedTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw borders
cmp byte[cwindrawn],1
jne .noone2
mov dword[GUIWincol],148+5
.noone2
cmp byte[cwindrawn],0
jne .nozero2
mov dword[GUIWincol],148
.nozero2
mov dl,[GUIWincol]
DrawGUIWinBox 21,76,41,93,41,dl
mov dl,[GUIWincol]
add dl,1
DrawGUIWinBox 21,75,42,74,49,dl
mov dl,[GUIWincol]
add dl,4
DrawGUIWinBox 21,76,50,93,50,dl
mov dl,[GUIWincol]
add dl,3
DrawGUIWinBox 21,95,42,94,49,dl
ret
.auto ; Max Frameskip (if AutoFR)
DrawGUIWinBox 21,96,42,114,49,167
mov al,[maxskip]
add al,48
mov [GUISpeedTextX],al
mov byte[GUItextcolor],223
GUIOuttextwin2 21,107,44,GUISpeedTextX
mov byte[GUItextcolor],221
cmp byte[GUIWincoladd],0
je .zero5
mov byte[GUItextcolor],222
.zero5
GUIOuttextwin2 21,106,43,GUISpeedTextX
mov byte[GUItextcolor],217
cmp byte[GUIWincoladd],0
je .zero7
mov byte[GUItextcolor],211
.zero7
DrawGUIButton 21,118,42,126,50,GUISpeedTextY,12,-2,-1
DrawGUIButton 21,129,42,137,50,GUISpeedTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw borders
cmp byte[cwindrawn],1
jne .noone3
mov dword[GUIWincol],148+5
.noone3
cmp byte[cwindrawn],0
jne .nozero3
mov dword[GUIWincol],148
.nozero3
mov dl,[GUIWincol]
DrawGUIWinBox 21,96,41,113,41,dl
mov dl,[GUIWincol]
add dl,1
DrawGUIWinBox 21,95,42,94,49,dl
mov dl,[GUIWincol]
add dl,4
DrawGUIWinBox 21,96,50,113,50,dl
mov dl,[GUIWincol]
add dl,3
DrawGUIWinBox 21,115,42,114,49,dl
ret
SECTION .data
GUISpeedTextA db 'SHORTCUTS : ',0
GUISpeedTextA1 db 'FAST FORWARD',0
GUISpeedTextA2 db 'SLOWDOWN',0
GUISpeedTextA2 db 'SLOW DOWN',0
GUISpeedTextA3 db 'RESET SPEED',0
GUISpeedTextA4 db '+ FRAME RATE',0
GUISpeedTextA5 db '- FRAME RATE',0
GUISpeedTextA6 db 'PAUSE GAME',0
GUISpeedTextA7 db 'INCR FRAME',0
GUISpeedTextA8 db 'SLOW DOWN',0
GUISpeedTextA9 db 'RESET SPEED',0
GUISpeedTextB db 'SPEED : ',0
GUISpeedTextB db 'EMU SPEED : ',0
GUISpeedTextB1 db '---',0
GUISpeedTextC1 db 'TOGGLED FFWD/SLWDWN',0
GUISpeedText1 db 'FRAME RATE',0
GUISpeedText1b db 'MAX FRAME SKIP',0
GUISpeedTextC1 db 'AUTO FRAME RATE',0
GUISpeedTextC2 db 'TOGGLED FFWD/SLWDWN',0
GUISpeedTextX db '-',0
GUISpeedTextY db '+',0
GUISpeedTextZ db '-',0
;General data
GUILoadDisp db 'LOAD GAME',0