diff --git a/zsnes/src/cpu/execute.asm b/zsnes/src/cpu/execute.asm index 103451cb..274141ab 100644 --- a/zsnes/src/cpu/execute.asm +++ b/zsnes/src/cpu/execute.asm @@ -33,6 +33,7 @@ EXTSYM frameskip,initvideo,newgfx16b,oldhandSBo,oldhandSBs,soundon,cvidmode EXTSYM vidbuffer,vidbufferofsa,vidbufferofsb,disable65816sh,GUISaveVars,virqnodisable EXTSYM KeySaveState,KeyLoadState,KeyQuickExit,KeyQuickLoad,KeyQuickRst,GUIDoReset EXTSYM KeyOnStA,KeyOnStB,ProcessKeyOn,printnum,sramsavedis,DSPDisable,C4Enable +EXTSYM KeyQuickClock,KeyQuickMinimize,TimerEnable EXTSYM IRQHack,HIRQLoc,Offby1line,splitflags,joinflags,KeyQuickSnapShot EXTSYM csounddisable,videotroub,Open_File,Close_File,Read_File,ResetTripleBuf EXTSYM Write_File,Output_Text,Create_File,Check_Key,Get_Key,Change_Dir,InitPreGame @@ -118,6 +119,10 @@ EXTSYM ReadSPC7110log,WriteSPC7110log NEWSYM ExecuteAsmStart EXTSYM NetPlayNoMore +%ifdef __WIN32__ +EXTSYM MinimizeWindow +%endif + EXTSYM statefileloc %macro BackupCVMacM 2 @@ -2240,9 +2245,9 @@ NEWSYM exitloop2 NEWSYM exitloop ret cmp byte[nextmenupopup],1 - je .okay + jmp .okay cmp byte[ExecExitOkay],0 - je .okay + jmp .okay mov byte[pressed+1],0 mov byte[pressed+59],0 mov eax,[KeySaveState] @@ -2258,6 +2263,10 @@ NEWSYM exitloop mov byte[ExecExitOkay],5 mov eax,[KeyQuickSnapShot] mov byte[pressed+eax],0 + mov eax,[KeyQuickClock] + mov byte[pressed+eax],0 + mov eax,[KeyQuickMinimize] + mov byte[pressed+eax],0 mov byte[SSKeyPressed],0 jmp cpuover.returntoloop .okay @@ -2740,6 +2749,27 @@ NEWSYM cpuover mov byte[pressed+eax],2 jmp exitloop .nosskey + mov eax,dword[KeyQuickClock] + or eax,eax + jz .noclockkey + test byte[pressed+eax],1 + jz .noclockkey + xor byte[TimerEnable],1 + mov byte[pressed+eax],2 +.noclockkey +%ifdef __WIN32__ + mov eax,dword[KeyQuickMinimize] + or eax,eax + jz .nominimizekey + test byte[pressed+eax],1 + jz .nominimizekey + pushad + call MinimizeWindow + popad + mov byte[pressed+eax],2 + jmp exitloop +.nominimizekey +%endif test byte[pressed+1],01h jnz near exitloop test byte[pressed+59],01h diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 59df7ff3..defcfaf3 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -587,6 +587,7 @@ NEWSYM TripleBufferWin, db 0 NEWSYM ExclusiveSound, db 0 NEWSYM DisableScreenSaver, db 0 NEWSYM TrapMouseCursor, db 1 +NEWSYM KeyQuickClock, dd 0 NEWSYM KeyQuickMinimize, dd 0 GUIsave equ $-GUIRAdd @@ -607,7 +608,7 @@ ModemOKStat db 0 ; OK is detected on modem status ; LOAD STAT INPT OPT VID SND CHT NET GMKEY GUIOP ABT RSET SRC STCN MOVE CMBO ADDO GUIwinposxo dd 0,5 ,60 ,30 ,55 ,50 ,65 ,5 ,30 ,20 ,10 ,80 ,65 ,20 ,70 ,50 ,3 ,50 GUIwinposyo dd 0,20 ,70 ,30 ,20 ,20 ,20 ,20 ,30 ,20 ,20 ,50 ,60 ,30 ,65 ,50 ,22 ,60 -GUIwinsizex dd 0,244 ,126 ,189 ,167 ,170 ,148 ,244 ,8*16,212 ,240 ,7*16,9*16,8*16,9*16,140 ,250 ,160 +GUIwinsizex dd 0,244 ,126 ,189 ,167 ,170 ,148 ,244 ,8*16,224 ,240 ,7*16,9*16,8*16,9*16,140 ,250 ,160 GUIwinsizey dd 0,190 ,3*16,166 ,190 ,192 ,184 ,191 ,40 ,189 ,192 ,98 ,42 ,40 ,42 ,70 ,190 ,60 GUIwinptr db 0 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index f745243d..24d60f2d 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -2633,12 +2633,13 @@ DisplayGameOptnsClick: DGOptnsProcBox 8+57+25,158,[KeyLoadState] DGOptnsProcBox 8+114+25,158,[KeyStateSelct] DGOptnsProcBox 8+25,178,[KeyQuickLoad] - DGOptnsProcBox 8+57+31,178,[KeyQuickRst] - DGOptnsProcBox 8+114+25,178,[KeyQuickExit] + DGOptnsProcBox 8+57+26,178,[KeyQuickRst] + DGOptnsProcBox 8+114+20,178,[KeyQuickExit] + DGOptnsProcBox 8+114+78,178,[KeyQuickClock] DGOptnsProcBox 8+25,188,[KeyQuickChat] - DGOptnsProcBox 8+57+49,188,[KeyQuickSnapShot] + DGOptnsProcBox 8+57+46,188,[KeyQuickSnapShot] %ifdef __WIN32__ - DGOptnsProcBox 8+111+70,188,[KeyQuickMinimize] + DGOptnsProcBox 8+108+70,188,[KeyQuickMinimize] %endif ret diff --git a/zsnes/src/gui/guiwindp.inc b/zsnes/src/gui/guiwindp.inc index d24dc110..eb30f6f2 100644 --- a/zsnes/src/gui/guiwindp.inc +++ b/zsnes/src/gui/guiwindp.inc @@ -4469,12 +4469,13 @@ DisplayGameOptns: mov al,byte[GUIGameOptnsColB] mov byte[GUItextcolor],al GUIOuttextwin2 9,9,180,GUIGameOptnsText9 - GUIOuttextwin2 9,9+57,180,GUIGameOptnsTextA - GUIOuttextwin2 9,9+114,180,GUIGameOptnsTextB + GUIOuttextwin2 9,9+52,180,GUIGameOptnsTextA + GUIOuttextwin2 9,9+109,180,GUIGameOptnsTextB GUIOuttextwin2 9,9,190,GUIGameOptnsTextQ - GUIOuttextwin2 9,9+57,190,GUIGameOptnsTextR + GUIOuttextwin2 9,9+53,190,GUIGameOptnsTextR + GUIOuttextwin2 9,9+160,180,GUIGameOptnsTextU %ifdef __WIN32__ - GUIOuttextwin2 9,141,190,GUIGameOptnsTextU + GUIOuttextwin2 9,137,190,GUIGameOptnsTextV %endif mov byte[GUIGameOptnsColA],163 @@ -4575,12 +4576,13 @@ DisplayGameOptns: mov al,byte[GUIGameOptnsColB] mov byte[GUItextcolor],al GUIOuttextwin2 9,8,179,GUIGameOptnsText9 - GUIOuttextwin2 9,8+57,179,GUIGameOptnsTextA - GUIOuttextwin2 9,8+114,179,GUIGameOptnsTextB + GUIOuttextwin2 9,8+52,179,GUIGameOptnsTextA + GUIOuttextwin2 9,8+109,179,GUIGameOptnsTextB GUIOuttextwin2 9,8,189,GUIGameOptnsTextQ - GUIOuttextwin2 9,8+57,189,GUIGameOptnsTextR + GUIOuttextwin2 9,8+53,189,GUIGameOptnsTextR + GUIOuttextwin2 9,8+160,179,GUIGameOptnsTextU %ifdef __WIN32__ - GUIOuttextwin2 9,140,189,GUIGameOptnsTextU + GUIOuttextwin2 9,136,189,GUIGameOptnsTextV %endif ; Draw black boxes @@ -4628,12 +4630,13 @@ DisplayGameOptns: DGOptnsDrawBox 8+57+25,158,[KeyLoadState] DGOptnsDrawBox 8+114+25,158,[KeyStateSelct] DGOptnsDrawBox 8+25,178,[KeyQuickLoad] - DGOptnsDrawBox 8+57+31,178,[KeyQuickRst] - DGOptnsDrawBox 8+114+25,178,[KeyQuickExit] + DGOptnsDrawBox 8+57+26,178,[KeyQuickRst] + DGOptnsDrawBox 8+114+20,178,[KeyQuickExit] + DGOptnsDrawBox 8+114+78,178,[KeyQuickClock] DGOptnsDrawBox 8+25,188,[KeyQuickChat] - DGOptnsDrawBox 8+57+49,188,[KeyQuickSnapShot] + DGOptnsDrawBox 8+57+46,188,[KeyQuickSnapShot] %ifdef __WIN32__ - DGOptnsDrawBox 8+111+70,188,[KeyQuickMinimize] + DGOptnsDrawBox 8+108+70,188,[KeyQuickMinimize] %endif ret @@ -4669,7 +4672,8 @@ GUIGameOptnsTextQ db 'CHAT',0 GUIGameOptnsTextR db 'SNAPSHOT',0 GUIGameOptnsTextS db 'REWIND KEY',0 GUIGameOptnsTextT db 'SLOWDWN KEY',0 -GUIGameOptnsTextU db 'MINIMIZE',0 +GUIGameOptnsTextU db 'CLOCK',0 +GUIGameOptnsTextV db 'MINIMIZE',0 DisplayGUIOptns: GUIDrawWindowBox 10,GUIGUIDisp