From f8586bb83c90cbe3b07ad974d37aff2e14bce732 Mon Sep 17 00:00:00 2001 From: JMC47 Date: Fri, 28 Dec 2018 13:40:37 -0500 Subject: [PATCH] Fix Emulated Dance Mat I have no idea how it got so broken, but this makes it so both the Active Life and DDR Mario/Wii games can be fully configured. --- Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp | 34 ++++++++++---------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp b/Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp index e9c8fe4c48..2c76200559 100644 --- a/Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp +++ b/Source/Core/Core/HW/SI/SI_DeviceDanceMat.cpp @@ -40,28 +40,28 @@ int CSIDevice_DanceMat::RunBuffer(u8* buffer, int length) u32 CSIDevice_DanceMat::MapPadStatus(const GCPadStatus& pad_status) { // Map the dpad to the blue arrows, the buttons to the orange arrows - // Z = + button, Start = - button + // Z = + button, Start = - button. Active Life Mats have a different layout. u16 map = 0; if (pad_status.button & PAD_BUTTON_UP) - map |= 0x1000; - if (pad_status.button & PAD_BUTTON_DOWN) - map |= 0x2; - if (pad_status.button & PAD_BUTTON_LEFT) map |= 0x8; - if (pad_status.button & PAD_BUTTON_RIGHT) + if (pad_status.button & PAD_BUTTON_DOWN) map |= 0x4; - if (pad_status.button & PAD_BUTTON_Y) - map |= 0x200; - if (pad_status.button & PAD_BUTTON_A) - map |= 0x10; - if (pad_status.button & PAD_BUTTON_B) - map |= 0x100; - if (pad_status.button & PAD_BUTTON_X) - map |= 0x800; - if (pad_status.button & PAD_TRIGGER_Z) - map |= 0x400; - if (pad_status.button & PAD_BUTTON_START) + if (pad_status.button & PAD_BUTTON_LEFT) map |= 0x1; + if (pad_status.button & PAD_BUTTON_RIGHT) + map |= 0x2; + if (pad_status.button & PAD_BUTTON_Y) + map |= 0x400; // Only Active Life Mat has this button. Maps as + button. + if (pad_status.button & PAD_BUTTON_A) + map |= 0x100; + if (pad_status.button & PAD_BUTTON_B) + map |= 0x200; + if (pad_status.button & PAD_BUTTON_X) + map |= 0x800; // Only Active Life Mat has this button. Maps as Right Foot Right. + if (pad_status.button & PAD_TRIGGER_Z) + map |= 0x10; + if (pad_status.button & PAD_BUTTON_START) + map |= 0x1000; return (u32)(map << 16) | 0x8080; }