ref: 38cd2155df1953c065d8c66bcd44125afde75051
parent: 0d5cf5c8b9066b407f8dc1879dad56d53f5d0179
author: The Void <9028176+etdv-thevoid@users.noreply.github.com>
date: Thu Aug 11 19:28:35 EDT 2022
Bug Doc: Options menu fails to clear joypad state on initialization (#984)
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -103,6 +103,7 @@
- [`ReadObjectEvents` overflows into `wObjectMasks`](#readobjectevents-overflows-into-wobjectmasks)
- [`ClearWRAM` only clears WRAM bank 1](#clearwram-only-clears-wram-bank-1)
- [`BattleAnimCmd_ClearObjs` only clears the first 6⅔ objects](#battleanimcmd_clearobjs-only-clears-the-first-6-objects)
+ - [Options menu fails to clear joypad state on initialization](#options-menu-fails-to-clear-joypad-state-on-initialization)
## Multi-player battle engine
@@ -2628,4 +2629,22 @@
dec a
jr nz, .loop
ret
+```
+
+
+### Options menu fails to clear joypad state on initialization
+
+([Video](https://www.youtube.com/watch?v=uhDSIkXkl3g))
+
+This bug allows all the options to be updated at once if the left or right buttons are pressed on the same frame that the options menu is opened.
+
+**Fix:** Edit `_Option` in [engine/menus/options_menu.asm](https://github.com/pret/pokecrystal/blob/master/engine/menus/options_menu.asm):
+
+```diff
+ _Option:
+-; BUG: Options menu fails to clear joypad state on initialization (see docs/bugs_and_glitches.md)
++ call ClearJoypad
+ ld hl, hInMenu
+ ld a, [hl]
+ push af
```
--- a/engine/menus/options_menu.asm
+++ b/engine/menus/options_menu.asm
@@ -11,6 +11,7 @@
DEF NUM_OPTIONS EQU const_value ; 8
_Option:
+; BUG: Options menu fails to clear joypad state on initialization (see docs/bugs_and_glitches.md)
ld hl, hInMenu
ld a, [hl]
push af