[Feature Request] more flexible Controller Input Mappings depending on type of controller
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 14.1k
- Forks
- 2.2k
- Avg merge
- 7h 35m
- Merged PRs (30d)
- 51
Description
I would like to see some Kind of Controller Type setting something like : "SNES Style" (4 Buttons on the Front) and "GENESIS/SAT/Fightstick Style" (6 or 8 Buttons on the front).
At moment the whole RA Retropad concept Just centered arround snes/PS Style Controller and for everything else you need to use overrides/remappings to get the most out of the devices.
in a perfect world:
after the initial controllerbinding you can choose a controller type for your device ("SNES Style" or the other mentioned type) . than every core gets mapped perfectly for your device without changing everything because RA "knows" what your Controller looks like.
an nice alternative would be a core-option with this settings (controller-type: snes-style with "4+2" or saturn/arcade stick Style with "6+2" Buttons).
For now (in the real world^^) you can bind a 6/8-button SATURN Style Pad in 2 ways...
Saturn Controller Layout:
Shoulders: L - R
Buttons on the front:
X-Y-Z
A-B-C
for example:
if you want to play Megadrive/Genesis/PCE/3DO Game with a 6-Button genesis/saturn pad you need following binding...
Variant 1)
Retroarch -> Controller
RP_A -> PAD_C
RP_B -> PAD_B
RP_X -> PAD_X
RP_Y -> PAD_A
RP_L1 -> PAD_Y
RP_R1 -> PAD_Z
RP_L2 -> PAD_L1
RP_R2 -> PAD_R1
if you want to play Final Burn Neo, Saturn ,SNES, PS1 . you need a 2nd Binding-variant.
Variant 2)
Retroarch -> Controller
RP_A -> PAD_B
RP_B -> PAD_A
RP_X -> PAD_Y
RP_Y -> PAD_X
RP_L1 -> PAD_C
RP_R1 -> PAD_Z
RP_L2 -> PAD_L1
RP_R2 -> PAD_R1
yeah, i know you can allways set per game/core remapping but in my opinion its not a great solution. f. e. setting up a core-remap for genesis and 6-button pad and it will be the "wrong" (unintuitive) mapping for a SNES-Style Pad with that core and vice versa.
and yeah i know, it would be a pain making it work (basicly all core-mapping and controller profiles needed to be updated) but then it woul be possible to play every core with every controller and still getting the best possible experience)
As a not very nice by-product there are different controller profile-styles for same type of pad.
RA Profile for 8bitdo M30 is mapped with variant 1 to play fine with Megadrive/Genesis
but another fightpad with same button-layout is mapped with variant 2 to play nice with saturn, fbneo.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
No files, tests, or entry points are identified. Start by reviewing RetroArch's controller binding, controller profiles, and core-remapping behavior described in the issue. Done should mean a controller type can be selected so the relevant cores receive suitable mappings without per-game or per-core remaps.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100