From 5eeddecb400e4012bcba78b636f1006c7788adb7 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Sun, 12 Feb 2023 14:39:25 +0100 Subject: [PATCH] maple: set bus speed back to 2Mbps. Worms Pinball needs FFBE Power Drift crashes with 1Mbps partial revert of 2332884d8b689a5d28ca040c0a9b52b833f4736e Force Slave Zero to use real bios (still has issues) Worms Pinball prototype needs full framebuffer emulation --- core/emulator.cpp | 6 ++++-- core/hw/maple/maple_if.cpp | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/emulator.cpp b/core/emulator.cpp index 80ef425a5..25e5c99fe 100644 --- a/core/emulator.cpp +++ b/core/emulator.cpp @@ -204,7 +204,8 @@ static void loadSpecialSettings() || prod_id == "T18702M" // Miss Moonlight || prod_id == "T0019M" // KenJu Atomiswave DC Conversion || prod_id == "T0020M" // Force Five Atomiswave DC Conversion - || prod_id == "HDR-0187") // Fushigi no Dungeon - Fuurai no Shiren Gaiden - Onna Kenshi Asuka Kenzan! + || prod_id == "HDR-0187" // Fushigi no Dungeon - Fuurai no Shiren Gaiden - Onna Kenshi Asuka Kenzan! + || prod_id == "T15104D 50") // Slave Zero (PAL) { NOTICE_LOG(BOOT, "Forcing real BIOS"); config::UseReios.override(false); @@ -223,7 +224,8 @@ static void loadSpecialSettings() config::Broadcast.override(1); } if (prod_id == "T1102M" // Densha de Go! 2 - || prod_id == "T00000A") // The Ring of the Nibelungen (demo, hack) + || prod_id == "T00000A" // The Ring of the Nibelungen (demo, hack) + || prod_id == "T15124N 00") // Worms Pinball (prototype) { NOTICE_LOG(BOOT, "Forcing Full Framebuffer Emulation"); config::EmulateFramebuffer.override(true); diff --git a/core/hw/maple/maple_if.cpp b/core/hw/maple/maple_if.cpp index 2100a761d..56b45aa24 100644 --- a/core/hw/maple/maple_if.cpp +++ b/core/hw/maple/maple_if.cpp @@ -261,7 +261,7 @@ static void maple_DoDma() // Maple bus max speed: 2 Mb/s, actual speed: 1 Mb/s //printf("Maple XFER size %d bytes - %.2f ms\n", xfer_count, xfer_count * 1000.0f / (128 * 1024)); if (!occupy) - sh4_sched_request(maple_schid, std::min((u64)xfer_count * (SH4_MAIN_CLOCK / (128 * 1024)), (u64)SH4_MAIN_CLOCK)); + sh4_sched_request(maple_schid, std::min((u64)xfer_count * (SH4_MAIN_CLOCK / (256 * 1024)), (u64)SH4_MAIN_CLOCK)); } static int maple_schd(int tag, int c, int j)