summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authori0brendan0 <i0brendan0@github.com>2018-03-01 04:08:54 -0600
committeri0brendan0 <i0brendan0@github.com>2018-03-01 04:08:54 -0600
commit82ffb584c8fefc04e1bad4895cdc2d9222100b4c (patch)
treeed1db428576d571aee1f906a8cccd046e7fb1544
parentb57bafd3b7ca771a51596207105a54784175cb7b (diff)
Add Protect Bug and Fix
Moves 'miss' when opponent uses Protect.
-rw-r--r--docs/bugs_and_glitches.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index a1693a00d..34b04de9b 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -53,6 +53,7 @@ These are known bugs and glitches in the original Pokémon Crystal game: code th
- [`TryObjectEvent` arbitrary code execution](#tryobjectevent-arbitrary-code-execution)
- [`Special_CheckBugContestContestantFlag` can read beyond its data table](#special_checkbugcontestcontestantflag-can-read-beyond-its-data-table)
- [`ClearWRAM` only clears WRAM bank 1](#clearwram-only-clears-wram-bank-1)
+- [Moves erroneously say they have missed when the opponent uses Protect or Detect](#moves-erroneously-say-they-have-missed-when-the-opponent-uses-protect-or-detect)
## Thick Club and Light Ball can decrease damage done with boosted (Special) Attack
@@ -1486,3 +1487,29 @@ ClearWRAM:: ; 25a
```
**Fix:** Change `jr nc, .bank_loop` to `jr c, .bank_loop`.
+
+## Moves erroneously say they have missed when the opponent uses Protect or Detect
+
+In [battle/effect_commands.asm](battle/effect_commands.asm):
+
+```asm
+BattleCommand_CheckHit: ; 34d32
+; checkhit
+
+ call .DreamEater
+ jp z, .Miss
+
+ call .Protect
+ jp nz, .Miss
+```
+
+**Fix:** Change `jp nz, .Miss` to `jp nz, .Failed` and add
+
+```asm
+.Failed:
+ ld a, 1
+ ld [wEffectFailed], a
+ ret
+```
+
+at [line 1781](battle/effect_commands.asm#L1718).