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
; GUITools.inc - Misc routines for the GUI
; Quick Searches :
; DisplayMenu - routines to display top menu bar
; Incomp - Search for start of modem processing
@@ -62,7 +61,6 @@
; CheatCodeSearchInit
; guiwincontrol
%include "macros.mac"
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 KeyDisplayBatt,PauseFocusChange,KeyIncreaseGamma,KeyDecreaseGamma
EXTSYM MovieVideoMode, MovieAudio, MovieVideoAudio, MovieAudioCompress
EXTSYM NTSCFilter, GUINTSC
EXTSYM GetDate, horizon_get
EXTSYM NTSCFilter,GUINTSC,GetDate, horizon_get
%ifdef __UNIXSDL__
EXTSYM numlockptr
@@ -178,26 +175,21 @@ NEWSYM WaterOn, db 1
; blue scale = 148 .. 167, 168 .. 187
; gray scale = 189 .. 220 (32+137)
; | Game Config Cheat MultiPlay Misc
;-------------------------------------------------------
; Load Input#1 Add Code Modem Misc Keys
; Run Input#2 Browse IPX GUI Opns
; Reset Input#3 Search Movie Opn
; ----- Input#4 Key Comb.
; Save State Input#5 Save Cfg
; Load State ----- ----
; Pick State Add-Ons About
; ----- Chip Cfg
; Quit ----
; Options
; Video
; Sound
; Paths
; Load Input Add Code Modem Misc Keys
; Run ----- Browse IPX GUI Opns
; Reset Add-Ons Search Movie Opn
; ----- Chip Cfg Key Comb.
; Save State ----- Save Cfg
; Load State Options -----
; Pick State Video About
; ----- Sound
; Quit Paths
; Saves
; Speed
; MultiPlay only has "Internet" for Windows/Linux
; NetPlay only has "Internet" for Windows/Linux
; Windows : 1 = Load
; 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
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
MenuDat3 db 14, 3,1,1,1,1,0,1,1,0,1,1,1,1,1,2,0
MenuDat2 db 8, 3,1,1,0,1,1,1,0,2,0
MenuDat3 db 10, 3,0,1,1,0,1,1,1,1,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
%endif
MenuDat6 db 6, 3,1,1,1,1,0,2,0
GUIPrevMenuData:
@@ -254,11 +250,7 @@ GUIGameMenuData:
db 0,'------------',0
db 1,'QUIT ',0
GUIConfigMenuData:
db 1,'INPUT #1 ',0
db 1,'INPUT #2 ',0
db 1,'INPUT #3 ',0
db 1,'INPUT #4 ',0
db 1,'INPUT #5 ',0
db 1,'INPUT ',0
db 0,'------------',0
db 1,'ADD-ONS ',0
db 1,'CHIP CFG ',0
@@ -274,8 +266,13 @@ GUICheatMenuData:
db 1,'BROWSE ',0
db 1,'SEARCH ',0
GUINetPlayMenuData:
%ifndef __MSDOS__
db 1,'INTERNET ',0
db 0,'------------',0
%else
db 1,'MODEM ',0
db 1,'IPX ',0
%endif
GUIMiscMenuData:
db 1,'MISC KEYS ',0
db 1,'GUI OPNS ',0
@@ -477,10 +474,10 @@ clearsram:
GUIQuickLoadUpdate:
cmp byte[prevlfreeze],0
je .off
mov dword[GUIPrevMenuData.onoff+15],'ON '
mov dword[GUIPrevMenuData.onoff+14],'ON '
jmp .on
.off
mov dword[GUIPrevMenuData.onoff+15],'OFF '
mov dword[GUIPrevMenuData.onoff+14],'OFF '
.on
%ifdef __MSDOS__
mov esi,prevloadnames
@@ -915,7 +912,6 @@ SECTION .data
cstempfname db 'tmpchtsr.___',0
SECTION .text
NEWSYM SaveSramData
; change to sram dir
pushad
@@ -973,56 +969,6 @@ NEWSYM SaveSramData
call Change_Dir
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
cmp dl,9
jbe %%notover
@@ -1091,15 +1037,6 @@ NEWSYM StartGUI
mov eax,[pl1p209b]
mov [pl1p209],eax
.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
cmp byte[prevloadl],0
jne .noconvertlfqm
@@ -1538,14 +1475,12 @@ NEWSYM StartGUI
mov dword[StartLR],0
jmp continueprog
SECTION .bss
CheckSumVal resd 1
SECTION .data
WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0
SECTION .text
SRAMDirc:
; get LoadDrive/LoadDir
mov ebx,LoadDir
@@ -1594,10 +1529,10 @@ guimencodermsg:
ret
SECTION .data
guimencodert1 db ' MENCODER iS MISSING : ',0
guimencodert1 db ' MENCODER IS MISSING : ',0
guimencodert2 db ' PRESS SPACE TO CONTINUE',0
section .text
SECTION .text
guifirsttimemsg:
xor ebx,ebx
@@ -1815,8 +1750,8 @@ guiprevidmsg2 db 'TO CHANGE YOUR VIDEO',0
guiprevidmsg3 db ' MODE. IF THE CHANGE',0
guiprevidmsg4 db 'IS UNSUCCESSFUL, WAIT',0
guiprevidmsg5 db ' 10 SECONDS AND VIDEO',0
guiprevidmsg6 db 'MODE WILL BE RESET',0
guiprevidmsg7 db 'PRESS ANY KEY',0
guiprevidmsg6 db 'MODE WILL BE RESTORED.',0
guiprevidmsg7 db ' PRESS ANY KEY.',0
SECTION .text
guipostvideo:
@@ -1863,7 +1798,7 @@ guipostvideo:
SECTION .data
guipostvidmsg1 db 'VIDEO MODE CHANGED.',0
guipostvidmsg2 db 'PRESS SPACEBAR',0
guipostvidmsg2 db ' PRESS SPACEBAR.',0
SECTION .text
guipostvideofail:
@@ -2150,14 +2085,10 @@ GUITryMenuItem: ; Defines which menu item calls what window
xor byte[prevlfreeze],1
cmp byte[prevlfreeze],0
je .off
mov byte[GUIPrevMenuData.onoff+15],'O'
mov byte[GUIPrevMenuData.onoff+16],'N'
mov byte[GUIPrevMenuData.onoff+17],' '
mov dword[GUIPrevMenuData.onoff+14],'ON '
jmp .on
.off
mov byte[GUIPrevMenuData.onoff+15],'O'
mov byte[GUIPrevMenuData.onoff+16],'F'
mov byte[GUIPrevMenuData.onoff+17],'F'
mov dword[GUIPrevMenuData.onoff+14],'OFF '
.on
.skipswitch
cmp byte[GUIcrowpos],12
@@ -2223,37 +2154,13 @@ GUITryMenuItem: ; Defines which menu item calls what window
.nomain
cmp byte[GUIcmenupos],3
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 right is where in the drop down box we are
GUICheckMenuItem 17, 6 ; Add-Ons
GUICheckMenuItem 18, 7 ; Chip Config
GUICheckMenuItem 4, 9 ; Options
cmp byte[GUIcrowpos],10 ; Video
GUICheckMenuItem 3,0 ; Input #1-5
GUICheckMenuItem 17,2 ; Add-Ons
GUICheckMenuItem 18,3 ; Chip Config
GUICheckMenuItem 4,5 ; Options
cmp byte[GUIcrowpos],6 ; Video
jne near .novideo
; set Video cursor location
xor eax,eax
@@ -2269,10 +2176,10 @@ GUITryMenuItem: ; Defines which menu item calls what window
mov edx,5
call CheckMenuItemHelp
.novideo
GUICheckMenuItem 6, 11 ; Sound
GUICheckMenuItem 19, 12 ; Paths
GUICheckMenuItem 20, 13 ; Saves
GUICheckMenuItem 21, 14 ; Speed
GUICheckMenuItem 6,7 ; Sound
GUICheckMenuItem 19,8 ; Paths
GUICheckMenuItem 20,9 ; Saves
GUICheckMenuItem 21,10 ; Speed
.noconfig
cmp byte[romloadskip],0
jne near .nocheat
@@ -2296,7 +2203,6 @@ GUITryMenuItem: ; Defines which menu item calls what window
; GUICheckMenuItem 8, 0 ; Disable DOS Netplay Options
; GUICheckMenuItem 8, 1
%endif
;.win32 ; Already commented
; GUICheckMenuItem 8, 0 ; Disable WIN/SDL Internet Option
cmp byte[GUIcrowpos],0
jne near .nonet
@@ -2794,23 +2700,21 @@ DisplayMenu:
.nomenu2
cmp byte[GUIcmenupos],3
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
.nomenu3
cmp byte[GUIcmenupos],4
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
.nomenu4
cmp byte[GUIcmenupos],5
jne near .nomenu5
%ifdef __MSDOS__
GUIDrawMenuM 140,16,10,2,GUINetPlayMenuData,142,145,22,39,48 ;19+2*10
mov dword[GUICYLocPtr],MenuDat5
jmp .nomenu5
%else
GUIDrawMenuM 140,16,10,1,GUINetPlayMenuData,142,145,22,29,48 ;19+1*10
%endif
.menu5b
GUIDrawMenuM 140,16,10,1,GUINetPlayMenuData,142,145,22,29,48 ;19+2*10
mov dword[GUICYLocPtr],MenuDat5
.nomenu5
cmp byte[GUIcmenupos],6
@@ -2883,8 +2787,6 @@ GUIMenuDisplay:
jnz near .next
ret
InitGUI:
cmp byte[newengen],0
je .nong16b
@@ -3716,8 +3618,7 @@ GUISetPal16:
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,
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,
db 31
db 17,18,18,19,20,20,21,22,22,23,24,24,25,26,26,27,28,28,29,30,30,31
SECTION .text
GUIBufferData:
@@ -3877,23 +3778,23 @@ GUIconvpal:
ret
SECTION .data
GUIMousePtr db 50+88,47+88,45+88,43+88,42+88,00,00,00
db 53+88,52+88,46+88,42+88,00,00,00,00
db 55+88,54+88,54+88,44+88,00,00,00,00
db 57+88,57+88,56+88,52+88,45+88,00,00,00
db 59+88,00,00,55+88,50+88,45+88,00,00
db 00,00,00,00,55+88,50+88,45+88,00
db 00,00,00,00,00,55+88,50+88,47+88
db 00,00,00,00,00,00,52+88,00
db 50,47,45,43,40,00,00,00
db 53,52,46,42,00,00,00,00
db 55,54,54,44,00,00,00,00
db 57,57,56,52,45,00,00,00
db 59,00,00,55,50,45,00,00
db 00,00,00,00,55,50,45,00
db 00,00,00,00,00,55,50,47
db 00,00,00,00,00,00,52,00
GUIMousePtr:
db 50+88,47+88,45+88,43+88,40+88,0 ,0 ,0
db 53+88,52+88,46+88,42+88,0 ,0 ,0 ,0
db 55+88,54+88,54+88,44+88,0 ,0 ,0 ,0
db 57+88,57+88,56+88,52+88,45+88,0 ,0 ,0
db 59+88,0 ,0 ,55+88,50+88,45+88,0 ,0
db 0 ,0 ,0 ,0 ,55+88,50+88,45+88,0
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,0 ,0 ,0
db 53,52,46,42,0 ,0 ,0 ,0
db 55,54,54,44,0 ,0 ,0 ,0
db 57,57,56,52,45,0 ,0 ,0
db 59,0 ,0 ,55,50,45,0 ,0
db 0 ,0 ,0 ,0 ,55,50,45,0
db 0 ,0 ,0 ,0 ,0 ,55,50,47
db 0 ,0 ,0 ,0 ,0 ,0 ,52,0
NEWSYM GUIFontData
db 0,0,0,0,0; empty space
@@ -4286,7 +4187,7 @@ NEWSYM GUIFontData
db 00000000b
db 00100000b
db 01010000b
db 00100000b; shw fullstop 0x4E
db 00100000b; sjis halfwidth (shw) fullstop 0x4E
db 01110000b
db 01000000b
db 01000000b

View File

@@ -341,6 +341,8 @@ GUIgetcurrentinput:
je near GUILoadKeys
cmp ebx,2
je near GUIStateSelKeys
cmp ebx,3
je near GUIInputKeys
cmp ebx,4
je near GUIOptionKeys
cmp ebx,5
@@ -722,6 +724,23 @@ GUIgetcurrentinput:
.nokey
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:
ret
@@ -792,7 +811,7 @@ GUIOptionKeys:
%endif
ret
GUIAboutKeys
GUIAboutKeys:
cmp dh,'a' ; Setup
jb .nocap
cmp dh,'z'
@@ -936,6 +955,7 @@ GUIGUIOptnsKeys:
ret
GUIVideoKeys:
KeyTabInc GUIVideoTabs
cmp dh,'a'
jb .nocap
cmp dh,'z'
@@ -943,6 +963,150 @@ GUIVideoKeys:
sub dh,'z'-'Z'
.nocap
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]
cmp byte[GUISLVID+eax],0
je .nofullscanlines
@@ -1195,144 +1359,11 @@ GUIVideoKeys:
%endif
.novsync
%endif
; "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
.notfilterstab
cmp dword[GUIVideoTabs],3
jne .notntsctab
.notntsctab
ret
GUISoundKeys:
@@ -1790,7 +1821,6 @@ GUICheatKeys:
.nopagedown
ret
;Enter Code Input Box
.textboxa
cmp byte[GUICheatPosA],0
@@ -2143,7 +2173,6 @@ GUICheatSearchKeys:
je .nomovedown
inc byte[CheatCompareValue]
.nomovedown ; Restart/View/Search Buttons
cmp dh,'R'
jne .notrestart

View File

@@ -17,6 +17,7 @@
;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
%ifdef __WIN32__
EXTSYM MinimizeWindow
%endif
@@ -823,7 +824,6 @@ ProcessMouseButtons:
.nosanta
ret
GUIProcVideo:
%ifdef __MSDOS__
mov al,[GUIcurrentvideocursloc]
@@ -2083,8 +2083,7 @@ DisplayGUIMovieClick:
GUIPHoldbutton 9,100,112,111,31
GUIPHoldbutton 132,165,197,176,34
; Ratios
GUIPButtonHole 10,25,byte[CMovieExt],'v' ; Select
GUIPButtonHole 10,25,byte[CMovieExt],'v' ; Radios buttons
GUIPButtonHole 30,25,byte[CMovieExt],'1'
GUIPButtonHole 50,25,byte[CMovieExt],'2'
GUIPButtonHole 70,25,byte[CMovieExt],'3'
@@ -2118,8 +2117,6 @@ DisplayGUIMovieClick:
GUIClickCButton 144,67,byte[MovieDisplayFrame] ; Checkbox
ret
%macro DGOptnsProcBoxc 5
cmp eax,%1
jl %%skip
@@ -2188,6 +2185,19 @@ DisplayGUIMovieClick:
%%skip
%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:
push eax
mov eax,[NumInputDevices]
@@ -2206,11 +2216,17 @@ DisplayGUIInputClick:
;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
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__
GUIPHoldbutton 125,50,185,61,15
GUIPHoldbutton 123,66,183,77,15
%endif
GUIPHoldbutton 125,66,185,77,40
mov edi,pl1selk
mov dword[keycontrolval],pl1contrl
@@ -2242,18 +2258,18 @@ DisplayGUIInputClick:
pop eax
je near .lockInputChange
DGOptnsProcBox 45,150,[edi]
DGOptnsProcBox 45,140,[edi+4]
DGOptnsProcBox 45,100,[edi+8]
DGOptnsProcBox 45,110,[edi+12]
DGOptnsProcBox 45,120,[edi+16]
DGOptnsProcBox 45,130,[edi+20]
DGOptnsProcBox 85,120,[edi+24]
DGOptnsProcBox 85,100,[edi+28]
DGOptnsProcBox 85,140,[edi+32]
DGOptnsProcBox 85,130,[edi+36]
DGOptnsProcBox 85,110,[edi+40]
DGOptnsProcBox 85,150,[edi+44]
DGOptnsProcBox 45,155,[edi] ; select
DGOptnsProcBox 45,145,[edi+4] ; start
DGOptnsProcBox 45,105,[edi+8] ; up
DGOptnsProcBox 45,115,[edi+12] ; down
DGOptnsProcBox 45,125,[edi+16] ; left
DGOptnsProcBox 45,135,[edi+20] ; right
DGOptnsProcBox 85,125,[edi+24] ; x
DGOptnsProcBox 85,105,[edi+28] ; a
DGOptnsProcBox 85,145,[edi+32] ; l
DGOptnsProcBox 85,135,[edi+36] ; y
DGOptnsProcBox 85,115,[edi+40] ; b
DGOptnsProcBox 85,155,[edi+44] ; r
mov edi,pl1Atk
cmp byte[cplayernum],1
@@ -2273,10 +2289,10 @@ DisplayGUIInputClick:
mov edi,pl5Atk
.nopl5t
DGOptnsProcBox 165,100,[edi] ; A Turbo
DGOptnsProcBox 165,110,[edi+4] ; B Turbo
DGOptnsProcBox 125,100,[edi+8] ; X Turbo
DGOptnsProcBox 125,110,[edi+12] ; Y Turbo
DGOptnsProcBox 165,105,[edi] ; A Turbo
DGOptnsProcBox 165,115,[edi+4] ; B Turbo
DGOptnsProcBox 125,105,[edi+8] ; X Turbo
DGOptnsProcBox 125,115,[edi+12] ; Y Turbo
mov edi,pl1Ltk
cmp byte[cplayernum],1
@@ -2296,8 +2312,8 @@ DisplayGUIInputClick:
mov edi,pl5Ltk
.nopl5tl
DGOptnsProcBox 125,120,[edi] ; L Turbo
DGOptnsProcBox 165,120,[edi+4] ; R Turbo
DGOptnsProcBox 125,125,[edi] ; L Turbo
DGOptnsProcBox 165,125,[edi+4] ; R Turbo
mov edi,pl1ULk
cmp byte[cplayernum],1
@@ -2317,17 +2333,17 @@ DisplayGUIInputClick:
mov edi,pl5ULk
.nopl5tb
DGOptnsProcBoxb 165,140,[edi]
DGOptnsProcBoxb 165,150,[edi+4]
DGOptnsProcBoxb 125,140,[edi+8]
DGOptnsProcBoxb 125,150,[edi+12]
DGOptnsProcBoxb 165,145,[edi] ; diagonals
DGOptnsProcBoxb 165,155,[edi+4]
DGOptnsProcBoxb 125,145,[edi+8]
DGOptnsProcBoxb 125,155,[edi+12]
.lockInputChange
%ifdef __MSDOS__
xor ebx,ebx
mov bl,[cplayernum]
GUIClickCButtonID 5,162,byte[pl1p209+ebx]
GUIClickCButtonID 5,163,byte[pl1p209+ebx]
%endif
ret
@@ -2369,13 +2385,25 @@ DisplayGUIOptionClick:
ret
DisplayGUIVideoClick2:
cmp dword[GUIVideoTabs],1 ; modes
jne near .notmodestab2
push eax
mov eax,[NumVideoModes]
mov [GUINumValue],eax
pop eax
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
.notmodestab2
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
push eax
mov eax,[NumVideoModes]
@@ -2384,7 +2412,11 @@ DisplayGUIVideoClick:
GUISlidebarImpl 117,33,124,62,GUIVStA,5,GUIcurrentvideoviewloc,GUIcurrentvideocursloc,GUINumValue,5
.skipscrol
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
mov bl,[cvidmode]
cmp byte[GUISLVID+ebx],0
@@ -2421,7 +2453,6 @@ DisplayGUIVideoClick:
cmp byte[GUIM7VID+ebx],0
je .nontscfilter
GUIClickCButton5 115,173,byte[NTSCFilter],1
.nontscfilter
xor ebx,ebx
mov bl,[cvidmode]
@@ -2496,7 +2527,11 @@ DisplayGUIVideoClick:
je .nocheckboxi2
GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1
.nocheckboxi2
GUIPHoldbutton 128,60,164,71,4
.notfilterstab
cmp dword[GUIVideoTabs],3 ; NTSC
jne .notntsctab
.notntsctab
mov al,[vsyncon]
mov [cfgvsync],al
xor al,al
@@ -3182,6 +3217,7 @@ DisplayGUICheatSearchClick:
GUIPHoldbutton 10,140,60,152,51
GUIPHoldbutton 70,140,110,152,52
ret
; View Cheat
.preview ; Preview Box
; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize

View File

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

File diff suppressed because it is too large Load Diff