From 8059d0c845014f015c685cea3f0d2c8a8587a5c0 Mon Sep 17 00:00:00 2001 From: Rangi Date: Sun, 5 Sep 2021 12:40:32 -0400 Subject: [PATCH] Clean up the recently documented bug fixes --- docs/bugs_and_glitches.md | 77 +++++++++++++----- docs/design_flaws.md | 37 +-------- docs/images/ruins_of_alph_outside.png | Bin 0 -> 494 bytes .../images/ruins_of_alph_outside_cinnabar.png | Bin 0 -> 485 bytes 4 files changed, 59 insertions(+), 55 deletions(-) create mode 100644 docs/images/ruins_of_alph_outside.png create mode 100644 docs/images/ruins_of_alph_outside_cinnabar.png diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index bd85affd8..55bf69d1e 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -51,14 +51,15 @@ Fixes in the [multi-player battle engine](#multi-player-battle-engine) category - [Glacier Badge may not boost Special Defense depending on the value of Special Attack](#glacier-badge-may-not-boost-special-defense-depending-on-the-value-of-special-attack) - ["Smart" AI encourages Mean Look if its own Pokémon is badly poisoned](#smart-ai-encourages-mean-look-if-its-own-pokémon-is-badly-poisoned) - ["Smart" AI discourages Conversion2 after the first turn](#smart-ai-discourages-conversion2-after-the-first-turn) + - ["Smart" AI does not encourage Solar Beam, Flame Wheel, or Moonlight during Sunny Day](#smart-ai-does-not-encourage-solar-beam-flame-wheel-or-moonlight-during-sunny-day) - [AI does not discourage Future Sight when it's already been used](#ai-does-not-discourage-future-sight-when-its-already-been-used) - [AI makes a false assumption about `CheckTypeMatchup`](#ai-makes-a-false-assumption-about-checktypematchup) - [AI use of Full Heal or Full Restore does not cure Nightmare status](#ai-use-of-full-heal-or-full-restore-does-not-cure-nightmare-status) - [AI use of Full Heal does not cure confusion status](#ai-use-of-full-heal-does-not-cure-confusion-status) - [Wild Pokémon can always Teleport regardless of level difference](#wild-pokémon-can-always-teleport-regardless-of-level-difference) + - [`RIVAL2` has lower DVs than `RIVAL1`](#rival2-has-lower-dvs-than-rival1) - [`HELD_CATCH_CHANCE` has no effect](#held_catch_chance-has-no-effect) - [Credits sequence changes move selection menu behavior](#credits-sequence-changes-move-selection-menu-behavior) - - [Solar Beam, Flame Wheel, and Moonlight are not in the "Smart" AI's list of moves that encourage Sunny Day](#solar-beam-flame-wheel-and-moonlight-are-not-in-the-smart-ais-list-of-moves-that-encourage-sunny-day) - [Overworld engine](#overworld-engine) - [`LoadMetatiles` wraps around past 128 blocks](#loadmetatiles-wraps-around-past-128-blocks) - [Surfing directly across a map connection does not load the new map](#surfing-directly-across-a-map-connection-does-not-load-the-new-map) @@ -66,6 +67,7 @@ Fixes in the [multi-player battle engine](#multi-player-battle-engine) category - [Graphics](#graphics) - [In-battle “`…`” ellipsis is too high](#in-battle--ellipsis-is-too-high) - [Two tiles in the `port` tileset are drawn incorrectly](#two-tiles-in-the-port-tileset-are-drawn-incorrectly) + - [The Ruins of Alph research center's roof color at night looks wrong](#the-ruins-of-alph-research-centers-roof-color-at-night-looks-wrong) - [Using a Park Ball in non-Contest battles has a corrupt animation](#using-a-park-ball-in-non-contest-battles-has-a-corrupt-animation) - [Battle transitions fail to account for the enemy's level](#battle-transitions-fail-to-account-for-the-enemys-level) - [Some trainer NPCs have inconsistent overworld sprites](#some-trainer-npcs-have-inconsistent-overworld-sprites) @@ -1114,6 +1116,27 @@ As Pryce's dialog ("That BADGE will raise the SPECIAL stats of POKéMON.") impli ``` +### "Smart" AI does not encourage Solar Beam, Flame Wheel, and Moonlight during Sunny Day + +**Fix:** Edit `SunnyDayMoves` in [data/battle/ai/sunny_day_moves.asm](https://github.com/pret/pokecrystal/blob/master/data/battle/ai/sunny_day_moves.asm): + +```diff +SunnyDayMoves: + db FIRE_PUNCH + db EMBER + db FLAMETHROWER ++ db SOLARBEAM + db FIRE_SPIN + db FIRE_BLAST ++ db FLAME_WHEEL + db SACRED_FIRE + db MORNING_SUN + db SYNTHESIS ++ db MOONLIGHT + db -1 ; end +``` + + ### AI does not discourage Future Sight when it's already been used **Fix:** Edit `AI_Redundant` in [engine/battle/ai/redundant.asm](https://github.com/pret/pokecrystal/blob/master/engine/battle/ai/redundant.asm): @@ -1263,6 +1286,20 @@ As Pryce's dialog ("That BADGE will raise the SPECIAL stats of POKéMON.") impli ``` +### `RIVAL2` has lower DVs than `RIVAL1` + +`RIVAL1` is battled throughout the game. `RIVAL2` is battled at Indigo Plateau, and would not be expected to have worse DVs. + +**Fix:** Edit `TrainerClassDVs` in [data/trainers/dvs.asm](https://github.com/pret/pokecrystal/blob/master/data/trainers/dvs.asm): + +```diff + dn 13, 13, 13, 13 ; RIVAL1 + ... +- dn 9, 8, 8, 8 ; RIVAL2 ++ dn 13, 13, 13, 13 ; RIVAL2 +``` + + ### `HELD_CATCH_CHANCE` has no effect **Fix:** Edit `PokeBallEffect` in [engine/items/item_effects.asm](https://github.com/pret/pokecrystal/blob/master/engine/items/item_effects.asm): @@ -1342,25 +1379,6 @@ The `[hInMenu]` value determines this button behavior. However, the battle moves ret ``` -### Solar Beam, Flame Wheel, and Moonlight are not in the "Smart" AI's list of moves that encourage Sunny Day - -**Fix:** Edit [data/battle/ai/sunny_day_moves.asm](https://github.com/pret/pokecrystal/blob/master/data/battle/ai/sunny_day_moves.asm): - -```diff -SunnyDayMoves: - db FIRE_PUNCH - db EMBER - db FLAMETHROWER -+ db SOLARBEAM - db FIRE_SPIN - db FIRE_BLAST -+ db FLAME_WHEEL - db SACRED_FIRE - db MORNING_SUN - db SYNTHESIS -+ db MOONLIGHT - db -1 ; end -``` ## Overworld engine @@ -1500,6 +1518,25 @@ This is a mistake with the left-hand warp carpet corner tiles in [gfx/tilesets/p ![image](https://raw.githubusercontent.com/pret/pokecrystal/master/docs/images/port.png) +## The Ruins of Alph research center's roof color at night looks wrong + +The dungeons' map group mostly has indoor maps that don't need roof colors, but [maps/RuinsOfAlphOutside.blk](https://github.com/pret/pokecrystal/blob/master/maps/RuinsOfAlphOutside.blk) is an exception. It appears to have poorly-chosen roof colors: the morning/day colors are the same default gray as the unused group 0, and the night colors combine the light default gray and the dark red of Cinnabar's night roofs. + +![image](https://raw.githubusercontent.com/pret/pokecrystal/master/docs/images/ruins_of_alph_outside.png) + +**Fix:** Edit [gfx/tilesets/roofs.pal](https://github.com/pret/pokecrystal/blob/master/gfx/tilesets/roofs.pal) to use the same red colors as Cinnabar (which are not actually seen in-game): + +```diff +; group 3 (dungeons) +- RGB 21,21,21, 11,11,11 ; morn/day +- RGB 21,21,21, 17,08,07 ; nite ++ RGB 31,10,00, 18,06,00 ; morn/day ++ RGB 18,05,09, 17,08,07 ; nite +``` + +![image](https://raw.githubusercontent.com/pret/pokecrystal/master/docs/images/ruins_of_alph_outside_cinnabar.png) + + ### Using a Park Ball in non-Contest battles has a corrupt animation ([Video](https://www.youtube.com/watch?v=v1ErZdLCIyU)) diff --git a/docs/design_flaws.md b/docs/design_flaws.md index 57119f67e..aa7c1fa79 100644 --- a/docs/design_flaws.md +++ b/docs/design_flaws.md @@ -13,8 +13,6 @@ These are parts of the code that do not work *incorrectly*, like [bugs and glitc - [Pokédex entry banks are derived from their species IDs](#pokédex-entry-banks-are-derived-from-their-species-ids) - [Identical sine wave code and data is repeated five times](#identical-sine-wave-code-and-data-is-repeated-five-times) - [`GetForestTreeFrame` works, but it's still bad](#getforesttreeframe-works-but-its-still-bad) -- [Second rival battle's DVs are lower than the first](#second-rival-battles-dvs-are-lower-than-the-first) -- [The Ruins of Alph research center's roof color at night looks wrong](#the-ruins-of-alph-research-centers-roof-color-at-night-looks-wrong) ## Pic banks are offset by `PICS_FIX` @@ -590,7 +588,7 @@ Edit [engine/items/item_effects.asm](https://github.com/pret/pokecrystal/blob/ma ld a, BANK(PokedexDataPointerTable) call GetFarWord + pop de - + .SkipText: - call GetPokedexEntryBank + ld a, d @@ -598,7 +596,7 @@ Edit [engine/items/item_effects.asm](https://github.com/pret/pokecrystal/blob/ma inc hl cp "@" jr nz, .SkipText - + - call GetPokedexEntryBank + ld a, d push bc @@ -793,34 +791,3 @@ Edit `GetForestTreeFrame`: + add a ret ``` - - -## Second rival battle's DVs are lower than the first - -The second rival battle has Pokémon whose DVs are actually *lower* than the DVs of the Pokémon from the first rival battle, which doesn't align with Silver's beliefs throughout the game. - -**Fix:** - -Edit [data/trainers/dvs.asm](https://github.com/pret/pokecrystal/blob/master/data/trainers/dvs.asm) to adjust the DVs of RIVAL2 to those of RIVAL1: - -```diff - dn 13, 13, 13, 13 ; RIVAL1 - ... -- dn 9, 8, 8, 8 ; RIVAL2 -+ dn 13, 13, 13, 13 ; RIVAL2 -``` - -## The Ruins of Alph research center's roof color at night looks wrong - -The Ruins of Alph research center's roof looks wonky during the night, making it look unprofessional. - -**Fix:** - -Edit [gfx/tilesets/roofs.pal](https://github.com/pret/pokecrystal/blob/master/gfx/tilesets/roofs.pal) to adjust Group 3's night palette to a suitable one (that of Pewter City's roofs in this instance): - -```diff -; group 3 (dungeons) - RGB 21,21,21, 11,11,11 ; morn/day -- RGB 21,21,21, 17,08,07 ; nite -+ RGB 09,09,11, 04,05,07 ; nite -``` diff --git a/docs/images/ruins_of_alph_outside.png b/docs/images/ruins_of_alph_outside.png new file mode 100644 index 0000000000000000000000000000000000000000..3c9a0a4269dc6713476fc15b095afdb40a7d332a GIT binary patch literal 494 zcmV+3M7DgPItDCy+NV%*RwlndsUPH%A@ISSA_i z))^OPeFgdMYc5<(?-+FC*Iar_|NZWWL#(fo}6 zD{u~+1EYxz<>RRh1Ww>5kjshH-ObeM{_hjCXXHtM=M{PtnhVkq!J55i;A4-zGR-yX zXBZ%DLQ;x6xmQaCSio4xQ6%?j9RnbJLmoLg20;0ZBBrTN@PY%FC-}qxnkNt-O$qQk z(;bxM4~U}XJAnVGfZVI49U)KwxmQaM5EU@qfeL7TO|Sx2mI?OYws`^poEZgO*K`N| znu9@Tx&z`Y5-@j7NAR}=*n|y75avKz1~PLXz(Bl=feOT$c`O6@E(a=*Yc_cmNF-;0 zpSX#x3KWvR#ZSUQhk<#g3M8l=m@P%H=~saQ)dTAt1mXpi9Ex13>&7C;w_Nf$3b}5O k%Rq&yR~-Z@T)pbD0}}plA=Jb;+5i9m07*qoM6N<$f(;1Kr2qf` literal 0 HcmV?d00001 diff --git a/docs/images/ruins_of_alph_outside_cinnabar.png b/docs/images/ruins_of_alph_outside_cinnabar.png new file mode 100644 index 0000000000000000000000000000000000000000..bbbd049af7d790170971a108c4e08d27ae86ea73 GIT binary patch literal 485 zcmVfDTH&BgmY5&_ga)GO8-&-0000vIXR3%Ig~K~dvnHXW)_zK z00C`DL_t(|UhL2@4!{5iLQ!S}_5P=A(j(~54!(r_2f!<6tu$=Rg)Q|QCD@3Fnyuad zk~v%cBj5rq-~uinYR;CJa}vCyB{*s!Ean2gf8gnqj&>aeK>!Sc7VJqN;r*ZXuuOHb zY1)2XSbOyc1wd4Q1Xx!-^56%A-wP6eB7zZ#85`AA&NBFc?DsM@6C&#Y4#8!exG%1NVnF*J_f~y#rY0fMFjXTm!sd0G)uYC42`E%V07wS!1dJ6V-6q1EZNp bIPKX#zOj@#XR5DT00000NkvXXu0mjfNn_3J literal 0 HcmV?d00001