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.
This commit is contained in:
JMC47 2018-12-28 13:40:37 -05:00
parent dd1fc70d70
commit f8586bb83c

View File

@ -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;
}