From abef3065d0c6f61607161d6a88a42f93824c6f77 Mon Sep 17 00:00:00 2001 From: Sierraffinity Date: Sat, 12 Dec 2020 20:29:20 -0800 Subject: [PATCH 1/5] =?UTF-8?q?Fix=20affine=20anim=20bug=20with=20Pok?= =?UTF-8?q?=C3=A9mon=20going=20in=20and=20out=20of=20balls=20without=20an?= =?UTF-8?q?=20intermediate=20screen=20transition?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pokemon_animation.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pokemon_animation.c b/src/pokemon_animation.c index bfcf77b5c..58c174263 100644 --- a/src/pokemon_animation.c +++ b/src/pokemon_animation.c @@ -1041,6 +1041,15 @@ static void sub_817F77C(struct Sprite *sprite) sprite->oam.matrixNum |= (sprite->hFlip << 3); sprite->oam.affineMode = ST_OAM_AFFINE_OFF; } +#ifdef BUGFIX + else + { + // FIX: Reset these back to normal after they were changed so Poké Ball catch/release + // animations without a screen transition in between don't break + sprite->affineAnimPaused = FALSE; + sprite->affineAnims = gUnknown_082FF694; + } +#endif // BUGFIX } static void pokemonanimfunc_01(struct Sprite *sprite) From 1aca3786347e8317e01323914e6782ea3d809256 Mon Sep 17 00:00:00 2001 From: Sierraffinity Date: Sat, 12 Dec 2020 21:08:15 -0800 Subject: [PATCH 2/5] Fix name of SetDexNumberColor --- src/pokemon_summary_screen.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index ad037a5f5..578b9768e 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -2578,7 +2578,7 @@ static void DrawPokerusCuredSymbol(struct Pokemon *mon) // This checks if the mo ScheduleBgCopyTilemapToVram(3); } -static void SetDexNumberColor(bool8 isMonShiny) +static void SetMonPicBackgroundPalette(bool8 isMonShiny) { if (!isMonShiny) SetBgTilemapPalette(3, 1, 4, 8, 8, 0); @@ -2715,12 +2715,12 @@ static void PrintNotEggInfo(void) if (!IsMonShiny(mon)) { PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, gStringVar1, 0, 1, 0, 1); - SetDexNumberColor(FALSE); + SetMonPicBackgroundPalette(FALSE); } else { PrintTextOnWindow(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER, gStringVar1, 0, 1, 0, 7); - SetDexNumberColor(TRUE); + SetMonPicBackgroundPalette(TRUE); } PutWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER); } @@ -2728,9 +2728,9 @@ static void PrintNotEggInfo(void) { ClearWindowTilemap(PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER); if (!IsMonShiny(mon)) - SetDexNumberColor(FALSE); + SetMonPicBackgroundPalette(FALSE); else - SetDexNumberColor(TRUE); + SetMonPicBackgroundPalette(TRUE); } StringCopy(gStringVar1, gText_LevelSymbol); ConvertIntToDecimalStringN(gStringVar2, summary->level, STR_CONV_MODE_LEFT_ALIGN, 3); From 56ec5c65a89a3f13fa30ec5fca055346c9470ee4 Mon Sep 17 00:00:00 2001 From: Sierra A <6080951+Sierraffinity@users.noreply.github.com> Date: Sat, 12 Dec 2020 22:41:46 -0800 Subject: [PATCH 3/5] Update bugs_and_glitches.md --- docs/bugs_and_glitches.md | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 3d294f5cf..d5531caf2 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -1,7 +1,7 @@ # Bugs and Glitches -These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. +These are known bugs and glitches in the original Pokémon Emerald game: code that clearly does not work as intended, or that only works in limited circumstances but has the possibility to fail or crash. Defining the `BUGFIX` preprocessor variable will fix some of these automatically. Fixes are written in the `diff` format. If you've used Git before, this should look familiar: @@ -60,7 +60,7 @@ void CB2_InitTitleScreen(void) SetGpuReg(REG_OFFSET_BLDY, 0); ... ``` -This matches with the code of FR/LG and does what GF originally wanted to do. +This matches what FRLG does and obtains the seed differently than RS, independently of the RTC. ## Scrolling through items in the bag causes the image to flicker @@ -95,3 +95,21 @@ Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/p if (a != -2) ... ``` + +## Pokémon that have an affine transform as part of their entry animation glitch when going in and out of Poké Balls without a screen transition in between + +**Fix:** Edit sub_817F77C in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028) and remove the ifdef/endif lines: + +```diff + ... +-#ifdef BUGFIX + else + { + // FIX: Reset these back to normal after they were changed so Poké Ball catch/release + // animations without a screen transition in between don't break + sprite->affineAnimPaused = FALSE; + sprite->affineAnims = gUnknown_082FF694; + } +-#endif // BUGFIX +} +``` From f24307346f1d8f0540aefc84db7463bfaa85e3ee Mon Sep 17 00:00:00 2001 From: Sierra A <6080951+Sierraffinity@users.noreply.github.com> Date: Sat, 12 Dec 2020 22:42:02 -0800 Subject: [PATCH 4/5] Update bugs_and_glitches.md --- docs/bugs_and_glitches.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index d5531caf2..670950c1c 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -98,7 +98,7 @@ Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/p ## Pokémon that have an affine transform as part of their entry animation glitch when going in and out of Poké Balls without a screen transition in between -**Fix:** Edit sub_817F77C in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028) and remove the ifdef/endif lines: +**Fix:** Edit `sub_817F77C` in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028) and remove the ifdef/endif lines: ```diff ... From 70310686419fb34a16b5dfba27b6cd15f65913cc Mon Sep 17 00:00:00 2001 From: Sierra A <6080951+Sierraffinity@users.noreply.github.com> Date: Sat, 12 Dec 2020 22:42:29 -0800 Subject: [PATCH 5/5] Update bugs_and_glitches.md --- docs/bugs_and_glitches.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md index 670950c1c..285718598 100644 --- a/docs/bugs_and_glitches.md +++ b/docs/bugs_and_glitches.md @@ -98,7 +98,7 @@ Then edit `BagMenu_MoveCursorCallback` in [src/item_menu.c](https://github.com/p ## Pokémon that have an affine transform as part of their entry animation glitch when going in and out of Poké Balls without a screen transition in between -**Fix:** Edit `sub_817F77C` in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028) and remove the ifdef/endif lines: +**Fix:** Edit `sub_817F77C` in [src/pokemon_animation.c](https://github.com/pret/pokeemerald/blob/master/src/pokemon_animation.c#L1028): ```diff ...