From a657da91c353b1b00a25dc2862c7834711872637 Mon Sep 17 00:00:00 2001 From: daniel229 Date: Thu, 18 Sep 2014 15:37:12 +0800 Subject: [PATCH] Replace download frame in Toaru Majutsu to Kagaku no Ensemble --- Core/HLE/ReplaceTables.cpp | 10 ++++++++++ Core/MIPS/MIPSAnalyst.cpp | 1 + 2 files changed, 11 insertions(+) diff --git a/Core/HLE/ReplaceTables.cpp b/Core/HLE/ReplaceTables.cpp index f6c37f81a8..6a8893f6eb 100644 --- a/Core/HLE/ReplaceTables.cpp +++ b/Core/HLE/ReplaceTables.cpp @@ -681,6 +681,15 @@ static int Hook_rezel_cross_download_frame() { return 0; } +static int Hook_kagaku_no_ensemble_download_frame() { + const u32 fb_address = currentMIPS->r[MIPS_REG_V0]; + if (Memory::IsVRAMAddress(fb_address)) { + gpu->PerformMemoryDownload(fb_address, 0x00088000); + CBreakPoints::ExecMemCheck(fb_address, true, 0x00088000, currentMIPS->pc); + } + return 0; +} + // Can either replace with C functions or functions emitted in Asm/ArmAsm. static const ReplacementTableEntry entries[] = { // TODO: I think some games can be helped quite a bit by implementing the @@ -737,6 +746,7 @@ static const ReplacementTableEntry entries[] = { { "suikoden1_and_2_download_frame_1", &Hook_suikoden1_and_2_download_frame_1, 0, REPFLAG_HOOKENTER, 0x9C }, { "suikoden1_and_2_download_frame_2", &Hook_suikoden1_and_2_download_frame_2, 0, REPFLAG_HOOKENTER, 0x48 }, { "rezel_cross_download_frame", &Hook_rezel_cross_download_frame, 0, REPFLAG_HOOKENTER, 0x54 }, + { "kagaku_no_ensemble_download_frame", &Hook_kagaku_no_ensemble_download_frame, 0, REPFLAG_HOOKENTER, 0x1C }, {} }; diff --git a/Core/MIPS/MIPSAnalyst.cpp b/Core/MIPS/MIPSAnalyst.cpp index 667498cb83..51c538866a 100644 --- a/Core/MIPS/MIPSAnalyst.cpp +++ b/Core/MIPS/MIPSAnalyst.cpp @@ -262,6 +262,7 @@ static const HardHashTableEntry hardcodedHashes[] = { { 0x794d1b073c183c77, 24, "fabsf", }, { 0x7978a886cf70b1c9, 56, "wcschr", }, { 0x79faa339fff5a80c, 28, "finitef", }, + { 0x7b0798b4b0012c8c, 40, "kagaku_no_ensemble_download_frame", }, // Toaru Majutsu to Kagaku no Ensemble { 0x7c50728008c288e3, 36, "vector_transform_q_4x4", }, { 0x7f1fc0dce6be120a, 404, "fmod", }, { 0x8126a59ffa504614, 540, "brandish_download_frame", }, // Brandish, Zero no Kiseki, and Ao no Kiseki