Tab feature in. Input menu tabified. Video menu split. Some source cleanup.

This commit is contained in:
grinvader
2006-03-22 14:12:42 +00:00
parent 792eca1557
commit 15dbf2631c
5 changed files with 12809 additions and 12659 deletions

View File

@@ -47,7 +47,6 @@
; GUIWinDp.inc - Window Display Routines ; GUIWinDp.inc - Window Display Routines
; GUITools.inc - Misc routines for the GUI ; GUITools.inc - Misc routines for the GUI
; Quick Searches : ; Quick Searches :
; DisplayMenu - routines to display top menu bar ; DisplayMenu - routines to display top menu bar
; Incomp - Search for start of modem processing ; Incomp - Search for start of modem processing
@@ -62,7 +61,6 @@
; CheatCodeSearchInit ; CheatCodeSearchInit
; guiwincontrol ; guiwincontrol
%include "macros.mac" %include "macros.mac"
EXTSYM curblank,vidpastecopyscr,frameskip,newengen,vsyncon,cvidmode,antienab EXTSYM curblank,vidpastecopyscr,frameskip,newengen,vsyncon,cvidmode,antienab
@@ -142,8 +140,7 @@ 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 EXTSYM NTSCFilter,GUINTSC,GetDate, horizon_get
EXTSYM GetDate, horizon_get
%ifdef __UNIXSDL__ %ifdef __UNIXSDL__
EXTSYM numlockptr EXTSYM numlockptr
@@ -178,26 +175,21 @@ NEWSYM WaterOn, db 1
; blue scale = 148 .. 167, 168 .. 187 ; blue scale = 148 .. 167, 168 .. 187
; gray scale = 189 .. 220 (32+137) ; gray scale = 189 .. 220 (32+137)
; | Game Config Cheat MultiPlay Misc ; | Game Config Cheat MultiPlay Misc
;------------------------------------------------------- ;-------------------------------------------------------
; Load Input#1 Add Code Modem Misc Keys ; Load Input Add Code Modem Misc Keys
; Run Input#2 Browse IPX GUI Opns ; Run ----- Browse IPX GUI Opns
; Reset Input#3 Search Movie Opn ; Reset Add-Ons Search Movie Opn
; ----- Input#4 Key Comb. ; ----- Chip Cfg Key Comb.
; Save State Input#5 Save Cfg ; Save State ----- Save Cfg
; Load State ----- ---- ; Load State Options -----
; Pick State Add-Ons About ; Pick State Video About
; ----- Chip Cfg ; ----- Sound
; Quit ---- ; Quit Paths
; Options
; Video
; Sound
; Paths
; Saves ; Saves
; Speed ; Speed
; MultiPlay only has "Internet" for Windows/Linux ; NetPlay only has "Internet" for Windows/Linux
; Windows : 1 = Load ; Windows : 1 = Load
; 2 = Chose State ; 2 = Chose State
@@ -223,10 +215,14 @@ NEWSYM WaterOn, db 1
;The first byte is the number of fields on the right not including the seperators ;The first byte is the number of fields on the right not including the seperators
MenuDat1 db 12, 3,1,1,1,1,1,1,1,1,1,0,1,2,0 MenuDat1 db 12, 3,1,1,1,1,1,1,1,1,1,0,1,2,0
MenuDat2 db 8, 3,1,1,0,1,1,1,0,2,0,0 MenuDat2 db 8, 3,1,1,0,1,1,1,0,2,0
MenuDat3 db 14, 3,1,1,1,1,0,1,1,0,1,1,1,1,1,2,0 MenuDat3 db 10, 3,0,1,1,0,1,1,1,1,1,2,0
MenuDat4 db 2, 3,1,2,0 MenuDat4 db 2, 3,1,2,0
%ifndef __MSDOS__
MenuDat5 db 0, 2,0,0
%else
MenuDat5 db 1, 3,2,0 MenuDat5 db 1, 3,2,0
%endif
MenuDat6 db 6, 3,1,1,1,1,0,2,0 MenuDat6 db 6, 3,1,1,1,1,0,2,0
GUIPrevMenuData: GUIPrevMenuData:
@@ -241,7 +237,7 @@ GUIPrevMenuData:
db 1,'9. ',0 db 1,'9. ',0
db 1,'0. ',0 db 1,'0. ',0
db 0,'------------',0 db 0,'------------',0
.onoff db 1,'FREEZE DATA : OFF ',0 .onoff db 1,'FREEZE DATA: OFF ',0
db 1,'CLEAR ALL DATA ',0 db 1,'CLEAR ALL DATA ',0
GUIGameMenuData: GUIGameMenuData:
db 1,'LOAD ',0 db 1,'LOAD ',0
@@ -254,11 +250,7 @@ GUIGameMenuData:
db 0,'------------',0 db 0,'------------',0
db 1,'QUIT ',0 db 1,'QUIT ',0
GUIConfigMenuData: GUIConfigMenuData:
db 1,'INPUT #1 ',0 db 1,'INPUT ',0
db 1,'INPUT #2 ',0
db 1,'INPUT #3 ',0
db 1,'INPUT #4 ',0
db 1,'INPUT #5 ',0
db 0,'------------',0 db 0,'------------',0
db 1,'ADD-ONS ',0 db 1,'ADD-ONS ',0
db 1,'CHIP CFG ',0 db 1,'CHIP CFG ',0
@@ -274,8 +266,13 @@ GUICheatMenuData:
db 1,'BROWSE ',0 db 1,'BROWSE ',0
db 1,'SEARCH ',0 db 1,'SEARCH ',0
GUINetPlayMenuData: GUINetPlayMenuData:
%ifndef __MSDOS__
db 1,'INTERNET ',0
db 0,'------------',0
%else
db 1,'MODEM ',0 db 1,'MODEM ',0
db 1,'IPX ',0 db 1,'IPX ',0
%endif
GUIMiscMenuData: GUIMiscMenuData:
db 1,'MISC KEYS ',0 db 1,'MISC KEYS ',0
db 1,'GUI OPNS ',0 db 1,'GUI OPNS ',0
@@ -477,10 +474,10 @@ clearsram:
GUIQuickLoadUpdate: GUIQuickLoadUpdate:
cmp byte[prevlfreeze],0 cmp byte[prevlfreeze],0
je .off je .off
mov dword[GUIPrevMenuData.onoff+15],'ON ' mov dword[GUIPrevMenuData.onoff+14],'ON '
jmp .on jmp .on
.off .off
mov dword[GUIPrevMenuData.onoff+15],'OFF ' mov dword[GUIPrevMenuData.onoff+14],'OFF '
.on .on
%ifdef __MSDOS__ %ifdef __MSDOS__
mov esi,prevloadnames mov esi,prevloadnames
@@ -915,7 +912,6 @@ SECTION .data
cstempfname db 'tmpchtsr.___',0 cstempfname db 'tmpchtsr.___',0
SECTION .text SECTION .text
NEWSYM SaveSramData NEWSYM SaveSramData
; change to sram dir ; change to sram dir
pushad pushad
@@ -973,56 +969,6 @@ NEWSYM SaveSramData
call Change_Dir call Change_Dir
ret ret
NEWSYM ProcRewind
mov eax,KeyRewind
add eax,4
mov ebx,8
.loop
cmp byte[eax],'a'
jb .b
cmp byte[eax],'z'
ja .b
sub byte[eax],'a'-'A'
.b
inc eax
dec ebx
jnz .loop
sub eax,8
; 90,83,75,78,73,71
mov dword[.temp],44*65536*256+24*65536+72*256+40
mov word[.temp+4],41*256+50
add dword[.temp],34*65536*256+51*65536+11*256+50
add word[.temp+4],30*256+23
call .c
; 95,68,69,77,79,95
mov dword[.temp],25*65536*256+29*65536+31*256+62
mov word[.temp+4],43*256+18
add dword[.temp],52*65536*256+40*65536+37*256+33
add word[.temp+4],52*256+61
call .c
; 80,72,65,82,79,83
mov dword[.temp],11*65536*256+33*65536+24*256+35
mov word[.temp+4],52*256+30
add dword[.temp],71*65536*256+32*65536+48*256+45
add word[.temp+4],31*256+49
call .c
ret
.c
mov ebx,[.temp]
cmp [eax],ebx
jne .noteq
mov bx,[.temp+4]
cmp [eax+4],bx
jne .noteq
mov dword[eax],0
mov dword[eax+4],0
mov dword[eax+8],0
.noteq
ret
SECTION .bss
.temp resd 2
SECTION .text
%macro ProcessOneDigit 1 %macro ProcessOneDigit 1
cmp dl,9 cmp dl,9
jbe %%notover jbe %%notover
@@ -1091,15 +1037,6 @@ NEWSYM StartGUI
mov eax,[pl1p209b] mov eax,[pl1p209b]
mov [pl1p209],eax mov [pl1p209],eax
.okayow .okayow
%ifndef __MSDOS__
mov dword[GUINetPlayMenuData+1],'INTE'
mov dword[GUINetPlayMenuData+5],'RNET'
mov dword[GUINetPlayMenuData+1+14],'----'
mov dword[GUINetPlayMenuData+5+14],'----'
mov byte[MenuDat5],0
mov byte[MenuDat5+1],2
%endif
;.notwinport
; copy old quickfilename to new quickfilename ; copy old quickfilename to new quickfilename
cmp byte[prevloadl],0 cmp byte[prevloadl],0
jne .noconvertlfqm jne .noconvertlfqm
@@ -1538,14 +1475,12 @@ NEWSYM StartGUI
mov dword[StartLR],0 mov dword[StartLR],0
jmp continueprog jmp continueprog
SECTION .bss SECTION .bss
CheckSumVal resd 1 CheckSumVal resd 1
SECTION .data SECTION .data
WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0 WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0
SECTION .text SECTION .text
SRAMDirc: SRAMDirc:
; get LoadDrive/LoadDir ; get LoadDrive/LoadDir
mov ebx,LoadDir mov ebx,LoadDir
@@ -1594,10 +1529,10 @@ guimencodermsg:
ret ret
SECTION .data SECTION .data
guimencodert1 db ' MENCODER iS MISSING : ',0 guimencodert1 db ' MENCODER IS MISSING : ',0
guimencodert2 db ' PRESS SPACE TO CONTINUE',0 guimencodert2 db ' PRESS SPACE TO CONTINUE',0
section .text SECTION .text
guifirsttimemsg: guifirsttimemsg:
xor ebx,ebx xor ebx,ebx
@@ -1811,12 +1746,12 @@ guiprevideo:
SECTION .data SECTION .data
guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0 guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0
guiprevidmsg2 db 'TO CHANGE YOUR VIDEO',0 guiprevidmsg2 db ' TO CHANGE YOUR VIDEO',0
guiprevidmsg3 db 'MODE. IF THE CHANGE',0 guiprevidmsg3 db ' MODE. IF THE CHANGE',0
guiprevidmsg4 db 'IS UNSUCCESSFUL, WAIT',0 guiprevidmsg4 db 'IS UNSUCCESSFUL, WAIT',0
guiprevidmsg5 db '10 SECONDS AND VIDEO',0 guiprevidmsg5 db ' 10 SECONDS AND VIDEO',0
guiprevidmsg6 db 'MODE WILL BE RESET',0 guiprevidmsg6 db 'MODE WILL BE RESTORED.',0
guiprevidmsg7 db 'PRESS ANY KEY',0 guiprevidmsg7 db ' PRESS ANY KEY.',0
SECTION .text SECTION .text
guipostvideo: guipostvideo:
@@ -1863,7 +1798,7 @@ guipostvideo:
SECTION .data SECTION .data
guipostvidmsg1 db 'VIDEO MODE CHANGED.',0 guipostvidmsg1 db 'VIDEO MODE CHANGED.',0
guipostvidmsg2 db 'PRESS SPACEBAR',0 guipostvidmsg2 db ' PRESS SPACEBAR.',0
SECTION .text SECTION .text
guipostvideofail: guipostvideofail:
@@ -2150,14 +2085,10 @@ GUITryMenuItem: ; Defines which menu item calls what window
xor byte[prevlfreeze],1 xor byte[prevlfreeze],1
cmp byte[prevlfreeze],0 cmp byte[prevlfreeze],0
je .off je .off
mov byte[GUIPrevMenuData.onoff+15],'O' mov dword[GUIPrevMenuData.onoff+14],'ON '
mov byte[GUIPrevMenuData.onoff+16],'N'
mov byte[GUIPrevMenuData.onoff+17],' '
jmp .on jmp .on
.off .off
mov byte[GUIPrevMenuData.onoff+15],'O' mov dword[GUIPrevMenuData.onoff+14],'OFF '
mov byte[GUIPrevMenuData.onoff+16],'F'
mov byte[GUIPrevMenuData.onoff+17],'F'
.on .on
.skipswitch .skipswitch
cmp byte[GUIcrowpos],12 cmp byte[GUIcrowpos],12
@@ -2223,37 +2154,13 @@ GUITryMenuItem: ; Defines which menu item calls what window
.nomain .nomain
cmp byte[GUIcmenupos],3 cmp byte[GUIcmenupos],3
jne near .noconfig jne near .noconfig
GUICheckMenuItem 3, 0 ; Input #1
GUICheckMenuItem 3, 1 ; Input #2
GUICheckMenuItem 3, 2 ; Input #3
GUICheckMenuItem 3, 3 ; Input #4
GUICheckMenuItem 3, 4 ; Input #5
cmp byte[GUIcrowpos],0
jne .noplay1
mov byte[cplayernum],0
.noplay1
cmp byte[GUIcrowpos],1
jne .noplay2
mov byte[cplayernum],1
.noplay2
cmp byte[GUIcrowpos],2
jne .noplay3
mov byte[cplayernum],2
.noplay3
cmp byte[GUIcrowpos],3
jne .noplay4
mov byte[cplayernum],3
.noplay4
cmp byte[GUIcrowpos],4
jne .noplay5
mov byte[cplayernum],4
.noplay5
;The number on the left is the window to open ;The number on the left is the window to open
;the number on the right is where in the drop down box we are ;the number on the right is where in the drop down box we are
GUICheckMenuItem 17, 6 ; Add-Ons GUICheckMenuItem 3,0 ; Input #1-5
GUICheckMenuItem 18, 7 ; Chip Config GUICheckMenuItem 17,2 ; Add-Ons
GUICheckMenuItem 4, 9 ; Options GUICheckMenuItem 18,3 ; Chip Config
cmp byte[GUIcrowpos],10 ; Video GUICheckMenuItem 4,5 ; Options
cmp byte[GUIcrowpos],6 ; Video
jne near .novideo jne near .novideo
; set Video cursor location ; set Video cursor location
xor eax,eax xor eax,eax
@@ -2269,10 +2176,10 @@ GUITryMenuItem: ; Defines which menu item calls what window
mov edx,5 mov edx,5
call CheckMenuItemHelp call CheckMenuItemHelp
.novideo .novideo
GUICheckMenuItem 6, 11 ; Sound GUICheckMenuItem 6,7 ; Sound
GUICheckMenuItem 19, 12 ; Paths GUICheckMenuItem 19,8 ; Paths
GUICheckMenuItem 20, 13 ; Saves GUICheckMenuItem 20,9 ; Saves
GUICheckMenuItem 21, 14 ; Speed GUICheckMenuItem 21,10 ; Speed
.noconfig .noconfig
cmp byte[romloadskip],0 cmp byte[romloadskip],0
jne near .nocheat jne near .nocheat
@@ -2296,7 +2203,6 @@ GUITryMenuItem: ; Defines which menu item calls what window
; GUICheckMenuItem 8, 0 ; Disable DOS Netplay Options ; GUICheckMenuItem 8, 0 ; Disable DOS Netplay Options
; GUICheckMenuItem 8, 1 ; GUICheckMenuItem 8, 1
%endif %endif
;.win32 ; Already commented
; GUICheckMenuItem 8, 0 ; Disable WIN/SDL Internet Option ; GUICheckMenuItem 8, 0 ; Disable WIN/SDL Internet Option
cmp byte[GUIcrowpos],0 cmp byte[GUIcrowpos],0
jne near .nonet jne near .nonet
@@ -2794,23 +2700,21 @@ DisplayMenu:
.nomenu2 .nomenu2
cmp byte[GUIcmenupos],3 cmp byte[GUIcmenupos],3
jne near .nomenu3 jne near .nomenu3
GUIDrawMenuM 52,16,9,15,GUIConfigMenuData,54,57,22,169,42 ;19+15*10 GUIDrawMenuM 52,16,8,11,GUIConfigMenuData,54,57,22,129,42 ;19+11*10
mov dword[GUICYLocPtr],MenuDat3 mov dword[GUICYLocPtr],MenuDat3
.nomenu3 .nomenu3
cmp byte[GUIcmenupos],4 cmp byte[GUIcmenupos],4
jne near .nomenu4 jne near .nomenu4
GUIDrawMenuM 99,16,11,3,GUICheatMenuData,101,104,22,49,36 ;19+3*10 GUIDrawMenuM 99,16,8,3,GUICheatMenuData,101,104,22,49,36 ;19+3*10
mov dword[GUICYLocPtr],MenuDat4 mov dword[GUICYLocPtr],MenuDat4
.nomenu4 .nomenu4
cmp byte[GUIcmenupos],5 cmp byte[GUIcmenupos],5
jne near .nomenu5 jne near .nomenu5
%ifdef __MSDOS__ %ifdef __MSDOS__
GUIDrawMenuM 140,16,10,2,GUINetPlayMenuData,142,145,22,39,48 ;19+2*10 GUIDrawMenuM 140,16,10,2,GUINetPlayMenuData,142,145,22,39,48 ;19+2*10
mov dword[GUICYLocPtr],MenuDat5 %else
jmp .nomenu5 GUIDrawMenuM 140,16,10,1,GUINetPlayMenuData,142,145,22,29,48 ;19+1*10
%endif %endif
.menu5b
GUIDrawMenuM 140,16,10,1,GUINetPlayMenuData,142,145,22,29,48 ;19+2*10
mov dword[GUICYLocPtr],MenuDat5 mov dword[GUICYLocPtr],MenuDat5
.nomenu5 .nomenu5
cmp byte[GUIcmenupos],6 cmp byte[GUIcmenupos],6
@@ -2883,8 +2787,6 @@ GUIMenuDisplay:
jnz near .next jnz near .next
ret ret
InitGUI: InitGUI:
cmp byte[newengen],0 cmp byte[newengen],0
je .nong16b je .nong16b
@@ -3716,8 +3618,7 @@ GUISetPal16:
SECTION .data SECTION .data
.multab db 1,1,1,2,2,3,4,4,5,6,6,7,8,8,9,10,10,11,12,12,13,14,14,15,16,16, .multab db 1,1,1,2,2,3,4,4,5,6,6,7,8,8,9,10,10,11,12,12,13,14,14,15,16,16,
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30, db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,31
db 31
SECTION .text SECTION .text
GUIBufferData: GUIBufferData:
@@ -3877,23 +3778,23 @@ GUIconvpal:
ret ret
SECTION .data SECTION .data
GUIMousePtr db 50+88,47+88,45+88,43+88,42+88,00,00,00 GUIMousePtr:
db 53+88,52+88,46+88,42+88,00,00,00,00 db 50+88,47+88,45+88,43+88,40+88,0 ,0 ,0
db 55+88,54+88,54+88,44+88,00,00,00,00 db 53+88,52+88,46+88,42+88,0 ,0 ,0 ,0
db 57+88,57+88,56+88,52+88,45+88,00,00,00 db 55+88,54+88,54+88,44+88,0 ,0 ,0 ,0
db 59+88,00,00,55+88,50+88,45+88,00,00 db 57+88,57+88,56+88,52+88,45+88,0 ,0 ,0
db 00,00,00,00,55+88,50+88,45+88,00 db 59+88,0 ,0 ,55+88,50+88,45+88,0 ,0
db 00,00,00,00,00,55+88,50+88,47+88 db 0 ,0 ,0 ,0 ,55+88,50+88,45+88,0
db 00,00,00,00,00,00,52+88,00 db 0 ,0 ,0 ,0 ,0 ,55+88,50+88,47+88
db 0 ,0 ,0 ,0 ,0 ,0 ,52+88,0
db 50,47,45,43,40,00,00,00 db 50,47,45,43,40,0 ,0 ,0
db 53,52,46,42,00,00,00,00 db 53,52,46,42,0 ,0 ,0 ,0
db 55,54,54,44,00,00,00,00 db 55,54,54,44,0 ,0 ,0 ,0
db 57,57,56,52,45,00,00,00 db 57,57,56,52,45,0 ,0 ,0
db 59,00,00,55,50,45,00,00 db 59,0 ,0 ,55,50,45,0 ,0
db 00,00,00,00,55,50,45,00 db 0 ,0 ,0 ,0 ,55,50,45,0
db 00,00,00,00,00,55,50,47 db 0 ,0 ,0 ,0 ,0 ,55,50,47
db 00,00,00,00,00,00,52,00 db 0 ,0 ,0 ,0 ,0 ,0 ,52,0
NEWSYM GUIFontData NEWSYM GUIFontData
db 0,0,0,0,0; empty space db 0,0,0,0,0; empty space
@@ -4286,7 +4187,7 @@ NEWSYM GUIFontData
db 00000000b db 00000000b
db 00100000b db 00100000b
db 01010000b db 01010000b
db 00100000b; shw fullstop 0x4E db 00100000b; sjis halfwidth (shw) fullstop 0x4E
db 01110000b db 01110000b
db 01000000b db 01000000b
db 01000000b db 01000000b

View File

@@ -341,6 +341,8 @@ GUIgetcurrentinput:
je near GUILoadKeys je near GUILoadKeys
cmp ebx,2 cmp ebx,2
je near GUIStateSelKeys je near GUIStateSelKeys
cmp ebx,3
je near GUIInputKeys
cmp ebx,4 cmp ebx,4
je near GUIOptionKeys je near GUIOptionKeys
cmp ebx,5 cmp ebx,5
@@ -722,6 +724,23 @@ GUIgetcurrentinput:
.nokey .nokey
ret ret
%macro KeyTabInc 1 ; tab array
cmp dh,9
jne %%done
mov eax,[%1]
cmp eax,[%1+4]
je %%back
inc dword[%1]
jmp %%done
%%back
mov dword[%1],1
%%done
%endmacro
GUIInputKeys:
KeyTabInc GUIInputTabs
ret
GUITCPIPKeys: GUITCPIPKeys:
ret ret
@@ -792,7 +811,7 @@ GUIOptionKeys:
%endif %endif
ret ret
GUIAboutKeys GUIAboutKeys:
cmp dh,'a' ; Setup cmp dh,'a' ; Setup
jb .nocap jb .nocap
cmp dh,'z' cmp dh,'z'
@@ -936,6 +955,7 @@ GUIGUIOptnsKeys:
ret ret
GUIVideoKeys: GUIVideoKeys:
KeyTabInc GUIVideoTabs
cmp dh,'a' cmp dh,'a'
jb .nocap jb .nocap
cmp dh,'z' cmp dh,'z'
@@ -943,6 +963,150 @@ GUIVideoKeys:
sub dh,'z'-'Z' sub dh,'z'-'Z'
.nocap .nocap
xor eax,eax xor eax,eax
cmp dword[GUIVideoTabs],1
jne near .notmodestab
; "Home"
%ifdef __UNIXSDL__
cmp dl,89
je .yeshome
cmp dword[numlockptr],1
je .nohome
cmp dl,71
jne .nohome
.yeshome
%else
cmp dl,71
jne .nohome
%endif
mov dword[GUIcurrentvideocursloc],0
mov dword[GUIcurrentvideoviewloc],0
.nohome
; "End"
%ifdef __UNIXSDL__
cmp dl,95
je .yesendp
cmp dword[numlockptr],1
je .noendp
cmp dl,79
jne .noendp
.yesendp
%else
cmp dl,79
jne .noendp
%endif
mov eax,[NumVideoModes]
dec eax
mov [GUIcurrentvideocursloc],eax
sub eax,4
mov [GUIcurrentvideoviewloc],eax
test dword[GUIcurrentvideoviewloc],8000000h
jz .noendp
mov dword[GUIcurrentvideoviewloc],0
.noendp
; "Up"
%ifdef __UNIXSDL__
cmp dl,90
je .up
cmp dword[numlockptr],1
je .noup
cmp dl,72
jne .noup
%else
cmp dl,72
jne .noup
%endif
.up
cmp dword[GUIcurrentvideocursloc],0
je .noup
mov ebx,[GUIcurrentvideocursloc]
cmp [GUIcurrentvideoviewloc],ebx
jne .noviewdec
dec dword[GUIcurrentvideoviewloc]
.noviewdec
dec dword[GUIcurrentvideocursloc]
.noup
; "Down"
%ifdef __UNIXSDL__
cmp dl,96
je .yesdown
cmp dword[numlockptr],1
je .nodown
cmp dl,80
jne .nodown
.yesdown
%else
cmp dl,80
jne .nodown
%endif
mov ebx,[GUIcurrentvideocursloc]
inc ebx
cmp ebx,[NumVideoModes]
je .nodown
inc dword[GUIcurrentvideocursloc]
sub ebx,5
cmp ebx,[GUIcurrentvideoviewloc]
jne .nodown
inc dword[GUIcurrentvideoviewloc]
.nodown
; "PageUp"
%ifdef __UNIXSDL__
cmp dl,91
je .yespageup
cmp dword[numlockptr],1
je .nopageup
cmp dl,73
jne .nopageup
.yespageup
%else
cmp dl,73
jne .nopageup
%endif
sub dword[GUIcurrentvideoviewloc],5
sub dword[GUIcurrentvideocursloc],5
test dword[GUIcurrentvideoviewloc],8000000h
jz .posv
mov dword[GUIcurrentvideoviewloc],0
.posv
test dword[GUIcurrentvideocursloc],8000000h
jz .posc
mov dword[GUIcurrentvideocursloc],0
.posc
.nopageup
; "PageDown"
%ifdef __UNIXSDL__
cmp dl,97
je .yespagedn
cmp dword[numlockptr],1
je .nopagedown
cmp dl,81
jne .nopagedown
.yespagedn
%else
cmp dl,81
jne .nopagedown
%endif
add dword[GUIcurrentvideoviewloc],5
add dword[GUIcurrentvideocursloc],5
mov ebx,[NumVideoModes]
dec ebx
cmp dword[GUIcurrentvideocursloc],ebx
jb .poscd
mov [GUIcurrentvideocursloc],ebx
.poscd
sub ebx,4
cmp dword[GUIcurrentvideoviewloc],ebx
jl .posvd
test ebx,8000000h
jz .noneg
mov ebx,0
.noneg
mov [GUIcurrentvideoviewloc],ebx
.posvd
.nopagedown
.notmodestab
cmp dword[GUIVideoTabs],2
jne near .notfilterstab
mov al,[cvidmode] mov al,[cvidmode]
cmp byte[GUISLVID+eax],0 cmp byte[GUISLVID+eax],0
je .nofullscanlines je .nofullscanlines
@@ -1195,144 +1359,11 @@ GUIVideoKeys:
%endif %endif
.novsync .novsync
%endif %endif
; "Home" .notfilterstab
%ifdef __UNIXSDL__
cmp dl,89 cmp dword[GUIVideoTabs],3
je .yeshome jne .notntsctab
cmp dword[numlockptr],1 .notntsctab
je .nohome
cmp dl,71
jne .nohome
.yeshome
%else
cmp dl,71
jne .nohome
%endif
mov dword[GUIcurrentvideocursloc],0
mov dword[GUIcurrentvideoviewloc],0
.nohome
; "End"
%ifdef __UNIXSDL__
cmp dl,95
je .yesendp
cmp dword[numlockptr],1
je .noendp
cmp dl,79
jne .noendp
.yesendp
%else
cmp dl,79
jne .noendp
%endif
mov eax,[NumVideoModes]
dec eax
mov [GUIcurrentvideocursloc],eax
sub eax,4
mov [GUIcurrentvideoviewloc],eax
test dword[GUIcurrentvideoviewloc],8000000h
jz .noendp
mov dword[GUIcurrentvideoviewloc],0
.noendp
; "Up"
%ifdef __UNIXSDL__
cmp dl,90
je .up
cmp dword[numlockptr],1
je .noup
cmp dl,72
jne .noup
%else
cmp dl,72
jne .noup
%endif
.up
cmp dword[GUIcurrentvideocursloc],0
je .noup
mov ebx,[GUIcurrentvideocursloc]
cmp [GUIcurrentvideoviewloc],ebx
jne .noviewdec
dec dword[GUIcurrentvideoviewloc]
.noviewdec
dec dword[GUIcurrentvideocursloc]
.noup
; "Down"
%ifdef __UNIXSDL__
cmp dl,96
je .yesdown
cmp dword[numlockptr],1
je .nodown
cmp dl,80
jne .nodown
.yesdown
%else
cmp dl,80
jne .nodown
%endif
mov ebx,[GUIcurrentvideocursloc]
inc ebx
cmp ebx,[NumVideoModes]
je .nodown
inc dword[GUIcurrentvideocursloc]
sub ebx,5
cmp ebx,[GUIcurrentvideoviewloc]
jne .nodown
inc dword[GUIcurrentvideoviewloc]
.nodown
; "PageUp"
%ifdef __UNIXSDL__
cmp dl,91
je .yespageup
cmp dword[numlockptr],1
je .nopageup
cmp dl,73
jne .nopageup
.yespageup
%else
cmp dl,73
jne .nopageup
%endif
sub dword[GUIcurrentvideoviewloc],5
sub dword[GUIcurrentvideocursloc],5
test dword[GUIcurrentvideoviewloc],8000000h
jz .posv
mov dword[GUIcurrentvideoviewloc],0
.posv
test dword[GUIcurrentvideocursloc],8000000h
jz .posc
mov dword[GUIcurrentvideocursloc],0
.posc
.nopageup
; "PageDown"
%ifdef __UNIXSDL__
cmp dl,97
je .yespagedn
cmp dword[numlockptr],1
je .nopagedown
cmp dl,81
jne .nopagedown
.yespagedn
%else
cmp dl,81
jne .nopagedown
%endif
add dword[GUIcurrentvideoviewloc],5
add dword[GUIcurrentvideocursloc],5
mov ebx,[NumVideoModes]
dec ebx
cmp dword[GUIcurrentvideocursloc],ebx
jb .poscd
mov [GUIcurrentvideocursloc],ebx
.poscd
sub ebx,4
cmp dword[GUIcurrentvideoviewloc],ebx
jl .posvd
test ebx,8000000h
jz .noneg
mov ebx,0
.noneg
mov [GUIcurrentvideoviewloc],ebx
.posvd
.nopagedown
ret ret
GUISoundKeys: GUISoundKeys:
@@ -1790,7 +1821,6 @@ GUICheatKeys:
.nopagedown .nopagedown
ret ret
;Enter Code Input Box ;Enter Code Input Box
.textboxa .textboxa
cmp byte[GUICheatPosA],0 cmp byte[GUICheatPosA],0
@@ -2143,7 +2173,6 @@ GUICheatSearchKeys:
je .nomovedown je .nomovedown
inc byte[CheatCompareValue] inc byte[CheatCompareValue]
.nomovedown ; Restart/View/Search Buttons .nomovedown ; Restart/View/Search Buttons
cmp dh,'R' cmp dh,'R'
jne .notrestart jne .notrestart

View File

@@ -17,6 +17,7 @@
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%ifdef __WIN32__ %ifdef __WIN32__
EXTSYM MinimizeWindow EXTSYM MinimizeWindow
%endif %endif
@@ -823,7 +824,6 @@ ProcessMouseButtons:
.nosanta .nosanta
ret ret
GUIProcVideo: GUIProcVideo:
%ifdef __MSDOS__ %ifdef __MSDOS__
mov al,[GUIcurrentvideocursloc] mov al,[GUIcurrentvideocursloc]
@@ -1981,7 +1981,7 @@ SECTION .text
%%noload %%noload
%endmacro %endmacro
; Mouseimplementation ; Mouse implementation
DisplayGUIConfirmClick2: DisplayGUIConfirmClick2:
cmp dword[GUIfileentries],1 cmp dword[GUIfileentries],1
@@ -2083,8 +2083,7 @@ DisplayGUIMovieClick:
GUIPHoldbutton 9,100,112,111,31 GUIPHoldbutton 9,100,112,111,31
GUIPHoldbutton 132,165,197,176,34 GUIPHoldbutton 132,165,197,176,34
; Ratios GUIPButtonHole 10,25,byte[CMovieExt],'v' ; Radios buttons
GUIPButtonHole 10,25,byte[CMovieExt],'v' ; Select
GUIPButtonHole 30,25,byte[CMovieExt],'1' GUIPButtonHole 30,25,byte[CMovieExt],'1'
GUIPButtonHole 50,25,byte[CMovieExt],'2' GUIPButtonHole 50,25,byte[CMovieExt],'2'
GUIPButtonHole 70,25,byte[CMovieExt],'3' GUIPButtonHole 70,25,byte[CMovieExt],'3'
@@ -2118,8 +2117,6 @@ DisplayGUIMovieClick:
GUIClickCButton 144,67,byte[MovieDisplayFrame] ; Checkbox GUIClickCButton 144,67,byte[MovieDisplayFrame] ; Checkbox
ret ret
%macro DGOptnsProcBoxc 5 %macro DGOptnsProcBoxc 5
cmp eax,%1 cmp eax,%1
jl %%skip jl %%skip
@@ -2188,6 +2185,19 @@ DisplayGUIMovieClick:
%%skip %%skip
%endmacro %endmacro
%macro GUIPTabClick 4 ; minX, maxX, var, value
cmp eax,%1+1
jl %%noclick
cmp eax,%2-1
jg %%noclick
cmp edx,11
jl %%noclick
cmp edx,22
jg %%noclick
mov %3,%4
%%noclick
%endmacro
DisplayGUIInputClick2: DisplayGUIInputClick2:
push eax push eax
mov eax,[NumInputDevices] mov eax,[NumInputDevices]
@@ -2206,11 +2216,17 @@ DisplayGUIInputClick:
;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# ;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick#
GUIWinControl 5,36,107,34+5*8,GUIBlankVar,GUIcurrentinputviewloc,GUINumValue,35,8,GUIcurrentinputcursloc,4,3,0 GUIWinControl 5,36,107,34+5*8,GUIBlankVar,GUIcurrentinputviewloc,GUINumValue,35,8,GUIcurrentinputcursloc,4,3,0
GUIPHoldbutton 125,34,155,45,14 ; Buttons GUIPTabClick 0,21,dword[GUIInputTabs],1
GUIPTabClick 22,43,dword[GUIInputTabs],2
GUIPTabClick 44,65,dword[GUIInputTabs],3
GUIPTabClick 66,87,dword[GUIInputTabs],4
GUIPTabClick 88,109,dword[GUIInputTabs],5
GUIPHoldbutton 123,34,153,45,14 ; Buttons
GUIPHoldbutton 123,50,177,61,40
%ifdef __MSDOS__ %ifdef __MSDOS__
GUIPHoldbutton 125,50,185,61,15 GUIPHoldbutton 123,66,183,77,15
%endif %endif
GUIPHoldbutton 125,66,185,77,40
mov edi,pl1selk mov edi,pl1selk
mov dword[keycontrolval],pl1contrl mov dword[keycontrolval],pl1contrl
@@ -2242,18 +2258,18 @@ DisplayGUIInputClick:
pop eax pop eax
je near .lockInputChange je near .lockInputChange
DGOptnsProcBox 45,150,[edi] DGOptnsProcBox 45,155,[edi] ; select
DGOptnsProcBox 45,140,[edi+4] DGOptnsProcBox 45,145,[edi+4] ; start
DGOptnsProcBox 45,100,[edi+8] DGOptnsProcBox 45,105,[edi+8] ; up
DGOptnsProcBox 45,110,[edi+12] DGOptnsProcBox 45,115,[edi+12] ; down
DGOptnsProcBox 45,120,[edi+16] DGOptnsProcBox 45,125,[edi+16] ; left
DGOptnsProcBox 45,130,[edi+20] DGOptnsProcBox 45,135,[edi+20] ; right
DGOptnsProcBox 85,120,[edi+24] DGOptnsProcBox 85,125,[edi+24] ; x
DGOptnsProcBox 85,100,[edi+28] DGOptnsProcBox 85,105,[edi+28] ; a
DGOptnsProcBox 85,140,[edi+32] DGOptnsProcBox 85,145,[edi+32] ; l
DGOptnsProcBox 85,130,[edi+36] DGOptnsProcBox 85,135,[edi+36] ; y
DGOptnsProcBox 85,110,[edi+40] DGOptnsProcBox 85,115,[edi+40] ; b
DGOptnsProcBox 85,150,[edi+44] DGOptnsProcBox 85,155,[edi+44] ; r
mov edi,pl1Atk mov edi,pl1Atk
cmp byte[cplayernum],1 cmp byte[cplayernum],1
@@ -2273,10 +2289,10 @@ DisplayGUIInputClick:
mov edi,pl5Atk mov edi,pl5Atk
.nopl5t .nopl5t
DGOptnsProcBox 165,100,[edi] ; A Turbo DGOptnsProcBox 165,105,[edi] ; A Turbo
DGOptnsProcBox 165,110,[edi+4] ; B Turbo DGOptnsProcBox 165,115,[edi+4] ; B Turbo
DGOptnsProcBox 125,100,[edi+8] ; X Turbo DGOptnsProcBox 125,105,[edi+8] ; X Turbo
DGOptnsProcBox 125,110,[edi+12] ; Y Turbo DGOptnsProcBox 125,115,[edi+12] ; Y Turbo
mov edi,pl1Ltk mov edi,pl1Ltk
cmp byte[cplayernum],1 cmp byte[cplayernum],1
@@ -2296,8 +2312,8 @@ DisplayGUIInputClick:
mov edi,pl5Ltk mov edi,pl5Ltk
.nopl5tl .nopl5tl
DGOptnsProcBox 125,120,[edi] ; L Turbo DGOptnsProcBox 125,125,[edi] ; L Turbo
DGOptnsProcBox 165,120,[edi+4] ; R Turbo DGOptnsProcBox 165,125,[edi+4] ; R Turbo
mov edi,pl1ULk mov edi,pl1ULk
cmp byte[cplayernum],1 cmp byte[cplayernum],1
@@ -2317,17 +2333,17 @@ DisplayGUIInputClick:
mov edi,pl5ULk mov edi,pl5ULk
.nopl5tb .nopl5tb
DGOptnsProcBoxb 165,140,[edi] DGOptnsProcBoxb 165,145,[edi] ; diagonals
DGOptnsProcBoxb 165,150,[edi+4] DGOptnsProcBoxb 165,155,[edi+4]
DGOptnsProcBoxb 125,140,[edi+8] DGOptnsProcBoxb 125,145,[edi+8]
DGOptnsProcBoxb 125,150,[edi+12] DGOptnsProcBoxb 125,155,[edi+12]
.lockInputChange .lockInputChange
%ifdef __MSDOS__ %ifdef __MSDOS__
xor ebx,ebx xor ebx,ebx
mov bl,[cplayernum] mov bl,[cplayernum]
GUIClickCButtonID 5,162,byte[pl1p209+ebx] GUIClickCButtonID 5,163,byte[pl1p209+ebx]
%endif %endif
ret ret
@@ -2369,13 +2385,25 @@ DisplayGUIOptionClick:
ret ret
DisplayGUIVideoClick2: DisplayGUIVideoClick2:
cmp dword[GUIVideoTabs],1 ; modes
jne near .notmodestab2
push eax push eax
mov eax,[NumVideoModes] mov eax,[NumVideoModes]
mov [GUINumValue],eax mov [GUINumValue],eax
pop eax pop eax
GUISlidebarPostImpl 117,33,124,62,.scrollup,.scrolldown,5,5,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,GUIBlankVar,1 GUISlidebarPostImpl 117,33,124,62,.scrollup,.scrolldown,5,5,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,GUIBlankVar,1
GUIPostWinBoxMove 5,27,115,27+5*8,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIVideoClick.skipscrol,5 GUIPostWinBoxMove 5,27,115,27+5*8,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIVideoClick.skipscrol,5
.notmodestab2
DisplayGUIVideoClick: DisplayGUIVideoClick:
GUIPTabClick 0,39,dword[GUIVideoTabs],1
GUIPTabClick 40,91,dword[GUIVideoTabs],2
cmp dword[GUIVideoTabs+4],3
jne .nontscf
GUIPTabClick 92,125,dword[GUIVideoTabs],3
.nontscf
cmp dword[GUIVideoTabs],1 ; modes
jne near .notmodestab
; SlideBar Implementation ; SlideBar Implementation
push eax push eax
mov eax,[NumVideoModes] mov eax,[NumVideoModes]
@@ -2384,7 +2412,11 @@ DisplayGUIVideoClick:
GUISlidebarImpl 117,33,124,62,GUIVStA,5,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,5 GUISlidebarImpl 117,33,124,62,GUIVStA,5,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,5
.skipscrol .skipscrol
GUIWinControl 5,28,115,26+5*8,GUIBlankVar,GUIcurrentvideoviewloc,GUINumValue,27,8,GUIcurrentvideocursloc,2,5,0 GUIWinControl 5,28,115,26+5*8,GUIBlankVar,GUIcurrentvideoviewloc,GUINumValue,27,8,GUIcurrentvideocursloc,2,5,0
GUIPHoldbutton 128,60,164,71,4
.notmodestab
cmp dword[GUIVideoTabs],2 ; filters
jne near .notfilterstab
xor ebx,ebx xor ebx,ebx
mov bl,[cvidmode] mov bl,[cvidmode]
cmp byte[GUISLVID+ebx],0 cmp byte[GUISLVID+ebx],0
@@ -2421,7 +2453,6 @@ DisplayGUIVideoClick:
cmp byte[GUIM7VID+ebx],0 cmp byte[GUIM7VID+ebx],0
je .nontscfilter je .nontscfilter
GUIClickCButton5 115,173,byte[NTSCFilter],1 GUIClickCButton5 115,173,byte[NTSCFilter],1
.nontscfilter .nontscfilter
xor ebx,ebx xor ebx,ebx
mov bl,[cvidmode] mov bl,[cvidmode]
@@ -2496,7 +2527,11 @@ DisplayGUIVideoClick:
je .nocheckboxi2 je .nocheckboxi2
GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1 GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1
.nocheckboxi2 .nocheckboxi2
GUIPHoldbutton 128,60,164,71,4 .notfilterstab
cmp dword[GUIVideoTabs],3 ; NTSC
jne .notntsctab
.notntsctab
mov al,[vsyncon] mov al,[vsyncon]
mov [cfgvsync],al mov [cfgvsync],al
xor al,al xor al,al
@@ -3182,7 +3217,8 @@ DisplayGUICheatSearchClick:
GUIPHoldbutton 10,140,60,152,51 GUIPHoldbutton 10,140,60,152,51
GUIPHoldbutton 70,140,110,152,52 GUIPHoldbutton 70,140,110,152,52
ret ret
; View Cheat
; View Cheat
.preview ; Preview Box .preview ; Preview Box
; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize ; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize
GUISlidebarPostImpl 173,28,180,100,.scrollup,.scrolldown,11,12,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,GUIBlankVar,1 GUISlidebarPostImpl 173,28,180,100,.scrollup,.scrolldown,11,12,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,GUIBlankVar,1

View File

@@ -216,14 +216,11 @@ GUIHLines:
jl .nodraw jl .nodraw
cmp ebx,223 cmp ebx,223
jg .nodraw jg .nodraw
sub ecx,eax sub ecx,eax
inc ecx inc ecx
mov edi,[vidbuffer] mov edi,[vidbuffer]
add edi,eax add edi,eax
add edi,16 add edi,16
mov eax,ebx mov eax,ebx
shl eax,8 shl eax,8
add edi,eax add edi,eax
@@ -237,7 +234,6 @@ GUIHLines:
inc edi inc edi
dec ecx dec ecx
jnz .loop jnz .loop
.nodraw .nodraw
ret ret
@@ -334,7 +330,6 @@ GUIDrawShadow:
call GUIDrawShadow call GUIDrawShadow
%endmacro %endmacro
GUIDrawShadow2: GUIDrawShadow2:
.loop .loop
push edi push edi
@@ -539,7 +534,6 @@ OutputUnder:
mov ebx,[GUIwinposy+%1*4] mov ebx,[GUIwinposy+%1*4]
add edx,%2 add edx,%2
add ebx,%3 add ebx,%3
mov esi,ebx mov esi,ebx
mov eax,ebx mov eax,ebx
shl esi,8 shl esi,8
@@ -556,7 +550,6 @@ OutputUnder:
mov ebx,[GUIwinposy+%1*4] mov ebx,[GUIwinposy+%1*4]
add edx,%2 add edx,%2
add ebx,%3 add ebx,%3
mov esi,ebx mov esi,ebx
mov eax,ebx mov eax,ebx
shl esi,8 shl esi,8
@@ -573,7 +566,6 @@ OutputUnder:
mov ebx,[GUIwinposy+%1*4] mov ebx,[GUIwinposy+%1*4]
add edx,%2 add edx,%2
add ebx,%3 add ebx,%3
mov esi,ebx mov esi,ebx
mov eax,ebx mov eax,ebx
shl esi,8 shl esi,8
@@ -833,5 +825,3 @@ GUIDrawSlideBar:
mov esi,%7 mov esi,%7
call GUIDrawSlideBar call GUIDrawSlideBar
%endmacro %endmacro

File diff suppressed because it is too large Load Diff