From 9f2dff39677a3a5b746af63621fe3efe6376c854 Mon Sep 17 00:00:00 2001 From: Mow <32942550+taxicat1@users.noreply.github.com> Date: Sat, 10 Jan 2026 05:05:14 -0500 Subject: [PATCH] Fix sCARDiTryReadCardDmaPatternSdk3017530 matching multiple card DMA variants (#93) Fixes - Unou no Tatsujin - Soukai! Machigai Museum 2 (Japan) - Trioncube (Europe) (En,Fr,De,Es,It) - Tetris DS (Korea) - Original Frisbee Disc Sports - Ultimate & Golf (USA) - LifeSigns - Surgical Unit (USA) --- .../patches/arm9/sdk2to4/CardiTryReadCardDmaPatch.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arm9/source/patches/arm9/sdk2to4/CardiTryReadCardDmaPatch.cpp b/arm9/source/patches/arm9/sdk2to4/CardiTryReadCardDmaPatch.cpp index d5977d9..15502ba 100644 --- a/arm9/source/patches/arm9/sdk2to4/CardiTryReadCardDmaPatch.cpp +++ b/arm9/source/patches/arm9/sdk2to4/CardiTryReadCardDmaPatch.cpp @@ -228,7 +228,14 @@ void CardiTryReadCardDmaPatch::ApplyPatch(PatchContext& patchContext) { cardiCommon = *(u32*)((u8*)_cardiTryReadCardDma + 0x15C) + 4; cardiOnReadCard = *(u32*)((u8*)_cardiTryReadCardDma + 0x16C); - cardiSetCardDma = getArmBlAddress((u32*)((u8*)_cardiTryReadCardDma + 0x148)); + if (*(u32*)((u8*)_cardiTryReadCardDma + 0x158) == 0xE12FFF1E) + { + cardiSetCardDma = getArmBlAddress((u32*)((u8*)_cardiTryReadCardDma + 0x148)); + } + else + { + cardiSetCardDma = getArmBlAddress((u32*)((u8*)_cardiTryReadCardDma + 0x14C)); + } miiCardDmaCopy32 = getArmBlAddress((u32*)(cardiSetCardDma + 0x18)); cardiOnReadCardOffset = 0x40; }