Arcade Stick RetroPad layouts #141
Comments
I haven't actually used the 'arcade' setting before. I've always just treated it like a normal retropad, which causes some issues with modern arcade sticks that want/expect PS2-and-later SF layouts (i.e., R1 and R2 for HP/HK instead of R1 and L1). |
As mentioned on retropie's forum ( https://retropie.org.uk/forum/topic/12917/street-fighter-iii-3rd-strike-mame-version-on-retro-pie/11 ), the arcade layout never made any sense to me, and it is indeed misleading. If fight stick users want an original arcade feel, they should use "Classic" device type in controls (on older fbalpha-libretro : "control scheme" to "gamepad" + "L/R P1 gamepad scheme" to "normal" in core options) if they have an old stick and "Modern" device type if they have a new one (on older fbalpha-libretro : "control scheme" to "gamepad" + "L/R P1 gamepad scheme" to "remap to R1/R2"). Who is rightfully using the "Arcade" layout ? And i don't mean someone who selected this on the false assumption "i have a fight stick, i'm supposed to use this", and thinking "this is bullshit, how am i remapping this ?". Except if someone can justify the presence of this layout, i'll probably get rid of it soon. I'll link the people who were heavily involved in the development of this |
Just some (weird ?) idea i just had for the libretro api : if the autoconfig system was kinda able to tell me which kind of layout the joypad/joystick have (i'm mostly thinking about how L1/R1/L2/R2 are positioned, which is the most obvious difference between modern controllers and older ones : for example, let's say a hori fighting commander 4 has kinda the same layout than the madcatz fightstick alpha, and it would make sense if both controllers used the same "Modern" device type by default), i could probably preset a default device type from it. |
The Arcade layout is designed with generic fightsticks in mind, although it also makes things easier for keyboard users. What you're expected to do is map out the lower three buttons as A, B and X with the three upper ones being Y, L and R and you're good to go. It essentially mimics MAME's generic control setup with "Button 1" for example being "Retropad A". I assume modern fightsticks might have standardized the button layout like mentioned above, but the ones I have don't. If you'd like to rename the control scheme to something more obvious feel free to go ahead, however I'm strongly against removing it altogether. |
@Oggom could you post a screenshot of your generic fightstick ? Or tell me the model ? @LodanZark i don't think there is an issue with neogeo layouts (classic will use the neogeo console layout, modern will use the new xbox/playstation layout) |
I agree with @barbudreadmon I would remove the arcade layout altogether, there is no single layout and this has been the case forever. So, it's impossible to provide a generic layout that works for everyone. Some people may even have keyboard encoder based sticks which won't work obviously.
Edit: that whole idea was all kinds of wrong lol, the keymapper is physical gamepad to emulated keyboard mapping |
@fr500 three of those have the same layout - that's the classic 'modern' layout. i can't read the second one, but IMO there are two layouts that cover 99% of fightsticks. i think fbalpha more than any other core may have flexible enough input options to allow for users to configure the two layout quite easily, but i need to test myself. for other cores it might be a pain. |
Old nintendo/sega joystick won't fit with the classic/modern layout, but honestly :
I mean, i have one of those : Did i add a specific controller layout in fbalpha for it ? No, i handled it though remapping, because it makes no sense to have one specific option for one arcade stick which was one of a kind and never a standard. The capcom snes one above is also one of a kind and shouldn't be handled through anything else than remapping |
@barbudreadmon As for the layout, it's specifically designed so you only have to map out things once regardless of what kind of stick you're using, that's the entire idea behind it. |
Having a separate layout even if it's useless would help if you switch gamepad / stick I guess, you just have to change one thing instead of remapping everything.
Sadly this is not API realm, autoconf is after all a frontend feature. |
@Oggom And you did this to match default input mapping on mame because you didn't want to use their osd. You understand there are other ways to deal with this ? Like using an alternate retroarch config for fba which would map your fightstick to a conventional retropad layout like : Did i understand the whole story ? Please handle it through your config and not through the core code, there is just no way i will keep on the long term the "arcade device type" if it doesn't match a conventional retropad layout and is just some hack introduced to match the weird layout of 1 people and could have been handled through your config. |
Correct.
No, I just used MAME as a reference since FBA's input system is such a huge mess in comparison.
The default FBA button layout was designed with regular gamepads in mind, so I added an alternative configuration for arcadesticks/keyboards.
There weren't back when I added that feature years ago.
That's possible yes, although it would still be confusing for newer users who do not have a full understanding on how the button mapping works.
Once again I see zero harm in keeping it, but you've already made you decision.
It's neither a hack nor a weird layout since FBA covers are wide range of different machines with all different setups makes having an option for a simple standardized layout a necessary addition for user convenience. Feel free to drop the entire configuration it if you think there is only one way to do things right. What works for you is what works best, apparently. |
@Oggom First misunderstanding : Second misunderstanding : If it was not harmful, i wouldn't mind keeping it, but it's actually harmful, and not needed in the present day, not by you either, because you could follow the retropad mapping recommendations. So yes, i'll probably drop it, because that sure does seem like the right thing to do. |
With autoconf and some remaps improvements I think this will become even more superfluous. Having some defaults is good, but as the frontend matures and the UI improves it would be better to keep it simple in the core realm. Just my opinion. |
Using core options for controls also complicates netplay, IIRC, causing desyncs if one person uses the option and the other doesn't. |
@hizzlekizzle I moved controls from core options to device type in controls a few weeks ago. I still need to move macros but i'm in need of some kind of dummy input descriptors to do that (hopefully @fr500 is working on the input system at the moment) |
Ok, i'm finally starting to understand where this whole situation came from. So basically, when the mame cores handle their default mapping, they don't take the retropad recommanded layout into account at all, it ended up in people disabling autoconfig and creating a new mapping which didn't respect the recommandation (right now, a core remapping seems like a better solution), then a fix to counterbalance this new mapping was introduced in fbalpha. So, if a fix in the cores code is really needed (the core remapping seems pretty ok to me, but it seems some people really insist on some kind of fix in the cores code), there are 2 solutions to handle this :
One of those solutions seems totally dumb to me, i'll let you guess which one. I'll also link some mame cores maintainer @markwkidd @r-type to get their thoughts about this. |
for my part i'm wanting to update mame2003 with a decent arcade mappings, but i can't just change the default layout. people spend many hours configuring their overrides and such. is the device type approach the agreed one? right now mame2003 is basically set to 'classic' (SNES layout). |
To be honest, I do not really understand all this. Now if everyone think it is better to follow the reference layout ... the only rule for the mame core (current) is if the PR are not invasive with upstream code ,they are welcome. |
@dankcushions i tried 2 games on mame2003, 1 of them crash on the select champion screen (Street Fighter 2, could be an issue on my side but i don't see what i did wrong : i have the right romset and built the core from sources on my linux x64), the other was king of fighter 98 and the mapping was weird with the reference layout : And yes, the device type approach is the recommanded one since, unlike core options, it is compatible with netplay |
@r-type i think having all cores using the same layout as reference, which is : As mentioned in the various example, if handled properly by the core, this reference layout is working pretty well with both joypads and arcade sticks (there are a few exceptions : saturn pads/sticks, snes arcade stick, ..., but i think it is safe to assume very few people use those, and using another reference layout wouldn't really help in their case). But to be honest, using core remapping or the osd seems totally fine (except a lot of people are probably unaware of those features). What is worrying though is when people don't use the reference layout and start handling their new layout in the other cores code, because it adds more confusion. |
what is 'the reference layout'? i corrected the CPS2 games to map well to the SNES layout (L and R are HK and HP). i can't remember if i touched neogeo, so yeah that's probably wrong in any layout. |
iirc, on neocd it was : and on remakes it is : At least that's what i think i'm using on fba. |
I'm a bit confused with some of the default button layouts when using an 8 button arcade stick.
For example, with CPS1-3 style fighting games (SF2, etc), the gamepad layout is the standard SNES SF2 layout, which seems sensible/the standard for SNES-style gamepads:
However, when you switch core option 'Control scheme' to 'Arcade' and use an arcade stick:
I assume the RetroPad bindings are like this, as punches on the top row, kicks on the bottom are the standard for SF2 (etc), but that translates as a strange RetroPad layout on the arcade stick, I think. I wonder where it comes from? Are there any standards for RetroPad layouts on 6/8 button arcade sticks? With lr-mame2003 I just have the a single controller layout, so my arcade stick binding was always:
If there is a standard RetroPad layout for a 6 button arcade stick, I could add a similar option, though.
This becomes maybe a libretro (paging @hizzlekizzle!) question :)
Further, when you look at the same situation for NeoGeo. When 'Control scheme' = 'Arcade', and you have the same arcade bindings as before:
I think that once we have a RetroPad layout confirmed for an 8 button controller, D should be replicated to whatever RetroPad button is in the top row, 4th along. i.e.:
This would satisfy 6 and 8 button arcade stick users.
I asked a similar question here: https://forums.libretro.com/t/request-controller-layout-image-for-mame-fba/10099 - but I didn't realise that fbalpha had a seperate 'arcade' controller scheme - I always just assumed you set it up like SNES SF2.
The text was updated successfully, but these errors were encountered: