Skip to content
Permalink
Browse files

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.
  • Loading branch information...
JMC47 committed Dec 28, 2018
1 parent dd1fc70 commit f8586bb83c90cbe3b07ad974d37aff2e14bce732
Showing with 11 additions and 11 deletions.
  1. +11 −11 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;
map |= 0x8;
if (pad_status.button & PAD_BUTTON_DOWN)
map |= 0x2;
map |= 0x4;
if (pad_status.button & PAD_BUTTON_LEFT)
map |= 0x8;
map |= 0x1;
if (pad_status.button & PAD_BUTTON_RIGHT)
map |= 0x4;
map |= 0x2;
if (pad_status.button & PAD_BUTTON_Y)
map |= 0x200;
map |= 0x400; // Only Active Life Mat has this button. Maps as + button.
if (pad_status.button & PAD_BUTTON_A)
map |= 0x10;
if (pad_status.button & PAD_BUTTON_B)
map |= 0x100;
if (pad_status.button & PAD_BUTTON_B)
map |= 0x200;
if (pad_status.button & PAD_BUTTON_X)
map |= 0x800;
map |= 0x800; // Only Active Life Mat has this button. Maps as Right Foot Right.
if (pad_status.button & PAD_TRIGGER_Z)
map |= 0x400;
map |= 0x10;
if (pad_status.button & PAD_BUTTON_START)
map |= 0x1;
map |= 0x1000;

return (u32)(map << 16) | 0x8080;
}

0 comments on commit f8586bb

Please sign in to comment.
You can’t perform that action at this time.