From 15dbf2631ca25468a71580bf48d720bdb9c830d0 Mon Sep 17 00:00:00 2001 From: grinvader <> Date: Wed, 22 Mar 2006 14:12:42 +0000 Subject: [PATCH] Tab feature in. Input menu tabified. Video menu split. Some source cleanup. --- zsnes/src/gui/gui.asm | 7209 ++++++++++++++++++------------------ zsnes/src/gui/guikeys.inc | 4791 ++++++++++++------------ zsnes/src/gui/guimouse.inc | 5376 ++++++++++++++------------- zsnes/src/gui/guitools.inc | 1326 ++++--- zsnes/src/gui/guiwindp.inc | 6766 +++++++++++++++++---------------- 5 files changed, 12809 insertions(+), 12659 deletions(-) diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 4e96394b..393b9f15 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -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,67 +215,72 @@ 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: - db 1,'1. ',0 - db 1,'2. ',0 - db 1,'3. ',0 - db 1,'4. ',0 - db 1,'5. ',0 - db 1,'6. ',0 - db 1,'7. ',0 - db 1,'8. ',0 - db 1,'9. ',0 - db 1,'0. ',0 - db 0,'------------',0 -.onoff db 1,'FREEZE DATA : OFF ',0 - db 1,'CLEAR ALL DATA ',0 + db 1,'1. ',0 + db 1,'2. ',0 + db 1,'3. ',0 + db 1,'4. ',0 + db 1,'5. ',0 + db 1,'6. ',0 + db 1,'7. ',0 + db 1,'8. ',0 + db 1,'9. ',0 + db 1,'0. ',0 + db 0,'------------',0 +.onoff db 1,'FREEZE DATA: OFF ',0 + db 1,'CLEAR ALL DATA ',0 GUIGameMenuData: - db 1,'LOAD ',0 - db 1,'RUN [ESC] ',0 - db 1,'RESET ',0 - db 0,'------------',0 - db 1,'SAVE STATE ',0 - db 1,'OPEN STATE ',0 - db 1,'PICK STATE ',0 - db 0,'------------',0 - db 1,'QUIT ',0 + db 1,'LOAD ',0 + db 1,'RUN [ESC] ',0 + db 1,'RESET ',0 + db 0,'------------',0 + db 1,'SAVE STATE ',0 + db 1,'OPEN STATE ',0 + db 1,'PICK STATE ',0 + 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 0,'------------',0 - db 1,'ADD-ONS ',0 - db 1,'CHIP CFG ',0 - db 0,'------------',0 - db 1,'OPTIONS ',0 - db 1,'VIDEO ',0 - db 1,'SOUND ',0 - db 1,'PATHS ',0 - db 1,'SAVES ',0 - db 1,'SPEED ',0 + db 1,'INPUT ',0 + db 0,'------------',0 + db 1,'ADD-ONS ',0 + db 1,'CHIP CFG ',0 + db 0,'------------',0 + db 1,'OPTIONS ',0 + db 1,'VIDEO ',0 + db 1,'SOUND ',0 + db 1,'PATHS ',0 + db 1,'SAVES ',0 + db 1,'SPEED ',0 GUICheatMenuData: - db 1,'ADD CODE ',0 - db 1,'BROWSE ',0 - db 1,'SEARCH ',0 + db 1,'ADD CODE ',0 + db 1,'BROWSE ',0 + db 1,'SEARCH ',0 GUINetPlayMenuData: - db 1,'MODEM ',0 - db 1,'IPX ',0 +%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 - db 1,'MOVIE OPN ',0 - db 1,'KEY COMB. ',0 - db 1,'SAVE CFG ',0 - db 0,'------------',0 - db 1,'ABOUT ',0 + db 1,'MISC KEYS ',0 + db 1,'GUI OPNS ',0 + db 1,'MOVIE OPN ',0 + db 1,'KEY COMB. ',0 + db 1,'SAVE CFG ',0 + db 0,'------------',0 + db 1,'ABOUT ',0 ; Config, Options -> New Gfx Engine, Frame Rate, Fast Forward FrameRate, etc. ; Config, Video -> Video Mode, Interpolation, etc. @@ -308,7 +305,7 @@ 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,6 ,65 ,33 ,42 ,38 ,34 ,6 ,64 ,8 ,8 ,33 ,56 ,64 ,56 ,5 ,3 ,48 ,48 ,6 ,28 ,53 +GUIwinposxo dd 0,6 ,65 ,33 ,42 ,38 ,34 ,6 ,64 ,8 ,8 ,33 ,56 ,64 ,56 ,5 ,3 ,48 ,48 ,6 ,28 ,53 GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,30 ,20 ,20 ,60 ,30 ,65 ,20 ,19 ,60 ,60 ,20 ,30 ,25 GUIwinsizex dd 0,244 ,126 ,189 ,172 ,180 ,188 ,244 ,8*16,240 ,240 ,190 ,9*16,8*16,9*16,246 ,250 ,160 ,160 ,244 ,200 ,150 GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,188 ,191 ,40 ,170 ,150 ,190 ,42 ,40 ,42 ,190 ,190 ,100 ,100 ,190 ,160 ,180 @@ -414,133 +411,133 @@ SECTION .text %macro stim 0 %ifdef __MSDOS__ - sti + sti %endif %endmacro %macro clim 0 %ifdef __MSDOS__ - cli + cli %endif %endmacro clearsram: - push eax - push ecx - mov eax,srama - mov ecx,65536 + push eax + push ecx + mov eax,srama + mov ecx,65536 .loop - mov byte[eax],0FFh - inc eax - dec ecx - jnz .loop - cmp byte[SFXEnable],0 - je .nosfxbatt - cmp byte[CHIPBATT],0 - je .nosfxbatt - mov eax,[sfxramdata] - mov ecx,65536 + mov byte[eax],0FFh + inc eax + dec ecx + jnz .loop + cmp byte[SFXEnable],0 + je .nosfxbatt + cmp byte[CHIPBATT],0 + je .nosfxbatt + mov eax,[sfxramdata] + mov ecx,65536 .loop2 - mov byte[eax],0FFh - inc eax - dec ecx - jnz .loop2 + mov byte[eax],0FFh + inc eax + dec ecx + jnz .loop2 .nosfxbatt - cmp byte[SETAEnable],0 - je .nosetasram - mov eax,[setaramdata] - mov ecx,4096 + cmp byte[SETAEnable],0 + je .nosetasram + mov eax,[setaramdata] + mov ecx,4096 .loop2seta - mov byte[eax],0FFh - inc eax - dec ecx - jnz .loop2seta + mov byte[eax],0FFh + inc eax + dec ecx + jnz .loop2seta .nosetasram - cmp byte[SA1Enable],1 - jne .nosa1 - cmp byte[CHIPBATT],1 - jne .nosa1 - mov eax,[SA1RAMArea] - mov ecx,65536*2 + cmp byte[SA1Enable],1 + jne .nosa1 + cmp byte[CHIPBATT],1 + jne .nosa1 + mov eax,[SA1RAMArea] + mov ecx,65536*2 .loop3 - mov byte[eax],0FFh - inc eax - dec ecx - jnz .loop3 + mov byte[eax],0FFh + inc eax + dec ecx + jnz .loop3 .nosa1 - pop ecx - pop eax - ret + pop ecx + pop eax + ret GUIQuickLoadUpdate: - cmp byte[prevlfreeze],0 - je .off - mov dword[GUIPrevMenuData.onoff+15],'ON ' - jmp .on + cmp byte[prevlfreeze],0 + je .off + 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 + mov esi,prevloadnames %else - mov esi,prevloadfnamel + mov esi,prevloadfnamel %endif - mov edi,GUIPrevMenuData+3 - mov edx,10 + mov edi,GUIPrevMenuData+3 + mov edx,10 .mainloop %ifdef __MSDOS__ - mov ecx,16 + mov ecx,16 %else - mov ecx,25 + mov ecx,25 %endif - push edi - push esi - cmp byte[esi],32 - je near .fin2 + push edi + push esi + cmp byte[esi],32 + je near .fin2 .loop - mov al,[esi] - cmp al,0 - je .zero - mov [edi],al - inc esi - inc edi - dec ecx - jnz .loop - cmp byte[esi],0 - je .zero - mov byte[edi],'.' - mov byte[edi+1],'.' - mov byte[edi+2],'.' - jmp .fin + mov al,[esi] + cmp al,0 + je .zero + mov [edi],al + inc esi + inc edi + dec ecx + jnz .loop + cmp byte[esi],0 + je .zero + mov byte[edi],'.' + mov byte[edi+1],'.' + mov byte[edi+2],'.' + jmp .fin .zero - add ecx,3 + add ecx,3 .loop2 - mov byte[edi],32 - inc edi - dec ecx - jnz .loop2 - jmp .fin + mov byte[edi],32 + inc edi + dec ecx + jnz .loop2 + jmp .fin .fin2 - mov ecx,18 + mov ecx,18 .loop3 - mov byte[edi],32 - inc edi - dec ecx - jnz .loop3 + mov byte[edi],32 + inc edi + dec ecx + jnz .loop3 .fin - pop esi - pop edi + pop esi + pop edi %ifdef __MSDOS__ - add esi,16 + add esi,16 %else - add esi,512 ;16 + add esi,512 ;16 %endif - add edi,32 - dec edx - jnz near .mainloop - ret + add edi,32 + dec edx + jnz near .mainloop + ret SECTION .data NEWSYM ComboHeader, db 'Key Combination File',26,1,0 @@ -548,19 +545,19 @@ NEWSYM ComboBlHeader, times 23 db 0 SECTION .text %macro GUIInitIRQs 0 - call GUIInit - mov esi,pressed - mov ecx,256 - mov al,0 + call GUIInit + mov esi,pressed + mov ecx,256 + mov al,0 .loopa - mov [esi],al - inc esi - dec ecx - jnz .loopa + mov [esi],al + inc esi + dec ecx + jnz .loopa %endmacro %macro GUIDeInitIRQs 0 - call GUIDeInit + call GUIDeInit %endmacro SECTION .data @@ -574,201 +571,201 @@ SECTION .data SECTION .text NEWSYM GUIinit18_2hz - mov al,00110110b - out 43h,al - mov ax,0 - out 40h,al - mov al,ah - out 40h,al - ret + mov al,00110110b + out 43h,al + mov ax,0 + out 40h,al + mov al,ah + out 40h,al + ret NEWSYM GUIinit36_4hz - mov al,00110110b - out 43h,al - mov ax,32768 - out 40h,al - mov al,ah - out 40h,al - ret + mov al,00110110b + out 43h,al + mov ax,32768 + out 40h,al + mov al,ah + out 40h,al + ret NEWSYM GUI36hzcall - inc dword[GUIt1cc] - inc dword[SnowMover] - cmp dword[GUIEditStringLTxt],0 - je .nodec - dec dword[GUIEditStringLTxt] + inc dword[GUIt1cc] + inc dword[SnowMover] + cmp dword[GUIEditStringLTxt],0 + je .nodec + dec dword[GUIEditStringLTxt] .nodec - cmp dword[GUIScrolTim1],0 - je .nodec4 - dec dword[GUIScrolTim1] + cmp dword[GUIScrolTim1],0 + je .nodec4 + dec dword[GUIScrolTim1] .nodec4 - cmp dword[GUIDClickTL],0 - je .nodec2 - dec dword[GUIDClickTL] + cmp dword[GUIDClickTL],0 + je .nodec2 + dec dword[GUIDClickTL] .nodec2 - cmp dword[GUIkeydelay],0 - je .nodec3 - dec dword[GUIkeydelay] + cmp dword[GUIkeydelay],0 + je .nodec3 + dec dword[GUIkeydelay] .nodec3 - cmp dword[GUIkeydelay2],0 - je .nodec3b - dec dword[GUIkeydelay2] + cmp dword[GUIkeydelay2],0 + je .nodec3b + dec dword[GUIkeydelay2] .nodec3b - cmp dword[GUICTimer],0 - je .nodec6 - dec dword[GUICTimer] + cmp dword[GUICTimer],0 + je .nodec6 + dec dword[GUICTimer] .nodec6 - inc byte[GUICCFlash] - and byte[GUICCFlash],0Fh - inc byte[GUILDFlash] - and byte[GUILDFlash],0Fh - ret + inc byte[GUICCFlash] + and byte[GUICCFlash],0Fh + inc byte[GUILDFlash] + and byte[GUILDFlash],0Fh + ret %ifdef __MSDOS__ NEWSYM GUIhandler8h - cli - push ds - push eax - mov ax,[cs:dssel] - mov ds,ax - call GUI36hzcall - xor byte[GUIt1ccSwap],1 - cmp byte[GUIt1ccSwap],0 - je .nocall - pushf - call far [GUIoldhand8o] + cli + push ds + push eax + mov ax,[cs:dssel] + mov ds,ax + call GUI36hzcall + xor byte[GUIt1ccSwap],1 + cmp byte[GUIt1ccSwap],0 + je .nocall + pushf + call far [GUIoldhand8o] .nocall - mov al,20h - out 20h,al - pop eax - pop ds - sti - iretd + mov al,20h + out 20h,al + pop eax + pop ds + sti + iretd NEWSYM GUIhandler9h - cli - push ds - push eax - push ebx - mov ax,[cs:dssel] - mov ds,ax + cli + push ds + push eax + push ebx + mov ax,[cs:dssel] + mov ds,ax - xor ebx,ebx - in al,60h ; get keyboard scan code - cmp al,42 - jne .no42 - cmp byte[GUIskipnextkey42],0 - je .no42 - mov byte[GUIskipnextkey42],0 - jmp .skipkeyrel + xor ebx,ebx + in al,60h ; get keyboard scan code + cmp al,42 + jne .no42 + cmp byte[GUIskipnextkey42],0 + je .no42 + mov byte[GUIskipnextkey42],0 + jmp .skipkeyrel .no42 - cmp al,0E0h - jne .noE0 - mov byte[GUIskipnextkey42],1 - jmp .skipkeyrel + cmp al,0E0h + jne .noE0 + mov byte[GUIskipnextkey42],1 + jmp .skipkeyrel .noE0 - mov byte[GUIskipnextkey42],0 - mov bl,al - xor bh,bh - test bl,80h ; check if bit 7 is on (key released) - jnz .keyrel - cmp byte[pressed+ebx],0 - jne .skipa - mov byte[pressed+ebx],1 ; if not, set key to pressed + mov byte[GUIskipnextkey42],0 + mov bl,al + xor bh,bh + test bl,80h ; check if bit 7 is on (key released) + jnz .keyrel + cmp byte[pressed+ebx],0 + jne .skipa + mov byte[pressed+ebx],1 ; if not, set key to pressed .skipa - jmp .skipkeyrel + jmp .skipkeyrel .keyrel - and bl,7Fh - mov byte[pressed+ebx],0 ; if not, set key to pressed + and bl,7Fh + mov byte[pressed+ebx],0 ; if not, set key to pressed .skipkeyrel - mov byte[pressed],0 + mov byte[pressed],0 - pushf - call far [GUIoldhand9o] - mov al,20h - out 20h,al - pop ebx - pop eax - pop ds - sti - iretd + pushf + call far [GUIoldhand9o] + mov al,20h + out 20h,al + pop ebx + pop eax + pop ds + sti + iretd %endif %macro loadmenuopen 1 - mov al,[GUIcmenupos] - mov [GUIpmenupos],al - mov byte[GUIcmenupos],0 - cmp byte[GUIwinactiv+%1],1 - je %%menuontop - xor eax,eax - mov al,[GUIwinptr] - inc byte[GUIwinptr] - mov byte[GUIwinorder+eax],%1 - mov byte[GUIwinactiv+%1],1 - cmp byte[resetposn],1 - jne %%nomenuitem - mov eax,[GUIwinposxo+%1*4] - mov [GUIwinposx+%1*4],eax - mov eax,[GUIwinposyo+%1*4] - mov [GUIwinposy+%1*4],eax - jmp %%nomenuitem + mov al,[GUIcmenupos] + mov [GUIpmenupos],al + mov byte[GUIcmenupos],0 + cmp byte[GUIwinactiv+%1],1 + je %%menuontop + xor eax,eax + mov al,[GUIwinptr] + inc byte[GUIwinptr] + mov byte[GUIwinorder+eax],%1 + mov byte[GUIwinactiv+%1],1 + cmp byte[resetposn],1 + jne %%nomenuitem + mov eax,[GUIwinposxo+%1*4] + mov [GUIwinposx+%1*4],eax + mov eax,[GUIwinposyo+%1*4] + mov [GUIwinposy+%1*4],eax + jmp %%nomenuitem %%menuontop - xor eax,eax - ; look for match + xor eax,eax + ; look for match %%notfoundyet - mov bl,[GUIwinorder+eax] - cmp bl,%1 - je %%nextfind - inc eax - jmp %%notfoundyet + mov bl,[GUIwinorder+eax] + cmp bl,%1 + je %%nextfind + inc eax + jmp %%notfoundyet %%nextfind - inc eax - cmp al,[GUIwinptr] - je %%foundend - mov cl,[GUIwinorder+eax] - mov [GUIwinorder+eax-1],cl - jmp %%nextfind + inc eax + cmp al,[GUIwinptr] + je %%foundend + mov cl,[GUIwinorder+eax] + mov [GUIwinorder+eax-1],cl + jmp %%nextfind %%foundend - mov byte[GUIpclicked],0 - mov [GUIwinorder+eax-1],bl + mov byte[GUIpclicked],0 + mov [GUIwinorder+eax-1],bl %%nomenuitem %endmacro loadnetopen: - loadmenuopen 8 - ret + loadmenuopen 8 + ret SECTION .bss MouseInitOkay resb 1 SECTION .text LoadDetermine: - mov byte[GUIGameMenuData+14],1 - mov byte[GUIGameMenuData+14*2],1 - mov byte[GUIGameMenuData+14*4],1 - mov byte[GUIGameMenuData+14*5],1 - mov byte[GUIGameMenuData+14*6],1 - mov byte[GUICheatMenuData],1 - mov byte[GUICheatMenuData+14],1 - mov byte[GUICheatMenuData+14*2],1 - mov byte[GUIMiscMenuData+14*2],1 - mov byte[GUINetPlayMenuData],2 ; Gray out Netplay options + mov byte[GUIGameMenuData+14],1 + mov byte[GUIGameMenuData+14*2],1 + mov byte[GUIGameMenuData+14*4],1 + mov byte[GUIGameMenuData+14*5],1 + mov byte[GUIGameMenuData+14*6],1 + mov byte[GUICheatMenuData],1 + mov byte[GUICheatMenuData+14],1 + mov byte[GUICheatMenuData+14*2],1 + mov byte[GUIMiscMenuData+14*2],1 + mov byte[GUINetPlayMenuData],2 ; Gray out Netplay options %ifdef __MSDOS__ - mov byte[GUINetPlayMenuData+14],2 + mov byte[GUINetPlayMenuData+14],2 %endif - cmp byte[romloadskip],0 - je .noromloaded - mov byte[GUIGameMenuData+14],2 - mov byte[GUIGameMenuData+14*2],2 - mov byte[GUIGameMenuData+14*4],2 - mov byte[GUIGameMenuData+14*5],2 - mov byte[GUIGameMenuData+14*6],2 - mov byte[GUICheatMenuData],2 - mov byte[GUICheatMenuData+14],2 - mov byte[GUICheatMenuData+14*2],2 - mov byte[GUIMiscMenuData+14*2],2 + cmp byte[romloadskip],0 + je .noromloaded + mov byte[GUIGameMenuData+14],2 + mov byte[GUIGameMenuData+14*2],2 + mov byte[GUIGameMenuData+14*4],2 + mov byte[GUIGameMenuData+14*5],2 + mov byte[GUIGameMenuData+14*6],2 + mov byte[GUICheatMenuData],2 + mov byte[GUICheatMenuData+14],2 + mov byte[GUICheatMenuData+14*2],2 + mov byte[GUIMiscMenuData+14*2],2 .noromloaded - ret + ret SECTION .data SantaData: @@ -789,125 +786,125 @@ MsgGiftLeft dd 0 SECTION .text DrawSnow: - cmp byte[OkaySC],0 - je near .nosanta - cmp dword[MsgGiftLeft],0 - je .nodec - mov edx,20 - mov ebx,210 - mov byte[GUItextcolor],228 - GUIOuttextwin .giftmsg + cmp byte[OkaySC],0 + je near .nosanta + cmp dword[MsgGiftLeft],0 + je .nodec + mov edx,20 + mov ebx,210 + mov byte[GUItextcolor],228 + GUIOuttextwin .giftmsg .nodec - mov esi,[vidbuffer] - add esi,[SantaPos] - add esi,60*288 - mov edx,SantaData - mov ebx,8 + mov esi,[vidbuffer] + add esi,[SantaPos] + add esi,60*288 + mov edx,SantaData + mov ebx,8 .sloop2 - mov ecx,16 + mov ecx,16 .sloop - cmp byte[edx],0 - je .transp - mov byte[esi],0 + cmp byte[edx],0 + je .transp + mov byte[esi],0 .transp - inc esi - inc edx - dec ecx - jnz .sloop - add esi,272 - dec ebx - jnz .sloop2 + inc esi + inc edx + dec ecx + jnz .sloop + add esi,272 + dec ebx + jnz .sloop2 .nosanta - mov esi,[vidbuffer] - mov ecx,200 - xor edx,edx + mov esi,[vidbuffer] + mov ecx,200 + xor edx,edx .loop - xor eax,eax - mov al,[SnowData+edx*4+3] - mov ebx,eax - shl eax,8 - shl ebx,5 - add eax,ebx - xor ebx,ebx - mov bl,[SnowData+edx*4+1] - add eax,ebx - add eax,16 - mov bl,[SnowVelDist+edx*2] - and bl,03h - add bl,228 - test byte[SnowVelDist+edx*2],8 - jz .nosnow - mov [esi+eax],bl + xor eax,eax + mov al,[SnowData+edx*4+3] + mov ebx,eax + shl eax,8 + shl ebx,5 + add eax,ebx + xor ebx,ebx + mov bl,[SnowData+edx*4+1] + add eax,ebx + add eax,16 + mov bl,[SnowVelDist+edx*2] + and bl,03h + add bl,228 + test byte[SnowVelDist+edx*2],8 + jz .nosnow + mov [esi+eax],bl .nosnow - inc edx - dec ecx - jnz .loop - ; Change Snow Displacement Values + inc edx + dec ecx + jnz .loop + ; Change Snow Displacement Values .next - cmp dword[SnowMover],0 - je .nomore - call ProcessSnowVelocity - dec dword[SnowMover] - jmp .next + cmp dword[SnowMover],0 + je .nomore + call ProcessSnowVelocity + dec dword[SnowMover] + jmp .next .nomore - ret + ret SECTION .data .giftmsg db 'A GIFT TO YOU IN THE OPTIONS!',0 SECTION .text ProcessSnowVelocity: - cmp dword[MsgGiftLeft],0 - je .nodec - dec dword[MsgGiftLeft] + cmp dword[MsgGiftLeft],0 + je .nodec + dec dword[MsgGiftLeft] .nodec - cmp dword[NumSnow],200 - jne .snowincr - cmp dword[SantaNextT],0 - je .skip - dec dword[SantaNextT] - jmp .notsreset + cmp dword[NumSnow],200 + jne .snowincr + cmp dword[SantaNextT],0 + je .skip + dec dword[SantaNextT] + jmp .notsreset .skip - dec dword[SantaPos] - cmp dword[SantaPos],0 - jne .notsreset - mov dword[SantaPos],272 - mov dword[SantaNextT],36*60 - jmp .notsreset + dec dword[SantaPos] + cmp dword[SantaPos],0 + jne .notsreset + mov dword[SantaPos],272 + mov dword[SantaNextT],36*60 + jmp .notsreset .snowincr - dec dword[SnowTimer] - jnz .notsreset - inc dword[NumSnow] - mov dword[SnowTimer],18 + dec dword[SnowTimer] + jnz .notsreset + inc dword[NumSnow] + mov dword[SnowTimer],18 .notsreset - mov ecx,[NumSnow] - cmp ecx,0 - jne .okay - ret + mov ecx,[NumSnow] + cmp ecx,0 + jne .okay + ret .okay - xor edx,edx + xor edx,edx .loop - xor eax,eax - mov al,[SnowVelDist+edx*2] - mov ebx,100 - sub bl,[MusicRelVol] - add bx,bx - add ax,bx - add ax,bx - add word[SnowData+edx*4],ax - xor eax,eax - mov al,[SnowVelDist+edx*2+1] - add ax,256 - add word[SnowData+edx*4+2],ax - cmp word[SnowData+edx*4+2],200h - ja .nosdata - or byte[SnowVelDist+edx*2],8 + xor eax,eax + mov al,[SnowVelDist+edx*2] + mov ebx,100 + sub bl,[MusicRelVol] + add bx,bx + add ax,bx + add ax,bx + add word[SnowData+edx*4],ax + xor eax,eax + mov al,[SnowVelDist+edx*2+1] + add ax,256 + add word[SnowData+edx*4+2],ax + cmp word[SnowData+edx*4+2],200h + ja .nosdata + or byte[SnowVelDist+edx*2],8 .nosdata - inc edx - dec ecx - jnz .loop - ret + inc edx + dec ecx + jnz .loop + ret SECTION .bss OkaySC resb 1 @@ -915,123 +912,72 @@ SECTION .data cstempfname db 'tmpchtsr.___',0 SECTION .text - NEWSYM SaveSramData - ; change to sram dir - pushad - call SRAMChdir - popad + ; change to sram dir + pushad + call SRAMChdir + popad - cmp byte[sramsavedis],1 - je .savesramdone + cmp byte[sramsavedis],1 + je .savesramdone - cmp dword[ramsize],0 - je .savesramdone + cmp dword[ramsize],0 + je .savesramdone - mov edx,[sram] - cmp byte[SFXEnable],1 - jne .notsfx - mov edx,[sfxramdata] + mov edx,[sram] + cmp byte[SFXEnable],1 + jne .notsfx + mov edx,[sfxramdata] .notsfx - cmp byte[SA1Enable],1 - jne .notsa1 - mov edx,[SA1RAMArea] + cmp byte[SA1Enable],1 + jne .notsa1 + mov edx,[SA1RAMArea] .notsa1 - cmp byte[SETAEnable],1 - jne .notseta - mov edx,[setaramdata] + cmp byte[SETAEnable],1 + jne .notseta + mov edx,[setaramdata] .notseta - cmp edx,[sram] - je .notspecial - cmp byte[CHIPBATT],0 - je .savesramdone + cmp edx,[sram] + je .notspecial + cmp byte[CHIPBATT],0 + je .savesramdone .notspecial - clim + clim - push edx ;Backup data to save - mov edx,fnames+1 - call Create_File - jc .failed - mov bx,ax - xor ecx,ecx - mov ecx,[ramsize] - pop edx ;Restore data to save - call Write_File - call Close_File - push edx ;Dirty hack for the next line + push edx ;Backup data to save + mov edx,fnames+1 + call Create_File + jc .failed + mov bx,ax + xor ecx,ecx + mov ecx,[ramsize] + pop edx ;Restore data to save + call Write_File + call Close_File + push edx ;Dirty hack for the next line .failed - pop edx ;This is needed here because if the jump to failed is carried out, edx is never popped - stim + pop edx ;This is needed here because if the jump to failed is carried out, edx is never popped + stim .savesramdone - call SaveCombFile + call SaveCombFile - ; change dir to InitDrive/InitDir - mov dl,[InitDrive] - mov ebx,InitDir - 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 + ; change dir to InitDrive/InitDir + mov dl,[InitDrive] + mov ebx,InitDir + call Change_Dir + ret %macro ProcessOneDigit 1 - cmp dl,9 - jbe %%notover - add dl,65-48-10 + cmp dl,9 + jbe %%notover + add dl,65-48-10 %%notover - add dl,48 - mov [.message+%1],dl - xor edx,edx - div ebx + add dl,48 + mov [.message+%1],dl + xor edx,edx + div ebx %endmacro SECTION .data @@ -1039,505 +985,495 @@ SECTION .data SECTION .text NEWSYM StartGUI - cmp byte[TripBufAvail],0 - jne .notexttb - mov byte[Triplebufen],0 + cmp byte[TripBufAvail],0 + jne .notexttb + mov byte[Triplebufen],0 .notexttb - cmp byte[MMXSupport],1 - jne .2xSaIdis - cmp byte[newgfx16b],0 - je .2xSaIdis - jmp .no2xSaIdis + cmp byte[MMXSupport],1 + jne .2xSaIdis + cmp byte[newgfx16b],0 + je .2xSaIdis + jmp .no2xSaIdis .2xSaIdis - mov byte[En2xSaI],0 - mov byte[hqFilter],0 + mov byte[En2xSaI],0 + mov byte[hqFilter],0 .no2xSaIdis - cmp byte[En2xSaI],0 - je .no2xsaidis - mov byte[Triplebufen],0 + cmp byte[En2xSaI],0 + je .no2xsaidis + mov byte[Triplebufen],0 .no2xsaidis - cmp byte[En2xSaI],0 - je .no2xsaien - mov byte[hqFilter],0 - mov byte[scanlines],0 - mov byte[antienab],0 + cmp byte[En2xSaI],0 + je .no2xsaien + mov byte[hqFilter],0 + mov byte[scanlines],0 + mov byte[antienab],0 .no2xsaien - cmp byte[hqFilter],0 - je .nohq - mov byte[En2xSaI],0 - mov byte[scanlines],0 - mov byte[antienab],0 + cmp byte[hqFilter],0 + je .nohq + mov byte[En2xSaI],0 + mov byte[scanlines],0 + mov byte[antienab],0 .nohq - mov ecx,64 - mov eax,SpecialLine + mov ecx,64 + mov eax,SpecialLine .slloop - mov dword[eax],0 - add eax,4 - dec ecx - jnz .slloop - cmp byte[OldWinPos],0 - jne .okayow - xor esi,esi - mov ecx,17 + mov dword[eax],0 + add eax,4 + dec ecx + jnz .slloop + cmp byte[OldWinPos],0 + jne .okayow + xor esi,esi + mov ecx,17 .nextow - mov eax,[GUIwinposx2+esi*4] - mov [GUIwinposx+esi*4],eax - mov eax,[GUIwinposy2+esi*4] - mov [GUIwinposy+esi*4],eax - inc esi - dec ecx - jnz .nextow - mov byte[OldWinPos],1 - mov eax,[pl1p209b] - mov [pl1p209],eax + mov eax,[GUIwinposx2+esi*4] + mov [GUIwinposx+esi*4],eax + mov eax,[GUIwinposy2+esi*4] + mov [GUIwinposy+esi*4],eax + inc esi + dec ecx + jnz .nextow + mov byte[OldWinPos],1 + 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 - mov byte[prevloadl],1 - mov ecx,10 - xor edx,edx + ; copy old quickfilename to new quickfilename + cmp byte[prevloadl],0 + jne .noconvertlfqm + mov byte[prevloadl],1 + mov ecx,10 + xor edx,edx .convlfnlp - mov eax,ecx - dec eax - mov edx,eax - shl eax,9 - shl edx,4 - mov bl,16 + mov eax,ecx + dec eax + mov edx,eax + shl eax,9 + shl edx,4 + mov bl,16 .convlfnlp2 - mov bh,[prevloadfname+edx] - mov [prevloadfnamel+eax],bh - inc edx - inc eax - dec bl - jnz .convlfnlp2 - mov eax,ecx - dec eax - mov edx,eax - shl eax,9 - shl edx,7 - mov bl,128 + mov bh,[prevloadfname+edx] + mov [prevloadfnamel+eax],bh + inc edx + inc eax + dec bl + jnz .convlfnlp2 + mov eax,ecx + dec eax + mov edx,eax + shl eax,9 + shl edx,7 + mov bl,128 .convlfnlp2b - mov bh,[prevloaddname+edx] - mov [prevloaddnamel+eax],bh - inc edx - inc eax - dec bl - jnz .convlfnlp2b - dec ecx - jnz .convlfnlp + mov bh,[prevloaddname+edx] + mov [prevloaddnamel+eax],bh + inc edx + inc eax + dec bl + jnz .convlfnlp2b + dec ecx + jnz .convlfnlp .noconvertlfqm - mov byte[GUIOn],1 - mov byte[GUIOn2],1 - mov eax,[NumComboLocl] - cmp byte[GUIComboGameSpec],0 - jne .local - mov eax,[NumComboGlob] + mov byte[GUIOn],1 + mov byte[GUIOn2],1 + mov eax,[NumComboLocl] + cmp byte[GUIComboGameSpec],0 + jne .local + mov eax,[NumComboGlob] .local - mov [NumCombo],eax - call ResetTripleBuf + mov [NumCombo],eax + call ResetTripleBuf - cmp dword[GUIwinposx+16*4],0 - jne .notzero - mov dword[GUIwinposx+16*4],3 - mov dword[GUIwinposy+16*4],22 + cmp dword[GUIwinposx+16*4],0 + jne .notzero + mov dword[GUIwinposx+16*4],3 + mov dword[GUIwinposy+16*4],22 .notzero - xor ecx,ecx + xor ecx,ecx .joysloop - cmp dword[pl1ULk+ecx*4],80h - jbe .nojoystick - mov dword[pl1ULk+ecx*4],0 + cmp dword[pl1ULk+ecx*4],80h + jbe .nojoystick + mov dword[pl1ULk+ecx*4],0 .nojoystick - inc ecx - cmp ecx,16 - jne .joysloop + inc ecx + cmp ecx,16 + jne .joysloop - mov dword[GUICTimer],0 - cmp byte[OldVolume],1 - jne .notold - mov byte[OldVolume],0 - mov byte[MusicRelVol],100 - mov byte[cfgvolume],100 - ; Initialize volume - xor eax,eax - xor edx,edx - mov al,[MusicRelVol] - shl eax,7 - mov ebx,100 - div ebx - cmp al,127 - jb .noofb - mov al,127 + mov dword[GUICTimer],0 + cmp byte[OldVolume],1 + jne .notold + mov byte[OldVolume],0 + mov byte[MusicRelVol],100 + mov byte[cfgvolume],100 + ; Initialize volume + xor eax,eax + xor edx,edx + mov al,[MusicRelVol] + shl eax,7 + mov ebx,100 + div ebx + cmp al,127 + jb .noofb + mov al,127 .noofb - mov [MusicVol],al + mov [MusicVol],al .notold - mov byte[CheatSearchStatus],0 - cmp byte[newgfx16b],0 - je .nong - mov ecx,255*144 - mov eax,[vidbufferofsb] + mov byte[CheatSearchStatus],0 + cmp byte[newgfx16b],0 + je .nong + mov ecx,255*144 + mov eax,[vidbufferofsb] .loop - mov dword[eax],0 - add eax,4 - dec ecx - jnz .loop + mov dword[eax],0 + add eax,4 + dec ecx + jnz .loop .nong - mov byte[ShowTimer],1 - call Get_Date - cmp dh,12 - jne .noxmas - cmp dl,25 - jne .noxmas - mov byte[OkaySC],1 + mov byte[ShowTimer],1 + call Get_Date + cmp dh,12 + jne .noxmas + cmp dl,25 + jne .noxmas + mov byte[OkaySC],1 .noxmas - mov byte[lastmouseholded],1 - cmp dword[GUIwinposx+15*4],0 - jne .nomoviemenufix - mov dword[GUIwinposx+15*4],50 - mov dword[GUIwinposy+15*4],50 + mov byte[lastmouseholded],1 + cmp dword[GUIwinposx+15*4],0 + jne .nomoviemenufix + mov dword[GUIwinposx+15*4],50 + mov dword[GUIwinposy+15*4],50 .nomoviemenufix - mov ax,[resolutn] - mov [PrevResoln],ax - mov word[resolutn],224 + mov ax,[resolutn] + mov [PrevResoln],ax + mov word[resolutn],224 - mov byte[GUIPalConv],0 - mov byte[MousePRClick],1 + mov byte[GUIPalConv],0 + mov byte[MousePRClick],1 - pushad - cmp byte[MouseInitOkay],1 - je near .mousedone - mov byte[MouseInitOkay],1 - cmp byte[MouseDis],1 - je .mousedone - call Init_Mouse - cmp ax,0 - jne .mousedone - mov byte[MouseDis],1 + pushad + cmp byte[MouseInitOkay],1 + je near .mousedone + mov byte[MouseInitOkay],1 + cmp byte[MouseDis],1 + je .mousedone + call Init_Mouse + cmp ax,0 + jne .mousedone + mov byte[MouseDis],1 .mousedone - popad + popad - mov eax,[KeyQuickLoad] - test byte[pressed+eax],1 - jz near .noquickload - mov byte[GUIcmenupos],0 - loadmenuopen 1 + mov eax,[KeyQuickLoad] + test byte[pressed+eax],1 + jz near .noquickload + mov byte[GUIcmenupos],0 + loadmenuopen 1 .noquickload - mov esi,pressed - mov ecx,64+32+8 + mov esi,pressed + mov ecx,64+32+8 .pclear - mov dword[esi],0 - add esi,4 - dec ecx - jnz .pclear - mov byte[pressed+1],2 - mov byte[GUIescpress],1 + mov dword[esi],0 + add esi,4 + dec ecx + jnz .pclear + mov byte[pressed+1],2 + mov byte[GUIescpress],1 - ; set Video cursor location - xor eax,eax - mov al,[cvidmode] - mov [GUIcurrentvideocursloc],eax - mov ebx,[NumVideoModes] - sub ebx,5 - cmp eax,ebx - jbe .noof - mov eax,ebx + ; set Video cursor location + xor eax,eax + mov al,[cvidmode] + mov [GUIcurrentvideocursloc],eax + mov ebx,[NumVideoModes] + sub ebx,5 + cmp eax,ebx + jbe .noof + mov eax,ebx .noof - mov [GUIcurrentvideoviewloc],eax + mov [GUIcurrentvideoviewloc],eax - call SaveSramData + call SaveSramData - ; change to sram dir - pushad - call SRAMChdir - popad + ; change to sram dir + pushad + call SRAMChdir + popad - call GUIQuickLoadUpdate - call LoadDetermine + call GUIQuickLoadUpdate + call LoadDetermine - ; change dir to LoadDrive/LoadDir - mov dl,[LoadDrive] - mov ebx,LoadDir - call Change_Dir + ; change dir to LoadDrive/LoadDir + mov dl,[LoadDrive] + mov ebx,LoadDir + call Change_Dir - cmp byte[AutoState],0 - je .noautostate - cmp byte[romloadskip],0 - jne .noautostate - call SaveSecondState + cmp byte[AutoState],0 + je .noautostate + cmp byte[romloadskip],0 + jne .noautostate + call SaveSecondState .noautostate - GUIInitIRQs + GUIInitIRQs - cmp byte[GUIwinptr],0 - jne .nomenuopen - cmp byte[lastcursres],1 - je .nomenuchange - mov byte[GUIcmenupos],2 - mov byte[GUIcrowpos],0 - mov dword[GUICYLocPtr],MenuDat2 - cmp byte[lastcursres],0 - je .nomenuchange + cmp byte[GUIwinptr],0 + jne .nomenuopen + cmp byte[lastcursres],1 + je .nomenuchange + mov byte[GUIcmenupos],2 + mov byte[GUIcrowpos],0 + mov dword[GUICYLocPtr],MenuDat2 + cmp byte[lastcursres],0 + je .nomenuchange .nomenuopen - mov byte[GUIcmenupos],0 + mov byte[GUIcmenupos],0 .nomenuchange - cmp byte[GUIwinactiv+1],0 - je .noloadrefresh - call GetLoadData + cmp byte[GUIwinactiv+1],0 + je .noloadrefresh + call GetLoadData .noloadrefresh - mov byte[GUIHold],0 - ; clear 256 bytes from hirestiledat - mov esi,hirestiledat - mov ecx,256 + mov byte[GUIHold],0 + ; clear 256 bytes from hirestiledat + mov esi,hirestiledat + mov ecx,256 .loophires - mov byte[esi],0 - inc esi - dec ecx - jnz .loophires - mov byte[curblank],00h - call InitGUI + mov byte[esi],0 + inc esi + dec ecx + jnz .loophires + mov byte[curblank],00h + call InitGUI - cmp byte[CheatWinMode],0 - je near .csskip - ; change to sram dir - pushad - call SRAMChdir - popad + cmp byte[CheatWinMode],0 + je near .csskip + ; change to sram dir + pushad + call SRAMChdir + popad - ; Load Cheat Search File - mov edx,cstempfname - call Open_File - jc .csskipb - mov bx,ax - mov edx,[vidbuffer] - add edx,129600 - mov ecx,65536*2+32768 - call Read_File - call Close_File + ; Load Cheat Search File + mov edx,cstempfname + call Open_File + jc .csskipb + mov bx,ax + mov edx,[vidbuffer] + add edx,129600 + mov ecx,65536*2+32768 + call Read_File + call Close_File .csskipb - ; change dir to LoadDrive/LoadDir - mov dl,[LoadDrive] - mov ebx,LoadDir - call Change_Dir + ; change dir to LoadDrive/LoadDir + mov dl,[LoadDrive] + mov ebx,LoadDir + call Change_Dir .csskip - mov byte[GUIQuit],0 + mov byte[GUIQuit],0 .nokey - cmp byte[GUIQuit],2 - je near .exit - cmp byte[GUIQuit],1 - je near .exitgui - mov byte[GUIQuit],0 - cmp byte[MouseDis],1 - je .mousedis2 - call ProcessMouse - cmp byte[videotroub],1 - jne .notrouble - ret + cmp byte[GUIQuit],2 + je near .exit + cmp byte[GUIQuit],1 + je near .exitgui + mov byte[GUIQuit],0 + cmp byte[MouseDis],1 + je .mousedis2 + call ProcessMouse + cmp byte[videotroub],1 + jne .notrouble + ret .notrouble .mousedis2 - call GUIUnBuffer - cmp byte[GUIEffect],1 - jne .nosnow - call DrawSnow + call GUIUnBuffer + cmp byte[GUIEffect],1 + jne .nosnow + call DrawSnow .nosnow - cmp byte[GUIEffect],2 - jne .nowater - call DrawWater + cmp byte[GUIEffect],2 + jne .nowater + call DrawWater .nowater - cmp byte[GUIEffect],3 - jne .nowater2 - call DrawWater + cmp byte[GUIEffect],3 + jne .nowater2 + call DrawWater .nowater2 - cmp byte[GUIEffect],4 - jne .nosmoke + cmp byte[GUIEffect],4 + jne .nosmoke ; call DrawSmoke - call DrawBurn + call DrawBurn .nosmoke - cmp dword[GUIEditStringcWin],0 - je .noblink - cmp dword[GUIEditStringcLen],0 - je .noblink - mov eax,[GUIEditStringcLen] - cmp dword[GUIEditStringLTxt],8 - jb .noblinka - mov byte[eax],'_' - mov byte[eax+1],0 - mov dword[GUIEditStringLstb],1 + cmp dword[GUIEditStringcWin],0 + je .noblink + cmp dword[GUIEditStringcLen],0 + je .noblink + mov eax,[GUIEditStringcLen] + cmp dword[GUIEditStringLTxt],8 + jb .noblinka + mov byte[eax],'_' + mov byte[eax+1],0 + mov dword[GUIEditStringLstb],1 .noblinka - cmp dword[GUIEditStringLTxt],0 - jne .noblink - mov dword[GUIEditStringLTxt],16 + cmp dword[GUIEditStringLTxt],0 + jne .noblink + mov dword[GUIEditStringLTxt],16 .noblink - call DisplayBoxes + call DisplayBoxes - cmp dword[GUIEditStringLstb],1 - jne .notblinked - mov dword[GUIEditStringLstb],0 - mov eax,[GUIEditStringcLen] - mov byte[eax],0 + cmp dword[GUIEditStringLstb],1 + jne .notblinked + mov dword[GUIEditStringLstb],0 + mov eax,[GUIEditStringcLen] + mov byte[eax],0 .notblinked - call DisplayMenu - cmp byte[MouseDis],1 - je .mousedis3 - call DrawMouse + call DisplayMenu + cmp byte[MouseDis],1 + je .mousedis3 + call DrawMouse .mousedis3 - cmp byte[FirstTimeData],0 - jne .nofirsttime - call guifirsttimemsg - mov byte[FirstTimeData],1 + cmp byte[FirstTimeData],0 + jne .nofirsttime + call guifirsttimemsg + mov byte[FirstTimeData],1 .nofirsttime - cmp byte[guimsgptr],0 - jne .nohorizon - pushad - call GetDate - cmp ax,1025 - popad - jne .nohorizon - pushad - call GetTime - push eax - call horizon_get - mov [guimsgptr],eax - popad - call horizonfixmsg + cmp byte[guimsgptr],0 + jne .nohorizon + pushad + call GetDate + cmp ax,1025 + popad + jne .nohorizon + pushad + call GetTime + push eax + call horizon_get + mov [guimsgptr],eax + popad + call horizonfixmsg .nohorizon - cmp dword[GUICTimer],0 - je .notimer - GUIOuttext 21,211,[GUICMessage],50 - GUIOuttext 20,210,[GUICMessage],63 + cmp dword[GUICTimer],0 + je .notimer + GUIOuttext 21,211,[GUICMessage],50 + GUIOuttext 20,210,[GUICMessage],63 .notimer - call vidpastecopyscr - call GUIgetcurrentinput - jmp .nokey + call vidpastecopyscr + call GUIgetcurrentinput + jmp .nokey .exitgui - GUIDeInitIRQs + GUIDeInitIRQs - mov ax,[PrevResoln] - mov [resolutn],ax - jmp endprog + mov ax,[PrevResoln] + mov [resolutn],ax + jmp endprog .exit - mov edi,[spcBuffera] - mov ecx,65536 - xor eax,eax - rep stosd - mov edi,spcRamcmp - mov ecx,65536/4 - xor eax,eax - rep stosd - GUIDeInitIRQs - call ClearScreen - cmp byte[cbitmode],0 - jne .nomakepal - call makepal + mov edi,[spcBuffera] + mov ecx,65536 + xor eax,eax + rep stosd + mov edi,spcRamcmp + mov ecx,65536/4 + xor eax,eax + rep stosd + GUIDeInitIRQs + call ClearScreen + cmp byte[cbitmode],0 + jne .nomakepal + call makepal .nomakepal - mov word[t1cc],1 + mov word[t1cc],1 - ; get LoadDrive/LoadDir - mov ebx,LoadDir - mov edx,LoadDrive - call Get_Dir + ; get LoadDrive/LoadDir + mov ebx,LoadDir + mov edx,LoadDrive + call Get_Dir - ; change dir to InitDrive/InitDir - mov dl,[InitDrive] - mov ebx,InitDir - ; save config - call Change_Dir - call createnewcfg - call GUISaveVars + ; change dir to InitDrive/InitDir + mov dl,[InitDrive] + mov ebx,InitDir + ; save config + call Change_Dir + call createnewcfg + call GUISaveVars - ; change dir to SRAMDrive/SRAMDir - pushad - call SRAMChdir - popad + ; change dir to SRAMDrive/SRAMDir + pushad + call SRAMChdir + popad - mov byte[MousePRClick],1 - mov byte[prevbright],0 - mov ax,[PrevResoln] - mov [resolutn],ax + mov byte[MousePRClick],1 + mov byte[prevbright],0 + mov ax,[PrevResoln] + mov [resolutn],ax - mov byte[CheatOn],0 - cmp dword[NumCheats],0 - je .nocheats - mov byte[CheatOn],1 + mov byte[CheatOn],0 + cmp dword[NumCheats],0 + je .nocheats + mov byte[CheatOn],1 .nocheats - cmp byte[CopyRamToggle],1 - jne .nocopyram - mov byte[CopyRamToggle],0 - mov eax,[vidbuffer] - add eax,129600 - ; copy 128k ram - mov ebx,[wramdata] - mov ecx,32768 + cmp byte[CopyRamToggle],1 + jne .nocopyram + mov byte[CopyRamToggle],0 + mov eax,[vidbuffer] + add eax,129600 + ; copy 128k ram + mov ebx,[wramdata] + mov ecx,32768 .loopcr - mov edx,[ebx] - mov [eax],edx - add ebx,4 - add eax,4 - dec ecx - jnz .loopcr + mov edx,[ebx] + mov [eax],edx + add ebx,4 + add eax,4 + dec ecx + jnz .loopcr .nocopyram - cmp byte[CheatWinMode],2 - jne .notview - mov byte[CheatWinMode],1 + cmp byte[CheatWinMode],2 + jne .notview + mov byte[CheatWinMode],1 .notview - cmp byte[CheatWinMode],0 - je .csskip2 - ; Save Cheat Search File - mov edx,cstempfname - call Create_File - jc .csskip2 - mov bx,ax - mov edx,[vidbuffer] - add edx,129600 - mov ecx,65536*2+32768 - call Write_File - call Close_File + cmp byte[CheatWinMode],0 + je .csskip2 + ; Save Cheat Search File + mov edx,cstempfname + call Create_File + jc .csskip2 + mov bx,ax + mov edx,[vidbuffer] + add edx,129600 + mov ecx,65536*2+32768 + call Write_File + call Close_File .csskip2 - mov edi,[vidbuffer] - mov ecx,288*120 - xor eax,eax - rep stosd + mov edi,[vidbuffer] + mov ecx,288*120 + xor eax,eax + rep stosd - mov ecx,256*144 - mov eax,[vidbufferofsb] + mov ecx,256*144 + mov eax,[vidbufferofsb] .loopcl - mov dword[eax],0 - add eax,4 - dec ecx - jnz .loopcl - - mov al,[cfgsoundon] - mov [soundon],al - mov al,[cfgStereoSound] - mov [StereoSound],al - mov al,[cfgSoundQuality] - mov [SoundQuality],al - call AdjustFrequency - mov byte[GUIOn],0 - mov byte[GUIOn2],0 - mov byte[GUIReset],0 - mov dword[StartLL],0 - mov dword[StartLR],0 - jmp continueprog + mov dword[eax],0 + add eax,4 + dec ecx + jnz .loopcl + mov al,[cfgsoundon] + mov [soundon],al + mov al,[cfgStereoSound] + mov [StereoSound],al + mov al,[cfgSoundQuality] + mov [SoundQuality],al + call AdjustFrequency + mov byte[GUIOn],0 + mov byte[GUIOn2],0 + mov byte[GUIReset],0 + mov dword[StartLL],0 + mov dword[StartLR],0 + jmp continueprog SECTION .bss CheckSumVal resd 1 @@ -1545,101 +1481,100 @@ SECTION .data WrongCheckSum db 10,13,'ROM Data Mismatch',10,13,10,13,0 SECTION .text - SRAMDirc: - ; get LoadDrive/LoadDir - mov ebx,LoadDir - mov edx,LoadDrive - call Get_Dir - ; change to sram dir - pushad - call SRAMChdir - popad - ret + ; get LoadDrive/LoadDir + mov ebx,LoadDir + mov edx,LoadDrive + call Get_Dir + ; change to sram dir + pushad + call SRAMChdir + popad + ret LOADDir: - mov dl,[LoadDrive] - mov ebx,LoadDir - call Change_Dir - ret + mov dl,[LoadDrive] + mov ebx,LoadDir + call Change_Dir + ret guimencodermsg: - xor ebx,ebx - mov ecx,256 + xor ebx,ebx + mov ecx,256 .a - mov byte[pressed+ebx],0 - inc ebx - dec ecx - jnz .a - mov byte[pressed+2Ch],0 + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + mov byte[pressed+2Ch],0 .again - GUIBox 43,75,213,163,160 - GUIBox 43,75,213,75,162 - GUIBox 43,75,43,163,161 - GUIBox 213,75,213,163,159 - GUIBox 43,163,213,163,158 - GUIOuttext 52,96,guimencodert1,220-15 - GUIOuttext 51,95,guimencodert1,220 - GUIOuttext 52,134,guimencodert2,220-15 - GUIOuttext 51,133,guimencodert2,220 - call vidpastecopyscr - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - call JoyRead - cmp byte[pressed+39h],0 - jne .pressedokay - jmp .again + GUIBox 43,75,213,163,160 + GUIBox 43,75,213,75,162 + GUIBox 43,75,43,163,161 + GUIBox 213,75,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 52,96,guimencodert1,220-15 + GUIOuttext 51,95,guimencodert1,220 + GUIOuttext 52,134,guimencodert2,220-15 + GUIOuttext 51,133,guimencodert2,220 + call vidpastecopyscr + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + call JoyRead + cmp byte[pressed+39h],0 + jne .pressedokay + jmp .again .pressedokay - ret + 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 - mov ecx,256 + xor ebx,ebx + mov ecx,256 .a - mov byte[pressed+ebx],0 - inc ebx - dec ecx - jnz .a - mov byte[pressed+2Ch],0 + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + mov byte[pressed+2Ch],0 .again - GUIBox 43,75,213,163,160 - GUIBox 43,75,213,75,162 - GUIBox 43,75,43,163,161 - GUIBox 213,75,213,163,159 - GUIBox 43,163,213,163,158 - GUIOuttext 52,81,guiftimemsg1,220-15 - GUIOuttext 51,80,guiftimemsg1,220 - GUIOuttext 52,96,guiftimemsg2,220-15 - GUIOuttext 51,95,guiftimemsg2,220 - GUIOuttext 52,104,guiftimemsg3,220-15 - GUIOuttext 51,103,guiftimemsg3,220 - GUIOuttext 52,112,guiftimemsg4,220-15 - GUIOuttext 51,111,guiftimemsg4,220 - GUIOuttext 52,120,guiftimemsg5,220-15 - GUIOuttext 51,119,guiftimemsg5,220 - GUIOuttext 52,128,guiftimemsg6,220-15 - GUIOuttext 51,127,guiftimemsg6,220 - GUIOuttext 52,136,guiftimemsg7,220-15 - GUIOuttext 51,135,guiftimemsg7,220 - GUIOuttext 52,151,guiftimemsg8,220-15 - GUIOuttext 51,150,guiftimemsg8,220 - call vidpastecopyscr - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - call JoyRead - cmp byte[pressed+39h],0 - jne .pressedokay - jmp .again + GUIBox 43,75,213,163,160 + GUIBox 43,75,213,75,162 + GUIBox 43,75,43,163,161 + GUIBox 213,75,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 52,81,guiftimemsg1,220-15 + GUIOuttext 51,80,guiftimemsg1,220 + GUIOuttext 52,96,guiftimemsg2,220-15 + GUIOuttext 51,95,guiftimemsg2,220 + GUIOuttext 52,104,guiftimemsg3,220-15 + GUIOuttext 51,103,guiftimemsg3,220 + GUIOuttext 52,112,guiftimemsg4,220-15 + GUIOuttext 51,111,guiftimemsg4,220 + GUIOuttext 52,120,guiftimemsg5,220-15 + GUIOuttext 51,119,guiftimemsg5,220 + GUIOuttext 52,128,guiftimemsg6,220-15 + GUIOuttext 51,127,guiftimemsg6,220 + GUIOuttext 52,136,guiftimemsg7,220-15 + GUIOuttext 51,135,guiftimemsg7,220 + GUIOuttext 52,151,guiftimemsg8,220-15 + GUIOuttext 51,150,guiftimemsg8,220 + call vidpastecopyscr + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + call JoyRead + cmp byte[pressed+39h],0 + jne .pressedokay + jmp .again .pressedokay - ret + ret SECTION .data guiftimemsg1 db ' ONE-TIME USER REMINDER : ',0 @@ -1653,46 +1588,46 @@ guiftimemsg8 db 'PRESS SPACEBAR TO PROCEED.',0 SECTION .text horizonfixmsg: - xor ebx,ebx - mov ecx,256 + xor ebx,ebx + mov ecx,256 .a - mov byte[pressed+ebx],0 - inc ebx - dec ecx - jnz .a - mov byte[pressed+2Ch],0 + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + mov byte[pressed+2Ch],0 .again - GUIBox 43,75,213,163,160 - GUIBox 43,75,213,75,162 - GUIBox 43,75,43,163,161 - GUIBox 213,75,213,163,159 - GUIBox 43,163,213,163,158 - GUIOuttext 52,81,guimsgmsg,220-15 - GUIOuttext 51,80,guimsgmsg,220 - GUIOuttext 52,96,[guimsgptr],220-15 - GUIOuttext 51,95,[guimsgptr],220 - add dword[guimsgptr],32 - GUIOuttext 52,104,[guimsgptr],220-15 - GUIOuttext 51,103,[guimsgptr],220 - add dword[guimsgptr],32 - GUIOuttext 52,112,[guimsgptr],220-15 - GUIOuttext 51,111,[guimsgptr],220 - add dword[guimsgptr],32 - GUIOuttext 52,120,[guimsgptr],220-15 - GUIOuttext 51,119,[guimsgptr],220 - sub dword[guimsgptr],96 - GUIOuttext 52,151,guiftimemsg8,220-15 - GUIOuttext 51,150,guiftimemsg8,220 - call vidpastecopyscr - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - call JoyRead - cmp byte[pressed+39h],0 - jne .pressedokay - jmp .again + GUIBox 43,75,213,163,160 + GUIBox 43,75,213,75,162 + GUIBox 43,75,43,163,161 + GUIBox 213,75,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 52,81,guimsgmsg,220-15 + GUIOuttext 51,80,guimsgmsg,220 + GUIOuttext 52,96,[guimsgptr],220-15 + GUIOuttext 51,95,[guimsgptr],220 + add dword[guimsgptr],32 + GUIOuttext 52,104,[guimsgptr],220-15 + GUIOuttext 51,103,[guimsgptr],220 + add dword[guimsgptr],32 + GUIOuttext 52,112,[guimsgptr],220-15 + GUIOuttext 51,111,[guimsgptr],220 + add dword[guimsgptr],32 + GUIOuttext 52,120,[guimsgptr],220-15 + GUIOuttext 51,119,[guimsgptr],220 + sub dword[guimsgptr],96 + GUIOuttext 52,151,guiftimemsg8,220-15 + GUIOuttext 51,150,guiftimemsg8,220 + call vidpastecopyscr + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + call JoyRead + cmp byte[pressed+39h],0 + jne .pressedokay + jmp .again .pressedokay - ret + ret SECTION .data guimsgptr dd 0 @@ -1700,54 +1635,54 @@ guimsgmsg db ' WELCOME TO ZSNES',0 SECTION .text guimustrestartmsg: - xor ebx,ebx - mov ecx,256 + xor ebx,ebx + mov ecx,256 .a - cmp byte[pressed+ebx],1 - jne .npr1 - mov byte[pressed+ebx],2 + cmp byte[pressed+ebx],1 + jne .npr1 + mov byte[pressed+ebx],2 .npr1 - inc ebx - dec ecx - jnz .a - mov byte[pressed+2Ch],0 + inc ebx + dec ecx + jnz .a + mov byte[pressed+2Ch],0 .again - GUIBox 43,87,213,151,160 - GUIBox 43,87,213,87,162 - GUIBox 43,87,43,151,161 - GUIBox 213,87,213,151,159 - GUIBox 43,151,213,151,158 - GUIOuttext 56,92,guiqtimemsg1,220-15 - GUIOuttext 55,91,guiqtimemsg1,220 - GUIOuttext 56,100,guiqtimemsg2,220-15 - GUIOuttext 55,99,guiqtimemsg2,220 - GUIOuttext 56,108,guiqtimemsg3,220-15 - GUIOuttext 55,107,guiqtimemsg3,220 - GUIOuttext 56,116,guiqtimemsg4,220-15 - GUIOuttext 55,115,guiqtimemsg4,220 - GUIOuttext 56,139,guiqtimemsg8,220-15 - GUIOuttext 55,138,guiqtimemsg8,220 - call vidpastecopyscr - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - call JoyRead + GUIBox 43,87,213,151,160 + GUIBox 43,87,213,87,162 + GUIBox 43,87,43,151,161 + GUIBox 213,87,213,151,159 + GUIBox 43,151,213,151,158 + GUIOuttext 56,92,guiqtimemsg1,220-15 + GUIOuttext 55,91,guiqtimemsg1,220 + GUIOuttext 56,100,guiqtimemsg2,220-15 + GUIOuttext 55,99,guiqtimemsg2,220 + GUIOuttext 56,108,guiqtimemsg3,220-15 + GUIOuttext 55,107,guiqtimemsg3,220 + GUIOuttext 56,116,guiqtimemsg4,220-15 + GUIOuttext 55,115,guiqtimemsg4,220 + GUIOuttext 56,139,guiqtimemsg8,220-15 + GUIOuttext 55,138,guiqtimemsg8,220 + call vidpastecopyscr + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + call JoyRead - mov byte[pressed+2Ch],0 + mov byte[pressed+2Ch],0 - call JoyRead - xor ebx,ebx - mov ecx,256+128+64 + call JoyRead + xor ebx,ebx + mov ecx,256+128+64 .b - cmp byte[pressed+ebx],1 - je .pressedokay - inc ebx - dec ecx - jnz .b - jmp .again + cmp byte[pressed+ebx],1 + je .pressedokay + inc ebx + dec ecx + jnz .b + jmp .again .pressedokay - mov byte[GUIQuit],1 - ret + mov byte[GUIQuit],1 + ret SECTION .data guiqtimemsg1 db 'ZSNES MUST BE RESTARTED',0 @@ -1758,203 +1693,203 @@ guiqtimemsg8 db 'PRESS ANY KEY.',0 SECTION .text guiprevideo: - xor ebx,ebx - mov ecx,256 + xor ebx,ebx + mov ecx,256 .a - mov byte[pressed+ebx],0 - inc ebx - dec ecx - jnz .a - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - GUIBox 43,90,213,163,160 - GUIBox 43,90,213,90,162 - GUIBox 43,90,43,163,161 - GUIBox 213,90,213,163,159 - GUIBox 43,163,213,163,158 - GUIOuttext 56,96,guiprevidmsg1,220-15 - GUIOuttext 55,95,guiprevidmsg1,220 - GUIOuttext 56,104,guiprevidmsg2,220-15 - GUIOuttext 55,103,guiprevidmsg2,220 - GUIOuttext 56,112,guiprevidmsg3,220-15 - GUIOuttext 55,111,guiprevidmsg3,220 - GUIOuttext 56,120,guiprevidmsg4,220-15 - GUIOuttext 55,119,guiprevidmsg4,220 - GUIOuttext 56,128,guiprevidmsg5,220-15 - GUIOuttext 55,127,guiprevidmsg5,220 - GUIOuttext 56,136,guiprevidmsg6,220-15 - GUIOuttext 55,135,guiprevidmsg6,220 - GUIOuttext 56,151,guiprevidmsg7,220-15 - GUIOuttext 55,150,guiprevidmsg7,220 - call vidpastecopyscr - mov byte[pressed+2Ch],0 + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + GUIBox 43,90,213,163,160 + GUIBox 43,90,213,90,162 + GUIBox 43,90,43,163,161 + GUIBox 213,90,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 56,96,guiprevidmsg1,220-15 + GUIOuttext 55,95,guiprevidmsg1,220 + GUIOuttext 56,104,guiprevidmsg2,220-15 + GUIOuttext 55,103,guiprevidmsg2,220 + GUIOuttext 56,112,guiprevidmsg3,220-15 + GUIOuttext 55,111,guiprevidmsg3,220 + GUIOuttext 56,120,guiprevidmsg4,220-15 + GUIOuttext 55,119,guiprevidmsg4,220 + GUIOuttext 56,128,guiprevidmsg5,220-15 + GUIOuttext 55,127,guiprevidmsg5,220 + GUIOuttext 56,136,guiprevidmsg6,220-15 + GUIOuttext 55,135,guiprevidmsg6,220 + GUIOuttext 56,151,guiprevidmsg7,220-15 + GUIOuttext 55,150,guiprevidmsg7,220 + call vidpastecopyscr + mov byte[pressed+2Ch],0 .again - call JoyRead - xor ebx,ebx - mov ecx,256+128+64 + call JoyRead + xor ebx,ebx + mov ecx,256+128+64 .b - cmp byte[pressed+ebx],0 - jne .pressedokay - inc ebx - dec ecx - jnz .b - cmp byte[MouseDis],1 - je .mousedis - call Get_MouseData - test bx,01h - jnz .pressedokay + cmp byte[pressed+ebx],0 + jne .pressedokay + inc ebx + dec ecx + jnz .b + cmp byte[MouseDis],1 + je .mousedis + call Get_MouseData + test bx,01h + jnz .pressedokay .mousedis - jmp .again + jmp .again .pressedokay - ret + ret SECTION .data guiprevidmsg1 db 'ZSNES WILL NOW ATTEMPT',0 -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 +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 RESTORED.',0 +guiprevidmsg7 db ' PRESS ANY KEY.',0 SECTION .text guipostvideo: - mov ecx,255*144 - mov eax,[vidbufferofsb] + mov ecx,255*144 + mov eax,[vidbufferofsb] .loop - mov dword[eax],0FFFFFFFFh - add eax,4 - dec ecx - jnz .loop + mov dword[eax],0FFFFFFFFh + add eax,4 + dec ecx + jnz .loop - mov dword[GUIkeydelay],36*10 + mov dword[GUIkeydelay],36*10 .pressedfail - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - GUIBox 43,90,213,163,160 - GUIBox 43,90,213,90,162 - GUIBox 43,90,43,163,161 - GUIBox 213,90,213,163,159 - GUIBox 43,163,213,163,158 - GUIOuttext 56,96,guipostvidmsg1,220-15 - GUIOuttext 55,95,guipostvidmsg1,220 - GUIOuttext 56,151,guipostvidmsg2,220-15 - GUIOuttext 55,150,guipostvidmsg2,220 - call vidpastecopyscr - ; Wait for all mouse and input data to be 0 + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + GUIBox 43,90,213,163,160 + GUIBox 43,90,213,90,162 + GUIBox 43,90,43,163,161 + GUIBox 213,90,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 56,96,guipostvidmsg1,220-15 + GUIOuttext 55,95,guipostvidmsg1,220 + GUIOuttext 56,151,guipostvidmsg2,220-15 + GUIOuttext 55,150,guipostvidmsg2,220 + call vidpastecopyscr + ; Wait for all mouse and input data to be 0 - cmp dword[GUIkeydelay],0 - je .pressedokay + cmp dword[GUIkeydelay],0 + je .pressedokay - ;This is to make all ports not register space bar from being pressed earlier - mov byte[pressed+2Ch],0 + ;This is to make all ports not register space bar from being pressed earlier + mov byte[pressed+2Ch],0 - call JoyRead + call JoyRead - cmp byte[pressed+39h],0 - jne .pressedokay - jmp .pressedfail + cmp byte[pressed+39h],0 + jne .pressedokay + jmp .pressedfail .pressedokay - mov byte[GUIpclicked],1 - ret + mov byte[GUIpclicked],1 + ret SECTION .data guipostvidmsg1 db 'VIDEO MODE CHANGED.',0 -guipostvidmsg2 db 'PRESS SPACEBAR',0 +guipostvidmsg2 db ' PRESS SPACEBAR.',0 SECTION .text guipostvideofail: - mov dword[guipostvidptr],guipostvidmsg3b - mov byte[guipostvidmsg3b],0 - mov byte[guipostvidmsg4b],0 - mov byte[guipostvidmsg5b],0 - mov eax,[ErrorPointer] - mov ebx,eax + mov dword[guipostvidptr],guipostvidmsg3b + mov byte[guipostvidmsg3b],0 + mov byte[guipostvidmsg4b],0 + mov byte[guipostvidmsg5b],0 + mov eax,[ErrorPointer] + mov ebx,eax .loop - cmp byte[ebx],0 - je .found - cmp byte[ebx],'$' - je .found - inc ebx - jmp .loop + cmp byte[ebx],0 + je .found + cmp byte[ebx],'$' + je .found + inc ebx + jmp .loop .found - mov edx,ebx - sub edx,eax + mov edx,ebx + sub edx,eax .detnext - or edx,edx - jz .notext - cmp edx,25 - jbe .copytext + or edx,edx + jz .notext + cmp edx,25 + jbe .copytext .nospace - dec edx - cmp byte[eax+edx],32 - jne .nospace - jmp .detnext + dec edx + cmp byte[eax+edx],32 + jne .nospace + jmp .detnext .copytext - push ebx - mov ecx,[guipostvidptr] + push ebx + mov ecx,[guipostvidptr] .copytextloop - mov bl,[eax] - cmp bl,'$' - jne .notdol - mov bl,0 + mov bl,[eax] + cmp bl,'$' + jne .notdol + mov bl,0 .notdol - mov [ecx],bl - inc eax - inc ecx - dec edx - jnz .copytextloop - mov byte[ecx],0 - pop ebx - add dword[guipostvidptr],26 - cmp byte[eax],0 - je .notext - cmp byte[eax],'$' - je .notext - inc eax - jmp .found + mov [ecx],bl + inc eax + inc ecx + dec edx + jnz .copytextloop + mov byte[ecx],0 + pop ebx + add dword[guipostvidptr],26 + cmp byte[eax],0 + je .notext + cmp byte[eax],'$' + je .notext + inc eax + jmp .found .notext - xor ebx,ebx - mov ecx,256 + xor ebx,ebx + mov ecx,256 .a - mov byte[pressed+ebx],0 - inc ebx - dec ecx - jnz .a - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - GUIBox 43,90,213,163,160 - GUIBox 43,90,213,90,162 - GUIBox 43,90,43,163,161 - GUIBox 213,90,213,163,159 - GUIBox 43,163,213,163,158 - GUIOuttext 56,96,guipostvidmsg1b,220-15 - GUIOuttext 55,95,guipostvidmsg1b,220 - GUIOuttext 56,108,guipostvidmsg2b,220-15 - GUIOuttext 55,107,guipostvidmsg2b,220 - GUIOuttext 56,119,guipostvidmsg3b,220-15 - GUIOuttext 55,118,guipostvidmsg3b,220 - GUIOuttext 56,129,guipostvidmsg4b,220-15 - GUIOuttext 55,128,guipostvidmsg4b,220 - GUIOuttext 56,139,guipostvidmsg5b,220-15 - GUIOuttext 55,138,guipostvidmsg5b,220 - GUIOuttext 56,152,guipostvidmsg8b,220-15 - GUIOuttext 55,151,guipostvidmsg8b,220 - call vidpastecopyscr - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + GUIBox 43,90,213,163,160 + GUIBox 43,90,213,90,162 + GUIBox 43,90,43,163,161 + GUIBox 213,90,213,163,159 + GUIBox 43,163,213,163,158 + GUIOuttext 56,96,guipostvidmsg1b,220-15 + GUIOuttext 55,95,guipostvidmsg1b,220 + GUIOuttext 56,108,guipostvidmsg2b,220-15 + GUIOuttext 55,107,guipostvidmsg2b,220 + GUIOuttext 56,119,guipostvidmsg3b,220-15 + GUIOuttext 55,118,guipostvidmsg3b,220 + GUIOuttext 56,129,guipostvidmsg4b,220-15 + GUIOuttext 55,128,guipostvidmsg4b,220 + GUIOuttext 56,139,guipostvidmsg5b,220-15 + GUIOuttext 55,138,guipostvidmsg5b,220 + GUIOuttext 56,152,guipostvidmsg8b,220-15 + GUIOuttext 55,151,guipostvidmsg8b,220 + call vidpastecopyscr + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu %ifndef __UNIXSDL__ - mov dword[GUIkeydelay],0FFFFFFFFh + mov dword[GUIkeydelay],0FFFFFFFFh %else - mov dword[GUIkeydelay],0x0 + mov dword[GUIkeydelay],0x0 %endif - jmp guipostvideo.pressedfail + jmp guipostvideo.pressedfail SECTION .data guipostvidmsg1b db 'VIDEO MODE CHANGE FAILED.',0 @@ -1968,95 +1903,95 @@ guipostvidptr resd 1 SECTION .text GUILoadManualDir - mov ebx,GUILoadTextA - mov [ManualCPtr],ebx - cmp byte[ebx],0 - je near .nofindfile - xor eax,eax + mov ebx,GUILoadTextA + mov [ManualCPtr],ebx + cmp byte[ebx],0 + je near .nofindfile + xor eax,eax .next - cmp byte[ebx],':' - jne .nocolon - mov eax,ebx + cmp byte[ebx],':' + jne .nocolon + mov eax,ebx .nocolon - inc ebx - cmp byte[ebx],0 - jne .next - or eax,eax - jz .nomorecolon - cmp eax,GUILoadTextA - je .invalidcolon - mov bl,[eax-1] - cmp bl,'a' - jb .nolower - cmp bl,'z' - ja .nolower - sub bl,'a'-'A' + inc ebx + cmp byte[ebx],0 + jne .next + or eax,eax + jz .nomorecolon + cmp eax,GUILoadTextA + je .invalidcolon + mov bl,[eax-1] + cmp bl,'a' + jb .nolower + cmp bl,'z' + ja .nolower + sub bl,'a'-'A' .nolower - cmp bl,'A' - jb .invalidcolon - cmp bl,'Z' - ja .invalidcolon - sub bl,'A' - mov dl,bl - push eax - call Change_Drive - pop eax - mov byte[ManualStatus],1 + cmp bl,'A' + jb .invalidcolon + cmp bl,'Z' + ja .invalidcolon + sub bl,'A' + mov dl,bl + push eax + call Change_Drive + pop eax + mov byte[ManualStatus],1 .invalidcolon - inc eax - mov [ManualCPtr],eax + inc eax + mov [ManualCPtr],eax .nomorecolon - mov ebx,[ManualCPtr] - cmp byte[ebx],0 - je near .finish - xor eax,eax + mov ebx,[ManualCPtr] + cmp byte[ebx],0 + je near .finish + xor eax,eax .next2 - cmp byte[ebx],'\' - jne .nobackslash - mov eax,ebx + cmp byte[ebx],'\' + jne .nobackslash + mov eax,ebx .nobackslash - inc ebx - cmp byte[ebx],0 - jne .next2 - or eax,eax - jz .finish - inc eax - mov cl,[eax] - mov byte[eax],0 - push ecx - push eax - mov edx,[ManualCPtr] - call Change_Single_Dir - jc .nosuchdir - mov byte[ManualStatus],1 + inc ebx + cmp byte[ebx],0 + jne .next2 + or eax,eax + jz .finish + inc eax + mov cl,[eax] + mov byte[eax],0 + push ecx + push eax + mov edx,[ManualCPtr] + call Change_Single_Dir + jc .nosuchdir + mov byte[ManualStatus],1 .nosuchdir - pop eax - pop ecx - mov [eax],cl - mov [ManualCPtr],eax + pop eax + pop ecx + mov [eax],cl + mov [ManualCPtr],eax .finish - mov edx,[ManualCPtr] - call Change_Single_Dir - jc .notdir - mov byte[ManualStatus],1 - jmp .nomoredir + mov edx,[ManualCPtr] + call Change_Single_Dir + jc .notdir + mov byte[ManualStatus],1 + jmp .nomoredir .notdir - call .nomoredir - mov edx,[ManualCPtr] - cmp byte[edx],0 - je .nofindfile - ; otherwise set ManualStatus to 2 - mov byte[ManualStatus],2 - mov dword[GUIcurrentfilewin],0 + call .nomoredir + mov edx,[ManualCPtr] + cmp byte[edx],0 + je .nofindfile + ; otherwise set ManualStatus to 2 + mov byte[ManualStatus],2 + mov dword[GUIcurrentfilewin],0 .nofindfile - ret + ret .nomoredir - ; refresh dir if necessary - cmp byte[ManualStatus],1 - jne .norefresh - call GetLoadData.a + ; refresh dir if necessary + cmp byte[ManualStatus],1 + jne .norefresh + call GetLoadData.a .norefresh - ret + ret SECTION .bss ManualCPtr resd 1 @@ -2070,273 +2005,244 @@ DevicePtr dd pl1selk,pl2selk,pl3selk,pl4selk,pl5selk SECTION .text CheckMenuItemHelp: - mov al,[GUIcmenupos] - mov [GUIpmenupos],al - mov byte[GUIcmenupos],0 - cmp byte[GUIwinactiv+edx],1 - je .menuontop - xor eax,eax - mov al,[GUIwinptr] - inc byte[GUIwinptr] - mov [GUIwinorder+eax],dl - mov byte[GUIwinactiv+edx],1 - cmp byte[resetposn],1 - jne .nomenuitem - mov eax,[GUIwinposxo+edx*4] - mov [GUIwinposx+edx*4],eax - mov eax,[GUIwinposyo+edx*4] - mov [GUIwinposy+edx*4],eax - jmp .nomenuitem + mov al,[GUIcmenupos] + mov [GUIpmenupos],al + mov byte[GUIcmenupos],0 + cmp byte[GUIwinactiv+edx],1 + je .menuontop + xor eax,eax + mov al,[GUIwinptr] + inc byte[GUIwinptr] + mov [GUIwinorder+eax],dl + mov byte[GUIwinactiv+edx],1 + cmp byte[resetposn],1 + jne .nomenuitem + mov eax,[GUIwinposxo+edx*4] + mov [GUIwinposx+edx*4],eax + mov eax,[GUIwinposyo+edx*4] + mov [GUIwinposy+edx*4],eax + jmp .nomenuitem .menuontop - xor eax,eax - ; look for match + xor eax,eax + ; look for match .notfoundyet - mov bl,[GUIwinorder+eax] - cmp bl,dl - je .nextfind - inc eax - jmp .notfoundyet + mov bl,[GUIwinorder+eax] + cmp bl,dl + je .nextfind + inc eax + jmp .notfoundyet .nextfind - inc eax - cmp al,[GUIwinptr] - je .foundend - mov cl,[GUIwinorder+eax] - mov [GUIwinorder+eax-1],cl - jmp .nextfind + inc eax + cmp al,[GUIwinptr] + je .foundend + mov cl,[GUIwinorder+eax] + mov [GUIwinorder+eax-1],cl + jmp .nextfind .foundend - mov byte[GUIpclicked],0 - mov [GUIwinorder+eax-1],bl + mov byte[GUIpclicked],0 + mov [GUIwinorder+eax-1],bl .nomenuitem - ret + ret %macro GUICheckMenuItem 2 - mov edx,%1 - cmp byte[GUIcrowpos],%2 - jne near %%nomenuitem - call CheckMenuItemHelp + mov edx,%1 + cmp byte[GUIcrowpos],%2 + jne near %%nomenuitem + call CheckMenuItemHelp %%nomenuitem %endmacro %macro checkqloadvalue 1 - cmp byte[GUIcrowpos],%1 - jne %%skip - mov esi,prevloaddnamel+%1*512 - cmp byte[esi+1],0 - je %%notvalid - mov edi,prevloadfnamel+%1*512 - mov ebx,prevloadnames+%1*16 - mov ecx,%1 - call loadquickfname + cmp byte[GUIcrowpos],%1 + jne %%skip + mov esi,prevloaddnamel+%1*512 + cmp byte[esi+1],0 + je %%notvalid + mov edi,prevloadfnamel+%1*512 + mov ebx,prevloadnames+%1*16 + mov ecx,%1 + call loadquickfname %%notvalid - ret + ret %%skip %endmacro GUITryMenuItem: ; Defines which menu item calls what window number - cmp byte[GUIcmenupos],1 - jne near .noquickload - checkqloadvalue 0 - checkqloadvalue 1 - checkqloadvalue 2 - checkqloadvalue 3 - checkqloadvalue 4 - checkqloadvalue 5 - checkqloadvalue 6 - checkqloadvalue 7 - checkqloadvalue 8 - checkqloadvalue 9 - cmp byte[GUIcrowpos],11 - jne .skipswitch - 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],' ' - jmp .on + cmp byte[GUIcmenupos],1 + jne near .noquickload + checkqloadvalue 0 + checkqloadvalue 1 + checkqloadvalue 2 + checkqloadvalue 3 + checkqloadvalue 4 + checkqloadvalue 5 + checkqloadvalue 6 + checkqloadvalue 7 + checkqloadvalue 8 + checkqloadvalue 9 + cmp byte[GUIcrowpos],11 + jne .skipswitch + xor byte[prevlfreeze],1 + cmp byte[prevlfreeze],0 + je .off + 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 - jne .skipclear - cmp byte[prevlfreeze],0 - jne .skipclear - mov edi,prevloadnames - mov eax,20202020h - mov ecx,4*10 - rep stosd - mov edi,prevloaddnamel - xor eax,eax - mov ecx,128*10 - rep stosd - mov edi,prevloadfnamel - mov eax,0 ;20202020h - mov ecx,128*10 - rep stosd - call GUIQuickLoadUpdate - ret + cmp byte[GUIcrowpos],12 + jne .skipclear + cmp byte[prevlfreeze],0 + jne .skipclear + mov edi,prevloadnames + mov eax,20202020h + mov ecx,4*10 + rep stosd + mov edi,prevloaddnamel + xor eax,eax + mov ecx,128*10 + rep stosd + mov edi,prevloadfnamel + mov eax,0 ;20202020h + mov ecx,128*10 + rep stosd + call GUIQuickLoadUpdate + ret .skipclear .noquickload - cmp byte[GUIcmenupos],2 - jne near .nomain - GUICheckMenuItem 1, 0 ; Load - cmp byte[GUIcrowpos],0 - jne .noloadrefresh - jmp GetLoadData + cmp byte[GUIcmenupos],2 + jne near .nomain + GUICheckMenuItem 1, 0 ; Load + cmp byte[GUIcrowpos],0 + jne .noloadrefresh + jmp GetLoadData .noloadrefresh - cmp byte[romloadskip],0 - jne near .noromloaded - cmp byte[GUIcrowpos],1 ; Run - jne .norun - cmp byte[romloadskip],0 - jne .dontquit - mov byte[GUIQuit],2 + cmp byte[romloadskip],0 + jne near .noromloaded + cmp byte[GUIcrowpos],1 ; Run + jne .norun + cmp byte[romloadskip],0 + jne .dontquit + mov byte[GUIQuit],2 .dontquit - ret + ret .norun - GUICheckMenuItem 12, 2 ; Reset - cmp byte[GUIcrowpos],2 - jne .noreset - mov byte[GUICResetPos],1 + GUICheckMenuItem 12, 2 ; Reset + cmp byte[GUIcrowpos],2 + jne .noreset + mov byte[GUICResetPos],1 .noreset - cmp byte[GUIcrowpos],4 - jne .nosavestate - mov byte[GUIStatesText5],0 - mov byte[GUICStatePos],1 + cmp byte[GUIcrowpos],4 + jne .nosavestate + mov byte[GUIStatesText5],0 + mov byte[GUICStatePos],1 .nosavestate - cmp byte[GUIcrowpos],5 - jne .noloadstate - mov byte[GUIStatesText5],1 - mov byte[GUICStatePos],1 + cmp byte[GUIcrowpos],5 + jne .noloadstate + mov byte[GUIStatesText5],1 + mov byte[GUICStatePos],1 .noloadstate - GUICheckMenuItem 14, 4 ; Save State - GUICheckMenuItem 14, 5 ; Load State - GUICheckMenuItem 2, 6 ; Select State + GUICheckMenuItem 14, 4 ; Save State + GUICheckMenuItem 14, 5 ; Load State + GUICheckMenuItem 2, 6 ; Select State .noromloaded - cmp byte[GUIcrowpos],8 - jne .noquit - mov byte[GUIQuit],1 + cmp byte[GUIcrowpos],8 + jne .noquit + mov byte[GUIQuit],1 .noquit .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 - jne near .novideo - ; set Video cursor location - xor eax,eax - mov al,[cvidmode] - mov [GUIcurrentvideocursloc],eax - mov edx,[NumVideoModes] - sub edx,5 - cmp eax,edx - jbe .noof - mov eax,edx + cmp byte[GUIcmenupos],3 + jne near .noconfig + ;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 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 + mov al,[cvidmode] + mov [GUIcurrentvideocursloc],eax + mov edx,[NumVideoModes] + sub edx,5 + cmp eax,edx + jbe .noof + mov eax,edx .noof - mov [GUIcurrentvideoviewloc],eax - mov edx,5 - call CheckMenuItemHelp + mov [GUIcurrentvideoviewloc],eax + 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 - cmp byte[GUIcmenupos],4 - jne near .nocheat - GUICheckMenuItem 7, 0 - GUICheckMenuItem 7, 1 - GUICheckMenuItem 13, 2 - cmp byte[GUIcrowpos],0 - jne .noaddc - mov dword[GUIcurrentcheatwin],1 + cmp byte[romloadskip],0 + jne near .nocheat + cmp byte[GUIcmenupos],4 + jne near .nocheat + GUICheckMenuItem 7, 0 + GUICheckMenuItem 7, 1 + GUICheckMenuItem 13, 2 + cmp byte[GUIcrowpos],0 + jne .noaddc + mov dword[GUIcurrentcheatwin],1 .noaddc - cmp byte[GUIcrowpos],1 - jne .nobrowsec - mov dword[GUIcurrentcheatwin],0 + cmp byte[GUIcrowpos],1 + jne .nobrowsec + mov dword[GUIcurrentcheatwin],0 .nobrowsec .nocheat - cmp byte[GUIcmenupos],5 - jne near .nonet + cmp byte[GUIcmenupos],5 + jne near .nonet %ifdef __MSDOS__ ; 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 + cmp byte[GUIcrowpos],0 + jne near .nonet .nonet - cmp byte[GUIcmenupos],6 - jne near .nomisc - GUICheckMenuItem 9, 0 - GUICheckMenuItem 10, 1 - cmp byte[romloadskip],0 - jne near .nomovie - GUICheckMenuItem 15, 2 - cmp byte[GUIcrowpos],2 - jne .nomovie - mov byte[MovieRecordWinVal],0 + cmp byte[GUIcmenupos],6 + jne near .nomisc + GUICheckMenuItem 9, 0 + GUICheckMenuItem 10, 1 + cmp byte[romloadskip],0 + jne near .nomovie + GUICheckMenuItem 15, 2 + cmp byte[GUIcrowpos],2 + jne .nomovie + mov byte[MovieRecordWinVal],0 .nomovie - GUICheckMenuItem 16, 3 ; Save Config - cmp byte[GUIcrowpos],4 - jne .nosavestuff + GUICheckMenuItem 16, 3 ; Save Config + cmp byte[GUIcrowpos],4 + jne .nosavestuff - ; change dir to InitDrive/InitDir - mov dl,[InitDrive] - mov ebx,InitDir - call Change_Dir + ; change dir to InitDrive/InitDir + mov dl,[InitDrive] + mov ebx,InitDir + call Change_Dir - mov byte[savecfgforce],1 - call createnewcfg - call GUISaveVars - mov byte[savecfgforce],0 + mov byte[savecfgforce],1 + call createnewcfg + call GUISaveVars + mov byte[savecfgforce],0 - call Makemode7Table - mov dword[GUICMessage],.message1 - mov dword[GUICTimer],50 - ; change dir to LoadDrive/LoadDir - mov dl,[LoadDrive] - mov ebx,LoadDir - call Change_Dir + call Makemode7Table + mov dword[GUICMessage],.message1 + mov dword[GUICTimer],50 + ; change dir to LoadDrive/LoadDir + mov dl,[LoadDrive] + mov ebx,LoadDir + call Change_Dir .nosavestuff - GUICheckMenuItem 11, 6 + GUICheckMenuItem 11, 6 .nomisc - ret + ret SECTION .data .message1 db 'CONFIGURATION FILES SAVED.',0 @@ -2344,2368 +2250,2363 @@ NEWSYM savecfgforce, db 0 SECTION .text DisplayBoxes: ; Displays window when item is clicked - xor esi,esi - mov byte[cwindrawn],0 + xor esi,esi + mov byte[cwindrawn],0 .next2 - mov al,[GUIwinorder+esi] - cmp al,0 - je .done - inc byte[cwindrawn] - inc esi - jmp .next2 + mov al,[GUIwinorder+esi] + cmp al,0 + je .done + inc byte[cwindrawn] + inc esi + jmp .next2 .done - dec byte[cwindrawn] - xor eax,eax - xor esi,esi + dec byte[cwindrawn] + xor eax,eax + xor esi,esi .next - mov al,[GUIwinorder+esi] - cmp al,0 - je near .nomore - push esi - cmp al,1 - jne .noguiconfirm - cmp byte[GUIReset],1 - je near .finstuff - call DisplayGUILoad - jmp .finstuff + mov al,[GUIwinorder+esi] + cmp al,0 + je near .nomore + push esi + cmp al,1 + jne .noguiconfirm + cmp byte[GUIReset],1 + je near .finstuff + call DisplayGUILoad + jmp .finstuff .noguiconfirm - cmp al,2 - jne .noguichosesave - call DisplayGUIChoseSave - jmp .finstuff + cmp al,2 + jne .noguichosesave + call DisplayGUIChoseSave + jmp .finstuff .noguichosesave - cmp al,3 - jne .noguiinput - call DisplayGUIInput - jmp .finstuff + cmp al,3 + jne .noguiinput + call DisplayGUIInput + jmp .finstuff .noguiinput - cmp al,4 - jne .noguioption - call DisplayGUIOption - jmp .finstuff + cmp al,4 + jne .noguioption + call DisplayGUIOption + jmp .finstuff .noguioption - cmp al,5 - jne .noguivideo - call DisplayGUIVideo - jmp .finstuff + cmp al,5 + jne .noguivideo + call DisplayGUIVideo + jmp .finstuff .noguivideo - cmp al,6 - jne .noguisound - call DisplayGUISound - jmp .finstuff + cmp al,6 + jne .noguisound + call DisplayGUISound + jmp .finstuff .noguisound - cmp al,7 - jne .noguicheat - call DisplayGUICheat - jmp .finstuff + cmp al,7 + jne .noguicheat + call DisplayGUICheat + jmp .finstuff .noguicheat - cmp al,8 - jne .noguinet - call DisplayNetOptns - jmp .finstuff + cmp al,8 + jne .noguinet + call DisplayNetOptns + jmp .finstuff .noguinet - cmp al,9 - jne .noguigameop - call DisplayGameOptns - jmp .finstuff + cmp al,9 + jne .noguigameop + call DisplayGameOptns + jmp .finstuff .noguigameop - cmp al,10 - jne .noguiconf - call DisplayGUIOptns + cmp al,10 + jne .noguiconf + call DisplayGUIOptns %ifdef __WIN32__ - pushad - call CheckAlwaysOnTop - popad + pushad + call CheckAlwaysOnTop + popad %endif - jmp .finstuff + jmp .finstuff .noguiconf - cmp al,11 - jne .noguiconf2 - call DisplayGUIAbout - jmp .finstuff + cmp al,11 + jne .noguiconf2 + call DisplayGUIAbout + jmp .finstuff .noguiconf2 - cmp al,12 - jne .noguireset - call DisplayGUIReset - jmp .finstuff + cmp al,12 + jne .noguireset + call DisplayGUIReset + jmp .finstuff .noguireset - cmp al,13 - jne .noguisearch - call DisplayGUISearch - jmp .finstuff + cmp al,13 + jne .noguisearch + call DisplayGUISearch + jmp .finstuff .noguisearch - cmp al,14 - jne .noguistates - call DisplayGUIStates - jmp .finstuff + cmp al,14 + jne .noguistates + call DisplayGUIStates + jmp .finstuff .noguistates - cmp al,15 - jne .noguimovies - call DisplayGUIMovies - jmp .finstuff + cmp al,15 + jne .noguimovies + call DisplayGUIMovies + jmp .finstuff .noguimovies - cmp al,16 - jne .noguicombo - call DisplayGUICombo - jmp .finstuff + cmp al,16 + jne .noguicombo + call DisplayGUICombo + jmp .finstuff .noguicombo - cmp al,17 - jne .noaddon - call DisplayGUIAddOns - jmp .finstuff + cmp al,17 + jne .noaddon + call DisplayGUIAddOns + jmp .finstuff .noaddon - cmp al,18 - jne .nochipconfig - call DisplayGUIChipConfig - jmp .finstuff + cmp al,18 + jne .nochipconfig + call DisplayGUIChipConfig + jmp .finstuff .nochipconfig - cmp al,19 - jne .nopaths - call DisplayGUIPaths - jmp .finstuff + cmp al,19 + jne .nopaths + call DisplayGUIPaths + jmp .finstuff .nopaths - cmp al,20 - jne .nosave - call DisplayGUISave - jmp .finstuff + cmp al,20 + jne .nosave + call DisplayGUISave + jmp .finstuff .nosave - cmp al,21 - jne .nospeed - call DisplayGUISpeed - jmp .finstuff + cmp al,21 + jne .nospeed + call DisplayGUISpeed + jmp .finstuff .nospeed .finstuff - pop esi - inc esi - dec byte[cwindrawn] - jmp .next + pop esi + inc esi + dec byte[cwindrawn] + jmp .next .nomore - ret + ret NEWSYM ChangetoLOADdir - mov dl,[LoadDrive] - mov ebx,LoadDir - call Change_Dir - ret + mov dl,[LoadDrive] + mov ebx,LoadDir + call Change_Dir + ret GUIProcStates: - xor eax,eax - mov al,[GUIwinptr] - dec eax - mov byte[GUIwinactiv+14],0 - mov byte[GUIwinorder+eax],0 - dec byte[GUIwinptr] - cmp byte[GUICBHold],10 - je .yesstate - mov byte[GUICBHold],0 - ret + xor eax,eax + mov al,[GUIwinptr] + dec eax + mov byte[GUIwinactiv+14],0 + mov byte[GUIwinorder+eax],0 + dec byte[GUIwinptr] + cmp byte[GUICBHold],10 + je .yesstate + mov byte[GUICBHold],0 + ret .yesstate - mov byte[GUICBHold],0 - pushad - call SRAMChdir - popad - cmp byte[GUIStatesText5],1 - je .loadstate - pushad - call statesaver - popad - jmp .changedir + mov byte[GUICBHold],0 + pushad + call SRAMChdir + popad + cmp byte[GUIStatesText5],1 + je .loadstate + pushad + call statesaver + popad + jmp .changedir .loadstate - pushad - call loadstate2 - popad + pushad + call loadstate2 + popad .changedir - ; change dir to LoadDrive/LoadDir - call ChangetoLOADdir - ret + ; change dir to LoadDrive/LoadDir + call ChangetoLOADdir + ret SaveSecondState: - pushad - call SRAMChdir - popad - mov ebx,[statefileloc] - mov al,[fnamest+ebx] - mov byte[fnamest+ebx],'s' - pushad - call statesaver - popad - mov ebx,[statefileloc] - mov [fnamest+ebx],al - call ChangetoLOADdir - ret + pushad + call SRAMChdir + popad + mov ebx,[statefileloc] + mov al,[fnamest+ebx] + mov byte[fnamest+ebx],'s' + pushad + call statesaver + popad + mov ebx,[statefileloc] + mov [fnamest+ebx],al + call ChangetoLOADdir + ret LoadSecondState: - pushad - call SRAMChdir - popad - mov ebx,[statefileloc] - mov al,[fnamest+ebx] - mov byte[fnamest+ebx],'s' - pushad - call loadstate2 - popad - mov ebx,[statefileloc] - mov [fnamest+ebx],al - call ChangetoLOADdir - ret + pushad + call SRAMChdir + popad + mov ebx,[statefileloc] + mov al,[fnamest+ebx] + mov byte[fnamest+ebx],'s' + pushad + call loadstate2 + popad + mov ebx,[statefileloc] + mov [fnamest+ebx],al + call ChangetoLOADdir + ret GUIProcReset: - cmp byte[GUICBHold],2 - jne .noreset - pushad - mov byte[GUIReset],1 - cmp byte[MovieProcessing],2 ;Recording - jne .nomovierecording - call ResetDuringMovie - jmp .movieendif + cmp byte[GUICBHold],2 + jne .noreset + pushad + mov byte[GUIReset],1 + cmp byte[MovieProcessing],2 ;Recording + jne .nomovierecording + call ResetDuringMovie + jmp .movieendif .nomovierecording - call GUIDoReset + call GUIDoReset .movieendif - popad + popad .noreset - mov byte[GUICBHold],0 - xor eax,eax - mov al,[GUIwinptr] - dec eax - mov byte[GUIwinactiv+12],0 - mov byte[GUIwinorder+eax],0 - dec byte[GUIwinptr] - ret + mov byte[GUICBHold],0 + xor eax,eax + mov al,[GUIwinptr] + dec eax + mov byte[GUIwinactiv+12],0 + mov byte[GUIwinorder+eax],0 + dec byte[GUIwinptr] + ret SECTION .bss LoadDuplicFound resb 1 SECTION .text %macro GUIDMHelp 4 - mov byte[GUItextcolor],46 - mov byte[GUItextcolor+1],42 - mov byte[GUItextcolor+2],38 - mov byte[GUItextcolor+3],44 - mov byte[GUItextcolor+4],40 - cmp byte[GUIcmenupos],%4 - jne %%nohighlight - mov byte[GUItextcolor],38 - mov byte[GUItextcolor+1],40 - mov byte[GUItextcolor+2],46 - mov byte[GUItextcolor+3],40 - mov byte[GUItextcolor+4],44 + mov byte[GUItextcolor],46 + mov byte[GUItextcolor+1],42 + mov byte[GUItextcolor+2],38 + mov byte[GUItextcolor+3],44 + mov byte[GUItextcolor+4],40 + cmp byte[GUIcmenupos],%4 + jne %%nohighlight + mov byte[GUItextcolor],38 + mov byte[GUItextcolor+1],40 + mov byte[GUItextcolor+2],46 + mov byte[GUItextcolor+3],40 + mov byte[GUItextcolor+4],44 %%nohighlight - GUIBox %1,3,%2,3,[GUItextcolor] - GUIBox %1,4,%2,12,[GUItextcolor+1] - GUIBox %1,13,%2,13,[GUItextcolor+2] - GUIBox %1,3,%1,12,[GUItextcolor+3] - GUIBox %2,4,%2,13,[GUItextcolor+4] - GUIOuttext %1+5,7,%3,44 - GUIOuttext %1+4,6,%3,62 + GUIBox %1,3,%2,3,[GUItextcolor] + GUIBox %1,4,%2,12,[GUItextcolor+1] + GUIBox %1,13,%2,13,[GUItextcolor+2] + GUIBox %1,3,%1,12,[GUItextcolor+3] + GUIBox %2,4,%2,13,[GUItextcolor+4] + GUIOuttext %1+5,7,%3,44 + GUIOuttext %1+4,6,%3,62 %endmacro %macro GUIDMHelpB 4 - mov byte[GUItextcolor],46 - mov byte[GUItextcolor+1],42 - mov byte[GUItextcolor+2],38 - mov byte[GUItextcolor+3],44 - mov byte[GUItextcolor+4],40 - cmp byte[GUIcwinpress],%4 - jne %%nohighlight - mov byte[GUItextcolor],38 - mov byte[GUItextcolor+1],40 - mov byte[GUItextcolor+2],46 - mov byte[GUItextcolor+3],40 - mov byte[GUItextcolor+4],44 + mov byte[GUItextcolor],46 + mov byte[GUItextcolor+1],42 + mov byte[GUItextcolor+2],38 + mov byte[GUItextcolor+3],44 + mov byte[GUItextcolor+4],40 + cmp byte[GUIcwinpress],%4 + jne %%nohighlight + mov byte[GUItextcolor],38 + mov byte[GUItextcolor+1],40 + mov byte[GUItextcolor+2],46 + mov byte[GUItextcolor+3],40 + mov byte[GUItextcolor+4],44 %%nohighlight - GUIBox %1,3,%2,3,[GUItextcolor] - GUIBox %1,4,%2,13,[GUItextcolor+1] - GUIBox %1,14,%2,14,[GUItextcolor+2] - GUIBox %1,3,%1,13,[GUItextcolor+3] - GUIBox %2,4,%2,14,[GUItextcolor+4] - GUIOuttext %1+3,7,%3,44 - GUIOuttext %1+2,6,%3,62 + GUIBox %1,3,%2,3,[GUItextcolor] + GUIBox %1,4,%2,13,[GUItextcolor+1] + GUIBox %1,14,%2,14,[GUItextcolor+2] + GUIBox %1,3,%1,13,[GUItextcolor+3] + GUIBox %2,4,%2,14,[GUItextcolor+4] + GUIOuttext %1+3,7,%3,44 + GUIOuttext %1+2,6,%3,62 %endmacro %macro GUIDMHelpB2 4 - mov byte[GUItextcolor],46 - mov byte[GUItextcolor+1],42 - mov byte[GUItextcolor+2],38 - mov byte[GUItextcolor+3],44 - mov byte[GUItextcolor+4],40 - cmp byte[GUIcwinpress],%4 - jne %%nohighlight - mov byte[GUItextcolor],38 - mov byte[GUItextcolor+1],40 - mov byte[GUItextcolor+2],46 - mov byte[GUItextcolor+3],40 - mov byte[GUItextcolor+4],44 + mov byte[GUItextcolor],46 + mov byte[GUItextcolor+1],42 + mov byte[GUItextcolor+2],38 + mov byte[GUItextcolor+3],44 + mov byte[GUItextcolor+4],40 + cmp byte[GUIcwinpress],%4 + jne %%nohighlight + mov byte[GUItextcolor],38 + mov byte[GUItextcolor+1],40 + mov byte[GUItextcolor+2],46 + mov byte[GUItextcolor+3],40 + mov byte[GUItextcolor+4],44 %%nohighlight - GUIBox %1,3,%2,3,[GUItextcolor] - GUIBox %1,4,%2,6,[GUItextcolor+1] - GUIBox %1,7,%2,7,[GUItextcolor+2] - GUIBox %1,3,%1,6,[GUItextcolor+3] - GUIBox %2,4,%2,7,[GUItextcolor+4] - GUIOuttext %1+3,5,%3,44 - GUIOuttext %1+2,4,%3,62 + GUIBox %1,3,%2,3,[GUItextcolor] + GUIBox %1,4,%2,6,[GUItextcolor+1] + GUIBox %1,7,%2,7,[GUItextcolor+2] + GUIBox %1,3,%1,6,[GUItextcolor+3] + GUIBox %2,4,%2,7,[GUItextcolor+4] + GUIOuttext %1+3,5,%3,44 + GUIOuttext %1+2,4,%3,62 %endmacro %macro GUIDMHelpB3 4 - mov byte[GUItextcolor],46 - mov byte[GUItextcolor+1],42 - mov byte[GUItextcolor+2],38 - mov byte[GUItextcolor+3],44 - mov byte[GUItextcolor+4],40 - cmp byte[GUIcwinpress],%4 - jne %%nohighlight - mov byte[GUItextcolor],38 - mov byte[GUItextcolor+1],40 - mov byte[GUItextcolor+2],46 - mov byte[GUItextcolor+3],40 - mov byte[GUItextcolor+4],44 + mov byte[GUItextcolor],46 + mov byte[GUItextcolor+1],42 + mov byte[GUItextcolor+2],38 + mov byte[GUItextcolor+3],44 + mov byte[GUItextcolor+4],40 + cmp byte[GUIcwinpress],%4 + jne %%nohighlight + mov byte[GUItextcolor],38 + mov byte[GUItextcolor+1],40 + mov byte[GUItextcolor+2],46 + mov byte[GUItextcolor+3],40 + mov byte[GUItextcolor+4],44 %%nohighlight - GUIBox %1,9,%2,9,[GUItextcolor] - GUIBox %1,10,%2,12,[GUItextcolor+1] - GUIBox %1,13,%2,13,[GUItextcolor+2] - GUIBox %1,9,%1,12,[GUItextcolor+3] - GUIBox %2,10,%2,13,[GUItextcolor+4] - GUIOuttext %1+3,11,%3,44 - GUIOuttext %1+2,10,%3,62 + GUIBox %1,9,%2,9,[GUItextcolor] + GUIBox %1,10,%2,12,[GUItextcolor+1] + GUIBox %1,13,%2,13,[GUItextcolor+2] + GUIBox %1,9,%1,12,[GUItextcolor+3] + GUIBox %2,10,%2,13,[GUItextcolor+4] + GUIOuttext %1+3,11,%3,44 + GUIOuttext %1+2,10,%3,62 %endmacro %macro GUIDrawMenuM 10 - GUIShadow %7,%8,%7+4+%3*6,%8+3+%4*10 - GUIBox %1,%2,%1+4+%3*6,%2+3+%4*10,43 + GUIShadow %7,%8,%7+4+%3*6,%8+3+%4*10 + GUIBox %1,%2,%1+4+%3*6,%2+3+%4*10,43 - mov edi,[GUIcrowpos] - mov ecx,edi - shl edi,8 - shl ecx,5 - add edi,ecx - lea edi,[edi*5] - shl edi,1 - add edi,[vidbuffer] - add edi,%1+17+18*288 - mov ecx,6*%3+3 - mov edx,1 - mov al,73 - push edi - call GUIDrawBox - pop edi - add edi,288 - mov ecx,6*%3+3 - mov edx,7 - mov al,72 - push edi - call GUIDrawBox - pop edi - add edi,288*7 - mov ecx,6*%3+3 - mov edx,1 - mov al,73 - call GUIDrawBox + mov edi,[GUIcrowpos] + mov ecx,edi + shl edi,8 + shl ecx,5 + add edi,ecx + lea edi,[edi*5] + shl edi,1 + add edi,[vidbuffer] + add edi,%1+17+18*288 + mov ecx,6*%3+3 + mov edx,1 + mov al,73 + push edi + call GUIDrawBox + pop edi + add edi,288 + mov ecx,6*%3+3 + mov edx,7 + mov al,72 + push edi + call GUIDrawBox + pop edi + add edi,288*7 + mov ecx,6*%3+3 + mov edx,1 + mov al,73 + call GUIDrawBox - GUIBox %1+%10,%2,%1+4+%3*6,%2,47 - GUIBox %1,%2,%1,%9,45 - GUIBox %1,%9,%1+4+%3*6,%9,39 - GUIBox %1+4+%3*6,1+%2,%1+4+%3*6,%9,41 - mov edi,%5 - mov esi,[vidbuffer] - add esi,16+%6+20*288 - mov ecx,%4 - mov edx,6*%3 - call GUIMenuDisplay + GUIBox %1+%10,%2,%1+4+%3*6,%2,47 + GUIBox %1,%2,%1,%9,45 + GUIBox %1,%9,%1+4+%3*6,%9,39 + GUIBox %1+4+%3*6,1+%2,%1+4+%3*6,%9,41 + mov edi,%5 + mov esi,[vidbuffer] + add esi,16+%6+20*288 + mov ecx,%4 + mov edx,6*%3 + call GUIMenuDisplay - mov dword[GUIMenuL],%1+1 - mov dword[GUIMenuR],%1+6*%3+3 - mov dword[GUIMenuD],18+%4*10 + mov dword[GUIMenuL],%1+1 + mov dword[GUIMenuR],%1+6*%3+3 + mov dword[GUIMenuD],18+%4*10 %endmacro DisplayMenu: - ; Draw Shadow - GUIShadow 5,7,235,21 - ; Display Top Border - GUIBox 0,1,229,1,71 - GUIBox 0,2,229,2,70 - GUIBox 0,3,229,3,69 - GUIBox 0,4,229,4,68 - GUIBox 0,5,229,5,67 - GUIBox 0,6,229,6,66 - GUIBox 0,7,229,7,65 - GUIBox 0,8,229,8,64 - GUIBox 0,9,229,9,65 - GUIBox 0,10,229,10,66 - GUIBox 0,11,229,11,67 - GUIBox 0,12,229,12,68 - GUIBox 0,13,229,13,69 - GUIBox 0,14,229,14,70 - GUIBox 0,15,229,15,71 + ; Draw Shadow + GUIShadow 5,7,235,21 + ; Display Top Border + GUIBox 0,1,229,1,71 + GUIBox 0,2,229,2,70 + GUIBox 0,3,229,3,69 + GUIBox 0,4,229,4,68 + GUIBox 0,5,229,5,67 + GUIBox 0,6,229,6,66 + GUIBox 0,7,229,7,65 + GUIBox 0,8,229,8,64 + GUIBox 0,9,229,9,65 + GUIBox 0,10,229,10,66 + GUIBox 0,11,229,11,67 + GUIBox 0,12,229,12,68 + GUIBox 0,13,229,13,69 + GUIBox 0,14,229,14,70 + GUIBox 0,15,229,15,71 %ifdef __UNIXSDL__ - GUIShadow 238,9,247,20 - GUIShadow 249,9,257,20 + GUIShadow 238,9,247,20 + GUIShadow 249,9,257,20 %endif %ifdef __WIN32__ - GUIShadow 238,9,247,14 - GUIShadow 238,16,247,20 - GUIShadow 249,9,257,20 + GUIShadow 238,9,247,14 + GUIShadow 238,16,247,20 + GUIShadow 249,9,257,20 %endif .notwinpressa %ifdef __UNIXSDL__ - mov byte[GUIMenuItem+36],247 - GUIDMHelpB 233,242,GUIMenuItem+36,1 - mov byte[GUIMenuItem+36],'x' - GUIDMHelpB 244,253,GUIMenuItem+36,2 + mov byte[GUIMenuItem+36],247 + GUIDMHelpB 233,242,GUIMenuItem+36,1 + mov byte[GUIMenuItem+36],'x' + GUIDMHelpB 244,253,GUIMenuItem+36,2 %endif %ifdef __WIN32__ - mov byte[GUIMenuItem+36],249 - GUIDMHelpB2 233,242,GUIMenuItem+36,1 - mov byte[GUIMenuItem+36],248 - GUIDMHelpB3 233,242,GUIMenuItem+36,3 - mov byte[GUIMenuItem+36],'x' - GUIDMHelpB 244,253,GUIMenuItem+36,2 + mov byte[GUIMenuItem+36],249 + GUIDMHelpB2 233,242,GUIMenuItem+36,1 + mov byte[GUIMenuItem+36],248 + GUIDMHelpB3 233,242,GUIMenuItem+36,3 + mov byte[GUIMenuItem+36],'x' + GUIDMHelpB 244,253,GUIMenuItem+36,2 %endif .notwinpressb - ; Display upper-left box - mov byte[GUIMenuItem+36],25 - GUIDMHelp 4,12,GUIMenuItem+6,1 - GUIOuttext 4+3,7,GUIMenuItem+36,44 - GUIOuttext 4+2,6,GUIMenuItem+36,62 - ; Display boxes - GUIDMHelp 17,47,GUIMenuItem,2 - GUIDMHelp 52,94,GUIMenuItem+7,3 - GUIDMHelp 99,135,GUIMenuItem+14,4 - GUIDMHelp 140,188,GUIMenuItem+21,5 - GUIDMHelp 193,223,GUIMenuItem+29,6 + ; Display upper-left box + mov byte[GUIMenuItem+36],25 + GUIDMHelp 4,12,GUIMenuItem+6,1 + GUIOuttext 4+3,7,GUIMenuItem+36,44 + GUIOuttext 4+2,6,GUIMenuItem+36,62 + ; Display boxes + GUIDMHelp 17,47,GUIMenuItem,2 + GUIDMHelp 52,94,GUIMenuItem+7,3 + GUIDMHelp 99,135,GUIMenuItem+14,4 + GUIDMHelp 140,188,GUIMenuItem+21,5 + GUIDMHelp 193,223,GUIMenuItem+29,6 - mov dword[GUIMenuL],0 - mov dword[GUIMenuR],0 - mov dword[GUIMenuD],0 + mov dword[GUIMenuL],0 + mov dword[GUIMenuR],0 + mov dword[GUIMenuD],0 - ; format : x pos, y pos, #charx, #chary, name, xpos+2, xpos+5,22, - ; 19+#chary*10, length of top menu box - cmp byte[GUIcmenupos],1 - jne near .nomenu1 - GUIDrawMenuM 4,16,30,13,GUIPrevMenuData,6,9,22,149,8 ;19+13*10 - mov dword[GUICYLocPtr],MenuDat1 + ; format : x pos, y pos, #charx, #chary, name, xpos+2, xpos+5,22, + ; 19+#chary*10, length of top menu box + cmp byte[GUIcmenupos],1 + jne near .nomenu1 + GUIDrawMenuM 4,16,30,13,GUIPrevMenuData,6,9,22,149,8 ;19+13*10 + mov dword[GUICYLocPtr],MenuDat1 .nomenu1 - cmp byte[GUIcmenupos],2 - jne near .nomenu2 - GUIDrawMenuM 17,16,10,9,GUIGameMenuData,19,22,22,109,30 ;19+9*10 - mov dword[GUICYLocPtr],MenuDat2 + cmp byte[GUIcmenupos],2 + jne near .nomenu2 + GUIDrawMenuM 17,16,10,9,GUIGameMenuData,19,22,22,109,30 ;19+9*10 + mov dword[GUICYLocPtr],MenuDat2 .nomenu2 - cmp byte[GUIcmenupos],3 - jne near .nomenu3 - GUIDrawMenuM 52,16,9,15,GUIConfigMenuData,54,57,22,169,42 ;19+15*10 - mov dword[GUICYLocPtr],MenuDat3 + cmp byte[GUIcmenupos],3 + jne near .nomenu3 + 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 - mov dword[GUICYLocPtr],MenuDat4 + cmp byte[GUIcmenupos],4 + jne near .nomenu4 + 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 + 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 + GUIDrawMenuM 140,16,10,2,GUINetPlayMenuData,142,145,22,39,48 ;19+2*10 +%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 + mov dword[GUICYLocPtr],MenuDat5 .nomenu5 - cmp byte[GUIcmenupos],6 - jne near .nomenu6 - GUIDrawMenuM 193,16,9,7,GUIMiscMenuData,195,198,22,89,30 ;19+5*10 - mov dword[GUICYLocPtr],MenuDat6 + cmp byte[GUIcmenupos],6 + jne near .nomenu6 + GUIDrawMenuM 193,16,9,7,GUIMiscMenuData,195,198,22,89,30 ;19+5*10 + mov dword[GUICYLocPtr],MenuDat6 .nomenu6 - ret + ret GUIMenuDisplay: - xor ebx,ebx + xor ebx,ebx .next - mov al,[edi] - push ebx - push ecx - push esi - cmp al,0 - je near .notext - cmp al,2 - je .darktext - inc edi - mov byte[GUItextcolor],44 - cmp byte[GUIcrowpos],bl - je .nodrawshadow - push edi - push esi - add esi,289 - call GUIOutputString - pop esi - pop edi + mov al,[edi] + push ebx + push ecx + push esi + cmp al,0 + je near .notext + cmp al,2 + je .darktext + inc edi + mov byte[GUItextcolor],44 + cmp byte[GUIcrowpos],bl + je .nodrawshadow + push edi + push esi + add esi,289 + call GUIOutputString + pop esi + pop edi .nodrawshadow - mov byte[GUItextcolor],63 - call GUIOutputString - inc edi - jmp .text + mov byte[GUItextcolor],63 + call GUIOutputString + inc edi + jmp .text .darktext - inc edi - mov byte[GUItextcolor],42 - cmp byte[GUIcrowpos],bl - je .nodrawshadow2 - push edi - push esi - add esi,289 - call GUIOutputString - pop esi - pop edi + inc edi + mov byte[GUItextcolor],42 + cmp byte[GUIcrowpos],bl + je .nodrawshadow2 + push edi + push esi + add esi,289 + call GUIOutputString + pop esi + pop edi .nodrawshadow2 - mov byte[GUItextcolor],57 - call GUIOutputString - inc edi - jmp .text + mov byte[GUItextcolor],57 + call GUIOutputString + inc edi + jmp .text .notext - add esi,4*288 - mov ecx,edx + add esi,4*288 + mov ecx,edx .loop - mov byte[esi],45 - mov byte[esi-289],40 - mov byte[esi+289],42 - inc esi - dec ecx - jnz .loop - add edi,14 + mov byte[esi],45 + mov byte[esi-289],40 + mov byte[esi+289],42 + inc esi + dec ecx + jnz .loop + add edi,14 .text - pop esi - pop ecx - pop ebx - add esi,10*288 - inc ebx - dec ecx - jnz near .next - ret - - + pop esi + pop ecx + pop ebx + add esi,10*288 + inc ebx + dec ecx + jnz near .next + ret InitGUI: - cmp byte[newengen],0 - je .nong16b - cmp byte[cbitmode],0 - je .nong16b - call GetScreen + cmp byte[newengen],0 + je .nong16b + cmp byte[cbitmode],0 + je .nong16b + call GetScreen .nong16b - call ClearScreen - pushad - call Clear2xSaIBuffer - popad - call GUISetPal - call GUIBufferData - ret + call ClearScreen + pushad + call Clear2xSaIBuffer + popad + call GUISetPal + call GUIBufferData + ret GUISetPal: - cmp byte[cbitmode],1 - je near GUISetPal16 - ; set palette - ; Fixed Color Scale = 0 .. 31 - mov dx,03C8h - mov al,0 - out dx,al - inc dx - out dx,al - out dx,al - out dx,al + cmp byte[cbitmode],1 + je near GUISetPal16 + ; set palette + ; Fixed Color Scale = 0 .. 31 + mov dx,03C8h + mov al,0 + out dx,al + inc dx + out dx,al + out dx,al + out dx,al - inc al - mov dx,03C8h - mov bl,1 - out dx,al - inc dx + inc al + mov dx,03C8h + mov bl,1 + out dx,al + inc dx .loopd - mov al,bl - add al,[GUIRAdd] - out dx,al - mov al,bl - add al,[GUIGAdd] - out dx,al - mov al,bl - add al,[GUIBAdd] - out dx,al - inc bl - cmp bl,32 - jne .loopd - ; gray scale = 32 .. 63 - mov dx,03C8h - mov bl,32 - mov al,32 - out dx,al - inc dx + mov al,bl + add al,[GUIRAdd] + out dx,al + mov al,bl + add al,[GUIGAdd] + out dx,al + mov al,bl + add al,[GUIBAdd] + out dx,al + inc bl + cmp bl,32 + jne .loopd + ; gray scale = 32 .. 63 + mov dx,03C8h + mov bl,32 + mov al,32 + out dx,al + inc dx .loopc - mov al,bl - add al,al - out dx,al - out dx,al - out dx,al - inc bl - cmp bl,64 - jne .loopc - ; shadow = 96 .. 127 - inc al - mov al,96 - mov dx,03C8h - mov bl,0 - out dx,al - inc dx + mov al,bl + add al,al + out dx,al + out dx,al + out dx,al + inc bl + cmp bl,64 + jne .loopc + ; shadow = 96 .. 127 + inc al + mov al,96 + mov dx,03C8h + mov bl,0 + out dx,al + inc dx .loope - mov al,bl - add al,[GUIRAdd] - mov ah,al - add al,al - add al,ah - shr al,2 - out dx,al - mov al,bl - add al,[GUIGAdd] - mov ah,al - add al,al - add al,ah - shr al,2 - out dx,al - mov al,bl - add al,[GUIBAdd] - mov ah,al - add al,al - add al,ah - shr al,2 - out dx,al - inc bl - cmp bl,32 - jne .loope + mov al,bl + add al,[GUIRAdd] + mov ah,al + add al,al + add al,ah + shr al,2 + out dx,al + mov al,bl + add al,[GUIGAdd] + mov ah,al + add al,al + add al,ah + shr al,2 + out dx,al + mov al,bl + add al,[GUIBAdd] + mov ah,al + add al,al + add al,ah + shr al,2 + out dx,al + inc bl + cmp bl,32 + jne .loope - ; 0,10,31 - mov al,[GUITRAdd] - mov [TRVal],al - mov al,[GUITGAdd] - mov [TGVal],al - mov al,[GUITBAdd] - mov [TBVal],al - mov ax,[TRVal] - inc ax - shr ax,3 - mov [TRVali],ax - shl ax,3 - add [TRVal],ax - mov ax,[TGVal] - inc ax - shr ax,3 - mov [TGVali],ax - shl ax,3 - add [TGVal],ax - mov ax,[TBVal] - inc ax - shr ax,3 - mov [TBVali],ax - shl ax,3 - add [TBVal],ax + ; 0,10,31 + mov al,[GUITRAdd] + mov [TRVal],al + mov al,[GUITGAdd] + mov [TGVal],al + mov al,[GUITBAdd] + mov [TBVal],al + mov ax,[TRVal] + inc ax + shr ax,3 + mov [TRVali],ax + shl ax,3 + add [TRVal],ax + mov ax,[TGVal] + inc ax + shr ax,3 + mov [TGVali],ax + shl ax,3 + add [TGVal],ax + mov ax,[TBVal] + inc ax + shr ax,3 + mov [TBVali],ax + shl ax,3 + add [TBVal],ax - GUIPal 64,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 65,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 66,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 67,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 68,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 69,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 70,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 71,[TRVal],[TGVal],[TBVal] + GUIPal 64,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 65,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 66,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 67,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 68,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 69,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 70,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 71,[TRVal],[TGVal],[TBVal] - GUIPal 72,40,0,20 - GUIPal 73,34,0,21 + GUIPal 72,40,0,20 + GUIPal 73,34,0,21 - GUIPal 80,0,10,28 - GUIPal 81,0,10,27 - GUIPal 82,0,10,25 - GUIPal 83,0,09,24 - GUIPal 84,0,08,22 - GUIPal 85,0,07,20 - GUIPal 86,0,06,18 - GUIPal 87,0,05,15 - GUIPal 88,20,0,10 - GUIPal 89,17,0,10 + GUIPal 80,0,10,28 + GUIPal 81,0,10,27 + GUIPal 82,0,10,25 + GUIPal 83,0,09,24 + GUIPal 84,0,08,22 + GUIPal 85,0,07,20 + GUIPal 86,0,06,18 + GUIPal 87,0,05,15 + GUIPal 88,20,0,10 + GUIPal 89,17,0,10 - ; Orange Scale - mov dx,03C8h - mov al,128 - mov cl,20 - out dx,al - mov bh,0 - mov ah,0 - inc dx + ; Orange Scale + mov dx,03C8h + mov al,128 + mov cl,20 + out dx,al + mov bh,0 + mov ah,0 + inc dx .loopf - add bh,2 - add ah,1 - mov al,63 - out dx,al - mov al,bh - out dx,al - mov al,ah - out dx,al - dec cl - jnz .loopf + add bh,2 + add ah,1 + mov al,63 + out dx,al + mov al,bh + out dx,al + mov al,ah + out dx,al + dec cl + jnz .loopf - ; Blue scale = 148 .. 167 - mov al,[GUIWRAdd] - add al,al - mov [TRVal],al - mov al,[GUIWGAdd] - add al,al - mov [TGVal],al - mov al,[GUIWBAdd] - add al,al - mov [TBVal],al - mov byte[TRVali],4 - mov byte[TGVali],4 - mov byte[TBVali],4 + ; Blue scale = 148 .. 167 + mov al,[GUIWRAdd] + add al,al + mov [TRVal],al + mov al,[GUIWGAdd] + add al,al + mov [TGVal],al + mov al,[GUIWBAdd] + add al,al + mov [TBVal],al + mov byte[TRVali],4 + mov byte[TGVali],4 + mov byte[TBVali],4 - GUIPal 152,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 151,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 150,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 149,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 148,[TRVal],[TGVal],[TBVal] + GUIPal 152,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 151,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 150,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 149,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 148,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - add al,al - mov [TRVal],al - mov al,[GUIWGAdd] - add al,al - mov [TGVal],al - mov al,[GUIWBAdd] - add al,al - mov [TBVal],al - mov byte[TRVali],4 - mov byte[TGVali],4 - mov byte[TBVali],4 - call DecPalVal - call DecPalVal + mov al,[GUIWRAdd] + add al,al + mov [TRVal],al + mov al,[GUIWGAdd] + add al,al + mov [TGVal],al + mov al,[GUIWBAdd] + add al,al + mov [TBVal],al + mov byte[TRVali],4 + mov byte[TGVali],4 + mov byte[TBVali],4 + call DecPalVal + call DecPalVal - GUIPal 157,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 156,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 155,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 154,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 153,[TRVal],[TGVal],[TBVal] + GUIPal 157,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 156,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 155,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 154,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 153,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - add al,al - mov [TRVal],al - mov al,[GUIWGAdd] - add al,al - mov [TGVal],al - mov al,[GUIWBAdd] - add al,al - mov [TBVal],al - mov byte[TRVali],4 - mov byte[TGVali],4 - mov byte[TBVali],4 - call DecPalVal - call DecPalVal - call DecPalVal - call DecPalVal + mov al,[GUIWRAdd] + add al,al + mov [TRVal],al + mov al,[GUIWGAdd] + add al,al + mov [TGVal],al + mov al,[GUIWBAdd] + add al,al + mov [TBVal],al + mov byte[TRVali],4 + mov byte[TGVali],4 + mov byte[TBVali],4 + call DecPalVal + call DecPalVal + call DecPalVal + call DecPalVal - GUIPal 162,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 161,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 160,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 159,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 158,[TRVal],[TGVal],[TBVal] + GUIPal 162,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 161,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 160,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 159,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 158,[TRVal],[TGVal],[TBVal] - GUIPal 163,40,40,00 - GUIPal 164,30,30,00 - GUIPal 165,50,00,00 - GUIPal 166,35,00,00 - GUIPal 167,00,00,00 + GUIPal 163,40,40,00 + GUIPal 164,30,30,00 + GUIPal 165,50,00,00 + GUIPal 166,35,00,00 + GUIPal 167,00,00,00 - ; Blue scale shadow - mov al,[GUIWRAdd] - mov [TRVal],al - mov al,[GUIWGAdd] - mov [TGVal],al - mov al,[GUIWBAdd] - mov [TBVal],al - mov byte[TRVali],2 - mov byte[TGVali],2 - mov byte[TBVali],2 + ; Blue scale shadow + mov al,[GUIWRAdd] + mov [TRVal],al + mov al,[GUIWGAdd] + mov [TGVal],al + mov al,[GUIWBAdd] + mov [TBVal],al + mov byte[TRVali],2 + mov byte[TGVali],2 + mov byte[TBVali],2 - GUIPal 172,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 171,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 170,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 169,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 168,[TRVal],[TGVal],[TBVal] + GUIPal 172,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 171,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 170,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 169,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 168,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - mov [TRVal],al - mov al,[GUIWGAdd] - mov [TGVal],al - mov al,[GUIWBAdd] - mov [TBVal],al - mov byte[TRVali],2 - mov byte[TGVali],2 - mov byte[TBVali],2 - call DecPalVal - call DecPalVal + mov al,[GUIWRAdd] + mov [TRVal],al + mov al,[GUIWGAdd] + mov [TGVal],al + mov al,[GUIWBAdd] + mov [TBVal],al + mov byte[TRVali],2 + mov byte[TGVali],2 + mov byte[TBVali],2 + call DecPalVal + call DecPalVal - GUIPal 177,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 176,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 175,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 174,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 173,[TRVal],[TGVal],[TBVal] + GUIPal 177,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 176,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 175,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 174,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 173,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - mov [TRVal],al - mov al,[GUIWGAdd] - mov [TGVal],al - mov al,[GUIWBAdd] - mov [TBVal],al - mov byte[TRVali],2 - mov byte[TGVali],2 - mov byte[TBVali],2 - call DecPalVal - call DecPalVal - call DecPalVal - call DecPalVal + mov al,[GUIWRAdd] + mov [TRVal],al + mov al,[GUIWGAdd] + mov [TGVal],al + mov al,[GUIWBAdd] + mov [TBVal],al + mov byte[TRVali],2 + mov byte[TGVali],2 + mov byte[TBVali],2 + call DecPalVal + call DecPalVal + call DecPalVal + call DecPalVal - GUIPal 182,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 181,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 180,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 179,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal 178,[TRVal],[TGVal],[TBVal] + GUIPal 182,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 181,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 180,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 179,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal 178,[TRVal],[TGVal],[TBVal] - GUIPal 183,20,20,00 - GUIPal 184,15,15,00 - GUIPal 185,25,00,00 - GUIPal 186,17,00,00 - GUIPal 187,00,00,00 + GUIPal 183,20,20,00 + GUIPal 184,15,15,00 + GUIPal 185,25,00,00 + GUIPal 186,17,00,00 + GUIPal 187,00,00,00 - ; gray scale2 = 189 .. 220 - mov dx,03C8h - mov al,189 - mov bl,0 - out dx,al - inc dx + ; gray scale2 = 189 .. 220 + mov dx,03C8h + mov al,189 + mov bl,0 + out dx,al + inc dx .loopi - mov al,bl - add al,al - mov ah,bl - shr ah,1 - sub al,ah - out dx,al - out dx,al - add al,ah - out dx,al - inc bl - cmp bl,64 - jne .loopi + mov al,bl + add al,al + mov ah,bl + shr ah,1 + sub al,ah + out dx,al + out dx,al + add al,ah + out dx,al + inc bl + cmp bl,64 + jne .loopi - GUIPal 221,00,55,00 - GUIPal 222,00,45,00 - GUIPal 223,00,25,00 + GUIPal 221,00,55,00 + GUIPal 222,00,45,00 + GUIPal 223,00,25,00 - GUIPal 224,40,0,20 - GUIPal 225,32,0,15 + GUIPal 224,40,0,20 + GUIPal 225,32,0,15 - GUIPal 226,20,0,10 - GUIPal 227,16,0,07 + GUIPal 226,20,0,10 + GUIPal 227,16,0,07 - GUIPal 228,45,45,50 - GUIPal 229,40,40,45 - GUIPal 230,35,35,40 - GUIPal 231,30,30,35 + GUIPal 228,45,45,50 + GUIPal 229,40,40,45 + GUIPal 230,35,35,40 + GUIPal 231,30,30,35 - GUIPal 232,35,15,15 + GUIPal 232,35,15,15 - GUIPal 233,50,12,60 - GUIPal 234,30,14,60 + GUIPal 233,50,12,60 + GUIPal 234,30,14,60 - cmp byte[GUIPalConv],0 - je .convert - ret + cmp byte[GUIPalConv],0 + je .convert + ret .convert - mov byte[GUIPalConv],1 + mov byte[GUIPalConv],1 - ; Convert Image data to Gray Scale - ; Create Palette Table - call GUIconvpal - ; Convert Current Image in Buffer - mov esi,[vidbuffer] - mov ecx,288*240 - xor eax,eax + ; Convert Image data to Gray Scale + ; Create Palette Table + call GUIconvpal + ; Convert Current Image in Buffer + mov esi,[vidbuffer] + mov ecx,288*240 + xor eax,eax .next - mov al,[esi] - mov bl,[SubPalTable+eax] - mov [esi],bl - inc esi - dec ecx - jnz .next - ret + mov al,[esi] + mov bl,[SubPalTable+eax] + mov [esi],bl + inc esi + dec ecx + jnz .next + ret SECTION .bss NEWSYM GUICPC, resw 256 SECTION .text %macro GUIPal16b 4 - mov ax,%2 - shr ax,1 - shl ax,11 - mov bx,%3 - shl bx,5 - or ax,bx - mov bx,%4 - shr bx,1 - or ax,bx - mov [GUICPC+%1*2],ax + mov ax,%2 + shr ax,1 + shl ax,11 + mov bx,%3 + shl bx,5 + or ax,bx + mov bx,%4 + shr bx,1 + or ax,bx + mov [GUICPC+%1*2],ax %endmacro DecPalVal: - mov ax,[TRVali] - sub word[TRVal],ax - mov ax,[TGVali] - sub word[TGVal],ax - mov ax,[TBVali] - sub word[TBVal],ax - test word[TRVal],8000h - jz .notnegr - mov word[TRVal],0 + mov ax,[TRVali] + sub word[TRVal],ax + mov ax,[TGVali] + sub word[TGVal],ax + mov ax,[TBVali] + sub word[TBVal],ax + test word[TRVal],8000h + jz .notnegr + mov word[TRVal],0 .notnegr - test word[TGVal],8000h - jz .notnegg - mov word[TGVal],0 + test word[TGVal],8000h + jz .notnegg + mov word[TGVal],0 .notnegg - test word[TBVal],8000h - jz .notnegb - mov word[TBVal],0 + test word[TBVal],8000h + jz .notnegb + mov word[TBVal],0 .notnegb - ret + ret GUISetPal16: - ; set palette - ; Fixed Color Scale = 0 .. 31 - mov word[GUICPC],0 - inc al - xor ebx,ebx - mov bl,1 + ; set palette + ; Fixed Color Scale = 0 .. 31 + mov word[GUICPC],0 + inc al + xor ebx,ebx + mov bl,1 .loopd - xor ecx,ecx - mov cl,bl - add cl,[GUIRAdd] - shr cl,1 - shl ecx,11 - xor eax,eax - mov al,bl - add al,[GUIGAdd] - shl eax,5 - or ecx,eax - xor eax,eax - mov al,bl - add al,[GUIBAdd] - shr eax,1 - or ecx,eax - mov [GUICPC+ebx*2],cx - inc bl - cmp bl,32 - jne .loopd + xor ecx,ecx + mov cl,bl + add cl,[GUIRAdd] + shr cl,1 + shl ecx,11 + xor eax,eax + mov al,bl + add al,[GUIGAdd] + shl eax,5 + or ecx,eax + xor eax,eax + mov al,bl + add al,[GUIBAdd] + shr eax,1 + or ecx,eax + mov [GUICPC+ebx*2],cx + inc bl + cmp bl,32 + jne .loopd - ; gray scale = 32 .. 63 - mov bl,32 - mov al,32 + ; gray scale = 32 .. 63 + mov bl,32 + mov al,32 .loopc - mov al,bl - add al,al - xor ecx,ecx - mov cl,al - shr ecx,1 - shl ecx,11 - xor edx,edx - mov dl,al - shl edx,5 - or ecx,edx - xor edx,edx - mov dl,al - shr edx,1 - or ecx,edx - mov [GUICPC+ebx*2],cx - inc bl - cmp bl,64 - jne .loopc + mov al,bl + add al,al + xor ecx,ecx + mov cl,al + shr ecx,1 + shl ecx,11 + xor edx,edx + mov dl,al + shl edx,5 + or ecx,edx + xor edx,edx + mov dl,al + shr edx,1 + or ecx,edx + mov [GUICPC+ebx*2],cx + inc bl + cmp bl,64 + jne .loopc - ; shadow = 96 .. 127 - xor ebx,ebx + ; shadow = 96 .. 127 + xor ebx,ebx .loope - xor ecx,ecx - mov al,bl - add al,[GUIRAdd] - mov ah,al - add al,al - add al,ah - shr al,2 - shr al,1 - or cl,al - shl ecx,6 - mov al,bl - add al,[GUIGAdd] - mov ah,al - add al,al - add al,ah - shr al,2 - or cl,al - shl ecx,5 - mov al,bl - add al,[GUIBAdd] - mov ah,al - add al,al - add al,ah - shr al,2 - shr al,1 - or cl,al - mov [GUICPC+ebx*2+96*2],cx - inc bl - cmp bl,32 - jne .loope + xor ecx,ecx + mov al,bl + add al,[GUIRAdd] + mov ah,al + add al,al + add al,ah + shr al,2 + shr al,1 + or cl,al + shl ecx,6 + mov al,bl + add al,[GUIGAdd] + mov ah,al + add al,al + add al,ah + shr al,2 + or cl,al + shl ecx,5 + mov al,bl + add al,[GUIBAdd] + mov ah,al + add al,al + add al,ah + shr al,2 + shr al,1 + or cl,al + mov [GUICPC+ebx*2+96*2],cx + inc bl + cmp bl,32 + jne .loope - ; 0,10,31 - mov al,[GUITRAdd] - mov [TRVal],al - mov al,[GUITGAdd] - mov [TGVal],al - mov al,[GUITBAdd] - mov [TBVal],al - mov ax,[TRVal] - inc ax - shr ax,3 - mov [TRVali],ax - shl ax,3 - add [TRVal],ax - mov ax,[TGVal] - inc ax - shr ax,3 - mov [TGVali],ax - shl ax,3 - add [TGVal],ax - mov ax,[TBVal] - inc ax - shr ax,3 - mov [TBVali],ax - shl ax,3 - add [TBVal],ax + ; 0,10,31 + mov al,[GUITRAdd] + mov [TRVal],al + mov al,[GUITGAdd] + mov [TGVal],al + mov al,[GUITBAdd] + mov [TBVal],al + mov ax,[TRVal] + inc ax + shr ax,3 + mov [TRVali],ax + shl ax,3 + add [TRVal],ax + mov ax,[TGVal] + inc ax + shr ax,3 + mov [TGVali],ax + shl ax,3 + add [TGVal],ax + mov ax,[TBVal] + inc ax + shr ax,3 + mov [TBVali],ax + shl ax,3 + add [TBVal],ax - GUIPal16b 64,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 65,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 66,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 67,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 68,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 69,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 70,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 71,[TRVal],[TGVal],[TBVal] + GUIPal16b 64,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 65,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 66,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 67,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 68,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 69,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 70,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 71,[TRVal],[TGVal],[TBVal] - GUIPal16b 72,40,0,20 - GUIPal16b 73,34,0,21 + GUIPal16b 72,40,0,20 + GUIPal16b 73,34,0,21 - GUIPal16b 80,0,10,28 - GUIPal16b 81,0,10,27 - GUIPal16b 82,0,10,25 - GUIPal16b 83,0,09,24 - GUIPal16b 84,0,08,22 - GUIPal16b 85,0,07,20 - GUIPal16b 86,0,06,18 - GUIPal16b 87,0,05,15 - GUIPal16b 88,20,0,10 - GUIPal16b 89,17,0,10 + GUIPal16b 80,0,10,28 + GUIPal16b 81,0,10,27 + GUIPal16b 82,0,10,25 + GUIPal16b 83,0,09,24 + GUIPal16b 84,0,08,22 + GUIPal16b 85,0,07,20 + GUIPal16b 86,0,06,18 + GUIPal16b 87,0,05,15 + GUIPal16b 88,20,0,10 + GUIPal16b 89,17,0,10 - ; Orange Scale - mov cl,20 - mov bh,0 - mov ah,0 - inc dx - mov esi,128 + ; Orange Scale + mov cl,20 + mov bh,0 + mov ah,0 + inc dx + mov esi,128 .loopf - add bh,2 - add ah,1 - mov edx,1Fh << 6 - or dl,bh - shl edx,5 - mov al,ah - shr al,1 - or dl,al - mov [GUICPC+esi*2],dx - inc esi - dec cl - jnz .loopf + add bh,2 + add ah,1 + mov edx,1Fh << 6 + or dl,bh + shl edx,5 + mov al,ah + shr al,1 + or dl,al + mov [GUICPC+esi*2],dx + inc esi + dec cl + jnz .loopf - ; Blue scale = 148 .. 167 - mov al,[GUIWRAdd] - add al,al - mov [TRVal],al - mov al,[GUIWGAdd] - add al,al - mov [TGVal],al - mov al,[GUIWBAdd] - add al,al - mov [TBVal],al - mov byte[TRVali],4 - mov byte[TGVali],4 - mov byte[TBVali],4 + ; Blue scale = 148 .. 167 + mov al,[GUIWRAdd] + add al,al + mov [TRVal],al + mov al,[GUIWGAdd] + add al,al + mov [TGVal],al + mov al,[GUIWBAdd] + add al,al + mov [TBVal],al + mov byte[TRVali],4 + mov byte[TGVali],4 + mov byte[TBVali],4 - GUIPal16b 152,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 151,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 150,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 149,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 148,[TRVal],[TGVal],[TBVal] + GUIPal16b 152,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 151,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 150,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 149,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 148,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - add al,al - mov [TRVal],al - mov al,[GUIWGAdd] - add al,al - mov [TGVal],al - mov al,[GUIWBAdd] - add al,al - mov [TBVal],al - mov byte[TRVali],4 - mov byte[TGVali],4 - mov byte[TBVali],4 - mov al,[TRVal] - shr al,2 - sub [TRVal],al - mov al,[TGVal] - shr al,2 - sub [TGVal],al - mov al,[TBVal] - shr al,2 - sub [TBVal],al + mov al,[GUIWRAdd] + add al,al + mov [TRVal],al + mov al,[GUIWGAdd] + add al,al + mov [TGVal],al + mov al,[GUIWBAdd] + add al,al + mov [TBVal],al + mov byte[TRVali],4 + mov byte[TGVali],4 + mov byte[TBVali],4 + mov al,[TRVal] + shr al,2 + sub [TRVal],al + mov al,[TGVal] + shr al,2 + sub [TGVal],al + mov al,[TBVal] + shr al,2 + sub [TBVal],al - GUIPal16b 157,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 156,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 155,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 154,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 153,[TRVal],[TGVal],[TBVal] + GUIPal16b 157,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 156,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 155,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 154,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 153,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - add al,al - mov [TRVal],al - mov al,[GUIWGAdd] - add al,al - mov [TGVal],al - mov al,[GUIWBAdd] - add al,al - mov [TBVal],al - mov byte[TRVali],4 - mov byte[TGVali],4 - mov byte[TBVali],4 - mov al,[TRVal] - shr al,1 - sub [TRVal],al - mov al,[TGVal] - shr al,1 - sub [TGVal],al - mov al,[TBVal] - shr al,1 - sub [TBVal],al + mov al,[GUIWRAdd] + add al,al + mov [TRVal],al + mov al,[GUIWGAdd] + add al,al + mov [TGVal],al + mov al,[GUIWBAdd] + add al,al + mov [TBVal],al + mov byte[TRVali],4 + mov byte[TGVali],4 + mov byte[TBVali],4 + mov al,[TRVal] + shr al,1 + sub [TRVal],al + mov al,[TGVal] + shr al,1 + sub [TGVal],al + mov al,[TBVal] + shr al,1 + sub [TBVal],al - GUIPal16b 162,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 161,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 160,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 159,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 158,[TRVal],[TGVal],[TBVal] + GUIPal16b 162,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 161,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 160,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 159,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 158,[TRVal],[TGVal],[TBVal] - GUIPal16b 163,40,40,00 - GUIPal16b 164,30,30,00 - GUIPal16b 165,50,00,00 - GUIPal16b 166,35,00,00 - GUIPal16b 167,00,00,00 + GUIPal16b 163,40,40,00 + GUIPal16b 164,30,30,00 + GUIPal16b 165,50,00,00 + GUIPal16b 166,35,00,00 + GUIPal16b 167,00,00,00 - ; Blue scale shadow - mov al,[GUIWRAdd] - mov [TRVal],al - mov al,[GUIWGAdd] - mov [TGVal],al - mov al,[GUIWBAdd] - mov [TBVal],al - mov byte[TRVali],2 - mov byte[TGVali],2 - mov byte[TBVali],2 + ; Blue scale shadow + mov al,[GUIWRAdd] + mov [TRVal],al + mov al,[GUIWGAdd] + mov [TGVal],al + mov al,[GUIWBAdd] + mov [TBVal],al + mov byte[TRVali],2 + mov byte[TGVali],2 + mov byte[TBVali],2 - GUIPal16b 172,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 171,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 170,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 169,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 168,[TRVal],[TGVal],[TBVal] + GUIPal16b 172,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 171,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 170,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 169,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 168,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - mov [TRVal],al - mov al,[GUIWGAdd] - mov [TGVal],al - mov al,[GUIWBAdd] - mov [TBVal],al - mov byte[TRVali],2 - mov byte[TGVali],2 - mov byte[TBVali],2 - call DecPalVal - call DecPalVal + mov al,[GUIWRAdd] + mov [TRVal],al + mov al,[GUIWGAdd] + mov [TGVal],al + mov al,[GUIWBAdd] + mov [TBVal],al + mov byte[TRVali],2 + mov byte[TGVali],2 + mov byte[TBVali],2 + call DecPalVal + call DecPalVal - GUIPal16b 177,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 176,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 175,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 174,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 173,[TRVal],[TGVal],[TBVal] + GUIPal16b 177,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 176,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 175,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 174,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 173,[TRVal],[TGVal],[TBVal] - mov al,[GUIWRAdd] - mov [TRVal],al - mov al,[GUIWGAdd] - mov [TGVal],al - mov al,[GUIWBAdd] - mov [TBVal],al - mov byte[TRVali],2 - mov byte[TGVali],2 - mov byte[TBVali],2 - call DecPalVal - call DecPalVal - call DecPalVal - call DecPalVal + mov al,[GUIWRAdd] + mov [TRVal],al + mov al,[GUIWGAdd] + mov [TGVal],al + mov al,[GUIWBAdd] + mov [TBVal],al + mov byte[TRVali],2 + mov byte[TGVali],2 + mov byte[TBVali],2 + call DecPalVal + call DecPalVal + call DecPalVal + call DecPalVal - GUIPal16b 182,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 181,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 180,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 179,[TRVal],[TGVal],[TBVal] - call DecPalVal - GUIPal16b 178,[TRVal],[TGVal],[TBVal] + GUIPal16b 182,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 181,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 180,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 179,[TRVal],[TGVal],[TBVal] + call DecPalVal + GUIPal16b 178,[TRVal],[TGVal],[TBVal] - GUIPal16b 183,20,20,00 - GUIPal16b 184,15,15,00 - GUIPal16b 185,25,00,00 - GUIPal16b 186,17,00,00 - GUIPal16b 187,00,00,00 + GUIPal16b 183,20,20,00 + GUIPal16b 184,15,15,00 + GUIPal16b 185,25,00,00 + GUIPal16b 186,17,00,00 + GUIPal16b 187,00,00,00 - ; gray scale2 = 189 .. 220 - mov bl,0 - mov esi,189 + ; gray scale2 = 189 .. 220 + mov bl,0 + mov esi,189 .loopi - xor edx,edx - mov al,bl - add al,al - mov ah,bl - shr ah,1 - sub al,ah - mov dl,al - shr dl,1 - shl edx,6 - or dl,al - shl edx,5 - add al,ah - shr al,1 - or dl,al - mov [GUICPC+esi*2],dx - inc esi - inc bl - cmp bl,64 - jne .loopi + xor edx,edx + mov al,bl + add al,al + mov ah,bl + shr ah,1 + sub al,ah + mov dl,al + shr dl,1 + shl edx,6 + or dl,al + shl edx,5 + add al,ah + shr al,1 + or dl,al + mov [GUICPC+esi*2],dx + inc esi + inc bl + cmp bl,64 + jne .loopi - GUIPal16b 221,00,55,00 - GUIPal16b 222,00,45,00 - GUIPal16b 223,00,25,00 + GUIPal16b 221,00,55,00 + GUIPal16b 222,00,45,00 + GUIPal16b 223,00,25,00 - GUIPal16b 224,40,0,20 - GUIPal16b 225,32,0,15 + GUIPal16b 224,40,0,20 + GUIPal16b 225,32,0,15 - GUIPal16b 226,20,0,10 - GUIPal16b 227,16,0,07 + GUIPal16b 226,20,0,10 + GUIPal16b 227,16,0,07 - GUIPal16b 228,45,45,50 - GUIPal16b 229,40,40,45 - GUIPal16b 230,35,35,40 - GUIPal16b 231,30,30,35 + GUIPal16b 228,45,45,50 + GUIPal16b 229,40,40,45 + GUIPal16b 230,35,35,40 + GUIPal16b 231,30,30,35 - GUIPal16b 232,35,15,15 + GUIPal16b 232,35,15,15 - GUIPal16b 233,50,12,60 - GUIPal16b 234,30,14,60 - GUIPal16b 235,12,60,25 - GUIPal16b 236,14,42,25 - GUIPal16b 237,60,20,25 - GUIPal16b 238,42,20,25 + GUIPal16b 233,50,12,60 + GUIPal16b 234,30,14,60 + GUIPal16b 235,12,60,25 + GUIPal16b 236,14,42,25 + GUIPal16b 237,60,20,25 + GUIPal16b 238,42,20,25 - cmp byte[GUIPalConv],0 - je .convert - ret + cmp byte[GUIPalConv],0 + je .convert + ret .convert - mov byte[GUIPalConv],1 - mov esi,[vidbuffer] - mov edi,288*240 - xor ebx,ebx + mov byte[GUIPalConv],1 + mov esi,[vidbuffer] + mov edi,288*240 + xor ebx,ebx .next - mov ax,[esi+ebx*2] - mov ecx,eax - shr ecx,11 - and ecx,1Fh - mov edx,eax - shr edx,6 - and edx,1Fh - add ecx,edx - mov edx,eax - and edx,1Fh - add ecx,edx - shr ecx,1 - mov al,[.multab+ecx] - mov [esi+ebx],al - inc ebx - dec edi - jnz .next - ret + mov ax,[esi+ebx*2] + mov ecx,eax + shr ecx,11 + and ecx,1Fh + mov edx,eax + shr edx,6 + and edx,1Fh + add ecx,edx + mov edx,eax + and edx,1Fh + add ecx,edx + shr ecx,1 + mov al,[.multab+ecx] + mov [esi+ebx],al + inc ebx + dec edi + jnz .next + ret 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: - mov ecx,16384 - cmp byte[cbitmode],1 - jne near .16b - add ecx,16384 - cmp word[PrevResoln],224 - je .nobufb - add esi,288*8 + mov ecx,16384 + cmp byte[cbitmode],1 + jne near .16b + add ecx,16384 + cmp word[PrevResoln],224 + je .nobufb + add esi,288*8 .nobufb .16b - ; copy to spritetable - mov esi,[vidbuffer] - cmp word[PrevResoln],224 - je .nobufa - add esi,288*8 + ; copy to spritetable + mov esi,[vidbuffer] + cmp word[PrevResoln],224 + je .nobufa + add esi,288*8 .nobufa - mov edi,[spritetablea] - add edi,8*288 + mov edi,[spritetablea] + add edi,8*288 .loop - mov eax,[esi] - mov [edi],eax - add esi,4 - add edi,4 - dec ecx - jnz .loop - mov edi,sprlefttot - mov ecx,64*5 + mov eax,[esi] + mov [edi],eax + add esi,4 + add edi,4 + dec ecx + jnz .loop + mov edi,sprlefttot + mov ecx,64*5 .a - mov dword[edi],0 - add edi,4 - dec ecx - jnz .a - ret + mov dword[edi],0 + add edi,4 + dec ecx + jnz .a + ret GUIUnBuffer: - mov ecx,16384 - ; copy from spritetable - mov edi,[vidbuffer] - mov esi,[spritetablea] - add esi,8*288 - rep movsd - mov eax,01010101h - mov ecx,2*288 - rep stosd - ret + mov ecx,16384 + ; copy from spritetable + mov edi,[vidbuffer] + mov esi,[spritetablea] + add esi,8*288 + rep movsd + mov eax,01010101h + mov ecx,2*288 + rep stosd + ret GUIconvpal: - mov ax,[cgram] - mov [tempco0],ax - test byte[scaddtype],00100000b - jz near .noaddition - test byte[scaddtype],10000000b - jnz near .noaddition - mov cx,[cgram] - mov ax,cx - and ax,001Fh - add al,[coladdr] - cmp al,01Fh - jb .noadd - mov al,01Fh + mov ax,[cgram] + mov [tempco0],ax + test byte[scaddtype],00100000b + jz near .noaddition + test byte[scaddtype],10000000b + jnz near .noaddition + mov cx,[cgram] + mov ax,cx + and ax,001Fh + add al,[coladdr] + cmp al,01Fh + jb .noadd + mov al,01Fh .noadd - mov bx,ax - mov ax,cx - shr ax,5 - and ax,001Fh - add al,[coladdg] - cmp al,01Fh - jb .noaddb - mov al,01Fh + mov bx,ax + mov ax,cx + shr ax,5 + and ax,001Fh + add al,[coladdg] + cmp al,01Fh + jb .noaddb + mov al,01Fh .noaddb - shl ax,5 - add bx,ax - mov ax,cx - shr ax,10 - and ax,001Fh - add al,[coladdb] - cmp al,01Fh - jb .noaddc - mov al,01Fh + shl ax,5 + add bx,ax + mov ax,cx + shr ax,10 + and ax,001Fh + add al,[coladdb] + cmp al,01Fh + jb .noaddc + mov al,01Fh .noaddc - shl ax,10 - add bx,ax - mov [cgram],bx + shl ax,10 + add bx,ax + mov [cgram],bx .noaddition - mov edi,cgram - mov ebx,prevpal - xor ah,ah + mov edi,cgram + mov ebx,prevpal + xor ah,ah .loopa - mov cx,[edi] - push eax - push ebx - mov [ebx],cx - mov al,ah - mov ax,cx - and al,01Fh - mov bh,[maxbr] - mov bl,bh - mul bl - mov bl,15 - div bl - mov [curgsval],al - mov ax,cx - shr ax,5 - and al,01Fh - mov bl,bh - mul bl - mov bl,15 - div bl - add [curgsval],al - mov ax,cx - shr ax,10 - and al,01Fh - mov bl,bh - mul bl - mov bl,15 - div bl - add [curgsval],al - pop ebx - pop eax - add edi,2 - add ebx,2 - push eax - push ebx - mov al,ah - and eax,0FFh - mov bl,[curgsval] - push eax - push ebx - mov al,bl - mov bl,3 - xor ah,ah - div bl - pop ebx - mov bl,al - pop eax - cmp byte[MessageOn],0 - je .nochange128 - cmp al,128 - jne .nochange128 - mov bl,31 + mov cx,[edi] + push eax + push ebx + mov [ebx],cx + mov al,ah + mov ax,cx + and al,01Fh + mov bh,[maxbr] + mov bl,bh + mul bl + mov bl,15 + div bl + mov [curgsval],al + mov ax,cx + shr ax,5 + and al,01Fh + mov bl,bh + mul bl + mov bl,15 + div bl + add [curgsval],al + mov ax,cx + shr ax,10 + and al,01Fh + mov bl,bh + mul bl + mov bl,15 + div bl + add [curgsval],al + pop ebx + pop eax + add edi,2 + add ebx,2 + push eax + push ebx + mov al,ah + and eax,0FFh + mov bl,[curgsval] + push eax + push ebx + mov al,bl + mov bl,3 + xor ah,ah + div bl + pop ebx + mov bl,al + pop eax + cmp byte[MessageOn],0 + je .nochange128 + cmp al,128 + jne .nochange128 + mov bl,31 .nochange128 - or bl,bl - jnz .noadder - inc bl + or bl,bl + jnz .noadder + inc bl .noadder - mov [SubPalTable+eax],bl - pop ebx - pop eax - inc ah - jnz near .loopa - mov al,[maxbr] - mov [prevbright],al - mov ax,[tempco0] - mov [cgram],ax - ret + mov [SubPalTable+eax],bl + pop ebx + pop eax + inc ah + jnz near .loopa + mov al,[maxbr] + mov [prevbright],al + mov ax,[tempco0] + mov [cgram],ax + 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 - db 01110000b - db 10011000b - db 10101000b - db 11001000b - db 01110000b; 0 - db 00100000b - db 01100000b - db 00100000b - db 00100000b - db 01110000b; 1 - db 01110000b - db 10001000b - db 00110000b - db 01000000b - db 11111000b; 2 - db 01110000b - db 10001000b - db 00110000b - db 10001000b - db 01110000b; 3 - db 01010000b - db 10010000b - db 11111000b - db 00010000b - db 00010000b; 4 - db 11111000b - db 10000000b - db 11110000b - db 00001000b - db 11110000b; 5 - db 01110000b - db 10000000b - db 11110000b - db 10001000b - db 01110000b; 6 - db 11111000b - db 00001000b - db 00010000b - db 00010000b - db 00010000b; 7 - db 01110000b - db 10001000b - db 01110000b - db 10001000b - db 01110000b; 8 - db 01110000b - db 10001000b - db 01111000b - db 00001000b - db 01110000b; 9 - db 01110000b - db 10001000b - db 11111000b - db 10001000b - db 10001000b; A - db 11110000b - db 10001000b - db 11110000b - db 10001000b - db 11110000b; B - db 01110000b - db 10001000b - db 10000000b - db 10001000b - db 01110000b; C - db 11110000b - db 10001000b - db 10001000b - db 10001000b - db 11110000b; D - db 11111000b - db 10000000b - db 11110000b - db 10000000b - db 11111000b; E - db 11111000b - db 10000000b - db 11110000b - db 10000000b - db 10000000b; F - db 01111000b - db 10000000b - db 10011000b - db 10001000b - db 01110000b; G - db 10001000b - db 10001000b - db 11111000b - db 10001000b - db 10001000b; H - db 11111000b - db 00100000b - db 00100000b - db 00100000b - db 11111000b; I - db 01111000b - db 00010000b - db 00010000b - db 10010000b - db 01100000b; J - db 10010000b - db 10100000b - db 11100000b - db 10010000b - db 10001000b; K - db 10000000b - db 10000000b - db 10000000b - db 10000000b - db 11111000b; L - db 11011000b - db 10101000b - db 10101000b - db 10101000b - db 10001000b; M - db 11001000b - db 10101000b - db 10101000b - db 10101000b - db 10011000b; N - db 01110000b - db 10001000b - db 10001000b - db 10001000b - db 01110000b; O - db 11110000b - db 10001000b - db 11110000b - db 10000000b - db 10000000b; P - db 01110000b - db 10001000b - db 10101000b - db 10010000b - db 01101000b; Q - db 11110000b - db 10001000b - db 11110000b - db 10010000b - db 10001000b; R - db 01111000b - db 10000000b - db 01110000b - db 00001000b - db 11110000b; S - db 11111000b - db 00100000b - db 00100000b - db 00100000b - db 00100000b; T - db 10001000b - db 10001000b - db 10001000b - db 10001000b - db 01110000b; U - db 10001000b - db 10001000b - db 01010000b - db 01010000b - db 00100000b; V - db 10001000b - db 10101000b - db 10101000b - db 10101000b - db 01010000b; W - db 10001000b - db 01010000b - db 00100000b - db 01010000b - db 10001000b; X - db 10001000b - db 01010000b - db 00100000b - db 00100000b - db 00100000b; Y - db 11111000b - db 00010000b - db 00100000b - db 01000000b - db 11111000b; Z - db 00000000b - db 00000000b - db 11111000b - db 00000000b - db 00000000b; - - db 00000000b - db 00000000b - db 00000000b - db 00000000b - db 11111000b; _ - db 01101000b - db 10010000b - db 00000000b - db 00000000b - db 00000000b; ~ - db 00000000b - db 00000000b - db 00000000b - db 00000000b - db 00100000b; . - db 00001000b - db 00010000b - db 00100000b - db 01000000b - db 10000000b; / - db 00010000b - db 00100000b - db 01000000b - db 00100000b - db 00010000b; < - db 01000000b - db 00100000b - db 00010000b - db 00100000b - db 01000000b; > - db 01110000b - db 01000000b - db 01000000b - db 01000000b - db 01110000b; [ - db 01110000b - db 00010000b - db 00010000b - db 00010000b - db 01110000b; ] - db 00000000b - db 00100000b - db 00000000b - db 00100000b - db 00000000b; : - db 01100000b - db 10011000b - db 01110000b - db 10011000b - db 01101000b; & - db 00100000b - db 00100000b - db 10101000b - db 01110000b - db 00100000b; arrow - db 01010000b - db 11111000b - db 01010000b - db 11111000b - db 01010000b; # - db 00000000b - db 11111000b - db 00000000b - db 11111000b - db 00000000b; = - db 01001000b - db 10010000b - db 00000000b - db 00000000b - db 00000000b; " - db 10000000b - db 01000000b - db 00100000b - db 00010000b - db 00001000b; \ (Screw you nassm) - db 10101000b - db 01110000b - db 11111000b - db 01110000b - db 10101000b; * - db 01110000b - db 10001000b - db 00110000b - db 00000000b - db 00100000b; ? - db 10001000b - db 00010000b - db 00100000b - db 01000000b - db 10001000b; % - db 00100000b - db 00100000b - db 11111000b - db 00100000b - db 00100000b; + - db 00000000b - db 00000000b - db 00000000b - db 00100000b - db 01000000b; , - db 00110000b - db 01000000b - db 01000000b - db 01000000b - db 00110000b; ( - db 01100000b - db 00010000b - db 00010000b - db 00010000b - db 01100000b; ) - db 01110000b - db 10011000b - db 10111000b - db 10000000b - db 01110000b; @ - db 00100000b - db 01000000b - db 00000000b - db 00000000b - db 00000000b; ' - db 00100000b - db 00100000b - db 00100000b - db 00000000b - db 00100000b; ! - db 01111000b - db 10100000b - db 01110000b - db 00101000b - db 11110000b; $ - db 00000000b - db 00100000b - db 00000000b - db 00100000b - db 01000000b; ; - db 01000000b - db 00100000b - db 00000000b - db 00000000b - db 00000000b; ` - db 00100000b - db 01010000b - db 00000000b - db 00000000b - db 00000000b; ^ - db 00110000b - db 01000000b - db 11000000b - db 01000000b - db 00110000b; { - db 01100000b - db 00010000b - db 00011000b - db 00010000b - db 01100000b; } - db 00100000b - db 00100000b - db 01110000b - db 01110000b - db 11111000b; Up - db 11111000b - db 01110000b - db 01110000b - db 00100000b - db 00100000b; Down - db 00001000b - db 00111000b - db 11111000b - db 00111000b - db 00001000b; Left - db 10000000b - db 11100000b - db 11111000b - db 11100000b - db 10000000b; Right - db 00100000b - db 01100000b - db 11111000b - db 01100000b - db 00100000b; Arrow Left - db 00111000b - db 00100000b - db 00110000b - db 00001000b - db 10110000b; .5 - db 11111100b - db 10000100b - db 11111100b - db 00000000b - db 00000000b; Maximize - db 00000000b - db 11111100b - db 00000000b - db 00000000b - db 00000000b; Minimize - db 11111000b - db 10001000b - db 10001000b - db 10001000b - db 11111000b; Maximize (Linux) - db 00000000b - db 00000000b - db 00100000b - db 01010000b - db 00100000b; shw fullstop 0x4E - db 01110000b - db 01000000b - db 01000000b - db 01000000b - db 00000000b; shw left bracket 0x4F - db 00000000b - db 00010000b - db 00010000b - db 00010000b - db 01110000b; shw right bracket 0x50 - db 00000000b - db 00000000b - db 00000000b - db 01000000b - db 00100000b; shw comma 0x51 - db 00000000b - db 00100000b - db 01110000b - db 00100000b - db 00000000b; shw mid-dot 0x52 - db 11111000b - db 00001000b - db 11110000b - db 00100000b - db 11000000b; shw wo 0x53 - db 00000000b - db 11111000b - db 01010000b - db 01100000b - db 01000000b; shw mini a 0x54 - db 00000000b - db 00010000b - db 00100000b - db 11100000b - db 00100000b; shw mini i 0x55 - db 00000000b - db 00100000b - db 11111000b - db 10001000b - db 00110000b; shw mini u 0x56 - db 00000000b - db 00000000b - db 11111000b - db 00100000b - db 11111000b; shw mini e 0x57 - db 00000000b - db 00010000b - db 11111000b - db 00110000b - db 11010000b; shw mini o 0x58 - db 00000000b - db 01000000b - db 11111000b - db 01010000b - db 01000000b; shw mini ya 0x59 - db 00000000b - db 00000000b - db 11110000b - db 00010000b - db 11111000b; shw mini yu 0x5A - db 00000000b - db 11111000b - db 00001000b - db 01111000b - db 11111000b; shw mini yo 0x5B - db 00000000b - db 10101000b - db 10101000b - db 00010000b - db 01100000b; shw mini tsu 0x5C - db 00000000b - db 10000000b - db 01111000b - db 00000000b - db 00000000b; shw prolong 0x5D - db 11111000b - db 00101000b - db 00110000b - db 00100000b - db 11000000b; shw a 0x5E - db 00001000b - db 00110000b - db 11100000b - db 00100000b - db 00100000b; shw i 0x5F - db 00100000b - db 11111000b - db 10001000b - db 00010000b - db 01100000b; shw u 0x60 - db 11111000b - db 00100000b - db 00100000b - db 00100000b - db 11111000b; shw e 0x61 - db 00010000b - db 11111000b - db 00110000b - db 01010000b - db 10010000b; shw o 0x62 - db 01000000b - db 11111000b - db 01001000b - db 01001000b - db 10011000b; shw ka 0x63 - db 00100000b - db 11111000b - db 00100000b - db 11111000b - db 00100000b; shw ki 0x64 - db 01000000b - db 01111000b - db 10001000b - db 00010000b - db 01100000b; shw ku 0x65 - db 01000000b - db 01111000b - db 10010000b - db 00010000b - db 01100000b; shw ke 0x66 ^^ - db 11111000b - db 00001000b - db 00001000b - db 00001000b - db 11111000b; shw ko 0x67 - db 01010000b - db 11111000b - db 01010000b - db 00010000b - db 01100000b; shw sa 0x68 - db 01000000b - db 10101000b - db 01001000b - db 00010000b - db 11100000b; shw shi 0x69 - db 11111000b - db 00001000b - db 00010000b - db 00110000b - db 11001000b; shw su 0x6A - db 01000000b - db 11111000b - db 01010000b - db 01000000b - db 00111000b; shw se 0x6B - db 10001000b - db 01001000b - db 00001000b - db 00010000b - db 01100000b; shw so 0x6C - db 01000000b - db 01111000b - db 11001000b - db 00110000b - db 01100000b; shw ta 0x6D - db 11111000b - db 00100000b - db 11111000b - db 00100000b - db 01000000b; shw chi 0x6E - db 10101000b - db 10101000b - db 00001000b - db 00010000b - db 01100000b; shw tsu 0x6F - db 11111000b - db 00000000b - db 11111000b - db 00100000b - db 11000000b; shw te 0x70 - db 01000000b - db 01000000b - db 01100000b - db 01010000b - db 01000000b; shw to 0x71 - db 00100000b - db 11111000b - db 00100000b - db 00100000b - db 01000000b; shw na 0x72 - db 11110000b - db 00000000b - db 00000000b - db 00000000b - db 11111000b; shw ni 0x73 - db 11111000b - db 00001000b - db 00101000b - db 00010000b - db 011010000b; shw nu 0x74 - db 00100000b - db 11111000b - db 00001000b - db 01110000b - db 10101000b; shw ne 0x75 - db 00001000b - db 00001000b - db 00001000b - db 00010000b - db 01100000b; shw no 0x76 - db 01010000b - db 01010000b - db 01010000b - db 10001000b - db 10001000b; shw ha 0x77 - db 10000000b - db 10011000b - db 11100000b - db 10000000b - db 01111000b; shw hi 0x78 - db 11111000b - db 00001000b - db 00001000b - db 00010000b - db 01100000b; shw hu 0x79 - db 01000000b - db 10100000b - db 10010000b - db 00001000b - db 00000000b; shw he 0x7A - db 00100000b - db 11111000b - db 01110000b - db 10101000b - db 00100000b; shw ho 0x7B - db 11111000b - db 00001000b - db 10010000b - db 01100000b - db 00100000b; shw ma 0x7C - db 11111000b - db 00000000b - db 11111000b - db 00000000b - db 11111000b; shw mi 0x7D - db 00100000b - db 01000000b - db 01000000b - db 10010000b - db 11111000b; shw mu 0x7E - db 00001000b - db 01001000b - db 00110000b - db 00110000b - db 11001000b; shw me 0x7F - db 11111000b - db 00100000b - db 11111000b - db 00100000b - db 00111000b; shw mo 0x80 - db 01000000b - db 11111100b - db 01001000b - db 00100000b - db 0010000b; shw ya 0x81 - db 11110000b - db 00010000b - db 00010000b - db 00010000b - db 11111000b; shw yu 0x82 - db 11111000b - db 00001000b - db 11111000b - db 00001000b - db 11111000b; shw yo 0x83 - db 11111000b - db 00000000b - db 11111000b - db 00010000b - db 01100000b; shw ra 0x84 - db 10001000b - db 10001000b - db 10001000b - db 00010000b - db 01100000b; shw ri 0x85 - db 01100000b - db 01100000b - db 01101000b - db 01101000b - db 10110000b; shw ru 0x86 - db 10000000b - db 10000000b - db 10001000b - db 10001000b - db 11110000b; shw re 0x87 - db 11111000b - db 10001000b - db 10001000b - db 10001000b - db 11111000b; shw ro 0x88 - db 11111000b - db 10001000b - db 00001000b - db 00010000b - db 01100000b; shw wa 0x89 - db 10000000b - db 01001000b - db 00001000b - db 00010000b - db 11100000b; shw n 0x8A - db 10100000b - db 10100000b - db 00000000b - db 00000000b - db 00000000b; shw voiced 0x8B - db 01000000b - db 10100000b - db 01000000b - db 00000000b - db 00000000b; shw halfvoiced 0x8C + db 0,0,0,0,0; empty space + db 01110000b + db 10011000b + db 10101000b + db 11001000b + db 01110000b; 0 + db 00100000b + db 01100000b + db 00100000b + db 00100000b + db 01110000b; 1 + db 01110000b + db 10001000b + db 00110000b + db 01000000b + db 11111000b; 2 + db 01110000b + db 10001000b + db 00110000b + db 10001000b + db 01110000b; 3 + db 01010000b + db 10010000b + db 11111000b + db 00010000b + db 00010000b; 4 + db 11111000b + db 10000000b + db 11110000b + db 00001000b + db 11110000b; 5 + db 01110000b + db 10000000b + db 11110000b + db 10001000b + db 01110000b; 6 + db 11111000b + db 00001000b + db 00010000b + db 00010000b + db 00010000b; 7 + db 01110000b + db 10001000b + db 01110000b + db 10001000b + db 01110000b; 8 + db 01110000b + db 10001000b + db 01111000b + db 00001000b + db 01110000b; 9 + db 01110000b + db 10001000b + db 11111000b + db 10001000b + db 10001000b; A + db 11110000b + db 10001000b + db 11110000b + db 10001000b + db 11110000b; B + db 01110000b + db 10001000b + db 10000000b + db 10001000b + db 01110000b; C + db 11110000b + db 10001000b + db 10001000b + db 10001000b + db 11110000b; D + db 11111000b + db 10000000b + db 11110000b + db 10000000b + db 11111000b; E + db 11111000b + db 10000000b + db 11110000b + db 10000000b + db 10000000b; F + db 01111000b + db 10000000b + db 10011000b + db 10001000b + db 01110000b; G + db 10001000b + db 10001000b + db 11111000b + db 10001000b + db 10001000b; H + db 11111000b + db 00100000b + db 00100000b + db 00100000b + db 11111000b; I + db 01111000b + db 00010000b + db 00010000b + db 10010000b + db 01100000b; J + db 10010000b + db 10100000b + db 11100000b + db 10010000b + db 10001000b; K + db 10000000b + db 10000000b + db 10000000b + db 10000000b + db 11111000b; L + db 11011000b + db 10101000b + db 10101000b + db 10101000b + db 10001000b; M + db 11001000b + db 10101000b + db 10101000b + db 10101000b + db 10011000b; N + db 01110000b + db 10001000b + db 10001000b + db 10001000b + db 01110000b; O + db 11110000b + db 10001000b + db 11110000b + db 10000000b + db 10000000b; P + db 01110000b + db 10001000b + db 10101000b + db 10010000b + db 01101000b; Q + db 11110000b + db 10001000b + db 11110000b + db 10010000b + db 10001000b; R + db 01111000b + db 10000000b + db 01110000b + db 00001000b + db 11110000b; S + db 11111000b + db 00100000b + db 00100000b + db 00100000b + db 00100000b; T + db 10001000b + db 10001000b + db 10001000b + db 10001000b + db 01110000b; U + db 10001000b + db 10001000b + db 01010000b + db 01010000b + db 00100000b; V + db 10001000b + db 10101000b + db 10101000b + db 10101000b + db 01010000b; W + db 10001000b + db 01010000b + db 00100000b + db 01010000b + db 10001000b; X + db 10001000b + db 01010000b + db 00100000b + db 00100000b + db 00100000b; Y + db 11111000b + db 00010000b + db 00100000b + db 01000000b + db 11111000b; Z + db 00000000b + db 00000000b + db 11111000b + db 00000000b + db 00000000b; - + db 00000000b + db 00000000b + db 00000000b + db 00000000b + db 11111000b; _ + db 01101000b + db 10010000b + db 00000000b + db 00000000b + db 00000000b; ~ + db 00000000b + db 00000000b + db 00000000b + db 00000000b + db 00100000b; . + db 00001000b + db 00010000b + db 00100000b + db 01000000b + db 10000000b; / + db 00010000b + db 00100000b + db 01000000b + db 00100000b + db 00010000b; < + db 01000000b + db 00100000b + db 00010000b + db 00100000b + db 01000000b; > + db 01110000b + db 01000000b + db 01000000b + db 01000000b + db 01110000b; [ + db 01110000b + db 00010000b + db 00010000b + db 00010000b + db 01110000b; ] + db 00000000b + db 00100000b + db 00000000b + db 00100000b + db 00000000b; : + db 01100000b + db 10011000b + db 01110000b + db 10011000b + db 01101000b; & + db 00100000b + db 00100000b + db 10101000b + db 01110000b + db 00100000b; arrow + db 01010000b + db 11111000b + db 01010000b + db 11111000b + db 01010000b; # + db 00000000b + db 11111000b + db 00000000b + db 11111000b + db 00000000b; = + db 01001000b + db 10010000b + db 00000000b + db 00000000b + db 00000000b; " + db 10000000b + db 01000000b + db 00100000b + db 00010000b + db 00001000b; \ (Screw you nassm) + db 10101000b + db 01110000b + db 11111000b + db 01110000b + db 10101000b; * + db 01110000b + db 10001000b + db 00110000b + db 00000000b + db 00100000b; ? + db 10001000b + db 00010000b + db 00100000b + db 01000000b + db 10001000b; % + db 00100000b + db 00100000b + db 11111000b + db 00100000b + db 00100000b; + + db 00000000b + db 00000000b + db 00000000b + db 00100000b + db 01000000b; , + db 00110000b + db 01000000b + db 01000000b + db 01000000b + db 00110000b; ( + db 01100000b + db 00010000b + db 00010000b + db 00010000b + db 01100000b; ) + db 01110000b + db 10011000b + db 10111000b + db 10000000b + db 01110000b; @ + db 00100000b + db 01000000b + db 00000000b + db 00000000b + db 00000000b; ' + db 00100000b + db 00100000b + db 00100000b + db 00000000b + db 00100000b; ! + db 01111000b + db 10100000b + db 01110000b + db 00101000b + db 11110000b; $ + db 00000000b + db 00100000b + db 00000000b + db 00100000b + db 01000000b; ; + db 01000000b + db 00100000b + db 00000000b + db 00000000b + db 00000000b; ` + db 00100000b + db 01010000b + db 00000000b + db 00000000b + db 00000000b; ^ + db 00110000b + db 01000000b + db 11000000b + db 01000000b + db 00110000b; { + db 01100000b + db 00010000b + db 00011000b + db 00010000b + db 01100000b; } + db 00100000b + db 00100000b + db 01110000b + db 01110000b + db 11111000b; Up + db 11111000b + db 01110000b + db 01110000b + db 00100000b + db 00100000b; Down + db 00001000b + db 00111000b + db 11111000b + db 00111000b + db 00001000b; Left + db 10000000b + db 11100000b + db 11111000b + db 11100000b + db 10000000b; Right + db 00100000b + db 01100000b + db 11111000b + db 01100000b + db 00100000b; Arrow Left + db 00111000b + db 00100000b + db 00110000b + db 00001000b + db 10110000b; .5 + db 11111100b + db 10000100b + db 11111100b + db 00000000b + db 00000000b; Maximize + db 00000000b + db 11111100b + db 00000000b + db 00000000b + db 00000000b; Minimize + db 11111000b + db 10001000b + db 10001000b + db 10001000b + db 11111000b; Maximize (Linux) + db 00000000b + db 00000000b + db 00100000b + db 01010000b + db 00100000b; sjis halfwidth (shw) fullstop 0x4E + db 01110000b + db 01000000b + db 01000000b + db 01000000b + db 00000000b; shw left bracket 0x4F + db 00000000b + db 00010000b + db 00010000b + db 00010000b + db 01110000b; shw right bracket 0x50 + db 00000000b + db 00000000b + db 00000000b + db 01000000b + db 00100000b; shw comma 0x51 + db 00000000b + db 00100000b + db 01110000b + db 00100000b + db 00000000b; shw mid-dot 0x52 + db 11111000b + db 00001000b + db 11110000b + db 00100000b + db 11000000b; shw wo 0x53 + db 00000000b + db 11111000b + db 01010000b + db 01100000b + db 01000000b; shw mini a 0x54 + db 00000000b + db 00010000b + db 00100000b + db 11100000b + db 00100000b; shw mini i 0x55 + db 00000000b + db 00100000b + db 11111000b + db 10001000b + db 00110000b; shw mini u 0x56 + db 00000000b + db 00000000b + db 11111000b + db 00100000b + db 11111000b; shw mini e 0x57 + db 00000000b + db 00010000b + db 11111000b + db 00110000b + db 11010000b; shw mini o 0x58 + db 00000000b + db 01000000b + db 11111000b + db 01010000b + db 01000000b; shw mini ya 0x59 + db 00000000b + db 00000000b + db 11110000b + db 00010000b + db 11111000b; shw mini yu 0x5A + db 00000000b + db 11111000b + db 00001000b + db 01111000b + db 11111000b; shw mini yo 0x5B + db 00000000b + db 10101000b + db 10101000b + db 00010000b + db 01100000b; shw mini tsu 0x5C + db 00000000b + db 10000000b + db 01111000b + db 00000000b + db 00000000b; shw prolong 0x5D + db 11111000b + db 00101000b + db 00110000b + db 00100000b + db 11000000b; shw a 0x5E + db 00001000b + db 00110000b + db 11100000b + db 00100000b + db 00100000b; shw i 0x5F + db 00100000b + db 11111000b + db 10001000b + db 00010000b + db 01100000b; shw u 0x60 + db 11111000b + db 00100000b + db 00100000b + db 00100000b + db 11111000b; shw e 0x61 + db 00010000b + db 11111000b + db 00110000b + db 01010000b + db 10010000b; shw o 0x62 + db 01000000b + db 11111000b + db 01001000b + db 01001000b + db 10011000b; shw ka 0x63 + db 00100000b + db 11111000b + db 00100000b + db 11111000b + db 00100000b; shw ki 0x64 + db 01000000b + db 01111000b + db 10001000b + db 00010000b + db 01100000b; shw ku 0x65 + db 01000000b + db 01111000b + db 10010000b + db 00010000b + db 01100000b; shw ke 0x66 ^^ + db 11111000b + db 00001000b + db 00001000b + db 00001000b + db 11111000b; shw ko 0x67 + db 01010000b + db 11111000b + db 01010000b + db 00010000b + db 01100000b; shw sa 0x68 + db 01000000b + db 10101000b + db 01001000b + db 00010000b + db 11100000b; shw shi 0x69 + db 11111000b + db 00001000b + db 00010000b + db 00110000b + db 11001000b; shw su 0x6A + db 01000000b + db 11111000b + db 01010000b + db 01000000b + db 00111000b; shw se 0x6B + db 10001000b + db 01001000b + db 00001000b + db 00010000b + db 01100000b; shw so 0x6C + db 01000000b + db 01111000b + db 11001000b + db 00110000b + db 01100000b; shw ta 0x6D + db 11111000b + db 00100000b + db 11111000b + db 00100000b + db 01000000b; shw chi 0x6E + db 10101000b + db 10101000b + db 00001000b + db 00010000b + db 01100000b; shw tsu 0x6F + db 11111000b + db 00000000b + db 11111000b + db 00100000b + db 11000000b; shw te 0x70 + db 01000000b + db 01000000b + db 01100000b + db 01010000b + db 01000000b; shw to 0x71 + db 00100000b + db 11111000b + db 00100000b + db 00100000b + db 01000000b; shw na 0x72 + db 11110000b + db 00000000b + db 00000000b + db 00000000b + db 11111000b; shw ni 0x73 + db 11111000b + db 00001000b + db 00101000b + db 00010000b + db 011010000b; shw nu 0x74 + db 00100000b + db 11111000b + db 00001000b + db 01110000b + db 10101000b; shw ne 0x75 + db 00001000b + db 00001000b + db 00001000b + db 00010000b + db 01100000b; shw no 0x76 + db 01010000b + db 01010000b + db 01010000b + db 10001000b + db 10001000b; shw ha 0x77 + db 10000000b + db 10011000b + db 11100000b + db 10000000b + db 01111000b; shw hi 0x78 + db 11111000b + db 00001000b + db 00001000b + db 00010000b + db 01100000b; shw hu 0x79 + db 01000000b + db 10100000b + db 10010000b + db 00001000b + db 00000000b; shw he 0x7A + db 00100000b + db 11111000b + db 01110000b + db 10101000b + db 00100000b; shw ho 0x7B + db 11111000b + db 00001000b + db 10010000b + db 01100000b + db 00100000b; shw ma 0x7C + db 11111000b + db 00000000b + db 11111000b + db 00000000b + db 11111000b; shw mi 0x7D + db 00100000b + db 01000000b + db 01000000b + db 10010000b + db 11111000b; shw mu 0x7E + db 00001000b + db 01001000b + db 00110000b + db 00110000b + db 11001000b; shw me 0x7F + db 11111000b + db 00100000b + db 11111000b + db 00100000b + db 00111000b; shw mo 0x80 + db 01000000b + db 11111100b + db 01001000b + db 00100000b + db 0010000b; shw ya 0x81 + db 11110000b + db 00010000b + db 00010000b + db 00010000b + db 11111000b; shw yu 0x82 + db 11111000b + db 00001000b + db 11111000b + db 00001000b + db 11111000b; shw yo 0x83 + db 11111000b + db 00000000b + db 11111000b + db 00010000b + db 01100000b; shw ra 0x84 + db 10001000b + db 10001000b + db 10001000b + db 00010000b + db 01100000b; shw ri 0x85 + db 01100000b + db 01100000b + db 01101000b + db 01101000b + db 10110000b; shw ru 0x86 + db 10000000b + db 10000000b + db 10001000b + db 10001000b + db 11110000b; shw re 0x87 + db 11111000b + db 10001000b + db 10001000b + db 10001000b + db 11111000b; shw ro 0x88 + db 11111000b + db 10001000b + db 00001000b + db 00010000b + db 01100000b; shw wa 0x89 + db 10000000b + db 01001000b + db 00001000b + db 00010000b + db 11100000b; shw n 0x8A + db 10100000b + db 10100000b + db 00000000b + db 00000000b + db 00000000b; shw voiced 0x8B + db 01000000b + db 10100000b + db 01000000b + db 00000000b + db 00000000b; shw halfvoiced 0x8C ; 189 .. 220 GUIIconDataClose: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,216,216,216,216,216,216,216,0 ,0 - db 214,212,202,212,212,212,202,212,210,0 - db 214,212,212,200,212,200,212,212,210,202 - db 214,212,212,212,198,212,212,212,210,202 - db 214,212,212,196,212,196,212,212,210,200 - db 214,212,194,212,212,212,194,212,210,200 - db 0 ,208,208,208,208,208,208,208,198,198 - db 0 ,0 ,198,198,198,198,198,198,198,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,216,216,216,216,216,216,216,0 ,0 + db 214,212,202,212,212,212,202,212,210,0 + db 214,212,212,200,212,200,212,212,210,202 + db 214,212,212,212,198,212,212,212,210,202 + db 214,212,212,196,212,196,212,212,210,200 + db 214,212,194,212,212,212,194,212,210,200 + db 0 ,208,208,208,208,208,208,208,198,198 + db 0 ,0 ,198,198,198,198,198,198,198,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 GUIIconDataButtonHole: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,207,205,207,0 ,0 ,0 ,0 - db 0 ,0 ,207,203,202,203,207,0 ,0 ,0 - db 0 ,207,203,200,198,200,203,207,0 ,0 - db 0 ,207,202,198,197,198,202,207,0 ,0 - db 0 ,207,203,200,198,200,203,207,0 ,0 - db 0 ,0 ,207,203,202,203,207,0 ,0 ,0 - db 0 ,0 ,0 ,207,205,207,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,207,205,207,0 ,0 ,0 ,0 + db 0 ,0 ,207,203,202,203,207,0 ,0 ,0 + db 0 ,207,203,200,198,200,203,207,0 ,0 + db 0 ,207,202,198,197,198,202,207,0 ,0 + db 0 ,207,203,200,198,200,203,207,0 ,0 + db 0 ,0 ,207,203,202,203,207,0 ,0 ,0 + db 0 ,0 ,0 ,207,205,207,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 GUIIconDataButtonFill: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,207,209,207,0 ,0 ,0 ,0 - db 0 ,0 ,207,211,212,211,207,0 ,0 ,0 - db 0 ,207,211,214,216,214,211,207,0 ,0 - db 0 ,207,212,216,217,216,212,207,0 ,0 - db 0 ,207,211,214,216,214,211,207,0 ,0 - db 0 ,0 ,207,211,212,211,207,0 ,0 ,0 - db 0 ,0 ,0 ,207,209,207,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,207,209,207,0 ,0 ,0 ,0 + db 0 ,0 ,207,211,212,211,207,0 ,0 ,0 + db 0 ,207,211,214,216,214,211,207,0 ,0 + db 0 ,207,212,216,217,216,212,207,0 ,0 + db 0 ,207,211,214,216,214,211,207,0 ,0 + db 0 ,0 ,207,211,212,211,207,0 ,0 ,0 + db 0 ,0 ,0 ,207,209,207,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 GUIIconDataSlideBar: - db 0 ,0 ,0 ,0 ,216,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,212,216,220,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,212,216,220,202,0 ,0 ,0 - db 0 ,0 ,212,212,216,218,220,0 ,0 ,0 - db 0 ,0 ,212,214,216,218,220,202,0 ,0 - db 0 ,0 ,212,214,216,218,220,202,0 ,0 - db 0 ,0 ,0 ,212,216,220,202,202,0 ,0 - db 0 ,0 ,0 ,212,216,220,202,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,216,202,202,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,202,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,216,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,212,216,220,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,212,216,220,202,0 ,0 ,0 + db 0 ,0 ,212,212,216,218,220,0 ,0 ,0 + db 0 ,0 ,212,214,216,218,220,202,0 ,0 + db 0 ,0 ,212,214,216,218,220,202,0 ,0 + db 0 ,0 ,0 ,212,216,220,202,202,0 ,0 + db 0 ,0 ,0 ,212,216,220,202,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,216,202,202,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,202,0 ,0 ,0 ,0 GUIIconDataCheckBoxUC: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,220,219,218,217,216,215,0 ,0 ,0 - db 0 ,219,218,217,216,215,214,202,0 ,0 - db 0 ,218,217,216,215,214,213,202,0 ,0 - db 0 ,217,216,215,214,213,212,202,0 ,0 - db 0 ,216,215,214,213,212,211,202,0 ,0 - db 0 ,215,214,213,212,211,210,202,0 ,0 - db 0 ,0 ,202,202,202,202,202,202,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,220,219,218,217,216,215,0 ,0 ,0 + db 0 ,219,218,217,216,215,214,202,0 ,0 + db 0 ,218,217,216,215,214,213,202,0 ,0 + db 0 ,217,216,215,214,213,212,202,0 ,0 + db 0 ,216,215,214,213,212,211,202,0 ,0 + db 0 ,215,214,213,212,211,210,202,0 ,0 + db 0 ,0 ,202,202,202,202,202,202,0 ,0 GUIIconDataCheckBoxC: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0 ,0 - db 0 ,220,219,218,217,165,215,0 ,0 ,0 - db 0 ,165,165,217,165,165,214,202,0 ,0 - db 0 ,218,165,216,165,214,213,202,0 ,0 - db 0 ,217,165,165,165,213,212,202,0 ,0 - db 0 ,216,215,165,213,212,211,202,0 ,0 - db 0 ,215,214,165,212,211,210,202,0 ,0 - db 0 ,0 ,202,202,202,202,202,202,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,165,0 ,0 ,0 + db 0 ,220,219,218,217,165,215,0 ,0 ,0 + db 0 ,165,165,217,165,165,214,202,0 ,0 + db 0 ,218,165,216,165,214,213,202,0 ,0 + db 0 ,217,165,165,165,213,212,202,0 ,0 + db 0 ,216,215,165,213,212,211,202,0 ,0 + db 0 ,215,214,165,212,211,210,202,0 ,0 + db 0 ,0 ,202,202,202,202,202,202,0 ,0 GUIIconDataCheckBoxX: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,165,0 ,0 ,0 ,0 ,0 ,165,0 ,0 - db 0 ,220,165,218,217,216,165,0 ,0 ,0 - db 0 ,219,218,165,216,165,214,202,0 ,0 - db 0 ,218,217,216,165,214,213,202,0 ,0 - db 0 ,217,216,165,214,165,212,202,0 ,0 - db 0 ,216,165,214,213,212,165,202,0 ,0 - db 0 ,165,214,213,212,211,210,165,0 ,0 - db 0 ,0 ,202,202,202,202,202,202,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,165,0 ,0 ,0 ,0 ,0 ,165,0 ,0 + db 0 ,220,165,218,217,216,165,0 ,0 ,0 + db 0 ,219,218,165,216,165,214,202,0 ,0 + db 0 ,218,217,216,165,214,213,202,0 ,0 + db 0 ,217,216,165,214,165,212,202,0 ,0 + db 0 ,216,165,214,213,212,165,202,0 ,0 + db 0 ,165,214,213,212,211,210,165,0 ,0 + db 0 ,0 ,202,202,202,202,202,202,0 ,0 GUIIconDataUpArrow: - db 201,209,209,209,209,209,209,200,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 207,205,201,202,203,202,205,203,0 ,0 - db 207,200,205,202,203,205,201,203,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 199,201,201,201,201,201,201,198,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 201,209,209,209,209,209,209,200,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 207,205,201,202,203,202,205,203,0 ,0 + db 207,200,205,202,203,205,201,203,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 199,201,201,201,201,201,201,198,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 GUIIconDataDownArrow: - db 201,209,209,209,209,209,209,200,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 207,200,205,202,203,205,201,203,0 ,0 - db 207,205,201,202,203,202,205,203,0 ,0 - db 207,205,205,202,203,205,205,203,0 ,0 - db 199,201,201,201,201,201,201,198,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 201,209,209,209,209,209,209,200,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 207,200,205,202,203,205,201,203,0 ,0 + db 207,205,201,202,203,202,205,203,0 ,0 + db 207,205,205,202,203,205,205,203,0 ,0 + db 199,201,201,201,201,201,201,198,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 NEWSYM SnowData dw 161,251,115,211,249,87,128,101,232,176,51,180,108,193,224,112,254,159,102,238 diff --git a/zsnes/src/gui/guikeys.inc b/zsnes/src/gui/guikeys.inc index 5aeb0007..d6c56376 100644 --- a/zsnes/src/gui/guikeys.inc +++ b/zsnes/src/gui/guikeys.inc @@ -21,118 +21,118 @@ ; GUI Keyboard Routines %macro GUIqcheckkeys 1 - cmp byte[pressed+%1],1 - jne %%skip - mov dword[GUIfirstkey],1 + cmp byte[pressed+%1],1 + jne %%skip + mov dword[GUIfirstkey],1 %%skip %endmacro %macro GUIqcheckkeys2 2 - mov eax,%1 - cmp byte[pressed+eax],1 - jne %%skip - cmp byte[GUIJoyPadnk+%2],2 - je %%skip - mov dword[GUIfirstkey],1 + mov eax,%1 + cmp byte[pressed+eax],1 + jne %%skip + cmp byte[GUIJoyPadnk+%2],2 + je %%skip + mov dword[GUIfirstkey],1 %%skip %endmacro %macro GUIgetprkeys 2 - cmp byte[pressed+%1],1 - je %%okay - cmp byte[pressed+%1],2 - jne %%nopr - cmp dword[GUIfirstkey],1 - je %%nopr - cmp dword[GUIlastkey],%1 - jne %%nopr - jmp %%skipnext + cmp byte[pressed+%1],1 + je %%okay + cmp byte[pressed+%1],2 + jne %%nopr + cmp dword[GUIfirstkey],1 + je %%nopr + cmp dword[GUIlastkey],%1 + jne %%nopr + jmp %%skipnext %%okay - mov dword[GUInextkeydelay],10 + mov dword[GUInextkeydelay],10 %%skipnext - mov dword[GUIlastkey],%1 - mov byte[pressed+%1],2 - cmp dword[GUIkeydelay],0 - jne near .done - mov eax,[GUInextkeydelay] - mov [GUIkeydelay],eax - mov dword[GUInextkeydelay],2 - mov eax,%2 - jmp .done + mov dword[GUIlastkey],%1 + mov byte[pressed+%1],2 + cmp dword[GUIkeydelay],0 + jne near .done + mov eax,[GUInextkeydelay] + mov [GUIkeydelay],eax + mov dword[GUInextkeydelay],2 + mov eax,%2 + jmp .done %%nopr %endmacro %macro GUIgetprkeysb 2 - cmp byte[pressed+%1],1 - jne %%nopr - cmp byte[GUIescpress],1 - je %%nopr2 - mov byte[pressed+%1],2 - mov eax,%2 - jmp .done + cmp byte[pressed+%1],1 + jne %%nopr + cmp byte[GUIescpress],1 + je %%nopr2 + mov byte[pressed+%1],2 + mov eax,%2 + jmp .done %%nopr - cmp byte[pressed+%1],0 - jne %%nopr2 - mov byte[GUIescpress],0 + cmp byte[pressed+%1],0 + jne %%nopr2 + mov byte[GUIescpress],0 %%nopr2 %endmacro %macro GUIgetprkeys2 3 - mov ebx,%1 - cmp byte[pressed+ebx],0 - jne %%pressed - mov byte[GUIJoyPadnk+%3],0 - jmp %%nopr + mov ebx,%1 + cmp byte[pressed+ebx],0 + jne %%pressed + mov byte[GUIJoyPadnk+%3],0 + jmp %%nopr %%pressed - cmp byte[GUIJoyPadnk+%3],2 - je %%secondpress - cmp byte[pressed+ebx],1 - je %%okay + cmp byte[GUIJoyPadnk+%3],2 + je %%secondpress + cmp byte[pressed+ebx],1 + je %%okay %%secondpress - cmp dword[GUIfirstkey],1 - je %%nopr - cmp dword[GUIlastkey],ebx - jne %%nopr - jmp %%skipnext + cmp dword[GUIfirstkey],1 + je %%nopr + cmp dword[GUIlastkey],ebx + jne %%nopr + jmp %%skipnext %%okay - mov dword[GUInextkeydelay],10 + mov dword[GUInextkeydelay],10 %%skipnext - mov [GUIlastkey],ebx - mov byte[GUIJoyPadnk+%3],2 - cmp dword[GUIkeydelay],0 - jne near .done - mov eax,[GUInextkeydelay] - mov [GUIkeydelay],eax - mov byte[GUIDelayB],5 - mov dword[GUInextkeydelay],2 - mov eax,%2 - jmp .done + mov [GUIlastkey],ebx + mov byte[GUIJoyPadnk+%3],2 + cmp dword[GUIkeydelay],0 + jne near .done + mov eax,[GUInextkeydelay] + mov [GUIkeydelay],eax + mov byte[GUIDelayB],5 + mov dword[GUInextkeydelay],2 + mov eax,%2 + jmp .done %%nopr %endmacro %macro GUIkeystoggleoptn 2 - cmp %1,%2 - jne %%set - xor %1,%2 - jmp %%clear + cmp %1,%2 + jne %%set + xor %1,%2 + jmp %%clear %%set - mov %1,%2 + mov %1,%2 %%clear - ret + ret %%noclick %endmacro %macro GUIKeyCheckbox 2 - cmp dh,%2 - jne %%nohotkey - xor byte[%1],1 + cmp dh,%2 + jne %%nohotkey + xor byte[%1],1 %%nohotkey %endmacro %macro GUIKeyButtonHole 3 - cmp dh,%3 - jne %%nohotkey - mov byte[%1],%2 + cmp dh,%3 + jne %%nohotkey + mov byte[%1],%2 %%nohotkey %endmacro @@ -149,1280 +149,1311 @@ UseExtKey resb 1 SECTION .text GUIgetcurrentinput: - mov byte[UseExtKey],0 - xor ch,ch - xor cl,cl + mov byte[UseExtKey],0 + xor ch,ch + xor cl,cl .getnextkey - call Check_Key - or al,al - jz .nokeyd - call Get_Key - cmp cl,0 - jne .nostorekey - mov ch,al + call Check_Key + or al,al + jz .nokeyd + call Get_Key + cmp cl,0 + jne .nostorekey + mov ch,al .nostorekey - xor cl,cl - cmp al,0 - jne .noextkey - call Get_Key - mov [UseExtKey],al - xor al,al - mov ch,al - mov cl,1 + xor cl,cl + cmp al,0 + jne .noextkey + call Get_Key + mov [UseExtKey],al + xor al,al + mov ch,al + mov cl,1 .noextkey ; jmp .getnextkey .nokeyd - mov dh,ch - mov byte[GUIDelayB],0 - ; Convert pressed to keys - mov dword[GUIfirstkey],0 + mov dh,ch + mov byte[GUIDelayB],0 + ; Convert pressed to keys + mov dword[GUIfirstkey],0 %ifdef __UNIXSDL___ - GUIqcheckkeys 90 ; UP - GUIqcheckkeys 96 ; DOWN - GUIqcheckkeys 92 ; LEFT - GUIqcheckkeys 94 ; RIGHT - GUIqcheckkeys 89 ; HOME - GUIqcheckkeys 91 ; PGUP - GUIqcheckkeys 95 ; END - GUIqcheckkeys 97 ; PGDOWN + GUIqcheckkeys 90 ; UP + GUIqcheckkeys 96 ; DOWN + GUIqcheckkeys 92 ; LEFT + GUIqcheckkeys 94 ; RIGHT + GUIqcheckkeys 89 ; HOME + GUIqcheckkeys 91 ; PGUP + GUIqcheckkeys 95 ; END + GUIqcheckkeys 97 ; PGDOWN %endif - GUIqcheckkeys 72 ; NUMPAD STUFF - GUIqcheckkeys 80 - GUIqcheckkeys 75 - GUIqcheckkeys 77 - GUIqcheckkeys 73 - GUIqcheckkeys 81 - GUIqcheckkeys 71 - GUIqcheckkeys 79 - GUIqcheckkeys 1 - GUIqcheckkeys 1Ch + GUIqcheckkeys 72 ; NUMPAD STUFF + GUIqcheckkeys 80 + GUIqcheckkeys 75 + GUIqcheckkeys 77 + GUIqcheckkeys 73 + GUIqcheckkeys 81 + GUIqcheckkeys 71 + GUIqcheckkeys 79 + GUIqcheckkeys 1 + GUIqcheckkeys 1Ch %ifndef __MSDOS__ - GUIqcheckkeys 0C8h - GUIqcheckkeys 0D0h - GUIqcheckkeys 0CBh - GUIqcheckkeys 0CDh - GUIqcheckkeys 0C9h - GUIqcheckkeys 0D1h - GUIqcheckkeys 0C7h - GUIqcheckkeys 0CFh - GUIqcheckkeys 09Ch + GUIqcheckkeys 0C8h + GUIqcheckkeys 0D0h + GUIqcheckkeys 0CBh + GUIqcheckkeys 0CDh + GUIqcheckkeys 0C9h + GUIqcheckkeys 0D1h + GUIqcheckkeys 0C7h + GUIqcheckkeys 0CFh + GUIqcheckkeys 09Ch %endif .notwinport - cmp byte[JoyPad1Move],0 - je near .nopad1 - push edx - call JoyRead - pop edx - GUIqcheckkeys2 [pl1upk],0 - GUIqcheckkeys2 [pl1downk],1 - GUIqcheckkeys2 [pl1leftk],2 - GUIqcheckkeys2 [pl1rightk],3 - GUIqcheckkeys2 [pl1Lk],4 - GUIqcheckkeys2 [pl1Rk],5 - GUIqcheckkeys2 [pl1Bk],6 - GUIqcheckkeys2 [pl1Ak],7 + cmp byte[JoyPad1Move],0 + je near .nopad1 + push edx + call JoyRead + pop edx + GUIqcheckkeys2 [pl1upk],0 + GUIqcheckkeys2 [pl1downk],1 + GUIqcheckkeys2 [pl1leftk],2 + GUIqcheckkeys2 [pl1rightk],3 + GUIqcheckkeys2 [pl1Lk],4 + GUIqcheckkeys2 [pl1Rk],5 + GUIqcheckkeys2 [pl1Bk],6 + GUIqcheckkeys2 [pl1Ak],7 .nopad1 - xor al,al + xor al,al %ifdef __UNIXSDL__ - GUIgetprkeys 90,90 ; UP - GUIgetprkeys 96,96 ; DOWN - GUIgetprkeys 92,92 ; LEFT - GUIgetprkeys 94,94 ; RIGHT - GUIgetprkeys 89,89 ; HOME - GUIgetprkeys 91,91 ; PGUP - GUIgetprkeys 95,95 ; END - GUIgetprkeys 97,97 ; PGDOWN + GUIgetprkeys 90,90 ; UP + GUIgetprkeys 96,96 ; DOWN + GUIgetprkeys 92,92 ; LEFT + GUIgetprkeys 94,94 ; RIGHT + GUIgetprkeys 89,89 ; HOME + GUIgetprkeys 91,91 ; PGUP + GUIgetprkeys 95,95 ; END + GUIgetprkeys 97,97 ; PGDOWN - GUIgetprkeys 72,72 ; KP8 - GUIgetprkeys 80,80 ; KP2 - GUIgetprkeys 75,75 ; KP4 - GUIgetprkeys 77,77 ; KP6 - GUIgetprkeys 71,71 ; KP7 - GUIgetprkeys 79,79 ; KP9 - GUIgetprkeys 81,81 ; KP1 - GUIgetprkeys 73,73 ; KP3 + GUIgetprkeys 72,72 ; KP8 + GUIgetprkeys 80,80 ; KP2 + GUIgetprkeys 75,75 ; KP4 + GUIgetprkeys 77,77 ; KP6 + GUIgetprkeys 71,71 ; KP7 + GUIgetprkeys 79,79 ; KP9 + GUIgetprkeys 81,81 ; KP1 + GUIgetprkeys 73,73 ; KP3 %else ; GUIgetprkeys 72,72 ; GUIgetprkeys 80,80 - GUIgetprkeys 75,75 - GUIgetprkeys 77,77 - GUIgetprkeys 71,71 - GUIgetprkeys 79,79 - GUIgetprkeys 81,81 - GUIgetprkeys 73,73 + GUIgetprkeys 75,75 + GUIgetprkeys 77,77 + GUIgetprkeys 71,71 + GUIgetprkeys 79,79 + GUIgetprkeys 81,81 + GUIgetprkeys 73,73 %endif - GUIgetprkeysb 1,27 - GUIgetprkeys 1Ch,13 + GUIgetprkeysb 1,27 + GUIgetprkeys 1Ch,13 - mov cl,[UseExtKey] - cmp cl,72 - je .okayextk - cmp cl,80 - jne .notextkb + mov cl,[UseExtKey] + cmp cl,72 + je .okayextk + cmp cl,80 + jne .notextkb .okayextk - mov al,cl + mov al,cl .notextkb %ifdef __UNIXSDL__ - GUIgetprkeys 90,90 ; UP - GUIgetprkeys 96,96 ; DOWN - GUIgetprkeys 92,92 ; LEFT - GUIgetprkeys 94,94 ; RIGHT - GUIgetprkeys 89,89 ; HOME - GUIgetprkeys 91,91 ; PGUP - GUIgetprkeys 95,95 ; END - GUIgetprkeys 97,97 ; PGDOWN + GUIgetprkeys 90,90 ; UP + GUIgetprkeys 96,96 ; DOWN + GUIgetprkeys 92,92 ; LEFT + GUIgetprkeys 94,94 ; RIGHT + GUIgetprkeys 89,89 ; HOME + GUIgetprkeys 91,91 ; PGUP + GUIgetprkeys 95,95 ; END + GUIgetprkeys 97,97 ; PGDOWN - GUIgetprkeys 72,72 ; KP8 - GUIgetprkeys 80,80 ; KP2 - GUIgetprkeys 75,75 ; KP4 - GUIgetprkeys 77,77 ; KP6 - GUIgetprkeys 71,71 ; KP7 - GUIgetprkeys 79,79 ; KP9 - GUIgetprkeys 81,81 ; KP1 - GUIgetprkeys 73,73 ; KP3 + GUIgetprkeys 72,72 ; KP8 + GUIgetprkeys 80,80 ; KP2 + GUIgetprkeys 75,75 ; KP4 + GUIgetprkeys 77,77 ; KP6 + GUIgetprkeys 71,71 ; KP7 + GUIgetprkeys 79,79 ; KP9 + GUIgetprkeys 81,81 ; KP1 + GUIgetprkeys 73,73 ; KP3 - GUIgetprkeys 09Ch,13 ; ENTER + GUIgetprkeys 09Ch,13 ; ENTER %endif %ifdef __WIN32__ - GUIgetprkeys 0CBh,75 - GUIgetprkeys 0CDh,77 - GUIgetprkeys 0C9h,73 - GUIgetprkeys 0D1h,81 - GUIgetprkeys 0C7h,71 - GUIgetprkeys 0CFh,79 - GUIgetprkeys 09Ch,13 + GUIgetprkeys 0CBh,75 + GUIgetprkeys 0CDh,77 + GUIgetprkeys 0C9h,73 + GUIgetprkeys 0D1h,81 + GUIgetprkeys 0C7h,71 + GUIgetprkeys 0CFh,79 + GUIgetprkeys 09Ch,13 %endif ;.notwinport2 - cmp byte[JoyPad1Move],0 - je near .nopad1b - GUIgetprkeys2 [pl1upk],72,0 - GUIgetprkeys2 [pl1downk],80,1 - GUIgetprkeys2 [pl1leftk],75,2 - GUIgetprkeys2 [pl1rightk],77,3 - GUIgetprkeys2 [pl1Lk],73,4 - GUIgetprkeys2 [pl1Rk],81,5 - GUIgetprkeys2 [pl1Bk],27,6 - GUIgetprkeys2 [pl1Ak],13,7 + cmp byte[JoyPad1Move],0 + je near .nopad1b + GUIgetprkeys2 [pl1upk],72,0 + GUIgetprkeys2 [pl1downk],80,1 + GUIgetprkeys2 [pl1leftk],75,2 + GUIgetprkeys2 [pl1rightk],77,3 + GUIgetprkeys2 [pl1Lk],73,4 + GUIgetprkeys2 [pl1Rk],81,5 + GUIgetprkeys2 [pl1Bk],27,6 + GUIgetprkeys2 [pl1Ak],13,7 .nopad1b - cmp dh,' ' - jne .notspace - mov al,' ' + cmp dh,' ' + jne .notspace + mov al,' ' .notspace - mov dword[GUInextkeydelay],10 - mov dword[GUIkeydelay],0 + mov dword[GUInextkeydelay],10 + mov dword[GUIkeydelay],0 .done - cmp byte[GUIcmenupos],0 - jne near .processmenu - mov dl,al - xor eax,eax - mov al,[GUIwinptr] - cmp dl,27 - jne .noclosewin - or eax,eax - jz near .runprog + cmp byte[GUIcmenupos],0 + jne near .processmenu + mov dl,al + xor eax,eax + mov al,[GUIwinptr] + cmp dl,27 + jne .noclosewin + or eax,eax + jz near .runprog .noclosewin - dec eax - xor ebx,ebx - mov bl,[GUIwinorder+eax] - cmp ebx,13 - jne .notcskeys - cmp byte[CheatWinMode],1 - ja .avoidesc + dec eax + xor ebx,ebx + mov bl,[GUIwinorder+eax] + cmp ebx,13 + jne .notcskeys + cmp byte[CheatWinMode],1 + ja .avoidesc .notcskeys - cmp dl,27 - je near .closewin + cmp dl,27 + je near .closewin .avoidesc - mov al,dl - cmp ebx,1 - je near GUILoadKeys - cmp ebx,2 - je near GUIStateSelKeys - cmp ebx,4 - je near GUIOptionKeys - cmp ebx,5 - je near GUIVideoKeys - cmp ebx,6 - je near GUISoundKeys - cmp ebx,7 - je near GUICheatKeys - cmp ebx,10 - je near GUIGUIOptnsKeys - cmp ebx,11 - je near GUIAboutKeys - cmp ebx,12 - je near GUIResetKeys - cmp ebx,13 - je near GUICheatSearchKeys - cmp ebx,14 - je near GUIStateKeys - cmp ebx,15 - je near GUIMovieKeys - cmp ebx,16 - je near GUIComboKeys - cmp ebx,17 - je near GUIAddonKeys - cmp ebx,18 - je near GUIChipKeys - cmp ebx,19 - je near GUIPathKeys - cmp ebx,20 - je near GUISaveKeys - cmp ebx,21 - je near GUISpeedKeys - cmp ebx,8 - je near GUIGetInputLine - ret + mov al,dl + cmp ebx,1 + je near GUILoadKeys + cmp ebx,2 + je near GUIStateSelKeys + cmp ebx,3 + je near GUIInputKeys + cmp ebx,4 + je near GUIOptionKeys + cmp ebx,5 + je near GUIVideoKeys + cmp ebx,6 + je near GUISoundKeys + cmp ebx,7 + je near GUICheatKeys + cmp ebx,10 + je near GUIGUIOptnsKeys + cmp ebx,11 + je near GUIAboutKeys + cmp ebx,12 + je near GUIResetKeys + cmp ebx,13 + je near GUICheatSearchKeys + cmp ebx,14 + je near GUIStateKeys + cmp ebx,15 + je near GUIMovieKeys + cmp ebx,16 + je near GUIComboKeys + cmp ebx,17 + je near GUIAddonKeys + cmp ebx,18 + je near GUIChipKeys + cmp ebx,19 + je near GUIPathKeys + cmp ebx,20 + je near GUISaveKeys + cmp ebx,21 + je near GUISpeedKeys + cmp ebx,8 + je near GUIGetInputLine + ret .runprog - cmp byte[romloadskip],0 - jne .noquit - mov byte[GUIQuit],2 + cmp byte[romloadskip],0 + jne .noquit + mov byte[GUIQuit],2 .noquit - ret + ret .closewin - ; close window - mov byte[GUIwinorder+eax],0 - mov byte[GUIwinactiv+ebx],0 - dec byte[GUIwinptr] - cmp byte[GUIwinptr],0 - jne .nowinopen - mov al,[GUIpmenupos] - mov [GUIcmenupos],al + ; close window + mov byte[GUIwinorder+eax],0 + mov byte[GUIwinactiv+ebx],0 + dec byte[GUIwinptr] + cmp byte[GUIwinptr],0 + jne .nowinopen + mov al,[GUIpmenupos] + mov [GUIcmenupos],al .nowinopen - ret + ret .processmenu - cmp dh,'a' - jb .nolower - cmp dh,'z' - ja .nolower - sub dh,'a'-'A' + cmp dh,'a' + jb .nolower + cmp dh,'z' + ja .nolower + sub dh,'a'-'A' .nolower - cmp dh,'X' ; Main Menu Hotkeys - jne .noclose - mov byte[GUIcmenupos],0 - mov byte[GUIcrowpos],0 + cmp dh,'X' ; Main Menu Hotkeys + jne .noclose + mov byte[GUIcmenupos],0 + mov byte[GUIcrowpos],0 .noclose - cmp dh,'R' - jne .norecent - mov byte[GUIcmenupos],1 - mov byte[GUIcrowpos],0 + cmp dh,'R' + jne .norecent + mov byte[GUIcmenupos],1 + mov byte[GUIcrowpos],0 .norecent - cmp dh,'G' - jne .nogame - mov byte[GUIcmenupos],2 - mov byte[GUIcrowpos],0 + cmp dh,'G' + jne .nogame + mov byte[GUIcmenupos],2 + mov byte[GUIcrowpos],0 .nogame - cmp dh,'C' - jne .noconfig - mov byte[GUIcmenupos],3 - mov byte[GUIcrowpos],0 + cmp dh,'C' + jne .noconfig + mov byte[GUIcmenupos],3 + mov byte[GUIcrowpos],0 .noconfig - cmp dh,'H' - jne .nocheat - mov byte[GUIcmenupos],4 - mov byte[GUIcrowpos],0 + cmp dh,'H' + jne .nocheat + mov byte[GUIcmenupos],4 + mov byte[GUIcrowpos],0 .nocheat - cmp dh,'N' - jne .nonetplay - mov byte[GUIcmenupos],5 - mov byte[GUIcrowpos],0 + cmp dh,'N' + jne .nonetplay + mov byte[GUIcmenupos],5 + mov byte[GUIcrowpos],0 .nonetplay - cmp dh,'M' - jne .nomisc - mov byte[GUIcmenupos],6 - mov byte[GUIcrowpos],0 + cmp dh,'M' + jne .nomisc + mov byte[GUIcmenupos],6 + mov byte[GUIcrowpos],0 .nomisc - cmp byte[GUIcmenupos],1 ; Recently Played Hotkeys - jne near .noquickmenu - cmp dh,'1' - jne .no1 - mov byte[GUIcrowpos],0 + cmp byte[GUIcmenupos],1 ; Recently Played Hotkeys + jne near .noquickmenu + cmp dh,'1' + jne .no1 + mov byte[GUIcrowpos],0 .no1 - cmp dh,'2' - jne .no2 - mov byte[GUIcrowpos],1 + cmp dh,'2' + jne .no2 + mov byte[GUIcrowpos],1 .no2 - cmp dh,'3' - jne .no3 - mov byte[GUIcrowpos],2 + cmp dh,'3' + jne .no3 + mov byte[GUIcrowpos],2 .no3 - cmp dh,'4' - jne .no4 - mov byte[GUIcrowpos],3 + cmp dh,'4' + jne .no4 + mov byte[GUIcrowpos],3 .no4 - cmp dh,'5' - jne .no5 - mov byte[GUIcrowpos],4 + cmp dh,'5' + jne .no5 + mov byte[GUIcrowpos],4 .no5 - cmp dh,'6' - jne .no6 - mov byte[GUIcrowpos],5 + cmp dh,'6' + jne .no6 + mov byte[GUIcrowpos],5 .no6 - cmp dh,'7' - jne .no7 - mov byte[GUIcrowpos],6 + cmp dh,'7' + jne .no7 + mov byte[GUIcrowpos],6 .no7 - cmp dh,'8' - jne .no8 - mov byte[GUIcrowpos],7 + cmp dh,'8' + jne .no8 + mov byte[GUIcrowpos],7 .no8 - cmp dh,'9' - jne .no9 - mov byte[GUIcrowpos],8 + cmp dh,'9' + jne .no9 + mov byte[GUIcrowpos],8 .no9 - cmp dh,'0' - jne .no0 - mov byte[GUIcrowpos],9 + cmp dh,'0' + jne .no0 + mov byte[GUIcrowpos],9 .no0 - cmp dh,'F' - jne .nof - mov byte[GUIcrowpos],11 + cmp dh,'F' + jne .nof + mov byte[GUIcrowpos],11 .nof - cmp dh,'L' - jne .nol - mov byte[GUIcrowpos],12 + cmp dh,'L' + jne .nol + mov byte[GUIcrowpos],12 .nol .noquickmenu ; Game Hotkeys - cmp byte[GUIcmenupos],2 - jne near .noloadmenu - cmp dh,'L' - jne .noll - mov byte[GUIcrowpos],0 + cmp byte[GUIcmenupos],2 + jne near .noloadmenu + cmp dh,'L' + jne .noll + mov byte[GUIcrowpos],0 .noll - cmp dh,'E' - jne .nor - mov byte[GUIcrowpos],2 + cmp dh,'E' + jne .nor + mov byte[GUIcrowpos],2 .nor - cmp dh,'S' - jne .nos - mov byte[GUIcrowpos],4 + cmp dh,'S' + jne .nos + mov byte[GUIcrowpos],4 .nos - cmp dh,'O' - jne .noo - mov byte[GUIcrowpos],5 + cmp dh,'O' + jne .noo + mov byte[GUIcrowpos],5 .noo - cmp dh,'P' - jne .nop - mov byte[GUIcrowpos],6 + cmp dh,'P' + jne .nop + mov byte[GUIcrowpos],6 .nop - cmp dh,'Q' - jne .noq - mov byte[GUIcrowpos],8 + cmp dh,'Q' + jne .noq + mov byte[GUIcrowpos],8 .noq .noloadmenu ; Config Hotkeys - cmp byte[GUIcmenupos],3 - jne near .noconfigmenu - cmp dh,'1' - jne .noin1 - mov byte[GUIcrowpos],0 + cmp byte[GUIcmenupos],3 + jne near .noconfigmenu + cmp dh,'1' + jne .noin1 + mov byte[GUIcrowpos],0 .noin1 - cmp dh,'2' - jne .noin2 - mov byte[GUIcrowpos],1 + cmp dh,'2' + jne .noin2 + mov byte[GUIcrowpos],1 .noin2 - cmp dh,'3' - jne .noin3 - mov byte[GUIcrowpos],2 + cmp dh,'3' + jne .noin3 + mov byte[GUIcrowpos],2 .noin3 - cmp dh,'4' - jne .noin4 - mov byte[GUIcrowpos],3 + cmp dh,'4' + jne .noin4 + mov byte[GUIcrowpos],3 .noin4 - cmp dh,'5' - jne .noin5 - mov byte[GUIcrowpos],4 + cmp dh,'5' + jne .noin5 + mov byte[GUIcrowpos],4 .noin5 - cmp dh,'A' - jne .noina - mov byte[GUIcrowpos],6 + cmp dh,'A' + jne .noina + mov byte[GUIcrowpos],6 .noina - cmp dh,'F' - jne .noinc - mov byte[GUIcrowpos],7 + cmp dh,'F' + jne .noinc + mov byte[GUIcrowpos],7 .noinc - cmp dh,'O' - jne .noino - mov byte[GUIcrowpos],9 + cmp dh,'O' + jne .noino + mov byte[GUIcrowpos],9 .noino - cmp dh,'V' - jne .noinv - mov byte[GUIcrowpos],10 + cmp dh,'V' + jne .noinv + mov byte[GUIcrowpos],10 .noinv - cmp dh,'S' - jne .noins - mov byte[GUIcrowpos],11 + cmp dh,'S' + jne .noins + mov byte[GUIcrowpos],11 .noins - cmp dh,'P' - jne .noinp - mov byte[GUIcrowpos],12 + cmp dh,'P' + jne .noinp + mov byte[GUIcrowpos],12 .noinp - cmp dh,'E' - jne .noine - mov byte[GUIcrowpos],13 + cmp dh,'E' + jne .noine + mov byte[GUIcrowpos],13 .noine - cmp dh,'D' - jne .noind - mov byte[GUIcrowpos],14 + cmp dh,'D' + jne .noind + mov byte[GUIcrowpos],14 .noind .noconfigmenu ; Cheat Hotkeys - cmp byte[GUIcmenupos],4 - jne near .nocheatmenu - cmp dh,'A' - jne .noa - mov byte[GUIcrowpos],0 + cmp byte[GUIcmenupos],4 + jne near .nocheatmenu + cmp dh,'A' + jne .noa + mov byte[GUIcrowpos],0 .noa - cmp dh,'B' - jne .nob - mov byte[GUIcrowpos],1 + cmp dh,'B' + jne .nob + mov byte[GUIcrowpos],1 .nob - cmp dh,'S' - jne .nos2 - mov byte[GUIcrowpos],2 + cmp dh,'S' + jne .nos2 + mov byte[GUIcrowpos],2 .nos2 .nocheatmenu ; Misc Hotkeys - cmp byte[GUIcmenupos],6 - jne near .nomiscmenu - cmp dh,'K' - jne .nomk - mov byte[GUIcrowpos],0 + cmp byte[GUIcmenupos],6 + jne near .nomiscmenu + cmp dh,'K' + jne .nomk + mov byte[GUIcrowpos],0 .nomk - cmp dh,'U' - jne .nomu - mov byte[GUIcrowpos],1 + cmp dh,'U' + jne .nomu + mov byte[GUIcrowpos],1 .nomu - cmp dh,'O' - jne .nomo - mov byte[GUIcrowpos],2 + cmp dh,'O' + jne .nomo + mov byte[GUIcrowpos],2 .nomo - cmp dh,'E' - jne .nome - mov byte[GUIcrowpos],3 + cmp dh,'E' + jne .nome + mov byte[GUIcrowpos],3 .nome - cmp dh,'S' - jne .noms - mov byte[GUIcrowpos],4 + cmp dh,'S' + jne .noms + mov byte[GUIcrowpos],4 .noms - cmp dh,'A' - jne .noma - mov byte[GUIcrowpos],6 + cmp dh,'A' + jne .noma + mov byte[GUIcrowpos],6 .noma .nomiscmenu - cmp byte[romloadskip],0 - jne .dontquit - cmp al,27 - jne .noexit - mov byte[GUIQuit],2 + cmp byte[romloadskip],0 + jne .dontquit + cmp al,27 + jne .noexit + mov byte[GUIQuit],2 .noexit .dontquit - cmp al,13 - jne .noenter - call GUITryMenuItem + cmp al,13 + jne .noenter + call GUITryMenuItem .noenter %ifdef __UNIXSDL__ - cmp al,92 - je .leftpressed - cmp dword[numlockptr],1 - je .noleft - cmp al,75 - jne .noleft + cmp al,92 + je .leftpressed + cmp dword[numlockptr],1 + je .noleft + cmp al,75 + jne .noleft .leftpressed %else - cmp al,75 - jne .noleft + cmp al,75 + jne .noleft %endif - mov byte[GUIcrowpos],0 - cmp byte[GUIcmenupos],1 - jbe .left - dec byte[GUIcmenupos] - jmp .noleft + mov byte[GUIcrowpos],0 + cmp byte[GUIcmenupos],1 + jbe .left + dec byte[GUIcmenupos] + jmp .noleft .left - mov byte[GUIcmenupos],6 + mov byte[GUIcmenupos],6 .noleft %ifdef __UNIXSDL__ - cmp al,94 - je .rightpressed - cmp dword[numlockptr],1 - je .noright - cmp al,77 - jne .noright + cmp al,94 + je .rightpressed + cmp dword[numlockptr],1 + je .noright + cmp al,77 + jne .noright .rightpressed %else - cmp al,77 - jne .noright + cmp al,77 + jne .noright %endif - mov byte[GUIcrowpos],0 - inc byte[GUIcmenupos] - cmp byte[GUIcmenupos],7 - jne .noright - mov byte[GUIcmenupos],1 + mov byte[GUIcrowpos],0 + inc byte[GUIcmenupos] + cmp byte[GUIcmenupos],7 + jne .noright + mov byte[GUIcmenupos],1 .noright - cmp byte[GUIcmenupos],0 - je near .noupdown + cmp byte[GUIcmenupos],0 + je near .noupdown %ifdef __UNIXSDL__ - cmp al,96 - je .downpressed - cmp dword[numlockptr],1 - je .nodown - cmp al,80 - jne .nodown + cmp al,96 + je .downpressed + cmp dword[numlockptr],1 + je .nodown + cmp al,80 + jne .nodown .downpressed %else - cmp al,80 - jne .nodown + cmp al,80 + jne .nodown %endif - xor eax,eax - mov al,[GUIcrowpos] - mov ebx,[GUICYLocPtr] - cmp byte[eax+ebx+1],2 - jne .nobottom - mov byte[GUIcrowpos],0 - jmp .nokey + xor eax,eax + mov al,[GUIcrowpos] + mov ebx,[GUICYLocPtr] + cmp byte[eax+ebx+1],2 + jne .nobottom + mov byte[GUIcrowpos],0 + jmp .nokey .nobottom - inc eax - cmp byte[eax+ebx+1],0 - je .nobottom - mov [GUIcrowpos],al - jmp .nokey + inc eax + cmp byte[eax+ebx+1],0 + je .nobottom + mov [GUIcrowpos],al + jmp .nokey .nodown %ifdef __UNIXSDL__ - cmp al, 90 - je .uppressed - cmp dword[numlockptr],1 - je .noup - cmp al,72 - jne .noup + cmp al, 90 + je .uppressed + cmp dword[numlockptr],1 + je .noup + cmp al,72 + jne .noup .uppressed %else - cmp al,72 - jne .noup + cmp al,72 + jne .noup %endif - xor eax,eax - mov al,[GUIcrowpos] - mov ebx,[GUICYLocPtr] - or al,al - jz .top - cmp byte[eax+ebx+1],3 - jne .notop + xor eax,eax + mov al,[GUIcrowpos] + mov ebx,[GUICYLocPtr] + or al,al + jz .top + cmp byte[eax+ebx+1],3 + jne .notop .top - mov al,[ebx] - mov [GUIcrowpos],al - jmp .nokey + mov al,[ebx] + mov [GUIcrowpos],al + jmp .nokey .notop - dec eax - cmp byte[eax+ebx+1],0 - je .notop - mov [GUIcrowpos],al - jmp .nokey + dec eax + cmp byte[eax+ebx+1],0 + je .notop + mov [GUIcrowpos],al + jmp .nokey .noup .noupdown .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: - ret + ret GUIOptionKeys: - cmp dh,'a' - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - cmp dh,'N' ; Checkboxes - jne .nonewgfx - xor eax,eax - mov al,[cvidmode] - cmp byte[GUINGVID+eax],1 - jne near .invalidng - xor byte[newengen],1 - mov al,[newengen] - mov [cfgnewgfx],al + cmp dh,'N' ; Checkboxes + jne .nonewgfx + xor eax,eax + mov al,[cvidmode] + cmp byte[GUINGVID+eax],1 + jne near .invalidng + xor byte[newengen],1 + mov al,[newengen] + mov [cfgnewgfx],al .invalidng .nonewgfx - cmp dh,'M' - jne .nommxcopy - xor byte[MMXSupport],1 - call MMXCheck + cmp dh,'M' + jne .nommxcopy + xor byte[MMXSupport],1 + call MMXCheck .nommxcopy - cmp dh,'U' - jne .nousepl34 - xor byte[pl12s34],1 - mov byte[MultiTap],1 - cmp byte[pl12s34],1 - je .nomtap - cmp byte[pl3contrl],0 - jne .mtap - cmp byte[pl4contrl],0 - jne .mtap - cmp byte[pl5contrl],0 - jne .mtap + cmp dh,'U' + jne .nousepl34 + xor byte[pl12s34],1 + mov byte[MultiTap],1 + cmp byte[pl12s34],1 + je .nomtap + cmp byte[pl3contrl],0 + jne .mtap + cmp byte[pl4contrl],0 + jne .mtap + cmp byte[pl5contrl],0 + jne .mtap .nomtap - mov byte[MultiTap],0 + mov byte[MultiTap],0 .mtap .nousepl34 %ifdef __MSDOS__ - GUIKeyCheckbox SidewinderFix,'I' + GUIKeyCheckbox SidewinderFix,'I' %elifdef __WIN32__ - GUIKeyCheckbox HighPriority,'H' - pushad - call CheckPriority - popad + GUIKeyCheckbox HighPriority,'H' + pushad + call CheckPriority + popad %endif - GUIKeyCheckbox FPSAtStart,'F' - GUIKeyCheckbox Turbo30hz,'E' - GUIKeyCheckbox TimerEnable,'C' - GUIKeyCheckbox OldGfxMode2,'O' - GUIKeyCheckbox DontSavePath,'D' - GUIKeyCheckbox SmallMsgText,'S' - GUIKeyCheckbox AutoPatch,'P' - GUIKeyCheckbox RomInfo,'T' - GUIKeyCheckbox AllowUDLR,'A' + GUIKeyCheckbox FPSAtStart,'F' + GUIKeyCheckbox Turbo30hz,'E' + GUIKeyCheckbox TimerEnable,'C' + GUIKeyCheckbox OldGfxMode2,'O' + GUIKeyCheckbox DontSavePath,'D' + GUIKeyCheckbox SmallMsgText,'S' + GUIKeyCheckbox AutoPatch,'P' + GUIKeyCheckbox RomInfo,'T' + GUIKeyCheckbox AllowUDLR,'A' %ifndef __MSDOS__ - GUIKeyCheckbox PauseFocusChange,'B' + GUIKeyCheckbox PauseFocusChange,'B' %endif %ifdef __WIN32__ - GUIKeyCheckbox DisableScreenSaver,'I' - pushad - call CheckScreenSaver - popad + GUIKeyCheckbox DisableScreenSaver,'I' + pushad + call CheckScreenSaver + popad %endif - ret + ret -GUIAboutKeys - cmp dh,'a' ; Setup - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' +GUIAboutKeys: + cmp dh,'a' ; Setup + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - cmp dh,'E' - jne .noeegg - xor byte[EEgg],1 + cmp dh,'E' + jne .noeegg + xor byte[EEgg],1 .noeegg - ret + ret GUISaveKeys: - cmp dh,'a' ; Setup - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' ; Setup + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - cmp dh,'I' ; Checkboxes - jne .noautoincsave - xor byte[AutoIncSaveSlot],1 - mov byte[firstsaveinc],1 + cmp dh,'I' ; Checkboxes + jne .noautoincsave + xor byte[AutoIncSaveSlot],1 + mov byte[firstsaveinc],1 .noautoincsave - GUIKeyCheckbox SRAMSave5Sec,'C' - GUIKeyCheckbox LatestSave,'S' - GUIKeyCheckbox AutoState,'A' - GUIKeyCheckbox SRAMState,'L' - GUIKeyCheckbox PauseLoad,'P' - GUIKeyCheckbox PauseRewind,'R' - ret + GUIKeyCheckbox SRAMSave5Sec,'C' + GUIKeyCheckbox LatestSave,'S' + GUIKeyCheckbox AutoState,'A' + GUIKeyCheckbox SRAMState,'L' + GUIKeyCheckbox PauseLoad,'P' + GUIKeyCheckbox PauseRewind,'R' + ret GUISpeedKeys: - cmp dh,'a' ; Setup - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' ; Setup + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - GUIKeyCheckbox FastFwdToggle,'T' ; Checkbox + GUIKeyCheckbox FastFwdToggle,'T' ; Checkbox - cmp dh,'A' ; Framerate Checkboxes - jne .noautofr - mov byte[FPSOn],0 - cmp byte[frameskip],0 - je .zero - mov byte[frameskip],0 - jmp .notzero + cmp dh,'A' ; Framerate Checkboxes + jne .noautofr + mov byte[FPSOn],0 + cmp byte[frameskip],0 + je .zero + mov byte[frameskip],0 + jmp .notzero .zero - mov byte[frameskip],2 + mov byte[frameskip],2 .notzero .noautofr - ret + ret GUIAddonKeys: - cmp dh,'a' ;Setup - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' ;Setup + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - GUIKeyButtonHole snesmouse,0,'N' ;Radio Buttons - GUIKeyButtonHole snesmouse,1,'1' - GUIKeyButtonHole snesmouse,2,'2' - GUIKeyButtonHole snesmouse,3,'S' - GUIKeyButtonHole snesmouse,4,'L' - ret + GUIKeyButtonHole snesmouse,0,'N' ;Radio Buttons + GUIKeyButtonHole snesmouse,1,'1' + GUIKeyButtonHole snesmouse,2,'2' + GUIKeyButtonHole snesmouse,3,'S' + GUIKeyButtonHole snesmouse,4,'L' + ret GUIChipKeys: - cmp dh,'a' ;Setup - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' ;Setup + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - GUIKeyCheckbox nssdip1,'1' ; Checkboxes - GUIKeyCheckbox nssdip2,'2' - GUIKeyCheckbox nssdip3,'3' - GUIKeyCheckbox nssdip4,'4' - GUIKeyCheckbox nssdip5,'5' - GUIKeyCheckbox nssdip6,'6' - ret + GUIKeyCheckbox nssdip1,'1' ; Checkboxes + GUIKeyCheckbox nssdip2,'2' + GUIKeyCheckbox nssdip3,'3' + GUIKeyCheckbox nssdip4,'4' + GUIKeyCheckbox nssdip5,'5' + GUIKeyCheckbox nssdip6,'6' + ret GUIGUIOptnsKeys: - cmp dh,'a' - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - GUIKeyCheckbox mousewrap,'M' ; Checkboxes - GUIKeyCheckbox mouseshad,'S' - GUIKeyCheckbox lastcursres,'K' - GUIKeyCheckbox resetposn,'W' - GUIKeyCheckbox GUIClick,'C' - GUIKeyCheckbox JoyPad1Move,'U' - GUIKeyCheckbox GUIEnableTransp,'T' + GUIKeyCheckbox mousewrap,'M' ; Checkboxes + GUIKeyCheckbox mouseshad,'S' + GUIKeyCheckbox lastcursres,'K' + GUIKeyCheckbox resetposn,'W' + GUIKeyCheckbox GUIClick,'C' + GUIKeyCheckbox JoyPad1Move,'U' + GUIKeyCheckbox GUIEnableTransp,'T' - cmp dh,'F' - jne .guioptn8 - xor byte[FilteredGUI],1 - cmp byte[En2xSaI],1 - jnae .guioptn8 - call ClearScreen - pushad - call Clear2xSaIBuffer - popad + cmp dh,'F' + jne .guioptn8 + xor byte[FilteredGUI],1 + cmp byte[En2xSaI],1 + jnae .guioptn8 + call ClearScreen + pushad + call Clear2xSaIBuffer + popad .guioptn8 - cmp byte[hqFilter],0 - je .guioptn9 - call ClearScreen - pushad - call Clear2xSaIBuffer - popad + cmp byte[hqFilter],0 + je .guioptn9 + call ClearScreen + pushad + call Clear2xSaIBuffer + popad .guioptn9 - cmp dh,'N' - jne .guioptn10 - GUIkeystoggleoptn byte[GUIEffect],1 + cmp dh,'N' + jne .guioptn10 + GUIkeystoggleoptn byte[GUIEffect],1 .guioptn10 - cmp dh,'R' - jne .guioptn11 - GUIkeystoggleoptn byte[GUIEffect],4 + cmp dh,'R' + jne .guioptn11 + GUIkeystoggleoptn byte[GUIEffect],4 .guioptn11 - cmp dh,'E' - jne .guioptn12 - GUIkeystoggleoptn byte[GUIEffect],2 + cmp dh,'E' + jne .guioptn12 + GUIkeystoggleoptn byte[GUIEffect],2 .guioptn12 - cmp dh,'B' - jne .guioptn13 - GUIkeystoggleoptn byte[GUIEffect],3 + cmp dh,'B' + jne .guioptn13 + GUIkeystoggleoptn byte[GUIEffect],3 .guioptn13 %ifdef __WIN32__ - GUIKeyCheckbox MouseWheel,'H' - GUIKeyCheckbox TrapMouseCursor,'P' - GUIKeyCheckbox AlwaysOnTop,'A' - GUIKeyCheckbox SaveMainWindowPos,'V' - GUIKeyCheckbox AllowMultipleInst,'L' + GUIKeyCheckbox MouseWheel,'H' + GUIKeyCheckbox TrapMouseCursor,'P' + GUIKeyCheckbox AlwaysOnTop,'A' + GUIKeyCheckbox SaveMainWindowPos,'V' + GUIKeyCheckbox AllowMultipleInst,'L' %endif ret GUIVideoKeys: - cmp dh,'a' - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + KeyTabInc GUIVideoTabs + cmp dh,'a' + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - xor eax,eax - mov al,[cvidmode] - cmp byte[GUISLVID+eax],0 - je .nofullscanlines - cmp dh,'F' - jne .nofullscanlines - cmp byte[En2xSaI],0 - jne .nofullscanlines - cmp byte[hqFilter],0 - jne .nofullscanlines - call ClearScreen - GUIkeystoggleoptn byte[scanlines],1 + 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 + cmp dh,'F' + jne .nofullscanlines + cmp byte[En2xSaI],0 + jne .nofullscanlines + cmp byte[hqFilter],0 + jne .nofullscanlines + call ClearScreen + GUIkeystoggleoptn byte[scanlines],1 %ifdef __MSDOS__ - cmp byte[cvidmode],2 - jne .nomodeq - jmp .refresh + cmp byte[cvidmode],2 + jne .nomodeq + jmp .refresh .nomodeq - cmp byte[cvidmode],5 - jne .nofullscanlines + cmp byte[cvidmode],5 + jne .nofullscanlines .refresh - mov byte[cbitmode],1 - call initvideo2 - mov byte[cbitmode],0 - call GUISetPal + mov byte[cbitmode],1 + call initvideo2 + mov byte[cbitmode],0 + call GUISetPal %endif .nofullscanlines - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIHSVID+eax],0 - je near .noquarterscanlines - cmp dh,'5' - jne .nohalfscanlines - cmp byte[En2xSaI],0 - jne .nohalfscanlines - cmp byte[hqFilter],0 - jne .nohalfscanlines - call ClearScreen - GUIkeystoggleoptn byte[scanlines],3 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIHSVID+eax],0 + je near .noquarterscanlines + cmp dh,'5' + jne .nohalfscanlines + cmp byte[En2xSaI],0 + jne .nohalfscanlines + cmp byte[hqFilter],0 + jne .nohalfscanlines + call ClearScreen + GUIkeystoggleoptn byte[scanlines],3 %ifdef __MSDOS__ - ;cmp byte[cvidmode],2 - ;jne .nohalfscanlines - ;mov byte[cbitmode],1 - ;call initvideo2 - ;mov byte[cbitmode],0 - ;call GUISetPal + ;cmp byte[cvidmode],2 + ;jne .nohalfscanlines + ;mov byte[cbitmode],1 + ;call initvideo2 + ;mov byte[cbitmode],0 + ;call GUISetPal %endif .nohalfscanlines - cmp dh,'2' - jne .noquarterscanlines - cmp byte[En2xSaI],0 - jne .noquarterscanlines - cmp byte[hqFilter],0 - jne .noquarterscanlines - call ClearScreen - GUIkeystoggleoptn byte[scanlines],2 + cmp dh,'2' + jne .noquarterscanlines + cmp byte[En2xSaI],0 + jne .noquarterscanlines + cmp byte[hqFilter],0 + jne .noquarterscanlines + call ClearScreen + GUIkeystoggleoptn byte[scanlines],2 %ifdef __MSDOS__ - ;cmp byte[cvidmode],2 - ;jne .noquarterscanlines - ;mov byte[cbitmode],1 - ;call initvideo2 - ;mov byte[cbitmode],0 - ;call GUISetPal + ;cmp byte[cvidmode],2 + ;jne .noquarterscanlines + ;mov byte[cbitmode],1 + ;call initvideo2 + ;mov byte[cbitmode],0 + ;call GUISetPal %endif .noquarterscanlines - cmp dh,'Q' - jne .nohqfilter - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIHQ2X+ebx],0 - jne .hqfilter - cmp byte[GUIHQ3X+ebx],0 - jne .hqfilter - cmp byte[GUIHQ4X+ebx],0 - jne .hqfilter - jmp .nohqfilter + cmp dh,'Q' + jne .nohqfilter + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIHQ2X+ebx],0 + jne .hqfilter + cmp byte[GUIHQ3X+ebx],0 + jne .hqfilter + cmp byte[GUIHQ4X+ebx],0 + jne .hqfilter + jmp .nohqfilter .hqfilter - xor byte[hqFilter],1 - jz .nohqfilter - mov byte[scanlines],0 - mov byte[cfgscanline],0 - mov byte[En2xSaI],0 - mov byte[antienab],0 - mov byte[cfginterp],0 + xor byte[hqFilter],1 + jz .nohqfilter + mov byte[scanlines],0 + mov byte[cfgscanline],0 + mov byte[En2xSaI],0 + mov byte[antienab],0 + mov byte[cfginterp],0 .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 + 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 + 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 - mov bl,[cvidmode] - cmp byte[GUI2xVID+ebx],0 - je near .nosuper2xsai - pushad - call Clear2xSaIBuffer - popad - GUIkeystoggleoptn byte[En2xSaI],3 + cmp dh,'S' + jne .nosuper2xsai + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUI2xVID+ebx],0 + je near .nosuper2xsai + pushad + call Clear2xSaIBuffer + popad + GUIkeystoggleoptn byte[En2xSaI],3 .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 + 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' - jne .nointerpolation - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIIEVID+eax],0 - je .nointerpolation - xor byte[antienab],1 - mov al,[antienab] - mov [cfginterp],al + cmp dh,'I' + jne .nointerpolation + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIIEVID+eax],0 + je .nointerpolation + xor byte[antienab],1 + mov al,[antienab] + mov [cfginterp],al .nointerpolation - cmp dh,'C' - jne .nofullscreen - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIFSVID+eax],0 - je .nofullscreen - call ClearScreen - xor byte[ScreenScale],1 - mov al,[ScreenScale] - mov [GUIScreenScale],al - push eax - push ecx - mov eax,[vidbufferofsb] - mov ecx,288*128 + cmp dh,'C' + jne .nofullscreen + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIFSVID+eax],0 + je .nofullscreen + call ClearScreen + xor byte[ScreenScale],1 + mov al,[ScreenScale] + mov [GUIScreenScale],al + push eax + push ecx + mov eax,[vidbufferofsb] + mov ecx,288*128 .fsloop - mov dword[eax],0 - add eax,4 - dec ecx - jnz .fsloop - pop ecx - pop eax + mov dword[eax],0 + add eax,4 + dec ecx + jnz .fsloop + pop ecx + pop eax .nofullscreen - cmp dh,'M' - jne .nosmallscreen - xor eax,eax - mov al,[cvidmode] - cmp byte[GUISSVID+eax],0 - je .nosmallscreen - call ClearScreen - xor byte[smallscreenon],1 - mov al,[smallscreenon] - mov [GUIsmallscreenon],al - push eax - push ecx - mov eax,[vidbufferofsb] - mov ecx,288*128 + cmp dh,'M' + jne .nosmallscreen + xor eax,eax + mov al,[cvidmode] + cmp byte[GUISSVID+eax],0 + je .nosmallscreen + call ClearScreen + xor byte[smallscreenon],1 + mov al,[smallscreenon] + mov [GUIsmallscreenon],al + push eax + push ecx + mov eax,[vidbufferofsb] + mov ecx,288*128 .ssloop - mov dword[eax],0 - add eax,4 - dec ecx - jnz .ssloop - pop ecx - pop eax + mov dword[eax],0 + add eax,4 + dec ecx + jnz .ssloop + pop ecx + pop eax .nosmallscreen - cmp dh,'H' - jne .nohiresmode7 - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIM7VID+ebx],0 - je .nohiresmode7 - xor byte[Mode7HiRes16b],1 + cmp dh,'H' + jne .nohiresmode7 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIM7VID+ebx],0 + je .nohiresmode7 + xor byte[Mode7HiRes16b],1 .nohiresmode7 - cmp dh,'N' - jne .nontscfilters - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUINTSC+ebx],0 - je .nohiresmode7 - xor byte[NTSCFilter],1 + cmp dh,'N' + jne .nontscfilters + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUINTSC+ebx],0 + je .nohiresmode7 + xor byte[NTSCFilter],1 .nontscfilters - cmp dh,'B' - jne .nobilinearfilter - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIBIFIL+ebx],0 - je .nobilinearfilter - xor byte[BilinearFilter],1 + cmp dh,'B' + jne .nobilinearfilter + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIBIFIL+ebx],0 + je .nobilinearfilter + xor byte[BilinearFilter],1 .nobilinearfilter %ifdef __WIN32__ - cmp dh,'T' - jne .notriplebufferwin - xor eax,eax - mov al,[cvidmode] - cmp byte[GUITBWVID+eax],0 - je near .notriplebufferwin - xor byte[TripleBufferWin],1 + cmp dh,'T' + jne .notriplebufferwin + xor eax,eax + mov al,[cvidmode] + cmp byte[GUITBWVID+eax],0 + je near .notriplebufferwin + xor byte[TripleBufferWin],1 ; mov byte[vsyncon],0 ; mov byte[cfgvsync],0 - call initDirectDraw - pushad - call Clear2xSaIBuffer - popad + call initDirectDraw + pushad + call Clear2xSaIBuffer + popad .notriplebufferwin %elifdef __MSDOS__ - cmp dh,'T' - jne .notriplebuffer - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUITBVID+ebx],0 - je .notriplebuffer - xor byte[Triplebufen],1 + cmp dh,'T' + jne .notriplebuffer + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUITBVID+ebx],0 + je .notriplebuffer + xor byte[Triplebufen],1 ; mov byte[vsyncon],0 ; mov byte[cfgvsync],0 .notriplebuffer %endif - cmp dh,'G' - jne .nograyscale - xor byte[GrayscaleMode],1 + cmp dh,'G' + jne .nograyscale + xor byte[GrayscaleMode],1 .nograyscale %ifndef __UNIXSDL__ - cmp dh,'V' - jne .novsync - xor byte[vsyncon],1 - mov al,[vsyncon] - mov [cfgvsync],al + cmp dh,'V' + jne .novsync + xor byte[vsyncon],1 + mov al,[vsyncon] + mov [cfgvsync],al %ifdef __WIN32__ - call initDirectDraw - pushad - call Clear2xSaIBuffer - popad + call initDirectDraw + pushad + call Clear2xSaIBuffer + popad %endif %ifdef __MSDOS__ ; mov byte[Triplebufen],0 %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 - ret +.notfilterstab + + cmp dword[GUIVideoTabs],3 + jne .notntsctab +.notntsctab + ret GUISoundKeys: - cmp dh,'a' - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - cmp dh,'E' - jne .notenablesound - xor byte[cfgsoundon],1 + cmp dh,'E' + jne .notenablesound + xor byte[cfgsoundon],1 %ifdef __WIN32__ - pushad - call reInitSound - popad + pushad + call reInitSound + popad %endif .notenablesound %ifdef __MSDOS__ - GUIKeyCheckbox cfgforce8b,'F' + GUIKeyCheckbox cfgforce8b,'F' %endif - GUIKeyCheckbox cfgStereoSound,'S' + GUIKeyCheckbox cfgStereoSound,'S' %ifdef __MSDOS__ - GUIKeyCheckbox RaisePitch,'A' + GUIKeyCheckbox RaisePitch,'A' %endif - GUIKeyCheckbox PrimaryBuffer,'P' - GUIKeyCheckbox RevStereo,'V' - GUIKeyCheckbox Surround,'U' - GUIKeyCheckbox SoundBufEn,'B' - GUIKeyCheckbox SPCDisable,'D' + GUIKeyCheckbox PrimaryBuffer,'P' + GUIKeyCheckbox RevStereo,'V' + GUIKeyCheckbox Surround,'U' + GUIKeyCheckbox SoundBufEn,'B' + GUIKeyCheckbox SPCDisable,'D' - cmp dh,'R' ; Sampling Rate - jne .notsrate - xor eax,eax - mov al,[cfgSoundQuality] - mov al,[.sampratenext+eax] - mov [cfgSoundQuality],al + cmp dh,'R' ; Sampling Rate + jne .notsrate + xor eax,eax + mov al,[cfgSoundQuality] + mov al,[.sampratenext+eax] + mov [cfgSoundQuality],al .notsrate - cmp dh,'G' - jne .nogausseninterp - GUIkeystoggleoptn byte[SoundInterpType],1 + cmp dh,'G' + jne .nogausseninterp + GUIkeystoggleoptn byte[SoundInterpType],1 .nogausseninterp - cmp dh,'C' - jne .nocubicinterp - GUIkeystoggleoptn byte[SoundInterpType],2 + cmp dh,'C' + jne .nocubicinterp + GUIkeystoggleoptn byte[SoundInterpType],2 .nocubicinterp %ifndef __MSDOS__ - cmp dh,'8' - jne .no8ptinterp - cmp byte[MMXSupport],0 - je .no8ptinterp - GUIkeystoggleoptn byte[SoundInterpType],3 + cmp dh,'8' + jne .no8ptinterp + cmp byte[MMXSupport],0 + je .no8ptinterp + GUIkeystoggleoptn byte[SoundInterpType],3 .no8ptinterp %endif - cmp dh,'I' - jne .nosimplefilter - GUIkeystoggleoptn byte[LowPassFilterType],1 + cmp dh,'I' + jne .nosimplefilter + GUIkeystoggleoptn byte[LowPassFilterType],1 .nosimplefilter - cmp dh,'Y' - jne .nodynamicfilter - GUIkeystoggleoptn byte[LowPassFilterType],2 + cmp dh,'Y' + jne .nodynamicfilter + GUIkeystoggleoptn byte[LowPassFilterType],2 .nodynamicfilter %ifndef __MSDOS__ - cmp dh,'H' - jne .nohiqualityfilter - cmp byte[MMXSupport],0 - je .nohiqualityfilter - GUIkeystoggleoptn byte[LowPassFilterType],3 + cmp dh,'H' + jne .nohiqualityfilter + cmp byte[MMXSupport],0 + je .nohiqualityfilter + GUIkeystoggleoptn byte[LowPassFilterType],3 .nohiqualityfilter %endif - ret + ret SECTION .data .sampratenext db 1,4,5,6,2,3,0,0,0,0 SECTION .text GUINetMenuKeys1: - ret + ret GUIGetInputLine: - ret + ret SECTION .bss GUIEditString resd 1 ; Pointer to string @@ -1434,104 +1465,104 @@ GUIEditStringcWin resd 1 ; 0 = no text window selected SECTION .text GUIPathKeys: - cmp dh,0 - je near .nokeypressed - cmp dword[GUIInputBox],0 - je near .nokeypressed + cmp dh,0 + je near .nokeypressed + cmp dword[GUIInputBox],0 + je near .nokeypressed - cmp dword[GUIInputBox],1 - jne .notBox1 - mov byte[cfgloadsdir],1 ;Need this to know if we should save the path - mov eax,SRAMDir - jmp .boxselected + cmp dword[GUIInputBox],1 + jne .notBox1 + mov byte[cfgloadsdir],1 ;Need this to know if we should save the path + mov eax,SRAMDir + jmp .boxselected .notBox1 - cmp dword[GUIInputBox],2 - jne .notBox2 - mov eax,SnapPath - jmp .boxselected + cmp dword[GUIInputBox],2 + jne .notBox2 + mov eax,SnapPath + jmp .boxselected .notBox2 - cmp dword[GUIInputBox],3 - jne .notBox3 - mov eax,SPCPath - jmp .boxselected + cmp dword[GUIInputBox],3 + jne .notBox3 + mov eax,SPCPath + jmp .boxselected .notBox3 - cmp dword[GUIInputBox],4 - jne .notBox4 - mov eax,BSXPath - jmp .boxselected + cmp dword[GUIInputBox],4 + jne .notBox4 + mov eax,BSXPath + jmp .boxselected .notBox4 - cmp dword[GUIInputBox],5 - jne .notBox5 - mov eax,SGPath - jmp .boxselected + cmp dword[GUIInputBox],5 + jne .notBox5 + mov eax,SGPath + jmp .boxselected .notBox5 - cmp dword[GUIInputBox],6 - jne .notBox6 - mov eax,STPath - jmp .boxselected + cmp dword[GUIInputBox],6 + jne .notBox6 + mov eax,STPath + jmp .boxselected .notBox6 - cmp dword[GUIInputBox],7 - jne .notBox7 - mov eax,GNextPath - jmp .boxselected + cmp dword[GUIInputBox],7 + jne .notBox7 + mov eax,GNextPath + jmp .boxselected .notBox7 - cmp dword[GUIInputBox],8 - jne .notBox8 - mov eax,FEOEZPath - jmp .boxselected + cmp dword[GUIInputBox],8 + jne .notBox8 + mov eax,FEOEZPath + jmp .boxselected .notBox8 - cmp dword[GUIInputBox],9 - jne .notBox9 - mov eax,SJNSPath - jmp .boxselected + cmp dword[GUIInputBox],9 + jne .notBox9 + mov eax,SJNSPath + jmp .boxselected .notBox9 - cmp dword[GUIInputBox],10 - jne .notBox10 - mov eax,MDHPath - jmp .boxselected + cmp dword[GUIInputBox],10 + jne .notBox10 + mov eax,MDHPath + jmp .boxselected .notBox10 - cmp dword[GUIInputBox],11 - jne .notBox11 - mov eax,SPL4Path - jmp .boxselected + cmp dword[GUIInputBox],11 + jne .notBox11 + mov eax,SPL4Path + jmp .boxselected .notBox11 .boxselected - mov ecx,eax + mov ecx,eax - ;Find end of string + ;Find end of string .findend - cmp byte[eax],0 - je .foundend - inc eax - jmp .findend + cmp byte[eax],0 + je .foundend + inc eax + jmp .findend .foundend - cmp dh,8 ;Backspace - jne .notbackspace - cmp eax,ecx - je .cantback - mov byte[eax-1],0 + cmp dh,8 ;Backspace + jne .notbackspace + cmp eax,ecx + je .cantback + mov byte[eax-1],0 .cantback - ret + ret .notbackspace - cmp dh,13 ;Enter - jne .notenter - mov dword[GUIInputBox],0 - ret + cmp dh,13 ;Enter + jne .notenter + mov dword[GUIInputBox],0 + ret .notenter - ;check if we're at the end - add ecx,dword[GUIInputLimit] - cmp eax,ecx - jne .stillroom - ret + ;check if we're at the end + add ecx,dword[GUIInputLimit] + cmp eax,ecx + jne .stillroom + ret .stillroom - mov [eax],dh + mov [eax],dh .nokeypressed - ret + ret SECTION .bss GUIInputBox resd 1 @@ -1539,477 +1570,476 @@ GUIInputLimit resd 1 SECTION .text GUIMovieKeys: - cmp dh,'a' ;Setup - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' ;Setup + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - GUIKeyButtonHole CMovieExt,'v','0' ; Select Radio Buttons - GUIKeyButtonHole CMovieExt,'1','1' - GUIKeyButtonHole CMovieExt,'2','2' - GUIKeyButtonHole CMovieExt,'3','3' - GUIKeyButtonHole CMovieExt,'4','4' - GUIKeyButtonHole CMovieExt,'5','5' - GUIKeyButtonHole CMovieExt,'6','6' - GUIKeyButtonHole CMovieExt,'7','7' - GUIKeyButtonHole CMovieExt,'8','8' - GUIKeyButtonHole CMovieExt,'9','9' + GUIKeyButtonHole CMovieExt,'v','0' ; Select Radio Buttons + GUIKeyButtonHole CMovieExt,'1','1' + GUIKeyButtonHole CMovieExt,'2','2' + GUIKeyButtonHole CMovieExt,'3','3' + GUIKeyButtonHole CMovieExt,'4','4' + GUIKeyButtonHole CMovieExt,'5','5' + GUIKeyButtonHole CMovieExt,'6','6' + GUIKeyButtonHole CMovieExt,'7','7' + GUIKeyButtonHole CMovieExt,'8','8' + GUIKeyButtonHole CMovieExt,'9','9' - GUIKeyButtonHole MovieStartMethod,0,'N' ; Start From Radio Buttons - GUIKeyButtonHole MovieStartMethod,1,'P' - GUIKeyButtonHole MovieStartMethod,2,'R' - GUIKeyButtonHole MovieStartMethod,3,'S' + GUIKeyButtonHole MovieStartMethod,0,'N' ; Start From Radio Buttons + GUIKeyButtonHole MovieStartMethod,1,'P' + GUIKeyButtonHole MovieStartMethod,2,'R' + GUIKeyButtonHole MovieStartMethod,3,'S' - GUIKeyButtonHole MovieVideoMode,0,'O' - GUIKeyButtonHole MovieVideoMode,1,'W' - GUIKeyButtonHole MovieVideoMode,2,'F' - GUIKeyButtonHole MovieVideoMode,3,'L' - GUIKeyButtonHole MovieVideoMode,4,'X' - GUIKeyButtonHole MovieVideoMode,5,'C' + GUIKeyButtonHole MovieVideoMode,0,'O' + GUIKeyButtonHole MovieVideoMode,1,'W' + GUIKeyButtonHole MovieVideoMode,2,'F' + GUIKeyButtonHole MovieVideoMode,3,'L' + GUIKeyButtonHole MovieVideoMode,4,'X' + GUIKeyButtonHole MovieVideoMode,5,'C' - GUIKeyCheckbox MovieAudio,'A' - GUIKeyCheckbox MovieVideoAudio,'V' - GUIKeyCheckbox MovieAudioCompress,'M' + GUIKeyCheckbox MovieAudio,'A' + GUIKeyCheckbox MovieVideoAudio,'V' + GUIKeyCheckbox MovieAudioCompress,'M' - GUIKeyCheckbox MovieDisplayFrame,'D' ; Checkbox - ret + GUIKeyCheckbox MovieDisplayFrame,'D' ; Checkbox + ret GUIComboKeys: - ; Calculate Position - xor eax,eax + ; Calculate Position + xor eax,eax .nozero - cmp byte[GUIComboTextH+eax],0 - je .zero - inc eax - jmp .nozero + cmp byte[GUIComboTextH+eax],0 + je .zero + inc eax + jmp .nozero .zero - mov [GUIComboPos],al - cmp dh,8 - jne .nobacksp - cmp byte[GUIComboPos],0 - je .nochar - mov byte[GUICCFlash],0 - xor eax,eax - mov al,[GUIComboPos] - dec eax - mov byte[GUIComboTextH+eax],0 - ret + mov [GUIComboPos],al + cmp dh,8 + jne .nobacksp + cmp byte[GUIComboPos],0 + je .nochar + mov byte[GUICCFlash],0 + xor eax,eax + mov al,[GUIComboPos] + dec eax + mov byte[GUIComboTextH+eax],0 + ret .nobacksp - cmp dh,0 - je .nochar - cmp dh,13 - je .nochar - cmp byte[GUIComboPos],19 - je .nochar - xor eax,eax - mov byte[GUICCFlash],0 - mov al,[GUIComboPos] - mov [GUIComboTextH+eax],dh + cmp dh,0 + je .nochar + cmp dh,13 + je .nochar + cmp byte[GUIComboPos],19 + je .nochar + xor eax,eax + mov byte[GUICCFlash],0 + mov al,[GUIComboPos] + mov [GUIComboTextH+eax],dh .nochar - ret + ret GUICheatKeys: - cmp dword[GUIcurrentcheatwin],1 - je near .textboxa - cmp dword[GUIcurrentcheatwin],2 - je near .textboxb - cmp dh,'a' - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dword[GUIcurrentcheatwin],1 + je near .textboxa + cmp dword[GUIcurrentcheatwin],2 + je near .textboxb + cmp dh,'a' + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - cmp dh,'R' ; Hotkeys - jne .noremocheat - jmp CheatCodeRemove + cmp dh,'R' ; Hotkeys + jne .noremocheat + jmp CheatCodeRemove .noremocheat - cmp dh,'T' - jne .notoggcheat - jmp CheatCodeToggle + cmp dh,'T' + jne .notoggcheat + jmp CheatCodeToggle .notoggcheat - cmp dh,'S' - jne .nosavecheat - jmp CheatCodeSave + cmp dh,'S' + jne .nosavecheat + jmp CheatCodeSave .nosavecheat - cmp dh,'L' - jne .noloadcheat - jmp CheatCodeLoad + cmp dh,'L' + jne .noloadcheat + jmp CheatCodeLoad .noloadcheat - cmp dh,'F' - jne .nofixcheat - jmp CheatCodeFix + cmp dh,'F' + jne .nofixcheat + jmp CheatCodeFix .nofixcheat - cmp dh,'A' - jne .noauto - xor byte[AutoLoadCht],1 + cmp dh,'A' + jne .noauto + xor byte[AutoLoadCht],1 .noauto ;Main Cheat Box - cmp dword[NumCheats],0 - jne .nozero - ret + cmp dword[NumCheats],0 + jne .nozero + ret .nozero %ifdef __UNIXSDL__ - cmp al,89 - je .homepressed - cmp dword[numlockptr],1 - je .nohome - cmp al,71 - jne .nohome + cmp al,89 + je .homepressed + cmp dword[numlockptr],1 + je .nohome + cmp al,71 + jne .nohome .homepressed %else - cmp al,71 - jne .nohome + cmp al,71 + jne .nohome %endif - mov dword[GUIcurrentcheatcursloc],0 - mov dword[GUIcurrentcheatviewloc],0 - ret + mov dword[GUIcurrentcheatcursloc],0 + mov dword[GUIcurrentcheatviewloc],0 + ret .nohome %ifdef __UNIXSDL__ - cmp al,89 - je .endppressed - cmp dword[numlockptr],1 - je .noendp - cmp al,79 - jne .noendp + cmp al,89 + je .endppressed + cmp dword[numlockptr],1 + je .noendp + cmp al,79 + jne .noendp .endppressed %else - cmp al,79 - jne .noendp + cmp al,79 + jne .noendp %endif - mov eax,[NumCheats] - dec eax - mov [GUIcurrentcheatcursloc],eax - sub eax,11 - mov [GUIcurrentcheatviewloc],eax - test dword[GUIcurrentcheatviewloc],8000000h - jz .posve - mov dword[GUIcurrentcheatviewloc],0 + mov eax,[NumCheats] + dec eax + mov [GUIcurrentcheatcursloc],eax + sub eax,11 + mov [GUIcurrentcheatviewloc],eax + test dword[GUIcurrentcheatviewloc],8000000h + jz .posve + mov dword[GUIcurrentcheatviewloc],0 .posve - ret + ret .noendp %ifdef __UNIXSDL__ - cmp al,90 - je .up - cmp dword[numlockptr],1 - je .noup - cmp al,72 - jne .noup + cmp al,90 + je .up + cmp dword[numlockptr],1 + je .noup + cmp al,72 + jne .noup %else - cmp al,72 - jne .noup + cmp al,72 + jne .noup %endif .up - cmp dword[GUIcurrentcheatcursloc],0 - je .noup - mov ebx,[GUIcurrentcheatcursloc] - cmp [GUIcurrentcheatviewloc],ebx - jne .noviewdec - dec dword[GUIcurrentcheatviewloc] + cmp dword[GUIcurrentcheatcursloc],0 + je .noup + mov ebx,[GUIcurrentcheatcursloc] + cmp [GUIcurrentcheatviewloc],ebx + jne .noviewdec + dec dword[GUIcurrentcheatviewloc] .noviewdec - dec dword[GUIcurrentcheatcursloc] + dec dword[GUIcurrentcheatcursloc] .noup %ifdef __UNIXSDL__ - cmp al, 96 - je .downpressed - cmp dword[numlockptr],1 - je .nodown - cmp al,80 - jne .nodown + cmp al, 96 + je .downpressed + cmp dword[numlockptr],1 + je .nodown + cmp al,80 + jne .nodown .downpressed %else - cmp al,80 - jne .nodown + cmp al,80 + jne .nodown %endif - mov ebx,[GUIcurrentcheatcursloc] - inc ebx - cmp ebx,[NumCheats] - jae .noviewinc - inc dword[GUIcurrentcheatcursloc] - sub ebx,12 - cmp ebx,[GUIcurrentcheatviewloc] - jne .noviewinc - inc dword[GUIcurrentcheatviewloc] + mov ebx,[GUIcurrentcheatcursloc] + inc ebx + cmp ebx,[NumCheats] + jae .noviewinc + inc dword[GUIcurrentcheatcursloc] + sub ebx,12 + cmp ebx,[GUIcurrentcheatviewloc] + jne .noviewinc + inc dword[GUIcurrentcheatviewloc] .noviewinc .nodown %ifdef __UNIXSDL__ - cmp al,91 - je .pageuppressed - cmp dword[numlockptr],1 - je .nopageup - cmp al,73 - jne .nopageup + cmp al,91 + je .pageuppressed + cmp dword[numlockptr],1 + je .nopageup + cmp al,73 + jne .nopageup .pageuppressed %else - cmp al,73 - jne .nopageup + cmp al,73 + jne .nopageup %endif - sub dword[GUIcurrentcheatviewloc],12 - sub dword[GUIcurrentcheatcursloc],12 - test dword[GUIcurrentcheatviewloc],8000000h - jz .posv - mov dword[GUIcurrentcheatviewloc],0 + sub dword[GUIcurrentcheatviewloc],12 + sub dword[GUIcurrentcheatcursloc],12 + test dword[GUIcurrentcheatviewloc],8000000h + jz .posv + mov dword[GUIcurrentcheatviewloc],0 .posv - test dword[GUIcurrentcheatcursloc],8000000h - jz .posc - mov dword[GUIcurrentcheatcursloc],0 + test dword[GUIcurrentcheatcursloc],8000000h + jz .posc + mov dword[GUIcurrentcheatcursloc],0 .posc .nopageup %ifdef __UNIXSDL__ - cmp al, 97 - je .pagednpressed - cmp dword[numlockptr],1 - je .nopagedown - cmp al,81 - jne .nopagedown + cmp al, 97 + je .pagednpressed + cmp dword[numlockptr],1 + je .nopagedown + cmp al,81 + jne .nopagedown .pagednpressed %else - cmp al,81 - jne .nopagedown + cmp al,81 + jne .nopagedown %endif - add dword[GUIcurrentcheatviewloc],12 - add dword[GUIcurrentcheatcursloc],12 - mov ebx,[NumCheats] - dec ebx - cmp dword[GUIcurrentcheatcursloc],ebx - jb .poscd - mov [GUIcurrentcheatcursloc],ebx + add dword[GUIcurrentcheatviewloc],12 + add dword[GUIcurrentcheatcursloc],12 + mov ebx,[NumCheats] + dec ebx + cmp dword[GUIcurrentcheatcursloc],ebx + jb .poscd + mov [GUIcurrentcheatcursloc],ebx .poscd - sub ebx,11 - cmp dword[GUIcurrentcheatviewloc],ebx - jl .posvd - test ebx,8000000h - jz .noneg - mov ebx,0 + sub ebx,11 + cmp dword[GUIcurrentcheatviewloc],ebx + jl .posvd + test ebx,8000000h + jz .noneg + mov ebx,0 .noneg - mov [GUIcurrentcheatviewloc],ebx + mov [GUIcurrentcheatviewloc],ebx .posvd .nopagedown - ret - + ret ;Enter Code Input Box .textboxa - cmp byte[GUICheatPosA],0 - je near .nobacksp - cmp dh,9 - je .yesret - cmp dh,13 - jne near .noret + cmp byte[GUICheatPosA],0 + je near .nobacksp + cmp dh,9 + je .yesret + cmp dh,13 + jne near .noret .yesret - cmp byte[GUICheatPosA],2 - jne near .nocodemod - mov byte[GUICheatPosA],0 - mov esi,[GUIcurrentcheatcursloc] - shl esi,5 - sub esi,[GUIcurrentcheatcursloc] - sub esi,[GUIcurrentcheatcursloc] - sub esi,[GUIcurrentcheatcursloc] - sub esi,[GUIcurrentcheatcursloc] - add esi,cheatdata - mov al,[GUICheatTextZ1] - cmp al,'a' - jae .lowletter - cmp al,'A' - jae .letter - sub al,'0' - jmp .num + cmp byte[GUICheatPosA],2 + jne near .nocodemod + mov byte[GUICheatPosA],0 + mov esi,[GUIcurrentcheatcursloc] + shl esi,5 + sub esi,[GUIcurrentcheatcursloc] + sub esi,[GUIcurrentcheatcursloc] + sub esi,[GUIcurrentcheatcursloc] + sub esi,[GUIcurrentcheatcursloc] + add esi,cheatdata + mov al,[GUICheatTextZ1] + cmp al,'a' + jae .lowletter + cmp al,'A' + jae .letter + sub al,'0' + jmp .num .lowletter - sub al,'a'-10 - jmp .num + sub al,'a'-10 + jmp .num .letter - sub al,'A'-10 + sub al,'A'-10 .num - mov ah,[GUICheatTextZ1+1] - cmp ah,'a' - jae .lowletter2 - cmp ah,'A' - jae .letter2 - sub ah,'0' - jmp .num2 + mov ah,[GUICheatTextZ1+1] + cmp ah,'a' + jae .lowletter2 + cmp ah,'A' + jae .letter2 + sub ah,'0' + jmp .num2 .lowletter2 - sub ah,'a'-10 - jmp .num2 + sub ah,'a'-10 + jmp .num2 .letter2 - sub ah,'A'-10 + sub ah,'A'-10 .num2 - shl al,4 - and ah,0Fh - or al,ah - mov [esi+1],al - mov word[GUICheatTextZ1],0 - pushad - call EnableCheatCodeNoPrevMod - popad - jmp .noret + shl al,4 + and ah,0Fh + or al,ah + mov [esi+1],al + mov word[GUICheatTextZ1],0 + pushad + call EnableCheatCodeNoPrevMod + popad + jmp .noret .nocodemod - inc dword[GUIcurrentcheatwin] - mov byte[GUICCFlash],0 + inc dword[GUIcurrentcheatwin] + mov byte[GUICCFlash],0 .noret - cmp dh,8 - jne .nobacksp - mov byte[GUICCFlash],0 - dec byte[GUICheatPosA] - xor eax,eax - mov al,[GUICheatPosA] - mov byte[GUICheatTextZ1+eax],'_' - mov byte[GUICheatTextZ1+eax+1],0 - ret + cmp dh,8 + jne .nobacksp + mov byte[GUICCFlash],0 + dec byte[GUICheatPosA] + xor eax,eax + mov al,[GUICheatPosA] + mov byte[GUICheatTextZ1+eax],'_' + mov byte[GUICheatTextZ1+eax+1],0 + ret .nobacksp - cmp dh,0 - je .nochar - cmp dh,13 - je .nochar - cmp dh,8 - je .nochar - cmp dh,9 - je .nochar - cmp byte[GUICheatPosA],14 - je .nochar - mov byte[GUICCFlash],0 - xor eax,eax - mov al,[GUICheatPosA] - mov [GUICheatTextZ1+eax],dh - mov byte[GUICheatTextZ1+eax+1],'_' - mov byte[GUICheatTextZ1+eax+2],0 - inc byte[GUICheatPosA] + cmp dh,0 + je .nochar + cmp dh,13 + je .nochar + cmp dh,8 + je .nochar + cmp dh,9 + je .nochar + cmp byte[GUICheatPosA],14 + je .nochar + mov byte[GUICCFlash],0 + xor eax,eax + mov al,[GUICheatPosA] + mov [GUICheatTextZ1+eax],dh + mov byte[GUICheatTextZ1+eax+1],'_' + mov byte[GUICheatTextZ1+eax+2],0 + inc byte[GUICheatPosA] .nochar - ret + ret ;Description Input Box .textboxb - cmp dh,13 - jne .noretb - mov byte[GUICCFlash],0 - jmp ProcessCheatCode + cmp dh,13 + jne .noretb + mov byte[GUICCFlash],0 + jmp ProcessCheatCode .noretb - cmp byte[GUICheatPosB],0 - je .nobackspb - cmp dh,8 - jne .nobackspb - mov byte[GUICCFlash],0 - dec byte[GUICheatPosB] - xor eax,eax - mov al,[GUICheatPosB] - mov byte[GUICheatTextZ2+eax],'_' - mov byte[GUICheatTextZ2+eax+1],0 - ret + cmp byte[GUICheatPosB],0 + je .nobackspb + cmp dh,8 + jne .nobackspb + mov byte[GUICCFlash],0 + dec byte[GUICheatPosB] + xor eax,eax + mov al,[GUICheatPosB] + mov byte[GUICheatTextZ2+eax],'_' + mov byte[GUICheatTextZ2+eax+1],0 + ret .nobackspb - cmp dh,0 - je .nocharb - cmp dh,13 - je .nocharb - cmp dh,8 - je .nocharb - cmp byte[GUICheatPosB],18 - je .nocharb - xor eax,eax - mov byte[GUICCFlash],0 - mov al,[GUICheatPosB] - mov [GUICheatTextZ2+eax],dh - mov byte[GUICheatTextZ2+eax+1],'_' - mov byte[GUICheatTextZ2+eax+2],0 - inc byte[GUICheatPosB] + cmp dh,0 + je .nocharb + cmp dh,13 + je .nocharb + cmp dh,8 + je .nocharb + cmp byte[GUICheatPosB],18 + je .nocharb + xor eax,eax + mov byte[GUICCFlash],0 + mov al,[GUICheatPosB] + mov [GUICheatTextZ2+eax],dh + mov byte[GUICheatTextZ2+eax+1],'_' + mov byte[GUICheatTextZ2+eax+2],0 + inc byte[GUICheatPosB] .nocharb - ret + ret %macro CompareKeyMacro 3 - cmp dh,%1 - jne %%skip - mov byte[%2],%3 + cmp dh,%1 + jne %%skip + mov byte[%2],%3 %%skip %endmacro InsertSearchCharacter: - push edx - push eax - ; Send character into CSInputDisplay - ; Find location - mov ecx,CSInputDisplay + push edx + push eax + ; Send character into CSInputDisplay + ; Find location + mov ecx,CSInputDisplay .next - cmp byte[ecx],0 - je .found - cmp byte[ecx],'_' - je .found - inc ecx - jmp .next + cmp byte[ecx],0 + je .found + cmp byte[ecx],'_' + je .found + inc ecx + jmp .next .found - ; Delete if necessary - cmp dh,8 - jne .notdelete - cmp ecx,CSInputDisplay - je near .done - dec ecx - jmp .placecursor + ; Delete if necessary + cmp dh,8 + jne .notdelete + cmp ecx,CSInputDisplay + je near .done + dec ecx + jmp .placecursor .notdelete - cmp ecx,CSInputDisplay+10 - je near .done - ; Add character if necessary - cmp dh,'0' - jb near .done - cmp dh,'9' - jbe .okay - cmp byte[CheatSrcByteBase],0 - je near .done - cmp dh,'F' - ja near .done - cmp dh,'A' - jb near .done + cmp ecx,CSInputDisplay+10 + je near .done + ; Add character if necessary + cmp dh,'0' + jb near .done + cmp dh,'9' + jbe .okay + cmp byte[CheatSrcByteBase],0 + je near .done + cmp dh,'F' + ja near .done + cmp dh,'A' + jb near .done .okay - mov [ecx],dh - inc ecx - ; Process cursor if over the window + mov [ecx],dh + inc ecx + ; Process cursor if over the window .placecursor - mov byte[ecx],'_' - mov byte[ecx+1],0 + mov byte[ecx],'_' + mov byte[ecx+1],0 - mov byte[CSOverValue],0 - ; Find overall value and delete if over - mov ecx,CSInputDisplay - mov ebx,10 - cmp byte[CheatSrcByteBase],0 - je .dec - mov ebx,16 + mov byte[CSOverValue],0 + ; Find overall value and delete if over + mov ecx,CSInputDisplay + mov ebx,10 + cmp byte[CheatSrcByteBase],0 + je .dec + mov ebx,16 .dec - xor eax,eax + xor eax,eax .next2 - cmp byte[ecx],0 - je .found2 - cmp byte[ecx],'_' - je .found2 - mul ebx - or edx,edx - jz .notoverflow - mov byte[CSOverValue],1 + cmp byte[ecx],0 + je .found2 + cmp byte[ecx],'_' + je .found2 + mul ebx + or edx,edx + jz .notoverflow + mov byte[CSOverValue],1 .notoverflow - xor edx,edx - mov dl,[ecx] - cmp dl,'A' - jb .below - sub dl,'A'-10-'0' + xor edx,edx + mov dl,[ecx] + cmp dl,'A' + jb .below + sub dl,'A'-10-'0' .below - sub dl,'0' - add eax,edx - jnc .notoverflowb - mov byte[CSOverValue],1 + sub dl,'0' + add eax,edx + jnc .notoverflowb + mov byte[CSOverValue],1 .notoverflowb - inc ecx - jmp .next2 + inc ecx + jmp .next2 .found2 - xor ebx,ebx - mov bl,[CheatSrcByteSize] - mov ebx,[SrcMask+ebx*4] - mov [CSCurValue],eax - cmp eax,ebx - jbe .done - mov byte[CSOverValue],1 + xor ebx,ebx + mov bl,[CheatSrcByteSize] + mov ebx,[SrcMask+ebx*4] + mov [CSCurValue],eax + cmp eax,ebx + jbe .done + mov byte[CSOverValue],1 .done - pop eax - pop edx - ret + pop eax + pop edx + ret SECTION .bss CSOverValue resb 1 @@ -2017,964 +2047,963 @@ CSCurValue resd 1 SECTION .text InsertSearchDescription: - mov eax,CSDescDisplay - xor dl,dl + mov eax,CSDescDisplay + xor dl,dl .next - cmp byte[eax],0 - je .fin - inc eax - inc dl - jmp .next + cmp byte[eax],0 + je .fin + inc eax + inc dl + jmp .next .fin - or dl,dl - jz .nobackspb - cmp dh,8 - jne .nobackspb - mov byte[eax-1],0 - ret + or dl,dl + jz .nobackspb + cmp dh,8 + jne .nobackspb + mov byte[eax-1],0 + ret .nobackspb - cmp dh,0 - je .nocharb - cmp dh,13 - je .nocharb - cmp dh,8 - je .nocharb - cmp dl,18 - je .nocharb - mov [eax],dh - mov byte[eax+1],0 + cmp dh,0 + je .nocharb + cmp dh,13 + je .nocharb + cmp dh,8 + je .nocharb + cmp dl,18 + je .nocharb + mov [eax],dh + mov byte[eax+1],0 .nocharb - ret + ret GUICheatSearchKeys: - cmp dh,'a' - jb .nocap - cmp dh,'z' - ja .nocap - sub dh,'z'-'Z' + cmp dh,'a' + jb .nocap + cmp dh,'z' + ja .nocap + sub dh,'z'-'Z' .nocap - cmp byte[CheatWinMode],3 - je near .add - cmp byte[CheatWinMode],2 - je near .view - cmp byte[CheatWinMode],1 - je near .search + cmp byte[CheatWinMode],3 + je near .add + cmp byte[CheatWinMode],2 + je near .view + cmp byte[CheatWinMode],1 + je near .search - CompareKeyMacro '1',CheatSrcByteSize,0 ; Main Menu - CompareKeyMacro '2',CheatSrcByteSize,1 - CompareKeyMacro '3',CheatSrcByteSize,2 - CompareKeyMacro '4',CheatSrcByteSize,3 - CompareKeyMacro 'D',CheatSrcByteBase,0 - CompareKeyMacro 'H',CheatSrcByteBase,1 - CompareKeyMacro 'E',CheatSrcSearchType,0 - CompareKeyMacro 'C',CheatSrcSearchType,1 + CompareKeyMacro '1',CheatSrcByteSize,0 ; Main Menu + CompareKeyMacro '2',CheatSrcByteSize,1 + CompareKeyMacro '3',CheatSrcByteSize,2 + CompareKeyMacro '4',CheatSrcByteSize,3 + CompareKeyMacro 'D',CheatSrcByteBase,0 + CompareKeyMacro 'H',CheatSrcByteBase,1 + CompareKeyMacro 'E',CheatSrcSearchType,0 + CompareKeyMacro 'C',CheatSrcSearchType,1 - cmp dh,13 ; Start Button - je .start - cmp dh,'S' - jne .notstart + cmp dh,13 ; Start Button + je .start + cmp dh,'S' + jne .notstart .start - call CheatCodeSearchInit - ret + call CheatCodeSearchInit + ret .notstart - ret + ret .search ; Shortcuts for Select Comparison - cmp byte[CheatSrcSearchType],1 - je .compare - call InsertSearchCharacter - jmp .nomovedown + cmp byte[CheatSrcSearchType],1 + je .compare + call InsertSearchCharacter + jmp .nomovedown .compare - cmp dh,',' - je .lessthan - cmp dh,'N' - jne .notlessthan + cmp dh,',' + je .lessthan + cmp dh,'N' + jne .notlessthan .lessthan - mov byte[CheatCompareValue],0 + mov byte[CheatCompareValue],0 .notlessthan - cmp dh,'.' - je .greaterthan - cmp dh,'E' - jne .notgreaterthan + cmp dh,'.' + je .greaterthan + cmp dh,'E' + jne .notgreaterthan .greaterthan - mov byte[CheatCompareValue],1 + mov byte[CheatCompareValue],1 .notgreaterthan - cmp dh,'W' - je .equalthan - cmp dh,'+' - jne .notequalthan + cmp dh,'W' + je .equalthan + cmp dh,'+' + jne .notequalthan .equalthan - mov byte[CheatCompareValue],2 + mov byte[CheatCompareValue],2 .notequalthan - cmp dh,'A' - jne .notnotequalthan - mov byte[CheatCompareValue],3 + cmp dh,'A' + jne .notnotequalthan + mov byte[CheatCompareValue],3 .notnotequalthan %ifdef __UNIXSDL__ ; Select with Arrow Keys - cmp al,90 - je .yesmoveup - cmp dword[numlockptr],1 - je .nomoveup - cmp al,72 - jne .nomoveup + cmp al,90 + je .yesmoveup + cmp dword[numlockptr],1 + je .nomoveup + cmp al,72 + jne .nomoveup .yesmoveup %else - cmp al,72 - jne .nomoveup + cmp al,72 + jne .nomoveup %endif - cmp byte[CheatCompareValue],0 - je .nomoveup - dec byte[CheatCompareValue] + cmp byte[CheatCompareValue],0 + je .nomoveup + dec byte[CheatCompareValue] .nomoveup %ifdef __UNIXSDL__ - cmp al,96 - je .yesmovedown - cmp dword[numlockptr],1 - je .nomovedown - cmp al,80 - jne .nomovedown + cmp al,96 + je .yesmovedown + cmp dword[numlockptr],1 + je .nomovedown + cmp al,80 + jne .nomovedown .yesmovedown %else - cmp al,80 - jne .nomovedown + cmp al,80 + jne .nomovedown %endif - cmp byte[CheatCompareValue],3 - je .nomovedown - inc byte[CheatCompareValue] - + cmp byte[CheatCompareValue],3 + je .nomovedown + inc byte[CheatCompareValue] .nomovedown ; Restart/View/Search Buttons - cmp dh,'R' - jne .notrestart - mov byte[CheatWinMode],0 - mov byte[CheatSearchStatus],0 + cmp dh,'R' + jne .notrestart + mov byte[CheatWinMode],0 + mov byte[CheatSearchStatus],0 .notrestart - cmp dh,'V' - jne .notview - mov byte[CheatWinMode],2 + cmp dh,'V' + jne .notview + mov byte[CheatWinMode],2 .notview - cmp dh,13 - je .searchprocess - cmp dh,'S' - jne .nosearchprocess + cmp dh,13 + je .searchprocess + cmp dh,'S' + jne .nosearchprocess .searchprocess - cmp byte[CheatSearchStatus],1 - je .nosearchprocess - call CheatCodeSearchProcess + cmp byte[CheatSearchStatus],1 + je .nosearchprocess + call CheatCodeSearchProcess .nosearchprocess - ret + ret .view ; View - cmp dword[NumCheatSrc],0 ; Return Hotkey - jne .nozero - cmp dh,27 - je .yesret - cmp dh,'R' - jne .notreturnb + cmp dword[NumCheatSrc],0 ; Return Hotkey + jne .nozero + cmp dh,27 + je .yesret + cmp dh,'R' + jne .notreturnb .yesret - mov byte[CheatWinMode],1 + mov byte[CheatWinMode],1 .notreturnb - ret + ret .nozero ; Select Codes with arrow keys %ifdef __UNIXSDL__ - cmp al,89 - je .yeshome - cmp dword[numlockptr],1 - je .nohome - cmp al,71 - jne .nohome + cmp al,89 + je .yeshome + cmp dword[numlockptr],1 + je .nohome + cmp al,71 + jne .nohome .yeshome %else - cmp al,71 - jne .nohome + cmp al,71 + jne .nohome %endif - mov dword[GUIcurrentchtsrccursloc],0 - mov dword[GUIcurrentchtsrcviewloc],0 - ret + mov dword[GUIcurrentchtsrccursloc],0 + mov dword[GUIcurrentchtsrcviewloc],0 + ret .nohome %ifdef __UNIXSDL__ - cmp al,95 - je .yesendp - cmp dword[numlockptr],1 - je .noendp - cmp al,79 - jne .noendp + cmp al,95 + je .yesendp + cmp dword[numlockptr],1 + je .noendp + cmp al,79 + jne .noendp .yesendp %else - cmp al,79 - jne .noendp + cmp al,79 + jne .noendp %endif - mov eax,[NumCheatSrc] - dec eax - mov [GUIcurrentchtsrccursloc],eax - sub eax,11 - mov [GUIcurrentchtsrcviewloc],eax - test dword[GUIcurrentchtsrcviewloc],8000000h - jz .posve - mov dword[GUIcurrentchtsrcviewloc],0 + mov eax,[NumCheatSrc] + dec eax + mov [GUIcurrentchtsrccursloc],eax + sub eax,11 + mov [GUIcurrentchtsrcviewloc],eax + test dword[GUIcurrentchtsrcviewloc],8000000h + jz .posve + mov dword[GUIcurrentchtsrcviewloc],0 .posve - ret + ret .noendp %ifdef __UNIXSDL__ - cmp al,90 - je .up - cmp dword[numlockptr],1 - je .noup - cmp al,72 - jne .noup + cmp al,90 + je .up + cmp dword[numlockptr],1 + je .noup + cmp al,72 + jne .noup %else - cmp al,72 - jne .noup + cmp al,72 + jne .noup %endif .up - cmp dword[GUIcurrentchtsrccursloc],0 - je .noup - mov ebx,[GUIcurrentchtsrccursloc] - cmp [GUIcurrentchtsrcviewloc],ebx - jne .noviewdec - dec dword[GUIcurrentchtsrcviewloc] + cmp dword[GUIcurrentchtsrccursloc],0 + je .noup + mov ebx,[GUIcurrentchtsrccursloc] + cmp [GUIcurrentchtsrcviewloc],ebx + jne .noviewdec + dec dword[GUIcurrentchtsrcviewloc] .noviewdec - dec dword[GUIcurrentchtsrccursloc] + dec dword[GUIcurrentchtsrccursloc] .noup %ifdef __UNIXSDL__ - cmp al,96 - je .yesdown - cmp dword[numlockptr],1 - je .nodown - cmp al,80 - jne .nodown + cmp al,96 + je .yesdown + cmp dword[numlockptr],1 + je .nodown + cmp al,80 + jne .nodown .yesdown %else - cmp al,80 - jne .nodown + cmp al,80 + jne .nodown %endif - mov ebx,[GUIcurrentchtsrccursloc] - inc ebx - cmp ebx,[NumCheatSrc] - jae .noviewinc - inc dword[GUIcurrentchtsrccursloc] - sub ebx,12 - cmp ebx,[GUIcurrentchtsrcviewloc] - jne .noviewinc - inc dword[GUIcurrentchtsrcviewloc] + mov ebx,[GUIcurrentchtsrccursloc] + inc ebx + cmp ebx,[NumCheatSrc] + jae .noviewinc + inc dword[GUIcurrentchtsrccursloc] + sub ebx,12 + cmp ebx,[GUIcurrentchtsrcviewloc] + jne .noviewinc + inc dword[GUIcurrentchtsrcviewloc] .noviewinc .nodown %ifdef __UNIXSDL__ ; Pageup/Down to select Cheats - cmp al,91 - je .yespgup - cmp dword[numlockptr],1 - je .nopageup - cmp al,73 - jne .nopageup + cmp al,91 + je .yespgup + cmp dword[numlockptr],1 + je .nopageup + cmp al,73 + jne .nopageup .yespgup %else - cmp al,73 - jne .nopageup + cmp al,73 + jne .nopageup %endif - sub dword[GUIcurrentchtsrcviewloc],12 - sub dword[GUIcurrentchtsrccursloc],12 - test dword[GUIcurrentchtsrcviewloc],8000000h - jz .posv - mov dword[GUIcurrentchtsrcviewloc],0 + sub dword[GUIcurrentchtsrcviewloc],12 + sub dword[GUIcurrentchtsrccursloc],12 + test dword[GUIcurrentchtsrcviewloc],8000000h + jz .posv + mov dword[GUIcurrentchtsrcviewloc],0 .posv - test dword[GUIcurrentchtsrccursloc],8000000h - jz .posc - mov dword[GUIcurrentchtsrccursloc],0 + test dword[GUIcurrentchtsrccursloc],8000000h + jz .posc + mov dword[GUIcurrentchtsrccursloc],0 .posc .nopageup %ifdef __UNIXSDL__ - cmp al,97 - je .yespgdn - cmp dword[numlockptr],1 - je .nopagedown - cmp al,81 - jne .nopagedown + cmp al,97 + je .yespgdn + cmp dword[numlockptr],1 + je .nopagedown + cmp al,81 + jne .nopagedown .yespgdn %else - cmp al,81 - jne .nopagedown + cmp al,81 + jne .nopagedown %endif - add dword[GUIcurrentchtsrcviewloc],12 - add dword[GUIcurrentchtsrccursloc],12 - mov ebx,[NumCheatSrc] - dec ebx - cmp dword[GUIcurrentchtsrccursloc],ebx - jb .poscd - mov [GUIcurrentchtsrccursloc],ebx + add dword[GUIcurrentchtsrcviewloc],12 + add dword[GUIcurrentchtsrccursloc],12 + mov ebx,[NumCheatSrc] + dec ebx + cmp dword[GUIcurrentchtsrccursloc],ebx + jb .poscd + mov [GUIcurrentchtsrccursloc],ebx .poscd - sub ebx,11 - cmp dword[GUIcurrentchtsrcviewloc],ebx - jl .posvd - test ebx,8000000h - jz .noneg - mov ebx,0 + sub ebx,11 + cmp dword[GUIcurrentchtsrcviewloc],ebx + jl .posvd + test ebx,8000000h + jz .noneg + mov ebx,0 .noneg - mov [GUIcurrentchtsrcviewloc],ebx + mov [GUIcurrentchtsrcviewloc],ebx .posvd .nopagedown - cmp dh,27 ; Return/Add Buttons - je .yesretb - cmp dh,'R' - jne .notreturn + cmp dh,27 ; Return/Add Buttons + je .yesretb + cmp dh,'R' + jne .notreturn .yesretb - mov byte[CheatWinMode],1 + mov byte[CheatWinMode],1 .notreturn - cmp dh,13 - je .yesadd - cmp dh,'A' - jne .notadd + cmp dh,13 + je .yesadd + cmp dh,'A' + jne .notadd .yesadd - mov byte[CheatWinMode],3 - mov byte[CurCStextpos],0 - mov byte[CSInputDisplay],'_' - mov byte[CSInputDisplay+1],0 - mov byte[CSDescDisplay],0 + mov byte[CheatWinMode],3 + mov byte[CurCStextpos],0 + mov byte[CSInputDisplay],'_' + mov byte[CSInputDisplay+1],0 + mov byte[CSDescDisplay],0 .notadd - ret + ret .add ; Add Cheat Window - cmp dh,27 ; Button Hotkey - je .yesretc - cmp byte[CurCStextpos],1 - je .notreturnc - cmp dh,'R' - jne .notreturnc + cmp dh,27 ; Button Hotkey + je .yesretc + cmp byte[CurCStextpos],1 + je .notreturnc + cmp dh,'R' + jne .notreturnc .nofastforward .yesretc - mov byte[CheatWinMode],2 + mov byte[CheatWinMode],2 .notreturnc - cmp byte[CurCStextpos],0 - jne near .nofirstbox - cmp dh,9 - je .yestab - cmp byte[CSOverValue],1 - je .noret - cmp dh,13 - jne .noret + cmp byte[CurCStextpos],0 + jne near .nofirstbox + cmp dh,9 + je .yestab + cmp byte[CSOverValue],1 + je .noret + cmp dh,13 + jne .noret .yestab - mov byte[CurCStextpos],1 + mov byte[CurCStextpos],1 .noret - call InsertSearchCharacter - ret + call InsertSearchCharacter + ret .nofirstbox - cmp byte[CurCStextpos],1 - jne near .nosecondbox - cmp dh,9 - jne .notab - mov byte[CurCStextpos],0 + cmp byte[CurCStextpos],1 + jne near .nosecondbox + cmp dh,9 + jne .notab + mov byte[CurCStextpos],0 .notab - cmp dh,13 - jne .noenter - jmp AddCSCheatCode + cmp dh,13 + jne .noenter + jmp AddCSCheatCode .noenter - call InsertSearchDescription - ret + call InsertSearchDescription + ret .nosecondbox - ret + ret ; Allows you to use the arrow keys to select a state number, and Enter to pick GUIStateSelKeys: - cmp al,13 - jne .noenter - xor eax,eax - mov al,[GUIwinptr] - dec eax - mov byte[GUIwinactiv+2],0 - mov byte[GUIwinorder+eax],0 - dec byte[GUIwinptr] - mov al,[GUIpmenupos] - mov [GUIcmenupos],al - ret + cmp al,13 + jne .noenter + xor eax,eax + mov al,[GUIwinptr] + dec eax + mov byte[GUIwinactiv+2],0 + mov byte[GUIwinorder+eax],0 + dec byte[GUIwinptr] + mov al,[GUIpmenupos] + mov [GUIcmenupos],al + ret .noenter %ifdef __UNIXSDL__ - cmp al,92 ; linux keypad left - je .yesleft - cmp dword[numlockptr],1 ; if numlock on, disregard numpad - je .noleft + cmp al,92 ; linux keypad left + je .yesleft + cmp dword[numlockptr],1 ; if numlock on, disregard numpad + je .noleft %endif - cmp al,75 ; linux numpad left, non-linux num/keypad left - jne .noleft + cmp al,75 ; linux numpad left, non-linux num/keypad left + jne .noleft .yesleft - mov ebx,[statefileloc] - mov cl,[fnamest+ebx] - cmp cl,'t' - jne .no1st - mov cl,'4' - jmp .done + mov ebx,[statefileloc] + mov cl,[fnamest+ebx] + cmp cl,'t' + jne .no1st + mov cl,'4' + jmp .done .no1st - cmp cl,'1' - jne .no2nd - mov cl,'t' - jmp .done + cmp cl,'1' + jne .no2nd + mov cl,'t' + jmp .done .no2nd - cmp cl,'5' - jne .no5th - mov cl,'9' - jmp .done + cmp cl,'5' + jne .no5th + mov cl,'9' + jmp .done .no5th - dec cl - jmp .done + dec cl + jmp .done .noleft %ifdef __UNIXSDL__ - cmp al,94 ; linux keypad right - je .yesright - cmp dword[numlockptr],1 ; if numlock on, disregard numpad - je .noright + cmp al,94 ; linux keypad right + je .yesright + cmp dword[numlockptr],1 ; if numlock on, disregard numpad + je .noright %endif - cmp al,77 ; linux numpad right, non-linux num/keypad right - jne .noright + cmp al,77 ; linux numpad right, non-linux num/keypad right + jne .noright .yesright - mov ebx,[statefileloc] - mov cl,[fnamest+ebx] - cmp cl,'t' - jne .noT - mov cl,'1' - jmp .done + mov ebx,[statefileloc] + mov cl,[fnamest+ebx] + cmp cl,'t' + jne .noT + mov cl,'1' + jmp .done .noT - cmp cl,'4' - jne .no4th - mov cl,'t' - jmp .done + cmp cl,'4' + jne .no4th + mov cl,'t' + jmp .done .no4th - cmp cl,'9' - jne .no9th - mov cl,'5' - jmp .done + cmp cl,'9' + jne .no9th + mov cl,'5' + jmp .done .no9th - inc cl - jmp .done + inc cl + jmp .done .noright %ifdef __UNIXSDL__ - cmp al,90 ; linux keypad up - je .yesvert - cmp dword[numlockptr],1 ; if numlock on, disregard numpad - je .noup + cmp al,90 ; linux keypad up + je .yesvert + cmp dword[numlockptr],1 ; if numlock on, disregard numpad + je .noup %endif - cmp al,72 ; linux numpad up, non-linux num/keypad up - je .yesvert + cmp al,72 ; linux numpad up, non-linux num/keypad up + je .yesvert .noup %ifdef __UNIXSDL__ - cmp al,96 ; linux keypad down - je .yesvert - cmp dword[numlockptr],1 ; if numlock on, disregard numpad - je .novert + cmp al,96 ; linux keypad down + je .yesvert + cmp dword[numlockptr],1 ; if numlock on, disregard numpad + je .novert %endif - cmp al,80 ; linux numpad down, non-linux num/keypad down - jne .novert + cmp al,80 ; linux numpad down, non-linux num/keypad down + jne .novert .yesvert - mov ebx,[statefileloc] - mov cl,[fnamest+ebx] - cmp cl,'t' - jne .noTv - mov cl,'5' - jmp .done + mov ebx,[statefileloc] + mov cl,[fnamest+ebx] + cmp cl,'t' + jne .noTv + mov cl,'5' + jmp .done .noTv - cmp cl,'5' - jne .no5v - mov cl,'t' - jmp .done + cmp cl,'5' + jne .no5v + mov cl,'t' + jmp .done .no5v - cmp cl,'5' - jb .noabove - sub cl,5 - jmp .done + cmp cl,'5' + jb .noabove + sub cl,5 + jmp .done .noabove - add cl,5 + add cl,5 .done - mov [fnamest+ebx],cl + mov [fnamest+ebx],cl .novert - ret + ret ; Allows you to select boxes with the arrow keys, Enter to choose GUIResetKeys: %ifdef __UNIXSDL__ - cmp al,92 - je .yesleft - cmp dword[numlockptr],1 - je .noleft - cmp al,75 - jne .noleft + cmp al,92 + je .yesleft + cmp dword[numlockptr],1 + je .noleft + cmp al,75 + jne .noleft .yesleft %else - cmp al,75 - jne .noleft + cmp al,75 + jne .noleft %endif - mov byte[GUICResetPos],0 + mov byte[GUICResetPos],0 .noleft %ifdef __UNIXSDL__ - cmp al,94 - je .yesright - cmp dword[numlockptr],1 - je .noright - cmp al,77 - jne .noright + cmp al,94 + je .yesright + cmp dword[numlockptr],1 + je .noright + cmp al,77 + jne .noright .yesright %else - cmp al,77 - jne .noright + cmp al,77 + jne .noright %endif - mov byte[GUICResetPos],1 + mov byte[GUICResetPos],1 .noright - cmp al,13 - jne .noconf - cmp byte[GUICResetPos],0 - je .yesreset - jmp .noreset + cmp al,13 + jne .noconf + cmp byte[GUICResetPos],0 + je .yesreset + jmp .noreset .noconf - cmp dh,'Y' - je .yesreset - cmp dh,'y' - jne .notyesreset + cmp dh,'Y' + je .yesreset + cmp dh,'y' + jne .notyesreset .yesreset - mov byte[GUICBHold],2 - jmp GUIProcReset + mov byte[GUICBHold],2 + jmp GUIProcReset .notyesreset - cmp dh,'N' - je .noreset - cmp dh,'n' - jne .notnoreset + cmp dh,'N' + je .noreset + cmp dh,'n' + jne .notnoreset .noreset - xor eax,eax - mov al,[GUIwinptr] - dec eax - mov byte[GUIwinactiv+12],0 - mov byte[GUIwinorder+eax],0 - dec byte[GUIwinptr] - mov al,[GUIpmenupos] - mov [GUIcmenupos],al + xor eax,eax + mov al,[GUIwinptr] + dec eax + mov byte[GUIwinactiv+12],0 + mov byte[GUIwinorder+eax],0 + dec byte[GUIwinptr] + mov al,[GUIpmenupos] + mov [GUIcmenupos],al .notnoreset - ret + ret ; Allows you to select boxes with the arrow keys, Enter to choose GUIStateKeys: %ifdef __UNIXSDL__ - cmp al,92 - je .yesleft - cmp dword[numlockptr],1 - je .noleft - cmp al,75 - jne .noleft + cmp al,92 + je .yesleft + cmp dword[numlockptr],1 + je .noleft + cmp al,75 + jne .noleft .yesleft %else - cmp al,75 - jne .noleft + cmp al,75 + jne .noleft %endif - mov byte[GUICStatePos],0 + mov byte[GUICStatePos],0 .noleft %ifdef __UNIXSDL__ - cmp al,94 - je .yesright - cmp dword[numlockptr],1 - je .noright - cmp al,77 - jne .noright + cmp al,94 + je .yesright + cmp dword[numlockptr],1 + je .noright + cmp al,77 + jne .noright .yesright %else - cmp al,77 - jne .noright + cmp al,77 + jne .noright %endif - mov byte[GUICStatePos],1 + mov byte[GUICStatePos],1 .noright - cmp al,13 - jne .noconf - cmp byte[GUICStatePos],0 - je .yesreset - jmp .noreset + cmp al,13 + jne .noconf + cmp byte[GUICStatePos],0 + je .yesreset + jmp .noreset .noconf - cmp dh,'Y' - je .yesreset - cmp dh,'y' - jne .notyesreset + cmp dh,'Y' + je .yesreset + cmp dh,'y' + jne .notyesreset .yesreset - mov byte[GUICBHold],10 - jmp GUIProcStates + mov byte[GUICBHold],10 + jmp GUIProcStates .notyesreset - cmp dh,'N' - je .noreset - cmp dh,'n' - jne .notnoreset + cmp dh,'N' + je .noreset + cmp dh,'n' + jne .notnoreset .noreset - xor eax,eax - mov al,[GUIwinptr] - dec eax - mov byte[GUIwinactiv+14],0 - mov byte[GUIwinorder+eax],0 - dec byte[GUIwinptr] - mov al,[GUIpmenupos] - mov [GUIcmenupos],al + xor eax,eax + mov al,[GUIwinptr] + dec eax + mov byte[GUIwinactiv+14],0 + mov byte[GUIwinorder+eax],0 + dec byte[GUIwinptr] + mov al,[GUIpmenupos] + mov [GUIcmenupos],al .notnoreset - ret + ret GUILoadKeys: - mov byte[ManualStatus],0 - mov dword[ManualCPtr],GUILoadTextA - cmp dword[GUIfileentries],0 - je .noright - cmp dword[GUIdirentries],0 - je .noright + mov byte[ManualStatus],0 + mov dword[ManualCPtr],GUILoadTextA + cmp dword[GUIfileentries],0 + je .noright + cmp dword[GUIdirentries],0 + je .noright %ifdef __UNIXSDL__ - cmp al,92 - je .yesleft - cmp dword[numlockptr],1 - je .noleft - cmp al,75 - jne .noleft + cmp al,92 + je .yesleft + cmp dword[numlockptr],1 + je .noleft + cmp al,75 + jne .noleft .yesleft %else - cmp al,75 - jne .noleft + cmp al,75 + jne .noleft %endif - mov byte[GUILoadPos],0 - xor dword[GUIcurrentfilewin],1 + mov byte[GUILoadPos],0 + xor dword[GUIcurrentfilewin],1 .noleft %ifdef __UNIXSDL__ - cmp al,94 - je .yesright - cmp dword[numlockptr],1 - je .noright - cmp al,77 - jne .noright + cmp al,94 + je .yesright + cmp dword[numlockptr],1 + je .noright + cmp al,77 + jne .noright .yesright %else - cmp al,77 - jne .noright + cmp al,77 + jne .noright %endif - mov byte[GUILoadPos],0 - xor dword[GUIcurrentfilewin],1 + mov byte[GUILoadPos],0 + xor dword[GUIcurrentfilewin],1 .noright - cmp al,13 - jne .noenter - mov byte[GUILoadPos],0 + cmp al,13 + jne .noenter + mov byte[GUILoadPos],0 - mov ebx,GUILoadTextA + mov ebx,GUILoadTextA .nextl - cmp byte[ebx],':' - je .donel + cmp byte[ebx],':' + je .donel %ifdef __UNIXSDL__ - cmp byte[ebx],'/' + cmp byte[ebx],'/' %else - cmp byte[ebx],'\' + cmp byte[ebx],'\' %endif - je .donel - inc ebx - cmp byte[ebx],0 - je .nofnamel - jmp .nextl + je .donel + inc ebx + cmp byte[ebx],0 + je .nofnamel + jmp .nextl .donel - call GUILoadManualDir - cmp byte[ManualStatus],2 - je near .done - ret + call GUILoadManualDir + cmp byte[ManualStatus],2 + je near .done + ret .nofnamel - mov ebx,GUILoadTextA - cmp byte[ebx],0 - je .nodirtry - mov edx,ebx - call Change_Single_Dir - jc .nodirtry - call GetLoadData.a - ret + mov ebx,GUILoadTextA + cmp byte[ebx],0 + je .nodirtry + mov edx,ebx + call Change_Single_Dir + jc .nodirtry + call GetLoadData.a + ret .nodirtry - call GUILoadData - ret + call GUILoadData + ret .noenter - cmp dword[GUIcurrentfilewin],1 - je near .dirwin + cmp dword[GUIcurrentfilewin],1 + je near .dirwin %ifdef __UNIXSDL__ - cmp al,89 - je .yeshome - cmp dword[numlockptr],1 - je .nohome - cmp al,71 - jne .nohome + cmp al,89 + je .yeshome + cmp dword[numlockptr],1 + je .nohome + cmp al,71 + jne .nohome .yeshome %else - cmp al,71 - jne .nohome + cmp al,71 + jne .nohome %endif - mov byte[GUILoadPos],0 - mov dword[GUIcurrentcursloc],0 - mov dword[GUIcurrentviewloc],0 - ret + mov byte[GUILoadPos],0 + mov dword[GUIcurrentcursloc],0 + mov dword[GUIcurrentviewloc],0 + ret .nohome %ifdef __UNIXSDL__ - cmp al,95 - je .yesendp - cmp dword[numlockptr],1 - je .noendp - cmp al,79 - jne .noendp + cmp al,95 + je .yesendp + cmp dword[numlockptr],1 + je .noendp + cmp al,79 + jne .noendp .yesendp %else - cmp al,79 - jne .noendp + cmp al,79 + jne .noendp %endif - mov byte[GUILoadPos],0 - mov eax,[GUIfileentries] - dec eax - mov [GUIcurrentcursloc],eax - sub eax,14 - mov [GUIcurrentviewloc],eax - test dword[GUIcurrentviewloc],8000000h - jz .posve - mov dword[GUIcurrentviewloc],0 + mov byte[GUILoadPos],0 + mov eax,[GUIfileentries] + dec eax + mov [GUIcurrentcursloc],eax + sub eax,14 + mov [GUIcurrentviewloc],eax + test dword[GUIcurrentviewloc],8000000h + jz .posve + mov dword[GUIcurrentviewloc],0 .posve - ret + ret .noendp %ifdef __UNIXSDL__ - cmp al,90 - je .up - cmp dword[numlockptr],1 - je .noup - cmp al,72 - jne .noup + cmp al,90 + je .up + cmp dword[numlockptr],1 + je .noup + cmp al,72 + jne .noup %else - cmp al,72 - jne .noup + cmp al,72 + jne .noup %endif .up - mov byte[GUILoadPos],0 - cmp dword[GUIcurrentcursloc],0 - je .noup - mov ebx,[GUIcurrentcursloc] - cmp [GUIcurrentviewloc],ebx - jne .noviewdec - dec dword[GUIcurrentviewloc] + mov byte[GUILoadPos],0 + cmp dword[GUIcurrentcursloc],0 + je .noup + mov ebx,[GUIcurrentcursloc] + cmp [GUIcurrentviewloc],ebx + jne .noviewdec + dec dword[GUIcurrentviewloc] .noviewdec - dec dword[GUIcurrentcursloc] + dec dword[GUIcurrentcursloc] .noup %ifdef __UNIXSDL__ - cmp al,96 - je .yesdown - cmp dword[numlockptr],1 - je .nodown - cmp al,80 - jne .nodown + cmp al,96 + je .yesdown + cmp dword[numlockptr],1 + je .nodown + cmp al,80 + jne .nodown .yesdown %else - cmp al,80 - jne .nodown + cmp al,80 + jne .nodown %endif - mov byte[GUILoadPos],0 - mov ebx,[GUIcurrentcursloc] - inc ebx - cmp ebx,[GUIfileentries] - je .noviewinc - inc dword[GUIcurrentcursloc] - sub ebx,15 - cmp ebx,[GUIcurrentviewloc] - jne .noviewinc - inc dword[GUIcurrentviewloc] + mov byte[GUILoadPos],0 + mov ebx,[GUIcurrentcursloc] + inc ebx + cmp ebx,[GUIfileentries] + je .noviewinc + inc dword[GUIcurrentcursloc] + sub ebx,15 + cmp ebx,[GUIcurrentviewloc] + jne .noviewinc + inc dword[GUIcurrentviewloc] .noviewinc .nodown %ifdef __UNIXSDL__ - cmp al,91 - je .yespageup - cmp dword[numlockptr],1 - je .nopageup - cmp al,73 - jne .nopageup + cmp al,91 + je .yespageup + cmp dword[numlockptr],1 + je .nopageup + cmp al,73 + jne .nopageup .yespageup %else - cmp al,73 - jne .nopageup + cmp al,73 + jne .nopageup %endif - mov byte[GUILoadPos],0 - sub dword[GUIcurrentviewloc],15 - sub dword[GUIcurrentcursloc],15 - test dword[GUIcurrentviewloc],8000000h - jz .posv - mov dword[GUIcurrentviewloc],0 + mov byte[GUILoadPos],0 + sub dword[GUIcurrentviewloc],15 + sub dword[GUIcurrentcursloc],15 + test dword[GUIcurrentviewloc],8000000h + jz .posv + mov dword[GUIcurrentviewloc],0 .posv - test dword[GUIcurrentcursloc],8000000h - jz .posc - mov dword[GUIcurrentcursloc],0 + test dword[GUIcurrentcursloc],8000000h + jz .posc + mov dword[GUIcurrentcursloc],0 .posc .nopageup %ifdef __UNIXSDL__ - cmp al,97 - je .yespagedn - cmp dword[numlockptr],1 - je .nopagedown - cmp al,81 - jne .nopagedown + cmp al,97 + je .yespagedn + cmp dword[numlockptr],1 + je .nopagedown + cmp al,81 + jne .nopagedown .yespagedn %else - cmp al,81 - jne .nopagedown + cmp al,81 + jne .nopagedown %endif - mov byte[GUILoadPos],0 - add dword[GUIcurrentviewloc],15 - add dword[GUIcurrentcursloc],15 - mov ebx,[GUIfileentries] - dec ebx - cmp dword[GUIcurrentcursloc],ebx - jb .poscd - mov [GUIcurrentcursloc],ebx + mov byte[GUILoadPos],0 + add dword[GUIcurrentviewloc],15 + add dword[GUIcurrentcursloc],15 + mov ebx,[GUIfileentries] + dec ebx + cmp dword[GUIcurrentcursloc],ebx + jb .poscd + mov [GUIcurrentcursloc],ebx .poscd - sub ebx,14 - cmp dword[GUIcurrentviewloc],ebx - jl .posvd - test ebx,8000000h - jz .noneg - mov ebx,0 + sub ebx,14 + cmp dword[GUIcurrentviewloc],ebx + jl .posvd + test ebx,8000000h + jz .noneg + mov ebx,0 .noneg - mov [GUIcurrentviewloc],ebx + mov [GUIcurrentviewloc],ebx .posvd .nopagedown .textboxa - cmp byte[GUILoadPos],0 - je near .nobacksp - cmp dh,8 - jne .nobacksp - mov byte[GUILDFlash],0 - dec byte[GUILoadPos] - xor eax,eax - mov al,[GUILoadPos] - ret + cmp byte[GUILoadPos],0 + je near .nobacksp + cmp dh,8 + jne .nobacksp + mov byte[GUILDFlash],0 + dec byte[GUILoadPos] + xor eax,eax + mov al,[GUILoadPos] + ret .nobacksp - cmp dh,0 - je near .posvl2 - cmp dh,13 - je near .posvl2 - cmp dh,8 - je near .posvl2 - cmp dh,9 - je near .posvl2 - cmp byte[GUILoadPos],36 - je near .posvl2 - mov byte[GUILDFlash],0 - xor eax,eax - mov al,[GUILoadPos] - mov [GUILoadTextA+eax],dh - inc byte[GUILoadPos] - ; Go to closest matching filename if there are no :, /, or \ in the filename - mov ebx,[ManualCPtr] - cmp byte[ebx],0 - je near .posvl2 + cmp dh,0 + je near .posvl2 + cmp dh,13 + je near .posvl2 + cmp dh,8 + je near .posvl2 + cmp dh,9 + je near .posvl2 + cmp byte[GUILoadPos],36 + je near .posvl2 + mov byte[GUILDFlash],0 + xor eax,eax + mov al,[GUILoadPos] + mov [GUILoadTextA+eax],dh + inc byte[GUILoadPos] + ; Go to closest matching filename if there are no :, /, or \ in the filename + mov ebx,[ManualCPtr] + cmp byte[ebx],0 + je near .posvl2 .next - cmp byte[ebx],':' - je near .posvl2 - cmp byte[ebx],'/' - je near .posvl2 - cmp byte[ebx],'\' - je near .posvl2 - inc ebx - cmp byte[ebx],0 - je .done - jmp .next + cmp byte[ebx],':' + je near .posvl2 + cmp byte[ebx],'/' + je near .posvl2 + cmp byte[ebx],'\' + je near .posvl2 + inc ebx + cmp byte[ebx],0 + je .done + jmp .next .done - mov ebx,[GUIfileentries] - xor esi,esi - cmp dword[GUIcurrentfilewin],1 - jne near .notdir - mov esi,[GUIfileentries] - mov ebx,[GUIfileentries] - add ebx,[GUIdirentries] + mov ebx,[GUIfileentries] + xor esi,esi + cmp dword[GUIcurrentfilewin],1 + jne near .notdir + mov esi,[GUIfileentries] + mov ebx,[GUIfileentries] + add ebx,[GUIdirentries] .notdir - mov ecx,esi - mov [.foundval],esi - mov dword[.maxfound],0 + mov ecx,esi + mov [.foundval],esi + mov dword[.maxfound],0 .loop2 - mov dword[.numfound],0 - cmp byte[GUIloadfntype],0 - jne .nottype02 - mov eax,[spcRamcmp+esi*4] - jmp .type02 + mov dword[.numfound],0 + cmp byte[GUIloadfntype],0 + jne .nottype02 + mov eax,[spcRamcmp+esi*4] + jmp .type02 .nottype02 - mov eax,esi - shl eax,5 - add eax,[spcBuffera] + mov eax,esi + shl eax,5 + add eax,[spcBuffera] .type02 - inc eax - mov edi,[ManualCPtr] - cmp byte[eax],'[' - jne .nodrive - inc eax + inc eax + mov edi,[ManualCPtr] + cmp byte[eax],'[' + jne .nodrive + inc eax .nodrive .loop3 - mov dl,[eax] - cmp dl,'a' - jb .nolowerb2 - cmp dl,'z' - ja .nolowerb2 - sub dl,'a'-'A' + mov dl,[eax] + cmp dl,'a' + jb .nolowerb2 + cmp dl,'z' + ja .nolowerb2 + sub dl,'a'-'A' .nolowerb2 - mov dh,[edi] - cmp dh,'a' - jb .nolowerb3 - cmp dh,'z' - ja .nolowerb3 - sub dh,'a'-'A' + mov dh,[edi] + cmp dh,'a' + jb .nolowerb3 + cmp dh,'z' + ja .nolowerb3 + sub dh,'a'-'A' .nolowerb3 - cmp dl,dh - jne .notfound - cmp byte[ManualStatus],2 - jne .notfullload - or dh,dh - jnz .notfullload - or dl,dl - jnz .notfullload - mov byte[ManualStatus],3 + cmp dl,dh + jne .notfound + cmp byte[ManualStatus],2 + jne .notfullload + or dh,dh + jnz .notfullload + or dl,dl + jnz .notfullload + mov byte[ManualStatus],3 .notfullload - or dh,dh - jz .notfound - or dl,dl - jz .notfound - inc dword[.numfound] - inc eax - inc edi - jmp .loop3 + or dh,dh + jz .notfound + or dl,dl + jz .notfound + inc dword[.numfound] + inc eax + inc edi + jmp .loop3 .notfound - mov edx,[.numfound] - cmp edx,[.maxfound] - jbe .nfound - mov [.maxfound],edx - mov [.foundval],esi + mov edx,[.numfound] + cmp edx,[.maxfound] + jbe .nfound + mov [.maxfound],edx + mov [.foundval],esi .nfound - inc esi - cmp esi,ebx - jne .noend2 - mov esi,[GUIfileentries] - cmp dword[GUIcurrentfilewin],1 - je .noend2 - xor esi,esi + inc esi + cmp esi,ebx + jne .noend2 + mov esi,[GUIfileentries] + cmp dword[GUIcurrentfilewin],1 + je .noend2 + xor esi,esi .noend2 - cmp esi,ecx - jne near .loop2 + cmp esi,ecx + jne near .loop2 .skipall - mov esi,[.foundval] - cmp dword[GUIcurrentfilewin],1 - jne .notdir2 - sub esi,[GUIfileentries] - mov [GUIcurrentdircursloc],esi - mov [GUIcurrentdirviewloc],esi - mov ebx,[GUIdirentries] - sub ebx,15 - cmp dword[GUIcurrentdirviewloc],ebx - jb .posvl2 - mov [GUIcurrentdirviewloc],ebx - jmp .posvl2 + mov esi,[.foundval] + cmp dword[GUIcurrentfilewin],1 + jne .notdir2 + sub esi,[GUIfileentries] + mov [GUIcurrentdircursloc],esi + mov [GUIcurrentdirviewloc],esi + mov ebx,[GUIdirentries] + sub ebx,15 + cmp dword[GUIcurrentdirviewloc],ebx + jb .posvl2 + mov [GUIcurrentdirviewloc],ebx + jmp .posvl2 .notdir2 - mov [GUIcurrentcursloc],esi - mov [GUIcurrentviewloc],esi - mov ebx,[GUIfileentries] - sub ebx,15 - cmp dword[GUIcurrentviewloc],ebx - jb .posvl2 - mov [GUIcurrentviewloc],ebx + mov [GUIcurrentcursloc],esi + mov [GUIcurrentviewloc],esi + mov ebx,[GUIfileentries] + sub ebx,15 + cmp dword[GUIcurrentviewloc],ebx + jb .posvl2 + mov [GUIcurrentviewloc],ebx .posvl2 - cmp byte[ManualStatus],3 - jne .notdirectload - call GUILoadData + cmp byte[ManualStatus],3 + jne .notdirectload + call GUILoadData .notdirectload - ret + ret SECTION .bss .foundval resd 1 .numfound resd 1 @@ -2983,157 +3012,157 @@ SECTION .text .dirwin %ifdef __UNIXSDL__ - cmp al,89 - je .yeshome2 - cmp dword[numlockptr],1 - je .nohome2 - cmp al,71 - jne .nohome2 + cmp al,89 + je .yeshome2 + cmp dword[numlockptr],1 + je .nohome2 + cmp al,71 + jne .nohome2 .yeshome2 %else - cmp al,71 - jne .nohome2 + cmp al,71 + jne .nohome2 %endif - mov byte[GUILoadPos],0 - mov dword[GUIcurrentdircursloc],0 - mov dword[GUIcurrentdirviewloc],0 - ret + mov byte[GUILoadPos],0 + mov dword[GUIcurrentdircursloc],0 + mov dword[GUIcurrentdirviewloc],0 + ret .nohome2 %ifdef __UNIXSDL__ - cmp al,95 - je .yesendp2 - cmp dword[numlockptr],1 - je .noendp2 - cmp al,79 - jne .noendp2 + cmp al,95 + je .yesendp2 + cmp dword[numlockptr],1 + je .noendp2 + cmp al,79 + jne .noendp2 .yesendp2 %else - cmp al,79 - jne .noendp2 + cmp al,79 + jne .noendp2 %endif - mov byte[GUILoadPos],0 - mov eax,[GUIdirentries] - dec eax - mov [GUIcurrentdircursloc],eax - sub eax,14 - mov [GUIcurrentdirviewloc],eax - test dword[GUIcurrentdirviewloc],8000000h - jz .posve2 - mov dword[GUIcurrentdirviewloc],0 + mov byte[GUILoadPos],0 + mov eax,[GUIdirentries] + dec eax + mov [GUIcurrentdircursloc],eax + sub eax,14 + mov [GUIcurrentdirviewloc],eax + test dword[GUIcurrentdirviewloc],8000000h + jz .posve2 + mov dword[GUIcurrentdirviewloc],0 .posve2 - ret + ret .noendp2 %ifdef __UNIXSDL__ - cmp al,90 - je .yesup2 - cmp dword[numlockptr],1 - je .noup2 - cmp al,72 - jne .noup2 + cmp al,90 + je .yesup2 + cmp dword[numlockptr],1 + je .noup2 + cmp al,72 + jne .noup2 .yesup2 %else - cmp al,72 - jne .noup2 + cmp al,72 + jne .noup2 %endif - mov byte[GUILoadPos],0 - cmp dword[GUIcurrentdircursloc],0 - je .noup2 - mov ebx,[GUIcurrentdircursloc] - cmp [GUIcurrentdirviewloc],ebx - jne .noviewdec2 - dec dword[GUIcurrentdirviewloc] + mov byte[GUILoadPos],0 + cmp dword[GUIcurrentdircursloc],0 + je .noup2 + mov ebx,[GUIcurrentdircursloc] + cmp [GUIcurrentdirviewloc],ebx + jne .noviewdec2 + dec dword[GUIcurrentdirviewloc] .noviewdec2 - dec dword[GUIcurrentdircursloc] + dec dword[GUIcurrentdircursloc] .noup2 %ifdef __UNIXSDL__ - cmp al,96 - je .yesdown2 - cmp dword[numlockptr],1 - je .nodown2 - cmp al,80 - jne .nodown2 + cmp al,96 + je .yesdown2 + cmp dword[numlockptr],1 + je .nodown2 + cmp al,80 + jne .nodown2 .yesdown2 %else - cmp al,80 - jne .nodown2 + cmp al,80 + jne .nodown2 %endif - mov byte[GUILoadPos],0 - mov ebx,[GUIcurrentdircursloc] - inc ebx - cmp ebx,[GUIdirentries] - je .noviewinc2 - inc dword[GUIcurrentdircursloc] - sub ebx,15 - cmp ebx,[GUIcurrentdirviewloc] - jne .noviewinc2 - inc dword[GUIcurrentdirviewloc] + mov byte[GUILoadPos],0 + mov ebx,[GUIcurrentdircursloc] + inc ebx + cmp ebx,[GUIdirentries] + je .noviewinc2 + inc dword[GUIcurrentdircursloc] + sub ebx,15 + cmp ebx,[GUIcurrentdirviewloc] + jne .noviewinc2 + inc dword[GUIcurrentdirviewloc] .noviewinc2 .nodown2 %ifdef __UNIXSDL__ - cmp al,91 - je .yespgup2 - cmp dword[numlockptr],1 - je .nopageup2 - cmp al,73 - jne .nopageup2 + cmp al,91 + je .yespgup2 + cmp dword[numlockptr],1 + je .nopageup2 + cmp al,73 + jne .nopageup2 .yespgup2 %else - cmp al,73 - jne .nopageup2 + cmp al,73 + jne .nopageup2 %endif - mov byte[GUILoadPos],0 - sub dword[GUIcurrentdirviewloc],15 - sub dword[GUIcurrentdircursloc],15 - test dword[GUIcurrentdirviewloc],8000000h - jz .posv2 - mov dword[GUIcurrentdirviewloc],0 + mov byte[GUILoadPos],0 + sub dword[GUIcurrentdirviewloc],15 + sub dword[GUIcurrentdircursloc],15 + test dword[GUIcurrentdirviewloc],8000000h + jz .posv2 + mov dword[GUIcurrentdirviewloc],0 .posv2 - test dword[GUIcurrentdircursloc],8000000h - jz .posc2 - mov dword[GUIcurrentdircursloc],0 + test dword[GUIcurrentdircursloc],8000000h + jz .posc2 + mov dword[GUIcurrentdircursloc],0 .posc2 .nopageup2 %ifdef __UNIXSDL__ - cmp al,97 - je .yespgdn2 - cmp dword[numlockptr],1 - je .nopagedown2 - cmp al,81 - jne .nopagedown2 + cmp al,97 + je .yespgdn2 + cmp dword[numlockptr],1 + je .nopagedown2 + cmp al,81 + jne .nopagedown2 .yespgdn2 %else - cmp al,81 - jne .nopagedown2 + cmp al,81 + jne .nopagedown2 %endif - mov byte[GUILoadPos],0 - add dword[GUIcurrentdirviewloc],15 - add dword[GUIcurrentdircursloc],15 - mov ebx,[GUIdirentries] - dec ebx - cmp dword[GUIcurrentdircursloc],ebx - jb .poscd2 - mov [GUIcurrentdircursloc],ebx + mov byte[GUILoadPos],0 + add dword[GUIcurrentdirviewloc],15 + add dword[GUIcurrentdircursloc],15 + mov ebx,[GUIdirentries] + dec ebx + cmp dword[GUIcurrentdircursloc],ebx + jb .poscd2 + mov [GUIcurrentdircursloc],ebx .poscd2 - sub ebx,14 - cmp dword[GUIcurrentdirviewloc],ebx - jb .posvd2 - test ebx,8000000h - jz .noneg2 - mov ebx,0 + sub ebx,14 + cmp dword[GUIcurrentdirviewloc],ebx + jb .posvd2 + test ebx,8000000h + jz .noneg2 + mov ebx,0 .noneg2 - mov [GUIcurrentdirviewloc],ebx + mov [GUIcurrentdirviewloc],ebx .posvd2 .nopagedown2 - jmp .textboxa + jmp .textboxa WaitForKey: .again3 - mov edx,10 + mov edx,10 .again4 - mov cx,1000 - push edx - call delay - call JoyRead + mov cx,1000 + push edx + call delay + call JoyRead ; mov dword[pressed+0CCh],0 ; Up,Down,Left,Right, pl1 ; mov dword[pressed+0E8h],0 ; Up,Down,Left,Right, pl2 ; mov dword[pressed+14Ch],0 ; Up,Down,Left,Right, pl1 @@ -3146,19 +3175,19 @@ WaitForKey: ; mov dword[pressed+101h],0 ; Button 8 ; mov dword[pressed+106h],0 ; Button 5 ; mov dword[pressed+107h],0 ; Button 6 - pop edx - xor ebx,ebx - mov ecx,256+128+64 + pop edx + xor ebx,ebx + mov ecx,256+128+64 .b2 - cmp byte[pressed+ebx],0 - jne near .again3 - inc ebx - dec ecx - jnz .b2 - dec edx - jnz near .again4 + cmp byte[pressed+ebx],0 + jne near .again3 + inc ebx + dec ecx + jnz .b2 + dec edx + jnz near .again4 .again - call JoyRead + call JoyRead ; mov dword[pressed+0CCh],0 ; Up,Down,Left,Right, pl1 ; mov dword[pressed+0E8h],0 ; Up,Down,Left,Right, pl2 ; mov dword[pressed+14Ch],0 ; Up,Down,Left,Right, pl1 @@ -3171,29 +3200,29 @@ WaitForKey: ; mov dword[pressed+101h],0 ; Button 8 ; mov dword[pressed+106h],0 ; Button 5 ; mov dword[pressed+107h],0 ; Button 6 - xor ebx,ebx - mov ecx,256+128+64 + xor ebx,ebx + mov ecx,256+128+64 .b - cmp byte[pressed+ebx],0 - jne .pressedokay - inc ebx - dec ecx - jnz .b - jmp .again + cmp byte[pressed+ebx],0 + jne .pressedokay + inc ebx + dec ecx + jnz .b + jmp .again .pressedokay .again2 - call Check_Key - or al,al - jz .nokey - call Get_Key - jmp .again2 + call Check_Key + or al,al + jz .nokey + call Get_Key + jmp .again2 .nokey - cmp byte[MouseDis],1 - je .mousedis2 - push ebx + cmp byte[MouseDis],1 + je .mousedis2 + push ebx ; mov eax,0Bh ; int 33h - pop ebx + pop ebx .mousedis2 - mov byte[GUIpclicked],1 - ret + mov byte[GUIpclicked],1 + ret diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index f8b188ea..b92c0a48 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -17,6 +17,7 @@ ;Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + %ifdef __WIN32__ EXTSYM MinimizeWindow %endif @@ -29,870 +30,869 @@ LastHoldEnable resb 1 SECTION .text ProcessMouse: - ; Process holds - mov al,[GUIHold] - cmp al,[LastHoldEnable] - je near .noholdnecessary - cmp byte[GUIHold],0 - jne .noholda - mov ecx,0 - mov edx,255 - call Set_MouseXMax - mov ecx,0 - mov edx,223 - call Set_MouseYMax + ; Process holds + mov al,[GUIHold] + cmp al,[LastHoldEnable] + je near .noholdnecessary + cmp byte[GUIHold],0 + jne .noholda + mov ecx,0 + mov edx,255 + call Set_MouseXMax + mov ecx,0 + mov edx,223 + call Set_MouseYMax .noholda - cmp byte[GUIHold],1 ; GUI Windows - jne .nohold1 - mov ecx,0 - mov edx,255 - call Set_MouseXMax - mov ecx,16 - mov edx,223 - call Set_MouseYMax + cmp byte[GUIHold],1 ; GUI Windows + jne .nohold1 + mov ecx,0 + mov edx,255 + call Set_MouseXMax + mov ecx,16 + mov edx,223 + call Set_MouseYMax .nohold1 - cmp byte[GUIHold],5 ; Sound Slider - je .dohold5 - cmp byte[GUIHold],6 ; Speed Slider - je .dohold5 - cmp byte[GUIHold],2 ; Colour Slider - jne .nohold2m + cmp byte[GUIHold],5 ; Sound Slider + je .dohold5 + cmp byte[GUIHold],6 ; Speed Slider + je .dohold5 + cmp byte[GUIHold],2 ; Colour Slider + jne .nohold2m .dohold5 - mov ecx,[GUIHoldXlimL] ; Sets min/max move range for mouse - mov edx,[GUIHoldXlimR] ; once holding slider - call Set_MouseXMax - mov ecx,[GUIHoldYlim] ; Locks pointer on slider - mov edx,[GUIHoldYlim] - call Set_MouseYMax + mov ecx,[GUIHoldXlimL] ; Sets min/max move range for mouse + mov edx,[GUIHoldXlimR] ; once holding slider + call Set_MouseXMax + mov ecx,[GUIHoldYlim] ; Locks pointer on slider + mov edx,[GUIHoldYlim] + call Set_MouseYMax .nohold2m - cmp byte[GUIHold],3 ; Scrollbars - jne .nohold3m - mov ecx,[GUIHoldXlimL] - mov edx,[GUIHoldXlimR] - call Set_MouseXMax - mov ecx,[GUIHoldYlim] - mov edx,[GUIHoldYlimR] - call Set_MouseYMax + cmp byte[GUIHold],3 ; Scrollbars + jne .nohold3m + mov ecx,[GUIHoldXlimL] + mov edx,[GUIHoldXlimR] + call Set_MouseXMax + mov ecx,[GUIHoldYlim] + mov edx,[GUIHoldYlimR] + call Set_MouseYMax .nohold3m - mov al,[GUIHold] - mov [LastHoldEnable],al + mov al,[GUIHold] + mov [LastHoldEnable],al .noholdnecessary - mov byte[MouseMoveOkay],0 - call Get_MouseData - mov [mousebuttonstat],bx - cmp byte[lastmouseholded],0 - je .noprevhold - test bx,01h - jnz .noprevhold - mov byte[lastmouseholded],0 - mov cx,[GUImouseposx] - mov dx,[GUImouseposy] - call Set_MousePosition + mov byte[MouseMoveOkay],0 + call Get_MouseData + mov [mousebuttonstat],bx + cmp byte[lastmouseholded],0 + je .noprevhold + test bx,01h + jnz .noprevhold + mov byte[lastmouseholded],0 + mov cx,[GUImouseposx] + mov dx,[GUImouseposy] + call Set_MousePosition .noprevhold - cmp byte[mousewrap],1 - je near ProcessMouseWrap - call Get_MouseData - cmp word[GUImouseposx],cx - je .zero2 - mov byte[MouseMoveOkay],1 + cmp byte[mousewrap],1 + je near ProcessMouseWrap + call Get_MouseData + cmp word[GUImouseposx],cx + je .zero2 + mov byte[MouseMoveOkay],1 .zero2 - cmp word[GUImouseposy],dx - je .zero3 - mov byte[MouseMoveOkay],1 + cmp word[GUImouseposy],dx + je .zero3 + mov byte[MouseMoveOkay],1 .zero3 - mov [GUImouseposx],cx - test word[GUImouseposx],8000h - jz .nowrapleft - mov word[GUImouseposx],0 + mov [GUImouseposx],cx + test word[GUImouseposx],8000h + jz .nowrapleft + mov word[GUImouseposx],0 .nowrapleft - cmp word[GUImouseposx],255 - jbe .nowrapright - mov word[GUImouseposx],255 + cmp word[GUImouseposx],255 + jbe .nowrapright + mov word[GUImouseposx],255 .nowrapright - mov [GUImouseposy],dx - test word[GUImouseposy],8000h - jz .nowrapup - mov word[GUImouseposy],0 + mov [GUImouseposy],dx + test word[GUImouseposy],8000h + jz .nowrapup + mov word[GUImouseposy],0 .nowrapup - cmp word[GUImouseposy],223 - jbe .nowrapdown - mov word[GUImouseposy],100 + cmp word[GUImouseposy],223 + jbe .nowrapdown + mov word[GUImouseposy],100 .nowrapdown - jmp ProcessMouseButtons + jmp ProcessMouseButtons ProcessMouseWrap: - call Get_MousePositionDisplacement - add word[GUImouseposx],cx + call Get_MousePositionDisplacement + add word[GUImouseposx],cx .again - test word[GUImouseposx],8000h - jz .nowrapleft - add word[GUImouseposx],256 - jmp .again + test word[GUImouseposx],8000h + jz .nowrapleft + add word[GUImouseposx],256 + jmp .again .nowrapleft - cmp word[GUImouseposx],255 - jbe .nowrapright - sub word[GUImouseposx],256 - jmp .again + cmp word[GUImouseposx],255 + jbe .nowrapright + sub word[GUImouseposx],256 + jmp .again .nowrapright - add word[GUImouseposy],dx + add word[GUImouseposy],dx .again2 - test word[GUImouseposy],8000h - jz .nowrapup - add word[GUImouseposy],224 - jmp .again2 + test word[GUImouseposy],8000h + jz .nowrapup + add word[GUImouseposy],224 + jmp .again2 .nowrapup - cmp word[GUImouseposy],223 - jbe .nowrapdown - cmp byte[GUIHold],1 - jne .nohold - sub word[GUImouseposy],224-16 - jmp .again2 + cmp word[GUImouseposy],223 + jbe .nowrapdown + cmp byte[GUIHold],1 + jne .nohold + sub word[GUImouseposy],224-16 + jmp .again2 .nohold - sub word[GUImouseposy],224 - jmp .again2 + sub word[GUImouseposy],224 + jmp .again2 .nowrapdown - cmp dx,0 - jne .nozero - cmp cx,0 - je .zero + cmp dx,0 + jne .nozero + cmp cx,0 + je .zero .nozero - mov byte[MouseMoveOkay],1 + mov byte[MouseMoveOkay],1 .zero ProcessMouseButtons: - cmp byte[MouseMoveOkay],1 - jne .zero - mov byte[GUIOnMenuItm],0 - mov ax,[GUImouseposx] - cmp ax,[GUIMenuL] - jbe .zero - cmp ax,[GUIMenuR] - jae .zero - mov ax,[GUImouseposy] - cmp ax,18 - jbe .zero - cmp ax,[GUIMenuD] - jae .zero - ; Mouse Menu - xor dx,dx - sub ax,18 - mov bx,10 - div bx - and eax,0FFh - mov ebx,[GUICYLocPtr] - mov byte[GUIOnMenuItm],2 - cmp byte[eax+ebx+1],0 - je .zero - mov [GUIcrowpos],al - mov byte[GUIOnMenuItm],1 + cmp byte[MouseMoveOkay],1 + jne .zero + mov byte[GUIOnMenuItm],0 + mov ax,[GUImouseposx] + cmp ax,[GUIMenuL] + jbe .zero + cmp ax,[GUIMenuR] + jae .zero + mov ax,[GUImouseposy] + cmp ax,18 + jbe .zero + cmp ax,[GUIMenuD] + jae .zero + ; Mouse Menu + xor dx,dx + sub ax,18 + mov bx,10 + div bx + and eax,0FFh + mov ebx,[GUICYLocPtr] + mov byte[GUIOnMenuItm],2 + cmp byte[eax+ebx+1],0 + je .zero + mov [GUIcrowpos],al + mov byte[GUIOnMenuItm],1 .zero - ; Check if mouse is clicked on menu - mov bx,[mousebuttonstat] - cmp byte[GUIClick],1 - jne .norclick2 - test bx,02h - jz .norclick - cmp byte[romloadskip],0 - jne .norclick2 - cmp byte[MousePRClick],0 - jne .norclick2 - mov byte[GUIQuit],2 + ; Check if mouse is clicked on menu + mov bx,[mousebuttonstat] + cmp byte[GUIClick],1 + jne .norclick2 + test bx,02h + jz .norclick + cmp byte[romloadskip],0 + jne .norclick2 + cmp byte[MousePRClick],0 + jne .norclick2 + mov byte[GUIQuit],2 .norclick - mov byte[MousePRClick],0 + mov byte[MousePRClick],0 .norclick2 - test bx,01h - jz near .notclicked - cmp byte[GUIpclicked],1 - je near .noclick - cmp byte[GUIOnMenuItm],2 - je near .noclick - cmp byte[GUIOnMenuItm],1 - jne .nomenuitem - call GUITryMenuItem - jmp .noclick + test bx,01h + jz near .notclicked + cmp byte[GUIpclicked],1 + je near .noclick + cmp byte[GUIOnMenuItm],2 + je near .noclick + cmp byte[GUIOnMenuItm],1 + jne .nomenuitem + call GUITryMenuItem + jmp .noclick .nomenuitem - cmp word[GUImouseposy],3 - jb near .noclickedw - cmp word[GUImouseposy],14 - ja near .noclickedw - cmp word[GUImouseposx],230 - jb near .noclickedw - cmp word[GUImouseposx],233 - jb near .noclickedw - cmp word[GUImouseposx],242 - ja .notfound7 + cmp word[GUImouseposy],3 + jb near .noclickedw + cmp word[GUImouseposy],14 + ja near .noclickedw + cmp word[GUImouseposx],230 + jb near .noclickedw + cmp word[GUImouseposx],233 + jb near .noclickedw + cmp word[GUImouseposx],242 + ja .notfound7 %ifdef __UNIXSDL__ - jmp .clickawn + jmp .clickawn %endif - cmp word[GUImouseposy],8 - jb .clickawn - cmp word[GUImouseposy],8 - ja .clickawn2 + cmp word[GUImouseposy],8 + jb .clickawn + cmp word[GUImouseposy],8 + ja .clickawn2 .clickawn - mov byte[GUIcwinpress],1 - jmp .noclick + mov byte[GUIcwinpress],1 + jmp .noclick .clickawn2 - mov byte[GUIcwinpress],3 - jmp .noclick + mov byte[GUIcwinpress],3 + jmp .noclick .notfound7 - cmp word[GUImouseposx],244 - jb near .noclickedw - cmp word[GUImouseposx],253 - ja .notfound8 - mov byte[GUIcwinpress],2 - jmp .noclick + cmp word[GUImouseposx],244 + jb near .noclickedw + cmp word[GUImouseposx],253 + ja .notfound8 + mov byte[GUIcwinpress],2 + jmp .noclick .notfound8 .noclickedw - cmp word[GUImouseposy],15 - ja near .nomenu - cmp word[GUImouseposy],3 - jb near .noclicked - cmp word[GUImouseposy],13 - ja near .noclicked + cmp word[GUImouseposy],15 + ja near .nomenu + cmp word[GUImouseposy],3 + jb near .noclicked + cmp word[GUImouseposy],13 + ja near .noclicked ; GUIDMHelp 4,12,GUIMenuItem+6,1 - cmp word[GUImouseposx],4 - jb near .noclicked - cmp word[GUImouseposx],12 - ja .notfound - mov byte[GUIcmenupos],1 - mov byte[GUIcrowpos],0 - jmp .noclick + cmp word[GUImouseposx],4 + jb near .noclicked + cmp word[GUImouseposx],12 + ja .notfound + mov byte[GUIcmenupos],1 + mov byte[GUIcrowpos],0 + jmp .noclick .notfound ; GUIDMHelp 17,47,GUIMenuItem,2 - cmp word[GUImouseposx],17 - jb near .noclicked - cmp word[GUImouseposx],47 - ja .notfound2 - mov byte[GUIcmenupos],2 - mov byte[GUIcrowpos],0 - jmp .noclick + cmp word[GUImouseposx],17 + jb near .noclicked + cmp word[GUImouseposx],47 + ja .notfound2 + mov byte[GUIcmenupos],2 + mov byte[GUIcrowpos],0 + jmp .noclick .notfound2 ; GUIDMHelp 52,94,GUIMenuItem+7,3 - cmp word[GUImouseposx],52 - jb near .noclicked - cmp word[GUImouseposx],94 - ja .notfound3 - mov byte[GUIcmenupos],3 - mov byte[GUIcrowpos],0 - jmp .noclick + cmp word[GUImouseposx],52 + jb near .noclicked + cmp word[GUImouseposx],94 + ja .notfound3 + mov byte[GUIcmenupos],3 + mov byte[GUIcrowpos],0 + jmp .noclick .notfound3 ; GUIDMHelp 99,135,GUIMenuItem+14,4 - cmp word[GUImouseposx],99 - jb near .noclicked - cmp word[GUImouseposx],135 - ja .notfound4 - mov byte[GUIcmenupos],4 - mov byte[GUIcrowpos],0 - jmp .noclick + cmp word[GUImouseposx],99 + jb near .noclicked + cmp word[GUImouseposx],135 + ja .notfound4 + mov byte[GUIcmenupos],4 + mov byte[GUIcrowpos],0 + jmp .noclick .notfound4 ; GUIDMHelp 140,188,GUIMenuItem+21,5 - cmp word[GUImouseposx],140 - jb near .noclicked - cmp word[GUImouseposx],188 - ja .notfound5 - mov byte[GUIcmenupos],5 - mov byte[GUIcrowpos],0 - jmp .noclick + cmp word[GUImouseposx],140 + jb near .noclicked + cmp word[GUImouseposx],188 + ja .notfound5 + mov byte[GUIcmenupos],5 + mov byte[GUIcrowpos],0 + jmp .noclick .notfound5 ; GUIDMHelp 193,223,GUIMenuItem+29,6 - cmp word[GUImouseposx],193 - jb near .noclicked - cmp word[GUImouseposx],223 - ja .notfound6 - mov byte[GUIcmenupos],6 - mov byte[GUIcrowpos],0 - jmp .noclick + cmp word[GUImouseposx],193 + jb near .noclicked + cmp word[GUImouseposx],223 + ja .notfound6 + mov byte[GUIcmenupos],6 + mov byte[GUIcrowpos],0 + jmp .noclick .notfound6 - jmp .noclick + jmp .noclick .noclicked %ifdef __MSDOS__ - jmp .noclick + jmp .noclick %else - mov byte[GUIpclicked],1 - mov byte[GUIHold],255 - mov eax,[GUImouseposy] - mov [GUIHoldYlim],eax - mov eax,[GUImouseposx] - mov [GUIHoldXlimL],eax - call MouseWindow - jmp .noclick + mov byte[GUIpclicked],1 + mov byte[GUIHold],255 + mov eax,[GUImouseposy] + mov [GUIHoldYlim],eax + mov eax,[GUImouseposx] + mov [GUIHoldXlimL],eax + call MouseWindow + jmp .noclick %endif .nomenu - cmp byte[GUIcmenupos],0 - je near .checkmenuboxclick - mov al,[GUIcmenupos] - mov [GUIpmenupos],al - mov byte[GUIcmenupos],0 + cmp byte[GUIcmenupos],0 + je near .checkmenuboxclick + mov al,[GUIcmenupos] + mov [GUIpmenupos],al + mov byte[GUIcmenupos],0 .noclick - mov byte[GUIpclicked],1 - xor eax,eax - mov al,[GUIwinptr] - dec eax - xor ebx,ebx - mov bl,[GUIwinorder+eax] - cmp byte[GUIHold],2 - je .hold2 - cmp byte[GUIHold],3 - je near .hold3 - cmp byte[GUIHold],4 - je near .hold4 - cmp byte[GUIHold],5 - je near .hold5 - cmp byte[GUIHold],6 - je near .hold6 - cmp byte[GUIHold],1 - je near .hold - cmp byte[GUIHold],255 - je .holded - mov byte[GUICHold],0 - ret + mov byte[GUIpclicked],1 + xor eax,eax + mov al,[GUIwinptr] + dec eax + xor ebx,ebx + mov bl,[GUIwinorder+eax] + cmp byte[GUIHold],2 + je .hold2 + cmp byte[GUIHold],3 + je near .hold3 + cmp byte[GUIHold],4 + je near .hold4 + cmp byte[GUIHold],5 + je near .hold5 + cmp byte[GUIHold],6 + je near .hold6 + cmp byte[GUIHold],1 + je near .hold + cmp byte[GUIHold],255 + je .holded + mov byte[GUICHold],0 + ret .holded - mov eax,[GUIHoldYlim] - mov [GUImouseposy],eax - mov eax,[GUIHoldXlimL] - mov [GUImouseposx],eax - mov cx,[GUIHoldXlimL] - mov dx,[GUIHoldYlim] - call Set_MousePosition - ret + mov eax,[GUIHoldYlim] + mov [GUImouseposy],eax + mov eax,[GUIHoldXlimL] + mov [GUImouseposx],eax + mov cx,[GUIHoldXlimL] + mov dx,[GUIHoldYlim] + call Set_MousePosition + ret .hold2 - ; Colour Slide Bar Hold - mov eax,[GUIHoldYlim] - mov [GUImouseposy],eax - mov ebx,[GUImouseposx] - mov eax,[GUIHoldXlimL] - cmp ebx,eax - jnl .noless2 - mov [GUImouseposx],eax + ; Colour Slide Bar Hold + mov eax,[GUIHoldYlim] + mov [GUImouseposy],eax + mov ebx,[GUImouseposx] + mov eax,[GUIHoldXlimL] + cmp ebx,eax + jnl .noless2 + mov [GUImouseposx],eax .noless2 - mov eax,[GUIHoldXlimR] - cmp ebx,eax - jng .nogreat2 - mov [GUImouseposx],eax + mov eax,[GUIHoldXlimR] + cmp ebx,eax + jng .nogreat2 + mov [GUImouseposx],eax .nogreat2 - mov byte[lastmouseholded],1 - jmp DisplayGUIOptnsClick + mov byte[lastmouseholded],1 + jmp DisplayGUIOptnsClick .hold3 - ; Box Hold - mov ebx,[GUIHoldYlim] - cmp ebx,[GUImouseposy] - jl .boxhold1 - mov [GUImouseposy],ebx + ; Box Hold + mov ebx,[GUIHoldYlim] + cmp ebx,[GUImouseposy] + jl .boxhold1 + mov [GUImouseposy],ebx .boxhold1 - mov ebx,[GUIHoldXlimL] - cmp ebx,[GUImouseposx] - jl .boxhold2 - mov [GUImouseposx],ebx + mov ebx,[GUIHoldXlimL] + cmp ebx,[GUImouseposx] + jl .boxhold2 + mov [GUImouseposx],ebx .boxhold2 - mov ebx,[GUIHoldYlimR] - cmp ebx,[GUImouseposy] - jg .boxhold3 - mov [GUImouseposy],ebx + mov ebx,[GUIHoldYlimR] + cmp ebx,[GUImouseposy] + jg .boxhold3 + mov [GUImouseposy],ebx .boxhold3 - mov ebx,[GUIHoldXlimR] - cmp ebx,[GUImouseposx] - jg .boxhold4 - mov [GUImouseposx],ebx + mov ebx,[GUIHoldXlimR] + cmp ebx,[GUImouseposx] + jg .boxhold4 + mov [GUImouseposx],ebx .boxhold4 - mov byte[lastmouseholded],1 - jmp GUIWindowMove + mov byte[lastmouseholded],1 + jmp GUIWindowMove .hold4 - mov eax,[GUImouseposx] - sub eax,[GUIwinposx+ebx*4] - mov edx,[GUImouseposy] - sub edx,[GUIwinposy+ebx*4] - cmp eax,[GUIHoldXlimL] - jl near .nobhold4 - cmp edx,[GUIHoldYlim] - jl near .nobhold4 - cmp eax,[GUIHoldXlimR] - jg near .nobhold4 - cmp edx,[GUIHoldYlimR] - jg near .nobhold4 - mov al,[GUICBHold2] - mov [GUICBHold],al - ret + mov eax,[GUImouseposx] + sub eax,[GUIwinposx+ebx*4] + mov edx,[GUImouseposy] + sub edx,[GUIwinposy+ebx*4] + cmp eax,[GUIHoldXlimL] + jl near .nobhold4 + cmp edx,[GUIHoldYlim] + jl near .nobhold4 + cmp eax,[GUIHoldXlimR] + jg near .nobhold4 + cmp edx,[GUIHoldYlimR] + jg near .nobhold4 + mov al,[GUICBHold2] + mov [GUICBHold],al + ret .nobhold4 - mov byte[GUICBHold],0 - ret + mov byte[GUICBHold],0 + ret .hold5 - ; Sound Slide Bar Hold - mov eax,[GUIHoldYlim] - mov [GUImouseposy],eax - mov ebx,[GUImouseposx] - mov eax,[GUIHoldXlimL] - cmp ebx,eax - jnl .noless5 - mov [GUImouseposx],eax + ; Sound Slide Bar Hold + mov eax,[GUIHoldYlim] + mov [GUImouseposy],eax + mov ebx,[GUImouseposx] + mov eax,[GUIHoldXlimL] + cmp ebx,eax + jnl .noless5 + mov [GUImouseposx],eax .noless5 - mov eax,[GUIHoldXlimR] - cmp ebx,eax - jng .nogreat5 - mov [GUImouseposx],eax + mov eax,[GUIHoldXlimR] + cmp ebx,eax + jng .nogreat5 + mov [GUImouseposx],eax .nogreat5 - mov byte[lastmouseholded],1 - jmp DisplayGUISoundClick + mov byte[lastmouseholded],1 + 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 + ; 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 + mov eax,[GUIHoldXlimR] + cmp ebx,eax + jng .nogreat6 + mov [GUImouseposx],eax .nogreat6 - mov byte[lastmouseholded],1 - jmp DisplayGUISpeedClick + mov byte[lastmouseholded],1 + jmp DisplayGUISpeedClick .hold - cmp word[GUImouseposy],16 - jge .noover - test byte[mousewrap],1 - jz .nomwrap - add word[GUImouseposy],224-16 - jmp .hold + cmp word[GUImouseposy],16 + jge .noover + test byte[mousewrap],1 + jz .nomwrap + add word[GUImouseposy],224-16 + jmp .hold .nomwrap - mov word[GUImouseposy],16 + mov word[GUImouseposy],16 .noover - mov cx,[GUImouseposy] - sub cx,[GUIHoldy] - add cx,[GUIHoldym] - movsx ecx,cx - xor eax,eax - mov al,[GUIwinptr] - dec eax - xor ebx,ebx - mov bl,[GUIwinorder+eax] - mov [GUIwinposy+ebx*4],ecx - mov cx,[GUImouseposx] - sub cx,[GUIHoldx] - add cx,[GUIHoldxm] - movsx ecx,cx - mov [GUIwinposx+ebx*4],ecx - ret + mov cx,[GUImouseposy] + sub cx,[GUIHoldy] + add cx,[GUIHoldym] + movsx ecx,cx + xor eax,eax + mov al,[GUIwinptr] + dec eax + xor ebx,ebx + mov bl,[GUIwinorder+eax] + mov [GUIwinposy+ebx*4],ecx + mov cx,[GUImouseposx] + sub cx,[GUIHoldx] + add cx,[GUIHoldxm] + movsx ecx,cx + mov [GUIwinposx+ebx*4],ecx + ret .notclicked - mov byte[GUICHold],0 - mov byte[GUIpclicked],0 - mov byte[GUIHold],0 + mov byte[GUICHold],0 + mov byte[GUIpclicked],0 + mov byte[GUIHold],0 %ifdef __UNIXSDL__ - cmp byte[GUIcwinpress],1 - jne .notwinpressa - mov byte[GUIcwinpress],0 - cmp word[GUImouseposy],3 - jb .notwinpressa - cmp word[GUImouseposy],13 - ja .notwinpressa - cmp word[GUImouseposx],233 - jb .notwinpressa - cmp word[GUImouseposx],242 - ja .notwinpressa - call SwitchFullScreen - ret + cmp byte[GUIcwinpress],1 + jne .notwinpressa + mov byte[GUIcwinpress],0 + cmp word[GUImouseposy],3 + jb .notwinpressa + cmp word[GUImouseposy],13 + ja .notwinpressa + cmp word[GUImouseposx],233 + jb .notwinpressa + cmp word[GUImouseposx],242 + ja .notwinpressa + call SwitchFullScreen + ret %endif %ifdef __WIN32__ - cmp byte[GUIcwinpress],1 - jne .notwinpressa - mov byte[GUIcwinpress],0 - cmp word[GUImouseposy],3 - jb .notwinpressa - cmp word[GUImouseposy],7 - ja .notwinpressa - cmp word[GUImouseposx],233 - jb .notwinpressa - cmp word[GUImouseposx],242 - ja .notwinpressa - call SwitchFullScreen - ret + cmp byte[GUIcwinpress],1 + jne .notwinpressa + mov byte[GUIcwinpress],0 + cmp word[GUImouseposy],3 + jb .notwinpressa + cmp word[GUImouseposy],7 + ja .notwinpressa + cmp word[GUImouseposx],233 + jb .notwinpressa + cmp word[GUImouseposx],242 + ja .notwinpressa + call SwitchFullScreen + ret %endif .notwinpressa %ifndef __MSDOS__ - cmp byte[GUIcwinpress],2 - jne .notwinpressb - mov byte[GUIcwinpress],0 - cmp word[GUImouseposy],3 - jb .notwinpressb - cmp word[GUImouseposy],13 - ja .notwinpressb - cmp word[GUImouseposx],244 - jb .notwinpressb - cmp word[GUImouseposx],253 - ja .notwinpressb - mov byte[GUIQuit],1 - ret + cmp byte[GUIcwinpress],2 + jne .notwinpressb + mov byte[GUIcwinpress],0 + cmp word[GUImouseposy],3 + jb .notwinpressb + cmp word[GUImouseposy],13 + ja .notwinpressb + cmp word[GUImouseposx],244 + jb .notwinpressb + cmp word[GUImouseposx],253 + ja .notwinpressb + mov byte[GUIQuit],1 + ret .notwinpressb - cmp byte[GUIcwinpress],3 - jne .notwinpressc - mov byte[GUIcwinpress],0 - cmp word[GUImouseposy],9 - jb .notwinpressc - cmp word[GUImouseposy],13 - ja .notwinpressc - cmp word[GUImouseposx],233 - jb .notwinpressc - cmp word[GUImouseposx],242 - ja .notwinpressc + cmp byte[GUIcwinpress],3 + jne .notwinpressc + mov byte[GUIcwinpress],0 + cmp word[GUImouseposy],9 + jb .notwinpressc + cmp word[GUImouseposy],13 + ja .notwinpressc + cmp word[GUImouseposx],233 + jb .notwinpressc + cmp word[GUImouseposx],242 + ja .notwinpressc %endif %ifdef __WIN32__ - pushad - call MinimizeWindow - popad + pushad + call MinimizeWindow + popad %endif %ifndef __MSDOS__ - ret + ret %endif .notwinpressc - ; ButtonProcess - cmp byte[GUICBHold],1 - je near GUILoadData - cmp byte[GUICBHold],2 - je near GUIProcReset - cmp byte[GUICBHold],3 - je near GUIProcReset - cmp byte[GUICBHold],4 - je near GUIProcVideo - cmp byte[GUICBHold],10 - je near GUIProcStates - cmp byte[GUICBHold],11 - je near GUIProcStates - cmp byte[GUICBHold],5 - je near CheatCodeRemove - cmp byte[GUICBHold],6 - je near CheatCodeToggle - cmp byte[GUICBHold],7 - je near CheatCodeSave - cmp byte[GUICBHold],8 - je near CheatCodeLoad - cmp byte[GUICBHold],9 - je near ProcessCheatCode - cmp byte[GUICBHold],33 - je near CheatCodeFix - cmp byte[GUICBHold],14 - je near SetDevice - cmp byte[GUICBHold],15 - je near CalibrateDev1 - cmp byte[GUICBHold],16 ; movie replay - jne .notMoviePlay - mov byte[GUICBHold],0 - pushad - call MoviePlay - popad - ret + ; ButtonProcess + cmp byte[GUICBHold],1 + je near GUILoadData + cmp byte[GUICBHold],2 + je near GUIProcReset + cmp byte[GUICBHold],3 + je near GUIProcReset + cmp byte[GUICBHold],4 + je near GUIProcVideo + cmp byte[GUICBHold],10 + je near GUIProcStates + cmp byte[GUICBHold],11 + je near GUIProcStates + cmp byte[GUICBHold],5 + je near CheatCodeRemove + cmp byte[GUICBHold],6 + je near CheatCodeToggle + cmp byte[GUICBHold],7 + je near CheatCodeSave + cmp byte[GUICBHold],8 + je near CheatCodeLoad + cmp byte[GUICBHold],9 + je near ProcessCheatCode + cmp byte[GUICBHold],33 + je near CheatCodeFix + cmp byte[GUICBHold],14 + je near SetDevice + cmp byte[GUICBHold],15 + je near CalibrateDev1 + cmp byte[GUICBHold],16 ; movie replay + jne .notMoviePlay + mov byte[GUICBHold],0 + pushad + call MoviePlay + popad + ret .notMoviePlay - cmp byte[GUICBHold],17 - jne .notMovieRecord0 ; movie record - mov byte[GUICBHold],0 - pushad - call MovieRecord - popad - ret + cmp byte[GUICBHold],17 + jne .notMovieRecord0 ; movie record + mov byte[GUICBHold],0 + pushad + call MovieRecord + popad + ret .notMovieRecord0 - cmp byte[GUICBHold],18 ; movie stop - jne .notMovieStop - mov byte[GUICBHold],0 - pushad - call MovieStop - popad - ret + cmp byte[GUICBHold],18 ; movie stop + jne .notMovieStop + mov byte[GUICBHold],0 + pushad + call MovieStop + popad + ret .notMovieStop - cmp byte[GUICBHold],19 ; overwrite zmv ? yes - jne .notMovieRecord1 - mov byte[GUICBHold],0 - pushad - call MovieRecord - popad - ret + cmp byte[GUICBHold],19 ; overwrite zmv ? yes + jne .notMovieRecord1 + mov byte[GUICBHold],0 + pushad + call MovieRecord + popad + ret .notMovieRecord1 - cmp byte[GUICBHold],20 ; overwrite zmv ? no - jne .notSkipMovie - mov byte[GUICBHold],0 - pushad - call SkipMovie - popad - ret + cmp byte[GUICBHold],20 ; overwrite zmv ? no + jne .notSkipMovie + mov byte[GUICBHold],0 + pushad + call SkipMovie + popad + ret .notSkipMovie - cmp byte[GUICBHold],29 ; insert chapter - jne .noInsertChap - mov byte[GUICBHold],0 - pushad - call MovieInsertChapter - popad - ret + cmp byte[GUICBHold],29 ; insert chapter + jne .noInsertChap + mov byte[GUICBHold],0 + pushad + call MovieInsertChapter + popad + ret .noInsertChap - cmp byte[GUICBHold],30 ; back to previous chapter - jne .noPrevChap - mov byte[GUICBHold],0 - mov byte[GUIQuit],2 - pushad - call MovieSeekBehind - popad - ret + cmp byte[GUICBHold],30 ; back to previous chapter + jne .noPrevChap + mov byte[GUICBHold],0 + mov byte[GUIQuit],2 + pushad + call MovieSeekBehind + popad + ret .noPrevChap - cmp byte[GUICBHold],31 ; jump to next chapter - jne .noNextChap - mov byte[GUICBHold],0 - mov byte[GUIQuit],2 - pushad - call MovieSeekAhead - popad - ret + cmp byte[GUICBHold],31 ; jump to next chapter + jne .noNextChap + mov byte[GUICBHold],0 + mov byte[GUIQuit],2 + pushad + call MovieSeekAhead + popad + ret .noNextChap - cmp byte[GUICBHold],32 ; append movie - jne .noAppend - mov byte[GUICBHold],0 - mov byte[GUIQuit],2 - pushad - ;call MovieAppend - popad - ret + cmp byte[GUICBHold],32 ; append movie + jne .noAppend + mov byte[GUICBHold],0 + mov byte[GUIQuit],2 + pushad + ;call MovieAppend + popad + ret .noAppend - cmp byte[GUICBHold],34 ; dump raw - jne .noDumpRaw - mov byte[GUICBHold],0 - mov byte[GUIQuit],2 - pushad - call MovieDumpRaw - popad - cmp byte[MovieVideoMode],2 - jb .nomencoder - cmp byte[mencoderExists],0 - jne .nomencoder - call guimencodermsg + cmp byte[GUICBHold],34 ; dump raw + jne .noDumpRaw + mov byte[GUICBHold],0 + mov byte[GUIQuit],2 + pushad + call MovieDumpRaw + popad + cmp byte[MovieVideoMode],2 + jb .nomencoder + cmp byte[mencoderExists],0 + jne .nomencoder + call guimencodermsg .nomencoder - ret + ret .noDumpRaw - cmp byte[GUICBHold],40 - je near SetAllKeys - cmp byte[GUICBHold],50 - jne .notstartcheat - call CheatCodeSearchInit + cmp byte[GUICBHold],40 + je near SetAllKeys + cmp byte[GUICBHold],50 + jne .notstartcheat + call CheatCodeSearchInit .notstartcheat - cmp byte[GUICBHold],60 - jne .nocombclear - mov byte[GUIComboTextH],0 - mov byte[GUINumCombo],0 - mov dword[GUIComboKey],0 + cmp byte[GUICBHold],60 + jne .nocombclear + mov byte[GUIComboTextH],0 + mov byte[GUINumCombo],0 + mov dword[GUIComboKey],0 .nocombclear - cmp byte[GUICBHold],61 - jne .nocomboadd - cmp byte[NumCombo],50 - je .nocomboadd - call ComboAdder + cmp byte[GUICBHold],61 + jne .nocomboadd + cmp byte[NumCombo],50 + je .nocomboadd + call ComboAdder .nocomboadd - cmp byte[GUICBHold],62 - jne .nocomboreplace - cmp byte[NumCombo],0 - je .nocomboreplace - call ComboReplace + cmp byte[GUICBHold],62 + jne .nocomboreplace + cmp byte[NumCombo],0 + je .nocomboreplace + call ComboReplace .nocomboreplace - cmp byte[GUICBHold],63 - jne .nocomboremove - cmp byte[NumCombo],0 - je .nocomboremove - call ComboRemoval + cmp byte[GUICBHold],63 + jne .nocomboremove + cmp byte[NumCombo],0 + je .nocomboremove + call ComboRemoval .nocomboremove - cmp byte[GUICBHold],51 - jne .notrestartcheat - mov byte[CheatWinMode],0 - mov byte[CheatSearchStatus],0 + cmp byte[GUICBHold],51 + jne .notrestartcheat + mov byte[CheatWinMode],0 + mov byte[CheatSearchStatus],0 .notrestartcheat - cmp byte[GUICBHold],52 - jne .notviewcheat - mov byte[CheatWinMode],2 + cmp byte[GUICBHold],52 + jne .notviewcheat + mov byte[CheatWinMode],2 .notviewcheat - cmp byte[GUICBHold],53 - jne .notsearchprocess - call CheatCodeSearchProcess + cmp byte[GUICBHold],53 + jne .notsearchprocess + call CheatCodeSearchProcess .notsearchprocess - cmp byte[GUICBHold],54 - jne .notreturnview - mov byte[CheatWinMode],1 + cmp byte[GUICBHold],54 + jne .notreturnview + mov byte[CheatWinMode],1 .notreturnview - cmp byte[GUICBHold],55 - jne .notadd - cmp dword[NumCheatSrc],0 - je .notadd - mov byte[CheatWinMode],3 - mov byte[CurCStextpos],0 - mov byte[CSInputDisplay],'_' - mov byte[CSInputDisplay+1],0 - mov byte[CSDescDisplay],0 + cmp byte[GUICBHold],55 + jne .notadd + cmp dword[NumCheatSrc],0 + je .notadd + mov byte[CheatWinMode],3 + mov byte[CurCStextpos],0 + mov byte[CSInputDisplay],'_' + mov byte[CSInputDisplay+1],0 + mov byte[CSDescDisplay],0 .notadd - cmp byte[GUICBHold],56 - jne .notreturnadd - mov byte[CheatWinMode],2 + cmp byte[GUICBHold],56 + jne .notreturnadd + mov byte[CheatWinMode],2 .notreturnadd - cmp byte[GUICBHold],57 - jne .noinsertscc - call AddCSCheatCode + cmp byte[GUICBHold],57 + jne .noinsertscc + call AddCSCheatCode ; call InsertSearchDescription .noinsertscc %ifndef __MSDOS__ - cmp byte[GUICBHold],65 - jne .nozsnespage - pushad - call ZsnesPage - popad + cmp byte[GUICBHold],65 + jne .nozsnespage + pushad + call ZsnesPage + popad .nozsnespage - cmp byte[GUICBHold],66 - jne .nodocspage - pushad - call DocsPage - popad + cmp byte[GUICBHold],66 + jne .nodocspage + pushad + call DocsPage + popad .nodocspage %endif - mov byte[GUICBHold],0 - ret + mov byte[GUICBHold],0 + ret .checkmenuboxclick - mov byte[GUIpclicked],1 - xor eax,eax - mov al,[GUIwinptr] - or eax,eax - jz near .nomore - dec eax - xor ebx,ebx - mov bl,[GUIwinorder+eax] - mov ecx,[GUIwinposx+ebx*4] - cmp ecx,[GUImouseposx] - jge .noinsdwin - mov ecx,[GUIwinposy+ebx*4] - cmp ecx,[GUImouseposy] - jge .noinsdwin - mov ecx,[GUIwinposx+ebx*4] - add ecx,[GUIwinsizex+ebx*4] - cmp ecx,[GUImouseposx] - jle .noinsdwin - mov ecx,[GUIwinposy+ebx*4] - add ecx,[GUIwinsizey+ebx*4] - add ecx,10 - cmp ecx,[GUImouseposy] - jle .noinsdwin - jmp GUIWinClicked + mov byte[GUIpclicked],1 + xor eax,eax + mov al,[GUIwinptr] + or eax,eax + jz near .nomore + dec eax + xor ebx,ebx + mov bl,[GUIwinorder+eax] + mov ecx,[GUIwinposx+ebx*4] + cmp ecx,[GUImouseposx] + jge .noinsdwin + mov ecx,[GUIwinposy+ebx*4] + cmp ecx,[GUImouseposy] + jge .noinsdwin + mov ecx,[GUIwinposx+ebx*4] + add ecx,[GUIwinsizex+ebx*4] + cmp ecx,[GUImouseposx] + jle .noinsdwin + mov ecx,[GUIwinposy+ebx*4] + add ecx,[GUIwinsizey+ebx*4] + add ecx,10 + cmp ecx,[GUImouseposy] + jle .noinsdwin + jmp GUIWinClicked .noinsdwin .nextwindowfind - or eax,eax - jz near .nomore - dec eax - mov bl,[GUIwinorder+eax] - mov ecx,[GUIwinposx+ebx*4] - cmp ecx,[GUImouseposx] - jge .nextwindowfind - mov ecx,[GUIwinposy+ebx*4] - cmp ecx,[GUImouseposy] - jge .nextwindowfind - mov ecx,[GUIwinposx+ebx*4] - add ecx,[GUIwinsizex+ebx*4] - cmp ecx,[GUImouseposx] - jle .nextwindowfind - mov ecx,[GUIwinposy+ebx*4] - add ecx,[GUIwinsizey+ebx*4] - add ecx,10 - cmp ecx,[GUImouseposy] - jle .nextwindowfind - ; Shift all following windows downwards by 1 + or eax,eax + jz near .nomore + dec eax + mov bl,[GUIwinorder+eax] + mov ecx,[GUIwinposx+ebx*4] + cmp ecx,[GUImouseposx] + jge .nextwindowfind + mov ecx,[GUIwinposy+ebx*4] + cmp ecx,[GUImouseposy] + jge .nextwindowfind + mov ecx,[GUIwinposx+ebx*4] + add ecx,[GUIwinsizex+ebx*4] + cmp ecx,[GUImouseposx] + jle .nextwindowfind + mov ecx,[GUIwinposy+ebx*4] + add ecx,[GUIwinsizey+ebx*4] + add ecx,10 + cmp ecx,[GUImouseposy] + jle .nextwindowfind + ; Shift all following windows downwards by 1 .nextfind - inc eax - cmp al,[GUIwinptr] - je .foundend - mov cl,[GUIwinorder+eax] - mov [GUIwinorder+eax-1],cl - jmp .nextfind + inc eax + cmp al,[GUIwinptr] + je .foundend + mov cl,[GUIwinorder+eax] + mov [GUIwinorder+eax-1],cl + jmp .nextfind .foundend - mov byte[GUIpclicked],0 - mov [GUIwinorder+eax-1],bl - ret + mov byte[GUIpclicked],0 + mov [GUIwinorder+eax-1],bl + ret .nomore - cmp dword[SantaPos],272 - je .nosanta - cmp byte[ShowTimer],0 - jne .nosanta - mov dword[MsgGiftLeft],36*4 - mov byte[ShowTimer],1 + cmp dword[SantaPos],272 + je .nosanta + cmp byte[ShowTimer],0 + jne .nosanta + mov dword[MsgGiftLeft],36*4 + mov byte[ShowTimer],1 .nosanta - ret - + ret GUIProcVideo: %ifdef __MSDOS__ - mov al,[GUIcurrentvideocursloc] - cmp al,3 - je .yes16b - cmp al,5 - je .yes16b - cmp al,7 - je .yes16b - cmp al,10 - je .yes16b - cmp al,8 - jne .no16b + mov al,[GUIcurrentvideocursloc] + cmp al,3 + je .yes16b + cmp al,5 + je .yes16b + cmp al,7 + je .yes16b + cmp al,10 + je .yes16b + cmp al,8 + jne .no16b .yes16b %endif ; mov byte[newengen],0 ; mov byte[cfgnewgfx],0 ; jmp .skipno16b .no16b - mov byte[newengen],1 - mov byte[cfgnewgfx],1 + mov byte[newengen],1 + mov byte[cfgnewgfx],1 .skipno16b - mov byte[GUICBHold],0 - call guiprevideo - mov al,[cvidmode] - mov [.prevvid],al - mov al,[GUIcurrentvideocursloc] - mov [cvidmode],al - mov byte[ExitFromGUI],1 - call initvideo - cmp byte[videotroub],1 - je .failed - call GUISetPal - mov al,[cvidmode] - mov [cfgcvidmode],al - call guipostvideo - cmp dword[GUIkeydelay],0 - je .failed2 - mov dword[GUIkeydelay],0 - ret + mov byte[GUICBHold],0 + call guiprevideo + mov al,[cvidmode] + mov [.prevvid],al + mov al,[GUIcurrentvideocursloc] + mov [cvidmode],al + mov byte[ExitFromGUI],1 + call initvideo + cmp byte[videotroub],1 + je .failed + call GUISetPal + mov al,[cvidmode] + mov [cfgcvidmode],al + call guipostvideo + cmp dword[GUIkeydelay],0 + je .failed2 + mov dword[GUIkeydelay],0 + ret .fullsc - mov [PrevFSMode],al - ret + mov [PrevFSMode],al + ret .failed - mov byte[videotroub],0 - mov al,[.prevvid] - mov [cvidmode],al - mov [cfgcvidmode],al - call initvideo - call GUISetPal - call guipostvideofail - mov dword[GUIkeydelay],0 - ret + mov byte[videotroub],0 + mov al,[.prevvid] + mov [cvidmode],al + mov [cfgcvidmode],al + call initvideo + call GUISetPal + call guipostvideofail + mov dword[GUIkeydelay],0 + ret .failed2 - mov byte[videotroub],0 - mov al,[.prevvid] - mov [cvidmode],al - mov [cfgcvidmode],al - call initvideo - call GUISetPal - call vidpastecopyscr - mov dword[GUIkeydelay],0 - ret + mov byte[videotroub],0 + mov al,[.prevvid] + mov [cvidmode],al + mov [cfgcvidmode],al + call initvideo + call GUISetPal + call vidpastecopyscr + mov dword[GUIkeydelay],0 + ret SECTION .bss .prevvid resb 1 SECTION .text NEWSYM SwitchFullScreen - pushad + pushad ; mov ecx,255*296 ; mov eax,[vidbufferofsb] ;.loop @@ -901,646 +901,646 @@ NEWSYM SwitchFullScreen ; dec ecx ; jnz .loop - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIWFVID+eax],0 - je .fullsc - mov al,[PrevWinMode] - mov [cvidmode],al - mov [cfgcvidmode],al - call initvideo - popad - ret + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIWFVID+eax],0 + je .fullsc + mov al,[PrevWinMode] + mov [cvidmode],al + mov [cfgcvidmode],al + call initvideo + popad + ret .fullsc - mov al,[PrevFSMode] - mov [cvidmode],al - mov [cfgcvidmode],al - call initvideo - popad - ret + mov al,[PrevFSMode] + mov [cvidmode],al + mov [cfgcvidmode],al + call initvideo + popad + ret GUIWindowMove: - xor eax,eax - mov al,[GUIwinptr] - dec eax - xor ebx,ebx - mov bl,[GUIwinorder+eax] - mov eax,[GUImouseposx] - sub eax,[GUIwinposx+ebx*4] - mov edx,[GUImouseposy] - sub edx,[GUIwinposy+ebx*4] - cmp ebx,13 - je near DisplayGUICheatSearchClick2 - cmp ebx,7 - je near DisplayGUICheatClick2 - cmp ebx,5 - je near DisplayGUIVideoClick2 - cmp ebx,3 - je near DisplayGUIInputClick2 - cmp ebx,16 - je near DisplayGUIComboClick2 - jmp DisplayGUIConfirmClick2 + xor eax,eax + mov al,[GUIwinptr] + dec eax + xor ebx,ebx + mov bl,[GUIwinorder+eax] + mov eax,[GUImouseposx] + sub eax,[GUIwinposx+ebx*4] + mov edx,[GUImouseposy] + sub edx,[GUIwinposy+ebx*4] + cmp ebx,13 + je near DisplayGUICheatSearchClick2 + cmp ebx,7 + je near DisplayGUICheatClick2 + cmp ebx,5 + je near DisplayGUIVideoClick2 + cmp ebx,3 + je near DisplayGUIInputClick2 + cmp ebx,16 + je near DisplayGUIComboClick2 + jmp DisplayGUIConfirmClick2 GUIWinClicked: - mov ecx,[GUImouseposx] - sub ecx,[GUIwinposx+ebx*4] - mov edx,[GUImouseposy] - sub edx,[GUIwinposy+ebx*4] - mov esi,ecx - sub esi,[GUIwinsizex+ebx*4] - add esi,10 - cmp esi,-1 - jle .noclose - cmp esi,10 - jge .noclose - cmp edx,0 - jle .noclose - cmp edx,10 - jge .noclose - mov byte[GUIwinorder+eax],0 - mov byte[GUIwinactiv+ebx],0 - dec byte[GUIwinptr] - ret + mov ecx,[GUImouseposx] + sub ecx,[GUIwinposx+ebx*4] + mov edx,[GUImouseposy] + sub edx,[GUIwinposy+ebx*4] + mov esi,ecx + sub esi,[GUIwinsizex+ebx*4] + add esi,10 + cmp esi,-1 + jle .noclose + cmp esi,10 + jge .noclose + cmp edx,0 + jle .noclose + cmp edx,10 + jge .noclose + mov byte[GUIwinorder+eax],0 + mov byte[GUIwinactiv+ebx],0 + dec byte[GUIwinptr] + ret .noclose - cmp edx,10 - jge .nomove - mov byte[GUIHold],1 - mov ax,[GUIwinposx+ebx*4] - movsx eax,ax - mov [GUIHoldxm],eax - mov ax,[GUIwinposy+ebx*4] - movsx eax,ax - mov [GUIHoldym],eax - xor eax,eax - mov ax,[GUImouseposx] - mov [GUIHoldx],eax - mov ax,[GUImouseposy] - mov [GUIHoldy],eax - ret + cmp edx,10 + jge .nomove + mov byte[GUIHold],1 + mov ax,[GUIwinposx+ebx*4] + movsx eax,ax + mov [GUIHoldxm],eax + mov ax,[GUIwinposy+ebx*4] + movsx eax,ax + mov [GUIHoldym],eax + xor eax,eax + mov ax,[GUImouseposx] + mov [GUIHoldx],eax + mov ax,[GUImouseposy] + mov [GUIHoldy],eax + ret .nomove - mov eax,[GUImouseposx] - sub eax,[GUIwinposx+ebx*4] - mov edx,[GUImouseposy] - sub edx,[GUIwinposy+ebx*4] - cmp ebx,1 - je near DisplayGUIConfirmClick - cmp ebx,2 - je near DisplayGUIChoseSaveClick - cmp ebx,3 - je near DisplayGUIInputClick - cmp ebx,4 - je near DisplayGUIOptionClick - cmp ebx,5 - je near DisplayGUIVideoClick - cmp ebx,6 - je near DisplayGUISoundClick - cmp ebx,7 - je near DisplayGUICheatClick - cmp ebx,8 - je near DisplayNetOptnsClick - cmp ebx,9 - je near DisplayGameOptnsClick - cmp ebx,10 - je near DisplayGUIOptnsClick - cmp ebx,11 - je near DisplayGUIAboutClick - cmp ebx,12 - je near DisplayGUIResetClick - cmp ebx,13 - je near DisplayGUICheatSearchClick - cmp ebx,14 - je near DisplayGUIStatesClick - cmp ebx,15 - je near DisplayGUIMovieClick - cmp ebx,16 - je near DisplayGUIComboClick - cmp ebx,17 - je near DisplayGUIAddOnClick - cmp ebx,18 - je near DisplayGUIChipClick - cmp ebx,19 - je near DisplayGUIPathsClick - cmp ebx,20 - je near DisplayGUISaveClick - cmp ebx,21 - je near DisplayGUISpeedClick - ret + mov eax,[GUImouseposx] + sub eax,[GUIwinposx+ebx*4] + mov edx,[GUImouseposy] + sub edx,[GUIwinposy+ebx*4] + cmp ebx,1 + je near DisplayGUIConfirmClick + cmp ebx,2 + je near DisplayGUIChoseSaveClick + cmp ebx,3 + je near DisplayGUIInputClick + cmp ebx,4 + je near DisplayGUIOptionClick + cmp ebx,5 + je near DisplayGUIVideoClick + cmp ebx,6 + je near DisplayGUISoundClick + cmp ebx,7 + je near DisplayGUICheatClick + cmp ebx,8 + je near DisplayNetOptnsClick + cmp ebx,9 + je near DisplayGameOptnsClick + cmp ebx,10 + je near DisplayGUIOptnsClick + cmp ebx,11 + je near DisplayGUIAboutClick + cmp ebx,12 + je near DisplayGUIResetClick + cmp ebx,13 + je near DisplayGUICheatSearchClick + cmp ebx,14 + je near DisplayGUIStatesClick + cmp ebx,15 + je near DisplayGUIMovieClick + cmp ebx,16 + je near DisplayGUIComboClick + cmp ebx,17 + je near DisplayGUIAddOnClick + cmp ebx,18 + je near DisplayGUIChipClick + cmp ebx,19 + je near DisplayGUIPathsClick + cmp ebx,20 + je near DisplayGUISaveClick + cmp ebx,21 + je near DisplayGUISpeedClick + ret %macro GUIClickCButton 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 + 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 %%noclick %endmacro %macro GUIClickCButtonat 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 - call guimustrestartmsg + 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 + call guimustrestartmsg %%noclick %endmacro %macro GUIClickCButtonf 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 - xor %3,1 + 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 %ifdef __WIN32__ - pushad - call %4 - popad + pushad + call %4 + popad %endif %%noclick %endmacro %macro GUIClickCButtonfT 5 - 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 - mov %4,0 + 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 + mov %4,0 %ifdef __WIN32__ - pushad - call %5 - popad + pushad + call %5 + popad %endif %%noclick %endmacro %macro GUIClickCButtonC 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 - mov dword[GUIccombviewloc],0 - mov dword[GUIccombcursloc],0 - mov dword[GUIccomblcursloc],0 + 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 + mov dword[GUIccombviewloc],0 + mov dword[GUIccombcursloc],0 + mov dword[GUIccomblcursloc],0 %%noclick %endmacro %macro GUIClickCButtonN 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 - mov %3,%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 + mov %3,%4 %%noclick %endmacro %macro GUIClickCButtonO 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 - push eax - xor %3,1 - mov al,%3 - mov [bgfixer],al - pop eax + cmp eax,%1+1 + jl %%noclick + cmp edx,%2+3 + jl %%noclick + cmp eax,%1+6 + jg %%noclick + cmp edx,%2+8 + jg %%noclick + push eax + xor %3,1 + mov al,%3 + mov [bgfixer],al + pop eax %%noclick %endmacro %macro GUIClickCButtonM 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 - mov byte[MultiTap],1 - cmp byte[pl12s34],1 - je .nomtap - cmp byte[pl3contrl],0 - jne .mtap - cmp byte[pl4contrl],0 - jne .mtap - cmp byte[pl5contrl],0 - jne .mtap + 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 + mov byte[MultiTap],1 + cmp byte[pl12s34],1 + je .nomtap + cmp byte[pl3contrl],0 + jne .mtap + cmp byte[pl4contrl],0 + jne .mtap + cmp byte[pl5contrl],0 + jne .mtap .nomtap - mov byte[MultiTap],0 + mov byte[MultiTap],0 .mtap %%noclick %endmacro %macro GUIClickCButtonID 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 - call SetDevice + 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 + call SetDevice %%noclick %endmacro %macro GUIClickCButton2 5 - 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,%5 - mov al,%3 - mov %4,al - ret + 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,%5 + mov al,%3 + mov %4,al + ret %%noclick %endmacro %ifndef __UNIXSDL__ %macro GUIClickCButton2r 5 - 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,%5 - mov al,%3 - mov %4,al + 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,%5 + mov al,%3 + mov %4,al %ifdef __WIN32__ - pushad - call initDirectDraw - popad + pushad + call initDirectDraw + popad %endif - ret + ret %%noclick %endmacro %endif %macro GUIClickCButton3 5 - 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,%5 - mov al,%3 - mov %4,al - call ClearScreen - push eax - push ecx - mov eax,[vidbufferofsb] - mov ecx,288*128 + 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,%5 + mov al,%3 + mov %4,al + call ClearScreen + push eax + push ecx + mov eax,[vidbufferofsb] + mov ecx,288*128 %%loop - mov dword[eax],0 - add eax,4 + mov dword[eax],0 + add eax,4 ; loop %%loop - dec ecx - jnz %%loop - pop ecx - pop eax - ret + dec ecx + jnz %%loop + pop ecx + pop eax + ret %%noclick %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 + 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 + mov %3,%4 %%clear - ret + 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 + 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 + mov %3,%4 + push eax + push ecx + mov eax,[vidbufferofsb] + mov ecx,288*128 %%loop - mov dword[eax],0 - add eax,4 + mov dword[eax],0 + add eax,4 ; loop %%loop - dec ecx - jnz %%loop - pop ecx - pop eax + dec ecx + jnz %%loop + pop ecx + pop eax %%clear - ret + ret %%noclick %endmacro %macro GUIClickCButton4 5 - 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 - cmp %3,%5 - jne %%set - xor %3,%5 - jmp %%done + 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 + cmp %3,%5 + jne %%set + xor %3,%5 + jmp %%done %%set - mov %3,%5 + mov %3,%5 %%done - mov al,%3 - mov %4,al + mov al,%3 + mov %4,al %ifdef __MSDOS__ - call ClearScreen - cmp byte[En2xSaI],0 - jne %%nomodeq - cmp byte[cvidmode],2 - jne %%nomodeq - jmp %%refresh + call ClearScreen + cmp byte[En2xSaI],0 + jne %%nomodeq + cmp byte[cvidmode],2 + jne %%nomodeq + jmp %%refresh %%nomodeq - cmp byte[cvidmode],5 - jne %%nomodex + cmp byte[cvidmode],5 + jne %%nomodex %%refresh - mov byte[cbitmode],1 - call initvideo2 - mov byte[cbitmode],0 - call GUISetPal + mov byte[cbitmode],1 + call initvideo2 + mov byte[cbitmode],0 + call GUISetPal %%nomodex %endif - ret + ret %%noclick %endmacro %macro GUIClickCButtonfr 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 - mov byte[FPSOn],0 - cmp %3,0 - je %%zero - mov %3,0 - jmp %%notzero + cmp eax,%1+1 + jl %%noclick + cmp edx,%2+3 + jl %%noclick + cmp eax,%1+6 + jg %%noclick + cmp edx,%2+8 + jg %%noclick + mov byte[FPSOn],0 + cmp %3,0 + je %%zero + mov %3,0 + jmp %%notzero %%zero - mov %3,2 + mov %3,2 %%notzero %%noclick %endmacro %macro GUIClickCButtonL 2 - 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 byte[showallext],1 - xor byte[GUIshowallext],1 - call GetLoadData - ret + 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 byte[showallext],1 + xor byte[GUIshowallext],1 + call GetLoadData + ret %%noclick %endmacro %macro GUIClickCButtonI 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 - pushad - call Clear2xSaIBuffer - popad + 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 + pushad + call Clear2xSaIBuffer + popad %%noclick %endmacro %macro GUIClickCButtonAS 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 - mov byte[firstsaveinc],1 + 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 + mov byte[firstsaveinc],1 %%noclick %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 + 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 - 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 - mov %4,0 + 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 + mov %4,0 %%noclick %endmacro %macro GUIClickCButtonMMX 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 - call MMXCheck + 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 + call MMXCheck %%noclick %endmacro %macro GUIClickCButton5MMXC 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 byte[MMXSupport],0 - je %%clear - cmp %3,%4 - jne %%set - xor %3,%4 - jmp %%clear + 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 byte[MMXSupport],0 + je %%clear + cmp %3,%4 + jne %%set + xor %3,%4 + jmp %%clear %%set - mov %3,%4 + mov %3,%4 %%clear - ret + ret %%noclick %endmacro %macro GUISlidebarPostImpl 13 ; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize - cmp dword[%11],0 - je near %%nolower - cmp dword[GUIdispmode],1 - je near %%slidebar - cmp eax,%1 - jl near %%noupper - cmp edx,%2-7 - jl near %%noupper - cmp eax,%3 - jg near %%noupper - cmp edx,%2-1 - jg near %%noupper - mov byte[%12],%13 - mov byte[GUICHold],%7 - jmp %5 + cmp dword[%11],0 + je near %%nolower + cmp dword[GUIdispmode],1 + je near %%slidebar + cmp eax,%1 + jl near %%noupper + cmp edx,%2-7 + jl near %%noupper + cmp eax,%3 + jg near %%noupper + cmp edx,%2-1 + jg near %%noupper + mov byte[%12],%13 + mov byte[GUICHold],%7 + jmp %5 %%noupper - cmp eax,%1 - jl near %%nolower - cmp edx,%4+1 - jl near %%nolower - cmp eax,%3 - jg near %%nolower - cmp edx,%4+7 - jg near %%nolower - mov byte[%12],%13 - mov byte[GUICHold],%7+1 - jmp %6 + cmp eax,%1 + jl near %%nolower + cmp edx,%4+1 + jl near %%nolower + cmp eax,%3 + jg near %%nolower + cmp edx,%4+7 + jg near %%nolower + mov byte[%12],%13 + mov byte[GUICHold],%7+1 + jmp %6 %%slidebar - cmp eax,%1 - jl near %%nolower - cmp edx,%2 - jl near %%nolower - cmp eax,%3 - jg near %%nolower - cmp edx,%4 - jg near %%nolower - mov byte[%12],%13 - ; displacement = (GUIdispmode * pixeldisp. / (listsize-scsize)) - mov eax,[%11] - sub eax,%8 - mov ebx,edx - sub ebx,[GUIlastypos] - imul ebx - mov ebx,[GUIlastdispval] - or ebx,ebx - jz near %%zerodiv - test ebx,80000000h - jnz near %%zerodiv - idiv ebx - mov ebx,[GUIlastvpos] - add ebx,eax - mov [%9],ebx - mov ebx,[GUIlastcpos] - add ebx,eax - mov [%10],ebx - test dword[%9],8000000h - jz %%noneg - mov dword[%9],0 + cmp eax,%1 + jl near %%nolower + cmp edx,%2 + jl near %%nolower + cmp eax,%3 + jg near %%nolower + cmp edx,%4 + jg near %%nolower + mov byte[%12],%13 + ; displacement = (GUIdispmode * pixeldisp. / (listsize-scsize)) + mov eax,[%11] + sub eax,%8 + mov ebx,edx + sub ebx,[GUIlastypos] + imul ebx + mov ebx,[GUIlastdispval] + or ebx,ebx + jz near %%zerodiv + test ebx,80000000h + jnz near %%zerodiv + idiv ebx + mov ebx,[GUIlastvpos] + add ebx,eax + mov [%9],ebx + mov ebx,[GUIlastcpos] + add ebx,eax + mov [%10],ebx + test dword[%9],8000000h + jz %%noneg + mov dword[%9],0 %%noneg - test dword[%10],8000000h - jz %%noneg2 - mov dword[%10],0 + test dword[%10],8000000h + jz %%noneg2 + mov dword[%10],0 %%noneg2 - mov eax,[%11] - dec eax - cmp [%10],eax - jb %%notover - mov [%10],eax + mov eax,[%11] + dec eax + cmp [%10],eax + jb %%notover + mov [%10],eax %%notover - sub eax,%8-1 - cmp [%9],eax - jb %%notover2 - mov [%9],eax + sub eax,%8-1 + cmp [%9],eax + jb %%notover2 + mov [%9],eax %%notover2 %%zerodiv - ret + ret %%nolower %endmacro @@ -1553,954 +1553,989 @@ GUIlastvpos resd 1 SECTION .text %macro GUISlidebarImpl 10 ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win# - mov dword[GUIdispmode],0 - cmp eax,%1 - jl near %%nobar - cmp edx,%2 - jl near %%nobar - cmp eax,%3 - jg near %%nobar - cmp edx,%4 - jg near %%nobar - sub edx,%2 - cmp [%5+4],edx - ja near %%above - cmp [%5+8],edx - jb near %%below - add edx,%2 - mov [GUIlastypos],edx - mov dword[GUIdispmode],1 - mov eax,[GUIwinposy+%10*4] - add eax,%2 - mov [GUIHoldYlim],eax - mov eax,[GUIwinposy+%10*4] - add eax,%4 - mov [GUIHoldYlimR],eax - mov eax,[GUIwinposx+%10*4] - add eax,%1 - mov [GUIHoldXlimL],eax - mov eax,[GUIwinposx+%10*4] - add eax,%3 - mov [GUIHoldXlimR],eax - mov eax,[%5] - mov [GUIlastdispval],eax - mov eax,[%8] - mov [GUIlastcpos],eax - mov eax,[%7] - mov [GUIlastvpos],eax - mov byte[GUIHold],3 - ret + mov dword[GUIdispmode],0 + cmp eax,%1 + jl near %%nobar + cmp edx,%2 + jl near %%nobar + cmp eax,%3 + jg near %%nobar + cmp edx,%4 + jg near %%nobar + sub edx,%2 + cmp [%5+4],edx + ja near %%above + cmp [%5+8],edx + jb near %%below + add edx,%2 + mov [GUIlastypos],edx + mov dword[GUIdispmode],1 + mov eax,[GUIwinposy+%10*4] + add eax,%2 + mov [GUIHoldYlim],eax + mov eax,[GUIwinposy+%10*4] + add eax,%4 + mov [GUIHoldYlimR],eax + mov eax,[GUIwinposx+%10*4] + add eax,%1 + mov [GUIHoldXlimL],eax + mov eax,[GUIwinposx+%10*4] + add eax,%3 + mov [GUIHoldXlimR],eax + mov eax,[%5] + mov [GUIlastdispval],eax + mov eax,[%8] + mov [GUIlastcpos],eax + mov eax,[%7] + mov [GUIlastvpos],eax + mov byte[GUIHold],3 + ret %%above - sub dword[%7],%6 - sub dword[%8],%6 - test dword[%7],8000000h - jz %%noneg - mov dword[%7],0 - mov dword[%8],0 + sub dword[%7],%6 + sub dword[%8],%6 + test dword[%7],8000000h + jz %%noneg + mov dword[%7],0 + mov dword[%8],0 %%noneg - ret + ret %%below - add dword[%7],%6 - add dword[%8],%6 - mov ebx,[%9] - dec ebx - cmp [%8],ebx - jb %%notoverflow - mov [%8],ebx - sub ebx,%6-1 - mov [%7],ebx + add dword[%7],%6 + add dword[%8],%6 + mov ebx,[%9] + dec ebx + cmp [%8],ebx + jb %%notoverflow + mov [%8],ebx + sub ebx,%6-1 + mov [%7],ebx %%notoverflow - mov ebx,[%9] - sub ebx,%6 - cmp [%7],ebx - jb %%notoverflow2 - mov [%7],ebx + mov ebx,[%9] + sub ebx,%6 + cmp [%7],ebx + jb %%notoverflow2 + mov [%7],ebx %%notoverflow2 - ret + ret %%nobar - ; upper arrow - cmp eax,%1 - jl near %%noupper - cmp edx,%2-7 - jl near %%noupper - cmp eax,%3 - jg near %%noupper - cmp edx,%2-1 - jg near %%noupper - mov eax,[GUIwinposy+%10*4] - add eax,%2-7 - mov [GUIHoldYlim],eax - mov eax,[GUIwinposy+%10*4] - add eax,%2-1 - mov [GUIHoldYlimR],eax - mov eax,[GUIwinposx+%10*4] - add eax,%1 - mov [GUIHoldXlimL],eax - mov eax,[GUIwinposx+%10*4] - add eax,%3 - mov [GUIHoldXlimR],eax - mov byte[GUIHold],3 - ret + ; upper arrow + cmp eax,%1 + jl near %%noupper + cmp edx,%2-7 + jl near %%noupper + cmp eax,%3 + jg near %%noupper + cmp edx,%2-1 + jg near %%noupper + mov eax,[GUIwinposy+%10*4] + add eax,%2-7 + mov [GUIHoldYlim],eax + mov eax,[GUIwinposy+%10*4] + add eax,%2-1 + mov [GUIHoldYlimR],eax + mov eax,[GUIwinposx+%10*4] + add eax,%1 + mov [GUIHoldXlimL],eax + mov eax,[GUIwinposx+%10*4] + add eax,%3 + mov [GUIHoldXlimR],eax + mov byte[GUIHold],3 + ret %%noupper - ; lower arrow - cmp eax,%1 - jl near %%nolower - cmp edx,%4+1 - jl near %%nolower - cmp eax,%3 - jg near %%nolower - cmp edx,%4+7 - jg near %%nolower - mov eax,[GUIwinposy+%10*4] - add eax,%4+1 - mov [GUIHoldYlim],eax - mov eax,[GUIwinposy+%10*4] - add eax,%4+7 - mov [GUIHoldYlimR],eax - mov eax,[GUIwinposx+%10*4] - add eax,%1 - mov [GUIHoldXlimL],eax - mov eax,[GUIwinposx+%10*4] - add eax,%3 - mov [GUIHoldXlimR],eax - mov byte[GUIHold],3 - ret + ; lower arrow + cmp eax,%1 + jl near %%nolower + cmp edx,%4+1 + jl near %%nolower + cmp eax,%3 + jg near %%nolower + cmp edx,%4+7 + jg near %%nolower + mov eax,[GUIwinposy+%10*4] + add eax,%4+1 + mov [GUIHoldYlim],eax + mov eax,[GUIwinposy+%10*4] + add eax,%4+7 + mov [GUIHoldYlimR],eax + mov eax,[GUIwinposx+%10*4] + add eax,%1 + mov [GUIHoldXlimL],eax + mov eax,[GUIwinposx+%10*4] + add eax,%3 + mov [GUIHoldXlimR],eax + mov byte[GUIHold],3 + ret %%nolower %endmacro %macro GUIPostWinBoxMove 11 ;x1,y1,x2,y2,view,curs,num,.scru,.scrd,jumpto,sizeofscreen - cmp eax,%1 - jl near %%noload - cmp eax,%3 - jg near %%noload - cmp edx,%2 - je near %%scrollup - cmp edx,%4 - jne near %%noload - ; Scroll Down - cmp dword[%7],%11 - jbe %9 - mov ebx,[%5] - add ebx,%11-1 - mov [%6],ebx + cmp eax,%1 + jl near %%noload + cmp eax,%3 + jg near %%noload + cmp edx,%2 + je near %%scrollup + cmp edx,%4 + jne near %%noload + ; Scroll Down + cmp dword[%7],%11 + jbe %9 + mov ebx,[%5] + add ebx,%11-1 + mov [%6],ebx %9 - cmp dword[GUIScrolTim1],0 - jne near %%donescrol - mov ebx,[%7] - dec ebx - cmp ebx,[%6] - jbe %%donescrolldown - inc dword[%6] - cmp dword[%7],%11 - jbe near %%donescrol - inc dword[%5] - mov ebx,[%7] - sub ebx,%11 - cmp ebx,[%5] - ja near %%donescrolldown - mov [%5],ebx - jmp %%donescrolldown + cmp dword[GUIScrolTim1],0 + jne near %%donescrol + mov ebx,[%7] + dec ebx + cmp ebx,[%6] + jbe %%donescrolldown + inc dword[%6] + cmp dword[%7],%11 + jbe near %%donescrol + inc dword[%5] + mov ebx,[%7] + sub ebx,%11 + cmp ebx,[%5] + ja near %%donescrolldown + mov [%5],ebx + jmp %%donescrolldown %%scrollup - mov ebx,[%5] - mov [%6],ebx + mov ebx,[%5] + mov [%6],ebx %8 - cmp dword[GUIScrolTim1],0 - jne near %%donescrol - cmp dword[%6],0 - je %%donescrolldown - dec dword[%6] - cmp dword[%5],0 - je %%donescrolldown - dec dword[%5] + cmp dword[GUIScrolTim1],0 + jne near %%donescrol + cmp dword[%6],0 + je %%donescrolldown + dec dword[%6] + cmp dword[%5],0 + je %%donescrolldown + dec dword[%5] %%donescrolldown - mov dword[GUIScrolTim1],1 - cmp dword[GUIScrolTim2],4 - jb %%noscrol1 - inc dword[GUIScrolTim1] + mov dword[GUIScrolTim1],1 + cmp dword[GUIScrolTim2],4 + jb %%noscrol1 + inc dword[GUIScrolTim1] %%noscrol1 - cmp dword[GUIScrolTim2],0 - je %%noscrol2 - inc dword[GUIScrolTim1] - dec dword[GUIScrolTim2] + cmp dword[GUIScrolTim2],0 + je %%noscrol2 + inc dword[GUIScrolTim1] + dec dword[GUIScrolTim2] %%noscrol2 %%donescrol - jmp %10 + jmp %10 %%noload %endmacro %macro GUIPHoldbutton 5 - cmp eax,%1 - jl near %%nohold - cmp edx,%2 - jl near %%nohold - cmp eax,%3 - jg near %%nohold - cmp edx,%4 - jg near %%nohold - mov dword[GUIHoldXlimL],%1 - mov dword[GUIHoldXlimR],%3 - mov dword[GUIHoldYlim],%2 - mov dword[GUIHoldYlimR],%4 - mov byte[GUICBHold2],%5 - mov byte[GUIHold],4 + cmp eax,%1 + jl near %%nohold + cmp edx,%2 + jl near %%nohold + cmp eax,%3 + jg near %%nohold + cmp edx,%4 + jg near %%nohold + mov dword[GUIHoldXlimL],%1 + mov dword[GUIHoldXlimR],%3 + mov dword[GUIHoldYlim],%2 + mov dword[GUIHoldYlimR],%4 + mov byte[GUICBHold2],%5 + mov byte[GUIHold],4 %%nohold %endmacro %macro GUIPHoldbutton2 8 - cmp eax,%1 - jl near %%nohold - cmp edx,%2 - jl near %%nohold - cmp eax,%3 - jg near %%nohold - cmp edx,%4 - jg near %%nohold - cmp byte[GUIHold],0 - jne %%nohold - mov dword[GUIHoldXlimL],%1 - mov dword[GUIHoldXlimR],%3 - mov dword[GUIHoldYlim],%2 - mov dword[GUIHoldYlimR],%4 - mov byte[GUICBHold2],%5 - mov byte[GUIHold],4 - cmp %6,%8 - je %%nohold - add %6,%7 + cmp eax,%1 + jl near %%nohold + cmp edx,%2 + jl near %%nohold + cmp eax,%3 + jg near %%nohold + cmp edx,%4 + jg near %%nohold + cmp byte[GUIHold],0 + jne %%nohold + mov dword[GUIHoldXlimL],%1 + mov dword[GUIHoldXlimR],%3 + mov dword[GUIHoldYlim],%2 + mov dword[GUIHoldYlimR],%4 + mov byte[GUICBHold2],%5 + mov byte[GUIHold],4 + cmp %6,%8 + je %%nohold + add %6,%7 %%nohold %endmacro %macro GUITextBoxInput 6 - cmp eax,%1 - jl %%noclick - cmp edx,%2 - jl %%noclick - cmp eax,%3 - jg %%noclick - cmp edx,%4 - jg %%noclick - mov dword[GUIEditString],%5 - mov dword[GUIEditStringmLen],%6 - mov dword[GUIEditStringLTxt],0 - mov dword[GUIEditStringcWin],1 + cmp eax,%1 + jl %%noclick + cmp edx,%2 + jl %%noclick + cmp eax,%3 + jg %%noclick + cmp edx,%4 + jg %%noclick + mov dword[GUIEditString],%5 + mov dword[GUIEditStringmLen],%6 + mov dword[GUIEditStringLTxt],0 + mov dword[GUIEditStringcWin],1 %%noclick %endmacro %macro GUITextBoxInputB 5 - cmp eax,%1 - jl %%noclick - cmp edx,%2 - jl %%noclick - cmp eax,%3 - jg %%noclick - cmp edx,%4 - jg %%noclick - mov byte[GUINetTextm2],%5 + cmp eax,%1 + jl %%noclick + cmp edx,%2 + jl %%noclick + cmp eax,%3 + jg %%noclick + cmp edx,%4 + jg %%noclick + mov byte[GUINetTextm2],%5 %%noclick %endmacro %macro GUITextBoxInputNach 6 - cmp eax,%1 - jl %%noclick - cmp edx,%2 - jl %%noclick - cmp eax,%3 - jg %%noclick - cmp edx,%4 - jg %%noclick - mov dword[GUIInputBox],%5 - mov dword[GUIInputLimit],%6-1 + cmp eax,%1 + jl %%noclick + cmp edx,%2 + jl %%noclick + cmp eax,%3 + jg %%noclick + cmp edx,%4 + jg %%noclick + mov dword[GUIInputBox],%5 + mov dword[GUIInputLimit],%6-1 %%noclick %endmacro %macro GUIPButtonHole 4 - cmp eax,%1+1 - jl %%noclick - cmp edx,%2+1 - jl %%noclick - cmp eax,%1+7 - jg %%noclick - cmp edx,%2+7 - jg %%noclick - mov %3,%4 + cmp eax,%1+1 + jl %%noclick + cmp edx,%2+1 + jl %%noclick + cmp eax,%1+7 + jg %%noclick + cmp edx,%2+7 + jg %%noclick + mov %3,%4 %%noclick %endmacro %macro GUIPButtonHole2 6 - cmp eax,%1+1 - jl %%noclick - cmp edx,%2+1 - jl %%noclick - cmp eax,%1+7 - jg %%noclick - cmp edx,%2+7 - jg %%noclick - mov %3,%4 - mov %5,%6 + cmp eax,%1+1 + jl %%noclick + cmp edx,%2+1 + jl %%noclick + cmp eax,%1+7 + jg %%noclick + cmp edx,%2+7 + jg %%noclick + mov %3,%4 + mov %5,%6 %%noclick %endmacro %macro GUIPButtonHoleLoad 4 - cmp eax,%1+1 - jl %%noclick - cmp edx,%2+1 - jl %%noclick - cmp eax,%1+7 - jg %%noclick - cmp edx,%2+7 - jg %%noclick - mov %3,%4 - call GetLoadData - ret + cmp eax,%1+1 + jl %%noclick + cmp edx,%2+1 + jl %%noclick + cmp eax,%1+7 + jg %%noclick + cmp edx,%2+7 + jg %%noclick + mov %3,%4 + call GetLoadData + ret %%noclick %endmacro %macro GUIWinControl 13 ;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# - cmp eax,%1 - jl near %%noload - cmp edx,%2 - jl near %%noload - cmp eax,%3 - jg near %%noload - cmp edx,%4 - jg near %%noload - cmp dword[%7],0 - je near %%noload - mov dword[%5],%11 - mov eax,edx - sub eax,%8 - xor edx,edx - mov ebx,%9 - div ebx - add eax,[%6] - mov ebx,[%7] - dec ebx - cmp eax,ebx - jg %%nomod - mov [%10],eax + cmp eax,%1 + jl near %%noload + cmp edx,%2 + jl near %%noload + cmp eax,%3 + jg near %%noload + cmp edx,%4 + jg near %%noload + cmp dword[%7],0 + je near %%noload + mov dword[%5],%11 + mov eax,edx + sub eax,%8 + xor edx,edx + mov ebx,%9 + div ebx + add eax,[%6] + mov ebx,[%7] + dec ebx + cmp eax,ebx + jg %%nomod + mov [%10],eax %%nomod - cmp byte[GUIHold],0 - jne %%held - cmp dword[GUIDClickTL],0 - je %%noprevhold - cmp byte[GUIDClCWin],%11 - jne %%noprevhold - cmp [GUIDClCEntry],eax - jne %%noprevhold - mov dword[GUIDClickTL],0 - mov eax,%12 - cmp eax,1 - jne %%cheat - call GUILoadData - ret + cmp byte[GUIHold],0 + jne %%held + cmp dword[GUIDClickTL],0 + je %%noprevhold + cmp byte[GUIDClCWin],%11 + jne %%noprevhold + cmp [GUIDClCEntry],eax + jne %%noprevhold + mov dword[GUIDClickTL],0 + mov eax,%12 + cmp eax,1 + jne %%cheat + call GUILoadData + ret %%cheat - call CheatCodeToggle - ret + call CheatCodeToggle + ret %%noprevhold - mov dword[GUIDClickTL],%13 - mov byte[GUIDClCWin],%11 - mov [GUIDClCEntry],eax + mov dword[GUIDClickTL],%13 + mov byte[GUIDClCWin],%11 + mov [GUIDClCEntry],eax %%held - mov eax,[GUIwinposy+%12*4] - add eax,%2-1 - mov [GUIHoldYlim],eax - mov eax,[GUIwinposy+%12*4] - add eax,%4+1 - mov [GUIHoldYlimR],eax - mov eax,[GUIwinposx+%12*4] - add eax,%1 - mov [GUIHoldXlimL],eax - mov eax,[GUIwinposx+%12*4] - add eax,%3 - mov [GUIHoldXlimR],eax - mov byte[GUIHold],3 - ret + mov eax,[GUIwinposy+%12*4] + add eax,%2-1 + mov [GUIHoldYlim],eax + mov eax,[GUIwinposy+%12*4] + add eax,%4+1 + mov [GUIHoldYlimR],eax + mov eax,[GUIwinposx+%12*4] + add eax,%1 + mov [GUIHoldXlimL],eax + mov eax,[GUIwinposx+%12*4] + add eax,%3 + mov [GUIHoldXlimR],eax + mov byte[GUIHold],3 + ret %%noload %endmacro %macro GUIWinControl2 13 ;Key Combination Editor Exclusive - cmp eax,%1 - jl near %%noload - cmp edx,%2 - jl near %%noload - cmp eax,%3 - jg near %%noload - cmp edx,%4 - jg near %%noload - cmp dword[%7],0 - je near %%noload - mov dword[GUIccomblcursloc],0FFFFFFFFh - mov dword[%5],%11 - mov eax,edx - sub eax,%8 - xor edx,edx - mov ebx,%9 - div ebx - add eax,[%6] - mov ebx,[%7] - dec ebx - cmp eax,ebx - jg %%nomod - mov [%10],eax + cmp eax,%1 + jl near %%noload + cmp edx,%2 + jl near %%noload + cmp eax,%3 + jg near %%noload + cmp edx,%4 + jg near %%noload + cmp dword[%7],0 + je near %%noload + mov dword[GUIccomblcursloc],0FFFFFFFFh + mov dword[%5],%11 + mov eax,edx + sub eax,%8 + xor edx,edx + mov ebx,%9 + div ebx + add eax,[%6] + mov ebx,[%7] + dec ebx + cmp eax,ebx + jg %%nomod + mov [%10],eax %%nomod - cmp byte[GUIHold],0 - jne %%held - cmp dword[GUIDClickTL],0 - je %%noprevhold - cmp byte[GUIDClCWin],%11 - jne %%noprevhold - cmp [GUIDClCEntry],eax - jne %%noprevhold - mov dword[GUIDClickTL],0 - mov eax,%12 - cmp eax,1 - jne %%cheat - call GUILoadData - ret + cmp byte[GUIHold],0 + jne %%held + cmp dword[GUIDClickTL],0 + je %%noprevhold + cmp byte[GUIDClCWin],%11 + jne %%noprevhold + cmp [GUIDClCEntry],eax + jne %%noprevhold + mov dword[GUIDClickTL],0 + mov eax,%12 + cmp eax,1 + jne %%cheat + call GUILoadData + ret %%cheat - call CheatCodeToggle - ret + call CheatCodeToggle + ret %%noprevhold - mov dword[GUIDClickTL],%13 - mov byte[GUIDClCWin],%11 - mov [GUIDClCEntry],eax + mov dword[GUIDClickTL],%13 + mov byte[GUIDClCWin],%11 + mov [GUIDClCEntry],eax %%held - mov eax,[GUIwinposy+%12*4] - add eax,%2-1 - mov [GUIHoldYlim],eax - mov eax,[GUIwinposy+%12*4] - add eax,%4+1 - mov [GUIHoldYlimR],eax - mov eax,[GUIwinposx+%12*4] - add eax,%1 - mov [GUIHoldXlimL],eax - mov eax,[GUIwinposx+%12*4] - add eax,%3 - mov [GUIHoldXlimR],eax - mov byte[GUIHold],3 - ret + mov eax,[GUIwinposy+%12*4] + add eax,%2-1 + mov [GUIHoldYlim],eax + mov eax,[GUIwinposy+%12*4] + add eax,%4+1 + mov [GUIHoldYlimR],eax + mov eax,[GUIwinposx+%12*4] + add eax,%1 + mov [GUIHoldXlimL],eax + mov eax,[GUIwinposx+%12*4] + add eax,%3 + mov [GUIHoldXlimR],eax + mov byte[GUIHold],3 + ret %%noload %endmacro -; Mouseimplementation +; Mouse implementation DisplayGUIConfirmClick2: - cmp dword[GUIfileentries],1 - jbe near .noload2 - GUISlidebarPostImpl 146,33,153,33+93,.scrollupsl,.scrolldownsl,1,15,GUIcurrentviewloc,GUIcurrentcursloc,GUIfileentries,GUIcurrentfilewin,0 - GUIPostWinBoxMove 5,26,144,27+15*7,GUIcurrentviewloc,GUIcurrentcursloc,GUIfileentries,.scrollupsl,.scrolldownsl,DisplayGUIConfirmClick.skipscrol,15 + cmp dword[GUIfileentries],1 + jbe near .noload2 + GUISlidebarPostImpl 146,33,153,33+93,.scrollupsl,.scrolldownsl,1,15,GUIcurrentviewloc,GUIcurrentcursloc,GUIfileentries,GUIcurrentfilewin,0 + GUIPostWinBoxMove 5,26,144,27+15*7,GUIcurrentviewloc,GUIcurrentcursloc,GUIfileentries,.scrollupsl,.scrolldownsl,DisplayGUIConfirmClick.skipscrol,15 .noload2 - cmp dword[GUIdirentries],1 - jbe near .noload3 - GUISlidebarPostImpl 230,33,237,33+93,.scrollupsld,.scrolldownsld,3,15,GUIcurrentdirviewloc,GUIcurrentdircursloc,GUIdirentries,GUIcurrentfilewin,1 - GUIPostWinBoxMove 160,26,228,27+15*7,GUIcurrentdirviewloc,GUIcurrentdircursloc,GUIdirentries,.scrollupsld,.scrolldownsld,DisplayGUIConfirmClick.skipscrol,15 + cmp dword[GUIdirentries],1 + jbe near .noload3 + GUISlidebarPostImpl 230,33,237,33+93,.scrollupsld,.scrolldownsld,3,15,GUIcurrentdirviewloc,GUIcurrentdircursloc,GUIdirentries,GUIcurrentfilewin,1 + GUIPostWinBoxMove 160,26,228,27+15*7,GUIcurrentdirviewloc,GUIcurrentdircursloc,GUIdirentries,.scrollupsld,.scrolldownsld,DisplayGUIConfirmClick.skipscrol,15 .noload3 DisplayGUIConfirmClick: ;DrawSlideBarWin 1,133,43,[GUIcurrentviewloc],[GUIfileentries],15,94,[GUILStA] - ; offset 0 = (ysize-(yend-ystart+1)), offset 1 = starty, offset 2 = endy - ; SlideBar Implementation - GUISlidebarImpl 146,33,153,33+93,GUILStA,15,GUIcurrentviewloc,GUIcurrentcursloc,GUIfileentries,1 - GUISlidebarImpl 230,33,237,33+93,GUILStB,15,GUIcurrentdirviewloc,GUIcurrentdircursloc,GUIdirentries,1 - mov dword[GUIScrolTim1],0 - mov dword[GUIScrolTim2],6 + ; offset 0 = (ysize-(yend-ystart+1)), offset 1 = starty, offset 2 = endy + ; SlideBar Implementation + GUISlidebarImpl 146,33,153,33+93,GUILStA,15,GUIcurrentviewloc,GUIcurrentcursloc,GUIfileentries,1 + GUISlidebarImpl 230,33,237,33+93,GUILStB,15,GUIcurrentdirviewloc,GUIcurrentdircursloc,GUIdirentries,1 + mov dword[GUIScrolTim1],0 + mov dword[GUIScrolTim2],6 .skipscrol - GUIClickCButtonL 10,187 - GUIWinControl 5,27,144,26+15*7,GUIcurrentfilewin,GUIcurrentviewloc,GUIfileentries,27,7,GUIcurrentcursloc,0,1,30 - GUIWinControl 160,27,228,26+15*7,GUIcurrentfilewin,GUIcurrentdirviewloc,GUIdirentries,27,7,GUIcurrentdircursloc,1,1,30 - GUIPHoldbutton 186,165,228,176,1 - GUIPButtonHoleLoad 9,163,byte[GUIloadfntype],0 - GUIPButtonHoleLoad 9,171,byte[GUIloadfntype],1 - GUIPButtonHoleLoad 9,179,byte[GUIloadfntype],2 - GUIClickCButton5 144,177,byte[ForceROMTiming],1 - GUIClickCButton5 144,187,byte[ForceROMTiming],2 - GUIClickCButton5 184,177,byte[ForceHiLoROM],1 - GUIClickCButton5 184,187,byte[ForceHiLoROM],2 - ret + GUIClickCButtonL 10,187 + GUIWinControl 5,27,144,26+15*7,GUIcurrentfilewin,GUIcurrentviewloc,GUIfileentries,27,7,GUIcurrentcursloc,0,1,30 + GUIWinControl 160,27,228,26+15*7,GUIcurrentfilewin,GUIcurrentdirviewloc,GUIdirentries,27,7,GUIcurrentdircursloc,1,1,30 + GUIPHoldbutton 186,165,228,176,1 + GUIPButtonHoleLoad 9,163,byte[GUIloadfntype],0 + GUIPButtonHoleLoad 9,171,byte[GUIloadfntype],1 + GUIPButtonHoleLoad 9,179,byte[GUIloadfntype],2 + GUIClickCButton5 144,177,byte[ForceROMTiming],1 + GUIClickCButton5 144,187,byte[ForceROMTiming],2 + GUIClickCButton5 184,177,byte[ForceHiLoROM],1 + GUIClickCButton5 184,187,byte[ForceHiLoROM],2 + ret DisplayGUIChoseSaveClick: - GUIPButtonHole 10,28,byte[GUIChoseSaveText2],'t' - GUIPButtonHole 30,28,byte[GUIChoseSaveText2],'1' - GUIPButtonHole 50,28,byte[GUIChoseSaveText2],'2' - GUIPButtonHole 70,28,byte[GUIChoseSaveText2],'3' - GUIPButtonHole 90,28,byte[GUIChoseSaveText2],'4' - GUIPButtonHole 10,43,byte[GUIChoseSaveText2],'5' - GUIPButtonHole 30,43,byte[GUIChoseSaveText2],'6' - GUIPButtonHole 50,43,byte[GUIChoseSaveText2],'7' - GUIPButtonHole 70,43,byte[GUIChoseSaveText2],'8' - GUIPButtonHole 90,43,byte[GUIChoseSaveText2],'9' - mov ebx,[statefileloc] - mov al,[GUIChoseSaveText2] - mov [fnamest+ebx],al - ret + GUIPButtonHole 10,28,byte[GUIChoseSaveText2],'t' + GUIPButtonHole 30,28,byte[GUIChoseSaveText2],'1' + GUIPButtonHole 50,28,byte[GUIChoseSaveText2],'2' + GUIPButtonHole 70,28,byte[GUIChoseSaveText2],'3' + GUIPButtonHole 90,28,byte[GUIChoseSaveText2],'4' + GUIPButtonHole 10,43,byte[GUIChoseSaveText2],'5' + GUIPButtonHole 30,43,byte[GUIChoseSaveText2],'6' + GUIPButtonHole 50,43,byte[GUIChoseSaveText2],'7' + GUIPButtonHole 70,43,byte[GUIChoseSaveText2],'8' + GUIPButtonHole 90,43,byte[GUIChoseSaveText2],'9' + mov ebx,[statefileloc] + mov al,[GUIChoseSaveText2] + mov [fnamest+ebx],al + ret %macro DGOptnsProcBox 3 - cmp eax,%1 - jl %%skip - cmp edx,%2 - jl %%skip - cmp eax,%1+19 - jg %%skip - cmp edx,%2+6 - jg %%skip - push edi - call guipresstest - pop edi - cmp ebx,1 - je %%cancelkey - cmp ebx,3Bh - je %%cancelkey - mov %3,ebx + cmp eax,%1 + jl %%skip + cmp edx,%2 + jl %%skip + cmp eax,%1+19 + jg %%skip + cmp edx,%2+6 + jg %%skip + push edi + call guipresstest + pop edi + cmp ebx,1 + je %%cancelkey + cmp ebx,3Bh + je %%cancelkey + mov %3,ebx %ifndef __MSDOS__ - cmp dword[keycontrolval],0 - je %%notwin32 - push ebx - mov ebx,[keycontrolval] - mov byte[ebx],1 - pop ebx + cmp dword[keycontrolval],0 + je %%notwin32 + push ebx + mov ebx,[keycontrolval] + mov byte[ebx],1 + pop ebx %%notwin32 %endif - ret + ret %%cancelkey - xor ebx,ebx - mov %3,ebx - ret + xor ebx,ebx + mov %3,ebx + ret %%skip %endmacro DisplayGUIMovieClick: - cmp byte[MovieRecordWinVal],0 ; Overwrite Window - je near .displayboxa - GUIPHoldbutton 17,55,59,66,19 - GUIPHoldbutton 70,55,112,66,20 - ret + cmp byte[MovieRecordWinVal],0 ; Overwrite Window + je near .displayboxa + GUIPHoldbutton 17,55,59,66,19 + GUIPHoldbutton 70,55,112,66,20 + ret .displayboxa ; Main Window - GUIPHoldbutton 9,50,48,61,16 ; Buttons - GUIPHoldbutton 55,50,94,61,17 - GUIPHoldbutton 103,50,144,61,18 - GUIPHoldbutton 153,50,193,61,32 - GUIPHoldbutton 9,68,112,79,29 - GUIPHoldbutton 9,84,112,95,30 - GUIPHoldbutton 9,100,112,111,31 - GUIPHoldbutton 132,165,197,176,34 + GUIPHoldbutton 9,50,48,61,16 ; Buttons + GUIPHoldbutton 55,50,94,61,17 + GUIPHoldbutton 103,50,144,61,18 + GUIPHoldbutton 153,50,193,61,32 + GUIPHoldbutton 9,68,112,79,29 + GUIPHoldbutton 9,84,112,95,30 + GUIPHoldbutton 9,100,112,111,31 + GUIPHoldbutton 132,165,197,176,34 - ; Ratios - GUIPButtonHole 10,25,byte[CMovieExt],'v' ; Select - GUIPButtonHole 30,25,byte[CMovieExt],'1' - GUIPButtonHole 50,25,byte[CMovieExt],'2' - GUIPButtonHole 70,25,byte[CMovieExt],'3' - GUIPButtonHole 90,25,byte[CMovieExt],'4' - GUIPButtonHole 10,35,byte[CMovieExt],'5' - GUIPButtonHole 30,35,byte[CMovieExt],'6' - GUIPButtonHole 50,35,byte[CMovieExt],'7' - GUIPButtonHole 70,35,byte[CMovieExt],'8' - GUIPButtonHole 90,35,byte[CMovieExt],'9' + 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' + GUIPButtonHole 90,25,byte[CMovieExt],'4' + GUIPButtonHole 10,35,byte[CMovieExt],'5' + GUIPButtonHole 30,35,byte[CMovieExt],'6' + GUIPButtonHole 50,35,byte[CMovieExt],'7' + GUIPButtonHole 70,35,byte[CMovieExt],'8' + GUIPButtonHole 90,35,byte[CMovieExt],'9' - GUIPButtonHole 115,25,byte[MovieStartMethod],0 ; Start From - GUIPButtonHole 152,25,byte[MovieStartMethod],1 - GUIPButtonHole 200,25,byte[MovieStartMethod],2 - GUIPButtonHole 115,35,byte[MovieStartMethod],3 + GUIPButtonHole 115,25,byte[MovieStartMethod],0 ; Start From + GUIPButtonHole 152,25,byte[MovieStartMethod],1 + GUIPButtonHole 200,25,byte[MovieStartMethod],2 + GUIPButtonHole 115,35,byte[MovieStartMethod],3 - GUIPButtonHole 9,128,byte[MovieVideoMode],0 ; Movie Options - GUIPButtonHole 9,138,byte[MovieVideoMode],1 - GUIPButtonHole 9,148,byte[MovieVideoMode],2 - GUIPButtonHole 9,158,byte[MovieVideoMode],3 - GUIPButtonHole 9,168,byte[MovieVideoMode],4 - GUIPButtonHole 9,178,byte[MovieVideoMode],5 + GUIPButtonHole 9,128,byte[MovieVideoMode],0 ; Movie Options + GUIPButtonHole 9,138,byte[MovieVideoMode],1 + GUIPButtonHole 9,148,byte[MovieVideoMode],2 + GUIPButtonHole 9,158,byte[MovieVideoMode],3 + GUIPButtonHole 9,168,byte[MovieVideoMode],4 + GUIPButtonHole 9,178,byte[MovieVideoMode],5 - GUIClickCButton 130,128,byte[MovieAudio] - GUIClickCButton 130,138,byte[MovieAudioCompress] - GUIClickCButton 130,148,byte[MovieVideoAudio] - - DGOptnsProcBox 116,71,[KeyInsrtChap] ; Keyboard Shortcut Boxes - DGOptnsProcBox 116,87,[KeyPrevChap] - DGOptnsProcBox 116,103,[KeyNextChap] - - GUIClickCButton 144,67,byte[MovieDisplayFrame] ; Checkbox - ret + GUIClickCButton 130,128,byte[MovieAudio] + GUIClickCButton 130,138,byte[MovieAudioCompress] + GUIClickCButton 130,148,byte[MovieVideoAudio] + DGOptnsProcBox 116,71,[KeyInsrtChap] ; Keyboard Shortcut Boxes + DGOptnsProcBox 116,87,[KeyPrevChap] + DGOptnsProcBox 116,103,[KeyNextChap] + GUIClickCButton 144,67,byte[MovieDisplayFrame] ; Checkbox + ret %macro DGOptnsProcBoxc 5 - cmp eax,%1 - jl %%skip - cmp edx,%2 - jl %%skip - cmp eax,%3 - jg %%skip - cmp edx,%4 - jg %%skip - push edi - call guipresstest - pop edi - cmp ebx,1 - je %%cancelkey - cmp ebx,3Bh - je %%cancelkey - mov %5,ebx - ret + cmp eax,%1 + jl %%skip + cmp edx,%2 + jl %%skip + cmp eax,%3 + jg %%skip + cmp edx,%4 + jg %%skip + push edi + call guipresstest + pop edi + cmp ebx,1 + je %%cancelkey + cmp ebx,3Bh + je %%cancelkey + mov %5,ebx + ret %%cancelkey - cmp ebx,1 - jne %%noesc - mov byte[pressed+1],2 + cmp ebx,1 + jne %%noesc + mov byte[pressed+1],2 %%noesc - xor ebx,ebx - mov %5,ebx - ret + xor ebx,ebx + mov %5,ebx + ret %%skip %endmacro %macro DGOptnsProcBoxb 3 - cmp eax,%1 - jl near %%skip - cmp edx,%2 - jl near %%skip - cmp eax,%1+19 - jg near %%skip - cmp edx,%2+6 - jg near %%skip - push edi - call guipresstest - pop edi - cmp ebx,1 - je %%cancelkey - cmp ebx,3Bh - je %%cancelkey - mov %3,ebx - jmp %%donekey + cmp eax,%1 + jl near %%skip + cmp edx,%2 + jl near %%skip + cmp eax,%1+19 + jg near %%skip + cmp edx,%2+6 + jg near %%skip + push edi + call guipresstest + pop edi + cmp ebx,1 + je %%cancelkey + cmp ebx,3Bh + je %%cancelkey + mov %3,ebx + jmp %%donekey %%cancelkey - cmp ebx,1 - jne %%noesc - mov byte[pressed+1],2 + cmp ebx,1 + jne %%noesc + mov byte[pressed+1],2 %%noesc - xor ebx,ebx - mov %3,ebx + xor ebx,ebx + mov %3,ebx %%donekey - xor ecx,ecx + xor ecx,ecx %%joysloop - cmp dword[pl1ULk+ecx*4],80h - jbe %%nojoystick - mov dword[pl1ULk+ecx*4],0 + cmp dword[pl1ULk+ecx*4],80h + jbe %%nojoystick + mov dword[pl1ULk+ecx*4],0 %%nojoystick - inc ecx - cmp ecx,16 - jne %%joysloop - ret + inc ecx + cmp ecx,16 + jne %%joysloop + ret %%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] - mov [GUINumValue],eax - pop eax - GUISlidebarPostImpl 109,42,116,69,.scrollup,.scrolldown,9,5,GUIcurrentinputviewloc,GUIcurrentinputcursloc,GUINumValue,GUIBlankVar,1 - GUIPostWinBoxMove 5,35,107,35+5*8,GUIcurrentinputviewloc,GUIcurrentinputcursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIInputClick.skipscrol,5 + push eax + mov eax,[NumInputDevices] + mov [GUINumValue],eax + pop eax + GUISlidebarPostImpl 109,42,116,69,.scrollup,.scrolldown,9,5,GUIcurrentinputviewloc,GUIcurrentinputcursloc,GUINumValue,GUIBlankVar,1 + GUIPostWinBoxMove 5,35,107,35+5*8,GUIcurrentinputviewloc,GUIcurrentinputcursloc,GUINumValue,.scrollup,.scrolldown,DisplayGUIInputClick.skipscrol,5 DisplayGUIInputClick: - ; SlideBar Implementation - push eax - mov eax,[NumInputDevices] - mov [GUINumValue],eax - pop eax - GUISlidebarImpl 109,42,116,69,GUIIStA,5,GUIcurrentinputviewloc,GUIcurrentinputcursloc,GUINumValue,3 + ; SlideBar Implementation + push eax + mov eax,[NumInputDevices] + mov [GUINumValue],eax + pop eax + GUISlidebarImpl 109,42,116,69,GUIIStA,5,GUIcurrentinputviewloc,GUIcurrentinputcursloc,GUINumValue,3 .skipscrol - ;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 + ;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 - cmp byte[cplayernum],1 - jne .nopl2 - mov edi,pl2selk - mov dword[keycontrolval],pl2contrl + mov edi,pl1selk + mov dword[keycontrolval],pl1contrl + cmp byte[cplayernum],1 + jne .nopl2 + mov edi,pl2selk + mov dword[keycontrolval],pl2contrl .nopl2 - cmp byte[cplayernum],2 - jne .nopl3 - mov edi,pl3selk - mov dword[keycontrolval],pl3contrl + cmp byte[cplayernum],2 + jne .nopl3 + mov edi,pl3selk + mov dword[keycontrolval],pl3contrl .nopl3 - cmp byte[cplayernum],3 - jne .nopl4 - mov edi,pl4selk - mov dword[keycontrolval],pl4contrl + cmp byte[cplayernum],3 + jne .nopl4 + mov edi,pl4selk + mov dword[keycontrolval],pl4contrl .nopl4 - cmp byte[cplayernum],4 - jne .nopl5 - mov edi,pl5selk - mov dword[keycontrolval],pl5contrl + cmp byte[cplayernum],4 + jne .nopl5 + mov edi,pl5selk + mov dword[keycontrolval],pl5contrl .nopl5 - ;Check if controller is set - push eax - mov eax,[keycontrolval] - cmp dword[eax],0 - pop eax - je near .lockInputChange + ;Check if controller is set + push eax + mov eax,[keycontrolval] + cmp dword[eax],0 + 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 - jne .nopl2t - mov edi,pl2Atk + mov edi,pl1Atk + cmp byte[cplayernum],1 + jne .nopl2t + mov edi,pl2Atk .nopl2t - cmp byte[cplayernum],2 - jne .nopl3t - mov edi,pl3Atk + cmp byte[cplayernum],2 + jne .nopl3t + mov edi,pl3Atk .nopl3t - cmp byte[cplayernum],3 - jne .nopl4t - mov edi,pl4Atk + cmp byte[cplayernum],3 + jne .nopl4t + mov edi,pl4Atk .nopl4t - cmp byte[cplayernum],4 - jne .nopl5t - mov edi,pl5Atk + cmp byte[cplayernum],4 + jne .nopl5t + 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 - jne .nopl2tl - mov edi,pl2Ltk + mov edi,pl1Ltk + cmp byte[cplayernum],1 + jne .nopl2tl + mov edi,pl2Ltk .nopl2tl - cmp byte[cplayernum],2 - jne .nopl3tl - mov edi,pl3Ltk + cmp byte[cplayernum],2 + jne .nopl3tl + mov edi,pl3Ltk .nopl3tl - cmp byte[cplayernum],3 - jne .nopl4tl - mov edi,pl4Ltk + cmp byte[cplayernum],3 + jne .nopl4tl + mov edi,pl4Ltk .nopl4tl - cmp byte[cplayernum],4 - jne .nopl5tl - mov edi,pl5Ltk + cmp byte[cplayernum],4 + jne .nopl5tl + 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 - jne .nopl2tb - mov edi,pl2ULk + mov edi,pl1ULk + cmp byte[cplayernum],1 + jne .nopl2tb + mov edi,pl2ULk .nopl2tb - cmp byte[cplayernum],2 - jne .nopl3tb - mov edi,pl3ULk + cmp byte[cplayernum],2 + jne .nopl3tb + mov edi,pl3ULk .nopl3tb - cmp byte[cplayernum],3 - jne .nopl4tb - mov edi,pl4ULk + cmp byte[cplayernum],3 + jne .nopl4tb + mov edi,pl4ULk .nopl4tb - cmp byte[cplayernum],4 - jne .nopl5tb - mov edi,pl5ULk + cmp byte[cplayernum],4 + jne .nopl5tb + 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] + xor ebx,ebx + mov bl,[cplayernum] + GUIClickCButtonID 5,163,byte[pl1p209+ebx] %endif - ret + ret DisplayGUIOptionClick: - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUINGVID+ebx],1 - jne near .invalidng - GUIClickCButton2 11,30,byte[newengen],byte[cfgnewgfx],1 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUINGVID+ebx],1 + jne near .invalidng + GUIClickCButton2 11,30,byte[newengen],byte[cfgnewgfx],1 .invalidng - GUIClickCButtonMMX 11,40,byte[MMXSupport] - GUIClickCButtonM 11,50,byte[pl12s34] + GUIClickCButtonMMX 11,40,byte[MMXSupport] + GUIClickCButtonM 11,50,byte[pl12s34] %ifdef __MSDOS__ - GUIClickCButton 11,60,byte[SidewinderFix] + GUIClickCButton 11,60,byte[SidewinderFix] %elifdef __WIN32__ - GUIClickCButton 11,60,byte[HighPriority] - pushad - call CheckPriority - popad + GUIClickCButton 11,60,byte[HighPriority] + pushad + call CheckPriority + popad %endif - GUIClickCButton 11,70,byte[FPSAtStart] - GUIClickCButton 11,80,byte[Turbo30hz] - GUIClickCButton 11,90,byte[TimerEnable] - GUIClickCButtonO 11,100,byte[OldGfxMode2] - GUIClickCButton 11,110,byte[DontSavePath] - GUIClickCButton 11,120,byte[SmallMsgText] - GUIClickCButton 11,130,byte[AutoPatch] - GUIClickCButton 11,140,byte[RomInfo] - GUIClickCButton 11,150,byte[AllowUDLR] + GUIClickCButton 11,70,byte[FPSAtStart] + GUIClickCButton 11,80,byte[Turbo30hz] + GUIClickCButton 11,90,byte[TimerEnable] + GUIClickCButtonO 11,100,byte[OldGfxMode2] + GUIClickCButton 11,110,byte[DontSavePath] + GUIClickCButton 11,120,byte[SmallMsgText] + GUIClickCButton 11,130,byte[AutoPatch] + GUIClickCButton 11,140,byte[RomInfo] + GUIClickCButton 11,150,byte[AllowUDLR] %ifndef __MSDOS__ - GUIClickCButton 11,160,byte[PauseFocusChange] + GUIClickCButton 11,160,byte[PauseFocusChange] %endif %ifdef __WIN32__ - GUIClickCButton 11,170,byte[DisableScreenSaver] - pushad - call CheckScreenSaver - popad + GUIClickCButton 11,170,byte[DisableScreenSaver] + pushad + call CheckScreenSaver + popad %endif - ret + ret DisplayGUIVideoClick2: - 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 + 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: - ; SlideBar Implementation - push eax - mov eax,[NumVideoModes] - mov [GUINumValue],eax - pop eax - 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 + 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 - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUISLVID+ebx],0 - je near .nocheckboxb + cmp dword[GUIVideoTabs],1 ; modes + jne near .notmodestab + ; SlideBar Implementation + push eax + mov eax,[NumVideoModes] + mov [GUINumValue],eax + pop eax + 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 + je near .nocheckboxb %ifdef __UNIXSDL__ - GUIClickCButton4 21,119,byte[scanlines],byte[cfgscanline],1 + GUIClickCButton4 21,119,byte[scanlines],byte[cfgscanline],1 %else - GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1 + GUIClickCButton4 21,114,byte[scanlines],byte[cfgscanline],1 %endif .nocheckboxb - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUITBVID+ebx],0 - je .nocheckboxttb - GUIClickCButtonT 11,163,byte[Triplebufen],byte[vsyncon] + 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] + GUIClickCButton 11,183,byte[GrayscaleMode] %ifdef __WIN32__ - GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw - pushad - call Clear2xSaIBuffer - popad + GUIClickCButtonf 115,183,byte[vsyncon],initDirectDraw + pushad + call Clear2xSaIBuffer + popad %elifdef __MSDOS__ - GUIClickCButtonT 115,183,byte[vsyncon],byte[Triplebufen] + 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 + 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 - + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIM7VID+ebx],0 + je .nontscfilter + GUIClickCButton5 115,173,byte[NTSCFilter],1 .nontscfilter - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIHSVID+ebx],0 - je near .nohsline + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIHSVID+ebx],0 + je near .nohsline %ifdef __UNIXSDL__ - GUIClickCButton4 61,119,byte[scanlines],byte[cfgscanline],3 - GUIClickCButton4 101,119,byte[scanlines],byte[cfgscanline],2 + GUIClickCButton4 61,119,byte[scanlines],byte[cfgscanline],3 + GUIClickCButton4 101,119,byte[scanlines],byte[cfgscanline],2 %else - GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3 - GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2 + GUIClickCButton4 61,114,byte[scanlines],byte[cfgscanline],3 + GUIClickCButton4 101,114,byte[scanlines],byte[cfgscanline],2 %endif .nohsline %ifdef __WIN32__ - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUITBWVID+ebx],0 - je near .notriplebufferwin - GUIClickCButtonf 11,123,byte[TripleBufferWin],initDirectDraw - pushad - call Clear2xSaIBuffer - popad + 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] - cmp byte[GUIHQ2X+ebx],0 - jne .checkboxhq - cmp byte[GUIHQ3X+ebx],0 - jne .checkboxhq - cmp byte[GUIHQ4X+ebx],0 - jne .checkboxhq - jmp .nocheckboxhq + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIHQ2X+ebx],0 + jne .checkboxhq + cmp byte[GUIHQ3X+ebx],0 + jne .checkboxhq + cmp byte[GUIHQ4X+ebx],0 + jne .checkboxhq + jmp .nocheckboxhq .checkboxhq - GUIClickCButtonHQ 115,163,byte[hqFilter] + GUIClickCButtonHQ 115,163,byte[hqFilter] .nocheckboxhq - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUI2xVID+ebx],0 - je near .no2xSaI - GUIClickCButton6 11,133,byte[En2xSaI],1 - GUIClickCButton6 11,143,byte[En2xSaI],2 - GUIClickCButton6 11,153,byte[En2xSaI],3 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUI2xVID+ebx],0 + je near .no2xSaI + GUIClickCButton6 11,133,byte[En2xSaI],1 + GUIClickCButton6 11,143,byte[En2xSaI],2 + GUIClickCButton6 11,153,byte[En2xSaI],3 .no2xSaI - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIIEVID+ebx],0 - je .nocheckbox1b - GUIClickCButton3 11,78,byte[antienab],byte[cfginterp],1 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIIEVID+ebx],0 + je .nocheckbox1b + GUIClickCButton3 11,78,byte[antienab],byte[cfginterp],1 .nocheckbox1b - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIBIFIL+ebx],0 - je .nocheckbox1bf - GUIClickCButton 11,163,byte[BilinearFilter] + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIBIFIL+ebx],0 + je .nocheckbox1bf + GUIClickCButton 11,163,byte[BilinearFilter] .nocheckbox1bf - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUIFSVID+ebx],0 - je .nocheckbox2b - GUIClickCButton3 11,88,byte[ScreenScale],byte[GUIScreenScale],1 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUIFSVID+ebx],0 + je .nocheckbox2b + GUIClickCButton3 11,88,byte[ScreenScale],byte[GUIScreenScale],1 .nocheckbox2b - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUISSVID+ebx],0 - je .nocheckbox3b - GUIClickCButton3 11,98,byte[smallscreenon],byte[GUIsmallscreenon],1 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUISSVID+ebx],0 + je .nocheckbox3b + GUIClickCButton3 11,98,byte[smallscreenon],byte[GUIsmallscreenon],1 .nocheckbox3b - xor ebx,ebx - mov bl,[cvidmode] - cmp byte[GUII2VID+ebx],0 - je .nocheckboxi2 - GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1 + xor ebx,ebx + mov bl,[cvidmode] + cmp byte[GUII2VID+ebx],0 + je .nocheckboxi2 + GUIClickCButton3 11,163,byte[antienab],byte[cfginterp],1 .nocheckboxi2 - GUIPHoldbutton 128,60,164,71,4 - mov al,[vsyncon] - mov [cfgvsync],al - xor al,al - ret +.notfilterstab + + cmp dword[GUIVideoTabs],3 ; NTSC + jne .notntsctab +.notntsctab + mov al,[vsyncon] + mov [cfgvsync],al + xor al,al + ret SECTION .bss GUINumValue resd 1 @@ -2508,195 +2543,195 @@ GUIBlankVar resd 1 SECTION .text DisplayGUISoundClick: - mov eax,[GUImouseposx] - sub eax,[GUIwinposx+6*4] - mov edx,[GUImouseposy] - sub edx,[GUIwinposy+6*4] - GUIClickCButtonf 11,21,byte[cfgsoundon],reInitSound + mov eax,[GUImouseposx] + sub eax,[GUIwinposx+6*4] + mov edx,[GUImouseposy] + sub edx,[GUIwinposy+6*4] + GUIClickCButtonf 11,21,byte[cfgsoundon],reInitSound %ifdef __MSDOS__ - GUIClickCButton 102,21,byte[cfgforce8b] + GUIClickCButton 102,21,byte[cfgforce8b] %endif - GUIClickCButton 11,30,byte[cfgStereoSound] + GUIClickCButton 11,30,byte[cfgStereoSound] %ifdef __MSDOS__ - GUIClickCButton 11,39,byte[RaisePitch] + GUIClickCButton 11,39,byte[RaisePitch] %endif ; GUIClickCButton 11,101,byte[SoundNoiseDis] - GUIClickCButton 11,111,byte[RevStereo] - GUIClickCButton 11,121,byte[Surround] - GUIClickCButton 11,131,byte[SoundBufEn] - GUIClickCButton 11,141,byte[SPCDisable] - GUIClickCButton5 11,163,byte[SoundInterpType],1 - GUIClickCButton5 11,173,byte[SoundInterpType],2 + GUIClickCButton 11,111,byte[RevStereo] + GUIClickCButton 11,121,byte[Surround] + GUIClickCButton 11,131,byte[SoundBufEn] + GUIClickCButton 11,141,byte[SPCDisable] + GUIClickCButton5 11,163,byte[SoundInterpType],1 + GUIClickCButton5 11,173,byte[SoundInterpType],2 %ifndef __MSDOS__ - GUIClickCButton5MMXC 11,183,byte[SoundInterpType],3 + GUIClickCButton5MMXC 11,183,byte[SoundInterpType],3 %endif - GUIClickCButton5 111,163,byte[LowPassFilterType],1 - GUIClickCButton5 111,173,byte[LowPassFilterType],2 + GUIClickCButton5 111,163,byte[LowPassFilterType],1 + GUIClickCButton5 111,173,byte[LowPassFilterType],2 %ifndef __MSDOS__ - GUIClickCButton5MMXC 111,183,byte[LowPassFilterType],3 + GUIClickCButton5MMXC 111,183,byte[LowPassFilterType],3 %endif %ifdef __WIN32__ - GUIClickCButton 11,101,byte[PrimaryBuffer] + GUIClickCButton 11,101,byte[PrimaryBuffer] %endif - cmp eax,15 - jl near .nosrate - cmp edx,61 - jl near .nosrate - cmp eax,69 - jg near .nosrate - cmp edx,69 - jg near .nosrate - xor eax,eax - mov al,[cfgSoundQuality] - mov al,[sampratenext+eax] - mov [cfgSoundQuality],al + cmp eax,15 + jl near .nosrate + cmp edx,61 + jl near .nosrate + cmp eax,69 + jg near .nosrate + cmp edx,69 + jg near .nosrate + xor eax,eax + mov al,[cfgSoundQuality] + mov al,[sampratenext+eax] + mov [cfgSoundQuality],al .nosrate - cmp eax,15 - jl near .nomovebar - cmp eax,15+100 - jg near .nomovebar - cmp edx,89 - jl near .nomovebar - cmp edx,93 - jg near .nomovebar - sub eax,15 - mov [MusicRelVol],al - mov [cfgvolume],al - mov byte[GUIHold],5 - mov eax,[GUIwinposy+6*4] - add eax,91 - mov [GUIHoldYlim],eax - xor eax,eax - xor edx,edx - mov al,[MusicRelVol] - shl eax,7 - mov ebx,100 - div ebx - cmp al,127 - jb .noof - mov al,127 + cmp eax,15 + jl near .nomovebar + cmp eax,15+100 + jg near .nomovebar + cmp edx,89 + jl near .nomovebar + cmp edx,93 + jg near .nomovebar + sub eax,15 + mov [MusicRelVol],al + mov [cfgvolume],al + mov byte[GUIHold],5 + mov eax,[GUIwinposy+6*4] + add eax,91 + mov [GUIHoldYlim],eax + xor eax,eax + xor edx,edx + mov al,[MusicRelVol] + shl eax,7 + mov ebx,100 + div ebx + cmp al,127 + jb .noof + mov al,127 .noof - mov [MusicVol],al - mov al,[DSPMem+0Ch] - call WDSPReg0C - mov al,[DSPMem+1Ch] - call WDSPReg1C + mov [MusicVol],al + mov al,[DSPMem+0Ch] + call WDSPReg0C + mov al,[DSPMem+1Ch] + call WDSPReg1C - mov eax,[GUIwinposx+6*4] - add eax,15 - mov [GUIHoldXlimL],eax - add eax,100 - mov [GUIHoldXlimR],eax + mov eax,[GUIwinposx+6*4] + add eax,15 + mov [GUIHoldXlimL],eax + add eax,100 + mov [GUIHoldXlimR],eax .nomovebar - ret + ret SECTION .data sampratenext db 1,4,5,6,2,3,0,0,0,0 SECTION .text %macro GUIBoxVar 6 - cmp eax,%1 - jl %%nope - cmp edx,%2 - jl %%nope - cmp eax,%3 - jg %%nope - cmp edx,%4 - jg %%nope - mov dword[%5],%6 + cmp eax,%1 + jl %%nope + cmp edx,%2 + jl %%nope + cmp eax,%3 + jg %%nope + cmp edx,%4 + jg %%nope + mov dword[%5],%6 %%nope %endmacro DisplayGUICheatClick2: - GUISlidebarPostImpl 231,28,238,100,.scrollup,.scrolldown,7,12,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,GUIBlankVar,1 - GUIPostWinBoxMove 5,22,229,22+12*7,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,.scrollup,.scrolldown,DisplayGUICheatClick.skipscrol,12 + GUISlidebarPostImpl 231,28,238,100,.scrollup,.scrolldown,7,12,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,GUIBlankVar,1 + GUIPostWinBoxMove 5,22,229,22+12*7,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,.scrollup,.scrolldown,DisplayGUICheatClick.skipscrol,12 DisplayGUICheatClick: - GUIBoxVar 5,20,181,110,GUIcurrentcheatwin,0 ; Main Box - GUIBoxVar 82,129,173,136,GUIcurrentcheatwin,1 ; Enter Code Box - GUIBoxVar 82,140,196,147,GUIcurrentcheatwin,2 ; Description Box - ; SlideBar Implementation - GUISlidebarImpl 231,28,238,100,GUICStA,12,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,7 + GUIBoxVar 5,20,181,110,GUIcurrentcheatwin,0 ; Main Box + GUIBoxVar 82,129,173,136,GUIcurrentcheatwin,1 ; Enter Code Box + GUIBoxVar 82,140,196,147,GUIcurrentcheatwin,2 ; Description Box + ; SlideBar Implementation + GUISlidebarImpl 231,28,238,100,GUICStA,12,GUIcurrentcheatviewloc,GUIcurrentcheatcursloc,NumCheats,7 .skipscrol - cmp byte[GUIcurrentcheatwin],0 - jne near .nowin - GUIWinControl 5,23,229,21+12*7,GUIBlankVar,GUIcurrentcheatviewloc,NumCheats,22,7,GUIcurrentcheatcursloc,3,7,30 + cmp byte[GUIcurrentcheatwin],0 + jne near .nowin + GUIWinControl 5,23,229,21+12*7,GUIBlankVar,GUIcurrentcheatviewloc,NumCheats,22,7,GUIcurrentcheatcursloc,3,7,30 .nowin - GUIPHoldbutton 5,113,47,124,5 ; Buttons - GUIPHoldbutton 52,113,94,124,6 - GUIPHoldbutton 99,113,141,124,7 - GUIPHoldbutton 146,113,188,124,8 - GUIPHoldbutton 212,134,236,145,9 - GUIPHoldbutton 193,113,235,124,33 - GUIClickCButton5 11,186,byte[AutoLoadCht],1 ; Checkbox - ret + GUIPHoldbutton 5,113,47,124,5 ; Buttons + GUIPHoldbutton 52,113,94,124,6 + GUIPHoldbutton 99,113,141,124,7 + GUIPHoldbutton 146,113,188,124,8 + GUIPHoldbutton 212,134,236,145,9 + GUIPHoldbutton 193,113,235,124,33 + GUIClickCButton5 11,186,byte[AutoLoadCht],1 ; Checkbox + ret DisplayNetOptnsClick: - ret + ret guipresstest: - xor ebx,ebx - mov ecx,256+128+64 + xor ebx,ebx + mov ecx,256+128+64 .a - mov byte[pressed+ebx],0 - inc ebx - dec ecx - jnz .a - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - GUIBox 75,95,180,131,160 - GUIBox 75,95,180,95,162 - GUIBox 75,95,75,131,161 - GUIBox 180,95,180,131,159 - GUIBox 75,131,180,131,158 - GUIOuttext 81,101,guipresstext1,220-15 - GUIOuttext 80,100,guipresstext1,220 - GUIOuttext 81,111,guipresstext2,220-15 - GUIOuttext 80,110,guipresstext2,220 - GUIOuttext 81,121,guipresstext3,220-15 - GUIOuttext 80,120,guipresstext3,220 - call vidpastecopyscr + mov byte[pressed+ebx],0 + inc ebx + dec ecx + jnz .a + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + GUIBox 75,95,180,131,160 + GUIBox 75,95,180,95,162 + GUIBox 75,95,75,131,161 + GUIBox 180,95,180,131,159 + GUIBox 75,131,180,131,158 + GUIOuttext 81,101,guipresstext1,220-15 + GUIOuttext 80,100,guipresstext1,220 + GUIOuttext 81,111,guipresstext2,220-15 + GUIOuttext 80,110,guipresstext2,220 + GUIOuttext 81,121,guipresstext3,220-15 + GUIOuttext 80,120,guipresstext3,220 + call vidpastecopyscr .again - call JoyRead + call JoyRead ; mov dword[pressed+0CCh],0 ; mov dword[pressed+0CCh+80h],0 ; mov dword[pressed+0E8h],0 ; mov dword[pressed+0E8h+80h],0 - xor ebx,ebx - mov ecx,256+128+64 + xor ebx,ebx + mov ecx,256+128+64 .b - cmp byte[pressed+ebx],0 - jne .pressedokay - inc ebx - dec ecx - jnz .b - jmp .again + cmp byte[pressed+ebx],0 + jne .pressedokay + inc ebx + dec ecx + jnz .b + jmp .again .pressedokay - push ebx - xor ebx,ebx - mov ecx,256+128+64 + push ebx + xor ebx,ebx + mov ecx,256+128+64 .a2 - cmp byte[pressed+ebx],0 - je .pressedokayb - mov byte[pressed+ebx],2 + cmp byte[pressed+ebx],0 + je .pressedokayb + mov byte[pressed+ebx],2 .pressedokayb - inc ebx - dec ecx - jnz .a2 - pop ebx + inc ebx + dec ecx + jnz .a2 + pop ebx .again2 - call Check_Key - or al,al - jz .nokey - call Get_Key - jmp .again2 + call Check_Key + or al,al + jz .nokey + call Get_Key + jmp .again2 .nokey ; push ebx ; mov eax,0Bh ; int 33h ; pop ebx - ret + ret SECTION .data guipresstext1 db 'ENTER THE KEY',0 @@ -2705,74 +2740,74 @@ guipresstext3 db '(ESC TO CLEAR)',0 SECTION .text guipresstestb: - call GUIUnBuffer - call DisplayBoxes - call DisplayMenu - GUIBox 65,80,194,126,160 - GUIBox 65,80,194,80,162 - GUIBox 65,80,65,126,161 - GUIBox 194,80,194,126,159 - GUIBox 65,126,194,126,158 - GUIOuttext 71,86,guipresstext1,220-15 - GUIOuttext 70,85,guipresstext1,220 - GUIOuttext 71,96,guipresstext2,220-15 - GUIOuttext 70,95,guipresstext2,220 - GUIOuttext 71,116,guipresstext3b,220-15 - GUIOuttext 70,115,guipresstext3b,220 - mov eax,[guipressptr] - GUIOuttext 71,106,eax,220-15 - mov eax,[guipressptr] - GUIOuttext 70,105,eax,220 - call vidpastecopyscr - mov ecx,8192 - call delay + call GUIUnBuffer + call DisplayBoxes + call DisplayMenu + GUIBox 65,80,194,126,160 + GUIBox 65,80,194,80,162 + GUIBox 65,80,65,126,161 + GUIBox 194,80,194,126,159 + GUIBox 65,126,194,126,158 + GUIOuttext 71,86,guipresstext1,220-15 + GUIOuttext 70,85,guipresstext1,220 + GUIOuttext 71,96,guipresstext2,220-15 + GUIOuttext 70,95,guipresstext2,220 + GUIOuttext 71,116,guipresstext3b,220-15 + GUIOuttext 70,115,guipresstext3b,220 + mov eax,[guipressptr] + GUIOuttext 71,106,eax,220-15 + mov eax,[guipressptr] + GUIOuttext 70,105,eax,220 + call vidpastecopyscr + mov ecx,8192 + call delay .tryagain - call JoyRead - xor ebx,ebx - mov ecx,256+128+64 + call JoyRead + xor ebx,ebx + mov ecx,256+128+64 .b2 - cmp byte[pressed+ebx],0 - jne .tryagain - inc ebx - dec ecx - jnz .b2 + cmp byte[pressed+ebx],0 + jne .tryagain + inc ebx + dec ecx + jnz .b2 .again - call JoyRead + call JoyRead ; mov dword[pressed+0CCh],0 ; mov dword[pressed+0CCh+80h],0 ; mov dword[pressed+0E8h],0 ; mov dword[pressed+0E8h+80h],0 - xor ebx,ebx - mov ecx,256+128+64 + xor ebx,ebx + mov ecx,256+128+64 .b - cmp byte[pressed+ebx],0 - jne .pressedokay - inc ebx - dec ecx - jnz .b - jmp .again + cmp byte[pressed+ebx],0 + jne .pressedokay + inc ebx + dec ecx + jnz .b + jmp .again .pressedokay .again2 - call Check_Key - or al,al - jz .nokey - call Get_Key - jmp .again2 + call Check_Key + or al,al + jz .nokey + call Get_Key + jmp .again2 .nokey - cmp ebx,1 - je .skip - cmp ebx,3Bh - je .skip - mov eax,[guicpressptr] - mov [eax],ebx + cmp ebx,1 + je .skip + cmp ebx,3Bh + je .skip + mov eax,[guicpressptr] + mov [eax],ebx .skip ; push ebx ; mov eax,0Bh ; int 33h ; pop ebx - ret + ret SECTION .data guipresstext3b db '(ESC TO SKIP)',0 @@ -2794,244 +2829,244 @@ guicpressptr resd 1 SECTION .text DisplayGameOptnsClick: - mov dword[keycontrolval],0 ; Shortcut Boxes - DGOptnsProcBox 27,23,[KeyBGDisble0] - DGOptnsProcBox 27+45,23,[KeyBGDisble1] - DGOptnsProcBox 27+45*2,23,[KeyBGDisble2] - DGOptnsProcBox 27+45*3,23,[KeyBGDisble3] - DGOptnsProcBox 27+45*4,23,[KeySprDisble] - DGOptnsProcBox 27,41,[KeyDisableSC0] - DGOptnsProcBox 27+45,41,[KeyDisableSC1] - DGOptnsProcBox 27+45*2,41,[KeyDisableSC2] - DGOptnsProcBox 27+45*3,41,[KeyDisableSC3] - DGOptnsProcBox 34+45*4,41,[KeyVolUp] - DGOptnsProcBox 27,50,[KeyDisableSC4] - DGOptnsProcBox 27+45,50,[KeyDisableSC5] - DGOptnsProcBox 27+45*2,50,[KeyDisableSC6] - DGOptnsProcBox 27+45*3,50,[KeyDisableSC7] - DGOptnsProcBox 34+45*4,50,[KeyVolDown] + mov dword[keycontrolval],0 ; Shortcut Boxes + DGOptnsProcBox 27,23,[KeyBGDisble0] + DGOptnsProcBox 27+45,23,[KeyBGDisble1] + DGOptnsProcBox 27+45*2,23,[KeyBGDisble2] + DGOptnsProcBox 27+45*3,23,[KeyBGDisble3] + DGOptnsProcBox 27+45*4,23,[KeySprDisble] + DGOptnsProcBox 27,41,[KeyDisableSC0] + DGOptnsProcBox 27+45,41,[KeyDisableSC1] + DGOptnsProcBox 27+45*2,41,[KeyDisableSC2] + DGOptnsProcBox 27+45*3,41,[KeyDisableSC3] + DGOptnsProcBox 34+45*4,41,[KeyVolUp] + DGOptnsProcBox 27,50,[KeyDisableSC4] + DGOptnsProcBox 27+45,50,[KeyDisableSC5] + DGOptnsProcBox 27+45*2,50,[KeyDisableSC6] + DGOptnsProcBox 27+45*3,50,[KeyDisableSC7] + DGOptnsProcBox 34+45*4,50,[KeyVolDown] - DGOptnsProcBox 8+25,70,[KeyQuickLoad] - DGOptnsProcBox 8+57+26,70,[KeyQuickRst] - DGOptnsProcBox 8+114+20,70,[KeyQuickExit] - DGOptnsProcBox 8+114+78,70,[KeyQuickClock] - DGOptnsProcBox 8+25,80,[KeyQuickChat] - DGOptnsProcBox 8+57+45,80,[KeyQuickSnapShot] - DGOptnsProcBox 8+108+70,80,[KeyQuickSaveSPC] + DGOptnsProcBox 8+25,70,[KeyQuickLoad] + DGOptnsProcBox 8+57+26,70,[KeyQuickRst] + DGOptnsProcBox 8+114+20,70,[KeyQuickExit] + DGOptnsProcBox 8+114+78,70,[KeyQuickClock] + DGOptnsProcBox 8+25,80,[KeyQuickChat] + DGOptnsProcBox 8+57+45,80,[KeyQuickSnapShot] + DGOptnsProcBox 8+108+70,80,[KeyQuickSaveSPC] - DGOptnsProcBox 78,100,[KeyUsePlayer1234] - DGOptnsProcBox 78,110,[KeyResetAll] - DGOptnsProcBox 78,120,[KeyExtraEnab] - DGOptnsProcBox 78,130,[KeyDisplayFPS] - DGOptnsProcBox 78,140,[KeyIncreaseGamma] - DGOptnsProcBox 78,150,[KeyDecreaseGamma] + DGOptnsProcBox 78,100,[KeyUsePlayer1234] + DGOptnsProcBox 78,110,[KeyResetAll] + DGOptnsProcBox 78,120,[KeyExtraEnab] + DGOptnsProcBox 78,130,[KeyDisplayFPS] + DGOptnsProcBox 78,140,[KeyIncreaseGamma] + DGOptnsProcBox 78,150,[KeyDecreaseGamma] %ifndef __MSDOS__ - DGOptnsProcBox 78,160,[KeyDisplayBatt] + DGOptnsProcBox 78,160,[KeyDisplayBatt] %endif - DGOptnsProcBox 191,100,[KeyNewGfxSwt] - DGOptnsProcBox 191,110,[KeyWinDisble] - DGOptnsProcBox 191,120,[KeyOffsetMSw] - ret + DGOptnsProcBox 191,100,[KeyNewGfxSwt] + DGOptnsProcBox 191,110,[KeyWinDisble] + DGOptnsProcBox 191,120,[KeyOffsetMSw] + ret DisplayGUIOptnsClick: - mov eax,[GUImouseposx] - sub eax,[GUIwinposx+10*4] - mov edx,[GUImouseposy] - sub edx,[GUIwinposy+10*4] - GUIClickCButton 12,23,byte[mousewrap] ; Checkboxes - GUIClickCButton 12,33,byte[mouseshad] - GUIClickCButton 12,43,byte[lastcursres] - GUIClickCButton 12,53,byte[resetposn] - GUIClickCButton 12,63,byte[GUIClick] - GUIClickCButton 12,73,byte[JoyPad1Move] - GUIClickCButton 124,23,byte[GUIEnableTransp] - GUIClickCButtonI 124,33,byte[FilteredGUI] - GUIClickCButton6 124,43,byte[GUIEffect],1 - GUIClickCButton6 124,53,byte[GUIEffect],2 - GUIClickCButton6 124,63,byte[GUIEffect],3 - GUIClickCButton6 124,73,byte[GUIEffect],4 + mov eax,[GUImouseposx] + sub eax,[GUIwinposx+10*4] + mov edx,[GUImouseposy] + sub edx,[GUIwinposy+10*4] + GUIClickCButton 12,23,byte[mousewrap] ; Checkboxes + GUIClickCButton 12,33,byte[mouseshad] + GUIClickCButton 12,43,byte[lastcursres] + GUIClickCButton 12,53,byte[resetposn] + GUIClickCButton 12,63,byte[GUIClick] + GUIClickCButton 12,73,byte[JoyPad1Move] + GUIClickCButton 124,23,byte[GUIEnableTransp] + GUIClickCButtonI 124,33,byte[FilteredGUI] + GUIClickCButton6 124,43,byte[GUIEffect],1 + GUIClickCButton6 124,53,byte[GUIEffect],2 + GUIClickCButton6 124,63,byte[GUIEffect],3 + GUIClickCButton6 124,73,byte[GUIEffect],4 %ifdef __WIN32__ - GUIClickCButton 124,83,byte[MouseWheel] - GUIClickCButton 124,93,byte[TrapMouseCursor] - GUIClickCButton 12,168,byte[AlwaysOnTop] - GUIClickCButton 12,178,byte[SaveMainWindowPos] - GUIClickCButton 12,188,byte[AllowMultipleInst] + GUIClickCButton 124,83,byte[MouseWheel] + GUIClickCButton 124,93,byte[TrapMouseCursor] + GUIClickCButton 12,168,byte[AlwaysOnTop] + GUIClickCButton 12,178,byte[SaveMainWindowPos] + GUIClickCButton 12,188,byte[AllowMultipleInst] %endif - GUIPButtonHole 48,108,byte[CurPalSelect],0 ; Radio Buttons - GUIPButtonHole 88,108,byte[CurPalSelect],1 - GUIPButtonHole 135,108,byte[CurPalSelect],2 + GUIPButtonHole 48,108,byte[CurPalSelect],0 ; Radio Buttons + GUIPButtonHole 88,108,byte[CurPalSelect],1 + GUIPButtonHole 135,108,byte[CurPalSelect],2 - push eax ; Sliders - cmp byte[CurPalSelect],1 - je .yespal2b - cmp byte[CurPalSelect],2 - je .yespal3b - mov al,[GUIRAdd] - mov [TRVal2],al - mov al,[GUIGAdd] - mov [TGVal2],al - mov al,[GUIBAdd] - mov [TBVal2],al - jmp .nopal1b + push eax ; Sliders + cmp byte[CurPalSelect],1 + je .yespal2b + cmp byte[CurPalSelect],2 + je .yespal3b + mov al,[GUIRAdd] + mov [TRVal2],al + mov al,[GUIGAdd] + mov [TGVal2],al + mov al,[GUIBAdd] + mov [TBVal2],al + jmp .nopal1b .yespal2b - mov al,[GUITRAdd] - mov [TRVal2],al - mov al,[GUITGAdd] - mov [TGVal2],al - mov al,[GUITBAdd] - mov [TBVal2],al - jmp .nopal1b + mov al,[GUITRAdd] + mov [TRVal2],al + mov al,[GUITGAdd] + mov [TGVal2],al + mov al,[GUITBAdd] + mov [TBVal2],al + jmp .nopal1b .yespal3b - mov al,[GUIWRAdd] - mov [TRVal2],al - mov al,[GUIWGAdd] - mov [TGVal2],al - mov al,[GUIWBAdd] - mov [TBVal2],al + mov al,[GUIWRAdd] + mov [TRVal2],al + mov al,[GUIWGAdd] + mov [TGVal2],al + mov al,[GUIWBAdd] + mov [TBVal2],al .nopal1b - pop eax + pop eax - cmp eax,25 - jl near .nomovebar - cmp eax,25+32*4-1 - jg near .nomovebar - sub eax,25 - shr eax,2 - cmp edx,122 - jl .nomovebar1 - cmp edx,126 - jg .nomovebar1 - cmp byte[TRVal2],al - je .nomovebar1b - mov [TRVal2],al - mov byte[TRVal2+1],1 + cmp eax,25 + jl near .nomovebar + cmp eax,25+32*4-1 + jg near .nomovebar + sub eax,25 + shr eax,2 + cmp edx,122 + jl .nomovebar1 + cmp edx,126 + jg .nomovebar1 + cmp byte[TRVal2],al + je .nomovebar1b + mov [TRVal2],al + mov byte[TRVal2+1],1 .nomovebar1b - mov byte[GUIHold],2 - mov eax,[GUIwinposy+10*4] - add eax,124 - mov [GUIHoldYlim],eax - jmp .nomovebar + mov byte[GUIHold],2 + mov eax,[GUIwinposy+10*4] + add eax,124 + mov [GUIHoldYlim],eax + jmp .nomovebar .nomovebar1 - cmp edx,134 - jl .nomovebar2 - cmp edx,138 - jg .nomovebar2 - cmp byte[TGVal2],al - je .nomovebar2b - mov [TGVal2],al - mov byte[TRVal2+1],1 + cmp edx,134 + jl .nomovebar2 + cmp edx,138 + jg .nomovebar2 + cmp byte[TGVal2],al + je .nomovebar2b + mov [TGVal2],al + mov byte[TRVal2+1],1 .nomovebar2b - mov byte[GUIHold],2 - mov eax,[GUIwinposy+10*4] - add eax,136 - mov [GUIHoldYlim],eax - jmp .nomovebar + mov byte[GUIHold],2 + mov eax,[GUIwinposy+10*4] + add eax,136 + mov [GUIHoldYlim],eax + jmp .nomovebar .nomovebar2 - cmp edx,146 - jl .nomovebar3 - cmp edx,150 - jg .nomovebar3 - cmp byte[TBVal2],al - je .nomovebar3b - mov [TBVal2],al - mov byte[TRVal2+1],1 + cmp edx,146 + jl .nomovebar3 + cmp edx,150 + jg .nomovebar3 + cmp byte[TBVal2],al + je .nomovebar3b + mov [TBVal2],al + mov byte[TRVal2+1],1 .nomovebar3b - mov byte[GUIHold],2 - mov eax,[GUIwinposy+10*4] - add eax,148 - mov [GUIHoldYlim],eax + mov byte[GUIHold],2 + mov eax,[GUIwinposy+10*4] + add eax,148 + mov [GUIHoldYlim],eax .nomovebar3 .nomovebar - push eax - cmp byte[CurPalSelect],1 - je .yespal2 - cmp byte[CurPalSelect],2 - je .yespal3 - mov al,[TRVal2] - mov [GUIRAdd],al - mov al,[TGVal2] - mov [GUIGAdd],al - mov al,[TBVal2] - mov [GUIBAdd],al - jmp .nopal1 + push eax + cmp byte[CurPalSelect],1 + je .yespal2 + cmp byte[CurPalSelect],2 + je .yespal3 + mov al,[TRVal2] + mov [GUIRAdd],al + mov al,[TGVal2] + mov [GUIGAdd],al + mov al,[TBVal2] + mov [GUIBAdd],al + jmp .nopal1 .yespal2 - mov al,[TRVal2] - mov [GUITRAdd],al - mov al,[TGVal2] - mov [GUITGAdd],al - mov al,[TBVal2] - mov [GUITBAdd],al - jmp .nopal1 + mov al,[TRVal2] + mov [GUITRAdd],al + mov al,[TGVal2] + mov [GUITGAdd],al + mov al,[TBVal2] + mov [GUITBAdd],al + jmp .nopal1 .yespal3 - mov al,[TRVal2] - mov [GUIWRAdd],al - mov al,[TGVal2] - mov [GUIWGAdd],al - mov al,[TBVal2] - mov [GUIWBAdd],al + mov al,[TRVal2] + mov [GUIWRAdd],al + mov al,[TGVal2] + mov [GUIWGAdd],al + mov al,[TBVal2] + mov [GUIWBAdd],al .nopal1 - pop eax + pop eax - cmp byte[TRVal2+1],1 - jne .nopalchange - call GUISetPal - mov byte[TRVal2+1],0 + cmp byte[TRVal2+1],1 + jne .nopalchange + call GUISetPal + mov byte[TRVal2+1],0 .nopalchange - cmp byte[GUIHold],2 - jne .nohold - mov eax,[GUIwinposx+10*4] - add eax,25 - mov [GUIHoldXlimL],eax - mov eax,[GUIwinposx+10*4] - add eax,25+32*4-1 - mov [GUIHoldXlimR],eax + cmp byte[GUIHold],2 + jne .nohold + mov eax,[GUIwinposx+10*4] + add eax,25 + mov [GUIHoldXlimL],eax + mov eax,[GUIwinposx+10*4] + add eax,25+32*4-1 + mov [GUIHoldXlimR],eax .nohold - ret + ret DisplayGUIAboutClick: %ifndef __MSDOS__ - cmp byte[EEgg],1 - je near .eegg - GUIPHoldbutton 90,22,175,32,65 - GUIPHoldbutton 90,33,175,43,66 + cmp byte[EEgg],1 + je near .eegg + GUIPHoldbutton 90,22,175,32,65 + GUIPHoldbutton 90,33,175,43,66 .eegg %endif - ret + ret %macro ComboBoxProc 5 - cmp eax,%1 - jl %%nope - cmp edx,%2 - jl %%nope - cmp eax,%3 - jg %%nope - cmp edx,%4 - jg %%nope - cmp byte[GUINumCombo],42 - je %%nope - xor ebx,ebx - mov bl,[GUINumCombo] - mov byte[GUIComboData+ebx],%5 - inc byte[GUINumCombo] + cmp eax,%1 + jl %%nope + cmp edx,%2 + jl %%nope + cmp eax,%3 + jg %%nope + cmp edx,%4 + jg %%nope + cmp byte[GUINumCombo],42 + je %%nope + xor ebx,ebx + mov bl,[GUINumCombo] + mov byte[GUIComboData+ebx],%5 + inc byte[GUINumCombo] %%nope %endmacro %macro ComboBoxProcD 4 - cmp eax,%1 - jl %%nope - cmp edx,%2 - jl %%nope - cmp eax,%3 - jg %%nope - cmp edx,%4 - jg %%nope - cmp byte[GUINumCombo],0 - je %%nope - dec byte[GUINumCombo] + cmp eax,%1 + jl %%nope + cmp edx,%2 + jl %%nope + cmp eax,%3 + jg %%nope + cmp edx,%4 + jg %%nope + cmp byte[GUINumCombo],0 + je %%nope + dec byte[GUINumCombo] %%nope %endmacro @@ -3042,373 +3077,374 @@ DisplayGUIAboutClick: ; DrawSlideBarWin 3,109,42,[GUIcurrentinputviewloc],16,5,28,GUIIStA DisplayGUIComboClick2: - mov dword[keycontrolval],0 - ; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize - GUISlidebarPostImpl 192,28,199,72,.scrollup,.scrolldown,13,8,GUIccombviewloc,GUIccombcursloc,NumCombo,GUIBlankVar,1 - ;x1,y1,x2,y2,view,curs,num,.scru,.scrd,jumpto,sizeofscreen - GUIPostWinBoxMove 10,22,190,23+8*7,GUIccombviewloc,GUIccombcursloc,NumCombo,.scrollup,.scrolldown,DisplayGUIComboClick.skipscrol,8 + mov dword[keycontrolval],0 + ; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize + GUISlidebarPostImpl 192,28,199,72,.scrollup,.scrolldown,13,8,GUIccombviewloc,GUIccombcursloc,NumCombo,GUIBlankVar,1 + ;x1,y1,x2,y2,view,curs,num,.scru,.scrd,jumpto,sizeofscreen + GUIPostWinBoxMove 10,22,190,23+8*7,GUIccombviewloc,GUIccombcursloc,NumCombo,.scrollup,.scrolldown,DisplayGUIComboClick.skipscrol,8 DisplayGUIComboClick: - ; SlideBar Implementation - ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win# - GUISlidebarImpl 192,28,199,72,GUICSStC,8,GUIccombviewloc,GUIccombviewloc,NumCombo,16 + ; SlideBar Implementation + ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win# + GUISlidebarImpl 192,28,199,72,GUICSStC,8,GUIccombviewloc,GUIccombviewloc,NumCombo,16 .skipscrol - ;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# - GUIWinControl2 10,23,190,22+8*7,GUIBlankVar,GUIccombviewloc,NumCombo,23,7,GUIccombcursloc,6,16,0 + ;x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# + GUIWinControl2 10,23,190,22+8*7,GUIBlankVar,GUIccombviewloc,NumCombo,23,7,GUIccombcursloc,6,16,0 - GUIPButtonHole 158,82,byte[GUIComboPNum],0 - GUIPButtonHole 176,82,byte[GUIComboPNum],1 - GUIPButtonHole 194,82,byte[GUIComboPNum],2 - GUIPButtonHole 212,82,byte[GUIComboPNum],3 - GUIPButtonHole 230,82,byte[GUIComboPNum],4 - GUIClickCButton 163,88,byte[GUIComboLHorz] - GUIClickCButtonC 163,96,byte[GUIComboGameSpec] - GUIPHoldbutton 202,20,246,31,60 - GUIPHoldbutton 202,35,246,46,61 - GUIPHoldbutton 202,50,246,61,62 - GUIPHoldbutton 202,65,246,76,63 - DGOptnsProcBoxc 10,91,32,99,[GUIComboKey] + GUIPButtonHole 158,82,byte[GUIComboPNum],0 + GUIPButtonHole 176,82,byte[GUIComboPNum],1 + GUIPButtonHole 194,82,byte[GUIComboPNum],2 + GUIPButtonHole 212,82,byte[GUIComboPNum],3 + GUIPButtonHole 230,82,byte[GUIComboPNum],4 + GUIClickCButton 163,88,byte[GUIComboLHorz] + GUIClickCButtonC 163,96,byte[GUIComboGameSpec] + GUIPHoldbutton 202,20,246,31,60 + GUIPHoldbutton 202,35,246,46,61 + GUIPHoldbutton 202,50,246,61,62 + GUIPHoldbutton 202,65,246,76,63 + DGOptnsProcBoxc 10,91,32,99,[GUIComboKey] - ComboBoxProc 75,150,85,157,1 - ComboBoxProc 89,150,99,157,2 - ComboBoxProc 103,150,113,157,3 - ComboBoxProc 117,150,127,157,4 - ComboBoxProc 131,150,141,157,5 - ComboBoxProc 145,150,155,157,6 - ComboBoxProc 159,150,169,157,7 - ComboBoxProc 173,150,183,157,8 - ComboBoxProc 187,150,197,157,9 - ComboBoxProc 201,150,211,157,10 - ComboBoxProc 215,150,227,157,11 - ComboBoxProc 231,150,243,157,12 - ComboBoxProc 75,160,85,167,13 - ComboBoxProc 89,160,99,167,14 - ComboBoxProc 103,160,113,167,15 - ComboBoxProc 117,160,127,167,16 - ComboBoxProc 131,160,141,167,17 - ComboBoxProc 145,160,155,167,18 - ComboBoxProc 159,160,169,167,19 - ComboBoxProc 173,160,183,167,20 - ComboBoxProc 187,160,197,167,21 - ComboBoxProc 201,160,211,167,22 - ComboBoxProc 215,160,227,167,23 - ComboBoxProc 231,160,243,167,24 - ComboBoxProc 75,170,85,177,25 - ComboBoxProc 89,170,99,177,26 - ComboBoxProc 103,170,113,177,27 - ComboBoxProc 117,170,127,177,28 - ComboBoxProc 131,170,141,177,29 - ComboBoxProc 145,170,155,177,30 - ComboBoxProc 159,170,169,177,31 - ComboBoxProc 173,170,183,177,32 - ComboBoxProc 187,170,197,177,33 - ComboBoxProc 201,170,211,177,34 - ComboBoxProc 215,170,227,177,35 - ComboBoxProc 231,170,243,177,36 + ComboBoxProc 75,150,85,157,1 + ComboBoxProc 89,150,99,157,2 + ComboBoxProc 103,150,113,157,3 + ComboBoxProc 117,150,127,157,4 + ComboBoxProc 131,150,141,157,5 + ComboBoxProc 145,150,155,157,6 + ComboBoxProc 159,150,169,157,7 + ComboBoxProc 173,150,183,157,8 + ComboBoxProc 187,150,197,157,9 + ComboBoxProc 201,150,211,157,10 + ComboBoxProc 215,150,227,157,11 + ComboBoxProc 231,150,243,157,12 + ComboBoxProc 75,160,85,167,13 + ComboBoxProc 89,160,99,167,14 + ComboBoxProc 103,160,113,167,15 + ComboBoxProc 117,160,127,167,16 + ComboBoxProc 131,160,141,167,17 + ComboBoxProc 145,160,155,167,18 + ComboBoxProc 159,160,169,167,19 + ComboBoxProc 173,160,183,167,20 + ComboBoxProc 187,160,197,167,21 + ComboBoxProc 201,160,211,167,22 + ComboBoxProc 215,160,227,167,23 + ComboBoxProc 231,160,243,167,24 + ComboBoxProc 75,170,85,177,25 + ComboBoxProc 89,170,99,177,26 + ComboBoxProc 103,170,113,177,27 + ComboBoxProc 117,170,127,177,28 + ComboBoxProc 131,170,141,177,29 + ComboBoxProc 145,170,155,177,30 + ComboBoxProc 159,170,169,177,31 + ComboBoxProc 173,170,183,177,32 + ComboBoxProc 187,170,197,177,33 + ComboBoxProc 201,170,211,177,34 + ComboBoxProc 215,170,227,177,35 + ComboBoxProc 231,170,243,177,36 - ComboBoxProc 10,189,20,196,37 - ComboBoxProc 24,189,34,196,38 - ComboBoxProc 38,189,48,196,39 - ComboBoxProc 52,189,62,196,40 - ComboBoxProc 66,189,76,196,41 - ComboBoxProc 80,189,90,196,42 - ComboBoxProc 107,189,117,196,43 - ComboBoxProc 121,189,131,196,44 - ComboBoxProc 135,189,145,196,45 - ComboBoxProc 149,189,159,196,46 - ComboBoxProc 163,189,173,196,47 - ComboBoxProc 177,189,187,196,48 - ComboBoxProcD 204,189,218,196 - mov ebx,[NumComboLocl] - cmp byte[GUIComboGameSpec],0 - jne .local - mov ebx,[NumComboGlob] + ComboBoxProc 10,189,20,196,37 + ComboBoxProc 24,189,34,196,38 + ComboBoxProc 38,189,48,196,39 + ComboBoxProc 52,189,62,196,40 + ComboBoxProc 66,189,76,196,41 + ComboBoxProc 80,189,90,196,42 + ComboBoxProc 107,189,117,196,43 + ComboBoxProc 121,189,131,196,44 + ComboBoxProc 135,189,145,196,45 + ComboBoxProc 149,189,159,196,46 + ComboBoxProc 163,189,173,196,47 + ComboBoxProc 177,189,187,196,48 + ComboBoxProcD 204,189,218,196 + mov ebx,[NumComboLocl] + cmp byte[GUIComboGameSpec],0 + jne .local + mov ebx,[NumComboGlob] .local - mov [NumCombo],ebx - xor ebx,ebx - ret + mov [NumCombo],ebx + xor ebx,ebx + ret DisplayGUIResetClick: - GUIPHoldbutton 20,30,56,41,2 - GUIPHoldbutton 80,30,116,41,3 - ret + GUIPHoldbutton 20,30,56,41,2 + GUIPHoldbutton 80,30,116,41,3 + ret DisplayGUIStatesClick: - GUIPHoldbutton 20,30,56,41,10 - GUIPHoldbutton 80,30,116,41,11 - ret + GUIPHoldbutton 20,30,56,41,10 + GUIPHoldbutton 80,30,116,41,11 + ret DisplayGUICheatSearchClick2: - cmp byte[CheatWinMode],2 - je near DisplayGUICheatSearchClick.preview + cmp byte[CheatWinMode],2 + je near DisplayGUICheatSearchClick.preview DisplayGUICheatSearchClick: - cmp byte[CheatWinMode],1 - je near .incheatmode - cmp byte[CheatWinMode],2 - je near .view - cmp byte[CheatWinMode],3 - je near .add + cmp byte[CheatWinMode],1 + je near .incheatmode + cmp byte[CheatWinMode],2 + je near .view + cmp byte[CheatWinMode],3 + je near .add - GUIPHoldbutton 95,140,140,152,50 ; Main Menu - GUIPButtonHole 11,28,byte[CheatSrcByteSize],0 - GUIPButtonHole 11,38,byte[CheatSrcByteSize],1 - GUIPButtonHole 11,48,byte[CheatSrcByteSize],2 - GUIPButtonHole 11,58,byte[CheatSrcByteSize],3 - GUIPButtonHole 11,73,byte[CheatSrcByteBase],0 - GUIPButtonHole 11,83,byte[CheatSrcByteBase],1 - GUIPButtonHole 11,113,byte[CheatSrcSearchType],0 - GUIPButtonHole 11,123,byte[CheatSrcSearchType],1 - ret + GUIPHoldbutton 95,140,140,152,50 ; Main Menu + GUIPButtonHole 11,28,byte[CheatSrcByteSize],0 + GUIPButtonHole 11,38,byte[CheatSrcByteSize],1 + GUIPButtonHole 11,48,byte[CheatSrcByteSize],2 + GUIPButtonHole 11,58,byte[CheatSrcByteSize],3 + GUIPButtonHole 11,73,byte[CheatSrcByteBase],0 + GUIPButtonHole 11,83,byte[CheatSrcByteBase],1 + GUIPButtonHole 11,113,byte[CheatSrcSearchType],0 + GUIPButtonHole 11,123,byte[CheatSrcSearchType],1 + ret .incheatmode ; Exact Value - GUIPHoldbutton 30,140,80,152,51 - cmp byte[CheatSearchStatus],1 - jne near .cheatsearching - jmp .nosearch + GUIPHoldbutton 30,140,80,152,51 + cmp byte[CheatSearchStatus],1 + jne near .cheatsearching + jmp .nosearch .cheatsearching ; Return and Re-Search - cmp byte[CheatSrcSearchType],1 - je near .cheatsearchingcomp - jmp .searched + cmp byte[CheatSrcSearchType],1 + je near .cheatsearchingcomp + jmp .searched .cheatsearchingcomp ; Select Comparison - GUIPButtonHole 11,33,byte[CheatCompareValue],0 - GUIPButtonHole 11,43,byte[CheatCompareValue],1 - GUIPButtonHole 11,53,byte[CheatCompareValue],2 - GUIPButtonHole 11,63,byte[CheatCompareValue],3 + GUIPButtonHole 11,33,byte[CheatCompareValue],0 + GUIPButtonHole 11,43,byte[CheatCompareValue],1 + GUIPButtonHole 11,53,byte[CheatCompareValue],2 + GUIPButtonHole 11,63,byte[CheatCompareValue],3 .searched ; Restart/View/Search Buttons - GUIPHoldbutton 120,140,170,152,53 + GUIPHoldbutton 120,140,170,152,53 .nosearch - 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 - GUISlidebarPostImpl 173,28,180,100,.scrollup,.scrolldown,11,12,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,GUIBlankVar,1 - ;x1,y1,x2,y2,view,curs,num,.scru,.scrd,jumpto,sizeofscreen - GUIPostWinBoxMove 5,22,171,22+12*7,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,.scrollup,.scrolldown,DisplayGUICheatSearchClick.skipscrol,12 -.view - ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win# - GUISlidebarImpl 173,28,180,100,GUICSStA,12,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,13 -.skipscrol - ; x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# - GUIWinControl 5,23,171,21+12*7,GUIBlankVar,GUIcurrentchtsrcviewloc,NumCheatSrc,22,7,GUIcurrentchtsrccursloc,5,13,30 + GUIPHoldbutton 10,140,60,152,51 + GUIPHoldbutton 70,140,110,152,52 + ret - GUIPHoldbutton 70,140,130,152,54 ; Return/Add Buttons - GUIPHoldbutton 140,140,180,152,55 - ret +; View Cheat +.preview ; Preview Box + ; 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 + ;x1,y1,x2,y2,view,curs,num,.scru,.scrd,jumpto,sizeofscreen + GUIPostWinBoxMove 5,22,171,22+12*7,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,.scrollup,.scrolldown,DisplayGUICheatSearchClick.skipscrol,12 +.view + ; x1,y1,x2,y2,GUI?StA,ScrnSize,ViewLoc,CursLoc,Entries,win# + GUISlidebarImpl 173,28,180,100,GUICSStA,12,GUIcurrentchtsrcviewloc,GUIcurrentchtsrccursloc,NumCheatSrc,13 +.skipscrol + ; x,y,x2,y2,currentwin,vpos,#entries,starty,y/entry,cpos,winval,win#,dclicktick# + GUIWinControl 5,23,171,21+12*7,GUIBlankVar,GUIcurrentchtsrcviewloc,NumCheatSrc,22,7,GUIcurrentchtsrccursloc,5,13,30 + + GUIPHoldbutton 70,140,130,152,54 ; Return/Add Buttons + GUIPHoldbutton 140,140,180,152,55 + ret ; DrawSlideBarWin 13,173,28,[GUIcurrentchtsrcviewloc],[NumCheatSrc],12,73,GUICSStA ; DrawGUIWinBox 13,5,20,171,108,167 .add ; Add Cheat - GUIPHoldbutton 60,155,120,167,56 ; Return/Add Buttons - GUIPHoldbutton 130,155,160,167,57 - GUIClickCButton 8,139,byte[CheatUpperByteOnly] ; Checkbox - GUIBoxVar 10,30,80,37,CurCStextpos,0 ; Input Boxes - GUIBoxVar 10,55,126,62,CurCStextpos,1 - ret + GUIPHoldbutton 60,155,120,167,56 ; Return/Add Buttons + GUIPHoldbutton 130,155,160,167,57 + GUIClickCButton 8,139,byte[CheatUpperByteOnly] ; Checkbox + GUIBoxVar 10,30,80,37,CurCStextpos,0 ; Input Boxes + GUIBoxVar 10,55,126,62,CurCStextpos,1 + ret DisplayGUIAddOnClick: - GUIPButtonHole 9,15,byte[snesmouse],0 - GUIPButtonHole 9,25,byte[snesmouse],1 - GUIPButtonHole 9,35,byte[snesmouse],2 - GUIPButtonHole 9,45,byte[snesmouse],3 - GUIPButtonHole 9,55,byte[snesmouse],4 - ret + GUIPButtonHole 9,15,byte[snesmouse],0 + GUIPButtonHole 9,25,byte[snesmouse],1 + GUIPButtonHole 9,35,byte[snesmouse],2 + GUIPButtonHole 9,45,byte[snesmouse],3 + GUIPButtonHole 9,55,byte[snesmouse],4 + ret DisplayGUIChipClick: - GUIClickCButton 9,43,byte[nssdip1] - GUIClickCButton 59,43,byte[nssdip2] - GUIClickCButton 109,43,byte[nssdip3] - GUIClickCButton 9,53,byte[nssdip4] - GUIClickCButton 59,53,byte[nssdip5] - GUIClickCButton 109,53,byte[nssdip6] - ret + GUIClickCButton 9,43,byte[nssdip1] + GUIClickCButton 59,43,byte[nssdip2] + GUIClickCButton 109,43,byte[nssdip3] + GUIClickCButton 9,53,byte[nssdip4] + GUIClickCButton 59,53,byte[nssdip5] + GUIClickCButton 109,53,byte[nssdip6] + ret DisplayGUIPathsClick: - GUITextBoxInputNach 75,15,230,25,1,1024 ;SRAMDir - GUITextBoxInputNach 75,35,230,45,2,1024 ;SnapPath - GUITextBoxInputNach 75,55,230,65,3,1024 ;SPCPath - GUITextBoxInputNach 8,95,100,105,4,1024 ;BSXPath - GUITextBoxInputNach 8,120,100,130,5,1024 ;SGPath - GUITextBoxInputNach 135,95,235,105,6,1024 ;STPath - GUITextBoxInputNach 135,120,235,130,7,1024 ;GNextPath - GUITextBoxInputNach 8,155,100,165,8,1024 ;FEOEZPath - GUITextBoxInputNach 135,155,235,165,9,1024 ;SJNSPath - GUITextBoxInputNach 8,180,100,190,10,1024 ;MDHPath - GUITextBoxInputNach 135,180,235,190,11,1024 ;SPL4Path - ret + GUITextBoxInputNach 75,15,230,25,1,1024 ;SRAMDir + GUITextBoxInputNach 75,35,230,45,2,1024 ;SnapPath + GUITextBoxInputNach 75,55,230,65,3,1024 ;SPCPath + GUITextBoxInputNach 8,95,100,105,4,1024 ;BSXPath + GUITextBoxInputNach 8,120,100,130,5,1024 ;SGPath + GUITextBoxInputNach 135,95,235,105,6,1024 ;STPath + GUITextBoxInputNach 135,120,235,130,7,1024 ;GNextPath + GUITextBoxInputNach 8,155,100,165,8,1024 ;FEOEZPath + GUITextBoxInputNach 135,155,235,165,9,1024 ;SJNSPath + GUITextBoxInputNach 8,180,100,190,10,1024 ;MDHPath + GUITextBoxInputNach 135,180,235,190,11,1024 ;SPL4Path + ret DisplayGUISaveClick: - GUIClickCButtonAS 11,40,byte[AutoIncSaveSlot] - GUIClickCButton 11,50,byte[SRAMSave5Sec] - GUIClickCButton 11,60,byte[LatestSave] - GUIClickCButton 11,70,byte[AutoState] - GUIClickCButton 11,80,byte[SRAMState] - GUIClickCButton 11,90,byte[PauseLoad] - GUIClickCButton 11,100,byte[PauseRewind] - GUIPHoldbutton2 173,17,181,24,70,byte[RewindStates],1,99 - GUIPHoldbutton2 184,17,192,24,71,byte[RewindStates],-1,0 - GUIPHoldbutton2 173,29,181,36,72,byte[RewindFrames],1,99 - GUIPHoldbutton2 184,29,192,36,73,byte[RewindFrames],-1,0 - DGOptnsProcBox 27,121,[KeyStateSlc0] - DGOptnsProcBox 27+45,121,[KeyStateSlc1] - DGOptnsProcBox 27+45*2,121,[KeyStateSlc2] - DGOptnsProcBox 27+45*3,121,[KeyStateSlc3] - DGOptnsProcBox 27,130,[KeyStateSlc4] - DGOptnsProcBox 27+45,130,[KeyStateSlc5] - DGOptnsProcBox 27+45*2,130,[KeyStateSlc6] - DGOptnsProcBox 27+45*3,130,[KeyStateSlc7] - DGOptnsProcBox 27,139,[KeyStateSlc8] - DGOptnsProcBox 27+45,139,[KeyStateSlc9] - DGOptnsProcBox 27+45*2,139,[KeyIncStateSlot] - DGOptnsProcBox 27+45*3,139,[KeyDecStateSlot] - DGOptnsProcBox 8+25,148,[KeySaveState] - DGOptnsProcBox 8+57+25,148,[KeyLoadState] - DGOptnsProcBox 8+114+25,148,[KeyStateSelct] - DGOptnsProcBox 8+38,157,[KeyRewind] - ret + GUIClickCButtonAS 11,40,byte[AutoIncSaveSlot] + GUIClickCButton 11,50,byte[SRAMSave5Sec] + GUIClickCButton 11,60,byte[LatestSave] + GUIClickCButton 11,70,byte[AutoState] + GUIClickCButton 11,80,byte[SRAMState] + GUIClickCButton 11,90,byte[PauseLoad] + GUIClickCButton 11,100,byte[PauseRewind] + GUIPHoldbutton2 173,17,181,24,70,byte[RewindStates],1,99 + GUIPHoldbutton2 184,17,192,24,71,byte[RewindStates],-1,0 + GUIPHoldbutton2 173,29,181,36,72,byte[RewindFrames],1,99 + GUIPHoldbutton2 184,29,192,36,73,byte[RewindFrames],-1,0 + DGOptnsProcBox 27,121,[KeyStateSlc0] + DGOptnsProcBox 27+45,121,[KeyStateSlc1] + DGOptnsProcBox 27+45*2,121,[KeyStateSlc2] + DGOptnsProcBox 27+45*3,121,[KeyStateSlc3] + DGOptnsProcBox 27,130,[KeyStateSlc4] + DGOptnsProcBox 27+45,130,[KeyStateSlc5] + DGOptnsProcBox 27+45*2,130,[KeyStateSlc6] + DGOptnsProcBox 27+45*3,130,[KeyStateSlc7] + DGOptnsProcBox 27,139,[KeyStateSlc8] + DGOptnsProcBox 27+45,139,[KeyStateSlc9] + DGOptnsProcBox 27+45*2,139,[KeyIncStateSlot] + DGOptnsProcBox 27+45*3,139,[KeyDecStateSlot] + DGOptnsProcBox 8+25,148,[KeySaveState] + DGOptnsProcBox 8+57+25,148,[KeyLoadState] + DGOptnsProcBox 8+114+25,148,[KeyStateSelct] + DGOptnsProcBox 8+38,157,[KeyRewind] + ret 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] + 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,135,byte[FastFwdToggle] ; Checkboxes - GUIClickCButtonfr 11,145,byte[frameskip] + GUIClickCButton 11,135,byte[FastFwdToggle] ; Checkboxes + GUIClickCButtonfr 11,145,byte[frameskip] - cmp byte[frameskip],0 - jne near .frate - DGOptnsProcBox 12,78,[KeyEmuSpeedUp] - DGOptnsProcBox 12,98,[KeyEmuSpeedDown] - jmp near .endsc + cmp byte[frameskip],0 + jne near .frate + DGOptnsProcBox 12,78,[KeyEmuSpeedUp] + DGOptnsProcBox 12,98,[KeyEmuSpeedDown] + jmp near .endsc .frate - DGOptnsProcBox 12,78,[KeyFRateUp] - DGOptnsProcBox 12,98,[KeyFRateDown] + DGOptnsProcBox 12,78,[KeyFRateUp] + DGOptnsProcBox 12,98,[KeyFRateDown] .endsc - DGOptnsProcBox 12,58,[KeyFastFrwrd] ; Shortcut Boxes - DGOptnsProcBox 12,68,[KeySlowDown] - DGOptnsProcBox 12,88,[KeyResetSpeed] - DGOptnsProcBox 12,108,[EMUPauseKey] - DGOptnsProcBox 12,118,[INCRFrameKey] + DGOptnsProcBox 12,58,[KeyFastFrwrd] ; Shortcut Boxes + DGOptnsProcBox 12,68,[KeySlowDown] + DGOptnsProcBox 12,88,[KeyResetSpeed] + DGOptnsProcBox 12,108,[EMUPauseKey] + DGOptnsProcBox 12,118,[INCRFrameKey] - GUIPHoldbutton2 118,24,126,32,74,byte[FFRatio],1,28 - GUIPHoldbutton2 129,24,137,32,75,byte[FFRatio],-1,0 - GUIPHoldbutton2 118,35,126,43,76,byte[SDRatio],1,28 - GUIPHoldbutton2 129,35,137,43,77,byte[SDRatio],-1,0 - cmp byte[frameskip],0 - je near .autopress - GUIPHoldbutton2 97,13,105,21,12,byte[frameskip],1,10 - GUIPHoldbutton2 108,13,116,21,13,byte[frameskip],-1,1 - ret + GUIPHoldbutton2 118,24,126,32,74,byte[FFRatio],1,28 + GUIPHoldbutton2 129,24,137,32,75,byte[FFRatio],-1,0 + GUIPHoldbutton2 118,35,126,43,76,byte[SDRatio],1,28 + GUIPHoldbutton2 129,35,137,43,77,byte[SDRatio],-1,0 + cmp byte[frameskip],0 + je near .autopress + GUIPHoldbutton2 97,13,105,21,12,byte[frameskip],1,10 + GUIPHoldbutton2 108,13,116,21,13,byte[frameskip],-1,1 + ret .autopress - GUIPHoldbutton2 118,13,126,21,12,byte[maxskip],1,9 - GUIPHoldbutton2 129,13,137,21,13,byte[maxskip],-1,0 + GUIPHoldbutton2 118,13,126,21,12,byte[maxskip],1,9 + GUIPHoldbutton2 129,13,137,21,13,byte[maxskip],-1,0 - ; Speed Slider - cmp eax,15 ; X-Range for click-area - jl near .nomovebar - cmp eax,15+116 - jg near .nomovebar - sub eax,15 - shr eax,1 - cmp edx,173 ; Y-Range for click-area - jl near .nomovebar - cmp edx,177 - jg near .nomovebar - mov [EmuSpeed],al - mov byte[GUIHold],6 ; Lock mouse to bar when clicked - mov eax,[GUIwinposy+21*4] - add eax,175 - mov [GUIHoldYlim],eax - mov eax,[GUIwinposx+21*4] - add eax,15 - mov [GUIHoldXlimL],eax - add eax,116 - mov [GUIHoldXlimR],eax + ; Speed Slider + cmp eax,15 ; X-Range for click-area + jl near .nomovebar + cmp eax,15+116 + jg near .nomovebar + sub eax,15 + shr eax,1 + cmp edx,173 ; Y-Range for click-area + jl near .nomovebar + cmp edx,177 + jg near .nomovebar + mov [EmuSpeed],al + mov byte[GUIHold],6 ; Lock mouse to bar when clicked + mov eax,[GUIwinposy+21*4] + add eax,175 + mov [GUIHoldYlim],eax + mov eax,[GUIwinposx+21*4] + add eax,15 + mov [GUIHoldXlimL],eax + add eax,116 + mov [GUIHoldXlimR],eax .nomovebar - ret + ret DrawMouse: - mov edi,[vidbuffer] - add edi,16 - add edi,[GUImouseposx] - mov eax,[GUImouseposy] - shl eax,8 - mov ebx,[GUImouseposy] - shl ebx,5 - add eax,ebx - add edi,eax - mov esi,GUIMousePtr - mov edx,8 + mov edi,[vidbuffer] + add edi,16 + add edi,[GUImouseposx] + mov eax,[GUImouseposy] + shl eax,8 + mov ebx,[GUImouseposy] + shl ebx,5 + add eax,ebx + add edi,eax + mov esi,GUIMousePtr + mov edx,8 .next2 - mov ecx,8 + mov ecx,8 .next - mov al,[esi] - or al,al - jz near .nodraw - test byte[mouseshad],1 - jz near .finishadow + mov al,[esi] + or al,al + jz near .nodraw + test byte[mouseshad],1 + jz near .finishadow - mov bl,[edi+288*10+8] - cmp bl,32 - jae .noprimshad - add byte[edi+288*10+8],96 - jmp .finishadow + mov bl,[edi+288*10+8] + cmp bl,32 + jae .noprimshad + add byte[edi+288*10+8],96 + jmp .finishadow .noprimshad - mov bl,[edi+288*4+3] - cmp bl,32 - jb .nogray - cmp bl,63 - ja .nogray - sub bl,32 - shr bl,1 - add bl,32 - mov [edi+288*4+3],bl - jmp .finishadow + mov bl,[edi+288*4+3] + cmp bl,32 + jb .nogray + cmp bl,63 + ja .nogray + sub bl,32 + shr bl,1 + add bl,32 + mov [edi+288*4+3],bl + jmp .finishadow .nogray - and bl,11110000b - cmp bl,64 - jne .nomidshad2 - add byte[edi+288*4+3],16 - jmp .finishadow + and bl,11110000b + cmp bl,64 + jne .nomidshad2 + add byte[edi+288*4+3],16 + jmp .finishadow .nomidshad2 - mov bl,[edi+288*7+5] - cmp bl,148 - jb .nomidshad - cmp bl,167 - ja .mid2 - add byte[edi+288*7+5],20 - jmp .finishadow + mov bl,[edi+288*7+5] + cmp bl,148 + jb .nomidshad + cmp bl,167 + ja .mid2 + add byte[edi+288*7+5],20 + jmp .finishadow .mid2 - cmp bl,189 - jb .nomidshad - cmp bl,220 - ja .nomidshad - sub bl,189 + cmp bl,189 + jb .nomidshad + cmp bl,220 + ja .nomidshad + sub bl,189 ; test bl,01h ; jnz .nomidshad - shr bl,1 - add bl,189 - mov [edi+288*7+5],bl - jmp .finishadow + shr bl,1 + add bl,189 + mov [edi+288*7+5],bl + jmp .finishadow .nomidshad .finishadow - mov [edi],al + mov [edi],al .nodraw - inc esi - inc edi - dec ecx - jnz near .next - add edi,288-8 - dec edx - jnz near .next2 - ret + inc esi + inc edi + dec ecx + jnz near .next + add edi,288-8 + dec edx + jnz near .next2 + ret diff --git a/zsnes/src/gui/guitools.inc b/zsnes/src/gui/guitools.inc index 93c26291..9a6906d8 100644 --- a/zsnes/src/gui/guitools.inc +++ b/zsnes/src/gui/guitools.inc @@ -21,817 +21,807 @@ SECTION .text NEWSYM CopyString - push eax + push eax .again - mov dl,[eax] - mov [ebx],dl - inc eax - inc ebx - or dl,dl - jnz .again - pop eax - ret + mov dl,[eax] + mov [ebx],dl + inc eax + inc ebx + or dl,dl + jnz .again + pop eax + ret NEWSYM StringLength - xor ecx,ecx - push eax + xor ecx,ecx + push eax .loop - cmp byte[eax],0 - je .done - inc eax - inc ecx - jmp .loop + cmp byte[eax],0 + je .done + inc eax + inc ecx + jmp .loop .done - pop eax - ret + pop eax + ret NEWSYM ClipString - ; clip string eax by bl characters + ; clip string eax by bl characters .next - push eax + push eax .again - mov dl,[eax+1] - mov [eax],dl - inc eax - or dl,dl - jnz .again - pop eax - dec bl - jnz .next - ret + mov dl,[eax+1] + mov [eax],dl + inc eax + or dl,dl + jnz .again + pop eax + dec bl + jnz .next + ret NEWSYM ConcatString - ; concat eax in front of ebx, store in ebx - ; move string forward by length of eax - pushad - mov esi,eax - cmp byte[esi],0 - je near .nomore3 + ; concat eax in front of ebx, store in ebx + ; move string forward by length of eax + pushad + mov esi,eax + cmp byte[esi],0 + je near .nomore3 .next - inc esi - cmp byte[esi],0 - jne .next - dec esi + inc esi + cmp byte[esi],0 + jne .next + dec esi .again - mov dl,[esi] - push ebx - xor ecx,ecx + mov dl,[esi] + push ebx + xor ecx,ecx .loop - cmp byte[ebx],0 - je .nomore - inc ebx - inc ecx - jmp .loop + cmp byte[ebx],0 + je .nomore + inc ebx + inc ecx + jmp .loop .nomore - inc ebx - inc ecx + inc ebx + inc ecx .loop2 - or ecx,ecx - jz .nomore2 - mov dh,[ebx-1] - mov [ebx],dh - dec ebx - dec ecx - jmp .loop2 + or ecx,ecx + jz .nomore2 + mov dh,[ebx-1] + mov [ebx],dh + dec ebx + dec ecx + jmp .loop2 .nomore2 - pop ebx - mov [ebx],dl - cmp eax,esi - je .nomore3 - dec esi - jmp .again + pop ebx + mov [ebx],dl + cmp eax,esi + je .nomore3 + dec esi + jmp .again .nomore3 - popad - ret + popad + ret GUIoutputchar: - push edi - push esi - push eax - xor ebx,ebx - mov bl,al - mov edi,GUIFontData - lea ebx,[ebx*5] - add edi,ebx - mov cl,5 + push edi + push esi + push eax + xor ebx,ebx + mov bl,al + mov edi,GUIFontData + lea ebx,[ebx*5] + add edi,ebx + mov cl,5 .loopa - mov ah,[edi] - mov ch,6 + mov ah,[edi] + mov ch,6 .loopb - test ah,80h - jz .nowrite - mov al,[GUItextcolor] - sub al,cl - sub al,ch - inc al - mov [esi],al + test ah,80h + jz .nowrite + mov al,[GUItextcolor] + sub al,cl + sub al,ch + inc al + mov [esi],al .nowrite - shl ah,1 - inc esi - dec ch - jnz .loopb - add esi,282 - inc edi - dec cl - jnz .loopa - pop eax - pop esi - pop edi - ret + shl ah,1 + inc esi + dec ch + jnz .loopb + add esi,282 + inc edi + dec cl + jnz .loopa + pop eax + pop esi + pop edi + ret GUIOutputString: - xor eax,eax + xor eax,eax .more - mov al,[edi] - or al,al - jz .nomore - mov al,[ASCII2Font+eax] - call GUIoutputchar - add esi,6 - inc edi - jmp .more + mov al,[edi] + or al,al + jz .nomore + mov al,[ASCII2Font+eax] + call GUIoutputchar + add esi,6 + inc edi + jmp .more .nomore - ret + ret %macro GUIOuttext 4 - mov edi,%2 - mov esi,edi - shl esi,8 - shl edi,5 - add esi,edi - add esi,[vidbuffer] - add esi,%1 - add esi,16 - mov edi,%3 - mov byte[GUItextcolor],%4 - call GUIOutputString + mov edi,%2 + mov esi,edi + shl esi,8 + shl edi,5 + add esi,edi + add esi,[vidbuffer] + add esi,%1 + add esi,16 + mov edi,%3 + mov byte[GUItextcolor],%4 + call GUIOutputString %endmacro GUIDrawBox: .loop - push edi - push ecx - rep stosb - pop ecx - pop edi - add edi,288 - dec edx - jnz .loop - ret + push edi + push ecx + rep stosb + pop ecx + pop edi + add edi,288 + dec edx + jnz .loop + ret %macro GUIBox 5 - mov edi,[vidbuffer] - add edi,%1 - mov edx,%2 - mov ecx,edx - shl edx,8 - shl ecx,5 - add edx,ecx - add edi,edx - add edi,16 - mov ecx,%3 - sub ecx,%1 - inc ecx - mov edx,%4 - sub edx,%2 - inc edx - mov al,%5 - call GUIDrawBox + mov edi,[vidbuffer] + add edi,%1 + mov edx,%2 + mov ecx,edx + shl edx,8 + shl ecx,5 + add edx,ecx + add edi,edx + add edi,16 + mov ecx,%3 + sub ecx,%1 + inc ecx + mov edx,%4 + sub edx,%2 + inc edx + mov al,%5 + call GUIDrawBox %endmacro GUIHLines: - cmp ecx,0 - jl near .nodraw - cmp eax,255 - jg near .nodraw - cmp eax,0 - jnl .noofx - mov eax,0 + cmp ecx,0 + jl near .nodraw + cmp eax,255 + jg near .nodraw + cmp eax,0 + jnl .noofx + mov eax,0 .noofx - cmp ecx,255 - jng .noofx2 - mov ecx,255 + cmp ecx,255 + jng .noofx2 + mov ecx,255 .noofx2 - cmp ebx,0 - 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 - mov eax,ebx - shl eax,5 - add edi,eax - mov eax,edx + cmp ebx,0 + 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 + mov eax,ebx + shl eax,5 + add edi,eax + mov eax,edx .loop - mov [edi],ah - add eax,[GUIcolscaleval] - inc edi - dec ecx - jnz .loop - + mov [edi],ah + add eax,[GUIcolscaleval] + inc edi + dec ecx + jnz .loop .nodraw - ret + ret GUIHLine: - cmp ecx,0 - jl near .nodraw - cmp eax,255 - jg near .nodraw - cmp eax,0 - jnl .noofx - mov eax,0 + cmp ecx,0 + jl near .nodraw + cmp eax,255 + jg near .nodraw + cmp eax,0 + jnl .noofx + mov eax,0 .noofx - cmp ecx,255 - jng .noofx2 - mov ecx,255 + cmp ecx,255 + jng .noofx2 + mov ecx,255 .noofx2 - cmp ebx,0 - 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 - mov eax,ebx - shl eax,5 - add edi,eax - mov eax,edx - rep stosb + cmp ebx,0 + 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 + mov eax,ebx + shl eax,5 + add edi,eax + mov eax,edx + rep stosb .nodraw - ret + ret %macro GUIPal 4 - mov dx,03C8h - mov al,%1 - out dx,al - inc dx - mov al,%2 - out dx,al - mov al,%3 - out dx,al - mov al,%4 - out dx,al + mov dx,03C8h + mov al,%1 + out dx,al + inc dx + mov al,%2 + out dx,al + mov al,%3 + out dx,al + mov al,%4 + out dx,al %endmacro GUIDrawShadow: .loop - push edi - push ecx + push edi + push ecx .loop2 - mov al,[edi-3*288-3] - cmp al,148 - jb .nomidshad - cmp al,167 - ja .mid2 - add byte[edi-3*288-3],20 - jmp .noshadow + mov al,[edi-3*288-3] + cmp al,148 + jb .nomidshad + cmp al,167 + ja .mid2 + add byte[edi-3*288-3],20 + jmp .noshadow .mid2 - cmp al,189 - jb .nomidshad - cmp al,220 - ja .nomidshad - sub al,189 - shr al,1 - add al,189 - mov [edi-288*3-3],al - jmp .noshadow + cmp al,189 + jb .nomidshad + cmp al,220 + ja .nomidshad + sub al,189 + shr al,1 + add al,189 + mov [edi-288*3-3],al + jmp .noshadow .nomidshad - mov al,[edi] - cmp al,32 - jae .noshadow - add al,96 - mov [edi],al + mov al,[edi] + cmp al,32 + jae .noshadow + add al,96 + mov [edi],al .noshadow - inc edi - dec ecx - jnz .loop2 - pop ecx - pop edi - add edi,288 - dec edx - jnz near .loop - ret + inc edi + dec ecx + jnz .loop2 + pop ecx + pop edi + add edi,288 + dec edx + jnz near .loop + ret %macro GUIShadow 4 - mov edi,[vidbuffer] - add edi,%1+%2*288+16 - mov ecx,%3-%1+1 - mov edx,%4-%2+1 - call GUIDrawShadow + mov edi,[vidbuffer] + add edi,%1+%2*288+16 + mov ecx,%3-%1+1 + mov edx,%4-%2+1 + call GUIDrawShadow %endmacro - GUIDrawShadow2: .loop - push edi - push ecx + push edi + push ecx .loop2 - mov al,[edi] - cmp al,32 - jae .noshadow - add al,96 - mov [edi],al + mov al,[edi] + cmp al,32 + jae .noshadow + add al,96 + mov [edi],al .noshadow - inc edi - dec ecx - jnz .loop2 - pop ecx - pop edi - add edi,288 - dec ebx - jnz .loop - ret + inc edi + dec ecx + jnz .loop2 + pop ecx + pop edi + add edi,288 + dec ebx + jnz .loop + ret GUIoutputcharwin: - push edi - push esi - push eax - xor ebx,ebx - mov bl,al - mov edi,GUIFontData - lea ebx,[ebx*5] - add edi,ebx - mov cl,5 + push edi + push esi + push eax + xor ebx,ebx + mov bl,al + mov edi,GUIFontData + lea ebx,[ebx*5] + add edi,ebx + mov cl,5 .loopa - mov ah,[edi] - mov ch,5 - cmp esi,[vidbuffer] - jb .below - mov edx,[vidbuffer] - add edx,224*288 - cmp esi,edx - jb .loopb + mov ah,[edi] + mov ch,5 + cmp esi,[vidbuffer] + jb .below + mov edx,[vidbuffer] + add edx,224*288 + cmp esi,edx + jb .loopb .below - add esi,5 - jmp .nowrite2 + add esi,5 + jmp .nowrite2 .loopb - test ah,80h - jz .nowrite - mov al,[GUItextcolor] - mov [esi],al + test ah,80h + jz .nowrite + mov al,[GUItextcolor] + mov [esi],al .nowrite - shl ah,1 - inc esi - dec ch - jnz .loopb + shl ah,1 + inc esi + dec ch + jnz .loopb .nowrite2 - add esi,283 - inc edi - dec cl - jnz .loopa - pop eax - pop esi - pop edi - ret + add esi,283 + inc edi + dec cl + jnz .loopa + pop eax + pop esi + pop edi + ret GUIOutputStringwin: - xor eax,eax + xor eax,eax .more - mov al,[edi] - or al,al - jz .nomore - mov al,[ASCII2Font+eax] - cmp edx,-8 - jl .nodraw - cmp edx,255 - jg .nodraw - push esi - push edx - add esi,edx - call GUIoutputcharwin - pop edx - pop esi + mov al,[edi] + or al,al + jz .nomore + mov al,[ASCII2Font+eax] + cmp edx,-8 + jl .nodraw + cmp edx,255 + jg .nodraw + push esi + push edx + add esi,edx + call GUIoutputcharwin + pop edx + pop esi .nodraw - add edx,6 - inc edi - jmp .more + add edx,6 + inc edi + jmp .more .nomore - ret + ret GUIOutputStringwinl: - xor eax,eax - mov ecx,[cloadmaxlen] + xor eax,eax + mov ecx,[cloadmaxlen] .more - mov al,[edi] + mov al,[edi] %ifndef __MSDOS__ - cmp al,'%' - jne .noperc - call ConvertPercValue + cmp al,'%' + jne .noperc + call ConvertPercValue .noperc %endif - or al,al - jz .nomore - mov al,[ASCII2Font+eax] - cmp edx,-8 - jl .nodraw - cmp edx,255 - jg .nodraw - push esi - push edx - push ecx - add esi,edx - call GUIoutputcharwin - pop ecx - pop edx - pop esi + or al,al + jz .nomore + mov al,[ASCII2Font+eax] + cmp edx,-8 + jl .nodraw + cmp edx,255 + jg .nodraw + push esi + push edx + push ecx + add esi,edx + call GUIoutputcharwin + pop ecx + pop edx + pop esi .nodraw - add edx,6 - inc edi - dec ecx - jz .nomore - jmp .more + add edx,6 + inc edi + dec ecx + jz .nomore + jmp .more .nomore - ret + ret %ifndef __MSDOS__ ConvertPercValue: - mov al,[edi+2] - cmp al,'a' - jb .notlower - cmp al,'z' - ja .notlower - sub al,'a'-'A' + mov al,[edi+2] + cmp al,'a' + jb .notlower + cmp al,'z' + ja .notlower + sub al,'a'-'A' .notlower - mov ah,[edi+1] - cmp ah,'a' - jb .notlowerb - cmp ah,'z' - ja .notlowerb - sub ah,'a'-'A' + mov ah,[edi+1] + cmp ah,'a' + jb .notlowerb + cmp ah,'z' + ja .notlowerb + sub ah,'a'-'A' .notlowerb - cmp al,'0' - jb .noperc - cmp al,'9' - jbe .yesperc - cmp al,'F' - ja .noperc - cmp al,'A' - jb .noperc + cmp al,'0' + jb .noperc + cmp al,'9' + jbe .yesperc + cmp al,'F' + ja .noperc + cmp al,'A' + jb .noperc .yesperc - cmp ah,'0' - jb .noperc - cmp ah,'9' - jbe .yesperc2 - cmp ah,'F' - ja .noperc - cmp ah,'A' - jb .noperc + cmp ah,'0' + jb .noperc + cmp ah,'9' + jbe .yesperc2 + cmp ah,'F' + ja .noperc + cmp ah,'A' + jb .noperc .yesperc2 - sub al,'0' - cmp al,9 - jbe .nodec - sub al,'A'-'0'-10 + sub al,'0' + cmp al,9 + jbe .nodec + sub al,'A'-'0'-10 .nodec - sub ah,'0' - cmp ah,9 - jbe .nodecb - sub ah,'A'-'0'-10 + sub ah,'0' + cmp ah,9 + jbe .nodecb + sub ah,'A'-'0'-10 .nodecb - shl ah,4 - or al,ah - add edi,2 - and eax,0FFh - ret + shl ah,4 + or al,ah + add edi,2 + and eax,0FFh + ret .noperc - xor eax,eax - mov al,[edi] - ret + xor eax,eax + mov al,[edi] + ret %endif OutputUnder: - cmp edx,-8 - jl .nodraw - cmp edx,255 - jg .nodraw - mov dword[esi+edx+5*288-1],0E8E8E8E8h - mov byte[esi+edx+5*288+3],0E8h + cmp edx,-8 + jl .nodraw + cmp edx,255 + jg .nodraw + mov dword[esi+edx+5*288-1],0E8E8E8E8h + mov byte[esi+edx+5*288+3],0E8h .nodraw - ret + ret %macro GUIOuttextwin 1 - mov esi,ebx - mov eax,ebx - shl esi,8 - shl eax,5 - add esi,eax - add esi,16 - add esi,[vidbuffer] - mov edi,%1 - call GUIOutputStringwin + mov esi,ebx + mov eax,ebx + shl esi,8 + shl eax,5 + add esi,eax + add esi,16 + add esi,[vidbuffer] + mov edi,%1 + call GUIOutputStringwin %endmacro %macro GUIOuttextwin2 4 - mov edx,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add edx,%2 - add ebx,%3 - - mov esi,ebx - mov eax,ebx - shl esi,8 - shl eax,5 - add esi,eax - add esi,16 - add esi,[vidbuffer] - mov edi,%4 - call GUIOutputStringwin + mov edx,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add edx,%2 + add ebx,%3 + mov esi,ebx + mov eax,ebx + shl esi,8 + shl eax,5 + add esi,eax + add esi,16 + add esi,[vidbuffer] + mov edi,%4 + call GUIOutputStringwin %endmacro %macro GUIOuttextwin2l 4 - mov edx,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add edx,%2 - add ebx,%3 - - mov esi,ebx - mov eax,ebx - shl esi,8 - shl eax,5 - add esi,eax - add esi,16 - add esi,[vidbuffer] - mov edi,%4 - call GUIOutputStringwinl + mov edx,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add edx,%2 + add ebx,%3 + mov esi,ebx + mov eax,ebx + shl esi,8 + shl eax,5 + add esi,eax + add esi,16 + add esi,[vidbuffer] + mov edi,%4 + call GUIOutputStringwinl %endmacro %macro GUIOuttextwin2u 5 - mov edx,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add edx,%2 - add ebx,%3 - - mov esi,ebx - mov eax,ebx - shl esi,8 - shl eax,5 - add esi,eax - add esi,16 - add esi,[vidbuffer] - mov edi,%4 - add edx,%5*6 - call OutputUnder - sub edx,%5*6 - call GUIOutputStringwin + mov edx,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add edx,%2 + add ebx,%3 + mov esi,ebx + mov eax,ebx + shl esi,8 + shl eax,5 + add esi,eax + add esi,16 + add esi,[vidbuffer] + mov edi,%4 + add edx,%5*6 + call OutputUnder + sub edx,%5*6 + call GUIOutputStringwin %endmacro GUIoutputiconwin: - cmp eax,-9 - jl .nodraw - cmp eax,256 - jl .draw + cmp eax,-9 + jl .nodraw + cmp eax,256 + jl .draw .nodraw - ret + ret .draw - mov esi,ebx - mov ecx,ebx - shl esi,8 - shl ecx,5 - add esi,ecx - add esi,16 - add esi,[vidbuffer] - add esi,eax - mov cl,10 + mov esi,ebx + mov ecx,ebx + shl esi,8 + shl ecx,5 + add esi,ecx + add esi,16 + add esi,[vidbuffer] + add esi,eax + mov cl,10 .loopa - mov ch,10 - cmp esi,[vidbuffer] - jb .below - mov edx,[vidbuffer] - add edx,224*288 - cmp esi,edx - jb .loopb + mov ch,10 + cmp esi,[vidbuffer] + jb .below + mov edx,[vidbuffer] + add edx,224*288 + cmp esi,edx + jb .loopb .below - add esi,10 - jmp .nowrite2 + add esi,10 + jmp .nowrite2 .loopb - mov al,[edi] - or al,al - jz .transp - cmp al,189 - ja .col2 - cmp byte[GUIWincoladd],0 - je .col3 - inc al - jmp .col3 + mov al,[edi] + or al,al + jz .transp + cmp al,189 + ja .col2 + cmp byte[GUIWincoladd],0 + je .col3 + inc al + jmp .col3 .col2 - sub al,[GUIWincoladd] - dec al + sub al,[GUIWincoladd] + dec al .col3 - mov [esi],al + mov [esi],al .transp - inc edi - inc esi - dec ch - jnz .loopb + inc edi + inc esi + dec ch + jnz .loopb .nowrite2 - add esi,278 - dec cl - jnz .loopa - ret + add esi,278 + dec cl + jnz .loopa + ret %macro GUIDisplayIcon 1 - mov edi,%1 - call GUIoutputiconwin + mov edi,%1 + call GUIoutputiconwin %endmacro %macro GUIDisplayIconWin 4 - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add eax,%2 - add ebx,%3 - mov edi,%4 - call GUIoutputiconwin + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add eax,%2 + add ebx,%3 + mov edi,%4 + call GUIoutputiconwin %endmacro GUIDrawSlideBar: - cmp eax,-10 - jl .ret - cmp eax,256 - jg .ret - jmp .noret + cmp eax,-10 + jl .ret + cmp eax,256 + jg .ret + jmp .noret .ret - ret + ret .noret - mov edi,[vidbuffer] - mov [vbuflimtop],edi - mov edi,[vidbuffer] - add edi,288*224 - sub edi,16 - mov [vbuflimbot],edi - mov edi,eax - mov eax,ebx - shl ebx,8 - shl eax,5 - add edi,ebx - add edi,eax - add edi,[vidbuffer] - add edi,16 - xor eax,eax - dec ecx + mov edi,[vidbuffer] + mov [vbuflimtop],edi + mov edi,[vidbuffer] + add edi,288*224 + sub edi,16 + mov [vbuflimbot],edi + mov edi,eax + mov eax,ebx + shl ebx,8 + shl eax,5 + add edi,ebx + add edi,eax + add edi,[vidbuffer] + add edi,16 + xor eax,eax + dec ecx .loop - cmp edx,0 - je near .toparea - cmp ecx,0 - je near .bottomarea - cmp ah,1 - je .filleddisp - cmp edi,[vbuflimtop] - jb near .nodraw - cmp edi,[vbuflimbot] - ja near .nodraw - mov al,197 - sub al,byte[GUIWincoladd] - mov [edi],al - sub al,2 - mov [edi+1],al - dec al - mov [edi+2],al - dec al - mov [edi+3],al - mov [edi+4],al - inc al - mov [edi+5],al - inc al - mov [edi+6],al - add al,2 - mov [edi+7],al - jmp .fin + cmp edx,0 + je near .toparea + cmp ecx,0 + je near .bottomarea + cmp ah,1 + je .filleddisp + cmp edi,[vbuflimtop] + jb near .nodraw + cmp edi,[vbuflimbot] + ja near .nodraw + mov al,197 + sub al,byte[GUIWincoladd] + mov [edi],al + sub al,2 + mov [edi+1],al + dec al + mov [edi+2],al + dec al + mov [edi+3],al + mov [edi+4],al + inc al + mov [edi+5],al + inc al + mov [edi+6],al + add al,2 + mov [edi+7],al + jmp .fin .filleddisp - cmp edi,[vbuflimtop] - jb near .nodraw - cmp edi,[vbuflimbot] - ja near .nodraw - mov al,202 - sub al,byte[GUIWincoladd] - mov [edi],al - sub al,2 - mov [edi+1],al - mov [edi+2],al - mov [edi+3],al - mov [edi+4],al - mov [edi+5],al - mov [edi+6],al - sub al,2 - mov [edi+7],al - jmp .fin + cmp edi,[vbuflimtop] + jb near .nodraw + cmp edi,[vbuflimbot] + ja near .nodraw + mov al,202 + sub al,byte[GUIWincoladd] + mov [edi],al + sub al,2 + mov [edi+1],al + mov [edi+2],al + mov [edi+3],al + mov [edi+4],al + mov [edi+5],al + mov [edi+6],al + sub al,2 + mov [edi+7],al + jmp .fin .toparea - cmp edi,[vbuflimtop] - jb near .nodraw - cmp edi,[vbuflimbot] - ja near .nodraw - mov al,202 - sub al,byte[GUIWincoladd] - mov [edi],al - add al,2 - mov [edi+1],al - mov [edi+2],al - mov [edi+3],al - mov [edi+4],al - mov [edi+5],al - mov [edi+6],al - mov [edi+7],al - mov ah,1 - jmp .fin + cmp edi,[vbuflimtop] + jb near .nodraw + cmp edi,[vbuflimbot] + ja near .nodraw + mov al,202 + sub al,byte[GUIWincoladd] + mov [edi],al + add al,2 + mov [edi+1],al + mov [edi+2],al + mov [edi+3],al + mov [edi+4],al + mov [edi+5],al + mov [edi+6],al + mov [edi+7],al + mov ah,1 + jmp .fin .bottomarea - cmp edi,[vbuflimtop] - jb near .nodraw - cmp edi,[vbuflimbot] - ja near .nodraw - mov al,6 - mov al,196 - sub al,byte[GUIWincoladd] - mov [edi],al - mov [edi+1],al - mov [edi+2],al - mov [edi+3],al - mov [edi+4],al - mov [edi+5],al - mov [edi+6],al - add al,2 - mov [edi+7],al - mov ah,0 + cmp edi,[vbuflimtop] + jb near .nodraw + cmp edi,[vbuflimbot] + ja near .nodraw + mov al,6 + mov al,196 + sub al,byte[GUIWincoladd] + mov [edi],al + mov [edi+1],al + mov [edi+2],al + mov [edi+3],al + mov [edi+4],al + mov [edi+5],al + mov [edi+6],al + add al,2 + mov [edi+7],al + mov ah,0 .fin .nodraw - add edi,288 - dec ecx - dec edx - dec esi - jnz near .loop - ret + add edi,288 + dec ecx + dec edx + dec esi + jnz near .loop + ret %macro DrawSlideBarWin 8 - ; win#,X,Y start, %4-List Loc, %5-List size, %6-Screen size, %7-Bar Size - mov ebx,%5 - mov ecx,%4 - ; if (Screen Size > List Size) List Size = Screen Size - cmp ebx,%6 - jae %%noscrbig - mov ebx,%6 + ; win#,X,Y start, %4-List Loc, %5-List size, %6-Screen size, %7-Bar Size + mov ebx,%5 + mov ecx,%4 + ; if (Screen Size > List Size) List Size = Screen Size + cmp ebx,%6 + jae %%noscrbig + mov ebx,%6 %%noscrbig - ; If (ListLoc + ScreenSize > ListSize) ListLoc = ListSize - ScreenSize - mov eax,ecx - add eax,%6 - cmp eax,ebx - jbe %%nosetlloc - mov ecx,ebx - sub ecx,%6 + ; If (ListLoc + ScreenSize > ListSize) ListLoc = ListSize - ScreenSize + mov eax,ecx + add eax,%6 + cmp eax,ebx + jbe %%nosetlloc + mov ecx,ebx + sub ecx,%6 %%nosetlloc - ; Scrollbarsize = (Screen Size/List size)*Bar Size - push ebx - mov eax,%6 - mov ebx,%7 - mul ebx - pop ebx - div ebx - ; If (Scrollbarsize < 5) Scrollbarsize = 5 - cmp eax,5 - jae %%validscroll - mov eax,5 + ; Scrollbarsize = (Screen Size/List size)*Bar Size + push ebx + mov eax,%6 + mov ebx,%7 + mul ebx + pop ebx + div ebx + ; If (Scrollbarsize < 5) Scrollbarsize = 5 + cmp eax,5 + jae %%validscroll + mov eax,5 %%validscroll - ; StartY = (Bar Size-Scrollbarsize)*(List Loc/(List size-ScreenSize)) - push eax - sub eax,%7 - neg eax - mul ecx - sub ebx,%6 - cmp ebx,0 - je %%zero - div ebx - jmp %%notzero + ; StartY = (Bar Size-Scrollbarsize)*(List Loc/(List size-ScreenSize)) + push eax + sub eax,%7 + neg eax + mul ecx + sub ebx,%6 + cmp ebx,0 + je %%zero + div ebx + jmp %%notzero %%zero - xor eax,eax + xor eax,eax %%notzero - mov edx,eax - pop eax - mov ecx,eax - add ecx,edx - ; ecx = endy, edx = starty - mov esi,%7 - sub esi,ecx - add esi,edx - dec esi - mov [%8],esi - mov [%8+4],edx - mov [%8+8],ecx - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add eax,%2 - add ebx,%3 - mov esi,%7 - call GUIDrawSlideBar + mov edx,eax + pop eax + mov ecx,eax + add ecx,edx + ; ecx = endy, edx = starty + mov esi,%7 + sub esi,ecx + add esi,edx + dec esi + mov [%8],esi + mov [%8+4],edx + mov [%8+8],ecx + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add eax,%2 + add ebx,%3 + mov esi,%7 + call GUIDrawSlideBar %endmacro - - diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index 0d0b4a13..14561078 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -29,792 +29,989 @@ SECTION .text ; Last button value used = 77 GUIStringGreater: - ; compares string at esi to edi and returns 1 to al if esi is >, else 0 - push esi - cmp word[esi],'.' - je .less - cmp word[esi+32],'.' - je .greater - cmp word[esi],'..' - je .less - cmp word[esi+32],'..' - je .greater + ; compares string at esi to edi and returns 1 to al if esi is >, else 0 + push esi + cmp word[esi],'.' + je .less + cmp word[esi+32],'.' + je .greater + cmp word[esi],'..' + je .less + cmp word[esi+32],'..' + je .greater .nextchar - cmp byte[esi],0 - je .less - cmp byte[esi+32],0 - je .greater - mov al,[esi] - mov cl,[esi+32] - cmp al,'a' - jb .noucase1 - cmp al,'z' - ja .noucase1 - sub al,'z'-'Z' + cmp byte[esi],0 + je .less + cmp byte[esi+32],0 + je .greater + mov al,[esi] + mov cl,[esi+32] + cmp al,'a' + jb .noucase1 + cmp al,'z' + ja .noucase1 + sub al,'z'-'Z' .noucase1 - cmp cl,'a' - jb .noucase2 - cmp cl,'z' - ja .noucase2 - sub cl,'z'-'Z' + cmp cl,'a' + jb .noucase2 + cmp cl,'z' + ja .noucase2 + sub cl,'z'-'Z' .noucase2 - cmp al,cl - jb .less - ja .greater - inc esi - jmp .nextchar + cmp al,cl + jb .less + ja .greater + inc esi + jmp .nextchar .less - mov al,0 - jmp .skip + mov al,0 + jmp .skip .greater - mov al,1 + mov al,1 .skip - pop esi - ret + pop esi + ret GUIStringGreater2: - ; compares string at ebx to edx and returns 1 to al if esi is >, else 0 - push edx - push ebx - cmp word[ebx],'.' - je .less - cmp word[edx],'.' - je .greater - cmp word[ebx],'..' - je .less - cmp word[ebx],'..' - je .greater + ; compares string at ebx to edx and returns 1 to al if esi is >, else 0 + push edx + push ebx + cmp word[ebx],'.' + je .less + cmp word[edx],'.' + je .greater + cmp word[ebx],'..' + je .less + cmp word[ebx],'..' + je .greater .nextchar - cmp byte[ebx],0 - je .less - cmp byte[edx],0 - je .greater - mov al,[ebx] - mov cl,[edx] - cmp al,'a' - jb .noucase1 - cmp al,'z' - ja .noucase1 - sub al,'z'-'Z' + cmp byte[ebx],0 + je .less + cmp byte[edx],0 + je .greater + mov al,[ebx] + mov cl,[edx] + cmp al,'a' + jb .noucase1 + cmp al,'z' + ja .noucase1 + sub al,'z'-'Z' .noucase1 - cmp cl,'a' - jb .noucase2 - cmp cl,'z' - ja .noucase2 - sub cl,'z'-'Z' + cmp cl,'a' + jb .noucase2 + cmp cl,'z' + ja .noucase2 + sub cl,'z'-'Z' .noucase2 - cmp al,cl - jb .less - ja .greater - inc ebx - inc edx - jmp .nextchar + cmp al,cl + jb .less + ja .greater + inc ebx + inc edx + jmp .nextchar .less - mov al,0 - jmp .skip + mov al,0 + jmp .skip .greater - mov al,1 + mov al,1 .skip - pop ebx - pop edx - ret + pop ebx + pop edx + ret -%Macro DrawGUILineSc 2 - mov dword[GUIcolscaleval],%2 - mov edx,%1 - push eax - push ecx - call GUIHLines - pop ecx - pop eax - inc ebx -%Endmacro +%macro DrawGUILineSc 2 + mov dword[GUIcolscaleval],%2 + mov edx,%1 + push eax + push ecx + call GUIHLines + pop ecx + pop eax + inc ebx +%endmacro -%Macro DrawGUILine 0 - push eax - push ecx - call GUIHLine - pop ecx - pop eax - inc ebx -%Endmacro +%macro DrawGUILine 0 + push eax + push ecx + call GUIHLine + pop ecx + pop eax + inc ebx +%endmacro %macro DrawTitleBar 0 - mov edx,46+157+6 - sub edx,[GUIWincoladd] - DrawGUILine - mov edx,42+157+4+4 - sub edx,[GUIWincoladd] - DrawGUILine - dec edx - DrawGUILine - dec edx - DrawGUILine - dec edx - DrawGUILine - dec edx - DrawGUILine - dec edx - DrawGUILine - dec edx - DrawGUILine - dec edx - DrawGUILine - mov edx,38+157+4 - sub edx,[GUIWincoladd] - DrawGUILine - sub ebx,10 - mov edx,44+157+4 - sub edx,[GUIWincoladd] - mov esi,9 - push ecx - mov ecx,eax + mov edx,46+157+6 + sub edx,[GUIWincoladd] + DrawGUILine + mov edx,42+157+4+4 + sub edx,[GUIWincoladd] + DrawGUILine + dec edx + DrawGUILine + dec edx + DrawGUILine + dec edx + DrawGUILine + dec edx + DrawGUILine + dec edx + DrawGUILine + dec edx + DrawGUILine + dec edx + DrawGUILine + mov edx,38+157+4 + sub edx,[GUIWincoladd] + DrawGUILine + sub ebx,10 + mov edx,44+157+4 + sub edx,[GUIWincoladd] + mov esi,9 + push ecx + mov ecx,eax %%loop2 - DrawGUILine - dec esi - jnz %%loop2 - pop ecx - sub ebx,8 - mov edx,40+157+4 - sub edx,[GUIWincoladd] - mov esi,9 - push eax - mov eax,ecx + DrawGUILine + dec esi + jnz %%loop2 + pop ecx + sub ebx,8 + mov edx,40+157+4 + sub edx,[GUIWincoladd] + mov esi,9 + push eax + mov eax,ecx %%loop3 - DrawGUILine - dec esi - jnz %%loop3 - pop eax + DrawGUILine + dec esi + jnz %%loop3 + pop eax %endmacro %macro drawshadow2 3 - mov edx,[GUIwinposy+%1*4] - cmp edx,223 - jg near .noshadow - cmp edx,0 - jge .noshadclip - mov edx,0 + mov edx,[GUIwinposy+%1*4] + cmp edx,223 + jg near .noshadow + cmp edx,0 + jge .noshadclip + mov edx,0 .noshadclip - mov ebx,edx - add ebx,%3 - add ebx,9 - cmp ebx,0 - jl near .noshadow - cmp ebx,223 - jng .noshadclip2 - mov ebx,223 + mov ebx,edx + add ebx,%3 + add ebx,9 + cmp ebx,0 + jl near .noshadow + cmp ebx,223 + jng .noshadclip2 + mov ebx,223 .noshadclip2 - sub ebx,edx - inc ebx - mov edi,edx - shl edi,8 - mov eax,edx - shl eax,5 - add edi,eax - mov edx,[GUIwinposx+%1*4] - mov ecx,edx - cmp edx,255 - jg .noshadow - cmp edx,-3 - jnl .noshadclip3 - mov edx,-3 + sub ebx,edx + inc ebx + mov edi,edx + shl edi,8 + mov eax,edx + shl eax,5 + add edi,eax + mov edx,[GUIwinposx+%1*4] + mov ecx,edx + cmp edx,255 + jg .noshadow + cmp edx,-3 + jnl .noshadclip3 + mov edx,-3 .noshadclip3 - add ecx,%2 - cmp ecx,0 - jl .noshadow - cmp ecx,255 - jng .noshadclip4 - mov ecx,255 + add ecx,%2 + cmp ecx,0 + jl .noshadow + cmp ecx,255 + jng .noshadclip4 + mov ecx,255 .noshadclip4 - sub ecx,edx - inc ecx - add edi,edx - add edi,[vidbuffer] - add edi,288*3+3+16 - call GUIDrawShadow2 + sub ecx,edx + inc ecx + add edi,edx + add edi,[vidbuffer] + add edi,288*3+3+16 + call GUIDrawShadow2 .noshadow %endmacro %macro GUIDrawWindowBox 2 - mov dword[GUIWincoladd],4 - mov dword[GUIWincol],148+10 - cmp byte[cwindrawn],1 - jne .noone - mov dword[GUIWincol],148+5 + mov dword[GUIWincoladd],4 + mov dword[GUIWincol],148+10 + cmp byte[cwindrawn],1 + jne .noone + mov dword[GUIWincol],148+5 .noone - cmp byte[cwindrawn],0 - jne .nozero - mov dword[GUIWincoladd],0 - mov dword[GUIWincol],148 + cmp byte[cwindrawn],0 + jne .nozero + mov dword[GUIWincoladd],0 + mov dword[GUIWincol],148 .nozero - drawshadow2 %1,dword[GUIwinsizex+%1*4],dword[GUIwinsizey+%1*4] - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - mov ecx,eax - add ecx,dword[GUIwinsizex+%1*4] - DrawTitleBar - mov esi,[GUIwinsizey+%1*4] - dec esi - mov edx,[GUIWincol] - add edx,2 + drawshadow2 %1,dword[GUIwinsizex+%1*4],dword[GUIwinsizey+%1*4] + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + mov ecx,eax + add ecx,dword[GUIwinsizex+%1*4] + DrawTitleBar + mov esi,[GUIwinsizey+%1*4] + dec esi + mov edx,[GUIWincol] + add edx,2 .loop - DrawGUILine - dec esi - jnz .loop - mov edx,[GUIWincol] - DrawGUILine - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add ebx,10 - mov ecx,eax - mov esi,[GUIwinsizey+%1*4] - mov edx,[GUIWincol] - add edx,3 - dec esi + DrawGUILine + dec esi + jnz .loop + mov edx,[GUIWincol] + DrawGUILine + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add ebx,10 + mov ecx,eax + mov esi,[GUIwinsizey+%1*4] + mov edx,[GUIWincol] + add edx,3 + dec esi .loop2 - DrawGUILine - dec esi - jnz .loop2 - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add ebx,10 - add eax,dword[GUIwinsizex+%1*4] - mov ecx,eax - mov esi,[GUIwinsizey+%1*4] - mov edx,[GUIWincol] - add edx,1 + DrawGUILine + dec esi + jnz .loop2 + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add ebx,10 + add eax,dword[GUIwinsizex+%1*4] + mov ecx,eax + mov esi,[GUIwinsizey+%1*4] + mov edx,[GUIWincol] + add edx,1 .loop3 - DrawGUILine - dec esi - jnz .loop3 - mov ebx,[GUIwinposy+%1*4] - add ebx,3 - mov edx,[GUIwinposx+%1*4] - add edx,3 - mov byte[GUItextcolor],184 - GUIOuttextwin %2 - mov ebx,[GUIwinposy+%1*4] - add ebx,2 - mov edx,[GUIwinposx+%1*4] - add edx,2 - mov byte[GUItextcolor],220 - cmp byte[GUIWincoladd],0 - je .zero2 - sub byte[GUItextcolor],6 + DrawGUILine + dec esi + jnz .loop3 + mov ebx,[GUIwinposy+%1*4] + add ebx,3 + mov edx,[GUIwinposx+%1*4] + add edx,3 + mov byte[GUItextcolor],184 + GUIOuttextwin %2 + mov ebx,[GUIwinposy+%1*4] + add ebx,2 + mov edx,[GUIwinposx+%1*4] + add edx,2 + mov byte[GUItextcolor],220 + cmp byte[GUIWincoladd],0 + je .zero2 + sub byte[GUItextcolor],6 .zero2 - GUIOuttextwin %2 - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add eax,dword[GUIwinsizex+%1*4] - sub eax,10 - GUIDisplayIcon GUIIconDataClose + GUIOuttextwin %2 + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add eax,dword[GUIwinsizex+%1*4] + sub eax,10 + GUIDisplayIcon GUIIconDataClose %endmacro %macro DrawGUIWinBox 6 - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add eax,%2 - add ebx,%3 - mov ecx,eax - add ecx,%4-%2+1 - mov dl,%6 - mov esi,%5-%3+1 + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add eax,%2 + add ebx,%3 + mov ecx,eax + add ecx,%4-%2+1 + mov dl,%6 + mov esi,%5-%3+1 %%loop - DrawGUILine - dec esi - jnz %%loop + DrawGUILine + dec esi + jnz %%loop %endmacro %macro DrawGUIWinBox2 5 - mov eax,[GUIwinposx+%1*4] - add eax,%2 - mov ecx,eax - add ecx,%3-%2+1 - mov dl,%5 - cmp byte[GUIWincoladd],0 - je %%zero - inc dl + mov eax,[GUIwinposx+%1*4] + mov ecx,eax + add eax,%2 + add ecx,%3+1 + mov dl,%5 + cmp byte[GUIWincoladd],0 + je %%zero + inc dl %%zero - mov esi,%4 - add ebx,dword[GUIwinposy+%1*4] + mov esi,%4 + add ebx,dword[GUIwinposy+%1*4] %%loop - DrawGUILine - dec esi - jnz %%loop + DrawGUILine + dec esi + jnz %%loop %endmacro %macro DrawGUIWinBox3 6 - mov ecx,%4 - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add eax,%2 - add ebx,%3 - add ecx,eax - sub ecx,%2 - inc ecx - mov dl,%6 - mov esi,%5-%3+1 + mov ecx,%4 + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add ecx,eax + add eax,%2 + add ebx,%3 + inc ecx + mov dl,%6 + mov esi,%5-%3+1 %%loop - DrawGUILine - dec esi - jnz %%loop + DrawGUILine + dec esi + jnz %%loop %endmacro %macro DrawGUIButton 9 - mov dl,[GUItextcolor] - sub dl,5 - cmp byte[GUICBHold],%7 - jne %%noa - sub dl,13 + mov dl,[GUItextcolor] + sub dl,5 + cmp byte[GUICBHold],%7 + jne %%noa + sub dl,13 %%noa - DrawGUIWinBox %1,%2,%3,%4,%3,dl - sub dl,3 - cmp byte[GUICBHold],%7 - jne %%nob - add dl,5 + DrawGUIWinBox %1,%2,%3,%4,%3,dl + sub dl,3 + cmp byte[GUICBHold],%7 + jne %%nob + add dl,5 %%nob - DrawGUIWinBox %1,%2,%3,%2,%5,dl - sub dl,3 - cmp byte[GUICBHold],%7 - jne %%noc - add dl,5 + DrawGUIWinBox %1,%2,%3,%2,%5,dl + sub dl,3 + cmp byte[GUICBHold],%7 + jne %%noc + add dl,5 %%noc - DrawGUIWinBox %1,%2+1,%3+1,%4-2,%5-2,dl - sub dl,3 - cmp byte[GUICBHold],%7 - jne %%nod - add dl,5 + DrawGUIWinBox %1,%2+1,%3+1,%4-2,%5-2,dl + sub dl,3 + cmp byte[GUICBHold],%7 + jne %%nod + add dl,5 %%nod - DrawGUIWinBox %1,%4+1,%3+1,%4-2,%5-2,dl - sub dl,3 - cmp byte[GUICBHold],%7 - jne %%noe - add dl,5 + DrawGUIWinBox %1,%4+1,%3+1,%4-2,%5-2,dl + sub dl,3 + cmp byte[GUICBHold],%7 + jne %%noe + add dl,5 %%noe - DrawGUIWinBox %1,%2,%5,%4-1,%5,dl - cmp byte[GUICBHold],%7 - je near %%no2 - sub byte[GUItextcolor],15 - GUIOuttextwin2 %1,%2+5+%8,%3+4+%9,%6 - add byte[GUItextcolor],15 - GUIOuttextwin2 %1,%2+4+%8,%3+3+%9,%6 - jmp %%yes + DrawGUIWinBox %1,%2,%5,%4-1,%5,dl + cmp byte[GUICBHold],%7 + je near %%no2 + sub byte[GUItextcolor],15 + GUIOuttextwin2 %1,%2+5+%8,%3+4+%9,%6 + add byte[GUItextcolor],15 + GUIOuttextwin2 %1,%2+4+%8,%3+3+%9,%6 + jmp %%yes %%no2 - sub byte[GUItextcolor],18 - GUIOuttextwin2 %1,%2+6+%8,%3+5+%9,%6 - add byte[GUItextcolor],15 - GUIOuttextwin2 %1,%2+5+%8,%3+4+%9,%6 - add byte[GUItextcolor],3 + sub byte[GUItextcolor],18 + GUIOuttextwin2 %1,%2+6+%8,%3+5+%9,%6 + add byte[GUItextcolor],15 + GUIOuttextwin2 %1,%2+5+%8,%3+4+%9,%6 + add byte[GUItextcolor],3 %%yes %endmacro %macro GUIOuttextwin2load 3 - test dword[cloadnleft],80000000h - jnz near %%skip - cmp byte[GUIloadfntype],0 - jne %%nottype0 - mov eax,[cloadnposb] - mov eax,[spcRamcmp+eax*4] - inc eax - mov [cloadnpos],eax - inc dword[cloadnposb] + test dword[cloadnleft],80000000h + jnz near %%skip + cmp byte[GUIloadfntype],0 + jne %%nottype0 + mov eax,[cloadnposb] + mov eax,[spcRamcmp+eax*4] + inc eax + mov [cloadnpos],eax + inc dword[cloadnposb] %%nottype0 - mov byte[GUItextcolor],223 - GUIOuttextwin2l %1,%2,%3,[cloadnpos] - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + mov byte[GUItextcolor],223 + GUIOuttextwin2l %1,%2,%3,[cloadnpos] + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2l %1,%2-1,%3-1,[cloadnpos] - add dword[cloadnpos],32 - dec dword[cloadnleft] + GUIOuttextwin2l %1,%2-1,%3-1,[cloadnpos] + add dword[cloadnpos],32 + dec dword[cloadnleft] %%skip %endmacro %macro GUIDisplayButtonHoleTu 7 - mov dword[GUITemp],GUIIconDataButtonHole - cmp %4,%5 - jne %%nofill - mov dword[GUITemp],GUIIconDataButtonFill + mov dword[GUITemp],GUIIconDataButtonHole + cmp %4,%5 + jne %%nofill + mov dword[GUITemp],GUIIconDataButtonFill %%nofill - GUIDisplayIconWin %1,%2,%3,[GUITemp] - GUIDisplayTextu %1,%2+15,%3+3,%6,%7 + GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayTextu %1,%2+15,%3+3,%6,%7 %endmacro %macro GUIDisplayButtonHole 5 - mov dword[GUITemp],GUIIconDataButtonHole - cmp %4,%5 - jne %%nofill - mov dword[GUITemp],GUIIconDataButtonFill + mov dword[GUITemp],GUIIconDataButtonHole + cmp %4,%5 + jne %%nofill + mov dword[GUITemp],GUIIconDataButtonFill %%nofill - GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayIconWin %1,%2,%3,[GUITemp] %endmacro -%macro GUIDisplayText 4 ; Text&Shadow - mov byte[GUItextcolor],202 - cmp byte[GUIWincoladd],0 - je %%text - mov byte[GUItextcolor],196 +%macro GUIDisplayText 4 ; Text&Shadow + mov byte[GUItextcolor],202 + cmp byte[GUIWincoladd],0 + je %%text + mov byte[GUItextcolor],196 %%text GUIOuttextwin2 %1,%2,%3,%4 - add byte[GUItextcolor],15 + add byte[GUItextcolor],15 GUIOuttextwin2 %1,%2-1,%3-1,%4 %endmacro -%macro GUIDisplayTextY 4 ; Yellow Text&Shadow - mov al,[GUIWincol] - mov [GUItextcolor],al - GUIOuttextwin2 %1,%2,%3,%4 - mov byte[GUItextcolor],163 - cmp byte[GUIWincoladd],0 - je %%texty - mov byte[GUItextcolor],164 +%macro GUIDisplayTextY 4 ; Yellow Text&Shadow + mov al,[GUIWincol] + mov [GUItextcolor],al + GUIOuttextwin2 %1,%2,%3,%4 + mov byte[GUItextcolor],163 + cmp byte[GUIWincoladd],0 + je %%texty + mov byte[GUItextcolor],164 %%texty - GUIOuttextwin2 %1,%2-1,%3-1,%4 + GUIOuttextwin2 %1,%2-1,%3-1,%4 %endmacro -%macro GUIDisplayTextu 5 ; Text&Shadow With Underline - mov byte[GUItextcolor],202 - cmp byte[GUIWincoladd],0 - je %%textu - mov byte[GUItextcolor],196 +%macro GUIDisplayTextu 5 ; Text&Shadow With Underline + mov byte[GUItextcolor],202 + cmp byte[GUIWincoladd],0 + je %%textu + mov byte[GUItextcolor],196 %%textu GUIOuttextwin2u %1,%2,%3,%4,%5 - add byte[GUItextcolor],15 + add byte[GUItextcolor],15 GUIOuttextwin2 %1,%2-1,%3-1,%4 %endmacro -%macro GUIDisplayTextG 4 ; Green Text&Shadow - mov byte[GUItextcolor],223 - GUIOuttextwin2 %1,%2,%3,%4 - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 +%macro GUIDisplayTextG 4 ; Green Text&Shadow + mov byte[GUItextcolor],223 + GUIOuttextwin2 %1,%2,%3,%4 + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 %1,%2-1,%3-1,%4 + GUIOuttextwin2 %1,%2-1,%3-1,%4 %endmacro -%macro GUIDisplayCheckboxP 4 ; Toggled Checkbox (Plain, no text) - mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[%4],0 - je %%nocheckbox - mov dword[GUITemp],GUIIconDataCheckBoxC +%macro GUIDisplayCheckboxP 4 ; Toggled Checkbox (Plain, no text) + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[%4],0 + je %%nocheckbox + mov dword[GUITemp],GUIIconDataCheckBoxC %%nocheckbox - GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayIconWin %1,%2,%3,[GUITemp] %endmacro -%macro GUIDisplayCheckbox 5 ; Toggled Checkbox (Text) - mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[%4],0 - je %%nocheckbox - mov dword[GUITemp],GUIIconDataCheckBoxC +%macro GUIDisplayCheckbox 5 ; Toggled Checkbox (Text) + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[%4],0 + je %%nocheckbox + mov dword[GUITemp],GUIIconDataCheckBoxC %%nocheckbox - GUIDisplayIconWin %1,%2,%3,[GUITemp] - GUIDisplayText %1,%2+15,%3+5,%5 + GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayText %1,%2+15,%3+5,%5 %endmacro -%macro GUIDisplayCheckboxTn 6 ; Variable Checkbox (Text) - mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[%4],%5 - jne %%nocheckbox - mov dword[GUITemp],GUIIconDataCheckBoxC +%macro GUIDisplayCheckboxTn 6 ; Variable Checkbox (Text) + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[%4],%5 + jne %%nocheckbox + mov dword[GUITemp],GUIIconDataCheckBoxC %%nocheckbox - GUIDisplayIconWin %1,%2,%3,[GUITemp] - GUIDisplayText %1,%2+15,%3+5,%6 + GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayText %1,%2+15,%3+5,%6 %endmacro -%macro GUIDisplayCheckboxu 6 ; Toggled Checkbox (Text Underline) - mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[%4],0 - je %%nocheckbox - mov dword[GUITemp],GUIIconDataCheckBoxC +%macro GUIDisplayCheckboxu 6 ; Toggled Checkbox (Text Underline) + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[%4],0 + je %%nocheckbox + mov dword[GUITemp],GUIIconDataCheckBoxC %%nocheckbox - GUIDisplayIconWin %1,%2,%3,[GUITemp] - GUIDisplayTextu %1,%2+15,%3+5,%5,%6 + GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayTextu %1,%2+15,%3+5,%5,%6 %endmacro -%macro GUIDisplayCheckboxun 7 ; Set Var. Checkbox (Text Underline) - mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[%4],%5 - jne %%nocheckbox - mov dword[GUITemp],GUIIconDataCheckBoxC +%macro GUIDisplayCheckboxun 7 ; Set Var. Checkbox (Text Underline) + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[%4],%5 + jne %%nocheckbox + mov dword[GUITemp],GUIIconDataCheckBoxC %%nocheckbox - GUIDisplayIconWin %1,%2,%3,[GUITemp] - GUIDisplayTextu %1,%2+15,%3+5,%6,%7 + GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayTextu %1,%2+15,%3+5,%6,%7 %endmacro -%macro GUIDisplayCheckboxPn 5 ; Set Var. Checkbox - mov dword[GUITemp],GUIIconDataCheckBoxUC - cmp byte[%4],%5 - jne %%nocheckbox - mov dword[GUITemp],GUIIconDataCheckBoxC +%macro GUIDisplayCheckboxPn 5 ; Set Var. Checkbox + mov dword[GUITemp],GUIIconDataCheckBoxUC + cmp byte[%4],%5 + jne %%nocheckbox + mov dword[GUITemp],GUIIconDataCheckBoxC %%nocheckbox - GUIDisplayIconWin %1,%2,%3,[GUITemp] + GUIDisplayIconWin %1,%2,%3,[GUITemp] %endmacro -%macro GUIDisplayBBoxS 6 ; Black Box W/Border - mov dword[GUIWincol],148+10 ; Minus right side - cmp byte[cwindrawn],1 - jne %%noone - mov dword[GUIWincol],148+5 +%macro GUIDisplayBBoxS 6 ; Black Box W/Border + mov dword[GUIWincol],148+10 ; Minus right side + cmp byte[cwindrawn],1 + jne %%noone + mov dword[GUIWincol],148+5 %%noone - cmp byte[cwindrawn],0 - jne %%nozero - mov dword[GUIWincol],148 + cmp byte[cwindrawn],0 + jne %%nozero + mov dword[GUIWincol],148 %%nozero - DrawGUIWinBox %1,%2,%3,%4,%5,%6 - mov dl,[GUIWincol] - DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl - mov dl,[GUIWincol] - add dl,1 - DrawGUIWinBox %1,%2-1,%3,%2,%5,dl - mov dl,[GUIWincol] - add dl,4 - DrawGUIWinBox %1,%2,%5+1,%4,%5-1,dl + DrawGUIWinBox %1,%2,%3,%4,%5,%6 + mov dl,[GUIWincol] + DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl + mov dl,[GUIWincol] + add dl,1 + DrawGUIWinBox %1,%2-1,%3,%2,%5,dl + mov dl,[GUIWincol] + add dl,4 + DrawGUIWinBox %1,%2,%5+1,%4,%5-1,dl %endmacro %macro GUIDisplayBBox 6 ; Black Box W/Border - mov dword[GUIWincol],148+10 - cmp byte[cwindrawn],1 - jne %%noone - mov dword[GUIWincol],148+5 + mov dword[GUIWincol],148+10 + cmp byte[cwindrawn],1 + jne %%noone + mov dword[GUIWincol],148+5 %%noone - cmp byte[cwindrawn],0 - jne %%nozero - mov dword[GUIWincol],148 + cmp byte[cwindrawn],0 + jne %%nozero + mov dword[GUIWincol],148 %%nozero - DrawGUIWinBox %1,%2,%3,%4,%5,%6 - mov dl,[GUIWincol] - DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl - mov dl,[GUIWincol] - add dl,1 - DrawGUIWinBox %1,%2-1,%3,%2,%5,dl - mov dl,[GUIWincol] - add dl,4 - DrawGUIWinBox %1,%2,%5+1,%4,%5-1,dl - mov dl,[GUIWincol] - add dl,3 - DrawGUIWinBox %1,%4+2,%3,%4-3,%5,dl + DrawGUIWinBox %1,%2,%3,%4,%5,%6 + mov dl,[GUIWincol] + DrawGUIWinBox %1,%2,%3-3+2,%4,%3+1,dl + mov dl,[GUIWincol] + add dl,1 + DrawGUIWinBox %1,%2-1,%3,%2,%5,dl + mov dl,[GUIWincol] + add dl,4 + DrawGUIWinBox %1,%2,%5+1,%4,%5-1,dl + mov dl,[GUIWincol] + add dl,3 + DrawGUIWinBox %1,%4+2,%3,%4-3,%5,dl +%endmacro + +%macro SetVidbufLoc 0 + mov esi,ebx + mov eax,ebx + shl esi,8 + shl eax,5 + add esi,eax + add esi,16 + add esi,[vidbuffer] +%endmacro + +%macro DrawTabOn 1 ; %1 = array, ebp = offset, eax = minX, ebx = minY + push edi + mov esi,%1 + mov ecx,8 + add ecx,eax +%%read1 + mov dl,[esi+ebp] + cmp dl,0 + je %%ok1 + inc esi + add ecx,6 + jmp %%read1 +%%ok1 + mov dl,[GUIWincol] + add dl,4 + inc eax + DrawGUILine + sub dl,2 + mov esi,12 +%%draw1 + DrawGUILine + dec esi + jnz %%draw1 + sub ebx,12 + push ecx ; save X offset for next drawing step + dec eax + mov ecx,eax + mov esi,12 + inc dl +%%draw2 + DrawGUILine + dec esi + jnz %%draw2 + sub ebx,13 + push ebx ; save Y offset for next drawing step + mov cl,[GUIWincol] + mov [GUItextcolor],cl + add ebx,5 + push ebx ; save label Yoff + mov edx,eax + add edx,6 + push edx ; save label Xoff + SetVidbufLoc + mov edi,%1 + add edi,ebp + call GUIOutputStringwin + pop edx + pop ebx + mov byte[GUItextcolor],163 + cmp byte[GUIWincoladd],0 + je %%nochange + mov byte[GUItextcolor],164 +%%nochange + dec edx + dec ebx + SetVidbufLoc + mov edi,%1 + add edi,ebp + call GUIOutputStringwin + mov byte[GUItextcolor],217 ; restore normal colour + pop ebx ; restore Yoff for next tab + pop eax + add eax,2 ; restore and set Xoff for next tab +%%read2 + mov esi,%1 + mov dl,[esi+ebp] + cmp dl,0 + je %%ok2 + inc ebp + jmp %%read2 +%%ok2 + inc ebp ; set pointer to next string + pop edi +%endmacro + +%macro DrawTabOff 1 ; %1 = array, ebp = offset, eax = minX, ebx = minY + mov esi,%1 + mov ecx,8 + add ecx,eax +%%read1 + mov dl,[esi+ebp] + cmp dl,0 + je %%ok1 + inc esi + add ecx,6 + jmp %%read1 +%%ok1 + mov dl,[GUIWincol] + add dl,3 + inc eax + inc ebx + DrawGUILine + dec dl + push ecx ; save Xoff for next drawing step + dec eax + mov ecx,eax + mov esi,10 +%%draw1 + DrawGUILine + dec esi + jnz %%draw1 + sub ebx,10 + push ebx ; save Yoff for next drawing step + push ebp ; save array offset + mov byte[GUItextcolor],202 + cmp byte[GUIWincoladd],0 + je %%nochange + mov byte[GUItextcolor],196 +%%nochange + add ebx,4 + push ebx ; save label Yoff + mov edx,eax + add edx,6 + push edx ; save label Xoff + SetVidbufLoc + push edi + mov edi,%1 + add edi,ebp + call GUIOutputStringwin + pop edi + pop edx + pop ebx + pop ebp + push ebp ; save array offset again + add byte[GUItextcolor],15 + dec edx + dec ebx + SetVidbufLoc + push edi + mov edi,%1 + add edi,ebp + call GUIOutputStringwin + pop edi + pop ebp ; restore pointer + pop ebx ; restore Yoff for drawing step + pop eax + inc eax ; restore and set Xoff for drawing step + mov ecx,eax + mov dl,[GUIWincol] + mov esi,10 +%%draw2 + DrawGUILine + dec esi + jnz %%draw2 + sub ebx,12 + inc eax +%%read2 + mov esi,%1 + mov dl,[esi+ebp] + cmp dl,0 + je %%ok2 + inc ebp + jmp %%read2 +%%ok2 + inc ebp ; set pointer to next string +%endmacro + +%macro GUIDrawTab 2 ; window id #, tabs/label array + mov dl,[GUIWincol] + add dl,1 + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add ebx,10 + mov ecx,eax + add ecx,[GUIwinsizex+%1*4] + mov esi,12 +%%loop1 + DrawGUILine + dec esi + jnz %%loop1 + add dl,3 + inc eax + DrawGUILine + sub ebx,13 ; set ebx to minY + dec eax ; set eax to minX + mov esi,[%2] ; active tab + mov ecx,[%2+4] ; total # + mov ebp,8 ; set array offset at top of labels +%%loop2 + dec esi ; check if tab is the current one + push ecx + push esi + jnz near %%disabled + DrawTabOn %2 ; draws tab, updates eax, ebx & ebp for next tab... + jmp %%done +%%disabled + DrawTabOff %2 ; ... and autosizes the tab for its label +%%done + pop esi + pop ecx + dec ecx + jnz %%loop2 %endmacro ; DGUIDisplay DisplayGUILoad: - GUIDrawWindowBox 1,GUILoadDisp + GUIDrawWindowBox 1,GUILoadDisp %ifdef __MSDOS__ - GUIDisplayTextY 1,6,157,GUILoadText2 - GUIDisplayText 1,21,166,GUILoadText3 - GUIDisplayText 1,21,174,GUILoadText4 - GUIDisplayText 1,21,182,GUILoadText5 + GUIDisplayTextY 1,6,157,GUILoadText2 + GUIDisplayText 1,21,166,GUILoadText3 + GUIDisplayText 1,21,174,GUILoadText4 + GUIDisplayText 1,21,182,GUILoadText5 %endif -; GUIDisplayText 1,21,192,GUILoadText6 - GUIDisplayText 1,6,16,GUILoadText7 - GUIDisplayText 1,161,16,GUILoadText8 - GUIDisplayText 1,6,138,GUIcurrentdir + GUIDisplayText 1,6,16,GUILoadText7 + GUIDisplayText 1,161,16,GUILoadText8 + GUIDisplayText 1,6,138,GUIcurrentdir + GUIDisplayText 1,146,172,GUILoadTextB - GUIDisplayText 1,146,172,GUILoadTextB -; GUIDisplayText 1,155,182,GUILoadTextC -; GUIDisplayText 1,155,192,GUILoadTextD -; GUIDisplayText 1,195,182,GUILoadTextE -; GUIDisplayText 1,195,192,GUILoadTextF - - - mov byte[GUItextcolor],202 - cmp byte[GUIWincoladd],0 - je .text - mov byte[GUItextcolor],196 + mov byte[GUItextcolor],202 + cmp byte[GUIWincoladd],0 + je .text + mov byte[GUItextcolor],196 .text - mov dword[cloadmaxlen],39 - cmp dword[GUIcurrentfilewin],0 - jne near .nofiles + mov dword[cloadmaxlen],39 + cmp dword[GUIcurrentfilewin],0 + jne near .nofiles %ifndef __MSDOS__ - mov eax,[GUIcurrentcursloc] - mov eax,[spcRamcmp+eax*4] - inc eax - mov [cloadnpos],eax - GUIOuttextwin2l 1,6,158,[cloadnpos] - add byte[GUItextcolor],15 - GUIOuttextwin2l 1,5,157,[cloadnpos] + mov eax,[GUIcurrentcursloc] + mov eax,[spcRamcmp+eax*4] + inc eax + mov [cloadnpos],eax + GUIOuttextwin2l 1,6,158,[cloadnpos] + add byte[GUItextcolor],15 + GUIOuttextwin2l 1,5,157,[cloadnpos] %else - add byte[GUItextcolor],15 + add byte[GUItextcolor],15 %endif .nofiles ; Button - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .text2 - mov byte[GUItextcolor],111 + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .text2 + mov byte[GUItextcolor],111 .text2 - DrawGUIButton 1,186,165,228,176,GUILoadText9,1,0,0 + DrawGUIButton 1,186,165,228,176,GUILoadText9,1,0,0 - ; The Three Boxes - GUIDisplayBBoxS 1,5,25,144,134,167 ; 126 = 6 * 21, 112 = 7 * 16 - GUIDisplayBBoxS 1,160,25,228,134,167 ; 78 = 6 * 13 - GUIDisplayBBox 1,5,145,228,152,167 ; 126 = 6 * 21, 112 = 7 * 16 + ; The Three Boxes + GUIDisplayBBoxS 1,5,25,144,134,167 ; 126 = 6 * 21, 112 = 7 * 16 + GUIDisplayBBoxS 1,160,25,228,134,167 ; 78 = 6 * 13 + GUIDisplayBBox 1,5,145,228,152,167 ; 126 = 6 * 21, 112 = 7 * 16 - xor ebx,ebx ; Flash Code? - mov bl,[GUILoadPos] - mov byte[GUILoadTextA+ebx],0 - test byte[GUILDFlash],8 - jnz .nound - mov byte[GUILoadTextA+ebx],'_' - mov byte[GUILoadTextA+ebx+1],0 + xor ebx,ebx ; Flash Code? + mov bl,[GUILoadPos] + mov byte[GUILoadTextA+ebx],0 + test byte[GUILDFlash],8 + jnz .nound + mov byte[GUILoadTextA+ebx],'_' + mov byte[GUILoadTextA+ebx+1],0 .nound - mov ebx,[GUIcurrentcursloc] ; check if its in the Files box? - sub ebx,[GUIcurrentviewloc] - cmp dword[GUIcurrentfilewin],0 - je .files - mov ebx,[GUIcurrentdircursloc] - sub ebx,[GUIcurrentdirviewloc] + mov ebx,[GUIcurrentcursloc] ; check if its in the Files box? + sub ebx,[GUIcurrentviewloc] + cmp dword[GUIcurrentfilewin],0 + je .files + mov ebx,[GUIcurrentdircursloc] + sub ebx,[GUIcurrentdirviewloc] .files - mov eax,ebx ; Draw 2 more boxes? - lea ebx,[ebx*4] - add ebx,eax - add ebx,eax - add ebx,eax - add ebx,27 - cmp dword[GUIcurrentfilewin],0 - jne .dir - DrawGUIWinBox2 1,5,144,7,224 - jmp .files2 + mov eax,ebx ; Draw 2 more boxes? + lea ebx,[ebx*4] + add ebx,eax + add ebx,eax + add ebx,eax + add ebx,27 + cmp dword[GUIcurrentfilewin],0 + jne .dir + DrawGUIWinBox2 1,5,144,7,224 + jmp .files2 .dir - DrawGUIWinBox2 1,160,228,7,224 + DrawGUIWinBox2 1,160,228,7,224 .files2 - mov byte[GUItextcolor],223 ; Green Shadow - GUIOuttextwin2 1,8,148, GUILoadTextA + mov byte[GUItextcolor],223 ; Green Shadow + GUIOuttextwin2 1,8,148, GUILoadTextA - mov eax,[spcBuffera] - inc eax - mov [cloadnpos],eax - mov eax,[GUIfileentries] - sub eax,[GUIcurrentviewloc] - dec eax - mov [cloadnleft],eax - mov eax,[GUIcurrentviewloc] - mov [cloadnposb],eax - shl eax,5 - add [cloadnpos],eax - mov dword[cloadmaxlen],23 + mov eax,[spcBuffera] + inc eax + mov [cloadnpos],eax + mov eax,[GUIfileentries] + sub eax,[GUIcurrentviewloc] + dec eax + mov [cloadnleft],eax + mov eax,[GUIcurrentviewloc] + mov [cloadnposb],eax + shl eax,5 + add [cloadnpos],eax + mov dword[cloadmaxlen],23 - GUIOuttextwin2load 1,8,29 ; Text/Shadow for Filename Box - GUIOuttextwin2load 1,8,29+7 - GUIOuttextwin2load 1,8,29+7*2 - GUIOuttextwin2load 1,8,29+7*3 - GUIOuttextwin2load 1,8,29+7*4 - GUIOuttextwin2load 1,8,29+7*5 - GUIOuttextwin2load 1,8,29+7*6 - GUIOuttextwin2load 1,8,29+7*7 - GUIOuttextwin2load 1,8,29+7*8 - GUIOuttextwin2load 1,8,29+7*9 - GUIOuttextwin2load 1,8,29+7*10 - GUIOuttextwin2load 1,8,29+7*11 - GUIOuttextwin2load 1,8,29+7*12 - GUIOuttextwin2load 1,8,29+7*13 - GUIOuttextwin2load 1,8,29+7*14 + GUIOuttextwin2load 1,8,29 ; Text/Shadow for Filename Box + GUIOuttextwin2load 1,8,29+7 + GUIOuttextwin2load 1,8,29+7*2 + GUIOuttextwin2load 1,8,29+7*3 + GUIOuttextwin2load 1,8,29+7*4 + GUIOuttextwin2load 1,8,29+7*5 + GUIOuttextwin2load 1,8,29+7*6 + GUIOuttextwin2load 1,8,29+7*7 + GUIOuttextwin2load 1,8,29+7*8 + GUIOuttextwin2load 1,8,29+7*9 + GUIOuttextwin2load 1,8,29+7*10 + GUIOuttextwin2load 1,8,29+7*11 + GUIOuttextwin2load 1,8,29+7*12 + GUIOuttextwin2load 1,8,29+7*13 + GUIOuttextwin2load 1,8,29+7*14 - mov eax,[spcBuffera] - inc eax - mov [cloadnpos],eax - mov eax,[GUIdirentries] - sub eax,[GUIcurrentdirviewloc] - dec eax - mov [cloadnleft],eax - mov eax,[GUIcurrentdirviewloc] - add eax,[GUIfileentries] - mov [cloadnposb],eax - shl eax,5 - add [cloadnpos],eax - mov dword[cloadmaxlen],11 - GUIOuttextwin2load 1,164,29 ; Text/Shadow for DIR Box - GUIOuttextwin2load 1,164,29+7 - GUIOuttextwin2load 1,164,29+7*2 - GUIOuttextwin2load 1,164,29+7*3 - GUIOuttextwin2load 1,164,29+7*4 - GUIOuttextwin2load 1,164,29+7*5 - GUIOuttextwin2load 1,164,29+7*6 - GUIOuttextwin2load 1,164,29+7*7 - GUIOuttextwin2load 1,164,29+7*8 - GUIOuttextwin2load 1,164,29+7*9 - GUIOuttextwin2load 1,164,29+7*10 - GUIOuttextwin2load 1,164,29+7*11 - GUIOuttextwin2load 1,164,29+7*12 - GUIOuttextwin2load 1,164,29+7*13 - GUIOuttextwin2load 1,164,29+7*14 + mov eax,[spcBuffera] + inc eax + mov [cloadnpos],eax + mov eax,[GUIdirentries] + sub eax,[GUIcurrentdirviewloc] + dec eax + mov [cloadnleft],eax + mov eax,[GUIcurrentdirviewloc] + add eax,[GUIfileentries] + mov [cloadnposb],eax + shl eax,5 + add [cloadnpos],eax + mov dword[cloadmaxlen],11 + GUIOuttextwin2load 1,164,29 ; Text/Shadow for DIR Box + GUIOuttextwin2load 1,164,29+7 + GUIOuttextwin2load 1,164,29+7*2 + GUIOuttextwin2load 1,164,29+7*3 + GUIOuttextwin2load 1,164,29+7*4 + GUIOuttextwin2load 1,164,29+7*5 + GUIOuttextwin2load 1,164,29+7*6 + GUIOuttextwin2load 1,164,29+7*7 + GUIOuttextwin2load 1,164,29+7*8 + GUIOuttextwin2load 1,164,29+7*9 + GUIOuttextwin2load 1,164,29+7*10 + GUIOuttextwin2load 1,164,29+7*11 + GUIOuttextwin2load 1,164,29+7*12 + GUIOuttextwin2load 1,164,29+7*13 + GUIOuttextwin2load 1,164,29+7*14 - mov byte[GUItextcolor],221 ; Green Text - cmp byte[GUIWincoladd],0 - je .zero4 - mov byte[GUItextcolor],222 + mov byte[GUItextcolor],221 ; Green Text + cmp byte[GUIWincoladd],0 + je .zero4 + mov byte[GUItextcolor],222 .zero4 - GUIOuttextwin2 1,7,147, GUILoadTextA + GUIOuttextwin2 1,7,147, GUILoadTextA - xor ebx,ebx - mov bl,[GUILoadPos] - mov byte[GUILoadTextA+ebx],0 + xor ebx,ebx + mov bl,[GUILoadPos] + mov byte[GUILoadTextA+ebx],0 -%ifdef __MSDOS__ ; Radio Buttons - GUIDisplayButtonHole 1,9,163,byte[GUIloadfntype],0 - GUIDisplayButtonHole 1,9,171,byte[GUIloadfntype],1 - GUIDisplayButtonHole 1,9,179,byte[GUIloadfntype],2 +%ifdef __MSDOS__ + GUIDisplayButtonHole 1,9,163,byte[GUIloadfntype],0 ; Radio Buttons + GUIDisplayButtonHole 1,9,171,byte[GUIloadfntype],1 + GUIDisplayButtonHole 1,9,179,byte[GUIloadfntype],2 %endif - GUIDisplayCheckboxTn 1,10,187,showallext,1,GUILoadText6 ; Checkboxes - GUIDisplayCheckboxTn 1,144,177,ForceROMTiming,1,GUILoadTextC - GUIDisplayCheckboxTn 1,144,187,ForceROMTiming,2,GUILoadTextD - GUIDisplayCheckboxTn 1,184,177,ForceHiLoROM,1,GUILoadTextE - GUIDisplayCheckboxTn 1,184,187,ForceHiLoROM,2,GUILoadTextF + GUIDisplayCheckboxTn 1,10,187,showallext,1,GUILoadText6 ; Checkboxes + GUIDisplayCheckboxTn 1,144,177,ForceROMTiming,1,GUILoadTextC + GUIDisplayCheckboxTn 1,144,187,ForceROMTiming,2,GUILoadTextD + GUIDisplayCheckboxTn 1,184,177,ForceHiLoROM,1,GUILoadTextE + GUIDisplayCheckboxTn 1,184,187,ForceHiLoROM,2,GUILoadTextF - ; Slidebar for Files - ; win#,X,Y start, %4-List Loc, %5-List size, %6-Screen size, %7-Bar Size - DrawSlideBarWin 1,146,33,[GUIcurrentviewloc],[GUIfileentries],15,94,GUILStA - cmp byte[GUICHold],1 - jne .noholda - add byte[GUIWincoladd],3 + ; Slidebar for Files + ; win#,X,Y start, %4-List Loc, %5-List size, %6-Screen size, %7-Bar Size + DrawSlideBarWin 1,146,33,[GUIcurrentviewloc],[GUIfileentries],15,94,GUILStA + cmp byte[GUICHold],1 + jne .noholda + add byte[GUIWincoladd],3 .noholda - GUIDisplayIconWin 1,146,25,GUIIconDataUpArrow - cmp byte[GUICHold],1 - jne .noholda2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 1,146,25,GUIIconDataUpArrow + cmp byte[GUICHold],1 + jne .noholda2 + sub byte[GUIWincoladd],3 .noholda2 - cmp byte[GUICHold],2 - jne .noholdb - add byte[GUIWincoladd],3 + cmp byte[GUICHold],2 + jne .noholdb + add byte[GUIWincoladd],3 .noholdb - GUIDisplayIconWin 1,146,127,GUIIconDataDownArrow - cmp byte[GUICHold],2 - jne .noholdb2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 1,146,127,GUIIconDataDownArrow + cmp byte[GUICHold],2 + jne .noholdb2 + sub byte[GUIWincoladd],3 .noholdb2 - ; Slidebar for DIR - DrawSlideBarWin 1,230,33,[GUIcurrentdirviewloc],[GUIdirentries],15,94,GUILStB - cmp byte[GUICHold],3 - jne .noholdc - add byte[GUIWincoladd],3 + + ; Slidebar for DIR + DrawSlideBarWin 1,230,33,[GUIcurrentdirviewloc],[GUIdirentries],15,94,GUILStB + cmp byte[GUICHold],3 + jne .noholdc + add byte[GUIWincoladd],3 .noholdc - GUIDisplayIconWin 1,230,25,GUIIconDataUpArrow - cmp byte[GUICHold],3 - jne .noholdc2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 1,230,25,GUIIconDataUpArrow + cmp byte[GUICHold],3 + jne .noholdc2 + sub byte[GUIWincoladd],3 .noholdc2 - cmp byte[GUICHold],4 - jne .noholdd - add byte[GUIWincoladd],3 + cmp byte[GUICHold],4 + jne .noholdd + add byte[GUIWincoladd],3 .noholdd - GUIDisplayIconWin 1,230,127,GUIIconDataDownArrow - cmp byte[GUICHold],4 - jne .noholdd2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 1,230,127,GUIIconDataDownArrow + cmp byte[GUICHold],4 + jne .noholdd2 + sub byte[GUIWincoladd],3 .noholdd2 - ret + ret SECTION .data -GUILoadText1 db 'SELECT FILE TO LOAD :',0 -GUILoadText2 db 'DISPLAY TYPE :',0 +GUILoadText1 db 'SELECT FILE TO LOAD:',0 +GUILoadText2 db 'DISPLAY TYPE:',0 GUILoadText3 db 'NORMAL 8.3 FORMAT',0 GUILoadText4 db 'SNES HEADER NAME',0 GUILoadText5 db 'WIN95 LONG FILENAME',0 @@ -836,69 +1033,69 @@ GUILoadPos resb 1 SECTION .text DisplayGUIReset: ; Reset Confirmation - GUIDrawWindowBox 12,GUIResetDisp + GUIDrawWindowBox 12,GUIResetDisp - cmp byte[GUIWincoladd],0 ;Red Box around buttons - je .zero - mov byte[GUItextcolor],211 + cmp byte[GUIWincoladd],0 ;Red Box around buttons + je .zero + mov byte[GUItextcolor],211 .zero - mov dl,224 - cmp byte[GUIWincoladd],0 - je .zero4 - inc dl + mov dl,224 + cmp byte[GUIWincoladd],0 + je .zero4 + inc dl .zero4 - cmp byte[GUICResetPos],0 - je near .resetboxa - DrawGUIWinBox 12,79,29,117,42,dl - jmp .resetboxb + cmp byte[GUICResetPos],0 + je near .resetboxa + DrawGUIWinBox 12,79,29,117,42,dl + jmp .resetboxb .resetboxa - DrawGUIWinBox 12,19,29,57,42,dl + DrawGUIWinBox 12,19,29,57,42,dl .resetboxb - DrawGUIButton 12,20,30,56,41,GUIResetText2,2,0,0 ; Buttons - DrawGUIButton 12,80,30,116,41,GUIResetText3,3,0,0 + DrawGUIButton 12,20,30,56,41,GUIResetText2,2,0,0 ; Buttons + DrawGUIButton 12,80,30,116,41,GUIResetText3,3,0,0 - GUIDisplayTextY 12,6,16,GUIResetText1 - ret + GUIDisplayTextY 12,6,16,GUIResetText1 + ret SECTION .data -GUIResetText1 db 'RESET : ARE YOU SURE ?',0 +GUIResetText1 db 'RESET: ARE YOU SURE ?',0 GUIResetText2 db 'YES',0 GUIResetText3 db 'NO',0 SECTION .text DisplayGUIStates: ; Save/Load State Confirmation - GUIDrawWindowBox 14,GUIStatesDisp + GUIDrawWindowBox 14,GUIStatesDisp - cmp byte[GUIWincoladd],0 ; Red Box around buttons - je .zero - mov byte[GUItextcolor],211 + cmp byte[GUIWincoladd],0 ; Red Box around buttons + je .zero + mov byte[GUItextcolor],211 .zero - mov dl,224 - cmp byte[GUIWincoladd],0 - je .zero4 - inc dl + mov dl,224 + cmp byte[GUIWincoladd],0 + je .zero4 + inc dl .zero4 - cmp byte[GUICStatePos],0 - je near .resetboxa - DrawGUIWinBox 14,79,29,117,42,dl - jmp .resetboxb + cmp byte[GUICStatePos],0 + je near .resetboxa + DrawGUIWinBox 14,79,29,117,42,dl + jmp .resetboxb .resetboxa - DrawGUIWinBox 14,19,29,57,42,dl + DrawGUIWinBox 14,19,29,57,42,dl .resetboxb - DrawGUIButton 14,20,30,56,41,GUIStatesText3,10,0,0 ; Buttons - DrawGUIButton 14,80,30,116,41,GUIStatesText4,11,0,0 + DrawGUIButton 14,20,30,56,41,GUIStatesText3,10,0,0 ; Buttons + DrawGUIButton 14,80,30,116,41,GUIStatesText4,11,0,0 - cmp byte[GUIStatesText5],1 ; Determines Load or Save box - je near .load - GUIDisplayTextY 14,6,16,GUIStatesText1 - jmp .save + cmp byte[GUIStatesText5],1 ; Determines Load or Save box + je near .load + GUIDisplayTextY 14,6,16,GUIStatesText1 + jmp .save .load - GUIDisplayTextY 14,6,16,GUIStatesText2 + GUIDisplayTextY 14,6,16,GUIStatesText2 .save - ret + ret SECTION .data GUIStatesText1 db 'OKAY TO SAVE STATE?',0 @@ -910,411 +1107,415 @@ GUIStatesText5 db 0 SECTION .text DisplayGUIChoseSave: ; Pick Save State - GUIDrawWindowBox 2,GUIStateSelDisp + GUIDrawWindowBox 2,GUIStateSelDisp + GUIDisplayTextY 2,6,16,GUIChoseSaveText1 + mov byte[GUIChoseSaveText2],'0' + GUIDisplayText 2,21,31,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'1' + GUIDisplayText 2,41,31,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'2' + GUIDisplayText 2,61,31,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'3' + GUIDisplayText 2,81,31,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'4' + GUIDisplayText 2,101,31,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'5' + GUIDisplayText 2,21,46,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'6' + GUIDisplayText 2,41,46,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'7' + GUIDisplayText 2,61,46,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'8' + GUIDisplayText 2,81,46,GUIChoseSaveText2 + mov byte[GUIChoseSaveText2],'9' + GUIDisplayText 2,101,46,GUIChoseSaveText2 - GUIDisplayTextY 2,6,16,GUIChoseSaveText1 - mov byte[GUIChoseSaveText2],'0' - GUIDisplayText 2,21,31,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'1' - GUIDisplayText 2,41,31,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'2' - GUIDisplayText 2,61,31,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'3' - GUIDisplayText 2,81,31,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'4' - GUIDisplayText 2,101,31,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'5' - GUIDisplayText 2,21,46,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'6' - GUIDisplayText 2,41,46,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'7' - GUIDisplayText 2,61,46,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'8' - GUIDisplayText 2,81,46,GUIChoseSaveText2 - mov byte[GUIChoseSaveText2],'9' - GUIDisplayText 2,101,46,GUIChoseSaveText2 - - mov dword[GUITemp],GUIIconDataButtonHole ; Radio Buttons - mov ebx,[statefileloc] - mov al,[fnamest+ebx] - mov [GUIChoseSaveText2],al - GUIDisplayButtonHole 2,10,28,byte[GUIChoseSaveText2],'t' - GUIDisplayButtonHole 2,30,28,byte[GUIChoseSaveText2],'1' - GUIDisplayButtonHole 2,50,28,byte[GUIChoseSaveText2],'2' - GUIDisplayButtonHole 2,70,28,byte[GUIChoseSaveText2],'3' - GUIDisplayButtonHole 2,90,28,byte[GUIChoseSaveText2],'4' - GUIDisplayButtonHole 2,10,43,byte[GUIChoseSaveText2],'5' - GUIDisplayButtonHole 2,30,43,byte[GUIChoseSaveText2],'6' - GUIDisplayButtonHole 2,50,43,byte[GUIChoseSaveText2],'7' - GUIDisplayButtonHole 2,70,43,byte[GUIChoseSaveText2],'8' - GUIDisplayButtonHole 2,90,43,byte[GUIChoseSaveText2],'9' - ret + mov dword[GUITemp],GUIIconDataButtonHole ; Radio Buttons + mov ebx,[statefileloc] + mov al,[fnamest+ebx] + mov [GUIChoseSaveText2],al + GUIDisplayButtonHole 2,10,28,byte[GUIChoseSaveText2],'t' + GUIDisplayButtonHole 2,30,28,byte[GUIChoseSaveText2],'1' + GUIDisplayButtonHole 2,50,28,byte[GUIChoseSaveText2],'2' + GUIDisplayButtonHole 2,70,28,byte[GUIChoseSaveText2],'3' + GUIDisplayButtonHole 2,90,28,byte[GUIChoseSaveText2],'4' + GUIDisplayButtonHole 2,10,43,byte[GUIChoseSaveText2],'5' + GUIDisplayButtonHole 2,30,43,byte[GUIChoseSaveText2],'6' + GUIDisplayButtonHole 2,50,43,byte[GUIChoseSaveText2],'7' + GUIDisplayButtonHole 2,70,43,byte[GUIChoseSaveText2],'8' + GUIDisplayButtonHole 2,90,43,byte[GUIChoseSaveText2],'9' + ret SECTION .data -GUIChoseSaveText1 db 'SELECT SAVE SLOT :',0 +GUIChoseSaveText1 db 'SELECT SAVE SLOT:',0 GUIChoseSaveText2 db '-',0 SECTION .text %macro DGOptnsBorderBox 3 - mov dword[GUIWincol],148+10 - cmp byte[cwindrawn],1 - jne %%noone - mov dword[GUIWincol],148+5 + mov dword[GUIWincol],148+10 + cmp byte[cwindrawn],1 + jne %%noone + mov dword[GUIWincol],148+5 %%noone - cmp byte[cwindrawn],0 - jne %%nozero - mov dword[GUIWincol],148 + cmp byte[cwindrawn],0 + jne %%nozero + mov dword[GUIWincol],148 %%nozero -mov dl,[GUIWincol] - DrawGUIWinBox %1,%2+1,%3,%2+18,%3,dl - mov dl,[GUIWincol] - add dl,1 - DrawGUIWinBox %1,%2,%3+1,%2-1,%3+5,dl - mov dl,[GUIWincol] - add dl,4 - DrawGUIWinBox %1,%2+1,%3+8,%2+18,%3-8,dl - mov dl,[GUIWincol] - add dl,3 - DrawGUIWinBox %1,%2+22,%3+1,%2-23,%3+5,dl + mov dl,[GUIWincol] + DrawGUIWinBox %1,%2+1,%3,%2+18,%3,dl + mov dl,[GUIWincol] + add dl,1 + DrawGUIWinBox %1,%2,%3+1,%2-1,%3+5,dl + mov dl,[GUIWincol] + add dl,4 + DrawGUIWinBox %1,%2+1,%3+8,%2+18,%3-8,dl + mov dl,[GUIWincol] + add dl,3 + DrawGUIWinBox %1,%2+22,%3+1,%2-23,%3+5,dl %endmacro %macro DGOptnsDrawBox 3 - mov eax,[GUIwinposx+9*4] - mov ebx,[GUIwinposy+9*4] - add eax,%1 - add ebx,%2 - mov ecx,eax - add ecx,20 - mov dl,167 - mov esi,7 + mov eax,[GUIwinposx+9*4] + mov ebx,[GUIwinposy+9*4] + add eax,%1 + add ebx,%2 + mov ecx,eax + add ecx,20 + mov dl,167 + mov esi,7 %%loop - DrawGUILine - dec esi - jnz %%loop - mov eax,%3 - mov ebx,[ScanCodeListing+eax*3] - mov [GUIGameDisplayKy],ebx - mov byte[GUIGameDisplayKy+3],0 - mov byte[GUItextcolor],223 - GUIOuttextwin2 9,%1+3,%2+2,GUIGameDisplayKy - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + DrawGUILine + dec esi + jnz %%loop + mov eax,%3 + mov ebx,[ScanCodeListing+eax*3] + mov [GUIGameDisplayKy],ebx + mov byte[GUIGameDisplayKy+3],0 + mov byte[GUItextcolor],223 + GUIOuttextwin2 9,%1+3,%2+2,GUIGameDisplayKy + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 9,%1+2,%2+1,GUIGameDisplayKy + GUIOuttextwin2 9,%1+2,%2+1,GUIGameDisplayKy %endmacro %macro DDrawBox 4 - mov eax,[GUIwinposx+%1*4] - mov ebx,[GUIwinposy+%1*4] - add eax,%2+1 - add ebx,%3+1 - mov ecx,eax - add ecx,20 - mov dl,167 - mov esi,7 + mov eax,[GUIwinposx+%1*4] + mov ebx,[GUIwinposy+%1*4] + add eax,%2+1 + add ebx,%3+1 + mov ecx,eax + add ecx,20 + mov dl,167 + mov esi,7 %%loop - DrawGUILine - dec esi - jnz %%loop - mov eax,%4 - mov ebx,[ScanCodeListing+eax*3] - mov [GUIGameDisplayKy],ebx - mov byte[GUIGameDisplayKy+3],0 - mov byte[GUItextcolor],223 - GUIOuttextwin2 %1,%2+4,%3+3,GUIGameDisplayKy - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + DrawGUILine + dec esi + jnz %%loop + mov eax,%4 + mov ebx,[ScanCodeListing+eax*3] + mov [GUIGameDisplayKy],ebx + mov byte[GUIGameDisplayKy+3],0 + mov byte[GUItextcolor],223 + GUIOuttextwin2 %1,%2+4,%3+3,GUIGameDisplayKy + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 %1,%2+3,%3+2,GUIGameDisplayKy - DGOptnsBorderBox %1,%2,%3 + GUIOuttextwin2 %1,%2+3,%3+2,GUIGameDisplayKy + DGOptnsBorderBox %1,%2,%3 %endmacro %macro DGOptnsDrawBox2 3 - mov eax,[GUIwinposx+3*4] - mov ebx,[GUIwinposy+3*4] - add eax,%1 - add ebx,%2 - mov ecx,eax - add ecx,20 - mov dl,167 - mov esi,7 + mov eax,[GUIwinposx+3*4] + mov ebx,[GUIwinposy+3*4] + add eax,%1 + add ebx,%2 + mov ecx,eax + add ecx,20 + mov dl,167 + mov esi,7 %%loop - DrawGUILine - dec esi - jnz %%loop - mov eax,%3 - mov ebx,[ScanCodeListing+eax*3] - mov [GUIGameDisplayKy],ebx - mov byte[GUIGameDisplayKy+3],0 - mov byte[GUItextcolor],223 - GUIOuttextwin2 3,%1+3,%2+2,GUIGameDisplayKy - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + DrawGUILine + dec esi + jnz %%loop + mov eax,%3 + mov ebx,[ScanCodeListing+eax*3] + mov [GUIGameDisplayKy],ebx + mov byte[GUIGameDisplayKy+3],0 + mov byte[GUItextcolor],223 + GUIOuttextwin2 3,%1+3,%2+2,GUIGameDisplayKy + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 3,%1+2,%2+1,GUIGameDisplayKy + GUIOuttextwin2 3,%1+2,%2+1,GUIGameDisplayKy %endmacro %macro GUIInputDispKey 2 - mov eax,[edi] - mov [GUIInputTextE],eax - push edi - DGOptnsDrawBox2 %1,%2,[GUIInputTextE] - pop edi - add edi,4 + mov eax,[edi] + mov [GUIInputTextE],eax + push edi + DGOptnsDrawBox2 %1,%2,[GUIInputTextE] + pop edi + add edi,4 %endmacro DisplayGUIInput: ; Player Select, Joystick/keyboard Type List, Button Assignments - GUIDrawWindowBox 3,GUIInputDisp + GUIDrawWindowBox 3,GUIInputDisp + xor eax,eax + mov eax,[GUIInputTabs] + dec al + mov [cplayernum],al + GUIDrawTab 3,GUIInputTabs - mov al,[cplayernum] - add al,'1' - mov [GUIInputTextA1+8],al - GUIDisplayTextY 3,6,16,GUIInputTextA1 - GUIDisplayTextY 3,6,26,GUIInputTextA2 - xor eax,eax - mov al,[cplayernum] - mov ebx,[GUIInputRefP+eax*4] - mov al,[ebx] - mov al,[GUIInputRefB+eax] - mov ebx,eax - shl eax,4 - add eax,ebx - add eax,GUIInputNames - mov [GUITemp],eax - GUIDisplayTextY 3,6+24,83,[GUITemp] - GUIDisplayTextY 3,6,83,GUIInputTextA3 + GUIDisplayTextY 3,6,26,GUIInputTextA + xor eax,eax + mov al,[cplayernum] + mov ebx,[GUIInputRefP+eax*4] + mov al,[ebx] + mov al,[GUIInputRefB+eax] + mov ebx,eax + shl eax,4 + add eax,ebx + add eax,GUIInputNames + mov [GUITemp],eax + GUIDisplayTextY 3,6+54,83,[GUITemp] ; CDV + GUIDisplayTextY 3,6,83,GUIInputTextA1 - GUIDisplayTextY 3,6,92,GUIInputTextB - GUIDisplayText 3,6,102,GUIInputTextB1 - GUIDisplayText 3,6,112,GUIInputTextB2 - GUIDisplayText 3,6,122,GUIInputTextB3 - GUIDisplayText 3,6,132,GUIInputTextB4 - GUIDisplayText 3,6,142,GUIInputTextB5 - GUIDisplayText 3,6,152,GUIInputTextB6 + GUIDisplayTextY 3,6,97,GUIInputTextB + GUIDisplayText 3,6,107,GUIInputTextB1 + GUIDisplayText 3,6,117,GUIInputTextB2 + GUIDisplayText 3,6,127,GUIInputTextB3 + GUIDisplayText 3,6,137,GUIInputTextB4 + GUIDisplayText 3,6,147,GUIInputTextB5 + GUIDisplayText 3,6,157,GUIInputTextB6 - GUIDisplayText 3,76,102,GUIInputTextC1 - GUIDisplayText 3,76,112,GUIInputTextC2 - GUIDisplayText 3,76,122,GUIInputTextC3 - GUIDisplayText 3,76,132,GUIInputTextC4 - GUIDisplayText 3,76,142,GUIInputTextC5 - GUIDisplayText 3,76,152,GUIInputTextC6 + GUIDisplayText 3,76,107,GUIInputTextC1 + GUIDisplayText 3,76,117,GUIInputTextC2 + GUIDisplayText 3,76,127,GUIInputTextC3 + GUIDisplayText 3,76,137,GUIInputTextC4 + GUIDisplayText 3,76,147,GUIInputTextC5 + GUIDisplayText 3,76,157,GUIInputTextC6 - GUIDisplayTextY 3,116,92,GUIInputTextC - GUIDisplayText 3,156,102,GUIInputTextC1 - GUIDisplayText 3,156,112,GUIInputTextC2 - GUIDisplayText 3,156,122,GUIInputTextC6 - GUIDisplayText 3,116,102,GUIInputTextC3 - GUIDisplayText 3,116,112,GUIInputTextC4 - GUIDisplayText 3,116,122,GUIInputTextC5 + GUIDisplayTextY 3,116,97,GUIInputTextC + GUIDisplayText 3,156,107,GUIInputTextC1 + GUIDisplayText 3,156,117,GUIInputTextC2 + GUIDisplayText 3,156,127,GUIInputTextC6 + GUIDisplayText 3,116,107,GUIInputTextC3 + GUIDisplayText 3,116,117,GUIInputTextC4 + GUIDisplayText 3,116,127,GUIInputTextC5 - GUIDisplayTextY 3,116,131,GUIInputTextD - GUIDisplayText 3,153,142,GUIInputTextD1 - GUIDisplayText 3,153,152,GUIInputTextD2 - GUIDisplayText 3,113,142,GUIInputTextD3 - GUIDisplayText 3,113,152,GUIInputTextD4 + GUIDisplayTextY 3,113,137,GUIInputTextD + GUIDisplayText 3,153,147,GUIInputTextD1 + GUIDisplayText 3,153,157,GUIInputTextD2 + GUIDisplayText 3,113,147,GUIInputTextD3 + GUIDisplayText 3,113,157,GUIInputTextD4 %ifdef __MSDOS__ - GUIDisplayText 3,20,167,GUIInputTextE4 -%endif + GUIDisplayText 3,20,167,GUIInputTextE4 -%ifdef __MSDOS__ ; Checkbox - mov dword[GUITemp],GUIIconDataCheckBoxUC - xor eax,eax - mov al,[cplayernum] - cmp byte[pl1p209+eax],0 - je .nocheckbox2 - mov dword[GUITemp],GUIIconDataCheckBoxC + mov dword[GUITemp],GUIIconDataCheckBoxUC ; Checkbox + xor eax,eax + mov al,[cplayernum] + cmp byte[pl1p209+eax],0 + je .nocheckbox2 + mov dword[GUITemp],GUIIconDataCheckBoxC .nocheckbox2 - GUIDisplayIconWin 3,5,162,[GUITemp] + GUIDisplayIconWin 3,5,162,[GUITemp] %endif - DrawGUIButton 3,125,34,155,45,GUIInputTextE1,14,0,0 ; Buttons + DrawGUIButton 3,123,34,153,45,GUIInputTextE1,14,0,0 ; Buttons + DrawGUIButton 3,123,50,177,61,GUIInputTextE2,40,0,0 %ifdef __MSDOS__ - DrawGUIButton 3,125,50,185,61,GUIInputTextE2,15,0,0 + DrawGUIButton 3,123,66,183,77,GUIInputTextE3,15,0,0 %endif - DrawGUIButton 3,125,66,179,77,GUIInputTextE3,15,0,0 - GUIDisplayBBoxS 3,5,34,107,77,167 ; Main Box - mov ebx,[GUIcurrentinputcursloc] - sub ebx,[GUIcurrentinputviewloc] - mov eax,ebx - lea ebx,[ebx*8] - add ebx,36 - DrawGUIWinBox2 3,5,107,7,224 + GUIDisplayBBoxS 3,5,34,107,77,167 ; Main Box + mov ebx,[GUIcurrentinputcursloc] + sub ebx,[GUIcurrentinputviewloc] + mov eax,ebx + lea ebx,[ebx*8] + add ebx,36 + DrawGUIWinBox2 3,5,107,7,224 - mov eax,[GUIcurrentinputviewloc] ; Text&Shadow inside Main Box - shl eax,4 - add eax,[GUIcurrentinputviewloc] - add eax,GUIInputNames - mov [GUITemp],eax - GUIDisplayTextG 3,11,38,[GUITemp] - add dword[GUITemp],17 - GUIDisplayTextG 3,11,38+8,[GUITemp] - add dword[GUITemp],17 - GUIDisplayTextG 3,11,38+8*2,[GUITemp] - add dword[GUITemp],17 - GUIDisplayTextG 3,11,38+8*3,[GUITemp] - add dword[GUITemp],17 - GUIDisplayTextG 3,11,38+8*4,[GUITemp] + mov eax,[GUIcurrentinputviewloc] ; Text&Shadow inside Main Box + shl eax,4 + add eax,[GUIcurrentinputviewloc] + add eax,GUIInputNames + mov [GUITemp],eax + GUIDisplayTextG 3,11,38,[GUITemp] + add dword[GUITemp],17 + GUIDisplayTextG 3,11,38+8,[GUITemp] + add dword[GUITemp],17 + GUIDisplayTextG 3,11,38+8*2,[GUITemp] + add dword[GUITemp],17 + GUIDisplayTextG 3,11,38+8*3,[GUITemp] + add dword[GUITemp],17 + GUIDisplayTextG 3,11,38+8*4,[GUITemp] - ; Sidebar - DrawSlideBarWin 3,109,42,[GUIcurrentinputviewloc],[NumInputDevices],5,28,GUIIStA - cmp byte[GUICHold],9 - jne .noholda - add byte[GUIWincoladd],3 + ; Sidebar + DrawSlideBarWin 3,109,42,[GUIcurrentinputviewloc],[NumInputDevices],5,28,GUIIStA + cmp byte[GUICHold],9 + jne .noholda + add byte[GUIWincoladd],3 .noholda - GUIDisplayIconWin 3,109,34,GUIIconDataUpArrow - cmp byte[GUICHold],9 - jne .noholda2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 3,109,34,GUIIconDataUpArrow + cmp byte[GUICHold],9 + jne .noholda2 + sub byte[GUIWincoladd],3 .noholda2 - cmp byte[GUICHold],10 - jne .noholdb - add byte[GUIWincoladd],3 + cmp byte[GUICHold],10 + jne .noholdb + add byte[GUIWincoladd],3 .noholdb - GUIDisplayIconWin 3,109,70,GUIIconDataDownArrow - cmp byte[GUICHold],10 - jne .noholdb2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 3,109,70,GUIIconDataDownArrow + cmp byte[GUICHold],10 + jne .noholdb2 + sub byte[GUIWincoladd],3 .noholdb2 - mov edi,pl1selk ; Hotkey Boxes - cmp byte[cplayernum],1 - jne .nopl2 - mov edi,pl2selk + mov edi,pl1selk ; Hotkey Boxes + cmp byte[cplayernum],1 + jne .nopl2 + mov edi,pl2selk .nopl2 - cmp byte[cplayernum],2 - jne .nopl3 - mov edi,pl3selk + cmp byte[cplayernum],2 + jne .nopl3 + mov edi,pl3selk .nopl3 - cmp byte[cplayernum],3 - jne .nopl4 - mov edi,pl4selk + cmp byte[cplayernum],3 + jne .nopl4 + mov edi,pl4selk .nopl4 - cmp byte[cplayernum],4 - jne .nopl5 - mov edi,pl5selk + cmp byte[cplayernum],4 + jne .nopl5 + mov edi,pl5selk .nopl5 - GUIInputDispKey 45,150 ; Select - GUIInputDispKey 45,140 ; Start - GUIInputDispKey 45,100 ; Up - GUIInputDispKey 45,110 ; Down - GUIInputDispKey 45,120 ; Left - GUIInputDispKey 45,130 ; Right - GUIInputDispKey 85,120 ; X - GUIInputDispKey 85,100 ; A - GUIInputDispKey 85,140 ; L - GUIInputDispKey 85,130 ; Y - GUIInputDispKey 85,110 ; B - GUIInputDispKey 85,150 ; R + GUIInputDispKey 45,155 ; Select + GUIInputDispKey 45,145 ; Start + GUIInputDispKey 45,105 ; Up + GUIInputDispKey 45,115 ; Down + GUIInputDispKey 45,125 ; Left + GUIInputDispKey 45,135 ; Right + GUIInputDispKey 85,125 ; X + GUIInputDispKey 85,105 ; A + GUIInputDispKey 85,145 ; L + GUIInputDispKey 85,135 ; Y + GUIInputDispKey 85,115 ; B + GUIInputDispKey 85,155 ; R - mov edi,pl1Atk - cmp byte[cplayernum],1 - jne .nopl2t - mov edi,pl2Atk + mov edi,pl1Atk + cmp byte[cplayernum],1 + jne .nopl2t + mov edi,pl2Atk .nopl2t - cmp byte[cplayernum],2 - jne .nopl3t - mov edi,pl3Atk + cmp byte[cplayernum],2 + jne .nopl3t + mov edi,pl3Atk .nopl3t - cmp byte[cplayernum],3 - jne .nopl4t - mov edi,pl4Atk + cmp byte[cplayernum],3 + jne .nopl4t + mov edi,pl4Atk .nopl4t - cmp byte[cplayernum],4 - jne .nopl5t - mov edi,pl5Atk + cmp byte[cplayernum],4 + jne .nopl5t + mov edi,pl5Atk .nopl5t - GUIInputDispKey 165,100 ; A Turbo - GUIInputDispKey 165,110 ; B Turbo - GUIInputDispKey 125,100 ; X Turbo - GUIInputDispKey 125,110 ; Y Turbo + GUIInputDispKey 165,105 ; A Turbo + GUIInputDispKey 165,115 ; B Turbo + GUIInputDispKey 125,105 ; X Turbo + GUIInputDispKey 125,115 ; Y Turbo - mov edi,pl1Ltk - cmp byte[cplayernum],1 - jne .nopl2tl - mov edi,pl2Ltk + mov edi,pl1Ltk + cmp byte[cplayernum],1 + jne .nopl2tl + mov edi,pl2Ltk .nopl2tl - cmp byte[cplayernum],2 - jne .nopl3tl - mov edi,pl3Ltk + cmp byte[cplayernum],2 + jne .nopl3tl + mov edi,pl3Ltk .nopl3tl - cmp byte[cplayernum],3 - jne .nopl4tl - mov edi,pl4Ltk + cmp byte[cplayernum],3 + jne .nopl4tl + mov edi,pl4Ltk .nopl4tl - cmp byte[cplayernum],4 - jne .nopl5tl - mov edi,pl5Ltk + cmp byte[cplayernum],4 + jne .nopl5tl + mov edi,pl5Ltk .nopl5tl - GUIInputDispKey 125,120 ; L Turbo - GUIInputDispKey 165,120 ; R Turbo + GUIInputDispKey 125,125 ; L Turbo + GUIInputDispKey 165,125 ; R Turbo - mov edi,pl1ULk - cmp byte[cplayernum],1 - jne .nopl2tb - mov edi,pl2ULk + mov edi,pl1ULk + cmp byte[cplayernum],1 + jne .nopl2tb + mov edi,pl2ULk .nopl2tb - cmp byte[cplayernum],2 - jne .nopl3tb - mov edi,pl3ULk + cmp byte[cplayernum],2 + jne .nopl3tb + mov edi,pl3ULk .nopl3tb - cmp byte[cplayernum],3 - jne .nopl4tb - mov edi,pl4ULk + cmp byte[cplayernum],3 + jne .nopl4tb + mov edi,pl4ULk .nopl4tb - cmp byte[cplayernum],4 - jne .nopl5tb - mov edi,pl5ULk + cmp byte[cplayernum],4 + jne .nopl5tb + mov edi,pl5ULk .nopl5tb - GUIInputDispKey 165,140 ; Up-Left - GUIInputDispKey 165,150 ; Up-Right - GUIInputDispKey 125,140 ; Down-Left - GUIInputDispKey 125,150 ; Down-Right + GUIInputDispKey 165,145 ; Up-Left + GUIInputDispKey 165,155 ; Up-Right + GUIInputDispKey 125,145 ; Down-Left + GUIInputDispKey 125,155 ; Down-Right - DGOptnsBorderBox 3,44,99 ; Draw Borders - DGOptnsBorderBox 3,44,109 - DGOptnsBorderBox 3,44,119 - DGOptnsBorderBox 3,44,129 - DGOptnsBorderBox 3,44,139 - DGOptnsBorderBox 3,44,149 - DGOptnsBorderBox 3,84,99 - DGOptnsBorderBox 3,84,109 - DGOptnsBorderBox 3,84,119 - DGOptnsBorderBox 3,84,129 - DGOptnsBorderBox 3,84,139 - DGOptnsBorderBox 3,84,149 - DGOptnsBorderBox 3,124,99 - DGOptnsBorderBox 3,124,109 - DGOptnsBorderBox 3,124,119 - DGOptnsBorderBox 3,124,139 - DGOptnsBorderBox 3,124,149 - DGOptnsBorderBox 3,164,99 - DGOptnsBorderBox 3,164,109 - DGOptnsBorderBox 3,164,119 - DGOptnsBorderBox 3,164,139 - DGOptnsBorderBox 3,164,149 - ret + DGOptnsBorderBox 3,44,104 ; Box borders, keep them at bottom + DGOptnsBorderBox 3,44,114 + DGOptnsBorderBox 3,44,124 + DGOptnsBorderBox 3,44,134 + DGOptnsBorderBox 3,44,144 + DGOptnsBorderBox 3,44,154 + DGOptnsBorderBox 3,84,104 + DGOptnsBorderBox 3,84,114 + DGOptnsBorderBox 3,84,124 + DGOptnsBorderBox 3,84,134 + DGOptnsBorderBox 3,84,144 + DGOptnsBorderBox 3,84,154 + DGOptnsBorderBox 3,164,104 + DGOptnsBorderBox 3,164,114 + DGOptnsBorderBox 3,124,104 + DGOptnsBorderBox 3,124,114 + DGOptnsBorderBox 3,124,124 + DGOptnsBorderBox 3,164,124 + DGOptnsBorderBox 3,164,144 + DGOptnsBorderBox 3,164,154 + DGOptnsBorderBox 3,124,144 + DGOptnsBorderBox 3,124,154 + ret SECTION .data +GUIInputTabs dd 1,5 + db '#1',0 + db '#2',0 + db '#3',0 + db '#4',0 + db '#5',0 + GUIInputRefF db 0,1,2,3,5,18,6,7,8,9,10,11,14,15,16,17 GUIInputRefB db 0,1,2,3,3,4,6,7,8,9,10,11,11,11,12,13,14,15,5 GUIInputRefP dd pl1contrl,pl2contrl,pl3contrl,pl4contrl,pl5contrl -GUIInputTextA1 db 'PLAYER # CONTROL :',0 -GUIInputTextA2 db 'DEVICE :',0 -GUIInputTextA3 db 'CDV:',0 +GUIInputTextA db 'DEVICE:',0 +GUIInputTextA1 db 'CURRENT:',0 -GUIInputTextB db 'KEYS :',0 +GUIInputTextB db 'KEYS:',0 GUIInputTextB1 db ' UP',0 GUIInputTextB2 db ' DOWN',0 GUIInputTextB3 db ' LEFT',0 @@ -1322,8 +1523,7 @@ GUIInputTextB4 db ' RIGHT',0 GUIInputTextB5 db ' START',0 GUIInputTextB6 db 'SELECT',0 - -GUIInputTextC db 'TURBO :',0 +GUIInputTextC db 'TURBO:',0 GUIInputTextC1 db 'A',0 GUIInputTextC2 db 'B',0 GUIInputTextC3 db 'X',0 @@ -1331,7 +1531,7 @@ GUIInputTextC4 db 'Y',0 GUIInputTextC5 db 'L',0 GUIInputTextC6 db 'R',0 -GUIInputTextD db 'DIAGONALS :',0 +GUIInputTextD db 'DIAGONALS:',0 GUIInputTextD1 db 'UL',0 GUIInputTextD2 db 'UR',0 GUIInputTextD3 db 'DL',0 @@ -1339,11 +1539,10 @@ GUIInputTextD4 db 'DR',0 GUIInputTextE dd 0 GUIInputTextE1 db 'SET',0 -GUIInputTextE2 db 'CALIBRATE',0 -GUIInputTextE3 db 'SET KEYS',0 +GUIInputTextE2 db 'SET KEYS',0 +GUIInputTextE3 db 'CALIBRATE',0 GUIInputTextE4 db 'USE JOYSTICK PORT 209H',0 - SECTION .bss GUIIStA resd 3 GUIcurrentinputviewloc resd 1 @@ -1351,35 +1550,34 @@ GUIcurrentinputcursloc resd 1 SECTION .text -DisplayGUIOption: ; Frame Rate/Auto Frame Rate/Max Frame Skip/New Gfx Engine - GUIDrawWindowBox 4,GUIOptionDisp +DisplayGUIOption: ; Emu Options + GUIDrawWindowBox 4,GUIOptionDisp - GUIDisplayCheckboxu 4,11,30,newengen,GUIOptionText3,0 - GUIDisplayCheckboxu 4,11,40,MMXSupport,GUIOptionText4,0 - GUIDisplayCheckboxu 4,11,50,pl12s34,GUIOptionText5,0 + GUIDisplayCheckboxu 4,11,30,newengen,GUIOptionText3,0 + GUIDisplayCheckboxu 4,11,40,MMXSupport,GUIOptionText4,0 + GUIDisplayCheckboxu 4,11,50,pl12s34,GUIOptionText5,0 %ifdef __MSDOS__ - GUIDisplayCheckboxu 4,11,60,SidewinderFix,GUIOptionText6,1 + GUIDisplayCheckboxu 4,11,60,SidewinderFix,GUIOptionText6,1 %endif %ifdef __WIN32__ - GUIDisplayCheckboxu 4,11,60,HighPriority,GUIOptionText6b,0 + GUIDisplayCheckboxu 4,11,60,HighPriority,GUIOptionText6b,0 %endif - GUIDisplayCheckboxu 4,11,70,FPSAtStart,GUIOptionText7,0 - GUIDisplayCheckboxu 4,11,80,Turbo30hz,GUIOptionText8,2 - GUIDisplayCheckboxu 4,11,90,TimerEnable,GUIOptionText9,12 - GUIDisplayCheckboxu 4,11,100,OldGfxMode2,GUIOptionTextA,0 - GUIDisplayCheckboxu 4,11,110,DontSavePath,GUIOptionTextB,0 - GUIDisplayCheckboxu 4,11,120,SmallMsgText,GUIOptionTextC,1 - GUIDisplayCheckboxu 4,11,130,AutoPatch,GUIOptionTextD,12 - GUIDisplayCheckboxu 4,11,140,RomInfo,GUIOptionTextE,15 - GUIDisplayCheckboxu 4,11,150,AllowUDLR,GUIOptionTextF,0 + GUIDisplayCheckboxu 4,11,70,FPSAtStart,GUIOptionText7,0 + GUIDisplayCheckboxu 4,11,80,Turbo30hz,GUIOptionText8,2 + GUIDisplayCheckboxu 4,11,90,TimerEnable,GUIOptionText9,12 + GUIDisplayCheckboxu 4,11,100,OldGfxMode2,GUIOptionTextA,0 + GUIDisplayCheckboxu 4,11,110,DontSavePath,GUIOptionTextB,0 + GUIDisplayCheckboxu 4,11,120,SmallMsgText,GUIOptionTextC,1 + GUIDisplayCheckboxu 4,11,130,AutoPatch,GUIOptionTextD,12 + GUIDisplayCheckboxu 4,11,140,RomInfo,GUIOptionTextE,15 + GUIDisplayCheckboxu 4,11,150,AllowUDLR,GUIOptionTextF,0 %ifndef __MSDOS__ - GUIDisplayCheckboxu 4,11,160,PauseFocusChange,GUIOptionTextG,13 + GUIDisplayCheckboxu 4,11,160,PauseFocusChange,GUIOptionTextG,13 %endif %ifdef __WIN32__ - GUIDisplayCheckboxu 4,11,170,DisableScreenSaver,GUIOptionTextW,1 + GUIDisplayCheckboxu 4,11,170,DisableScreenSaver,GUIOptionTextW,1 %endif - ret - + ret SECTION .data GUIOptionText3 db 'NEW GFX ENGINE',0 @@ -1397,7 +1595,7 @@ GUIOptionTextD db 'ENABLE AUTO-PATCH',0 GUIOptionTextE db 'ENABLE ROMINFO.TXT',0 GUIOptionTextF db 'ALLOW U+D/L+R',0 GUIOptionTextG db 'PAUSE EMU IN BACKGROUND',0 -GUIOptionTextW db 'DISABLE SCREENSAVER',0 ; Try to keep as last option, since its Win Only. +GUIOptionTextW db 'DISABLE SCREENSAVER',0 ; keep as last option, Win Only GUIOptionTextX db '-',0 GUIOptionTextY db '+',0 GUIOptionTextZ db '-',0 @@ -1405,274 +1603,285 @@ GUIOptionTextZ db '-',0 SECTION .text DisplayGUIVideo: - cmp byte[TripBufAvail],0 ; Check features - jne .notexttb - mov byte[Triplebufen],0 + cmp byte[TripBufAvail],0 ; Check features + jne .notexttb + mov byte[Triplebufen],0 .notexttb - cmp byte[MMXSupport],1 - jne .2xSaIdis - cmp byte[newgfx16b],0 - je .2xSaIdis - jmp .no2xSaIdis + cmp byte[MMXSupport],1 + jne .2xSaIdis + cmp byte[newgfx16b],0 + je .2xSaIdis + jmp .no2xSaIdis .2xSaIdis - mov byte[En2xSaI],0 - mov byte[hqFilter],0 + mov byte[En2xSaI],0 + mov byte[hqFilter],0 .no2xSaIdis - cmp byte[En2xSaI],0 - je .no2xsaidis - mov byte[Triplebufen],0 + cmp byte[En2xSaI],0 + je .no2xsaidis + mov byte[Triplebufen],0 .no2xsaidis - cmp byte[En2xSaI],0 - je .no2xsaien - mov byte[hqFilter],0 - mov byte[scanlines],0 - mov byte[antienab],0 + cmp byte[En2xSaI],0 + je .no2xsaien + mov byte[hqFilter],0 + mov byte[scanlines],0 + mov byte[antienab],0 .no2xsaien - cmp byte[hqFilter],0 - je .nohq3xen - mov byte[En2xSaI],0 - mov byte[scanlines],0 - mov byte[antienab],0 + cmp byte[hqFilter],0 + je .nohq3xen + mov byte[En2xSaI],0 + mov byte[scanlines],0 + mov byte[antienab],0 .nohq3xen + xor ebx,ebx + mov bl,[NTSCFilter] + add ebx,2 + mov [GUIVideoTabs+4],ebx + GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options - GUIDrawWindowBox 5,GUIVideoDisp ; Video Modes List/Options + GUIDrawTab 5,GUIVideoTabs - DrawGUIButton 5,128,60,164,71,GUIVideoText8,4,0,0 ; Set Button - - GUIDisplayTextY 5,6,16,GUIVideoTextA ; Video Modes : (Yellow) + cmp dword[GUIVideoTabs],1 + jne near .notmodestab + DrawGUIButton 5,128,60,164,71,GUIVideoText8,4,0,0 ; Set Button %ifndef __MSDOS__ ; Legend - GUIDisplayText 5,8,76,GUIVideoTextB - GUIDisplayText 5,10,85,GUIVideoTextB1 - GUIDisplayText 5,10,92,GUIVideoTextB2 - GUIDisplayText 5,10,99,GUIVideoTextB3 + GUIDisplayText 5,8,76,GUIVideoTextB + GUIDisplayText 5,10,85,GUIVideoTextB1 + GUIDisplayText 5,10,92,GUIVideoTextB2 + GUIDisplayText 5,10,99,GUIVideoTextB3 %endif %ifdef __UNIXSDL__ - GUIDisplayText 5,10,106,GUIVideoTextB4 + GUIDisplayText 5,10,106,GUIVideoTextB4 %endif - xor eax,eax ; 100% Scanlines - mov al,[cvidmode] - cmp byte[GUISLVID+eax],0 - je near .notext2 + GUIDisplayBBoxS 5,5,26,115,69,167 ; Video Modes Box + DrawSlideBarWin 5,117,34,[GUIcurrentvideoviewloc],[NumVideoModes],5,28,GUIVStA + cmp byte[GUICHold],5 ; Scrollbar + jne .noholda + add byte[GUIWincoladd],3 +.noholda + GUIDisplayIconWin 5,117,26,GUIIconDataUpArrow + cmp byte[GUICHold],5 + jne .noholdb + sub byte[GUIWincoladd],3 +.noholdb + cmp byte[GUICHold],6 + jne .noholdc + add byte[GUIWincoladd],3 +.noholdc + GUIDisplayIconWin 5,117,62,GUIIconDataDownArrow + cmp byte[GUICHold],6 + jne .noholdd + sub byte[GUIWincoladd],3 +.noholdd + + mov ebx,[GUIcurrentvideocursloc] ; Box + sub ebx,[GUIcurrentvideoviewloc] + lea ebx,[ebx*8] + add ebx,28 + DrawGUIWinBox2 5,5,115,7,224 + + mov byte[GUItextcolor],223 ; Shadow in Box + mov eax,[GUIcurrentvideoviewloc] + mov ebx,eax + shl eax,4 + add eax,ebx + add eax,ebx + add eax,GUIVideoModeNames + mov [GUITemp],eax + GUIDisplayTextG 5,11,30,[GUITemp] + add dword[GUITemp],18 + GUIDisplayTextG 5,11,30+8,[GUITemp] + add dword[GUITemp],18 + GUIDisplayTextG 5,11,30+8*2,[GUITemp] + add dword[GUITemp],18 + GUIDisplayTextG 5,11,30+8*3,[GUITemp] + add dword[GUITemp],18 + GUIDisplayTextG 5,11,30+8*4,[GUITemp] + + xor eax,eax ; Mode Value + mov al,[cvidmode] + mov ebx,eax + shl eax,4 + add eax,ebx + add eax,ebx + add eax,GUIVideoModeNames + mov [GUITemp],eax + GUIDisplayTextY 5,7,194,GUIVideoTextE + GUIDisplayTextY 5,61,194,[GUITemp] +.notmodestab + + cmp dword[GUIVideoTabs],2 + jne near .notfilterstab + xor eax,eax ; 100% Scanlines + mov al,[cvidmode] + cmp byte[GUISLVID+eax],0 + je near .notext2 %ifdef __UNIXSDL__ - GUIDisplayText 5,13,116,GUIVideoTextC + GUIDisplayText 5,13,116,GUIVideoTextC %else - GUIDisplayText 5,13,111,GUIVideoTextC + GUIDisplayText 5,13,111,GUIVideoTextC %endif .notext2 ; Interpol. - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIINVID+eax],0 - je near .notext3 - GUIDisplayCheckboxu 5,11,78,antienab,GUIVideoText3,0 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIINVID+eax],0 + je near .notext3 + GUIDisplayCheckboxu 5,11,78,antienab,GUIVideoText3,0 .notext3 ; Eagle Eng. - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIEAVID+eax],0 - je near .notext4 - GUIDisplayCheckboxu 5,11,78,antienab,GUIVideoText4,9 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIEAVID+eax],0 + je near .notext4 + GUIDisplayCheckboxu 5,11,78,antienab,GUIVideoText4,9 .notext4 ; Full/Widescreen - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIFSVID+eax],0 - je near .notext5 - cmp byte[GUIWSVID+eax],0 - je near .notext4a - GUIDisplayCheckboxu 5,11,88,ScreenScale,GUIVideoText5b,6 - jmp .notext5 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIFSVID+eax],0 + je near .notext5 + cmp byte[GUIWSVID+eax],0 + je near .notext4a + GUIDisplayCheckboxu 5,11,88,ScreenScale,GUIVideoText5b,6 + jmp .notext5 .notext4a - GUIDisplayCheckboxu 5,11,88,ScreenScale,GUIVideoText5,6 + GUIDisplayCheckboxu 5,11,88,ScreenScale,GUIVideoText5,6 .notext5 ; 2x - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIHQ2X+eax],0 - je near .notexthq2xa - cmp byte[MMXSupport],0 - je near .notexthq2xa - GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq2x,1 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIHQ2X+eax],0 + je near .notexthq2xa + cmp byte[MMXSupport],0 + je near .notexthq2xa + GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq2x,1 .notexthq2xa ; 3x - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIHQ3X+eax],0 - je near .notexthq3xa - cmp byte[MMXSupport],0 - je near .notexthq3xa - GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq3x,1 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIHQ3X+eax],0 + je near .notexthq3xa + cmp byte[MMXSupport],0 + je near .notexthq3xa + GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq3x,1 .notexthq3xa ; 4x - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIHQ4X+eax],0 - je near .notexthq4xa - cmp byte[MMXSupport],0 - je near .notexthq4xa - GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq4x,1 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIHQ4X+eax],0 + je near .notexthq4xa + cmp byte[MMXSupport],0 + je near .notexthq4xa + GUIDisplayCheckboxu 5,115,163,hqFilter,GUIVideoTexthq4x,1 .notexthq4xa - xor eax,eax ; Checkboxes - mov al,[cvidmode] - cmp byte[GUISLVID+eax],0 - je near .nocheckboxb + xor eax,eax ; Checkboxes + mov al,[cvidmode] + cmp byte[GUISLVID+eax],0 + je near .nocheckboxb %ifdef __UNIXSDL__ - GUIDisplayCheckboxun 5,21,119,scanlines,1,GUIVideoTextC1,0 + GUIDisplayCheckboxun 5,21,119,scanlines,1,GUIVideoTextC1,0 %else - GUIDisplayCheckboxun 5,21,114,scanlines,1,GUIVideoTextC1,0 + GUIDisplayCheckboxun 5,21,114,scanlines,1,GUIVideoTextC1,0 %endif .nocheckboxb - xor eax,eax - mov al,[cvidmode] - cmp byte[GUIHSVID+eax],0 - je near .nocheckboxw + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIHSVID+eax],0 + je near .nocheckboxw %ifdef __UNIXSDL__ - GUIDisplayCheckboxun 5,61,119,scanlines,3,GUIVideoTextC2,0 + GUIDisplayCheckboxun 5,61,119,scanlines,3,GUIVideoTextC2,0 + GUIDisplayCheckboxun 5,101,119,scanlines,2,GUIVideoTextC3,0 %else - GUIDisplayCheckboxun 5,61,114,scanlines,3,GUIVideoTextC2,0 -%endif -%ifdef __UNIXSDL__ - GUIDisplayCheckboxun 5,101,119,scanlines,2,GUIVideoTextC3,0 -%else - GUIDisplayCheckboxun 5,101,114,scanlines,2,GUIVideoTextC3,0 + GUIDisplayCheckboxun 5,61,114,scanlines,3,GUIVideoTextC2,0 + GUIDisplayCheckboxun 5,101,114,scanlines,2,GUIVideoTextC3,0 %endif .nocheckboxw - xor eax,eax - mov al,[cvidmode] - cmp byte[GUITBWVID+eax],0 - je near .nocheckboxslw2 - GUIDisplayCheckboxu 5,11,123,TripleBufferWin,GUIVideoText7,0 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUITBWVID+eax],0 + je near .nocheckboxslw2 + GUIDisplayCheckboxu 5,11,123,TripleBufferWin,GUIVideoText7,0 .nocheckboxslw2 - xor eax,eax - mov al,[cvidmode] - cmp byte[GUI2xVID+eax],0 - je near .nocheckboxx - cmp byte[MMXSupport],0 - je near .nocheckboxx - GUIDisplayCheckboxun 5,11,133,En2xSaI,1,GUIVideoTextc,1 - GUIDisplayCheckboxun 5,11,143,En2xSaI,2,GUIVideoTextd,6 - GUIDisplayCheckboxun 5,11,153,En2xSaI,3,GUIVideoTextd2,0 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUI2xVID+eax],0 + je near .nocheckboxx + cmp byte[MMXSupport],0 + je near .nocheckboxx + GUIDisplayCheckboxun 5,11,133,En2xSaI,1,GUIVideoTextc,1 + GUIDisplayCheckboxun 5,11,143,En2xSaI,2,GUIVideoTextd,6 + GUIDisplayCheckboxun 5,11,153,En2xSaI,3,GUIVideoTextd2,0 .nocheckboxx - xor eax,eax - mov al,[cvidmode] - cmp byte[GUII2VID+eax],0 - je near .nocheckboxi2 - GUIDisplayCheckboxu 5,11,163,antienab,GUIVideoText3,0 + 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 - mov al,[cvidmode] - cmp byte[GUIBIFIL+eax],0 - je near .nocheckboxe - GUIDisplayCheckboxu 5,11,163,BilinearFilter,GUIVideoTextbf,0 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIBIFIL+eax],0 + je near .nocheckboxe + GUIDisplayCheckboxu 5,11,163,BilinearFilter,GUIVideoTextbf,0 .nocheckboxe - xor eax,eax - mov al,[cvidmode] - cmp byte[GUINTSC+eax],0 - je near .nocheckboxbf - GUIDisplayCheckboxu 5,115,173,NTSCFilter,GUIVideoTexte,0 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUINTSC+eax],0 + je near .nocheckboxbf + GUIDisplayCheckboxu 5,115,173,NTSCFilter,GUIVideoTexte,0 .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 + 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 - mov al,[cvidmode] - cmp byte[GUIM7VID+eax],0 - je near .nocheckboxm72 - cmp byte[newengen],0 - je near .nocheckboxm72 - GUIDisplayCheckboxu 5,11,173,Mode7HiRes16b,GUIVideoText8b,0 + xor eax,eax + mov al,[cvidmode] + cmp byte[GUIM7VID+eax],0 + je near .nocheckboxm72 + cmp byte[newengen],0 + je near .nocheckboxm72 + GUIDisplayCheckboxu 5,11,173,Mode7HiRes16b,GUIVideoText8b,0 .nocheckboxm72 - GUIDisplayCheckboxu 5,11,183,GrayscaleMode,GUIVideoText8c,0 + GUIDisplayCheckboxu 5,11,183,GrayscaleMode,GUIVideoText8c,0 %ifndef __UNIXSDL__ - GUIDisplayCheckboxu 5,115,183,vsyncon,GUIVideoText9,0 + GUIDisplayCheckboxu 5,115,183,vsyncon,GUIVideoText9,0 %endif .nocheckbox2b - xor eax,eax - mov al,[cvidmode] - cmp byte[GUISSVID+eax],0 - je near .nocheckbox3b - GUIDisplayCheckboxu 5,11,98,smallscreenon,GUIVideoText6,1 - -.nocheckbox3b ; Video Modes Box - GUIDisplayBBoxS 5,5,26,115,69,167 - DrawSlideBarWin 5,117,34,[GUIcurrentvideoviewloc],[NumVideoModes],5,28,GUIVStA - cmp byte[GUICHold],5 ; Scrollbar - jne .noholda - add byte[GUIWincoladd],3 -.noholda - GUIDisplayIconWin 5,117,26,GUIIconDataUpArrow - cmp byte[GUICHold],5 - jne .noholdb - sub byte[GUIWincoladd],3 -.noholdb - cmp byte[GUICHold],6 - jne .noholdc - add byte[GUIWincoladd],3 -.noholdc - GUIDisplayIconWin 5,117,62,GUIIconDataDownArrow - cmp byte[GUICHold],6 - jne .noholdd - sub byte[GUIWincoladd],3 -.noholdd - - mov ebx,[GUIcurrentvideocursloc] ; Box - sub ebx,[GUIcurrentvideoviewloc] - lea ebx,[ebx*8] - add ebx,28 - DrawGUIWinBox2 5,5,115,7,224 - - mov byte[GUItextcolor],223 ; Shadow in Box - mov eax,[GUIcurrentvideoviewloc] - mov ebx,eax - shl eax,4 - add eax,ebx - add eax,ebx - add eax,GUIVideoModeNames - mov [GUITemp],eax - GUIDisplayTextG 5,11,30,[GUITemp] - add dword[GUITemp],18 - GUIDisplayTextG 5,11,30+8,[GUITemp] - add dword[GUITemp],18 - GUIDisplayTextG 5,11,30+8*2,[GUITemp] - add dword[GUITemp],18 - GUIDisplayTextG 5,11,30+8*3,[GUITemp] - add dword[GUITemp],18 - GUIDisplayTextG 5,11,30+8*4,[GUITemp] - - xor eax,eax ; Mode Value - mov al,[cvidmode] - mov ebx,eax - shl eax,4 - add eax,ebx - add eax,ebx - add eax,GUIVideoModeNames - mov [GUITemp],eax - GUIDisplayTextY 5,7,196,GUIVideoTextE - GUIDisplayTextY 5,49,196,[GUITemp] - ret + xor eax,eax + mov al,[cvidmode] + cmp byte[GUISSVID+eax],0 + je near .nocheckbox3b + GUIDisplayCheckboxu 5,11,98,smallscreenon,GUIVideoText6,1 +.nocheckbox3b +.notfilterstab + cmp dword[GUIVideoTabs],3 + jne .notntsctab +.notntsctab + ret SECTION .data - -GUIVideoTextA db 'VIDEO MODES :',0 +GUIVideoTabs dd 1,2 + db 'MODES',0 + db 'FILTERS',0 + db 'NTSC',0 GUIVideoTextB db 'LEGEND:',0 GUIVideoTextB1 db 'S = STRETCH R = KEEP RATIO',0 @@ -1685,7 +1894,7 @@ GUIVideoTextC1 db 'FULL',0 GUIVideoTextC2 db '50%',0 GUIVideoTextC3 db '25%',0 -GUIVideoTextE db 'MODE : ',0 +GUIVideoTextE db 'CURRENT:',0 GUIVideoTextc db '2XSAI ENGINE',0 GUIVideoTextd db 'SUPER EAGLE',0 @@ -1698,16 +1907,15 @@ GUIVideoTexthq2x db 'HQ2X',0 GUIVideoTexthq3x db 'HQ3X',0 GUIVideoTexthq4x db 'HQ4X',0 GUIVideoText5 db 'FULL SCREEN',0 ; -c -GUIVideoText5b db 'WIDE SCREEN',0 ; -c +GUIVideoText5b db 'WIDE SCREEN',0 ; -c GUIVideoText6 db 'SMALL SCREEN',0 ; -c -GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c -GUIVideoText8b db 'HI-RES MODE 7',0 ; -c -GUIVideoText8c db 'GRAYSCALE MODE',0 ; -c +GUIVideoText7 db 'TRIPLE BUFFERING',0 ; -c +GUIVideoText8b db 'HI-RES MODE 7',0 ; -c +GUIVideoText8c db 'GRAYSCALE MODE',0 ; -c GUIVideoText8 db 'SET',0 ; set button -GUIVideoText9 db 'VSYNC',0 ; -c +GUIVideoText9 db 'VSYNC',0 ; -c GUIVideoTexte db 'NTSC',0 - SECTION .bss GUIVStA resd 3 GUIcurrentvideoviewloc resd 1 @@ -1716,110 +1924,110 @@ GUIcurrentvideocursloc resd 1 SECTION .text DisplayGUISound: ; Sound Related Options - GUIDrawWindowBox 6,GUISoundDisp + GUIDrawWindowBox 6,GUISoundDisp - GUIDisplayTextY 6,6,16,GUISoundTextA - GUIDisplayCheckboxu 6,11,21,cfgsoundon,GUISoundTextA1,0 + GUIDisplayTextY 6,6,16,GUISoundTextA + GUIDisplayCheckboxu 6,11,21,cfgsoundon,GUISoundTextA1,0 %ifdef __MSDOS__ - GUIDisplayCheckboxu 6,102,21,cfgforce8b,GUISoundTextA4,1 + GUIDisplayCheckboxu 6,102,21,cfgforce8b,GUISoundTextA4,1 %endif - GUIDisplayCheckboxu 6,11,30,cfgStereoSound,GUISoundTextA2,0 + GUIDisplayCheckboxu 6,11,30,cfgStereoSound,GUISoundTextA2,0 %ifdef __MSDOS__ - GUIDisplayCheckboxu 6,11,39,RaisePitch,GUISoundTextA3,1 + GUIDisplayCheckboxu 6,11,39,RaisePitch,GUISoundTextA3,1 %endif - GUIDisplayTextY 6,6,53,GUISoundTextB - GUIDisplayTextY 6,6,76,GUISoundTextC + GUIDisplayTextY 6,6,53,GUISoundTextB + GUIDisplayTextY 6,6,76,GUISoundTextC %ifdef __WIN32__ - GUIDisplayCheckboxu 6,11,101,PrimaryBuffer,GUISoundTextD1,4 + GUIDisplayCheckboxu 6,11,101,PrimaryBuffer,GUISoundTextD1,4 %endif - GUIDisplayCheckboxu 6,11,111,RevStereo,GUISoundTextD2,2 - GUIDisplayCheckboxu 6,11,121,Surround,GUISoundTextD3,1 - GUIDisplayCheckboxu 6,11,131,SoundBufEn,GUISoundTextD4,6 - GUIDisplayCheckboxu 6,11,141,SPCDisable,GUISoundTextD5,0 + GUIDisplayCheckboxu 6,11,111,RevStereo,GUISoundTextD2,2 + GUIDisplayCheckboxu 6,11,121,Surround,GUISoundTextD3,1 + GUIDisplayCheckboxu 6,11,131,SoundBufEn,GUISoundTextD4,6 + GUIDisplayCheckboxu 6,11,141,SPCDisable,GUISoundTextD5,0 - GUIDisplayTextY 6,6,158,GUISoundTextE - GUIDisplayCheckboxun 6,11,163,SoundInterpType,1,GUISoundTextE1,0 - GUIDisplayCheckboxun 6,11,173,SoundInterpType,2,GUISoundTextE2,0 + GUIDisplayTextY 6,6,158,GUISoundTextE + GUIDisplayCheckboxun 6,11,163,SoundInterpType,1,GUISoundTextE1,0 + GUIDisplayCheckboxun 6,11,173,SoundInterpType,2,GUISoundTextE2,0 %ifndef __MSDOS__ - cmp byte[MMXSupport],0 - je near .no8ptinterp - GUIDisplayCheckboxun 6,11,183,SoundInterpType,3,GUISoundTextE3,0 + cmp byte[MMXSupport],0 + je near .no8ptinterp + GUIDisplayCheckboxun 6,11,183,SoundInterpType,3,GUISoundTextE3,0 .no8ptinterp %endif - GUIDisplayTextY 6,106,158,GUISoundTextF - GUIDisplayCheckboxun 6,111,163,LowPassFilterType,1,GUISoundTextF1,1 - GUIDisplayCheckboxun 6,111,173,LowPassFilterType,2,GUISoundTextF2,1 + GUIDisplayTextY 6,106,158,GUISoundTextF + GUIDisplayCheckboxun 6,111,163,LowPassFilterType,1,GUISoundTextF1,1 + GUIDisplayCheckboxun 6,111,173,LowPassFilterType,2,GUISoundTextF2,1 %ifndef __MSDOS__ - cmp byte[MMXSupport],0 - je near .nohiqualityfilter - GUIDisplayCheckboxun 6,111,183,LowPassFilterType,3,GUISoundTextF3,0 + cmp byte[MMXSupport],0 + je near .nohiqualityfilter + GUIDisplayCheckboxun 6,111,183,LowPassFilterType,3,GUISoundTextF3,0 .nohiqualityfilter %endif - GUIDisplayBBox 6,15,61,69,69,167 ;Sampling Rate Box - mov dword[GUITemp],GUISoundTextB1 - xor eax,eax - mov al,[cfgSoundQuality] - shl eax,3 - add [GUITemp],eax - GUIDisplayTextG 6,23,64,[GUITemp] + GUIDisplayBBox 6,15,61,69,69,167 ;Sampling Rate Box + mov dword[GUITemp],GUISoundTextB1 + xor eax,eax + mov al,[cfgSoundQuality] + shl eax,3 + add [GUITemp],eax + GUIDisplayTextG 6,23,64,[GUITemp] - mov eax,[GUIwinposx+6*4] ; Volume Level Slider - mov ebx,[GUIwinposy+6*4] - mov ecx,eax - add eax,15 - add ecx,15+100 - add ebx,91 - xor edx,edx - mov dl,215 - sub dl,[GUIWincoladd] - DrawGUILine - inc ecx - inc eax - sub dl,13 - DrawGUILine - xor eax,eax - mov al,[MusicRelVol] - mov dword[GUITemp],11 - add [GUITemp],eax - GUIDisplayIconWin 6,[GUITemp],87,GUIIconDataSlideBar - mov dword[GUISoundTextC1],' ' - mov byte[GUISoundTextC1+3],'%' - mov esi,GUISoundTextC1+2 - xor eax,eax - mov al,[MusicRelVol] - mov ebx,10 - div bl - add ah,48 - mov [esi],ah - cmp al,0 - je .nomore - dec esi - xor ah,ah - div bl - add ah,48 - mov [esi],ah - cmp al,0 - je .nomore - dec esi - xor ah,ah - div bl - add ah,48 - mov [esi],ah + mov eax,[GUIwinposx+6*4] ; Volume Level Slider + mov ebx,[GUIwinposy+6*4] + mov ecx,eax + add eax,15 + add ecx,15+100 + add ebx,91 + xor edx,edx + mov dl,215 + sub dl,[GUIWincoladd] + DrawGUILine + inc ecx + inc eax + sub dl,13 + DrawGUILine + xor eax,eax + mov al,[MusicRelVol] + mov dword[GUITemp],11 + add [GUITemp],eax + GUIDisplayIconWin 6,[GUITemp],87,GUIIconDataSlideBar + mov dword[GUISoundTextC1],' ' + mov byte[GUISoundTextC1+3],'%' + mov esi,GUISoundTextC1+2 + xor eax,eax + mov al,[MusicRelVol] + mov ebx,10 + div bl + add ah,48 + mov [esi],ah + cmp al,0 + je .nomore + dec esi + xor ah,ah + div bl + add ah,48 + mov [esi],ah + cmp al,0 + je .nomore + dec esi + xor ah,ah + div bl + add ah,48 + mov [esi],ah .nomore - mov [GUITemp],esi - GUIDisplayTextG 6,119,89,[GUITemp] - ret + mov [GUITemp],esi + GUIDisplayTextG 6,119,89,[GUITemp] + ret SECTION .data -GUISoundTextA db 'SOUND SWITCHES :',0 +GUISoundTextA db 'SOUND SWITCHES:',0 GUISoundTextA1 db 'ENABLE SOUND',0 GUISoundTextA2 db 'STEREO SOUND',0 GUISoundTextA3 db 'RAISE PITCH LEVEL',0 ; DOS Only GUISoundTextA4 db 'FORCE 8-BIT',0 ; DOS Only -GUISoundTextB db 'SAMPLING RATE :',0 +GUISoundTextB db 'SAMPLING RATE:',0 GUISoundTextB1 db ' 8000HZ',0 GUISoundTextB2 db '11025HZ',0 GUISoundTextB3 db '22050HZ',0 @@ -1828,7 +2036,7 @@ GUISoundTextB5 db '16000HZ',0 GUISoundTextB6 db '32000HZ',0 GUISoundTextB7 db '48000HZ',0 -GUISoundTextC db 'VOLUME LEVEL :',0 +GUISoundTextC db 'VOLUME LEVEL:',0 GUISoundTextC1 db '---%',0 GUISoundTextD1 db 'USE PRIMARY BUFFER',0 ; Win Only @@ -1837,12 +2045,12 @@ GUISoundTextD3 db 'SURROUND SOUND',0 GUISoundTextD4 db 'SOUND BUFFERING',0 GUISoundTextD5 db 'DISABLE SPC EMULATION',0 -GUISoundTextE db 'INTERPOLATION :',0 +GUISoundTextE db 'INTERPOLATION:',0 GUISoundTextE1 db 'GAUSSIAN',0 GUISoundTextE2 db 'CUBIC SPLINE',0 GUISoundTextE3 db '8-POINT',0 ; Non-DOS Only -GUISoundTextF db 'LOWPASS :',0 +GUISoundTextF db 'LOWPASS:',0 GUISoundTextF1 db 'SIMPLE',0 GUISoundTextF2 db 'DYNAMIC',0 GUISoundTextF3 db 'HI QUALITY',0 ; Non-DOS Only @@ -1850,247 +2058,247 @@ GUISoundTextF3 db 'HI QUALITY',0 ; Non-DOS Only SECTION .text DisplayGUICheatConv: - mov eax,[ccheatnpos] - add eax,4 - xor ebx,ebx - mov ecx,3 - mov edx,GUICheatTextZ3 + mov eax,[ccheatnpos] + add eax,4 + xor ebx,ebx + mov ecx,3 + mov edx,GUICheatTextZ3 .loop - mov bl,[eax] - and bl,0Fh - mov bl,[GUICheatTextZ4+ebx] - mov [edx+1],bl - mov bl,[eax] - and bl,0F0h - shr bl,4 - mov bl,[GUICheatTextZ4+ebx] - mov [edx],bl - add edx,2 - dec eax - dec ecx - jnz .loop - mov eax,[ccheatnpos] - inc eax - mov edx,GUICheatTextZ3+7 - mov bl,[eax] - and bl,0Fh - mov bl,[GUICheatTextZ4+ebx] - mov [edx+1],bl - mov bl,[eax] - and bl,0F0h - shr bl,4 - mov bl,[GUICheatTextZ4+ebx] - mov [edx],bl - mov eax,[ccheatnpos] - add eax,5 - mov edx,GUICheatTextZ3+10 - mov bl,[eax] - and bl,0Fh - mov bl,[GUICheatTextZ4+ebx] - mov [edx+1],bl - mov bl,[eax] - and bl,0F0h - shr bl,4 - mov bl,[GUICheatTextZ4+ebx] - mov [edx],bl - mov eax,[ccheatnpos] - test byte[eax-28],80h - jnz .src - test byte[eax],04h - jz .on - mov byte[GUICheatTextZ3+13],'O' - mov byte[GUICheatTextZ3+14],'F' - mov byte[GUICheatTextZ3+15],'F' - jmp .off + mov bl,[eax] + and bl,0Fh + mov bl,[GUICheatTextZ4+ebx] + mov [edx+1],bl + mov bl,[eax] + and bl,0F0h + shr bl,4 + mov bl,[GUICheatTextZ4+ebx] + mov [edx],bl + add edx,2 + dec eax + dec ecx + jnz .loop + mov eax,[ccheatnpos] + inc eax + mov edx,GUICheatTextZ3+7 + mov bl,[eax] + and bl,0Fh + mov bl,[GUICheatTextZ4+ebx] + mov [edx+1],bl + mov bl,[eax] + and bl,0F0h + shr bl,4 + mov bl,[GUICheatTextZ4+ebx] + mov [edx],bl + mov eax,[ccheatnpos] + add eax,5 + mov edx,GUICheatTextZ3+10 + mov bl,[eax] + and bl,0Fh + mov bl,[GUICheatTextZ4+ebx] + mov [edx+1],bl + mov bl,[eax] + and bl,0F0h + shr bl,4 + mov bl,[GUICheatTextZ4+ebx] + mov [edx],bl + mov eax,[ccheatnpos] + test byte[eax-28],80h + jnz .src + test byte[eax],04h + jz .on + mov byte[GUICheatTextZ3+13],'O' + mov byte[GUICheatTextZ3+14],'F' + mov byte[GUICheatTextZ3+15],'F' + jmp .off .on - test byte[eax],80h - jnz .repl - mov byte[GUICheatTextZ3+13],'O' - mov byte[GUICheatTextZ3+14],'N' - mov byte[GUICheatTextZ3+15],' ' - jmp .off + test byte[eax],80h + jnz .repl + mov byte[GUICheatTextZ3+13],'O' + mov byte[GUICheatTextZ3+14],'N' + mov byte[GUICheatTextZ3+15],' ' + jmp .off .repl - mov byte[GUICheatTextZ3+13],'R' - mov byte[GUICheatTextZ3+14],'P' - mov byte[GUICheatTextZ3+15],'L' - jmp .off + mov byte[GUICheatTextZ3+13],'R' + mov byte[GUICheatTextZ3+14],'P' + mov byte[GUICheatTextZ3+15],'L' + jmp .off .src - mov byte[GUICheatTextZ3+13],'S' - mov byte[GUICheatTextZ3+14],'R' - mov byte[GUICheatTextZ3+15],'C' + mov byte[GUICheatTextZ3+13],'S' + mov byte[GUICheatTextZ3+14],'R' + mov byte[GUICheatTextZ3+15],'C' .off - mov ecx,20 - add eax,8 - mov edx,GUICheatTextZ3+17 + mov ecx,20 + add eax,8 + mov edx,GUICheatTextZ3+17 .loop2 - mov bl,[eax] - mov [edx],bl - inc eax - inc edx - dec ecx - jnz .loop2 - ret + mov bl,[eax] + mov [edx],bl + inc eax + inc edx + dec ecx + jnz .loop2 + ret %macro GUIOuttextwin2cheat 2 - test dword[ccheatnleft],80000000h - jnz near %%skip - call DisplayGUICheatConv - mov byte[GUItextcolor],223 - GUIOuttextwin2 7,%1,%2,GUICheatTextZ3 - mov byte[GUItextcolor],221 ;Text - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + test dword[ccheatnleft],80000000h + jnz near %%skip + call DisplayGUICheatConv + mov byte[GUItextcolor],223 + GUIOuttextwin2 7,%1,%2,GUICheatTextZ3 + mov byte[GUItextcolor],221 ;Text + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 7,%1-1,%2-1,GUICheatTextZ3 - add dword[ccheatnpos],28 - dec dword[ccheatnleft] + GUIOuttextwin2 7,%1-1,%2-1,GUICheatTextZ3 + add dword[ccheatnpos],28 + dec dword[ccheatnleft] %%skip %endmacro DisplayGUICheat: ; Add/Browse Cheats menu - GUIDrawWindowBox 7,GUICheatDisp + GUIDrawWindowBox 7,GUICheatDisp - GUIDisplayText 7,6,13,GUICheatTextA - GUIDisplayText 7,6,132,GUICheatTextC1 - GUIDisplayText 7,6,143,GUICheatTextC2 - GUIDisplayText 7,11,154,GUICheatTextD1 - GUIDisplayText 7,11,164,GUICheatTextD2 - GUIDisplayText 7,11,172,GUICheatTextD3 - GUIDisplayText 7,11,180,GUICheatTextD4 + GUIDisplayText 7,6,13,GUICheatTextA + GUIDisplayText 7,6,132,GUICheatTextC1 + GUIDisplayText 7,6,143,GUICheatTextC2 + GUIDisplayText 7,11,154,GUICheatTextD1 + GUIDisplayText 7,11,164,GUICheatTextD2 + GUIDisplayText 7,11,172,GUICheatTextD3 + GUIDisplayText 7,11,180,GUICheatTextD4 - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero + mov byte[GUItextcolor],211 .zero - DrawGUIButton 7,5,113,47,124,GUICheatTextB1,5,0,0 ; Draw Buttons - DrawGUIButton 7,52,113,94,124,GUICheatTextB2,6,0,0 - DrawGUIButton 7,99,113,141,124,GUICheatTextB3,7,0,0 - DrawGUIButton 7,146,113,188,124,GUICheatTextB4,8,0,0 - DrawGUIButton 7,193,113,235,124,GUICheatTextB5,33,0,0 - DrawGUIButton 7,212,134,236,145,GUICheatTextB6,9,0,0 + DrawGUIButton 7,5,113,47,124,GUICheatTextB1,5,0,0 ; Draw Buttons + DrawGUIButton 7,52,113,94,124,GUICheatTextB2,6,0,0 + DrawGUIButton 7,99,113,141,124,GUICheatTextB3,7,0,0 + DrawGUIButton 7,146,113,188,124,GUICheatTextB4,8,0,0 + DrawGUIButton 7,193,113,235,124,GUICheatTextB5,33,0,0 + DrawGUIButton 7,212,134,236,145,GUICheatTextB6,9,0,0 - GUIDisplayBBoxS 7,5,20,229,108,167 ; Draw Cheat Box + GUIDisplayBBoxS 7,5,20,229,108,167 ; Draw Cheat Box - cmp dword[GUIcurrentcheatwin],0 ; Red Highlight for Cheats box - jne near .nowinbox - mov ebx,[GUIcurrentcheatcursloc] - sub ebx,[GUIcurrentcheatviewloc] - mov eax,ebx - lea ebx,[ebx*8] - sub ebx,eax - add ebx,22 - DrawGUIWinBox2 7,5,229,7,224 + cmp dword[GUIcurrentcheatwin],0 ; Red Highlight for Cheats box + jne near .nowinbox + mov ebx,[GUIcurrentcheatcursloc] + sub ebx,[GUIcurrentcheatviewloc] + mov eax,ebx + lea ebx,[ebx*8] + sub ebx,eax + add ebx,22 + DrawGUIWinBox2 7,5,229,7,224 .nowinbox - mov dword[ccheatnpos],cheatdata ; Green Text - mov eax,[NumCheats] - sub eax,[GUIcurrentcheatviewloc] - dec eax - mov [ccheatnleft],eax - mov eax,[GUIcurrentcheatviewloc] - mov ebx,eax - shl eax,5 - sub eax,ebx - sub eax,ebx - sub eax,ebx - sub eax,ebx - add [ccheatnpos],eax - GUIOuttextwin2cheat 12,24 - GUIOuttextwin2cheat 12,24+7 - GUIOuttextwin2cheat 12,24+7*2 - GUIOuttextwin2cheat 12,24+7*3 - GUIOuttextwin2cheat 12,24+7*4 - GUIOuttextwin2cheat 12,24+7*5 - GUIOuttextwin2cheat 12,24+7*6 - GUIOuttextwin2cheat 12,24+7*7 - GUIOuttextwin2cheat 12,24+7*8 - GUIOuttextwin2cheat 12,24+7*9 - GUIOuttextwin2cheat 12,24+7*10 - GUIOuttextwin2cheat 12,24+7*11 + mov dword[ccheatnpos],cheatdata ; Green Text + mov eax,[NumCheats] + sub eax,[GUIcurrentcheatviewloc] + dec eax + mov [ccheatnleft],eax + mov eax,[GUIcurrentcheatviewloc] + mov ebx,eax + shl eax,5 + sub eax,ebx + sub eax,ebx + sub eax,ebx + sub eax,ebx + add [ccheatnpos],eax + GUIOuttextwin2cheat 12,24 + GUIOuttextwin2cheat 12,24+7 + GUIOuttextwin2cheat 12,24+7*2 + GUIOuttextwin2cheat 12,24+7*3 + GUIOuttextwin2cheat 12,24+7*4 + GUIOuttextwin2cheat 12,24+7*5 + GUIOuttextwin2cheat 12,24+7*6 + GUIOuttextwin2cheat 12,24+7*7 + GUIOuttextwin2cheat 12,24+7*8 + GUIOuttextwin2cheat 12,24+7*9 + GUIOuttextwin2cheat 12,24+7*10 + GUIOuttextwin2cheat 12,24+7*11 ;Scrollbar - DrawSlideBarWin 7,231,28,[GUIcurrentcheatviewloc],[NumCheats],12,73,GUICStA - cmp byte[GUICHold],7 - jne .noholda - add byte[GUIWincoladd],3 + DrawSlideBarWin 7,231,28,[GUIcurrentcheatviewloc],[NumCheats],12,73,GUICStA + cmp byte[GUICHold],7 + jne .noholda + add byte[GUIWincoladd],3 .noholda - GUIDisplayIconWin 7,231,20,GUIIconDataUpArrow - cmp byte[GUICHold],7 - jne .noholda2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 7,231,20,GUIIconDataUpArrow + cmp byte[GUICHold],7 + jne .noholda2 + sub byte[GUIWincoladd],3 .noholda2 - cmp byte[GUICHold],8 - jne .noholdb - add byte[GUIWincoladd],3 + cmp byte[GUICHold],8 + jne .noholdb + add byte[GUIWincoladd],3 .noholdb - GUIDisplayIconWin 7,231,101,GUIIconDataDownArrow - cmp byte[GUICHold],8 - jne .noholdb2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 7,231,101,GUIIconDataDownArrow + cmp byte[GUICHold],8 + jne .noholdb2 + sub byte[GUIWincoladd],3 .noholdb2 - mov ebx,[GUIcurrentcheatcursloc] ; Draw input boxes - sub ebx,[GUIcurrentcheatviewloc] - mov eax,ebx - lea ebx,[ebx*4] - add ebx,eax - add ebx,eax - add ebx,eax - add ebx,22 + mov ebx,[GUIcurrentcheatcursloc] ; Draw input boxes + sub ebx,[GUIcurrentcheatviewloc] + mov eax,ebx + lea ebx,[ebx*4] + add ebx,eax + add ebx,eax + add ebx,eax + add ebx,22 - mov dl,167 ;Code Box - cmp dword[GUIcurrentcheatwin],1 - jne .notopibox - mov dl,226 - cmp byte[GUIWincoladd],0 - je .nocoladd - inc dl + mov dl,167 ;Code Box + cmp dword[GUIcurrentcheatwin],1 + jne .notopibox + mov dl,226 + cmp byte[GUIWincoladd],0 + je .nocoladd + inc dl .nocoladd .notopibox - GUIDisplayBBox 7,82,129,172,136,dl + GUIDisplayBBox 7,82,129,172,136,dl - mov dl,167 ;Descrip. Box - cmp dword[GUIcurrentcheatwin],2 - jne .nobotibox - mov dl,226 - cmp byte[GUIWincoladd],0 - je .nocoladd2 - inc dl + mov dl,167 ;Descrip. Box + cmp dword[GUIcurrentcheatwin],2 + jne .nobotibox + mov dl,226 + cmp byte[GUIWincoladd],0 + je .nocoladd2 + inc dl .nocoladd2 .nobotibox - GUIDisplayBBox 7,82,140,196,147,dl + GUIDisplayBBox 7,82,140,196,147,dl - GUIDisplayTextG 7,84,132,GUICheatTextZ1 ;Green Text&Shadow - GUIDisplayTextG 7,84,143,GUICheatTextZ2 + GUIDisplayTextG 7,84,132,GUICheatTextZ1 ;Green Text&Shadow + GUIDisplayTextG 7,84,143,GUICheatTextZ2 - xor eax,eax ; Code for movement of cursor - mov al,[GUICheatPosA] - mov byte[GUICheatTextZ1+eax],0 - xor ebx,ebx - mov bl,[GUICheatPosB] - mov byte[GUICheatTextZ2+ebx],0 - test byte[GUICCFlash],8 - jnz .nound - cmp dword[GUIcurrentcheatwin],1 - je .win1 - cmp dword[GUIcurrentcheatwin],2 - je .win2 - jmp .nound + xor eax,eax ; Code for movement of cursor + mov al,[GUICheatPosA] + mov byte[GUICheatTextZ1+eax],0 + xor ebx,ebx + mov bl,[GUICheatPosB] + mov byte[GUICheatTextZ2+ebx],0 + test byte[GUICCFlash],8 + jnz .nound + cmp dword[GUIcurrentcheatwin],1 + je .win1 + cmp dword[GUIcurrentcheatwin],2 + je .win2 + jmp .nound .win1 - mov byte[GUICheatTextZ1+eax],'_' - jmp .nound + mov byte[GUICheatTextZ1+eax],'_' + jmp .nound .win2 - mov byte[GUICheatTextZ2+ebx],'_' + mov byte[GUICheatTextZ2+ebx],'_' .nound - GUIDisplayCheckbox 7,11,186,AutoLoadCht,GUICheatTextE1 ; Checkbox - cmp dword[GUIcurrentcheatwin],0 ; Draw underline only if you - jne near .noshortcut ; don't have an input box selected - GUIDisplayCheckboxu 7,11,186,AutoLoadCht,GUICheatTextE1,0 + GUIDisplayCheckbox 7,11,186,AutoLoadCht,GUICheatTextE1 ; Checkbox + cmp dword[GUIcurrentcheatwin],0 ; Draw underline only if you + jne near .noshortcut ; don't have an input box selected + GUIDisplayCheckboxu 7,11,186,AutoLoadCht,GUICheatTextE1,0 .noshortcut - ret + ret SECTION .data GUICheatTextA db 'ADDRESS CV PV TGL DESCRIPTION',0 ; Top @@ -2102,13 +2310,13 @@ GUICheatTextB4 db 'LOAD',0 GUICheatTextB5 db 'FIX',0 GUICheatTextB6 db 'ADD',0 -GUICheatTextC1 db 'ENTER CODE :',0 ; Text by input boxes +GUICheatTextC1 db 'ENTER CODE:',0 ; Text by input boxes GUICheatTextC2 db 'DESCRIPTION:',0 -GUICheatTextD1 db 'VALID CODES : GAME GENIE, PAR, AND GF',0 ; Info for User -GUICheatTextD2 db 'NOTE : YOU MAY HAVE TO RESET THE GAME',0 -GUICheatTextD3 db ' AFTER ENTERING THE CODE. REMEMBER TO',0 -GUICheatTextD4 db ' INSERT THE "-" FOR GAME GENIE CODES',0 +GUICheatTextD1 db 'VALID CODES: GAME GENIE, PAR, AND GF',0 ; Info for User +GUICheatTextD2 db 'NOTE: YOU MAY HAVE TO RESET THE GAME',0 +GUICheatTextD3 db 'AFTER ENTERING THE CODE. REMEMBER TO',0 +GUICheatTextD4 db 'INSERT THE "-" FOR GAME GENIE CODES.',0 GUICheatTextE1 db 'AUTO-LOAD .CHT FILE AT GAME LOAD',0 ; Checkbox Text @@ -2131,485 +2339,484 @@ ccheatnleft resd 1 SECTION .text DrawWindowSearch: - GUIDrawWindowBox 13,GUISearchDisp - ret + GUIDrawWindowBox 13,GUISearchDisp + ret CSRemoveFlash: .loop - cmp byte[esi],'_' - je .flash - cmp byte[esi],0 - je .notflash - inc esi - jmp .loop + cmp byte[esi],'_' + je .flash + cmp byte[esi],0 + je .notflash + inc esi + jmp .loop .flash - mov byte[esi],0 + mov byte[esi],0 .notflash - ret + ret CSAddFlash: .loop - cmp byte[esi],'_' - je .flash - cmp byte[esi],0 - je .notflash - inc esi - jmp .loop + cmp byte[esi],'_' + je .flash + cmp byte[esi],0 + je .notflash + inc esi + jmp .loop .notflash - mov byte[esi],'_' - mov byte[esi+1],0 + mov byte[esi],'_' + mov byte[esi+1],0 .flash - ret + ret DisplayGUISearch: - 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 + 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 - GUIDisplayTextY 13,6,16,GUICSrcTextA1 - GUIDisplayButtonHoleTu 13,11,28,byte[CheatSrcByteSize],0,GUICSrcTextA1a,0 ; Radio Buttons - GUIDisplayButtonHoleTu 13,11,38,byte[CheatSrcByteSize],1,GUICSrcTextA1b,0 - GUIDisplayButtonHoleTu 13,11,48,byte[CheatSrcByteSize],2,GUICSrcTextA1c,0 - GUIDisplayButtonHoleTu 13,11,58,byte[CheatSrcByteSize],3,GUICSrcTextA1d,0 - GUIDisplayButtonHoleTu 13,11,73,byte[CheatSrcByteBase],0,GUICSrcTextA1e,0 - GUIDisplayButtonHoleTu 13,11,83,byte[CheatSrcByteBase],1,GUICSrcTextA1f,0 + GUIDisplayTextY 13,6,16,GUICSrcTextA1 + ; Radio Buttons + GUIDisplayButtonHoleTu 13,11,28,byte[CheatSrcByteSize],0,GUICSrcTextA1a,0 + GUIDisplayButtonHoleTu 13,11,38,byte[CheatSrcByteSize],1,GUICSrcTextA1b,0 + GUIDisplayButtonHoleTu 13,11,48,byte[CheatSrcByteSize],2,GUICSrcTextA1c,0 + GUIDisplayButtonHoleTu 13,11,58,byte[CheatSrcByteSize],3,GUICSrcTextA1d,0 + GUIDisplayButtonHoleTu 13,11,73,byte[CheatSrcByteBase],0,GUICSrcTextA1e,0 + GUIDisplayButtonHoleTu 13,11,83,byte[CheatSrcByteBase],1,GUICSrcTextA1f,0 - GUIDisplayTextY 13,6,101,GUICSrcTextA2 - GUIDisplayButtonHoleTu 13,11,113,byte[CheatSrcSearchType],0,GUICSrcTextA2a,0 - GUIDisplayButtonHoleTu 13,11,123,byte[CheatSrcSearchType],1,GUICSrcTextA2b,0 + GUIDisplayTextY 13,6,101,GUICSrcTextA2 + GUIDisplayButtonHoleTu 13,11,113,byte[CheatSrcSearchType],0,GUICSrcTextA2a,0 + GUIDisplayButtonHoleTu 13,11,123,byte[CheatSrcSearchType],1,GUICSrcTextA2b,0 - mov byte[GUItextcolor],217 ; Button - cmp byte[GUIWincoladd],0 - je .zero2 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 ; Button + cmp byte[GUIWincoladd],0 + je .zero2 + mov byte[GUItextcolor],211 .zero2 - DrawGUIButton 13,95,140,140,152,GUICSrcTextA3,50,0,1 - ret + DrawGUIButton 13,95,140,140,152,GUICSrcTextA3,50,0,1 + ret Incheatmode: ; Return and Re-search Window - mov dword[GUIwinsizex+13*4],180 - mov dword[GUIwinsizey+13*4],150 - call DrawWindowSearch + mov dword[GUIwinsizex+13*4],180 + mov dword[GUIwinsizey+13*4],150 + call DrawWindowSearch - mov byte[GUItextcolor],217 ; Text And Shadow - cmp byte[GUIWincoladd],0 - je .zero2 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 ; Text And Shadow + cmp byte[GUIWincoladd],0 + je .zero2 + mov byte[GUItextcolor],211 .zero2 - cmp byte[CheatSearchStatus],1 - jne near CheatSearching - GUIDisplayText 13,5,20,GUICSrcTextC1 - GUIDisplayText 13,5,30,GUICSrcTextC2 - GUIDisplayText 13,5,40,GUICSrcTextC3 - GUIDisplayText 13,5,50,GUICSrcTextC4 - jmp DisplayChtSrcRes.nosearch - + cmp byte[CheatSearchStatus],1 + jne near CheatSearching + GUIDisplayText 13,5,20,GUICSrcTextC1 + GUIDisplayText 13,5,30,GUICSrcTextC2 + GUIDisplayText 13,5,40,GUICSrcTextC3 + GUIDisplayText 13,5,50,GUICSrcTextC4 + jmp DisplayChtSrcRes.nosearch CheatSearching: ; Exact Value Search - cmp byte[CheatSrcSearchType],1 - je near CheatSearchingComp + cmp byte[CheatSrcSearchType],1 + je near CheatSearchingComp - GUIDisplayText 13,5,20,GUICSrcTextB1 - GUIDisplayText 13,5,65,GUICSrcTextG1a + GUIDisplayText 13,5,20,GUICSrcTextB1 + GUIDisplayText 13,5,65,GUICSrcTextG1a - GUIDisplayBBox 13,10,40,80,47,167 ; Input Box + GUIDisplayBBox 13,10,40,80,47,167 ; Input Box - test byte[GUICCFlash],8 ; Flash Cursor Code? - jnz .nound - mov esi,CSInputDisplay - call CSRemoveFlash + test byte[GUICCFlash],8 ; Flash Cursor Code? + jnz .nound + mov esi,CSInputDisplay + call CSRemoveFlash .nound - mov byte[GUItextcolor],223 ; Green Shadow - cmp byte[CSOverValue],1 - jne .notdark - mov byte[GUItextcolor],202 ; Alt Color + mov byte[GUItextcolor],223 ; Green Shadow + cmp byte[CSOverValue],1 + jne .notdark + mov byte[GUItextcolor],202 ; Alt Color .notdark - GUIOuttextwin2 13,13,42,CSInputDisplay + GUIOuttextwin2 13,13,42,CSInputDisplay - mov byte[GUItextcolor],221 ; Green Text - cmp byte[GUIWincoladd],0 - je .zero4 - mov byte[GUItextcolor],222 + 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 ; Alt Color + cmp byte[CSOverValue],1 + jne .notdark2 + mov byte[GUItextcolor],207 ; Alt Color .notdark2 - GUIOuttextwin2 13,12,41,CSInputDisplay + GUIOuttextwin2 13,12,41,CSInputDisplay - mov esi,CSInputDisplay ; More flash? - call CSAddFlash + mov esi,CSInputDisplay ; More flash? + call CSAddFlash - xor eax,eax ; Find Max Size - mov al,[CheatSrcByteSize] - mov eax,[SrcMask+eax*4] - mov esi,GUICSrcTextG1 - cmp byte[CheatSrcByteBase],1 - je .hex - call convertnum - jmp .dec + xor eax,eax ; Find Max Size + mov al,[CheatSrcByteSize] + mov eax,[SrcMask+eax*4] + mov esi,GUICSrcTextG1 + cmp byte[CheatSrcByteBase],1 + je .hex + call convertnum + jmp .dec .hex - xor ecx,ecx - mov cl,[CheatSrcByteSize] - inc ecx - call converthex + xor ecx,ecx + mov cl,[CheatSrcByteSize] + inc ecx + call converthex .dec - GUIDisplayText 13,71,65,GUICSrcTextG1 ; Max Size Text - jmp DisplayChtSrcRes - + GUIDisplayText 13,71,65,GUICSrcTextG1 ; Max Size Text + jmp DisplayChtSrcRes CheatSearchingComp: ; Comparative search - GUIDisplayTextY 13,6,16,GUICSrcTextD - GUIDisplayButtonHoleTu 13,11,33,byte[CheatCompareValue],0,GUICSrcTextD1,0 - GUIDisplayButtonHoleTu 13,11,43,byte[CheatCompareValue],1,GUICSrcTextD2,1 - GUIDisplayButtonHoleTu 13,11,53,byte[CheatCompareValue],2,GUICSrcTextD3,2 - GUIDisplayButtonHoleTu 13,11,63,byte[CheatCompareValue],3,GUICSrcTextD4,5 - jmp DisplayChtSrcRes + GUIDisplayTextY 13,6,16,GUICSrcTextD + GUIDisplayButtonHoleTu 13,11,33,byte[CheatCompareValue],0,GUICSrcTextD1,0 + GUIDisplayButtonHoleTu 13,11,43,byte[CheatCompareValue],1,GUICSrcTextD2,1 + GUIDisplayButtonHoleTu 13,11,53,byte[CheatCompareValue],2,GUICSrcTextD3,2 + GUIDisplayButtonHoleTu 13,11,63,byte[CheatCompareValue],3,GUICSrcTextD4,5 + jmp DisplayChtSrcRes FindChtSrcRes: ; Calculate search results - inc edi - mov eax,[vidbuffer] - add eax,129600+65536*2 - mov ecx,16384 - xor esi,esi - xor ebx,ebx + inc edi + mov eax,[vidbuffer] + add eax,129600+65536*2 + mov ecx,16384 + xor esi,esi + xor ebx,ebx .searchloop - mov dl,[eax] - mov dh,8 + mov dl,[eax] + mov dh,8 .sloop2 - test dl,1 - jz .notset - inc ebx - dec edi - jz .found + test dl,1 + jz .notset + inc ebx + dec edi + jz .found .notset - inc esi - shr dl,1 - dec dh - jnz .sloop2 - inc eax - dec ecx - jnz .searchloop - mov eax,ebx - ret + inc esi + shr dl,1 + dec dh + jnz .sloop2 + inc eax + dec ecx + jnz .searchloop + mov eax,ebx + ret .found - mov [CSStartEntry],esi - jmp .notset + mov [CSStartEntry],esi + jmp .notset DisplayChtSrcRes: ; Buttons (Restart/View/Search) - DrawGUIButton 13,120,140,170,152,GUICSrcTextG2a,53,0,1 + DrawGUIButton 13,120,140,170,152,GUICSrcTextG2a,53,0,1 .nosearch - DrawGUIButton 13,10,140,60,152,GUICSrcTextG2b,51,0,1 - DrawGUIButton 13,70,140,110,152,GUICSrcTextG2c,52,0,1 + DrawGUIButton 13,10,140,60,152,GUICSrcTextG2b,51,0,1 + DrawGUIButton 13,70,140,110,152,GUICSrcTextG2c,52,0,1 - xor edi,edi ; Call and display # of results - call FindChtSrcRes - mov esi,GUICSrcTextG1 - call convertnum - GUIDisplayText 13,12,125,GUICSrcTextG1b - GUIDisplayText 13,97,125,GUICSrcTextG1 - mov dword[GUIcurrentchtsrcviewloc],0 - mov dword[GUIcurrentchtsrccursloc],0 - ret + xor edi,edi ; Call and display # of results + call FindChtSrcRes + mov esi,GUICSrcTextG1 + call convertnum + GUIDisplayText 13,12,125,GUICSrcTextG1b + GUIDisplayText 13,97,125,GUICSrcTextG1 + mov dword[GUIcurrentchtsrcviewloc],0 + mov dword[GUIcurrentchtsrccursloc],0 + ret Cheatmodeview: ; View ResultsWindow - mov byte[GUICSrcTextE+12],32 - cmp byte[CheatSrcByteSize],3 - jne .yesprev - cmp byte[CheatSrcByteBase],0 - jne .yesprev - mov byte[GUICSrcTextE+12],0 + mov byte[GUICSrcTextE+12],32 + cmp byte[CheatSrcByteSize],3 + jne .yesprev + cmp byte[CheatSrcByteBase],0 + jne .yesprev + mov byte[GUICSrcTextE+12],0 .yesprev - mov dword[GUIwinsizex+13*4],185 - mov dword[GUIwinsizey+13*4],150 - call DrawWindowSearch + mov dword[GUIwinsizex+13*4],185 + mov dword[GUIwinsizey+13*4],150 + call DrawWindowSearch - GUIDisplayText 13,10,12,GUICSrcTextE ; Text + GUIDisplayText 13,10,12,GUICSrcTextE ; Text - GUIDisplayBBoxS 13,5,20,171,108,167 ; Box + GUIDisplayBBoxS 13,5,20,171,108,167 ; Box - mov edi,[GUIcurrentchtsrcviewloc] - call FindChtSrcRes - mov [NumCheatSrc],eax - mov [ccheatnpos],esi - ; Display Window Contents - mov byte[GUItextcolor],223 - mov eax,[NumCheatSrc] - sub eax,[GUIcurrentchtsrcviewloc] - cmp eax,12 - jbe .notof - mov eax,12 + mov edi,[GUIcurrentchtsrcviewloc] + call FindChtSrcRes + mov [NumCheatSrc],eax + mov [ccheatnpos],esi + + mov byte[GUItextcolor],223 ; Display Window Contents + mov eax,[NumCheatSrc] + sub eax,[GUIcurrentchtsrcviewloc] + cmp eax,12 + jbe .notof + mov eax,12 .notof - mov [ccheatnleft],eax - mov [ccheatnleftb],eax + mov [ccheatnleft],eax + mov [ccheatnleftb],eax - mov dword[CheatSearchYPos],24 - mov dword[CheatSearchXPos],10 - mov eax,[CSStartEntry] - mov [CSCurEntry],eax + mov dword[CheatSearchYPos],24 + mov dword[CheatSearchXPos],10 + mov eax,[CSStartEntry] + mov [CSCurEntry],eax - cmp dword[ccheatnleft],0 - je near .noentry - mov byte[CheatLooped],0 - mov ebx,[GUIcurrentchtsrccursloc] - sub ebx,[GUIcurrentchtsrcviewloc] - mov [curentryleft],ebx - mov eax,ebx - lea ebx,[ebx*8] - sub ebx,eax - add ebx,22 - DrawGUIWinBox2 13,5,171,7,224 + cmp dword[ccheatnleft],0 + je near .noentry + mov byte[CheatLooped],0 + mov ebx,[GUIcurrentchtsrccursloc] + sub ebx,[GUIcurrentchtsrcviewloc] + mov [curentryleft],ebx + mov eax,ebx + lea ebx,[ebx*8] + sub ebx,eax + add ebx,22 + DrawGUIWinBox2 13,5,171,7,224 .nextdisplay - cmp dword[curentryleft],0 - jne .notzero - mov eax,[CSCurEntry] - mov [curentryval],eax + cmp dword[curentryleft],0 + jne .notzero + mov eax,[CSCurEntry] + mov [curentryval],eax .notzero - dec dword[curentryleft] + dec dword[curentryleft] - mov esi,GUICSrcTextG1 - mov ecx,3 - mov eax,[CSCurEntry] - add eax,7E0000h - call converthex - GUIOuttextwin2 13,[CheatSearchXPos],[CheatSearchYPos],GUICSrcTextG1 + mov esi,GUICSrcTextG1 + mov ecx,3 + mov eax,[CSCurEntry] + add eax,7E0000h + call converthex + GUIOuttextwin2 13,[CheatSearchXPos],[CheatSearchYPos],GUICSrcTextG1 - mov esi,GUICSrcTextG1 - mov ebx,[wramdata] - add ebx,[CSCurEntry] - mov eax,[ebx] - cmp byte[CheatSrcByteBase],0 - je .dec - xor ecx,ecx - mov cl,[CheatSrcByteSize] - inc ecx - call converthex - jmp .hex + mov esi,GUICSrcTextG1 + mov ebx,[wramdata] + add ebx,[CSCurEntry] + mov eax,[ebx] + cmp byte[CheatSrcByteBase],0 + je .dec + xor ecx,ecx + mov cl,[CheatSrcByteSize] + inc ecx + call converthex + jmp .hex .dec - xor ebx,ebx - mov bl,[CheatSrcByteSize] - and eax,[SrcMask+ebx*4] - call convertnum + xor ebx,ebx + mov bl,[CheatSrcByteSize] + and eax,[SrcMask+ebx*4] + call convertnum .hex - add dword[CheatSearchXPos],42 - GUIOuttextwin2 13,[CheatSearchXPos],[CheatSearchYPos],GUICSrcTextG1 + add dword[CheatSearchXPos],42 + GUIOuttextwin2 13,[CheatSearchXPos],[CheatSearchYPos],GUICSrcTextG1 - add dword[CheatSearchXPos],60 - cmp byte[GUICSrcTextE+12],0 - je near .noprevious - mov esi,GUICSrcTextG1 - mov ebx,[vidbuffer] - add ebx,129600 - add ebx,[CSCurEntry] - mov eax,[ebx] - cmp byte[CheatSrcByteBase],0 - je .decb - xor ecx,ecx - mov cl,[CheatSrcByteSize] - inc ecx - call converthex - jmp .hexb + add dword[CheatSearchXPos],60 + cmp byte[GUICSrcTextE+12],0 + je near .noprevious + mov esi,GUICSrcTextG1 + mov ebx,[vidbuffer] + add ebx,129600 + add ebx,[CSCurEntry] + mov eax,[ebx] + cmp byte[CheatSrcByteBase],0 + je .decb + xor ecx,ecx + mov cl,[CheatSrcByteSize] + inc ecx + call converthex + jmp .hexb .decb - xor ebx,ebx - mov bl,[CheatSrcByteSize] - and eax,[SrcMask+ebx*4] - call convertnum + xor ebx,ebx + mov bl,[CheatSrcByteSize] + and eax,[SrcMask+ebx*4] + call convertnum .hexb - GUIOuttextwin2 13,[CheatSearchXPos],[CheatSearchYPos],GUICSrcTextG1 + GUIOuttextwin2 13,[CheatSearchXPos],[CheatSearchYPos],GUICSrcTextG1 .noprevious - sub dword[CheatSearchXPos],102 - add dword[CheatSearchYPos],7 + sub dword[CheatSearchXPos],102 + add dword[CheatSearchYPos],7 .nextentry ; Search for next entry - inc dword[CSCurEntry] - mov eax,[CSCurEntry] - mov ecx,eax - and ecx,7 - mov edx,1 - shr eax,3 - shl edx,cl - add eax,dword[vidbuffer] - add eax,129600+65536*2 - test byte[eax],dl - jz .nextentry - dec dword[ccheatnleft] - jnz near .nextdisplay - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je .zero4 - mov byte[GUItextcolor],222 + inc dword[CSCurEntry] + mov eax,[CSCurEntry] + mov ecx,eax + and ecx,7 + mov edx,1 + shr eax,3 + shl edx,cl + add eax,dword[vidbuffer] + add eax,129600+65536*2 + test byte[eax],dl + jz .nextentry + dec dword[ccheatnleft] + jnz near .nextdisplay + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je .zero4 + mov byte[GUItextcolor],222 .zero4 - mov dword[CheatSearchYPos],23 - mov dword[CheatSearchXPos],11 - mov eax,[CSStartEntry] - mov [CSCurEntry],eax - mov eax,[ccheatnleftb] - mov [ccheatnleft],eax - inc byte[CheatLooped] - cmp byte[CheatLooped],2 - jne near .nextdisplay + mov dword[CheatSearchYPos],23 + mov dword[CheatSearchXPos],11 + mov eax,[CSStartEntry] + mov [CSCurEntry],eax + mov eax,[ccheatnleftb] + mov [ccheatnleft],eax + inc byte[CheatLooped] + cmp byte[CheatLooped],2 + jne near .nextdisplay .noentry ; Slidebar - ; win#,X,Y start, %4-List Loc, %5-List size, %6-Screen size, %7-Bar Size - DrawSlideBarWin 13,173,28,[GUIcurrentchtsrcviewloc],[NumCheatSrc],12,73,GUICSStA - cmp byte[GUICHold],11 - jne .noholda - add byte[GUIWincoladd],3 + ; win#,X,Y start, %4-List Loc, %5-List size, %6-Screen size, %7-Bar Size + DrawSlideBarWin 13,173,28,[GUIcurrentchtsrcviewloc],[NumCheatSrc],12,73,GUICSStA + cmp byte[GUICHold],11 + jne .noholda + add byte[GUIWincoladd],3 .noholda - GUIDisplayIconWin 13,173,20,GUIIconDataUpArrow - cmp byte[GUICHold],11 - jne .noholda2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 13,173,20,GUIIconDataUpArrow + cmp byte[GUICHold],11 + jne .noholda2 + sub byte[GUIWincoladd],3 .noholda2 - cmp byte[GUICHold],12 - jne .noholdb - add byte[GUIWincoladd],3 + cmp byte[GUICHold],12 + jne .noholdb + add byte[GUIWincoladd],3 .noholdb - GUIDisplayIconWin 13,173,101,GUIIconDataDownArrow - cmp byte[GUICHold],12 - jne .noholdb2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin 13,173,101,GUIIconDataDownArrow + cmp byte[GUICHold],12 + jne .noholdb2 + sub byte[GUIWincoladd],3 .noholdb2 - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero3 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero3 + mov byte[GUItextcolor],211 .zero3 - DrawGUIButton 13,70,140,130,152,GUICSrcTextG2d,54,0,1 - DrawGUIButton 13,140,140,180,152,GUICSrcTextG2e,55,0,1 - ret + DrawGUIButton 13,70,140,130,152,GUICSrcTextG2d,54,0,1 + DrawGUIButton 13,140,140,180,152,GUICSrcTextG2e,55,0,1 + ret Cheatmodeadd: ; Add Window - mov dword[GUIwinsizex+13*4],170 - mov dword[GUIwinsizey+13*4],165 - call DrawWindowSearch + mov dword[GUIwinsizex+13*4],170 + mov dword[GUIwinsizey+13*4],165 + call DrawWindowSearch - GUIDisplayText 13,5,20,GUICSrcTextF1 ; Text - GUIDisplayText 13,5,45,GUICSrcTextF2 - GUIDisplayText 13,5,70,GUICSrcTextF3 + GUIDisplayText 13,5,20,GUICSrcTextF1 ; Text + GUIDisplayText 13,5,45,GUICSrcTextF2 + GUIDisplayText 13,5,70,GUICSrcTextF3 - GUIDisplayCheckbox 13,8,139,CheatUpperByteOnly,GUICSrcTextF4 ; Checkbox + GUIDisplayCheckbox 13,8,139,CheatUpperByteOnly,GUICSrcTextF4 ; Checkbox - GUIDisplayBBox 13,10,30,80,37,167 ; Boxes - GUIDisplayBBox 13,10,55,126,62,167 - GUIDisplayBBox 13,10,80,80,120,167 + GUIDisplayBBox 13,10,30,80,37,167 ; Boxes + GUIDisplayBBox 13,10,55,126,62,167 + GUIDisplayBBox 13,10,80,80,120,167 - DrawGUIButton 13,60,155,120,167,GUICSrcTextG2d,56,0,1 ; Buttons - DrawGUIButton 13,130,155,160,167,GUICSrcTextG2e,57,0,1 + DrawGUIButton 13,60,155,120,167,GUICSrcTextG2d,56,0,1 ; Buttons + DrawGUIButton 13,130,155,160,167,GUICSrcTextG2e,57,0,1 - GUIDisplayText 13,5,130,GUICSrcTextG1a ; Max Value Text - xor eax,eax - mov al,[CheatSrcByteSize] - mov eax,[SrcMask+eax*4] - mov esi,GUICSrcTextG1 - cmp byte[CheatSrcByteBase],1 - je .hex - call convertnum - jmp .dec + GUIDisplayText 13,5,130,GUICSrcTextG1a ; Max Value Text + xor eax,eax + mov al,[CheatSrcByteSize] + mov eax,[SrcMask+eax*4] + mov esi,GUICSrcTextG1 + cmp byte[CheatSrcByteBase],1 + je .hex + call convertnum + jmp .dec .hex - xor ecx,ecx - mov cl,[CheatSrcByteSize] - inc ecx - call converthex + xor ecx,ecx + mov cl,[CheatSrcByteSize] + inc ecx + call converthex .dec - GUIDisplayText 13,71,130,GUICSrcTextG1 + GUIDisplayText 13,71,130,GUICSrcTextG1 - cmp byte[CurCStextpos],0 ; Cheat Input - jne near .nofirstbox - test byte[GUICCFlash],8 - jnz .nound + cmp byte[CurCStextpos],0 ; Cheat Input + jne near .nofirstbox + test byte[GUICCFlash],8 + jnz .nound .nofirstbox - mov esi,CSInputDisplay - call CSRemoveFlash + mov esi,CSInputDisplay + call CSRemoveFlash .nound - mov byte[GUItextcolor],223 - cmp byte[CSOverValue],1 - jne .notdark - mov byte[GUItextcolor],202 + mov byte[GUItextcolor],223 + cmp byte[CSOverValue],1 + jne .notdark + mov byte[GUItextcolor],202 .notdark - GUIOuttextwin2 13,13,32,CSInputDisplay - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je .zero4 - mov byte[GUItextcolor],222 + GUIOuttextwin2 13,13,32,CSInputDisplay + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je .zero4 + mov byte[GUItextcolor],222 .zero4 - cmp byte[CSOverValue],1 - jne .notdark2 - mov byte[GUItextcolor],207 + cmp byte[CSOverValue],1 + jne .notdark2 + mov byte[GUItextcolor],207 .notdark2 - GUIOuttextwin2 13,12,31,CSInputDisplay - mov esi,CSInputDisplay - call CSAddFlash + GUIOuttextwin2 13,12,31,CSInputDisplay + mov esi,CSInputDisplay + call CSAddFlash - cmp byte[CurCStextpos],1 ; Cheat Desc. Input - jne .noundb - test byte[GUICCFlash],8 - jnz .noundb - mov esi,CSDescDisplay - call CSAddFlash + cmp byte[CurCStextpos],1 ; Cheat Desc. Input + jne .noundb + test byte[GUICCFlash],8 + jnz .noundb + mov esi,CSDescDisplay + call CSAddFlash .noundb - GUIDisplayTextG 13,13,57,CSDescDisplay - mov esi,CSDescDisplay - call CSRemoveFlash + GUIDisplayTextG 13,13,57,CSDescDisplay + mov esi,CSDescDisplay + call CSRemoveFlash - cmp byte[CSOverValue],1 - je near .nodisplay - cmp byte[CSInputDisplay],'_' - je near .nodisplay + cmp byte[CSOverValue],1 + je near .nodisplay + cmp byte[CSInputDisplay],'_' + je near .nodisplay - mov dword[CheatSearchYPos],83 ; PAR Code? - mov eax,[curentryval] - mov [curaddrvalcs],eax - mov eax,[CSCurValue] - mov [curvaluecs],eax - xor ecx,ecx - mov cl,[CheatSrcByteSize] - inc cl - cmp byte[CheatUpperByteOnly],0 - je .cspardisploop - mov cl,1 + mov dword[CheatSearchYPos],83 ; PAR Code? + mov eax,[curentryval] + mov [curaddrvalcs],eax + mov eax,[CSCurValue] + mov [curvaluecs],eax + xor ecx,ecx + mov cl,[CheatSrcByteSize] + inc cl + cmp byte[CheatUpperByteOnly],0 + je .cspardisploop + mov cl,1 .cspardispagain - cmp dword[curvaluecs],0FFh - jbe .cspardisploop - shr dword[curvaluecs],8 - inc dword[curaddrvalcs] - jmp .cspardispagain + cmp dword[curvaluecs],0FFh + jbe .cspardisploop + shr dword[curvaluecs],8 + inc dword[curaddrvalcs] + jmp .cspardispagain .cspardisploop ; Max Value Display? - push ecx - mov esi,GUICSrcTextG1 - mov ecx,3 - mov eax,[curaddrvalcs] - add eax,7E0000h - call converthex - mov esi,GUICSrcTextG1+6 - mov ecx,1 - mov al,[curvaluecs] - call converthex - shr dword[curvaluecs],8 - mov byte[GUItextcolor],223 - inc dword[CheatSearchYPos] - GUIOuttextwin2 13,13,[CheatSearchYPos],GUICSrcTextG1 - dec dword[CheatSearchYPos] - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je .zero4c - mov byte[GUItextcolor],222 + push ecx + mov esi,GUICSrcTextG1 + mov ecx,3 + mov eax,[curaddrvalcs] + add eax,7E0000h + call converthex + mov esi,GUICSrcTextG1+6 + mov ecx,1 + mov al,[curvaluecs] + call converthex + shr dword[curvaluecs],8 + mov byte[GUItextcolor],223 + inc dword[CheatSearchYPos] + GUIOuttextwin2 13,13,[CheatSearchYPos],GUICSrcTextG1 + dec dword[CheatSearchYPos] + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je .zero4c + mov byte[GUItextcolor],222 .zero4c - GUIOuttextwin2 13,12,[CheatSearchYPos],GUICSrcTextG1 - add dword[CheatSearchYPos],10 - inc dword[curaddrvalcs] - pop ecx - dec ecx - jnz near .cspardisploop + GUIOuttextwin2 13,12,[CheatSearchYPos],GUICSrcTextG1 + add dword[CheatSearchYPos],10 + inc dword[curaddrvalcs] + pop ecx + dec ecx + jnz near .cspardisploop .nodisplay - ret + ret SECTION .bss CheatWinMode resb 1 @@ -2689,7 +2896,6 @@ GUICSrcTextG2c db 'VIEW',0 GUICSrcTextG2d db 'RETURN',0 GUICSrcTextG2e db 'ADD',0 - SECTION .bss CCursLoc resd 1 CViewLoc resd 1 @@ -2699,7 +2905,7 @@ TViewLoc resd 1 SECTION .text DisplayNetOptns: - ret + ret SECTION .bss NEWSYM GUINCStA, resd 3 @@ -2709,104 +2915,104 @@ CurCStringPos resd 1 SECTION .text DisplayGameOptns: ; Misc Key Window - GUIDrawWindowBox 9,GUIGameDisp + GUIDrawWindowBox 9,GUIGameDisp - GUIDisplayTextY 9,6,16,GUIGameOptnsTextA - mov byte[GUIGameOptnsTextA1+2],'1' - GUIDisplayText 9,9,25,GUIGameOptnsTextA1 - mov byte[GUIGameOptnsTextA1+2],'2' - GUIDisplayText 9,9+45,25,GUIGameOptnsTextA1 - mov byte[GUIGameOptnsTextA1+2],'3' - GUIDisplayText 9,9+90,25,GUIGameOptnsTextA1 - mov byte[GUIGameOptnsTextA1+2],'4' - GUIDisplayText 9,9+135,25,GUIGameOptnsTextA1 - GUIDisplayText 9,9+180,25,GUIGameOptnsTextA2 + GUIDisplayTextY 9,6,16,GUIGameOptnsTextA + mov byte[GUIGameOptnsTextA1+2],'1' + GUIDisplayText 9,9,25,GUIGameOptnsTextA1 + mov byte[GUIGameOptnsTextA1+2],'2' + GUIDisplayText 9,9+45,25,GUIGameOptnsTextA1 + mov byte[GUIGameOptnsTextA1+2],'3' + GUIDisplayText 9,9+90,25,GUIGameOptnsTextA1 + mov byte[GUIGameOptnsTextA1+2],'4' + GUIDisplayText 9,9+135,25,GUIGameOptnsTextA1 + GUIDisplayText 9,9+180,25,GUIGameOptnsTextA2 - GUIDisplayTextY 9,6,34,GUIGameOptnsTextB - mov byte[GUIGameOptnsTextB1+2],'1' - GUIDisplayText 9,9,43,GUIGameOptnsTextB1 - mov byte[GUIGameOptnsTextB1+2],'2' - GUIDisplayText 9,9+45,43,GUIGameOptnsTextB1 - mov byte[GUIGameOptnsTextB1+2],'3' - GUIDisplayText 9,9+45*2,43,GUIGameOptnsTextB1 - mov byte[GUIGameOptnsTextB1+2],'4' - GUIDisplayText 9,9+45*3,43,GUIGameOptnsTextB1 - GUIDisplayText 9,9+45*4,43,GUIGameOptnsTextB2 - mov byte[GUIGameOptnsTextB1+2],'5' - GUIDisplayText 9,9,52,GUIGameOptnsTextB1 - mov byte[GUIGameOptnsTextB1+2],'6' - GUIDisplayText 9,9+45,52,GUIGameOptnsTextB1 - mov byte[GUIGameOptnsTextB1+2],'7' - GUIDisplayText 9,9+45*2,52,GUIGameOptnsTextB1 - mov byte[GUIGameOptnsTextB1+2],'8' - GUIDisplayText 9,9+45*3,52,GUIGameOptnsTextB1 - GUIDisplayText 9,9+45*4,52,GUIGameOptnsTextB3 + GUIDisplayTextY 9,6,34,GUIGameOptnsTextB + mov byte[GUIGameOptnsTextB1+2],'1' + GUIDisplayText 9,9,43,GUIGameOptnsTextB1 + mov byte[GUIGameOptnsTextB1+2],'2' + GUIDisplayText 9,9+45,43,GUIGameOptnsTextB1 + mov byte[GUIGameOptnsTextB1+2],'3' + GUIDisplayText 9,9+45*2,43,GUIGameOptnsTextB1 + mov byte[GUIGameOptnsTextB1+2],'4' + GUIDisplayText 9,9+45*3,43,GUIGameOptnsTextB1 + GUIDisplayText 9,9+45*4,43,GUIGameOptnsTextB2 + mov byte[GUIGameOptnsTextB1+2],'5' + GUIDisplayText 9,9,52,GUIGameOptnsTextB1 + mov byte[GUIGameOptnsTextB1+2],'6' + GUIDisplayText 9,9+45,52,GUIGameOptnsTextB1 + mov byte[GUIGameOptnsTextB1+2],'7' + GUIDisplayText 9,9+45*2,52,GUIGameOptnsTextB1 + mov byte[GUIGameOptnsTextB1+2],'8' + GUIDisplayText 9,9+45*3,52,GUIGameOptnsTextB1 + GUIDisplayText 9,9+45*4,52,GUIGameOptnsTextB3 - GUIDisplayTextY 9,6,61,GUIGameOptnsTextC - GUIDisplayText 9,9,72,GUIGameOptnsTextC1 - GUIDisplayText 9,9+52,72,GUIGameOptnsTextC2 - GUIDisplayText 9,9+109,72,GUIGameOptnsTextC3 - GUIDisplayText 9,9+160,72,GUIGameOptnsTextC4 - GUIDisplayText 9,9,82,GUIGameOptnsTextC5 - GUIDisplayText 9,9+52,82,GUIGameOptnsTextC6 - GUIDisplayText 9,137,82,GUIGameOptnsTextC7 + GUIDisplayTextY 9,6,61,GUIGameOptnsTextC + GUIDisplayText 9,9,72,GUIGameOptnsTextC1 + GUIDisplayText 9,9+52,72,GUIGameOptnsTextC2 + GUIDisplayText 9,9+109,72,GUIGameOptnsTextC3 + GUIDisplayText 9,9+160,72,GUIGameOptnsTextC4 + GUIDisplayText 9,9,82,GUIGameOptnsTextC5 + GUIDisplayText 9,9+52,82,GUIGameOptnsTextC6 + GUIDisplayText 9,137,82,GUIGameOptnsTextC7 - GUIDisplayTextY 9,6,93,GUIGameOptnsTextD1 - GUIDisplayText 9,9,102,GUIGameOptnsTextD1a - GUIDisplayText 9,9,112,GUIGameOptnsTextD1b - GUIDisplayText 9,9,122,GUIGameOptnsTextD1c - GUIDisplayText 9,9,132,GUIGameOptnsTextD1d - GUIDisplayText 9,9,142,GUIGameOptnsTextD1e - GUIDisplayText 9,9,152,GUIGameOptnsTextD1f + GUIDisplayTextY 9,6,93,GUIGameOptnsTextD1 + GUIDisplayText 9,9,102,GUIGameOptnsTextD1a + GUIDisplayText 9,9,112,GUIGameOptnsTextD1b + GUIDisplayText 9,9,122,GUIGameOptnsTextD1c + GUIDisplayText 9,9,132,GUIGameOptnsTextD1d + GUIDisplayText 9,9,142,GUIGameOptnsTextD1e + GUIDisplayText 9,9,152,GUIGameOptnsTextD1f %ifndef __MSDOS__ - GUIDisplayText 9,9,162,GUIGameOptnsTextD1g + GUIDisplayText 9,9,162,GUIGameOptnsTextD1g %endif - GUIDisplayTextY 9,119,93,GUIGameOptnsTextD2 - GUIDisplayText 9,122,102,GUIGameOptnsTextD2a - GUIDisplayText 9,122,112,GUIGameOptnsTextD2b - GUIDisplayText 9,122,122,GUIGameOptnsTextD2c + GUIDisplayTextY 9,119,93,GUIGameOptnsTextD2 + GUIDisplayText 9,122,102,GUIGameOptnsTextD2a + GUIDisplayText 9,122,112,GUIGameOptnsTextD2b + GUIDisplayText 9,122,122,GUIGameOptnsTextD2c - ; Draw black boxes - DDrawBox 9,26,22,[KeyBGDisble0] - DDrawBox 9,71,22,[KeyBGDisble1] - DDrawBox 9,116,22,[KeyBGDisble2] - DDrawBox 9,161,22,[KeyBGDisble3] - DDrawBox 9,206,22,[KeySprDisble] + ; Draw black boxes + DDrawBox 9,26,22,[KeyBGDisble0] + DDrawBox 9,71,22,[KeyBGDisble1] + DDrawBox 9,116,22,[KeyBGDisble2] + DDrawBox 9,161,22,[KeyBGDisble3] + DDrawBox 9,206,22,[KeySprDisble] - DDrawBox 9,26,40,[KeyDisableSC0] - DDrawBox 9,71,40,[KeyDisableSC1] - DDrawBox 9,116,40,[KeyDisableSC2] - DDrawBox 9,161,40,[KeyDisableSC3] - DDrawBox 9,213,40,[KeyVolUp] - DDrawBox 9,26,49,[KeyDisableSC4] - DDrawBox 9,71,49,[KeyDisableSC5] - DDrawBox 9,116,49,[KeyDisableSC6] - DDrawBox 9,161,49,[KeyDisableSC7] - DDrawBox 9,213,49,[KeyVolDown] + DDrawBox 9,26,40,[KeyDisableSC0] + DDrawBox 9,71,40,[KeyDisableSC1] + DDrawBox 9,116,40,[KeyDisableSC2] + DDrawBox 9,161,40,[KeyDisableSC3] + DDrawBox 9,213,40,[KeyVolUp] + DDrawBox 9,26,49,[KeyDisableSC4] + DDrawBox 9,71,49,[KeyDisableSC5] + DDrawBox 9,116,49,[KeyDisableSC6] + DDrawBox 9,161,49,[KeyDisableSC7] + DDrawBox 9,213,49,[KeyVolDown] - DDrawBox 9,32,69,[KeyQuickLoad] - DDrawBox 9,90,69,[KeyQuickRst] - DDrawBox 9,141,69,[KeyQuickExit] - DDrawBox 9,199,69,[KeyQuickClock] - DDrawBox 9,32,79,[KeyQuickChat] - DDrawBox 9,109,79,[KeyQuickSnapShot] - DDrawBox 9,185,79,[KeyQuickSaveSPC] + DDrawBox 9,32,69,[KeyQuickLoad] + DDrawBox 9,90,69,[KeyQuickRst] + DDrawBox 9,141,69,[KeyQuickExit] + DDrawBox 9,199,69,[KeyQuickClock] + DDrawBox 9,32,79,[KeyQuickChat] + DDrawBox 9,109,79,[KeyQuickSnapShot] + DDrawBox 9,185,79,[KeyQuickSaveSPC] - DDrawBox 9,77,99,[KeyUsePlayer1234] - DDrawBox 9,77,109,[KeyResetAll] - DDrawBox 9,77,119,[KeyExtraEnab] - DDrawBox 9,77,129,[KeyDisplayFPS] - DDrawBox 9,77,139,[KeyIncreaseGamma] - DDrawBox 9,77,149,[KeyDecreaseGamma] + DDrawBox 9,77,99,[KeyUsePlayer1234] + DDrawBox 9,77,109,[KeyResetAll] + DDrawBox 9,77,119,[KeyExtraEnab] + DDrawBox 9,77,129,[KeyDisplayFPS] + DDrawBox 9,77,139,[KeyIncreaseGamma] + DDrawBox 9,77,149,[KeyDecreaseGamma] %ifndef __MSDOS__ - DDrawBox 9,77,159,[KeyDisplayBatt] + DDrawBox 9,77,159,[KeyDisplayBatt] %endif - DDrawBox 9,190,99,[KeyNewGfxSwt] - DDrawBox 9,190,109,[KeyWinDisble] - DDrawBox 9,190,119,[KeyOffsetMSw] - ret + DDrawBox 9,190,99,[KeyNewGfxSwt] + DDrawBox 9,190,109,[KeyWinDisble] + DDrawBox 9,190,119,[KeyOffsetMSw] + ret SECTION .bss GUIGameOptnsColA resb 1 @@ -2815,196 +3021,197 @@ GUIGameDisplayKy resd 1 SECTION .data -GUIGameOptnsTextA db 'BG DISABLES :',0 -GUIGameOptnsTextA1 db 'BG#',0 -GUIGameOptnsTextA2 db 'OBJ ',0 +GUIGameOptnsTextA db 'BG DISABLES:',0 +GUIGameOptnsTextA1 db 'BG#',0 +GUIGameOptnsTextA2 db 'OBJ',0 -GUIGameOptnsTextB db 'SOUND KEYS :',0 -GUIGameOptnsTextB1 db 'CH#',0 -GUIGameOptnsTextB2 db '+VOL',0 -GUIGameOptnsTextB3 db '-VOL',0 +GUIGameOptnsTextB db 'SOUND KEYS:',0 +GUIGameOptnsTextB1 db 'CH#',0 +GUIGameOptnsTextB2 db '+VOL',0 +GUIGameOptnsTextB3 db '-VOL',0 -GUIGameOptnsTextC db 'QUICK KEYS :',0 -GUIGameOptnsTextC1 db 'LOAD',0 -GUIGameOptnsTextC2 db 'RESET',0 -GUIGameOptnsTextC3 db 'EXIT',0 -GUIGameOptnsTextC4 db 'CLOCK',0 -GUIGameOptnsTextC5 db 'CHAT',0 -GUIGameOptnsTextC6 db 'SNAPSHOT',0 -GUIGameOptnsTextC7 db 'SAVE SPC',0 +GUIGameOptnsTextC db 'QUICK KEYS:',0 +GUIGameOptnsTextC1 db 'LOAD',0 +GUIGameOptnsTextC2 db 'RESET',0 +GUIGameOptnsTextC3 db 'EXIT',0 +GUIGameOptnsTextC4 db 'CLOCK',0 +GUIGameOptnsTextC5 db 'CHAT',0 +GUIGameOptnsTextC6 db 'SNAPSHOT',0 +GUIGameOptnsTextC7 db 'SAVE SPC',0 -GUIGameOptnsTextD1 db 'MISC TOGGLES :',0 -GUIGameOptnsTextD1a db 'USE PL12/34',0 -GUIGameOptnsTextD1b db 'CLRSWITCHES',0 -GUIGameOptnsTextD1c db 'EXTRADEVICE',0 -GUIGameOptnsTextD1d db 'DISPLAY FPS',0 -GUIGameOptnsTextD1e db '+ GAMMA',0 -GUIGameOptnsTextD1f db '- GAMMA',0 -GUIGameOptnsTextD1g db 'BATT POWER',0 +GUIGameOptnsTextD1 db 'MISC TOGGLES:',0 +GUIGameOptnsTextD1a db 'USE PL12/34',0 +GUIGameOptnsTextD1b db 'CLRSWITCHES',0 +GUIGameOptnsTextD1c db 'EXTRADEVICE',0 +GUIGameOptnsTextD1d db 'DISPLAY FPS',0 +GUIGameOptnsTextD1e db '+ GAMMA',0 +GUIGameOptnsTextD1f db '- GAMMA',0 +GUIGameOptnsTextD1g db 'BATT POWER',0 -GUIGameOptnsTextD2 db 'GFX TOGGLES :',0 -GUIGameOptnsTextD2a db 'NEW GFX ENG',0 -GUIGameOptnsTextD2b db 'BG WINDOW',0 -GUIGameOptnsTextD2c db 'OFFSET MODE',0 +GUIGameOptnsTextD2 db 'GFX TOGGLES:',0 +GUIGameOptnsTextD2a db 'NEW GFX ENG',0 +GUIGameOptnsTextD2b db 'BG WINDOW',0 +GUIGameOptnsTextD2c db 'OFFSET MODE',0 SECTION .text DisplayGUIOptns: ; GUI Options %ifdef __WIN32__ ; If Windows, extend window down - mov dword[GUIwinsizey+10*4],192 + mov dword[GUIwinsizey+10*4],192 %endif - GUIDrawWindowBox 10,GUIGUIDisp + GUIDrawWindowBox 10,GUIGUIDisp - push eax ; Setup Colors - cmp byte[CurPalSelect],1 - je .yespal2b - cmp byte[CurPalSelect],2 - je .yespal3b - mov al,[GUIRAdd] - mov [TRVal2],al - mov al,[GUIGAdd] - mov [TGVal2],al - mov al,[GUIBAdd] - mov [TBVal2],al - jmp .nopal1b + push eax ; Setup Colors + cmp byte[CurPalSelect],1 + je .yespal2b + cmp byte[CurPalSelect],2 + je .yespal3b + mov al,[GUIRAdd] + mov [TRVal2],al + mov al,[GUIGAdd] + mov [TGVal2],al + mov al,[GUIBAdd] + mov [TBVal2],al + jmp .nopal1b .yespal2b - mov al,[GUITRAdd] - mov [TRVal2],al - mov al,[GUITGAdd] - mov [TGVal2],al - mov al,[GUITBAdd] - mov [TBVal2],al - jmp .nopal1b + mov al,[GUITRAdd] + mov [TRVal2],al + mov al,[GUITGAdd] + mov [TGVal2],al + mov al,[GUITBAdd] + mov [TBVal2],al + jmp .nopal1b .yespal3b - mov al,[GUIWRAdd] - mov [TRVal2],al - mov al,[GUIWGAdd] - mov [TGVal2],al - mov al,[GUIWBAdd] - mov [TBVal2],al + mov al,[GUIWRAdd] + mov [TRVal2],al + mov al,[GUIWGAdd] + mov [TGVal2],al + mov al,[GUIWBAdd] + mov [TBVal2],al .nopal1b - pop eax + pop eax - mov eax,[GUIwinposx+10*4] ; Slider Bars - mov ebx,[GUIwinposy+10*4] - mov ecx,eax - add eax,25 - add ecx,25+32*4 - add ebx,124 - xor edx,edx - mov dl,215 - sub dl,[GUIWincoladd] - DrawGUILine - add ebx,11 - DrawGUILine - add ebx,11 - DrawGUILine - inc ecx - mov ebx,[GUIwinposy+10*4] - inc eax - add ebx,125 - sub dl,13 - DrawGUILine - add ebx,11 - DrawGUILine - add ebx,11 - DrawGUILine - xor eax,eax - mov al,[TRVal2] - shl eax,2 - mov dword[GUITemp],22 - add [GUITemp],eax - GUIDisplayIconWin 10,[GUITemp],120,GUIIconDataSlideBar - xor eax,eax - mov al,[TGVal2] - shl eax,2 - mov dword[GUITemp],22 - add [GUITemp],eax - GUIDisplayIconWin 10,[GUITemp],132,GUIIconDataSlideBar - xor eax,eax - mov al,[TBVal2] - shl eax,2 - mov dword[GUITemp],22 - add [GUITemp],eax - GUIDisplayIconWin 10,[GUITemp],144,GUIIconDataSlideBar + mov eax,[GUIwinposx+10*4] ; Slider Bars + mov ebx,[GUIwinposy+10*4] + mov ecx,eax + add eax,25 + add ecx,25+32*4 + add ebx,124 + xor edx,edx + mov dl,215 + sub dl,[GUIWincoladd] + DrawGUILine + add ebx,11 + DrawGUILine + add ebx,11 + DrawGUILine + inc ecx + mov ebx,[GUIwinposy+10*4] + inc eax + add ebx,125 + sub dl,13 + DrawGUILine + add ebx,11 + DrawGUILine + add ebx,11 + DrawGUILine + xor eax,eax + mov al,[TRVal2] + shl eax,2 + mov dword[GUITemp],22 + add [GUITemp],eax + GUIDisplayIconWin 10,[GUITemp],120,GUIIconDataSlideBar + xor eax,eax + mov al,[TGVal2] + shl eax,2 + mov dword[GUITemp],22 + add [GUITemp],eax + GUIDisplayIconWin 10,[GUITemp],132,GUIIconDataSlideBar + xor eax,eax + mov al,[TBVal2] + shl eax,2 + mov dword[GUITemp],22 + add [GUITemp],eax + GUIDisplayIconWin 10,[GUITemp],144,GUIIconDataSlideBar - GUIDisplayTextY 10,6,16,GUIGUIOptnsTextA - GUIDisplayCheckboxu 10,12,23,mousewrap,GUIGUIOptnsTextA1a,0 ; Checkboxes - GUIDisplayCheckboxu 10,12,33,mouseshad,GUIGUIOptnsTextA1b,6 - GUIDisplayCheckboxu 10,12,43,lastcursres,GUIGUIOptnsTextA1c,0 - GUIDisplayCheckboxun 10,12,53,resetposn,0,GUIGUIOptnsTextA1d,5 ; Save Win Pos, but the option is really for Reset Pos - GUIDisplayCheckboxu 10,12,63,GUIClick,GUIGUIOptnsTextA1e,0 - GUIDisplayCheckboxu 10,12,73,JoyPad1Move,GUIGUIOptnsTextA1f,0 - GUIDisplayCheckboxu 10,124,23,GUIEnableTransp,GUIGUIOptnsTextA2a,0 - GUIDisplayCheckboxu 10,124,33,FilteredGUI,GUIGUIOptnsTextA2b,0 - GUIDisplayCheckboxun 10,124,43,GUIEffect,1,GUIGUIOptnsTextA2c,1 - GUIDisplayCheckboxun 10,124,53,GUIEffect,2,GUIGUIOptnsTextA2d,3 - GUIDisplayCheckboxun 10,124,63,GUIEffect,3,GUIGUIOptnsTextA2e,13 - GUIDisplayCheckboxun 10,124,73,GUIEffect,4,GUIGUIOptnsTextA2f,2 + GUIDisplayTextY 10,6,16,GUIGUIOptnsTextA + GUIDisplayCheckboxu 10,12,23,mousewrap,GUIGUIOptnsTextA1a,0 ; Checkboxes + GUIDisplayCheckboxu 10,12,33,mouseshad,GUIGUIOptnsTextA1b,6 + GUIDisplayCheckboxu 10,12,43,lastcursres,GUIGUIOptnsTextA1c,0 + GUIDisplayCheckboxun 10,12,53,resetposn,0,GUIGUIOptnsTextA1d,5 + ; ^ "Save Win Pos", but the option is really for Reset Pos + GUIDisplayCheckboxu 10,12,63,GUIClick,GUIGUIOptnsTextA1e,0 + GUIDisplayCheckboxu 10,12,73,JoyPad1Move,GUIGUIOptnsTextA1f,0 + GUIDisplayCheckboxu 10,124,23,GUIEnableTransp,GUIGUIOptnsTextA2a,0 + GUIDisplayCheckboxu 10,124,33,FilteredGUI,GUIGUIOptnsTextA2b,0 + GUIDisplayCheckboxun 10,124,43,GUIEffect,1,GUIGUIOptnsTextA2c,1 + GUIDisplayCheckboxun 10,124,53,GUIEffect,2,GUIGUIOptnsTextA2d,3 + GUIDisplayCheckboxun 10,124,63,GUIEffect,3,GUIGUIOptnsTextA2e,13 + GUIDisplayCheckboxun 10,124,73,GUIEffect,4,GUIGUIOptnsTextA2f,2 %ifdef __WIN32__ - GUIDisplayCheckboxu 10,124,83,MouseWheel,GUIGUIOptnsTextA2g,1 - GUIDisplayCheckboxu 10,124,93,TrapMouseCursor,GUIGUIOptnsTextA2h,3 + GUIDisplayCheckboxu 10,124,83,MouseWheel,GUIGUIOptnsTextA2g,1 + GUIDisplayCheckboxu 10,124,93,TrapMouseCursor,GUIGUIOptnsTextA2h,3 %endif - GUIDisplayTextY 10,6,111,GUIGUIOptnsTextB - GUIDisplayText 10,60,111,GUIGUIOptnsTextB1 - GUIDisplayText 10,100,111,GUIGUIOptnsTextB2 - GUIDisplayText 10,147,111,GUIGUIOptnsTextB3 + GUIDisplayTextY 10,6,111,GUIGUIOptnsTextB + GUIDisplayText 10,60,111,GUIGUIOptnsTextB1 + GUIDisplayText 10,100,111,GUIGUIOptnsTextB2 + GUIDisplayText 10,147,111,GUIGUIOptnsTextB3 %ifdef __WIN32__ - GUIDisplayTextY 10,6,161,GUIGUIOptnsTextC - GUIDisplayCheckboxu 10,12,168,AlwaysOnTop,GUIGUIOptnsTextC1,0 - GUIDisplayCheckboxu 10,12,178,SaveMainWindowPos,GUIGUIOptnsTextC2,2 - GUIDisplayCheckboxu 10,12,188,AllowMultipleInst,GUIGUIOptnsTextC3,1 + GUIDisplayTextY 10,6,161,GUIGUIOptnsTextC + GUIDisplayCheckboxu 10,12,168,AlwaysOnTop,GUIGUIOptnsTextC1,0 + GUIDisplayCheckboxu 10,12,178,SaveMainWindowPos,GUIGUIOptnsTextC2,2 + GUIDisplayCheckboxu 10,12,188,AllowMultipleInst,GUIGUIOptnsTextC3,1 %endif - mov byte[GUIGUIOptnsTextD1],'R' - GUIDisplayText 10,16,123,GUIGUIOptnsTextD1 - mov byte[GUIGUIOptnsTextD1],'G' - GUIDisplayText 10,16,135,GUIGUIOptnsTextD1 - mov byte[GUIGUIOptnsTextD1],'B' - GUIDisplayText 10,16,147,GUIGUIOptnsTextD1 + mov byte[GUIGUIOptnsTextD1],'R' + GUIDisplayText 10,16,123,GUIGUIOptnsTextD1 + mov byte[GUIGUIOptnsTextD1],'G' + GUIDisplayText 10,16,135,GUIGUIOptnsTextD1 + mov byte[GUIGUIOptnsTextD1],'B' + GUIDisplayText 10,16,147,GUIGUIOptnsTextD1 - GUIDisplayButtonHole 10,48,108,byte[CurPalSelect],0 ; Radio Buttons - GUIDisplayButtonHole 10,88,108,byte[CurPalSelect],1 - GUIDisplayButtonHole 10,135,108,byte[CurPalSelect],2 + GUIDisplayButtonHole 10,48,108,byte[CurPalSelect],0 ; Radio Buttons + GUIDisplayButtonHole 10,88,108,byte[CurPalSelect],1 + GUIDisplayButtonHole 10,135,108,byte[CurPalSelect],2 - mov dword[GUIGUIOptnsTextD2],0 ; Display Values for the 3 bars - mov esi,GUIGUIOptnsTextD2+2 - xor eax,eax - mov al,[TRVal2] - call .processnum - GUIDisplayTextG 10,160,123,[GUITemp] ; R + mov dword[GUIGUIOptnsTextD2],0 ; Display Values for the 3 bars + mov esi,GUIGUIOptnsTextD2+2 + xor eax,eax + mov al,[TRVal2] + call .processnum + GUIDisplayTextG 10,160,123,[GUITemp] ; R - mov dword[GUIGUIOptnsTextD2],0 - mov esi,GUIGUIOptnsTextD2+2 - xor eax,eax - mov al,[TGVal2] - call .processnum - GUIDisplayTextG 10,160,135,[GUITemp] ; G + mov dword[GUIGUIOptnsTextD2],0 + mov esi,GUIGUIOptnsTextD2+2 + xor eax,eax + mov al,[TGVal2] + call .processnum + GUIDisplayTextG 10,160,135,[GUITemp] ; G - mov dword[GUIGUIOptnsTextD2],0 - mov esi,GUIGUIOptnsTextD2+2 - xor eax,eax - mov al,[TBVal2] - call .processnum - GUIDisplayTextG 10,160,147,[GUITemp] ; B - ret + mov dword[GUIGUIOptnsTextD2],0 + mov esi,GUIGUIOptnsTextD2+2 + xor eax,eax + mov al,[TBVal2] + call .processnum + GUIDisplayTextG 10,160,147,[GUITemp] ; B + ret .processnum - mov ebx,10 - div bl - add ah,48 - mov [esi],ah - cmp al,0 - je .nomore - dec esi - xor ah,ah - div bl - add ah,48 - mov [esi],ah + mov ebx,10 + div bl + add ah,48 + mov [esi],ah + cmp al,0 + je .nomore + dec esi + xor ah,ah + div bl + add ah,48 + mov [esi],ah .nomore - mov [GUITemp],esi - mov byte[GUItextcolor],223 - ret + mov [GUITemp],esi + mov byte[GUItextcolor],223 + ret ;mousewrap 0 ; 0 = mouse boundries, 1 = mouse wrap ;mouseshad 1 ; 0 = no mouse shadow, 1 = mouse shadow @@ -3012,7 +3219,7 @@ DisplayGUIOptns: ; GUI Options ;resetposn 1 ; 0 = no window reset, 1 = window reset SECTION .data -GUIGUIOptnsTextA db 'GUI SWITCHES :',0 +GUIGUIOptnsTextA db 'GUI SWITCHES:',0 GUIGUIOptnsTextA1a db 'MOUSE WRAP',0 GUIGUIOptnsTextA1b db 'MOUSE SHADOW',0 GUIGUIOptnsTextA1c db 'KEEP MENU POSITN',0 @@ -3034,7 +3241,7 @@ GUIGUIOptnsTextB1 db 'BACK',0 GUIGUIOptnsTextB2 db 'TITLE',0 GUIGUIOptnsTextB3 db 'WIN',0 -GUIGUIOptnsTextC dd 'MAIN WINDOW OPTIONS :',0 +GUIGUIOptnsTextC dd 'MAIN WINDOW OPTIONS:',0 GUIGUIOptnsTextC1 dd 'ALWAYS ON TOP',0 GUIGUIOptnsTextC2 db 'SAVE MAIN WINDOW POSITION',0 GUIGUIOptnsTextC3 db 'ALLOW MULTIPLE INSTANCES',0 @@ -3045,50 +3252,49 @@ GUIGUIOptnsTextD2 dd 0 SECTION .text DisplayGUIAbout: ; Displays the About Box + ;This will attach compile date onto the end of GUIGUIAboutText1 + pushad + mov eax,GUIGUIAboutTextA1 + mov [VERSION_STR],eax + call placedate + popad - ;This will attach compile date onto the end of GUIGUIAboutText1 - pushad - mov eax,GUIGUIAboutTextA1 - mov [VERSION_STR],eax - call placedate - popad + GUIDrawWindowBox 11,GUIAboutDisp + cmp byte[EEgg],1 + je near .eegg + GUIDisplayText 11,6,16,GUIGUIAboutTextA1 ; Text + GUIDisplayText 11,6,26,GUIGUIAboutTextA2 + GUIDisplayTextY 11,6,36,GUIGUIAboutTextB + GUIDisplayText 11,6,46,GUIGUIAboutTextB1 + GUIDisplayText 11,6,56,GUIGUIAboutTextB2 + GUIDisplayTextY 11,6,66,GUIGUIAboutTextC + GUIDisplayText 11,6,76,GUIGUIAboutTextC1 + GUIDisplayText 11,6,86,GUIGUIAboutTextC2 + GUIDisplayText 11,6,96,GUIGUIAboutTextC3 + GUIDisplayText 11,6,106,GUIGUIAboutTextC4 + GUIDisplayText 11,6,116,GUIGUIAboutTextC5 + GUIDisplayText 11,6,131,GUIGUIAboutTextD1 + GUIDisplayText 11,6,141,GUIGUIAboutTextD2 + GUIDisplayText 11,6,151,GUIGUIAboutTextD3 + GUIDisplayText 11,6,161,GUIGUIAboutTextD4 + GUIDisplayText 11,6,171,GUIGUIAboutTextD5 + GUIDisplayText 11,6,181,GUIGUIAboutTextD6 + GUIDisplayText 11,6,191,GUIGUIAboutTextD7 - GUIDrawWindowBox 11,GUIAboutDisp - cmp byte[EEgg],1 - je near .eegg - GUIDisplayText 11,6,16,GUIGUIAboutTextA1 ; Text - GUIDisplayText 11,6,26,GUIGUIAboutTextA2 - GUIDisplayTextY 11,6,36,GUIGUIAboutTextB - GUIDisplayText 11,6,46,GUIGUIAboutTextB1 - GUIDisplayText 11,6,56,GUIGUIAboutTextB2 - GUIDisplayTextY 11,6,66,GUIGUIAboutTextC - GUIDisplayText 11,6,76,GUIGUIAboutTextC1 - GUIDisplayText 11,6,86,GUIGUIAboutTextC2 - GUIDisplayText 11,6,96,GUIGUIAboutTextC3 - GUIDisplayText 11,6,106,GUIGUIAboutTextC4 - GUIDisplayText 11,6,116,GUIGUIAboutTextC5 - GUIDisplayText 11,6,131,GUIGUIAboutTextD1 - GUIDisplayText 11,6,141,GUIGUIAboutTextD2 - GUIDisplayText 11,6,151,GUIGUIAboutTextD3 - GUIDisplayText 11,6,161,GUIGUIAboutTextD4 - GUIDisplayText 11,6,171,GUIGUIAboutTextD5 - GUIDisplayText 11,6,181,GUIGUIAboutTextD6 - GUIDisplayText 11,6,191,GUIGUIAboutTextD7 - - mov byte[GUItextcolor],217 ; Buttons - cmp byte[GUIWincoladd],0 - je .zero3 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 ; Buttons + cmp byte[GUIWincoladd],0 + je .zero3 + mov byte[GUItextcolor],211 .zero3 - DrawGUIButton 11,90,22,175,32,GUIGUIAboutTextE1,65,0,0 - DrawGUIButton 11,90,33,175,43,GUIGUIAboutTextE2,66,0,0 - ret + DrawGUIButton 11,90,22,175,32,GUIGUIAboutTextE1,65,0,0 + DrawGUIButton 11,90,33,175,43,GUIGUIAboutTextE2,66,0,0 + ret .eegg ;Playground - GUIDisplayText 11,42,36,GUIGUIAboutTextF - GUIDisplayText 11,30,96,GUIGUIAboutTextFa - GUIDisplayText 11,39,106,GUIGUIAboutTextFb - ret + GUIDisplayText 11,42,36,GUIGUIAboutTextF + GUIDisplayText 11,30,96,GUIGUIAboutTextFa + GUIDisplayText 11,39,106,GUIGUIAboutTextFb + ret SECTION .data GUIGUIAboutTextA1 db 'ZSNES V',ZVERSION,' ',0 ;Need room for date @@ -3100,11 +3306,11 @@ GUIGUIAboutTextA2 db 'WIN VERSION',0 GUIGUIAboutTextA2 db 'SDL VERSION',0 %endif -GUIGUIAboutTextB db 'CODED BY : ',0 +GUIGUIAboutTextB db 'CODED BY: ',0 GUIGUIAboutTextB1 db ' ZSKNIGHT _DEMO_',0 GUIGUIAboutTextB2 db ' PAGEFAULT NACH',0 -GUIGUIAboutTextC db 'ASSISTANT CODERS :',0 +GUIGUIAboutTextC db 'ASSISTANT CODERS:',0 GUIGUIAboutTextC1 db ' PHAROS STATMAT',0 GUIGUIAboutTextC2 db ' TEUF HPSOLO',0 GUIGUIAboutTextC3 db ' THEODDONE33 SILOH',0 @@ -3129,130 +3335,128 @@ GUIGUIAboutTextFb db 'TO THE ABOUT BOX',0 SECTION .text DisplayGUIMovies: ; Movie Record/Playback options - GUIDrawWindowBox 15,GUIMovieDisp ; Display Window + GUIDrawWindowBox 15,GUIMovieDisp ; Display Window - cmp byte[MovieRecordWinVal],0 - je near .displayboxa + cmp byte[MovieRecordWinVal],0 + je near .displayboxa - GUIDisplayText 15,9,16,GUIMovieTextX1 ; Overwrite Message Box - GUIDisplayText 15,9,26,GUIMovieTextX2 - GUIDisplayText 15,9,41,GUIMovieTextX3 + GUIDisplayText 15,9,16,GUIMovieTextX1 ; Overwrite Message Box + GUIDisplayText 15,9,26,GUIMovieTextX2 + GUIDisplayText 15,9,41,GUIMovieTextX3 - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero4 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero4 + mov byte[GUItextcolor],211 .zero4 - DrawGUIButton 15,17,55,59,66,GUIMovieTextX4,19,0,0 ; Yes/No Buttons - DrawGUIButton 15,70,55,112,66,GUIMovieTextX5,20,0,0 - ret + DrawGUIButton 15,17,55,59,66,GUIMovieTextX4,19,0,0 ; Yes/No Buttons + DrawGUIButton 15,70,55,112,66,GUIMovieTextX5,20,0,0 + ret .displayboxa ; Main Window - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero + mov byte[GUItextcolor],211 .zero - DrawGUIButton 15,7,50,49,61,GUIMovieTextA1,16,0,0 ; Draw Buttons - DrawGUIButton 15,53,50,95,61,GUIMovieTextA2,17,0,0 - DrawGUIButton 15,101,50,145,61,GUIMovieTextA3,18,0,0 - DrawGUIButton 15,151,50,195,61,GUIMovieTextA4,32,0,0 - DrawGUIButton 15,7,68,109,79,GUIMovieTextA5,29,0,0 - DrawGUIButton 15,7,84,109,95,GUIMovieTextA6,30,0,0 - DrawGUIButton 15,7,100,109,111,GUIMovieTextA7,31,0,0 - DrawGUIButton 15,130,165,198,176,GUIMovieTextA8,34,0,0 + DrawGUIButton 15,7,50,49,61,GUIMovieTextA1,16,0,0 ; Draw Buttons + DrawGUIButton 15,53,50,95,61,GUIMovieTextA2,17,0,0 + DrawGUIButton 15,101,50,145,61,GUIMovieTextA3,18,0,0 + DrawGUIButton 15,151,50,195,61,GUIMovieTextA4,32,0,0 + DrawGUIButton 15,7,68,109,79,GUIMovieTextA5,29,0,0 + DrawGUIButton 15,7,84,109,95,GUIMovieTextA6,30,0,0 + DrawGUIButton 15,7,100,109,111,GUIMovieTextA7,31,0,0 + DrawGUIButton 15,130,165,198,176,GUIMovieTextA8,34,0,0 - GUIDisplayTextY 15,8,16,GUIMovieTextB ; Save Select - mov byte[GUIMovieTextB1],'0' - GUIDisplayText 15,22,28,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'1' - GUIDisplayText 15,42,28,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'2' - GUIDisplayText 15,62,28,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'3' - GUIDisplayText 15,82,28,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'4' - GUIDisplayText 15,102,28,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'5' - GUIDisplayText 15,22,38,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'6' - GUIDisplayText 15,42,38,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'7' - GUIDisplayText 15,62,38,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'8' - GUIDisplayText 15,82,38,GUIMovieTextB1 - mov byte[GUIMovieTextB1],'9' - GUIDisplayText 15,102,38,GUIMovieTextB1 + GUIDisplayTextY 15,8,16,GUIMovieTextB ; Slot text + mov byte[GUIMovieTextB1],'0' + GUIDisplayText 15,22,28,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'1' + GUIDisplayText 15,42,28,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'2' + GUIDisplayText 15,62,28,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'3' + GUIDisplayText 15,82,28,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'4' + GUIDisplayText 15,102,28,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'5' + GUIDisplayText 15,22,38,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'6' + GUIDisplayText 15,42,38,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'7' + GUIDisplayText 15,62,38,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'8' + GUIDisplayText 15,82,38,GUIMovieTextB1 + mov byte[GUIMovieTextB1],'9' + GUIDisplayText 15,102,38,GUIMovieTextB1 - GUIDisplayTextY 15,115,16,GUIMovieTextC ; "Start From" Section - GUIDisplayButtonHoleTu 15,115,25,byte[MovieStartMethod],0,GUIMovieTextC1,0 - GUIDisplayButtonHoleTu 15,152,25,byte[MovieStartMethod],1,GUIMovieTextC2,0 - GUIDisplayButtonHoleTu 15,200,25,byte[MovieStartMethod],2,GUIMovieTextC3,0 - GUIDisplayButtonHoleTu 15,115,35,byte[MovieStartMethod],3,GUIMovieTextC4,6 + GUIDisplayTextY 15,115,16,GUIMovieTextC ; "Start From" Section + GUIDisplayButtonHoleTu 15,115,25,byte[MovieStartMethod],0,GUIMovieTextC1,0 + GUIDisplayButtonHoleTu 15,152,25,byte[MovieStartMethod],1,GUIMovieTextC2,0 + GUIDisplayButtonHoleTu 15,200,25,byte[MovieStartMethod],2,GUIMovieTextC3,0 + GUIDisplayButtonHoleTu 15,115,35,byte[MovieStartMethod],3,GUIMovieTextC4,6 + GUIDisplayTextY 15,8,120,GUIMovieTextD ; Video Section + GUIDisplayButtonHoleTu 15,9,128,byte[MovieVideoMode],0,GUIMovieTextD1,1 + GUIDisplayButtonHoleTu 15,9,138,byte[MovieVideoMode],1,GUIMovieTextD2,2 + GUIDisplayButtonHoleTu 15,9,148,byte[MovieVideoMode],2,GUIMovieTextD3,0 + GUIDisplayButtonHoleTu 15,9,158,byte[MovieVideoMode],3,GUIMovieTextD4,9 + GUIDisplayButtonHoleTu 15,9,168,byte[MovieVideoMode],4,GUIMovieTextD5,0 + GUIDisplayButtonHoleTu 15,9,178,byte[MovieVideoMode],5,GUIMovieTextD6,0 - GUIDisplayTextY 15,8,120,GUIMovieTextD ; Video Section - GUIDisplayButtonHoleTu 15,9,128,byte[MovieVideoMode],0,GUIMovieTextD1,1 - GUIDisplayButtonHoleTu 15,9,138,byte[MovieVideoMode],1,GUIMovieTextD2,2 - GUIDisplayButtonHoleTu 15,9,148,byte[MovieVideoMode],2,GUIMovieTextD3,0 - GUIDisplayButtonHoleTu 15,9,158,byte[MovieVideoMode],3,GUIMovieTextD4,9 - GUIDisplayButtonHoleTu 15,9,168,byte[MovieVideoMode],4,GUIMovieTextD5,0 - GUIDisplayButtonHoleTu 15,9,178,byte[MovieVideoMode],5,GUIMovieTextD6,0 - - GUIDisplayTextY 15,129,120,GUIMovieTextE ; Audio Section - GUIDisplayCheckboxu 15,130,128,MovieAudio,GUIMovieTextE1,0 - cmp byte[MovieAudio],1 - jne near .nomux - GUIDisplayCheckboxu 15,130,138,MovieAudioCompress,GUIMovieTextE3,2 - cmp byte[MovieVideoMode],2 - jl near .nomux - GUIDisplayCheckboxu 15,130,148,MovieVideoAudio,GUIMovieTextE2,9 + GUIDisplayTextY 15,129,120,GUIMovieTextE ; Audio Section + GUIDisplayCheckboxu 15,130,128,MovieAudio,GUIMovieTextE1,0 + cmp byte[MovieAudio],1 + jne near .nomux + GUIDisplayCheckboxu 15,130,138,MovieAudioCompress,GUIMovieTextE3,2 + cmp byte[MovieVideoMode],2 + jl near .nomux + GUIDisplayCheckboxu 15,130,148,MovieVideoAudio,GUIMovieTextE2,9 .nomux - mov dword[GUIMovieTextZ+9],'INAC' ; Determine and Display Status - mov dword[GUIMovieTextZ+13],'TIVE' - mov dword[GUIMovieTextZ+17],' ' - cmp byte[MovieProcessing],1 - jne .noplay - mov dword[GUIMovieTextZ+9],'PLAY' - mov dword[GUIMovieTextZ+13],'ING ' - mov dword[GUIMovieTextZ+17],' ' + mov dword[GUIMovieTextZ+8],'INAC' ; Determine and Display Status + mov dword[GUIMovieTextZ+12],'TIVE' + mov dword[GUIMovieTextZ+16],' ' + cmp byte[MovieProcessing],1 + jne .noplay + mov dword[GUIMovieTextZ+8],'PLAY' + mov dword[GUIMovieTextZ+12],'ING ' + mov dword[GUIMovieTextZ+16],' ' .noplay - cmp byte[MovieProcessing],2 - jne .norec - mov dword[GUIMovieTextZ+9],'RECO' - mov dword[GUIMovieTextZ+13],'RDIN' - mov dword[GUIMovieTextZ+17],'G ' + cmp byte[MovieProcessing],2 + jne .norec + mov dword[GUIMovieTextZ+8],'RECO' + mov dword[GUIMovieTextZ+12],'RDIN' + mov dword[GUIMovieTextZ+16],'G ' .norec - cmp byte[MovieProcessing],3 - jne .nooldplay - mov dword[GUIMovieTextZ+9],'OLD ' - mov dword[GUIMovieTextZ+13],'PLAY' - mov dword[GUIMovieTextZ+17],'ING ' + cmp byte[MovieProcessing],3 + jne .nooldplay + mov dword[GUIMovieTextZ+8],'OLD ' + mov dword[GUIMovieTextZ+12],'PLAY' + mov dword[GUIMovieTextZ+16],'ING ' .nooldplay - GUIDisplayTextY 15,6,192,GUIMovieTextZ - ; Display Radio buttons - GUIDisplayButtonHole 15,10,25,byte[CMovieExt],'v' ; Select: - GUIDisplayButtonHole 15,30,25,byte[CMovieExt],'1' - GUIDisplayButtonHole 15,50,25,byte[CMovieExt],'2' - GUIDisplayButtonHole 15,70,25,byte[CMovieExt],'3' - GUIDisplayButtonHole 15,90,25,byte[CMovieExt],'4' - GUIDisplayButtonHole 15,10,35,byte[CMovieExt],'5' - GUIDisplayButtonHole 15,30,35,byte[CMovieExt],'6' - GUIDisplayButtonHole 15,50,35,byte[CMovieExt],'7' - GUIDisplayButtonHole 15,70,35,byte[CMovieExt],'8' - GUIDisplayButtonHole 15,90,35,byte[CMovieExt],'9' + GUIDisplayTextY 15,6,192,GUIMovieTextZ + ; Display Radio buttons + GUIDisplayButtonHole 15,10,25,byte[CMovieExt],'v' + GUIDisplayButtonHole 15,30,25,byte[CMovieExt],'1' + GUIDisplayButtonHole 15,50,25,byte[CMovieExt],'2' + GUIDisplayButtonHole 15,70,25,byte[CMovieExt],'3' + GUIDisplayButtonHole 15,90,25,byte[CMovieExt],'4' + GUIDisplayButtonHole 15,10,35,byte[CMovieExt],'5' + GUIDisplayButtonHole 15,30,35,byte[CMovieExt],'6' + GUIDisplayButtonHole 15,50,35,byte[CMovieExt],'7' + GUIDisplayButtonHole 15,70,35,byte[CMovieExt],'8' + GUIDisplayButtonHole 15,90,35,byte[CMovieExt],'9' + DDrawBox 15,115,70,[KeyInsrtChap] ; Chapter Keyboard Shortcut Boxes + DDrawBox 15,115,86,[KeyPrevChap] + DDrawBox 15,115,102,[KeyNextChap] - DDrawBox 15,115,70,[KeyInsrtChap] ; Chapter Keyboard Shortcut Boxes - DDrawBox 15,115,86,[KeyPrevChap] - DDrawBox 15,115,102,[KeyNextChap] - - GUIDisplayCheckboxu 15,144,67,MovieDisplayFrame,GUIMovieTextB2,0 ; Checkbox - ret + GUIDisplayCheckboxu 15,144,67,MovieDisplayFrame,GUIMovieTextB2,0 ; Checkbox + ret SECTION .data -GUIMovieTextA1 db 'PLAY',0 ; Buttons +GUIMovieTextA1 db 'PLAY',0 GUIMovieTextA2 db 'RECORD',0 GUIMovieTextA3 db 'STOP',0 GUIMovieTextA4 db 'APPEND',0 @@ -3281,657 +3485,653 @@ GUIMovieTextD6 db 'CUSTOM',0 GUIMovieTextE db 'DUMP AUDIO OPTIONS',0 GUIMovieTextE1 db 'AUDIO',0 -GUIMovieTextE2 db 'AUDIO IN VIDEO',0 +GUIMovieTextE2 db 'MERGE WITH VIDEO',0 GUIMovieTextE3 db 'COMPRESS',0 - -GUIMovieTextX1 db 'WARNING : THIS MOVIE',0 ; Overwrite Window -GUIMovieTextX2 db ' FILE ALREADY EXISTS',0 -GUIMovieTextX3 db 'OKAY TO OVERWRITE?',0 +GUIMovieTextX1 db 'WARNING: THIS MOVIE',0 ; Overwrite Window +GUIMovieTextX2 db 'FILE ALREADY EXISTS',0 +GUIMovieTextX3 db 'OKAY TO OVERWRITE ?',0 GUIMovieTextX4 db 'YES',0 GUIMovieTextX5 db 'NO',0 -GUIMovieTextZ db 'STATUS : ',0 +GUIMovieTextZ db 'STATUS: ',0 NEWSYM CMovieExt, db 'v' SECTION .text -; Key types: Up, Down, Left, Right, A, B, X, Y, L, R (Press/Relase/P+R) -; Frame delays: 1 frame, 2, 3, 4, 5, 1 sec., 2, 3 ,4 ,5 - %macro DrawBorderedBox 6; - ; draw borders - mov dl,[GUIWincol] - DrawGUIWinBox %1,%2,%6,%4,%3,dl ; For some reason, this freezes if I - ; replace %6 with %3-1 - mov dl,[GUIWincol] - add dl,1 - DrawGUIWinBox %1,%2-1,%3,%2,%5,dl - mov dl,[GUIWincol] - add dl,4 - DrawGUIWinBox %1,%2,%5,%4,%5+1,dl - mov dl,[GUIWincol] - add dl,3 - DrawGUIWinBox %1,%4,%3,%4+1,%5,dl - DrawGUIWinBox %1,%2,%3,%4,%5,167 + ; draw borders + mov dl,[GUIWincol] + DrawGUIWinBox %1,%2,%6,%4,%3,dl ; freezes if you replace %6 with %3-1 + mov dl,[GUIWincol] + add dl,1 + DrawGUIWinBox %1,%2-1,%3,%2,%5,dl + mov dl,[GUIWincol] + add dl,4 + DrawGUIWinBox %1,%2,%5,%4,%5+1,dl + mov dl,[GUIWincol] + add dl,3 + DrawGUIWinBox %1,%4,%3,%4+1,%5,dl + DrawGUIWinBox %1,%2,%3,%4,%5,167 %endmacro %macro DrawBorderedBoxB 7 ; Special function for combo displays - ; draw borders - mov dl,[GUIWincol] - DrawGUIWinBox %1,%2,%6,%4,%3,dl - mov dl,[GUIWincol] - add dl,1 - DrawGUIWinBox %1,%2-1,%3,%2,%5,dl - mov dl,[GUIWincol] - add dl,4 - DrawGUIWinBox %1,%2,%5,%4,%5+1,dl - mov dl,[GUIWincol] - add dl,3 - DrawGUIWinBox %1,%4,%3,%4+1,%5,dl - DrawGUIWinBox %1,%2,%3,%4,%5,167 - mov byte[GUIComboText3],%7 - mov byte[GUItextcolor],223 - GUIOuttextwin2 %1,%2+5,%3+2,GUIComboText3 - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + ; draw borders + mov dl,[GUIWincol] + DrawGUIWinBox %1,%2,%6,%4,%3,dl + mov dl,[GUIWincol] + add dl,1 + DrawGUIWinBox %1,%2-1,%3,%2,%5,dl + mov dl,[GUIWincol] + add dl,4 + DrawGUIWinBox %1,%2,%5,%4,%5+1,dl + mov dl,[GUIWincol] + add dl,3 + DrawGUIWinBox %1,%4,%3,%4+1,%5,dl + DrawGUIWinBox %1,%2,%3,%4,%5,167 + mov byte[GUIComboText3],%7 + mov byte[GUItextcolor],223 + GUIOuttextwin2 %1,%2+5,%3+2,GUIComboText3 + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 %1,%2+4,%3+1,GUIComboText3 + GUIOuttextwin2 %1,%2+4,%3+1,GUIComboText3 %endmacro %macro DrawBorderedBoxB2 7 ; Special function for combo displays - ; draw borders - mov dl,[GUIWincol] - DrawGUIWinBox %1,%2,%6,%4,%3,dl - mov dl,[GUIWincol] - add dl,1 - DrawGUIWinBox %1,%2-1,%3,%2,%5,dl - mov dl,[GUIWincol] - add dl,4 - DrawGUIWinBox %1,%2,%5,%4,%5+1,dl - mov dl,[GUIWincol] - add dl,3 - DrawGUIWinBox %1,%4,%3,%4+1,%5,dl - DrawGUIWinBox %1,%2,%3,%4,%5,167 - mov byte[GUIComboText3b+1],%7 - mov byte[GUItextcolor],223 - GUIOuttextwin2 %1,%2+2,%3+2,GUIComboText3b - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + ; draw borders + mov dl,[GUIWincol] + DrawGUIWinBox %1,%2,%6,%4,%3,dl + mov dl,[GUIWincol] + add dl,1 + DrawGUIWinBox %1,%2-1,%3,%2,%5,dl + mov dl,[GUIWincol] + add dl,4 + DrawGUIWinBox %1,%2,%5,%4,%5+1,dl + mov dl,[GUIWincol] + add dl,3 + DrawGUIWinBox %1,%4,%3,%4+1,%5,dl + DrawGUIWinBox %1,%2,%3,%4,%5,167 + mov byte[GUIComboText3b+1],%7 + mov byte[GUItextcolor],223 + GUIOuttextwin2 %1,%2+2,%3+2,GUIComboText3b + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - GUIOuttextwin2 %1,%2+1,%3+1,GUIComboText3b + GUIOuttextwin2 %1,%2+1,%3+1,GUIComboText3b %endmacro %macro InitTextColor 0 - mov al,217 - cmp byte[GUIWincoladd],0 - je .zero3 - mov al,211 + mov al,217 + cmp byte[GUIWincoladd],0 + je .zero3 + mov al,211 .zero3 - sub al,15 - mov [TextColorSp+2],al - mov al,[GUIWincol] - mov [TextColorSp],al - mov al,163 - cmp byte[GUIWincoladd],0 - je .zero - mov al,164 - mov byte[GUItextcolor],164 + sub al,15 + mov [TextColorSp+2],al + mov al,[GUIWincol] + mov [TextColorSp],al + mov al,163 + cmp byte[GUIWincoladd],0 + je .zero + mov al,164 + mov byte[GUItextcolor],164 .zero - mov [TextColorSp+1],al + mov [TextColorSp+1],al %endmacro %macro GUIOuttextwin2b 4 ; Special, yellow text - mov al,[TextColorSp] - mov [GUItextcolor],al - GUIOuttextwin2 %1,%2,%3,%4 - mov al,[TextColorSp+1] - mov [GUItextcolor],al - GUIOuttextwin2 %1,%2-1,%3-1,%4 + mov al,[TextColorSp] + mov [GUItextcolor],al + GUIOuttextwin2 %1,%2,%3,%4 + mov al,[TextColorSp+1] + mov [GUItextcolor],al + GUIOuttextwin2 %1,%2-1,%3-1,%4 %endmacro %macro GUIOuttextwin2c 4 ; Boxed, green text - mov byte[GUItextcolor],223 - push ecx ;Needed for the macro below - GUIOuttextwin2 %1,%2,%3,%4 - pop ecx - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je %%zero - mov byte[GUItextcolor],222 + mov byte[GUItextcolor],223 + push ecx ;Needed for the macro below + GUIOuttextwin2 %1,%2,%3,%4 + pop ecx + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je %%zero + mov byte[GUItextcolor],222 %%zero - push esi - mov esi,%2 - dec esi - GUIOuttextwin2 %1,esi,%3-1,%4 - pop esi + push esi + mov esi,%2 + dec esi + GUIOuttextwin2 %1,esi,%3-1,%4 + pop esi %endmacro %macro GUIOuttextwin2d 5 ; Boxed, green text, limited to 5th param - push ecx - mov ecx,%4 ;Move pointer to text into ecx + push ecx + mov ecx,%4 ;Move pointer to text into ecx %%zero - cmp byte[ecx],0 ;Check for null in string - je %%one - inc ecx - jmp %%zero + cmp byte[ecx],0 ; Check for null in string + je %%one + inc ecx + jmp %%zero %%one - push eax - mov eax,ecx ;Move pointer to null into eax - sub ecx,%5 ;Move ecx pointer back by length to display - cmp ecx,%4 - jae %%two - mov ecx,%4 ;If pointer is before beginning, reset pointer to beginning + push eax + mov eax,ecx ; Move pointer to null into eax + sub ecx,%5 ; Move ecx pointer back by length to display + cmp ecx,%4 + jae %%two + mov ecx,%4 ; If pointer is before beginning, reset pointer to beginning %%two - sub eax,ecx ;Subtract new pointer from old null pointer which gives us length of chars - push eax - GUIOuttextwin2c %1,%2,%3,ecx - pop eax - push ebx - pop ecx - call BlinkCursorCheck - cmp ebx,%4 - pop ebx - jne near %%fixreg - cmp byte[GUIBlinkCursor],' ' - je %%three - mov byte[GUIBlinkCursor],' ' - jmp %%four + sub eax,ecx ; Subtract pointer from \0 pointer gives us string length + push eax + GUIOuttextwin2c %1,%2,%3,ecx + pop eax + push ebx + pop ecx + call BlinkCursorCheck + cmp ebx,%4 + pop ebx + jne near %%fixreg + cmp byte[GUIBlinkCursor],' ' + je %%three + mov byte[GUIBlinkCursor],' ' + jmp %%four %%three - mov byte[GUIBlinkCursor],'_' + mov byte[GUIBlinkCursor],'_' %%four - imul eax,6 - add eax,%2 - push ecx - mov ecx,eax - GUIOuttextwin2c %1,ecx,%3,GUIBlinkCursor - pop ecx + imul eax,6 + add eax,%2 + push ecx + mov ecx,eax + GUIOuttextwin2c %1,ecx,%3,GUIBlinkCursor + pop ecx %%fixreg - pop eax + pop eax %endmacro %macro DrawSlideBar 10 - DrawSlideBarWin %1,%2,%3+8,%4,%5,%6,%7-16,%8 - mov al,[TextColorSp+2] - mov [GUItextcolor],al - cmp byte[GUICHold],%9 - jne .noholda - add byte[GUIWincoladd],3 + DrawSlideBarWin %1,%2,%3+8,%4,%5,%6,%7-16,%8 + mov al,[TextColorSp+2] + mov [GUItextcolor],al + cmp byte[GUICHold],%9 + jne .noholda + add byte[GUIWincoladd],3 .noholda - GUIDisplayIconWin %1,%2,%3,GUIIconDataUpArrow - cmp byte[GUICHold],%9 - jne .noholda2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin %1,%2,%3,GUIIconDataUpArrow + cmp byte[GUICHold],%9 + jne .noholda2 + sub byte[GUIWincoladd],3 .noholda2 - mov al,[TextColorSp+2] - mov [GUItextcolor],al - cmp byte[GUICHold],%10 - jne .noholdb - add byte[GUIWincoladd],3 + mov al,[TextColorSp+2] + mov [GUItextcolor],al + cmp byte[GUICHold],%10 + jne .noholdb + add byte[GUIWincoladd],3 .noholdb - GUIDisplayIconWin %1,%2,%3+%7-8,GUIIconDataDownArrow - cmp byte[GUICHold],%10 - jne .noholdb2 - sub byte[GUIWincoladd],3 + GUIDisplayIconWin %1,%2,%3+%7-8,GUIIconDataDownArrow + cmp byte[GUICHold],%10 + jne .noholdb2 + sub byte[GUIWincoladd],3 .noholdb2 %endmacro %macro DetermineChar 2 - cmp al,%1 - jne %%control - mov al,%2 + cmp al,%1 + jne %%control + mov al,%2 %%control %endmacro +; Key types: Up, Down, Left, Right, A, B, X, Y, L, R (Press/Relase/P+R) +; Frame delays: 1 frame, 2, 3, 4, 5, 1 sec., 2, 3 ,4 ,5 + DisplayGUICombo: - mov eax,[GUIccombcursloc] - cmp [GUIccomblcursloc],eax - je .nolastcurschange - mov [GUIccomblcursloc],eax - ; copy contents into temporary variables - mov esi,[GUIccombcursloc] - shl esi,6 - add esi,[GUIccombcursloc] - add esi,[GUIccombcursloc] - add esi,CombinDataGlob - cmp byte[GUIComboGameSpec],0 - je .nogamespecb - sub esi,CombinDataGlob - add esi,CombinDataLocl + mov eax,[GUIccombcursloc] + cmp [GUIccomblcursloc],eax + je .nolastcurschange + mov [GUIccomblcursloc],eax + ; copy contents into temporary variables + mov esi,[GUIccombcursloc] + shl esi,6 + add esi,[GUIccombcursloc] + add esi,[GUIccombcursloc] + add esi,CombinDataGlob + cmp byte[GUIComboGameSpec],0 + je .nogamespecb + sub esi,CombinDataGlob + add esi,CombinDataLocl .nogamespecb - ; copy 20 bytes to GUIComboTextH - mov ecx,20 - mov edi,GUIComboTextH - rep movsb - ; copy 42 bytes to GUIComboData - mov ecx,42 - mov edi,GUIComboData - rep movsb - mov ax,[esi] - mov [GUIComboKey],ax - mov al,[esi+2] - mov [GUIComboPNum],al - mov al,[esi+3] - mov [GUIComboLHorz],al - ; determine length of combo data - mov eax,GUIComboData - xor ecx,ecx + ; copy 20 bytes to GUIComboTextH + mov ecx,20 + mov edi,GUIComboTextH + rep movsb + ; copy 42 bytes to GUIComboData + mov ecx,42 + mov edi,GUIComboData + rep movsb + mov ax,[esi] + mov [GUIComboKey],ax + mov al,[esi+2] + mov [GUIComboPNum],al + mov al,[esi+3] + mov [GUIComboLHorz],al + ; determine length of combo data + mov eax,GUIComboData + xor ecx,ecx .notfin - cmp byte[eax],0 - je .fin - inc eax - inc ecx - jmp .notfin + cmp byte[eax],0 + je .fin + inc eax + inc ecx + jmp .notfin .fin - mov [GUINumCombo],cl + mov [GUINumCombo],cl .nolastcurschange - ; copy into data if description equal - mov esi,[GUIccombcursloc] - shl esi,6 - add esi,[GUIccombcursloc] - add esi,[GUIccombcursloc] - add esi,CombinDataGlob - cmp byte[GUIComboGameSpec],0 - je .nogamespecc - sub esi,CombinDataGlob - add esi,CombinDataLocl + ; copy into data if description equal + mov esi,[GUIccombcursloc] + shl esi,6 + add esi,[GUIccombcursloc] + add esi,[GUIccombcursloc] + add esi,CombinDataGlob + cmp byte[GUIComboGameSpec],0 + je .nogamespecc + sub esi,CombinDataGlob + add esi,CombinDataLocl .nogamespecc - mov ecx,20 - mov edi,GUIComboTextH + mov ecx,20 + mov edi,GUIComboTextH .comploop - mov al,[esi] - cmp al,[edi] - jne near .notequal - or al,al - jz .donecomp - inc esi - inc edi - dec ecx - jnz .comploop + mov al,[esi] + cmp al,[edi] + jne near .notequal + or al,al + jz .donecomp + inc esi + inc edi + dec ecx + jnz .comploop .donecomp - call ComboClip - mov edi,[GUIccombcursloc] - shl edi,6 - add edi,[GUIccombcursloc] - add edi,[GUIccombcursloc] - add edi,CombinDataGlob - cmp byte[GUIComboGameSpec],0 - je .nogamespecd - sub edi,CombinDataGlob - add edi,CombinDataLocl + call ComboClip + mov edi,[GUIccombcursloc] + shl edi,6 + add edi,[GUIccombcursloc] + add edi,[GUIccombcursloc] + add edi,CombinDataGlob + cmp byte[GUIComboGameSpec],0 + je .nogamespecd + sub edi,CombinDataGlob + add edi,CombinDataLocl .nogamespecd - mov ecx,20 - mov esi,GUIComboTextH - rep movsb - ; copy 42 bytes to GUIComboData - mov ecx,42 - mov esi,GUIComboData - rep movsb - mov ax,[GUIComboKey] - mov [edi],ax - mov al,[GUIComboPNum] - mov [edi+2],al - mov al,[GUIComboLHorz] - mov [edi+3],al + mov ecx,20 + mov esi,GUIComboTextH + rep movsb + ; copy 42 bytes to GUIComboData + mov ecx,42 + mov esi,GUIComboData + rep movsb + mov ax,[GUIComboKey] + mov [edi],ax + mov al,[GUIComboPNum] + mov [edi+2],al + mov al,[GUIComboLHorz] + mov [edi+3],al .notequal - InitTextColor + InitTextColor - cmp byte[GUIWincoladd],0 - je .zero4 - mov byte[GUItextcolor],211 + cmp byte[GUIWincoladd],0 + je .zero4 + mov byte[GUItextcolor],211 .zero4 - GUIDrawWindowBox 16,GUIComboDisp + GUIDrawWindowBox 16,GUIComboDisp - DrawBorderedBox 16,10,20,190,80,19 - DrawBorderedBox 16,37,91,157,99,90 - DrawBorderedBox 16,10,91,32,99,90 - DrawBorderedBox 16,10,110,220,146,109 + DrawBorderedBox 16,10,20,190,80,19 + DrawBorderedBox 16,37,91,157,99,90 + DrawBorderedBox 16,10,91,32,99,90 + DrawBorderedBox 16,10,110,220,146,109 - ; Draw SlideBar - ; win#,X,Y start,List Loc,List size,# Lines,Bar Size(Y),UpArrowResource#,DownArrowRes# - DrawSlideBar 16,192,20,[GUIccombviewloc],[NumCombo],8,61,GUICSStC,13,14 + ; Draw SlideBar + ; win#,X,Y start,List Loc,List size,# Lines,Bar Size(Y),UpArrowResource#,DownArrowRes# + DrawSlideBar 16,192,20,[GUIccombviewloc],[NumCombo],8,61,GUICSStC,13,14 - ; Draw control boxes - DrawBorderedBoxB 16,75,150,85,157,149,251 - DrawBorderedBoxB 16,89,150,99,157,149,252 - DrawBorderedBoxB 16,103,150,113,157,149,253 - DrawBorderedBoxB 16,117,150,127,157,149,254 - DrawBorderedBoxB 16,131,150,141,157,149,'A' - DrawBorderedBoxB 16,145,150,155,157,149,'B' - DrawBorderedBoxB 16,159,150,169,157,149,'X' - DrawBorderedBoxB 16,173,150,183,157,149,'Y' - DrawBorderedBoxB 16,187,150,197,157,149,'L' - DrawBorderedBoxB 16,201,150,211,157,149,'R' - DrawBorderedBoxB2 16,215,150,227,157,149,'T' - DrawBorderedBoxB2 16,231,150,243,157,149,'L' + ; Draw control boxes + DrawBorderedBoxB 16,75,150,85,157,149,251 + DrawBorderedBoxB 16,89,150,99,157,149,252 + DrawBorderedBoxB 16,103,150,113,157,149,253 + DrawBorderedBoxB 16,117,150,127,157,149,254 + DrawBorderedBoxB 16,131,150,141,157,149,'A' + DrawBorderedBoxB 16,145,150,155,157,149,'B' + DrawBorderedBoxB 16,159,150,169,157,149,'X' + DrawBorderedBoxB 16,173,150,183,157,149,'Y' + DrawBorderedBoxB 16,187,150,197,157,149,'L' + DrawBorderedBoxB 16,201,150,211,157,149,'R' + DrawBorderedBoxB2 16,215,150,227,157,149,'T' + DrawBorderedBoxB2 16,231,150,243,157,149,'L' - DrawBorderedBoxB 16,75,160,85,167,159,251 - DrawBorderedBoxB 16,89,160,99,167,159,252 - DrawBorderedBoxB 16,103,160,113,167,159,253 - DrawBorderedBoxB 16,117,160,127,167,159,254 - DrawBorderedBoxB 16,131,160,141,167,159,'A' - DrawBorderedBoxB 16,145,160,155,167,159,'B' - DrawBorderedBoxB 16,159,160,169,167,159,'X' - DrawBorderedBoxB 16,173,160,183,167,159,'Y' - DrawBorderedBoxB 16,187,160,197,167,159,'L' - DrawBorderedBoxB 16,201,160,211,167,159,'R' - DrawBorderedBoxB2 16,215,160,227,167,159,'T' - DrawBorderedBoxB2 16,231,160,243,167,159,'L' + DrawBorderedBoxB 16,75,160,85,167,159,251 + DrawBorderedBoxB 16,89,160,99,167,159,252 + DrawBorderedBoxB 16,103,160,113,167,159,253 + DrawBorderedBoxB 16,117,160,127,167,159,254 + DrawBorderedBoxB 16,131,160,141,167,159,'A' + DrawBorderedBoxB 16,145,160,155,167,159,'B' + DrawBorderedBoxB 16,159,160,169,167,159,'X' + DrawBorderedBoxB 16,173,160,183,167,159,'Y' + DrawBorderedBoxB 16,187,160,197,167,159,'L' + DrawBorderedBoxB 16,201,160,211,167,159,'R' + DrawBorderedBoxB2 16,215,160,227,167,159,'T' + DrawBorderedBoxB2 16,231,160,243,167,159,'L' - DrawBorderedBoxB 16,75,170,85,177,169,251 - DrawBorderedBoxB 16,89,170,99,177,169,252 - DrawBorderedBoxB 16,103,170,113,177,169,253 - DrawBorderedBoxB 16,117,170,127,177,169,254 - DrawBorderedBoxB 16,131,170,141,177,169,'A' - DrawBorderedBoxB 16,145,170,155,177,169,'B' - DrawBorderedBoxB 16,159,170,169,177,169,'X' - DrawBorderedBoxB 16,173,170,183,177,169,'Y' - DrawBorderedBoxB 16,187,170,197,177,169,'L' - DrawBorderedBoxB 16,201,170,211,177,169,'R' - DrawBorderedBoxB2 16,215,170,227,177,169,'T' - DrawBorderedBoxB2 16,231,170,243,177,169,'L' + DrawBorderedBoxB 16,75,170,85,177,169,251 + DrawBorderedBoxB 16,89,170,99,177,169,252 + DrawBorderedBoxB 16,103,170,113,177,169,253 + DrawBorderedBoxB 16,117,170,127,177,169,254 + DrawBorderedBoxB 16,131,170,141,177,169,'A' + DrawBorderedBoxB 16,145,170,155,177,169,'B' + DrawBorderedBoxB 16,159,170,169,177,169,'X' + DrawBorderedBoxB 16,173,170,183,177,169,'Y' + DrawBorderedBoxB 16,187,170,197,177,169,'L' + DrawBorderedBoxB 16,201,170,211,177,169,'R' + DrawBorderedBoxB2 16,215,170,227,177,169,'T' + DrawBorderedBoxB2 16,231,170,243,177,169,'L' - DrawBorderedBoxB 16,10,189,20,196,188,'1' - DrawBorderedBoxB 16,24,189,34,196,188,'2' - DrawBorderedBoxB 16,38,189,48,196,188,'3' - DrawBorderedBoxB 16,52,189,62,196,188,'4' - DrawBorderedBoxB 16,66,189,76,196,188,'5' - DrawBorderedBoxB 16,80,189,90,196,188,'9' + DrawBorderedBoxB 16,10,189,20,196,188,'1' + DrawBorderedBoxB 16,24,189,34,196,188,'2' + DrawBorderedBoxB 16,38,189,48,196,188,'3' + DrawBorderedBoxB 16,52,189,62,196,188,'4' + DrawBorderedBoxB 16,66,189,76,196,188,'5' + DrawBorderedBoxB 16,80,189,90,196,188,'9' - DrawBorderedBoxB 16,107,189,117,196,188,250 - DrawBorderedBoxB 16,121,189,131,196,188,'1' - DrawBorderedBoxB 16,135,189,145,196,188,'2' - DrawBorderedBoxB 16,149,189,159,196,188,'3' - DrawBorderedBoxB 16,163,189,173,196,188,'4' - DrawBorderedBoxB 16,177,189,187,196,188,'5' + DrawBorderedBoxB 16,107,189,117,196,188,250 + DrawBorderedBoxB 16,121,189,131,196,188,'1' + DrawBorderedBoxB 16,135,189,145,196,188,'2' + DrawBorderedBoxB 16,149,189,159,196,188,'3' + DrawBorderedBoxB 16,163,189,173,196,188,'4' + DrawBorderedBoxB 16,177,189,187,196,188,'5' - DrawBorderedBoxB 16,204,189,218,196,188,255 + DrawBorderedBoxB 16,204,189,218,196,188,255 - GUIDisplayText 16,10,13,GUIComboText1 ; Text - GUIDisplayText 16,138,13,GUIComboText2 - GUIDisplayText 16,38,84,GUIComboTextE - GUIDisplayText 16,10,84,GUIComboTextF - GUIDisplayText 16,10,103,GUIComboText4 - GUIDisplayText 16,10,152,GUIComboText5 - GUIDisplayText 16,10,162,GUIComboText6 - GUIDisplayText 16,10,172,GUIComboText7 - GUIDisplayText 16,10,182,GUIComboText8 - GUIDisplayText 16,114,182,GUIComboText9 - GUIDisplayText 16,204,182,GUIComboTextG - GUIDisplayText 16,145,85,GUIComboTextI -; GUIDisplayText 16,176,93,GUIComboTextJ -; GUIDisplayText 16,176,101,GUIComboTextK + GUIDisplayText 16,10,13,GUIComboText1 ; Text + GUIDisplayText 16,138,13,GUIComboText2 + GUIDisplayText 16,38,84,GUIComboTextE + GUIDisplayText 16,10,84,GUIComboTextF + GUIDisplayText 16,10,103,GUIComboText4 + GUIDisplayText 16,10,152,GUIComboText5 + GUIDisplayText 16,10,162,GUIComboText6 + GUIDisplayText 16,10,172,GUIComboText7 + GUIDisplayText 16,10,182,GUIComboText8 + GUIDisplayText 16,114,182,GUIComboText9 + GUIDisplayText 16,204,182,GUIComboTextG + GUIDisplayText 16,145,85,GUIComboTextI - DrawGUIButton 16,202,20,246,31,GUIComboTextA,60,-1,0 ; Buttons - DrawGUIButton 16,202,35,246,46,GUIComboTextB,61,-1,0 - DrawGUIButton 16,202,50,246,61,GUIComboTextC,62,-1,0 - DrawGUIButton 16,202,65,246,76,GUIComboTextD,63,-1,0 + DrawGUIButton 16,202,20,246,31,GUIComboTextA,60,-1,0 ; Buttons + DrawGUIButton 16,202,35,246,46,GUIComboTextB,61,-1,0 + DrawGUIButton 16,202,50,246,61,GUIComboTextC,62,-1,0 + DrawGUIButton 16,202,65,246,76,GUIComboTextD,63,-1,0 - ; Calculate Text Cursor Position / Draw Box Text - xor eax,eax + ; Calculate Text Cursor Position / Draw Box Text + xor eax,eax .nozerocp - cmp byte[GUIComboTextH+eax],0 - je .zerocp - inc eax - jmp .nozerocp + cmp byte[GUIComboTextH+eax],0 + je .zerocp + inc eax + jmp .nozerocp .zerocp - mov [GUIComboPos],al - test byte[GUICCFlash],8 - jnz .nound - mov byte[GUIComboTextH+eax],'_' - mov byte[GUIComboTextH+eax+1],0 + mov [GUIComboPos],al + test byte[GUICCFlash],8 + jnz .nound + mov byte[GUIComboTextH+eax],'_' + mov byte[GUIComboTextH+eax+1],0 .nound - GUIOuttextwin2c 16,39,94,GUIComboTextH - xor eax,eax - mov al,[GUIComboPos] - mov byte[GUIComboTextH+eax],0 + GUIOuttextwin2c 16,39,94,GUIComboTextH + xor eax,eax + mov al,[GUIComboPos] + mov byte[GUIComboTextH+eax],0 - ; Display Current Combo Key - mov eax,[GUIComboKey] - mov ebx,[ScanCodeListing+eax*3] - mov [GUIGameDisplayKy],ebx - mov byte[GUIGameDisplayKy+3],0 - GUIOuttextwin2c 16,14,94,GUIGameDisplayKy + ; Display Current Combo Key + mov eax,[GUIComboKey] + mov ebx,[ScanCodeListing+eax*3] + mov [GUIGameDisplayKy],ebx + mov byte[GUIGameDisplayKy+3],0 + GUIOuttextwin2c 16,14,94,GUIGameDisplayKy - ; Buttons - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero20 - mov byte[GUItextcolor],211 + ; Buttons + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero20 + mov byte[GUItextcolor],211 .zero20 - DrawGUIButton 16,202,20,246,31,GUIComboTextA,60,-1,0 - DrawGUIButton 16,202,35,246,46,GUIComboTextB,61,-1,0 - DrawGUIButton 16,202,50,246,61,GUIComboTextC,62,-1,0 - DrawGUIButton 16,202,65,246,76,GUIComboTextD,63,-1,0 + DrawGUIButton 16,202,20,246,31,GUIComboTextA,60,-1,0 + DrawGUIButton 16,202,35,246,46,GUIComboTextB,61,-1,0 + DrawGUIButton 16,202,50,246,61,GUIComboTextC,62,-1,0 + DrawGUIButton 16,202,65,246,76,GUIComboTextD,63,-1,0 - ; Hole Switches - GUIDisplayButtonHole 16,158,82,byte[GUIComboPNum],0 - GUIDisplayButtonHole 16,176,82,byte[GUIComboPNum],1 - GUIDisplayButtonHole 16,194,82,byte[GUIComboPNum],2 - GUIDisplayButtonHole 16,212,82,byte[GUIComboPNum],3 - GUIDisplayButtonHole 16,230,82,byte[GUIComboPNum],4 - ; Check Box - GUIDisplayCheckbox 16,163,88,GUIComboLHorz,GUIComboTextJ - GUIDisplayCheckbox 16,163,96,GUIComboGameSpec,GUIComboTextK + ; Radio Switches + GUIDisplayButtonHole 16,158,82,byte[GUIComboPNum],0 + GUIDisplayButtonHole 16,176,82,byte[GUIComboPNum],1 + GUIDisplayButtonHole 16,194,82,byte[GUIComboPNum],2 + GUIDisplayButtonHole 16,212,82,byte[GUIComboPNum],3 + GUIDisplayButtonHole 16,230,82,byte[GUIComboPNum],4 + ; Checkboxes + GUIDisplayCheckbox 16,163,88,GUIComboLHorz,GUIComboTextJ + GUIDisplayCheckbox 16,163,96,GUIComboGameSpec,GUIComboTextK - ; Draw Combination Keys (Each 15x11 -> 210x36) - xor eax,eax - mov al,[GUINumCombo] - or eax,eax - jz near .comboend - xor ebx,ebx - mov ecx,11 - mov edx,112 + ; Draw Combination Keys (Each 15x11 -> 210x36) + xor eax,eax + mov al,[GUINumCombo] + or eax,eax + jz near .comboend + xor ebx,ebx + mov ecx,11 + mov edx,112 .comboiconloop - push eax - mov al,[GUIComboData+ebx] - dec al - mov esi,GUIIconDataComboPressRelease - cmp al,12 - jb .doneicon - mov esi,GUIIconDataComboPress - sub al,12 - cmp al,12 - jb .doneicon - mov esi,GUIIconDataComboRelease - sub al,12 - cmp al,12 - jb .doneicon - mov esi,GUIIconDataComboFrame - cmp al,17 - jne .not9 - mov al,20 - jmp .doneicon + push eax + mov al,[GUIComboData+ebx] + dec al + mov esi,GUIIconDataComboPressRelease + cmp al,12 + jb .doneicon + mov esi,GUIIconDataComboPress + sub al,12 + cmp al,12 + jb .doneicon + mov esi,GUIIconDataComboRelease + sub al,12 + cmp al,12 + jb .doneicon + mov esi,GUIIconDataComboFrame + cmp al,17 + jne .not9 + mov al,20 + jmp .doneicon .not9 - cmp al,18 - jb .doneicon - sub al,7 - mov esi,GUIIconDataComboSecond - cmp al,11 - jne .notback - mov al,250-37 - jmp .doneicon + cmp al,18 + jb .doneicon + sub al,7 + mov esi,GUIIconDataComboSecond + cmp al,11 + jne .notback + mov al,250-37 + jmp .doneicon .notback .doneicon - cmp al,11 - jbe .control - add al,37 + cmp al,11 + jbe .control + add al,37 .control - DetermineChar 0,251 - DetermineChar 1,252 - DetermineChar 2,253 - DetermineChar 3,254 - DetermineChar 4,'A' - DetermineChar 5,'B' - DetermineChar 6,'X' - DetermineChar 7,'Y' - DetermineChar 8,'L' - DetermineChar 9,'R' - DetermineChar 10,'T' - DetermineChar 11,'E' - mov [GUIComboText3],al - pushad - mov eax,edx - add ecx,8 - add eax,5 + DetermineChar 0,251 + DetermineChar 1,252 + DetermineChar 2,253 + DetermineChar 3,254 + DetermineChar 4,'A' + DetermineChar 5,'B' + DetermineChar 6,'X' + DetermineChar 7,'Y' + DetermineChar 8,'L' + DetermineChar 9,'R' + DetermineChar 10,'T' + DetermineChar 11,'E' + mov [GUIComboText3],al + pushad + mov eax,edx + add ecx,8 + add eax,5 - mov byte[GUItextcolor],223 - push ecx - push eax - GUIOuttextwin2 16,ecx,eax,GUIComboText3 - pop eax - pop ecx - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je .zerocol - mov byte[GUItextcolor],222 + mov byte[GUItextcolor],223 + push ecx + push eax + GUIOuttextwin2 16,ecx,eax,GUIComboText3 + pop eax + pop ecx + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je .zerocol + mov byte[GUItextcolor],222 .zerocol - dec ecx - dec eax - GUIOuttextwin2 16,ecx,eax,GUIComboText3 + dec ecx + dec eax + GUIOuttextwin2 16,ecx,eax,GUIComboText3 - popad - push ecx - push edx - push ebx - GUIDisplayIconWin 16,ecx,edx,esi - pop ebx - pop edx - pop ecx - pop eax - add ecx,15 - cmp ecx,11+15*14 - jne .notoverflowx - sub ecx,15*14 - add edx,11 + popad + push ecx + push edx + push ebx + GUIDisplayIconWin 16,ecx,edx,esi + pop ebx + pop edx + pop ecx + pop eax + add ecx,15 + cmp ecx,11+15*14 + jne .notoverflowx + sub ecx,15*14 + add edx,11 .notoverflowx - inc ebx - dec eax - jnz near .comboiconloop + inc ebx + dec eax + jnz near .comboiconloop .comboend - ; Display Bordered Box - cmp dword[NumCombo],0 - je near .nowinbox - mov ebx,[GUIccombcursloc] - sub ebx,[GUIccombviewloc] - mov eax,ebx - lea ebx,[ebx*8] - sub ebx,eax - add ebx,23 - DrawGUIWinBox2 16,10,190,7,224 + ; Display Bordered Box + cmp dword[NumCombo],0 + je near .nowinbox + mov ebx,[GUIccombcursloc] + sub ebx,[GUIccombviewloc] + mov eax,ebx + lea ebx,[ebx*8] + sub ebx,eax + add ebx,23 + DrawGUIWinBox2 16,10,190,7,224 .nowinbox - ; Display Scroll Lines - ; Copy Description to GUIScrolBufA, Others to GUIScrolBufB - mov edi,[GUIccombviewloc] - shl edi,6 - add edi,[GUIccombviewloc] - add edi,[GUIccombviewloc] - add edi,CombinDataGlob - cmp byte[GUIComboGameSpec],0 - je .nogamespec - sub edi,CombinDataGlob - add edi,CombinDataLocl + ; Display Scroll Lines + ; Copy Description to GUIScrolBufA, Others to GUIScrolBufB + mov edi,[GUIccombviewloc] + shl edi,6 + add edi,[GUIccombviewloc] + add edi,[GUIccombviewloc] + add edi,CombinDataGlob + cmp byte[GUIComboGameSpec],0 + je .nogamespec + sub edi,CombinDataGlob + add edi,CombinDataLocl .nogamespec - mov ecx,12 - mov eax,25 - mov ebx,[NumCombo] - sub ebx,[GUIccombviewloc] - cmp ebx,0 - jle near .noscrolldisplay - cmp ebx,8 - jbe .scrolloop - mov ebx,8 + mov ecx,12 + mov eax,25 + mov ebx,[NumCombo] + sub ebx,[GUIccombviewloc] + cmp ebx,0 + jle near .noscrolldisplay + cmp ebx,8 + jbe .scrolloop + mov ebx,8 .scrolloop - push ebx - push edi - push eax + push ebx + push edi + push eax - xor eax,eax - mov ax,[edi+62] - mov eax,[ScanCodeListing+eax*3] - mov [GUIScrolBufB],eax - mov byte[GUIScrolBufB+3],32 - mov dword[GUIScrolBufB+4],20202020h - mov al,[edi+64] - add al,49 - mov [GUIScrolBufB+4],al - mov byte[GUIScrolBufB+7],'N' - cmp byte[edi+65],0 - je .yesnoff - mov byte[GUIScrolBufB+7],'Y' + xor eax,eax + mov ax,[edi+62] + mov eax,[ScanCodeListing+eax*3] + mov [GUIScrolBufB],eax + mov byte[GUIScrolBufB+3],32 + mov dword[GUIScrolBufB+4],20202020h + mov al,[edi+64] + add al,49 + mov [GUIScrolBufB+4],al + mov byte[GUIScrolBufB+7],'N' + cmp byte[edi+65],0 + je .yesnoff + mov byte[GUIScrolBufB+7],'Y' .yesnoff - mov bl,20 - mov eax,GUIScrolBufA + mov bl,20 + mov eax,GUIScrolBufA .scloopb - mov bh,[edi] - mov [eax],bh - inc edi - inc eax - dec bl - jnz .scloopb - pop eax + mov bh,[edi] + mov [eax],bh + inc edi + inc eax + dec bl + jnz .scloopb + pop eax - mov byte[GUItextcolor],223 - push ecx - push eax - GUIOuttextwin2 16,ecx,eax,GUIScrolBufA - pop eax - pop ecx - push ecx - push eax - add ecx,128 - GUIOuttextwin2 16,ecx,eax,GUIScrolBufB - pop eax - pop ecx - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je .zerocolb - mov byte[GUItextcolor],222 + mov byte[GUItextcolor],223 + push ecx + push eax + GUIOuttextwin2 16,ecx,eax,GUIScrolBufA + pop eax + pop ecx + push ecx + push eax + add ecx,128 + GUIOuttextwin2 16,ecx,eax,GUIScrolBufB + pop eax + pop ecx + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je .zerocolb + mov byte[GUItextcolor],222 .zerocolb - push ecx - push eax - dec ecx - dec eax - push ecx - push eax - GUIOuttextwin2 16,ecx,eax,GUIScrolBufA - pop eax - pop ecx - add ecx,128 - GUIOuttextwin2 16,ecx,eax,GUIScrolBufB - pop eax - pop ecx - pop edi - pop ebx - add eax,7 - add edi,66 - dec ebx - jnz near .scrolloop + push ecx + push eax + dec ecx + dec eax + push ecx + push eax + GUIOuttextwin2 16,ecx,eax,GUIScrolBufA + pop eax + pop ecx + add ecx,128 + GUIOuttextwin2 16,ecx,eax,GUIScrolBufB + pop eax + pop ecx + pop edi + pop ebx + add eax,7 + add edi,66 + dec ebx + jnz near .scrolloop .noscrolldisplay - ret + ret SECTION .bss GUIccombviewloc resd 1 GUIccombcursloc resd 1 GUIccomblcursloc resd 1 -NEWSYM NumCombo, resd 1 +NEWSYM NumCombo, resd 1 NEWSYM NumComboGlob, resd 1 NEWSYM NumComboLocl, resd 1 -GUICSStC resd 3 -GUIComboKey resd 1 -GUIComboPos resb 1 -GUIComboPNum resb 1 -GUIComboLHorz resb 1 +GUICSStC resd 3 +GUIComboKey resd 1 +GUIComboPos resb 1 +GUIComboPNum resb 1 +GUIComboLHorz resb 1 NEWSYM GUINumCombo, resb 1 GUIComboData resb 50 GUIScrolBufA resb 21 @@ -3961,105 +4161,105 @@ GUIComboTextJ db 254,' = LAST ',253,'/',254,0 GUIComboTextK db 'GAME SPECFIC',0 GUIIconDataComboPressRelease: - db 0 ,166,0 ,0 ,166,0 ,0 ,0 ,0 ,0 - db 0 ,166,0 ,166,166,166,0 ,0 ,0 ,0 - db 0 ,166,0 ,0 ,166,0 ,0 ,0 ,0 ,0 - db 166,166,166,0 ,166,0 ,0 ,0 ,0 ,0 - db 0 ,166,0 ,0 ,166,0 ,0 ,0 ,0 ,0 - db 0 ,234,234,234,234,0 ,0 ,0 ,0 ,0 - db 234,234,234,234,234,234,0 ,0 ,0 ,0 - db 234,234,234,234,234,234,0 ,0 ,0 ,0 - db 235,234,234,234,234,235,0 ,0 ,0 ,0 - db 0 ,235,235,235,235,0 ,0 ,0 ,0 ,0 + db 0 ,166,0 ,0 ,166,0 ,0 ,0 ,0 ,0 + db 0 ,166,0 ,166,166,166,0 ,0 ,0 ,0 + db 0 ,166,0 ,0 ,166,0 ,0 ,0 ,0 ,0 + db 166,166,166,0 ,166,0 ,0 ,0 ,0 ,0 + db 0 ,166,0 ,0 ,166,0 ,0 ,0 ,0 ,0 + db 0 ,234,234,234,234,0 ,0 ,0 ,0 ,0 + db 234,234,234,234,234,234,0 ,0 ,0 ,0 + db 234,234,234,234,234,234,0 ,0 ,0 ,0 + db 235,234,234,234,234,235,0 ,0 ,0 ,0 + db 0 ,235,235,235,235,0 ,0 ,0 ,0 ,0 GUIIconDataComboPress: - db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,166,166,166,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,236,236,236,236,0 ,0 ,0 ,0 ,0 - db 236,236,236,236,236,236,0 ,0 ,0 ,0 - db 236,236,236,236,236,236,0 ,0 ,0 ,0 - db 237,236,236,236,236,237,0 ,0 ,0 ,0 - db 0 ,237,237,237,237,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,166,166,166,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,236,236,236,236,0 ,0 ,0 ,0 ,0 + db 236,236,236,236,236,236,0 ,0 ,0 ,0 + db 236,236,236,236,236,236,0 ,0 ,0 ,0 + db 237,236,236,236,236,237,0 ,0 ,0 ,0 + db 0 ,237,237,237,237,0 ,0 ,0 ,0 ,0 GUIIconDataComboRelease: - db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,166,166,166,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,238,238,238,238,0 ,0 ,0 ,0 ,0 - db 238,238,238,238,238,238,0 ,0 ,0 ,0 - db 238,238,238,238,238,238,0 ,0 ,0 ,0 - db 239,238,238,238,238,239,0 ,0 ,0 ,0 - db 0 ,239,239,239,239,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,166,166,166,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,166,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,238,238,238,238,0 ,0 ,0 ,0 ,0 + db 238,238,238,238,238,238,0 ,0 ,0 ,0 + db 238,238,238,238,238,238,0 ,0 ,0 ,0 + db 239,238,238,238,238,239,0 ,0 ,0 ,0 + db 0 ,239,239,239,239,0 ,0 ,0 ,0 ,0 GUIIconDataComboFrame: - db 0 ,0 ,0 ,0 ,58 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,56 ,46 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,54 ,44 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,52 ,0 ,42 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,50 ,40 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,48 ,38 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,46 ,36 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,44 ,0 ,34 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,42 ,32 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,40 ,32 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,58 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,56 ,46 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,54 ,44 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,52 ,0 ,42 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,50 ,40 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,48 ,38 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,46 ,36 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,44 ,0 ,34 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,42 ,32 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,40 ,32 ,0 ,0 ,0 ,0 ,0 ,0 GUIIconDataComboSecond: - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,51 ,45 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,51 ,45 ,0 ,0 ,0 ,0 ,0 ,0 - db 0 ,54 ,52 ,48 ,46 ,0 ,0 ,0 ,0 ,0 - db 53 ,46 ,50 ,50 ,48 ,45 ,0 ,0 ,0 ,0 - db 52 ,50 ,45 ,48 ,46 ,44 ,0 ,0 ,0 ,0 - db 51 ,50 ,50 ,46 ,50 ,43 ,0 ,0 ,0 ,0 - db 50 ,50 ,50 ,50 ,50 ,42 ,0 ,0 ,0 ,0 - db 0 ,48 ,46 ,44 ,42 ,0 ,0 ,0 ,0 ,0 - db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,51 ,45 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,51 ,45 ,0 ,0 ,0 ,0 ,0 ,0 + db 0 ,54 ,52 ,48 ,46 ,0 ,0 ,0 ,0 ,0 + db 53 ,46 ,50 ,50 ,48 ,45 ,0 ,0 ,0 ,0 + db 52 ,50 ,45 ,48 ,46 ,44 ,0 ,0 ,0 ,0 + db 51 ,50 ,50 ,46 ,50 ,43 ,0 ,0 ,0 ,0 + db 50 ,50 ,50 ,50 ,50 ,42 ,0 ,0 ,0 ,0 + db 0 ,48 ,46 ,44 ,42 ,0 ,0 ,0 ,0 ,0 + db 0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 SECTION .text EEMode: - pushad - call GetTime - cmp eax,360 - popad - ja .noEE - mov eax,1 - ret + pushad + call GetTime + cmp eax,360 + popad + ja .noEE + mov eax,1 + ret .noEE - mov eax,0 - ret + mov eax,0 + ret DisplayGUIAddOns: ;Select Special Controllers - GUIDrawWindowBox 17,GUIAddOnsDisp + GUIDrawWindowBox 17,GUIAddOnsDisp - call EEMode - cmp eax,0 - je near .noEE ;You know it! - GUIDisplayText 17,21,18,GUIAddOnText1Alt - GUIDisplayText 17,21,28,GUIAddOnText2Alt - GUIDisplayText 17,21,38,GUIAddOnText3Alt - GUIDisplayText 17,21,48,GUIAddOnText4Alt - GUIDisplayText 17,21,58,GUIAddOnText5Alt - jmp .endEE + call EEMode + cmp eax,0 + je near .noEE ;You know it! + GUIDisplayText 17,21,18,GUIAddOnText1Alt + GUIDisplayText 17,21,28,GUIAddOnText2Alt + GUIDisplayText 17,21,38,GUIAddOnText3Alt + GUIDisplayText 17,21,48,GUIAddOnText4Alt + GUIDisplayText 17,21,58,GUIAddOnText5Alt + jmp .endEE .noEE ;Regular - GUIDisplayTextu 17,21,18,GUIAddOnText1,0 - GUIDisplayTextu 17,21,28,GUIAddOnText2,20 - GUIDisplayTextu 17,21,38,GUIAddOnText3,20 - GUIDisplayTextu 17,21,48,GUIAddOnText4,0 - GUIDisplayTextu 17,21,58,GUIAddOnText5,0 + GUIDisplayTextu 17,21,18,GUIAddOnText1,0 + GUIDisplayTextu 17,21,28,GUIAddOnText2,20 + GUIDisplayTextu 17,21,38,GUIAddOnText3,20 + GUIDisplayTextu 17,21,48,GUIAddOnText4,0 + GUIDisplayTextu 17,21,58,GUIAddOnText5,0 .endEE - GUIDisplayButtonHole 17,9,15,byte[snesmouse],0 ;Radio Buttons - GUIDisplayButtonHole 17,9,25,byte[snesmouse],1 - GUIDisplayButtonHole 17,9,35,byte[snesmouse],2 - GUIDisplayButtonHole 17,9,45,byte[snesmouse],3 - GUIDisplayButtonHole 17,9,55,byte[snesmouse],4 - ret + GUIDisplayButtonHole 17,9,15,byte[snesmouse],0 ;Radio Buttons + GUIDisplayButtonHole 17,9,25,byte[snesmouse],1 + GUIDisplayButtonHole 17,9,35,byte[snesmouse],2 + GUIDisplayButtonHole 17,9,45,byte[snesmouse],3 + GUIDisplayButtonHole 17,9,55,byte[snesmouse],4 + ret SECTION .data GUIAddOnText1 db 'NONE',0 @@ -4078,32 +4278,32 @@ GUIAddOnText5Alt db 87,73,84,72,32,86,73,84,65,77,73,78,83,0 SECTION .text DisplayGUIChipConfig: - GUIDrawWindowBox 18,GUIChipConfigDisp + GUIDrawWindowBox 18,GUIChipConfigDisp - call EEMode ; You know it! - cmp eax,0 - je near .noEE - GUIDisplayText 18,10,38,GUIChipText1Alt - GUIDisplayCheckbox 18,9,43,nssdip1,GUIChipText2Alt - GUIDisplayCheckbox 18,59,43,nssdip2,GUIChipText3Alt - GUIDisplayCheckbox 18,109,43,nssdip3,GUIChipText4Alt - GUIDisplayCheckbox 18,9,53,nssdip4,GUIChipText5Alt - GUIDisplayCheckbox 18,59,53,nssdip5,GUIChipText6Alt - GUIDisplayCheckbox 18,109,53,nssdip6,GUIChipText7Alt - jmp .endEE + call EEMode ; You know it! + cmp eax,0 + je near .noEE + GUIDisplayText 18,10,38,GUIChipText1Alt + GUIDisplayCheckbox 18,9,43,nssdip1,GUIChipText2Alt + GUIDisplayCheckbox 18,59,43,nssdip2,GUIChipText3Alt + GUIDisplayCheckbox 18,109,43,nssdip3,GUIChipText4Alt + GUIDisplayCheckbox 18,9,53,nssdip4,GUIChipText5Alt + GUIDisplayCheckbox 18,59,53,nssdip5,GUIChipText6Alt + GUIDisplayCheckbox 18,109,53,nssdip6,GUIChipText7Alt + jmp .endEE .noEE ; Regular Shadow - GUIDisplayTextY 18,10,38,GUIChipTextA - GUIDisplayCheckboxu 18,9,43,nssdip1,GUIChipTextA1,4 ;Checkboxes - GUIDisplayCheckboxu 18,59,43,nssdip2,GUIChipTextA2,4 - GUIDisplayCheckboxu 18,109,43,nssdip3,GUIChipTextA3,4 - GUIDisplayCheckboxu 18,9,53,nssdip4,GUIChipTextA4,4 - GUIDisplayCheckboxu 18,59,53,nssdip5,GUIChipTextA5,4 - GUIDisplayCheckboxu 18,109,53,nssdip6,GUIChipTextA6,4 + GUIDisplayTextY 18,10,38,GUIChipTextA + GUIDisplayCheckboxu 18,9,43,nssdip1,GUIChipTextA1,4 ;Checkboxes + GUIDisplayCheckboxu 18,59,43,nssdip2,GUIChipTextA2,4 + GUIDisplayCheckboxu 18,109,43,nssdip3,GUIChipTextA3,4 + GUIDisplayCheckboxu 18,9,53,nssdip4,GUIChipTextA4,4 + GUIDisplayCheckboxu 18,59,53,nssdip5,GUIChipTextA5,4 + GUIDisplayCheckboxu 18,109,53,nssdip6,GUIChipTextA6,4 .endEE - ret + ret SECTION .data -GUIChipTextA db 'SUPER SYSTEM :',0 +GUIChipTextA db 'SUPER SYSTEM:',0 GUIChipTextA1 db 'DIP 1',0 GUIChipTextA2 db 'DIP 2',0 GUIChipTextA3 db 'DIP 3',0 @@ -4123,110 +4323,108 @@ GUIChipText7Alt db 67,65,84,83,85,80,0 SECTION .text BlinkCursorCheck: - cmp dword[GUIInputBox],0 - jne .checkboxes - mov ebx,0 - ret - + cmp dword[GUIInputBox],0 + jne .checkboxes + mov ebx,0 + ret .checkboxes - cmp dword[GUIInputBox],1 - jne .notBox1 - mov ebx,SRAMDir - ret + cmp dword[GUIInputBox],1 + jne .notBox1 + mov ebx,SRAMDir + ret .notBox1 - cmp dword[GUIInputBox],2 - jne .notBox2 - mov ebx,SnapPath - ret + cmp dword[GUIInputBox],2 + jne .notBox2 + mov ebx,SnapPath + ret .notBox2 - cmp dword[GUIInputBox],3 - jne .notBox3 - mov ebx,SPCPath - ret + cmp dword[GUIInputBox],3 + jne .notBox3 + mov ebx,SPCPath + ret .notBox3 - cmp dword[GUIInputBox],4 - jne .notBox4 - mov ebx,BSXPath - ret + cmp dword[GUIInputBox],4 + jne .notBox4 + mov ebx,BSXPath + ret .notBox4 - cmp dword[GUIInputBox],5 - jne .notBox5 - mov ebx,SGPath - ret + cmp dword[GUIInputBox],5 + jne .notBox5 + mov ebx,SGPath + ret .notBox5 - cmp dword[GUIInputBox],6 - jne .notBox6 - mov ebx,STPath - ret + cmp dword[GUIInputBox],6 + jne .notBox6 + mov ebx,STPath + ret .notBox6 - cmp dword[GUIInputBox],7 - jne .notBox7 - mov ebx,GNextPath - ret + cmp dword[GUIInputBox],7 + jne .notBox7 + mov ebx,GNextPath + ret .notBox7 - cmp dword[GUIInputBox],8 - jne .notBox8 - mov ebx,FEOEZPath - ret + cmp dword[GUIInputBox],8 + jne .notBox8 + mov ebx,FEOEZPath + ret .notBox8 - cmp dword[GUIInputBox],9 - jne .notBox9 - mov ebx,SJNSPath - ret + cmp dword[GUIInputBox],9 + jne .notBox9 + mov ebx,SJNSPath + ret .notBox9 - cmp dword[GUIInputBox],10 - jne .notBox10 - mov ebx,MDHPath - ret + cmp dword[GUIInputBox],10 + jne .notBox10 + mov ebx,MDHPath + ret .notBox10 - cmp dword[GUIInputBox],11 - jne .notBox11 - mov ebx,SPL4Path + cmp dword[GUIInputBox],11 + jne .notBox11 + mov ebx,SPL4Path .notBox11 - ret - + ret DisplayGUIPaths: - GUIDrawWindowBox 19,GUIPathsDisp + GUIDrawWindowBox 19,GUIPathsDisp - GUIDisplayText 19,8,18,GUIPathsText1 ; Text - GUIDisplayText 19,8,38,GUIPathsText2 - GUIDisplayText 19,8,58,GUIPathsText3 - GUIDisplayText 19,60,78,GUIPathsText4 - GUIDisplayText 19,8,88,GUIPathsText5 - GUIDisplayText 19,135,88,GUIPathsText6 - GUIDisplayText 19,8,113,GUIPathsText8 - GUIDisplayText 19,135,113,GUIPathsText7 - GUIDisplayText 19,45,138,GUIPathsText9 - GUIDisplayText 19,8,148,GUIPathsTextA - GUIDisplayText 19,135,148,GUIPathsTextB - GUIDisplayText 19,8,173,GUIPathsTextC - GUIDisplayText 19,135,173,GUIPathsTextD + GUIDisplayText 19,8,18,GUIPathsText1 ; Text + GUIDisplayText 19,8,38,GUIPathsText2 + GUIDisplayText 19,8,58,GUIPathsText3 + GUIDisplayText 19,60,78,GUIPathsText4 + GUIDisplayText 19,8,88,GUIPathsText5 + GUIDisplayText 19,135,88,GUIPathsText6 + GUIDisplayText 19,8,113,GUIPathsText8 + GUIDisplayText 19,135,113,GUIPathsText7 + GUIDisplayText 19,45,138,GUIPathsText9 + GUIDisplayText 19,8,148,GUIPathsTextA + GUIDisplayText 19,135,148,GUIPathsTextB + GUIDisplayText 19,8,173,GUIPathsTextC + GUIDisplayText 19,135,173,GUIPathsTextD - GUIDisplayBBox 19,75,15,231,25,167 ;Input boxes - GUIDisplayBBox 19,75,35,231,45,167 - GUIDisplayBBox 19,75,55,231,65,167 - GUIDisplayBBox 19,8,95,106,105,167 - GUIDisplayBBox 19,8,120,106,130,167 - GUIDisplayBBox 19,135,95,235,105,167 - GUIDisplayBBox 19,135,120,235,130,167 - GUIDisplayBBox 19,8,155,106,165,167 - GUIDisplayBBox 19,8,180,106,190,167 - GUIDisplayBBox 19,135,155,235,165,167 - GUIDisplayBBox 19,135,180,235,190,167 + GUIDisplayBBox 19,75,15,231,25,167 ;Input boxes + GUIDisplayBBox 19,75,35,231,45,167 + GUIDisplayBBox 19,75,55,231,65,167 + GUIDisplayBBox 19,8,95,106,105,167 + GUIDisplayBBox 19,8,120,106,130,167 + GUIDisplayBBox 19,135,95,235,105,167 + GUIDisplayBBox 19,135,120,235,130,167 + GUIDisplayBBox 19,8,155,106,165,167 + GUIDisplayBBox 19,8,180,106,190,167 + GUIDisplayBBox 19,135,155,235,165,167 + GUIDisplayBBox 19,135,180,235,190,167 - GUIOuttextwin2d 19,77,19,SRAMDir,25 ; Green Text - GUIOuttextwin2d 19,77,39,SnapPath,25 - GUIOuttextwin2d 19,77,59,SPCPath,25 - GUIOuttextwin2d 19,10,99,BSXPath,15 - GUIOuttextwin2d 19,10,124,SGPath,15 - GUIOuttextwin2d 19,137,99,STPath,15 - GUIOuttextwin2d 19,137,124,GNextPath,15 - GUIOuttextwin2d 19,10,159,FEOEZPath,15 - GUIOuttextwin2d 19,10,184,MDHPath,15 - GUIOuttextwin2d 19,137,159,SJNSPath,15 - GUIOuttextwin2d 19,137,184,SPL4Path,15 - ret + GUIOuttextwin2d 19,77,19,SRAMDir,25 ; Green Text + GUIOuttextwin2d 19,77,39,SnapPath,25 + GUIOuttextwin2d 19,77,59,SPCPath,25 + GUIOuttextwin2d 19,10,99,BSXPath,15 + GUIOuttextwin2d 19,10,124,SGPath,15 + GUIOuttextwin2d 19,137,99,STPath,15 + GUIOuttextwin2d 19,137,124,GNextPath,15 + GUIOuttextwin2d 19,10,159,FEOEZPath,15 + GUIOuttextwin2d 19,10,184,MDHPath,15 + GUIOuttextwin2d 19,137,159,SJNSPath,15 + GUIOuttextwin2d 19,137,184,SPL4Path,15 + ret SECTION .data GUIPathsText1 db 'SAVES:',0 @@ -4242,118 +4440,117 @@ GUIPathsTextA db 'FEOEZ:',0 GUIPathsTextB db 'FEOEZ - SJNS:',0 GUIPathsTextC db 'MDH:',0 GUIPathsTextD db 'SPL4:',0 -NEWSYM GUIBlinkCursor, times 2 db 0 +NEWSYM GUIBlinkCursor, db 0,0 SECTION .text DisplayGUISave: ;Save & Rewind options/Hotkeys - GUIDrawWindowBox 20,GUISaveDisp + GUIDrawWindowBox 20,GUISaveDisp - GUIDisplayText 20,8,19,GUISaveTextA1 ; Text - GUIDisplayText 20,8,31,GUISaveTextA2 - GUIDisplayText 20,9+45*3,141,GUISaveTextC4 - GUIDisplayText 20,9,150,GUISaveTextC5 - GUIDisplayText 20,9+57,150,GUISaveTextC6 - GUIDisplayText 20,9+114,150,GUISaveTextC7 - GUIDisplayText 20,9,159,GUISaveTextC8 + GUIDisplayText 20,8,19,GUISaveTextA1 ; Text + GUIDisplayText 20,8,31,GUISaveTextA2 + GUIDisplayText 20,9,150,GUISaveTextC2 + GUIDisplayText 20,9+57,150,GUISaveTextC3 + GUIDisplayText 20,9+114,150,GUISaveTextC4 + GUIDisplayText 20,9,159,GUISaveTextC5 - GUIDisplayTextY 20,6,112,GUISaveTextC1 - mov byte[GUISaveTextC2+2],'0' - GUIDisplayText 20,9,123,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'1' - GUIDisplayText 20,9+45,123,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'2' - GUIDisplayText 20,9+45*2,123,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'3' - GUIDisplayText 20,9+45*3,123,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'4' - GUIDisplayText 20,9,132,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'5' - GUIDisplayText 20,9+45,132,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'6' - GUIDisplayText 20,9+45*2,132,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'7' - GUIDisplayText 20,9+45*3,132,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'8' - GUIDisplayText 20,9,141,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'9' - GUIDisplayText 20,9+45,141,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'+' - GUIDisplayText 20,9+45*2,141,GUISaveTextC2 - mov byte[GUISaveTextC2+2],'-' - GUIDisplayText 20,9+45*2,141,GUISaveTextC2 + GUIDisplayTextY 20,6,114,GUISaveTextC + mov byte[GUISaveTextC1+2],'0' + GUIDisplayText 20,9,123,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'1' + GUIDisplayText 20,9+45,123,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'2' + GUIDisplayText 20,9+45*2,123,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'3' + GUIDisplayText 20,9+45*3,123,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'4' + GUIDisplayText 20,9,132,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'5' + GUIDisplayText 20,9+45,132,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'6' + GUIDisplayText 20,9+45*2,132,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'7' + GUIDisplayText 20,9+45*3,132,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'8' + GUIDisplayText 20,9,141,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'9' + GUIDisplayText 20,9+45,141,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'+' + GUIDisplayText 20,9+45*2,141,GUISaveTextC1 + mov byte[GUISaveTextC1+2],'-' + GUIDisplayText 20,9+45*3,141,GUISaveTextC1 - GUIDisplayCheckboxu 20,11,40,AutoIncSaveSlot,GUISaveTextB1,5 ;Checkboxes - GUIDisplayCheckboxu 20,11,50,SRAMSave5Sec,GUISaveTextB2,5 - GUIDisplayCheckboxu 20,11,60,LatestSave,GUISaveTextB3,0 - GUIDisplayCheckboxu 20,11,70,AutoState,GUISaveTextB4,0 - GUIDisplayCheckboxu 20,11,80,SRAMState,GUISaveTextB5,0 - GUIDisplayCheckboxu 20,11,90,PauseLoad,GUISaveTextB6,0 - GUIDisplayCheckboxu 20,11,100,PauseRewind,GUISaveTextB7,12 + GUIDisplayCheckboxu 20,11,40,AutoIncSaveSlot,GUISaveTextB1,5 ;Checkboxes + GUIDisplayCheckboxu 20,11,50,SRAMSave5Sec,GUISaveTextB2,5 + GUIDisplayCheckboxu 20,11,60,LatestSave,GUISaveTextB3,0 + GUIDisplayCheckboxu 20,11,70,AutoState,GUISaveTextB4,0 + GUIDisplayCheckboxu 20,11,80,SRAMState,GUISaveTextB5,0 + GUIDisplayCheckboxu 20,11,90,PauseLoad,GUISaveTextB6,0 + GUIDisplayCheckboxu 20,11,100,PauseRewind,GUISaveTextB7,12 - GUIDisplayBBox 20,150,17,165,24,167 ; Rewind States Box - xor ax,ax - mov ah,[RewindStates] - mov al,48 - add ah,48 + GUIDisplayBBox 20,150,17,165,24,167 ; Rewind States Box + xor ax,ax + mov ah,[RewindStates] + mov al,48 + add ah,48 .asciiloop - cmp ah,58 - jb .hex2asciidone - add al,1 - sub ah,10 - jmp .asciiloop + cmp ah,58 + jb .hex2asciidone + add al,1 + sub ah,10 + jmp .asciiloop .hex2asciidone - mov [GUISaveTextZ3],ax - GUIDisplayTextG 20,154,19,GUISaveTextZ3 + mov [GUISaveTextZ3],ax + GUIDisplayTextG 20,154,19,GUISaveTextZ3 - GUIDisplayBBox 20,150,29,165,36,167 ; Second/Rewind Box - xor ax,ax - mov ah,[RewindFrames] - mov al,48 - add ah,48 + GUIDisplayBBox 20,150,29,165,36,167 ; Second/Rewind Box + xor ax,ax + mov ah,[RewindFrames] + mov al,48 + add ah,48 .asciiloop2 - cmp ah,58 - jb .hex2asciidone2 - add al,1 - sub ah,10 - jmp .asciiloop2 + cmp ah,58 + jb .hex2asciidone2 + add al,1 + sub ah,10 + jmp .asciiloop2 .hex2asciidone2 - mov [GUISaveTextZ3],ax - GUIDisplayTextG 20,154,31,GUISaveTextZ3 + mov [GUISaveTextZ3],ax + GUIDisplayTextG 20,154,31,GUISaveTextZ3 - DDrawBox 20,26,120,[KeyStateSlc0] ; Boxes for State section - DDrawBox 20,71,120,[KeyStateSlc1] - DDrawBox 20,116,120,[KeyStateSlc2] - DDrawBox 20,161,120,[KeyStateSlc3] - DDrawBox 20,26,129,[KeyStateSlc4] - DDrawBox 20,71,129,[KeyStateSlc5] - DDrawBox 20,116,129,[KeyStateSlc6] - DDrawBox 20,161,129,[KeyStateSlc7] - DDrawBox 20,26,138,[KeyStateSlc8] - DDrawBox 20,71,138,[KeyStateSlc9] - DDrawBox 20,116,138,[KeyIncStateSlot] - DDrawBox 20,161,138,[KeyDecStateSlot] - DDrawBox 20,32,147,[KeySaveState] - DDrawBox 20,89,147,[KeyLoadState] - DDrawBox 20,146,147,[KeyStateSelct] - DDrawBox 20,45,156,[KeyRewind] + DDrawBox 20,26,120,[KeyStateSlc0] ; Boxes for State section + DDrawBox 20,71,120,[KeyStateSlc1] + DDrawBox 20,116,120,[KeyStateSlc2] + DDrawBox 20,161,120,[KeyStateSlc3] + DDrawBox 20,26,129,[KeyStateSlc4] + DDrawBox 20,71,129,[KeyStateSlc5] + DDrawBox 20,116,129,[KeyStateSlc6] + DDrawBox 20,161,129,[KeyStateSlc7] + DDrawBox 20,26,138,[KeyStateSlc8] + DDrawBox 20,71,138,[KeyStateSlc9] + DDrawBox 20,116,138,[KeyIncStateSlot] + DDrawBox 20,161,138,[KeyDecStateSlot] + DDrawBox 20,32,147,[KeySaveState] + DDrawBox 20,89,147,[KeyLoadState] + DDrawBox 20,146,147,[KeyStateSelct] + DDrawBox 20,45,156,[KeyRewind] - mov byte[GUItextcolor],217 ;Buttons - cmp byte[GUIWincoladd],0 - je .zero - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 ;Buttons + cmp byte[GUIWincoladd],0 + je .zero + mov byte[GUItextcolor],211 .zero - DrawGUIButton 20,173,17,181,25,GUISaveTextZ1,70,-2,-1 ; + Rewind States - DrawGUIButton 20,184,17,192,25,GUISaveTextZ2,71,-2,-1 ; - Rewind States - DrawGUIButton 20,173,29,181,37,GUISaveTextZ1,72,-2,-1 ; + Second/Rewind - DrawGUIButton 20,184,29,192,37,GUISaveTextZ2,73,-2,-1 ; - Second/Rewind - ret + DrawGUIButton 20,173,17,181,25,GUISaveTextZ1,70,-2,-1 ; + Rewind States + DrawGUIButton 20,184,17,192,25,GUISaveTextZ2,71,-2,-1 ; - Rewind States + DrawGUIButton 20,173,29,181,37,GUISaveTextZ1,72,-2,-1 ; + Second/Rewind + DrawGUIButton 20,184,29,192,37,GUISaveTextZ2,73,-2,-1 ; - Second/Rewind + ret SECTION .data GUISaveTextA1 db '# OF REWIND STATES',0 GUISaveTextA2 db '1/5 SECONDS PER REWIND',0 -GUISaveTextB1 db 'AUTO INCRMNT SAVE SLOT',0 +GUISaveTextB1 db 'AUTO INCREMENT SAVE SLOT',0 GUISaveTextB2 db 'SRAM CHECK+SAVE',0 GUISaveTextB3 db 'START AT LATEST SAVE',0 GUISaveTextB4 db 'AUTO STATE SAVE/LOAD',0 @@ -4361,14 +4558,12 @@ GUISaveTextB5 db 'LOAD SAVESTATE W/SRAM',0 GUISaveTextB6 db 'PAUSE AFTER LOADING STATE',0 GUISaveTextB7 db 'PAUSE AFTER REWIND',0 -GUISaveTextC1 db 'STATE SELECTS :',0 -GUISaveTextC2 db 'ST#',0 ; Used for all numbers, 0-9 -GUISaveTextC3 db 'ST+',0 -GUISaveTextC4 db 'ST-',0 -GUISaveTextC5 db 'SAVE',0 -GUISaveTextC6 db 'LOAD',0 -GUISaveTextC7 db 'PICK',0 -GUISaveTextC8 db 'REWIND',0 +GUISaveTextC db 'STATE SHORTCUTS:',0 +GUISaveTextC1 db 'ST#',0 ; Used for numbers 0-9 and +/- +GUISaveTextC2 db 'SAVE',0 +GUISaveTextC3 db 'LOAD',0 +GUISaveTextC4 db 'PICK',0 +GUISaveTextC5 db 'REWIND',0 GUISaveTextZ1 db '+',0 GUISaveTextZ2 db '-',0 @@ -4377,199 +4572,197 @@ GUISaveTextZ3 db ' ',0 SECTION .text DisplayGUISpeed: ;Speed Options - GUIDrawWindowBox 21,GUISpeedDisp + GUIDrawWindowBox 21,GUISpeedDisp - cmp byte[frameskip],0 - jne near .noautoshad - GUIDisplayText 21,6,15,GUISpeedTextA1 - GUIDisplayText 21,40,79,GUISpeedTextB3 - GUIDisplayText 21,40,99,GUISpeedTextB5 - GUIDisplayTextY 21,8,164,GUISpeedTextD - jmp near .endautoshad + cmp byte[frameskip],0 + jne near .noautoshad + GUIDisplayText 21,6,15,GUISpeedTextA1 + GUIDisplayText 21,40,79,GUISpeedTextB3 + GUIDisplayText 21,40,99,GUISpeedTextB5 + GUIDisplayTextY 21,8,164,GUISpeedTextD + jmp near .endautoshad .noautoshad - GUIDisplayText 21,6,15,GUISpeedTextA1b - GUIDisplayText 21,40,79,GUISpeedTextB3b - GUIDisplayText 21,40,99,GUISpeedTextB5b + GUIDisplayText 21,6,15,GUISpeedTextA1b + GUIDisplayText 21,40,79,GUISpeedTextB3b + GUIDisplayText 21,40,99,GUISpeedTextB5b .endautoshad - GUIDisplayText 21,6,26,GUISpeedTextA2 - GUIDisplayText 21,6,37,GUISpeedTextA3 + GUIDisplayText 21,6,26,GUISpeedTextA2 + GUIDisplayText 21,6,37,GUISpeedTextA3 - GUIDisplayTextY 21,8,49,GUISpeedTextB - GUIDisplayText 21,40,59,GUISpeedTextB1 - GUIDisplayText 21,40,69,GUISpeedTextB2 - GUIDisplayText 21,40,89,GUISpeedTextB4 - GUIDisplayText 21,40,109,GUISpeedTextB6 - GUIDisplayText 21,40,119,GUISpeedTextB7 -; GUIDisplayTextu 21,25,139,GUISpeedTextC1,0 -; GUIDisplayTextu 21,25,149,GUISpeedTextC2,0 + GUIDisplayTextY 21,8,49,GUISpeedTextB + GUIDisplayText 21,40,59,GUISpeedTextB1 + GUIDisplayText 21,40,69,GUISpeedTextB2 + GUIDisplayText 21,40,89,GUISpeedTextB4 + GUIDisplayText 21,40,109,GUISpeedTextB6 + GUIDisplayText 21,40,119,GUISpeedTextB7 - cmp byte[frameskip],0 ; Shortcut Boxes - jne near .frate - DDrawBox 21,10,76,[KeyEmuSpeedUp] - DDrawBox 21,10,96,[KeyEmuSpeedDown] - jmp near .endsc + cmp byte[frameskip],0 ; Shortcut Boxes + jne near .frate + DDrawBox 21,10,76,[KeyEmuSpeedUp] + DDrawBox 21,10,96,[KeyEmuSpeedDown] + jmp near .endsc .frate - DDrawBox 21,10,76,[KeyFRateUp] - DDrawBox 21,10,96,[KeyFRateDown] + DDrawBox 21,10,76,[KeyFRateUp] + DDrawBox 21,10,96,[KeyFRateDown] .endsc - DDrawBox 21,10,56,[KeyFastFrwrd] - DDrawBox 21,10,66,[KeySlowDown] - DDrawBox 21,10,86,[KeyResetSpeed] - DDrawBox 21,10,106,[EMUPauseKey] - DDrawBox 21,10,116,[INCRFrameKey] + DDrawBox 21,10,56,[KeyFastFrwrd] + DDrawBox 21,10,66,[KeySlowDown] + DDrawBox 21,10,86,[KeyResetSpeed] + DDrawBox 21,10,106,[EMUPauseKey] + DDrawBox 21,10,116,[INCRFrameKey] - GUIDisplayCheckboxu 21,11,135,FastFwdToggle,GUISpeedTextC1,0 - GUIDisplayCheckboxun 21,11,145,frameskip,0,GUISpeedTextC2,0 + GUIDisplayCheckboxu 21,11,135,FastFwdToggle,GUISpeedTextC1,0 + GUIDisplayCheckboxun 21,11,145,frameskip,0,GUISpeedTextC2,0 - GUIDisplayBBox 21,96,24,114,31,167 ; FF Ratio Box - xor ax,ax - mov ah,[FFRatio] - add ah,2 - mov al,48 - add ah,48 + GUIDisplayBBox 21,96,24,114,31,167 ; FF Ratio Box + xor ax,ax + mov ah,[FFRatio] + add ah,2 + mov al,48 + add ah,48 .asciiloop - cmp ah,58 - jb .hex2asciidone - add al,1 - sub ah,10 - jmp .asciiloop + cmp ah,58 + jb .hex2asciidone + add al,1 + sub ah,10 + jmp .asciiloop .hex2asciidone - cmp al,48 - jne .yestens - mov al,32 + cmp al,48 + jne .yestens + mov al,32 .yestens - mov [GUISpeedTextZ3],ax - GUIDisplayTextG 21,101,26,GUISpeedTextZ3 + mov [GUISpeedTextZ3],ax + GUIDisplayTextG 21,101,26,GUISpeedTextZ3 - GUIDisplayBBox 21,96,35,114,42,167 ; SD Ratio Box - xor ax,ax - mov ah,[SDRatio] - add ah,2 - mov al,48 - add ah,48 + GUIDisplayBBox 21,96,35,114,42,167 ; SD Ratio Box + xor ax,ax + mov ah,[SDRatio] + add ah,2 + mov al,48 + add ah,48 .asciiloop2 - cmp ah,58 - jb .hex2asciidone2 - add al,1 - sub ah,10 - jmp .asciiloop2 + cmp ah,58 + jb .hex2asciidone2 + add al,1 + sub ah,10 + jmp .asciiloop2 .hex2asciidone2 - cmp al,48 - jne .yestens2 - mov al,32 + cmp al,48 + jne .yestens2 + mov al,32 .yestens2 - mov [GUISpeedTextZ3],ax - GUIDisplayTextG 21,101,37,GUISpeedTextZ3 + mov [GUISpeedTextZ3],ax + GUIDisplayTextG 21,101,37,GUISpeedTextZ3 - mov byte[GUItextcolor],217 ;Buttons - cmp byte[GUIWincoladd],0 - je .zero88 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 ;Buttons + cmp byte[GUIWincoladd],0 + je .zero88 + mov byte[GUItextcolor],211 .zero88 - DrawGUIButton 21,118,24,126,32,GUISaveTextZ1,74,-2,-1 ; + Rewind States - DrawGUIButton 21,129,24,137,32,GUISaveTextZ2,75,-2,-1 ; - Rewind States - DrawGUIButton 21,118,35,126,43,GUISaveTextZ1,76,-2,-1 ; + Second/Rewind - DrawGUIButton 21,129,35,137,43,GUISaveTextZ2,77,-2,-1 ; - Second/Rewind + DrawGUIButton 21,118,24,126,32,GUISaveTextZ1,74,-2,-1 ; + Rewind States + DrawGUIButton 21,129,24,137,32,GUISaveTextZ2,75,-2,-1 ; - Rewind States + DrawGUIButton 21,118,35,126,43,GUISaveTextZ1,76,-2,-1 ; + Second/Rewind + DrawGUIButton 21,129,35,137,43,GUISaveTextZ2,77,-2,-1 ; - Second/Rewind - cmp byte[frameskip],0 - jne near .noslider - mov eax,[GUIwinposx+21*4] ;Slider - mov ebx,[GUIwinposy+21*4] - add eax,15 - add ebx,175 - mov ecx,eax - add ecx,116 - xor edx,edx - mov dl,215 - sub dl,[GUIWincoladd] - DrawGUILine - inc ecx - inc eax - sub dl,13 - DrawGUILine - xor eax,eax - mov al,[EmuSpeed] - shl eax,1 - mov dword[GUITemp],12 - add [GUITemp],eax - GUIDisplayIconWin 21,[GUITemp],171,GUIIconDataSlideBar - mov dword[GUISpeedTextD1],0 - mov esi,GUISpeedTextD1+2 - xor eax,eax ; currently emuspeed ranges from 0 to 58 - mov al,[EmuSpeed] ; this turns it into '/30' to '30x' - cmp al,29 - jb .slowmo - mov byte[esi],'x' ; adds 'x' after the ff value - dec esi - sub al,28 - jmp .asciilp + cmp byte[frameskip],0 + jne near .noslider + mov eax,[GUIwinposx+21*4] ;Slider + mov ebx,[GUIwinposy+21*4] + add eax,15 + add ebx,175 + mov ecx,eax + add ecx,116 + xor edx,edx + mov dl,215 + sub dl,[GUIWincoladd] + DrawGUILine + inc ecx + inc eax + sub dl,13 + DrawGUILine + xor eax,eax + mov al,[EmuSpeed] + shl eax,1 + mov dword[GUITemp],12 + add [GUITemp],eax + GUIDisplayIconWin 21,[GUITemp],171,GUIIconDataSlideBar + mov dword[GUISpeedTextD1],0 + mov esi,GUISpeedTextD1+2 + xor eax,eax ; currently emuspeed ranges from 0 to 58 + mov al,[EmuSpeed] ; this will turn it into '/30' to '30x' + cmp al,29 + jb .slowmo + mov byte[esi],'x' ; adds 'x' after the ff value + dec esi + sub al,28 + jmp .asciilp .slowmo - mov byte[GUISpeedTextD1],1 ; slomo indicator - mov bl,30 - sub bl,al - mov al,bl + mov byte[GUISpeedTextD1],1 ; slomo indicator + mov bl,30 + sub bl,al + mov al,bl .asciilp ; turns decimal into ascii - mov bl,10 - div bl - add ah,48 - mov [esi],ah - cmp al,0 - je .nomore - dec esi - xor ah,ah - div bl - add ah,48 - mov [esi],ah + mov bl,10 + div bl + add ah,48 + mov [esi],ah + cmp al,0 + je .nomore + dec esi + xor ah,ah + div bl + add ah,48 + mov [esi],ah .nomore - cmp byte[GUISpeedTextD1],1 - jne .convdone - dec esi - mov byte[esi],'/' ; adds '/' before the slomo value + cmp byte[GUISpeedTextD1],1 + jne .convdone + dec esi + mov byte[esi],'/' ; adds '/' before the slomo value .convdone - mov [GUITemp],esi ; Display Value (Green) - GUIDisplayTextG 21,78,163,[GUITemp] + mov [GUITemp],esi ; Display Value (Green) + GUIDisplayTextG 21,78,163,[GUITemp] .noslider - cmp byte[frameskip],0 ; Determine if AutoFR is enabled - je near .auto + cmp byte[frameskip],0 ; Determine if AutoFR is enabled + je near .auto - GUIDisplayBBox 21,75,13,93,20,167 ; Non AFR FrameRate +/- Box - mov al,[frameskip] - add al,47 - mov [GUISpeedTextX],al - GUIDisplayTextG 21,85,15,GUISpeedTextX + GUIDisplayBBox 21,75,13,93,20,167 ; Non AFR FrameRate +/- Box + mov al,[frameskip] + add al,47 + mov [GUISpeedTextX],al + GUIDisplayTextG 21,85,15,GUISpeedTextX - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero6 - mov byte[GUItextcolor],211 + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero6 + mov byte[GUItextcolor],211 .zero6 - DrawGUIButton 21,97,13,105,21,GUISpeedTextY,12,-2,-1 - DrawGUIButton 21,108,13,116,21,GUISpeedTextZ,13,-2,-1 - jmp .ratioborders + DrawGUIButton 21,97,13,105,21,GUISpeedTextY,12,-2,-1 + DrawGUIButton 21,108,13,116,21,GUISpeedTextZ,13,-2,-1 + jmp .ratioborders .auto ; AFR Max Frameskip +/- Box - GUIDisplayBBox 21,96,13,114,20,167 - mov al,[maxskip] - add al,48 - mov [GUISpeedTextX],al - mov byte[GUItextcolor],223 - GUIOuttextwin2 21,107,15,GUISpeedTextX - mov byte[GUItextcolor],221 - cmp byte[GUIWincoladd],0 - je .zero5 - mov byte[GUItextcolor],222 + GUIDisplayBBox 21,96,13,114,20,167 + mov al,[maxskip] + add al,48 + mov [GUISpeedTextX],al + mov byte[GUItextcolor],223 + GUIOuttextwin2 21,107,15,GUISpeedTextX + mov byte[GUItextcolor],221 + cmp byte[GUIWincoladd],0 + je .zero5 + mov byte[GUItextcolor],222 .zero5 - GUIOuttextwin2 21,106,14,GUISpeedTextX - mov byte[GUItextcolor],217 - cmp byte[GUIWincoladd],0 - je .zero7 - mov byte[GUItextcolor],211 + GUIOuttextwin2 21,106,14,GUISpeedTextX + mov byte[GUItextcolor],217 + cmp byte[GUIWincoladd],0 + je .zero7 + mov byte[GUItextcolor],211 .zero7 - DrawGUIButton 21,118,13,126,21,GUISpeedTextY,12,-2,-1 - DrawGUIButton 21,129,13,137,21,GUISpeedTextZ,13,-2,-1 + DrawGUIButton 21,118,13,126,21,GUISpeedTextY,12,-2,-1 + DrawGUIButton 21,129,13,137,21,GUISpeedTextZ,13,-2,-1 .ratioborders - ret + ret SECTION .data GUISpeedTextA1 db 'MAX FRAME SKIP',0 @@ -4577,7 +4770,7 @@ GUISpeedTextA1b db 'FRAME RATE',0 GUISpeedTextA2 db 'FASTFWD RATIO x',0 GUISpeedTextA3 db 'SLOWDWN RATIO /',0 -GUISpeedTextB db 'SHORTCUTS : ',0 +GUISpeedTextB db 'SHORTCUTS:',0 GUISpeedTextB1 db 'FAST FORWARD',0 GUISpeedTextB2 db 'SLOW DOWN',0 GUISpeedTextB3 db '+ EMU SPEED',0 @@ -4591,7 +4784,7 @@ GUISpeedTextB7 db 'INCR FRAME',0 GUISpeedTextC1 db 'TOGGLED FFWD/SLWDWN',0 GUISpeedTextC2 db 'AUTO FRAME RATE',0 -GUISpeedTextD db 'EMU SPEED : ',0 +GUISpeedTextD db 'EMU SPEED:',0 GUISpeedTextD1 db '---',0 GUISpeedTextZ3 db '--',0 @@ -4600,8 +4793,8 @@ GUISpeedTextY db '+',0 GUISpeedTextZ db '-',0 ;General data -GUILoadDisp db 'LOAD GAME',0 -GUIResetDisp db 'RESET GAME',0 +GUILoadDisp db 'LOAD GAME',0 +GUIResetDisp db 'RESET GAME',0 GUIStateSelDisp db 'STATE SELECT',0 GUIInputDisp db 'INPUT DEVICE',0 GUIOptionDisp db 'OPTIONS',0 @@ -4609,9 +4802,9 @@ GUISoundDisp db 'SOUND CONFIG',0 GUIVideoDisp db 'VIDEO CONFIG',0 GUICheatDisp db 'CHEAT',0 GUISearchDisp db 'CHEAT SEARCH',0 -GUINetDisp db 'REMOTE',0,0,0,0,0,0,0,0,0 -GUIGameDisp db 'MISC KEYS',0 -GUIGUIDisp db 'GUI OPTIONS',0 +GUINetDisp db 'REMOTE',0,0,0,0,0,0,0,0,0 +GUIGameDisp db 'MISC KEYS',0 +GUIGUIDisp db 'GUI OPTIONS',0 GUIAboutDisp db 'ABOUT',0 GUIMovieDisp db 'MOVIE OPTIONS',0 GUIStatesDisp db 'STATE CONFIRM',0 @@ -4627,11 +4820,12 @@ GUIItemBoxColor resd 1 TextColorSp resd 1 SECTION .data -NEWSYM GUIMenuItem, db 'GAME ',0 - db 'CONFIG',0 - db 'CHEAT ',0 - db 'NETPLAY',0 - db 'MISC ',0 - db 25,0 +NEWSYM GUIMenuItem + db 'GAME ',0 + db 'CONFIG',0 + db 'CHEAT ',0 + db 'NETPLAY',0 + db 'MISC ',0 + db 25,0 SECTION .text