From 9f218be522434beb6af334ed9fab82316714e73e Mon Sep 17 00:00:00 2001 From: Cipnit Date: Wed, 22 Apr 2026 23:32:05 -0700 Subject: [PATCH 1/2] Kecleon Infinite Money Exploit - Bug Report and Fix I don't know if you're okay with a bug report including a fix to the bug, but it's here if you want it. --- src/dungeon_serializer.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/dungeon_serializer.c b/src/dungeon_serializer.c index 00224b639..19a597b2d 100644 --- a/src/dungeon_serializer.c +++ b/src/dungeon_serializer.c @@ -738,6 +738,10 @@ void ReadDungeonState(u8 *buffer, u32 bufLen) ReadDungeonFloor(&seri); ReadDungeonVisibility(&seri); ReadDungeonMusic(&seri); + //BUG: KECLEON INFINITE MONEY GLITCH. Upon loading a quicksave, the game erroneously re-adds the total value of the items you're planning to sell in Kecleon's shop in ReadDungeonItems, + //which makes Kecleon give the player money whenever the player leaves the shop. Full technical explaination here: https://github.com/jtjanecek/rogue-rescue-team/issues/4 + //Fix it by commenting out the line below. Proof that unk4C is the correct variable: https://github.com/pret/pmd-red/blob/master/src/dungeon_items.c#L316 + //gDungeon->unk644.unk4C = 0; ReadDungeonItems(&seri); ReadDungeonTraps(&seri); ReadDungeonMonsters(&seri); From e8ba6a2a03c89a0e053237e268c92d1b204805b2 Mon Sep 17 00:00:00 2001 From: Cipnit Date: Thu, 23 Apr 2026 23:01:07 -0700 Subject: [PATCH 2/2] Kecleon Infinite Money Exploit - Bug Report and Fix implemented bugfix --- src/dungeon_serializer.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/dungeon_serializer.c b/src/dungeon_serializer.c index 19a597b2d..7df55f22e 100644 --- a/src/dungeon_serializer.c +++ b/src/dungeon_serializer.c @@ -739,9 +739,10 @@ void ReadDungeonState(u8 *buffer, u32 bufLen) ReadDungeonVisibility(&seri); ReadDungeonMusic(&seri); //BUG: KECLEON INFINITE MONEY GLITCH. Upon loading a quicksave, the game erroneously re-adds the total value of the items you're planning to sell in Kecleon's shop in ReadDungeonItems, - //which makes Kecleon give the player money whenever the player leaves the shop. Full technical explaination here: https://github.com/jtjanecek/rogue-rescue-team/issues/4 - //Fix it by commenting out the line below. Proof that unk4C is the correct variable: https://github.com/pret/pmd-red/blob/master/src/dungeon_items.c#L316 - //gDungeon->unk644.unk4C = 0; + //which makes Kecleon give the player money whenever the player leaves the shop. Full explaination here: https://github.com/jtjanecek/rogue-rescue-team/issues/4 + #ifdef BUGFIX + gDungeon->unk644.unk4C = 0; //Proof that unk4C is the correct variable: https://github.com/pret/pmd-red/blob/master/src/dungeon_items.c#L316 + #endif ReadDungeonItems(&seri); ReadDungeonTraps(&seri); ReadDungeonMonsters(&seri);