puppy shop EU fix (#942)

* .gitignore: update

adds generated files from mingw windows build, gperf files, and
artifacts from patch (*.orig, *.rej).

* add game-specific hack for "My Puppy Shop" and variants

this game has a bug that's exposed when minimal timing differences exist.
credits: @taxicat1

closes #29
This commit is contained in:
rofl0r
2026-01-21 12:41:17 -08:00
committed by GitHub
parent f96a6d6e16
commit e96b11fa27
2 changed files with 38 additions and 0 deletions
+7
View File
@@ -5,6 +5,8 @@
/desmume/src/frontend/windows/__bins
/desmume/src/frontend/windows/*.tlog
/desmume/src/frontend/windows/*.aps
/desmume/src/frontend/windows/config.mak
/desmume/src/frontend/windows/desmume.exe
.vs/
*.user
*.suo
@@ -12,6 +14,11 @@
*.VC.opendb
*.o
*.ipch
*.gcno
*.diff
*.patch
*.orig
*.rej
.deps
*.dirstamp
Makefile.in
+31
View File
@@ -3488,6 +3488,33 @@ namespace
write(0x23ff104, 48, (char*)"\x01\x00\x51\xE3\x03\x00\x00\x1A\x10\x10\x8F\xE2\x1E\x00\x91\xE8\x00\x30\x81\xE5\x00\x40\x82\xE5\x2C\xD0\x8D\xE2\x1E\xFF\x2F\xE1\x4C\xDA\x18\x02\x54\xDA\x18\x02\x21\x59\xA0\xE3\x00\x40\xA0\xE3");
}
};
struct puppyshop_eu : public GameHackCheat
{
virtual void Run()
{
if(0xe3a02002 == read32(0x22029C98))
write32(0x22029C98, 0xe3a02000);
}
};
struct puppyshop_us : public GameHackCheat
{
virtual void Run()
{
if(0xe3a02002 == read32(0x22029DD8))
write32(0x22029DD8, 0xe3a02000);
}
};
struct puppyshop_ja : public GameHackCheat
{
virtual void Run()
{
if(0xe3a02002 == read32(0x2203ADAC))
write32(0x2203ADAC, 0xe3a02000);
}
};
}
void GameHackCheat::write08(u32 address, u8 value)
@@ -3522,6 +3549,10 @@ void TCommonSettings::GameHacks::apply()
//Rabbids Go Home
if(gameInfo.IsCode("VRGE")) flags.cheats.push_back(new rabbids_us());
if(gameInfo.IsCode("VRGV")) flags.cheats.push_back(new rabbids_eu());
// My Puppy Shop/Puppy Palace/Machi no Pet-ya-san DS - 200 Piki Wanchan Daishuugou
if(gameInfo.IsCode("YPTP")) flags.cheats.push_back(new puppyshop_eu());
if(gameInfo.IsCode("YPTE")) flags.cheats.push_back(new puppyshop_us());
if(gameInfo.IsCode("YPTJ")) flags.cheats.push_back(new puppyshop_ja());
}
void TCommonSettings::GameHacks::clear()