libretro / RetroArch

Cross-platform, sophisticated frontend for the libretro API. Licensed GPLv3.
http://www.libretro.com
GNU General Public License v3.0
10.38k stars 1.84k forks source link

Retropad: Inconsistent button mapping of 6 button controllers #12849

Open tomillr opened 3 years ago

tomillr commented 3 years ago

Button mapping for 6 button controllers for Sega Mega Drive and Sega Saturn emulation is not handles properly for the default retropad setup. It does not observe the basic diamond shape (north/south/east/west) button layout assumed by the usual Retropad setup. To assure maximum compatibility across different emulators, the default buttons mapping assumed by the Retroarch retropad should look like this:

Bildschirmfoto 2021-08-22 um 13 14 51

Background explanation:

There currently is no right way to assign the buttons of a 6 button controller like the 8BitDo M30 or Retrobit Genesis and Saturn controller so that they work across different Sega emulator:

Once you've assigned the buttons through the EmulationStation interface to properly work with the Sega Saturn emulator Beetle, it no longer properly works with the SEGA Mega Drive emulator genesisplusgx. If you go and change the button mapping to work with the Sega Genesis emulator, it in turn no longer works with the Saturn emulator. Not to mention, completely breaking support for a Super Nintendo emulator.

  1. The Genesis emulator genesisplusgx currently requires the following button mapping:

c6e2e798-a32c-41cd-a20f-e91c2e28947a

As you can see, this layout doesn't respect the usual north/south/east/west button alignment assumed by the retropad concept.

Bildschirmfoto 2021-08-22 um 14 16 13

Which makes the controller pretty much useless for any other emulator. Imagine to try and play the Super Nintendo version of Street Fighter 2 with that mapping. It would look like this:

Bildschirmfoto 2021-08-22 um 13 34 39

Also, navigation of the Retroarch menus is also less than straightforward with this setup:

Bildschirmfoto 2021-08-22 um 13 57 53

  1. Same goes for the default button mapping for the Saturn emulator Beetle. The assumed layout doesn't observe the diamond-shaped button layout of the RetroArch retropad as well:

f6c5e637-9494-46a3-9cf6-568bb501b57f

Bildschirmfoto 2021-08-22 um 14 15 24

With the button layout proposed above, the 6 button controller would work better across different emulator and the RA menus. You also wouldn't need to manually change the button layout for almost every core.

hizzlekizzle commented 3 years ago

It's up to the core authors how to lay out the core's buttons on the retropad. In the case of GPGX, the layout is intended to make 3-button games (the vast majority of the MD library) most comfortable vs putting one of the key buttons on a shoulder. Blastem, in contrast, prioritizes 6-button layouts (IIRC, it's very close to your proposed layout). In any event, it's just a remap away.