Skip to content

Commit f5cade2

Browse files
RocketRobztaxicat1
andcommitted
Proper fix for *Puppy Palace*
Co-Authored-By: Mow <32942550+taxicat1@users.noreply.github.com>
1 parent 00210f5 commit f5cade2

File tree

4 files changed

+32
-3
lines changed

4 files changed

+32
-3
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ An alternative forwarder generator for 3DS users. YANBF forwarders are 3DS-mode
7272
## Other
7373
- [devkitPro](https://devkitpro.org): devkitARM and libnds
7474
- [Arisotura](https://github.com/Arisotura): BIOS reader from [dsibiosdumper](https://github.com/Arisotura/dsibiosdumper) used in the in-game menu
75+
- [Mow](https://github.com/taxicat1): Proper fix for *Puppy Palace* crash on boot
7576
- retrogamefan, Rudolph, and [Mow](https://github.com/taxicat1): Included AP-patches
7677
- [enler](https://github.com/enler): Fixing AP-patch for Pokemon Black 2 (Japan) for DS⁽ⁱ⁾ mode compatibility
7778
- [Rocket Robz](https://github.com/RocketRobz): Fixing some DS⁽ⁱ⁾-Enhanced game AP-patches for DS⁽ⁱ⁾ mode compatibility

retail/bootloader/source/arm7/patch_common.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -434,6 +434,21 @@ void patchBinary(cardengineArm9* ce9, const tNDSHeader* ndsHeader, module_params
434434
*(u32*)0x02000C14 = 0xE1A00000; //nop
435435
}*/
436436

437+
// Puppy Palace (USA)
438+
else if (strcmp(romTid, "YPTE") == 0) {
439+
*(u32*)0x020131E8 = 0xE320F000; // nop
440+
}
441+
442+
// My Puppy Shop (Europe)
443+
else if (strcmp(romTid, "YPTP") == 0) {
444+
*(u32*)0x020131C4 = 0xE320F000; // nop
445+
}
446+
447+
// Machi no Pet-ya-san DS: 200 Piki Wan-chan Daishuugou (Japan)
448+
else if (strcmp(romTid, "YPTJ") == 0) {
449+
*(u32*)0x0201DBF8 = 0xE320F000; // nop
450+
}
451+
437452
// Golden Sun: Dark Dawn (USA, Australia)
438453
else if (strcmp(romTid, "BO5E") == 0) {
439454
// setBEQ(0x02003CA0, 0x02003C30); // Skip a block of DSProtect code branches

retail/bootloaderi/source/arm7/hook_arm9.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -418,9 +418,7 @@ int hookNdsRetailArm9(
418418
if (strncmp(romTid, "UBR", 3) == 0 || iUncompressedSize > 0x26C000) {
419419
ce9->valueBits |= b_slowSoftReset;
420420
}
421-
if (!dataToPreloadFound(ndsHeader) && (strncmp(romTid, "YPT", 3) == 0)) { // Puppy Palace
422-
ce9->valueBits |= b_resetOnFirstException;
423-
} else if (strncmp(romTid, "CLJ", 3) == 0) { // Mario & Luigi: Bowser's Inside Story
421+
if (strncmp(romTid, "CLJ", 3) == 0) { // Mario & Luigi: Bowser's Inside Story
424422
ce9->valueBits |= b_resetOnEveryException;
425423
}
426424

retail/bootloaderi/source/arm7/patch_common.c

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16543,6 +16543,21 @@ void patchBinary(cardengineArm9* ce9, const tNDSHeader* ndsHeader, module_params
1654316543
*(u32*)0x20DE16C = 0xE1A00000; //nop
1654416544
}*/
1654516545

16546+
// Puppy Palace (USA)
16547+
else if (strcmp(romTid, "YPTE") == 0) {
16548+
*(u32*)0x020131E8 = 0xE320F000; // nop
16549+
}
16550+
16551+
// My Puppy Shop (Europe)
16552+
else if (strcmp(romTid, "YPTP") == 0) {
16553+
*(u32*)0x020131C4 = 0xE320F000; // nop
16554+
}
16555+
16556+
// Machi no Pet-ya-san DS: 200 Piki Wan-chan Daishuugou (Japan)
16557+
else if (strcmp(romTid, "YPTJ") == 0) {
16558+
*(u32*)0x0201DBF8 = 0xE320F000; // nop
16559+
}
16560+
1654616561
// Golden Sun: Dark Dawn (USA, Australia)
1654716562
else if (strcmp(romTid, "BO5E") == 0) {
1654816563
// setBEQ(0x02003CA0, 0x02003C30); // Skip a block of DSProtect code branches

0 commit comments

Comments
 (0)