summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/bugs_and_glitches.md20
-rw-r--r--src/battle_util.c2
-rw-r--r--src/metatile_behavior.c4
-rw-r--r--src/pokemon.c2
4 files changed, 28 insertions, 0 deletions
diff --git a/docs/bugs_and_glitches.md b/docs/bugs_and_glitches.md
index e23379cfb..3d294f5cf 100644
--- a/docs/bugs_and_glitches.md
+++ b/docs/bugs_and_glitches.md
@@ -42,6 +42,26 @@ And edit `AgbMain`:
...
```
+This restores the code of Ruby/Sapphire.
+
+**Alternate Fix:** Edit the following function in [src/title_screen.c](https://github.com/pret/pokeemerald/blob/master/src/title_screen.c):
+
+```diff
+void CB2_InitTitleScreen(void)
+{
+ switch (gMain.state)
+ {
+ default:
+ case 0:
+ SetVBlankCallback(NULL);
++ StartTimer1();
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ ...
+```
+This matches with the code of FR/LG and does what GF originally wanted to do.
+
## Scrolling through items in the bag causes the image to flicker
**Fix:** Add the following function to [src/item_menu_icons.c](https://github.com/pret/pokeemerald/blob/master/src/item_menu_icons.c):
diff --git a/src/battle_util.c b/src/battle_util.c
index eb3907157..31ed0b3fe 100644
--- a/src/battle_util.c
+++ b/src/battle_util.c
@@ -527,6 +527,8 @@ void HandleAction_ThrowPokeblock(void)
gBattleStruct->safariPkblThrowCounter++;
if (gBattleStruct->safariEscapeFactor > 1)
{
+ // BUG: The safariEscapeFactor is unintetionally able to become 0 (but it can not become negative!). This causes the pokeblock throw glitch.
+ // To fix that change the < in the if statement below to <=.
if (gBattleStruct->safariEscapeFactor < sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]])
gBattleStruct->safariEscapeFactor = 1;
else
diff --git a/src/metatile_behavior.c b/src/metatile_behavior.c
index dde4de329..51cc65c22 100644
--- a/src/metatile_behavior.c
+++ b/src/metatile_behavior.c
@@ -968,6 +968,10 @@ bool8 MetatileBehavior_IsDiveable(u8 metatileBehavior)
bool8 MetatileBehavior_IsUnableToEmerge(u8 metatileBehavior)
{
+ // BUG: The player is unintentionally able to emerge on water doors.
+ // Also the narrower underwater door in the underwater tileset has the wrong metatile behavior. This causes the dive glitch.
+ // To fix that add || metatileBehavior == MB_WATER_DOOR to the if statement below and
+ // change the metatile behavior of the narrower water door with porymaps tileset editor.
if (metatileBehavior == MB_NO_SURFACING
|| metatileBehavior == MB_SEAWEED_NO_SURFACING)
return TRUE;
diff --git a/src/pokemon.c b/src/pokemon.c
index a0e655d1e..30f0b0e73 100644
--- a/src/pokemon.c
+++ b/src/pokemon.c
@@ -2861,6 +2861,8 @@ void CalculateMonStats(struct Pokemon *mon)
if (currentHP == 0 && oldMaxHP == 0)
currentHP = newMaxHP;
else if (currentHP != 0)
+ // BUG: currentHP is unintentionally able to become <= 0 after the instruction below. This causes the pomeg berry glitch.
+ // To fix that set currentHP = 1 if currentHP <= 0.
currentHP += newMaxHP - oldMaxHP;
else
return;