diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index e00146a3..041e16f6 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -125,9 +125,9 @@ EXTSYM GetScreen,GUITBWVID EXTSYM Clear2xSaIBuffer EXTSYM MouseWindow EXTSYM GotoHomepage -EXTSYM cfgcvidmode, ExitFromGUI +EXTSYM cfgcvidmode,ExitFromGUI EXTSYM GUIWFVID -EXTSYM cfgvsync,cfgcopymethod,newgfx16b +EXTSYM cfgvsync,newgfx16b EXTSYM cfgscanline,cfginterp EXTSYM NumVideoModes EXTSYM cfgvolume, MusicVol, DSPMem @@ -146,13 +146,11 @@ EXTSYM pl1upk,pl1downk,pl1leftk,pl1rightk,pl1Lk,pl1Rk,pl1Ak,pl1Bk EXTSYM deinitipx EXTSYM InitModem EXTSYM outofmemfix,yesoutofmemory - EXTSYM CReadHead,ReadHead,CFWriteHead,CFWriteStart EXTSYM JoyX,JoyY,JoyMinX,JoyMinY,JoyMaxX,JoyMaxY,JoyMinX209,JoyMaxX209 EXTSYM JoyMinY209,JoyMaxY209,GetCoords,GetCoords3 EXTSYM MultiTap,SFXEnable EXTSYM RestoreSystemVars - EXTSYM TCPIPStartServer EXTSYM TCPIPInitConnectToServer EXTSYM TCPIPWaitForConnection @@ -170,6 +168,7 @@ EXTSYM DeInitModemC EXTSYM ipxgetchar,ipxsendchar,TCPIPStoreByte EXTSYM TCPIPGetByte,GUIBIFIL EXTSYM ModemSendChar +EXTSYM MMXCheck %ifdef __LINUX__ EXTSYM numlockptr %endif diff --git a/zsnes/src/gui/guikeys.inc b/zsnes/src/gui/guikeys.inc index 9580e547..529a7f34 100644 --- a/zsnes/src/gui/guikeys.inc +++ b/zsnes/src/gui/guikeys.inc @@ -832,9 +832,8 @@ GUIOptionKeys: ;.novsync cmp dh,'M' jne .nommxcopy - xor byte[FPUCopy],2 - mov al,[FPUCopy] - mov [cfgcopymethod],al + xor byte[MMXSupport],1 + call MMXCheck .nommxcopy cmp dh,'U' jne .nousepl34 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 5d9a47fe..8c303a0e 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -1321,6 +1321,23 @@ GUIWinClicked: %%noclick %endmacro +%macro GUIClickCButtonMMX 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,%4 + call MMXCheck + ret +%%noclick +%endmacro + + + %macro GUISlidebarPostImpl 13 ; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize cmp dword[%11],0 je near %%nolower @@ -2139,7 +2156,7 @@ DisplayGUIOptionClick: GUIClickCButton2 11,36,byte[newengen],byte[cfgnewgfx],1 .invalidng ; GUIClickCButton2 11,46,byte[vsyncon],byte[cfgvsync],1 - GUIClickCButton2 11,56,byte[FPUCopy],byte[cfgcopymethod],2 + GUIClickCButtonMMX 11,56,byte[MMXSupport],1 GUIClickCButtonM 11,66,byte[pl12s34] %ifdef __MSDOS__ GUIClickCButton 11,76,byte[SidewinderFix] diff --git a/zsnes/src/ui.asm b/zsnes/src/ui.asm index ff790729..a40acd8f 100644 --- a/zsnes/src/ui.asm +++ b/zsnes/src/ui.asm @@ -1569,7 +1569,7 @@ NEWSYM DosExit ; Terminate Program NEWSYM MMXCheck ; Check for cpu that doesn't support CPUID cmp byte[MMXSupport],0 - jne near .nommx2 + je near .nommx3 mov edx,cpuidfname call Open_File jc .skipcheck @@ -1601,7 +1601,7 @@ NEWSYM MMXCheck test edx,1 << 23 jz .nommx mov byte[FPUCopy],2 - mov byte[MMXSupport],2 + mov byte[MMXSupport],1 mov edx,YesMMX call PrintStr .nommx @@ -1610,5 +1610,9 @@ NEWSYM MMXCheck call Delete_File .nommx2 ret +.nommx3 + mov byte[FPUCopy],0 + mov byte[MMXSupport],0 + ret NEWSYM UIAsmEnd