diff --git a/zsnes/src/gui/guimisc.inc b/zsnes/src/gui/guimisc.inc index e16784d1..9063d7ab 100644 --- a/zsnes/src/gui/guimisc.inc +++ b/zsnes/src/gui/guimisc.inc @@ -229,22 +229,36 @@ SetAllKeys: mov byte[GUICBHold],0 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 .nopl3 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 .nopl5 + + ;Check if controller is set + push eax + mov eax,dword[keycontrolval] + cmp dword[eax],0 + pop eax + jne .noLockInputChange + ret +.noLockInputChange mov dword[guicpressptr],edi xor ebx,ebx mov ecx,12 diff --git a/zsnes/src/gui/guimouse.inc b/zsnes/src/gui/guimouse.inc index 6dc289c2..26c02dec 100644 --- a/zsnes/src/gui/guimouse.inc +++ b/zsnes/src/gui/guimouse.inc @@ -582,15 +582,7 @@ ProcessMouseButtons: cmp byte[GUICBHold],20 je near SkipMovie cmp byte[GUICBHold],40 - jne .notClickedSetKeys - push ebx - mov ebx,[GUIcurrentinputcursloc] - mov bl,[GUIInputRefF+ebx] - cmp bl,0 - pop ebx - je .notClickedSetKeys - jmp near SetAllKeys -.notClickedSetKeys + je near SetAllKeys cmp byte[GUICBHold],50 jne .notstartcheat call CheatCodeSearchInit @@ -2197,11 +2189,11 @@ DisplayGUIInputClick: mov dword[keycontrolval],pl5contrl .nopl5 - push ebx - mov ebx,[GUIcurrentinputcursloc] - mov bl,[GUIInputRefF+ebx] - cmp bl,0 - pop ebx + ;Check if controller is set + push eax + mov eax,dword[keycontrolval] + cmp dword[eax],0 + pop eax je .lockInputChange DGOptnsProcBox 45,150,[edi] @@ -2217,8 +2209,6 @@ DisplayGUIInputClick: DGOptnsProcBox 85,110,[edi+40] DGOptnsProcBox 85,150,[edi+44] -.lockInputChange - mov edi,pl1Atk cmp byte[cplayernum],1 jne .nopl2t @@ -2237,20 +2227,11 @@ DisplayGUIInputClick: mov edi,pl5Atk .nopl5t - push ebx - mov ebx,[GUIcurrentinputcursloc] - mov bl,[GUIInputRefF+ebx] - cmp bl,0 - pop ebx - je .lockInputChange2 - 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 -.lockInputChange2 - mov edi,pl1Ltk cmp byte[cplayernum],1 jne .nopl2tl @@ -2269,18 +2250,9 @@ DisplayGUIInputClick: mov edi,pl5Ltk .nopl5tl - push ebx - mov ebx,[GUIcurrentinputcursloc] - mov bl,[GUIInputRefF+ebx] - cmp bl,0 - pop ebx - je .lockInputChange3 - DGOptnsProcBox 125,120,[edi] ; L Turbo DGOptnsProcBox 165,120,[edi+4] ; R Turbo -.lockInputChange3 - mov edi,pl1ULk cmp byte[cplayernum],1 jne .nopl2tb @@ -2299,19 +2271,12 @@ DisplayGUIInputClick: mov edi,pl5ULk .nopl5tb - push ebx - mov ebx,[GUIcurrentinputcursloc] - mov bl,[GUIInputRefF+ebx] - cmp bl,0 - pop ebx - je .lockInputChange4 - DGOptnsProcBoxb 165,140,[edi] DGOptnsProcBoxb 165,150,[edi+4] DGOptnsProcBoxb 125,140,[edi+8] DGOptnsProcBoxb 125,150,[edi+12] -.lockInputChange4 +.lockInputChange %ifdef __MSDOS__ xor ebx,ebx