Window position array brought up to date, speed slider behaviour ok. TODO: save EmuSpeed setting in config file and bind it to current code.

This commit is contained in:
grinvader
2005-05-17 22:25:52 +00:00
parent bd4b1b70a8
commit a437a0ab78
3 changed files with 92 additions and 47 deletions

View File

@@ -457,10 +457,34 @@ NEWSYM PrevWinMode, db 0
NEWSYM PrevFSMode, db 0 NEWSYM PrevFSMode, db 0
%endif %endif
; Window position index
; GAME 1 > Load
; 2 > Pick state
; 12 > Reset
; 14 > Save/Open state
; CONFIG 3 > Inputs
; 4 > Options
; 5 > Video
; 6 > Sound
; 17 > Add-ons
; 18 > Chip cfg
; 19 > Paths
; 20 > Saves
; 21 > Speed
; CHEAT 7 > Add/Browse
; 13 > Search
;(NETPLAY 8 > Internet)
; MISC 9 > Misc keys
; 10 > GUI opns
; 11 > About
; 15 > Movie opn
; 16 > Key comb.
;# 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
OldWinPos db 0 OldWinPos db 0
GUIwinposx dd 0,5 ,60 ,30 ,55 ,50 ,65 ,5 ,30 ,20 ,10 ,80 ,65 ,20 ,70 ,50 ,3 ,50 GUIwinposx dd 0, 5,60,30,55,50,65, 5,30,20,10,80,65,20,70,50, 3,50,50, 5,10,20
GUIwinposxexp times 30 dd 0 GUIwinposxexp times 30 dd 0
GUIwinposy dd 0,20 ,70 ,30 ,20 ,22 ,36 ,20 ,30 ,20 ,30 ,70 ,60 ,30 ,65 ,50 ,22 ,60 GUIwinposy dd 0,20,70,30,20,22,36,20,30,20,30,20,60,30,65,50,22,60,20,20,20,20
GUIwinposyexp times 30 dd 0 GUIwinposyexp times 30 dd 0
NEWSYM GUIEffect, db 0 NEWSYM GUIEffect, db 0
@@ -1172,7 +1196,7 @@ LoadDetermine:
mov byte[GUIMiscMenuData+14*2],1 mov byte[GUIMiscMenuData+14*2],1
mov byte[GUINetPlayMenuData],2 ; Gray out Netplay options mov byte[GUINetPlayMenuData],2 ; Gray out Netplay options
%ifdef __MSDOS__ %ifdef __MSDOS__
mov byte[GUINetPlayMenuData+14],2 mov byte[GUINetPlayMenuData+14],2
%endif %endif
cmp byte[romloadskip],0 cmp byte[romloadskip],0
je .noromloaded je .noromloaded

View File

@@ -46,7 +46,7 @@ ProcessMouse:
mov edx,223 mov edx,223
call Set_MouseYMax call Set_MouseYMax
.noholda .noholda
cmp byte[GUIHold],1 cmp byte[GUIHold],1 ; GUI Windows
jne .nohold1 jne .nohold1
mov ecx,0 mov ecx,0
mov edx,255 mov edx,255
@@ -69,7 +69,7 @@ ProcessMouse:
mov edx,[GUIHoldYlim] mov edx,[GUIHoldYlim]
call Set_MouseYMax call Set_MouseYMax
.nohold2m .nohold2m
cmp byte[GUIHold],3 cmp byte[GUIHold],3 ; Scrollbars
jne .nohold3m jne .nohold3m
mov ecx,[GUIHoldXlimL] mov ecx,[GUIHoldXlimL]
mov edx,[GUIHoldXlimR] mov edx,[GUIHoldXlimR]
@@ -344,6 +344,8 @@ ProcessMouseButtons:
je near .hold4 je near .hold4
cmp byte[GUIHold],5 cmp byte[GUIHold],5
je near .hold5 je near .hold5
cmp byte[GUIHold],6
je near .hold6
cmp byte[GUIHold],1 cmp byte[GUIHold],1
je near .hold je near .hold
cmp byte[GUIHold],255 cmp byte[GUIHold],255
@@ -360,20 +362,20 @@ ProcessMouseButtons:
call Set_MousePosition call Set_MousePosition
ret ret
.hold2 .hold2
; Slide Bar Hold ; Colour Slide Bar Hold
mov eax,[GUIHoldYlim] mov eax,[GUIHoldYlim]
mov [GUImouseposy],eax mov [GUImouseposy],eax
mov ebx,[GUImouseposx] mov ebx,[GUImouseposx]
mov eax,[GUIHoldXlimL] mov eax,[GUIHoldXlimL]
cmp ebx,eax cmp ebx,eax
jnl .noless jnl .noless2
mov [GUImouseposx],eax mov [GUImouseposx],eax
.noless .noless2
mov eax,[GUIHoldXlimR] mov eax,[GUIHoldXlimR]
cmp ebx,eax cmp ebx,eax
jng .nogreat jng .nogreat2
mov [GUImouseposx],eax mov [GUImouseposx],eax
.nogreat .nogreat2
mov byte[lastmouseholded],1 mov byte[lastmouseholded],1
jmp DisplayGUIOptnsClick jmp DisplayGUIOptnsClick
.hold3 .hold3
@@ -406,17 +408,17 @@ ProcessMouseButtons:
mov edx,[GUImouseposy] mov edx,[GUImouseposy]
sub edx,[GUIwinposy+ebx*4] sub edx,[GUIwinposy+ebx*4]
cmp eax,[GUIHoldXlimL] cmp eax,[GUIHoldXlimL]
jl near .nobhold jl near .nobhold4
cmp edx,[GUIHoldYlim] cmp edx,[GUIHoldYlim]
jl near .nobhold jl near .nobhold4
cmp eax,[GUIHoldXlimR] cmp eax,[GUIHoldXlimR]
jg near .nobhold jg near .nobhold4
cmp edx,[GUIHoldYlimR] cmp edx,[GUIHoldYlimR]
jg near .nobhold jg near .nobhold4
mov al,[GUICBHold2] mov al,[GUICBHold2]
mov [GUICBHold],al mov [GUICBHold],al
ret ret
.nobhold .nobhold4
mov byte[GUICBHold],0 mov byte[GUICBHold],0
ret ret
.hold5 .hold5
@@ -426,16 +428,33 @@ ProcessMouseButtons:
mov ebx,[GUImouseposx] mov ebx,[GUImouseposx]
mov eax,[GUIHoldXlimL] mov eax,[GUIHoldXlimL]
cmp ebx,eax cmp ebx,eax
jnl .nolessa jnl .noless5
mov [GUImouseposx],eax mov [GUImouseposx],eax
.nolessa .noless5
mov eax,[GUIHoldXlimR] mov eax,[GUIHoldXlimR]
cmp ebx,eax cmp ebx,eax
jng .nogreata jng .nogreat5
mov [GUImouseposx],eax mov [GUImouseposx],eax
.nogreata .nogreat5
mov byte[lastmouseholded],1 mov byte[lastmouseholded],1
jmp DisplayGUISoundClick jmp DisplayGUISoundClick
.hold6
; Speed Slide Bar Hold
mov eax,[GUIHoldYlim]
mov [GUImouseposy],eax
mov ebx,[GUImouseposx]
mov eax,[GUIHoldXlimL]
cmp ebx,eax
jnl .noless6
mov [GUImouseposx],eax
.noless6
mov eax,[GUIHoldXlimR]
cmp ebx,eax
jng .nogreat6
mov [GUImouseposx],eax
.nogreat6
mov byte[lastmouseholded],1
jmp DisplayGUISpeedClick
.hold .hold
cmp word[GUImouseposy],16 cmp word[GUImouseposy],16
jge .noover jge .noover
@@ -467,7 +486,6 @@ ProcessMouseButtons:
mov byte[GUIpclicked],0 mov byte[GUIpclicked],0
mov byte[GUIHold],0 mov byte[GUIHold],0
%ifdef __LINUX__ %ifdef __LINUX__
cmp byte[GUIcwinpress],1 cmp byte[GUIcwinpress],1
jne .notwinpressa jne .notwinpressa
@@ -2313,7 +2331,7 @@ DisplayGUIOptionClick:
mov bl,[cvidmode] mov bl,[cvidmode]
cmp byte[GUINGVID+ebx],1 cmp byte[GUINGVID+ebx],1
jne near .invalidng jne near .invalidng
GUIClickCButton2 11,30,byte[newengen],byte[cfgnewgfx],1 GUIClickCButton2 11,30,byte[newengen],byte[cfgnewgfx],1
.invalidng .invalidng
GUIClickCButtonMMX 11,40,byte[MMXSupport] GUIClickCButtonMMX 11,40,byte[MMXSupport]
GUIClickCButtonM 11,50,byte[pl12s34] GUIClickCButtonM 11,50,byte[pl12s34]
@@ -3227,13 +3245,17 @@ DisplayGUISaveClick:
ret ret
DisplayGUISpeedClick: DisplayGUISpeedClick:
mov eax,[GUImouseposx] ; this updates the mouse location
sub eax,[GUIwinposx+21*4] ; effectively 'grabbing' the cursor !
mov edx,[GUImouseposy]
sub edx,[GUIwinposy+21*4]
GUIClickCButton 11,125,byte[FastFwdToggle] ; Checkbox GUIClickCButton 11,125,byte[FastFwdToggle] ; Checkbox
DGOptnsProcBox 12,58,[KeyFastFrwrd] ; Shortcut Boxes DGOptnsProcBox 12,58,[KeyFastFrwrd] ; Shortcut Boxes
DGOptnsProcBox 12,68,[KeySlowDown] DGOptnsProcBox 12,68,[KeySlowDown]
DGOptnsProcBox 12,78,[KeyResetSpeed] DGOptnsProcBox 12,78,[KeyResetSpeed]
; Speed Slider ; Speed Slider
cmp eax,15 ; X-Range for click-area cmp eax,15 ; X-Range for click-area
jl near .nomovebar jl near .nomovebar
cmp eax,15+116 cmp eax,15+116
@@ -3244,8 +3266,8 @@ DisplayGUISpeedClick:
jl near .nomovebar jl near .nomovebar
cmp edx,33 cmp edx,33
jg near .nomovebar jg near .nomovebar
mov [EmuSpeed],al ; Lock mouse to bar when clicked mov [EmuSpeed],al
mov byte[GUIHold],6 mov byte[GUIHold],6 ; Lock mouse to bar when clicked
mov eax,[GUIwinposy+21*4] mov eax,[GUIwinposy+21*4]
add eax,31 add eax,31
mov [GUIHoldYlim],eax mov [GUIHoldYlim],eax

View File

@@ -1445,7 +1445,7 @@ SECTION .text
DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine
GUIDrawWindowBox 4,GUIOptionDisp GUIDrawWindowBox 4,GUIOptionDisp
mov byte[GUItextcolor],217 ; Shadow mov byte[GUItextcolor],217 ; Shadow
cmp byte[GUIWincoladd],0 cmp byte[GUIWincoladd],0
je .zero je .zero
@@ -1511,28 +1511,28 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox .nocheckbox
GUIDisplayIconWin 4,11,20,[GUITemp] GUIDisplayIconWin 4,11,20,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[newengen],0 cmp byte[newengen],0
je .nocheckbox1 je .nocheckbox1
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox1 .nocheckbox1
GUIDisplayIconWin 4,11,30,[GUITemp] GUIDisplayIconWin 4,11,30,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[MMXSupport],1 cmp byte[MMXSupport],1
jne .nocheckbox2 jne .nocheckbox2
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox2 .nocheckbox2
GUIDisplayIconWin 4,11,40,[GUITemp] GUIDisplayIconWin 4,11,40,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[pl12s34],0 cmp byte[pl12s34],0
je .nocheckbox3 je .nocheckbox3
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox3 .nocheckbox3
GUIDisplayIconWin 4,11,50,[GUITemp] GUIDisplayIconWin 4,11,50,[GUITemp]
%ifdef __MSDOS__ %ifdef __MSDOS__
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[SidewinderFix],0 cmp byte[SidewinderFix],0
@@ -1557,14 +1557,14 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox5 .nocheckbox5
GUIDisplayIconWin 4,11,70,[GUITemp] GUIDisplayIconWin 4,11,70,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[Turbo30hz],0 cmp byte[Turbo30hz],0
je .nocheckbox6 je .nocheckbox6
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox6 .nocheckbox6
GUIDisplayIconWin 4,11,80,[GUITemp] GUIDisplayIconWin 4,11,80,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[TimerEnable],0 cmp byte[TimerEnable],0
je .nocheckbox7 je .nocheckbox7
@@ -1578,35 +1578,35 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox8 .nocheckbox8
GUIDisplayIconWin 4,11,100,[GUITemp] GUIDisplayIconWin 4,11,100,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[DontSavePath],0 cmp byte[DontSavePath],0
je .nocheckbox9 je .nocheckbox9
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox9 .nocheckbox9
GUIDisplayIconWin 4,11,110,[GUITemp] GUIDisplayIconWin 4,11,110,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[SmallMsgText],0 cmp byte[SmallMsgText],0
je .nocheckbox10 je .nocheckbox10
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox10 .nocheckbox10
GUIDisplayIconWin 4,11,120,[GUITemp] GUIDisplayIconWin 4,11,120,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[AutoPatch],0 cmp byte[AutoPatch],0
je .nocheckbox11 je .nocheckbox11
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox11 .nocheckbox11
GUIDisplayIconWin 4,11,130,[GUITemp] GUIDisplayIconWin 4,11,130,[GUITemp]
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[RomInfo],0 cmp byte[RomInfo],0
je .nocheckbox12 je .nocheckbox12
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox12 .nocheckbox12
GUIDisplayIconWin 4,11,140,[GUITemp] GUIDisplayIconWin 4,11,140,[GUITemp]
%ifdef __WIN32__ %ifdef __WIN32__
mov dword[GUITemp],GUIIconDataCheckBoxUC mov dword[GUITemp],GUIIconDataCheckBoxUC
cmp byte[DisableScreenSaver],0 cmp byte[DisableScreenSaver],0
@@ -1618,7 +1618,7 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
cmp byte[frameskip],0 ; Determine if AutoFR is enabled cmp byte[frameskip],0 ; Determine if AutoFR is enabled
je near .auto je near .auto
DrawGUIWinBox 4,75,12,93,19,167 ; Frameskip (if not AutoFR) DrawGUIWinBox 4,75,12,93,19,167 ; Frameskip (if not AutoFR)
mov al,[frameskip] mov al,[frameskip]
add al,47 add al,47
@@ -1638,7 +1638,7 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
.zero6 .zero6
DrawGUIButton 4,97,12,105,20,GUIOptionTextY,12,-2,-1 DrawGUIButton 4,97,12,105,20,GUIOptionTextY,12,-2,-1
DrawGUIButton 4,108,12,116,20,GUIOptionTextZ,13,-2,-1 DrawGUIButton 4,108,12,116,20,GUIOptionTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw Borders mov dword[GUIWincol],148+10 ; Draw Borders
cmp byte[cwindrawn],1 cmp byte[cwindrawn],1
jne .noone3 jne .noone3
@@ -1682,7 +1682,7 @@ DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engi
.zero7 .zero7
DrawGUIButton 4,118,12,126,20,GUIOptionTextY,12,-2,-1 DrawGUIButton 4,118,12,126,20,GUIOptionTextY,12,-2,-1
DrawGUIButton 4,129,12,137,20,GUIOptionTextZ,13,-2,-1 DrawGUIButton 4,129,12,137,20,GUIOptionTextZ,13,-2,-1
mov dword[GUIWincol],148+10 ; Draw borders mov dword[GUIWincol],148+10 ; Draw borders
cmp byte[cwindrawn],1 cmp byte[cwindrawn],1
jne .noone2 jne .noone2
@@ -4739,7 +4739,7 @@ DisplayGUIMovies: ; Movie Record/Playback options
mov al,[GUIWincol] ; Shadow (Yellow) mov al,[GUIWincol] ; Shadow (Yellow)
mov byte[GUItextcolor],al mov byte[GUItextcolor],al
GUIOuttextwin2 15,6,162,GUIMovieTextZ GUIOuttextwin2 15,6,162,GUIMovieTextZ
mov byte[GUItextcolor],163 ; Text (Yellow) mov byte[GUItextcolor],163 ; Text (Yellow)
cmp byte[GUIWincoladd],0 cmp byte[GUIWincoladd],0
je .zero5 je .zero5
@@ -5682,7 +5682,7 @@ DisplayGUIChipConfig:
mov byte[GUItextcolor],163 ; Yellow Text mov byte[GUItextcolor],163 ; Yellow Text
cmp byte[GUIWincoladd],0 cmp byte[GUIWincoladd],0
je .zero8 je .zero8
mov byte[GUItextcolor],164 mov byte[GUItextcolor],164
.zero8 .zero8
GUIOuttextwin2 18,9,37,GUIChipTextA GUIOuttextwin2 18,9,37,GUIChipTextA
.endEE2 .endEE2
@@ -6387,22 +6387,21 @@ DisplayGUISpeed: ;Speed Options
DGOptnsBorderBox 21,11,67 DGOptnsBorderBox 21,11,67
DGOptnsBorderBox 21,11,77 DGOptnsBorderBox 21,11,77
mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkbox mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkbox
cmp byte[FastFwdToggle],0 cmp byte[FastFwdToggle],0
je .nocheckbox je .nocheckbox
mov dword[GUITemp],GUIIconDataCheckBoxC mov dword[GUITemp],GUIIconDataCheckBoxC
.nocheckbox .nocheckbox
GUIDisplayIconWin 21,11,125,[GUITemp] GUIDisplayIconWin 21,11,125,[GUITemp]
mov eax,dword[GUIwinposx+21*4] ;Slider mov eax,dword[GUIwinposx+21*4] ;Slider
mov ebx,dword[GUIwinposy+21*4] mov ebx,dword[GUIwinposy+21*4]
mov ecx,eax
add eax,15 add eax,15
add ecx,15+116
; add ebx,91
add ebx,31 add ebx,31
mov ecx,eax
add ecx,116
xor edx,edx xor edx,edx
mov dl,215 mov dl,215
sub dl,[GUIWincoladd] sub dl,[GUIWincoladd]