Open vaguerant opened 9 months ago
Hi, don't know much about Nintendont and stuff, but i was wondering if you think it'd be possible to make something similar to this but where a button combo swaps the x axis on the c stick? This is an using the gamecube controller as many games use an inverted x-axis on the c stick which is pretty annoying (or atleast it's inverted in comparison to modern first person games.) Sorry for botherin'
I'm looking for a way to change the button combo for Reset/Power-Off. (R + Z + B + D-Pad Down) is too easy to press accidentally in many games (SSX series, Tony Hawk Series, etc) so I'd rather just remove it or swap B for the start button, something like that.
Since you've managed to successfully edit button combos, could you perhaps point to whereabouts in the code this change would need to be made?
Also, do you have any building/compiling tips? Is it relatively straightforward?
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.