Add shoulder button swap combo (L+R+D-pad Down) #1145
+31
−13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #785, fixes #829.
I know this has been discussed and rejected before, but I was already doing this for my own benefit and figured I'd PR it just in case there was any interest.
The what
This allows swapping L with ZL and R with ZR on the Classic Controller Pro and other controllers which identify the same way such as the SNES Classic Mini, the many open-source BlueRetro Wiimote adapters, the various RaphNet and Mayflash adapters, etc. Pressing L+R+D-pad Down on any such controller swaps the shoulder buttons, pressing the combo again resets the layout back to normal. Other controllers (original Classic Controller, GameCube, USB HID, Wii U GamePad) are not affected.
The why
Obviously, this is a relatively niche feature. It benefits controllers which either only have one set of shoulder buttons (e.g. SNES Classic Mini, Switch Online N64 via BlueRetro) or two sets of shoulder buttons but mapped awkwardly (e.g. any modern controller like Xbox/PlayStation/Switch via BlueRetro). For the retro controllers, this is mainly useful for things like retro game collections (Mega Man, Sonic, Nintendo Puzzle Collection, Zelda Collector's Edition, etc.). For the modern controllers, this benefits basically any GameCube game which uses shoulder buttons. The BlueRetro controller mapping itself swaps the shoulder buttons on modern controllers, for better use on classic consoles, but on GameCube that's not very beneficial and un-swapping them is useful.
The how
Adds
C_ZSWAP
to the other five remapping schemes, the necessary button triggers and the code to check whether the user currently hasC_ZSWAP
engaged in the Classic Controller Pro controller configuration. It can be used at the same time as theC_SWAP
(face button rotation) config for players who want both.The bonus
With the shoulder buttons swapped, Crazy Taxi is surprisingly playable on a SNES Classic Mini controller. It supports D-pad steering and only makes use of the L/R/A/B buttons.