diff --git a/zsnes/src/gui/gui.asm b/zsnes/src/gui/gui.asm index 08fbb9fb..c52fa5a5 100644 --- a/zsnes/src/gui/gui.asm +++ b/zsnes/src/gui/gui.asm @@ -101,6 +101,7 @@ EXTSYM ipxlookforconnect EXTSYM SA1Enable,SA1RAMArea EXTSYM GUIFName,GUICName EXTSYM printnum +EXTSYM MMXCheck EXTSYM SaveCombFile EXTSYM NetSent,valuea EXTSYM welcome diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 81829974..f9762603 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -1344,6 +1344,20 @@ GUIWinClicked: %%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 +%%noclick +%endmacro + %macro GUISlidebarPostImpl 13 ; x1,y1,x2,y2,upjump,downjump,holdpos,scsize,view,cur,listsize cmp dword[%11],0 je near %%nolower @@ -2166,7 +2180,7 @@ DisplayGUIOptionClick: GUIClickCButton2 11,36,byte[newengen],byte[cfgnewgfx],1 .invalidng GUIClickCButtonAS 11,46,byte[AutoIncSaveSlot] - GUIClickCButton 11,56,byte[MMXSupport] + GUIClickCButtonMMX 11,56,byte[MMXSupport] 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 ef4c70ea..7e55fdf0 100644 --- a/zsnes/src/ui.asm +++ b/zsnes/src/ui.asm @@ -1629,6 +1629,9 @@ NEWSYM MMXCheck ; mov edx,cpuidtext ; call PrintStr + cmp byte[MMXSupport],0 + je .nommx + ; Real way to check for presence of CPUID instruction -kode54 pushfd pop eax