dborth / snes9xgx

Snes9x GX - Port of Snes9x for Wii
http://wiibrew.org/wiki/Snes9x_GX
Other
435 stars 64 forks source link

Add Turbo Mode Button remapping feature and "Other Mappings" submenu #1006

Closed InfiniteBlueGX closed 2 years ago

InfiniteBlueGX commented 2 years ago

In this PR:

The Turbo Mode button remaps are controller agnostic - for example, when Turbo is mapped to Z, it would be in effect for both a Gamecube controller's Z button and the Nunchuck's Z button.

When the Turbo Mode Button is remapped to an already mapped button, it doubles up the functionality of the button it's bound to. For example, if you have SNES R button bound to ZR in the controller remaps, and bound ZR to Turbo in the Turbo remap, holding ZR will input the R button AND activate Turbo Mode.

I'm definitely open to feedback on the Turbo Mode Button implementation - this felt the most straightforward to me, but I'm sure it can be improved upon. Due to the way controller configuration is arranged (first by SNES controller type, then by gamepad input type), it felt cumbersome to configure a separate mapping of the turbo mode button for every potential combination. This implementation keeps the global scope of the Turbo input without having to configure it a bunch of times for each use case.

I was not able to test with the Wii U gamepad.

The Other Mappings GUI button does not currently have a semi-transparent background .png.