Update PADReadGC.c for proper Gamecube dance mat recognition via Official Wii U USB Gamecube Adapter#1299
Conversation
Adds new Dance Mat controller handling logic. This logic is universal to all Gamecube dance mats and will only activate after an "impossible" same axis DPAD combination is pressed on a device connected to a Wii U USB Gamecube Adapter.
|
Here is a compiled DOL if anyone comes across this pull request looking for a way to make Dance Pads work. |
|
I went ahead and closed my PR --> we can continue further/future discussion (if it should arise) here. Thanks for all your efforts! |
|
NP, thank you. I would have had no idea where to start if not for the PR you had created initially. |
|
I finally got a chance to try out the finished new version that was posted and Holy shit it works perfectly!!😄 Thank you both so much for taking the time and energy to make this work! I'm seriously so stoked to tear it up on this dance mat!🕺 |
| // Track dance mat enable and previous input state. | ||
| // Needed because Wii U GC Adapter DPAD is hat-style and reports | ||
| // impossible combos that otherwise ghost on release. | ||
| static int isDanceMat = 0; // Global/Static flag per device if you want per-port you’d need an array |
There was a problem hiding this comment.
So you can't use a GC controller and the dance mate at the same time? Please support it.
There was a problem hiding this comment.
You can, just only the first port is recognized as a dance mat with the new logic. The values are different for different ports. I only have one dance mat so I couldn't test to figure out how to get the other ports to recognize as well and make sure it all works.
But nonetheless, yes, you can still use a Gamecube controller on any of the ports for single player or for multiplayer with the dance mat in port 1. This new logic will only ever apply to a dance mat and only if in port 1.
There was a problem hiding this comment.
You can, just only the first port is recognized as a dance mat with the new logic. The values are different for different ports.
So you assume that games for dance mats only support the first port? Can we verify this assumption somehow?
There was a problem hiding this comment.
There is only 3 games that use dance mats in general for Gamecube and DDR Mario Mix is really the only one that is well-known. The other 2 are basically shovelware and extremely niche. Without this change dance mats don't work at all so I think that either way this commit s a positive change.
Adds new Dance Mat controller handling logic. This logic is universal to all Gamecube dance mats and will only activate after an "impossible" same axis DPAD combination is pressed on a device connected to a Wii U USB Gamecube Adapter. The new logic:
1.) adds the impossible same-axis DPAD combinations
2.) eliminates holds as the hat logic in Nintendont causes ghost presses of the remaining arrow when releasing one arrow in the new same-axis combinations.
This functionality is an acceptable limitation as DDR Mario Mix for Gamecube has no mechanics requiring an arrow to be held.