libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
188 stars 108 forks source link

Modern mapping #285

Closed barbudreadmon closed 6 years ago

barbudreadmon commented 6 years ago

Hi,

Perhaps there was a misunderstanding but i heard in https://github.com/libretro/fbalpha/issues/225 that you switched to Y X L1 R1 B A L2 R2 for modern mapping.

As explained in the issue (with photos), that's a bad idea because most arcade sticks/pads are like this : (L1) Y X R1 (L1) (L2) B A R2 (L2) with L1/L2 being the first or last column (generally the last). And when i say "most" i mean 90% of the arcade sticks/pads from the last 25 years. Starting with the psx ascii, it became the standard.

Also considering i heard the purpose of modern mapping in mame2003-plus was to match the one in fbalpha, that feels like a regression to me.

Anyway, i won't do something similar, most of the configs in https://github.com/libretro/retroarch-joypad-autoconfig would become unplayable.

While pleasing contributors is good, don't mess the mapping for all other people because one of your contributors use 1 custom mapping to fit his needs, he should handle it in his own setup, perhaps by using the --append-config argument of retroarch when launching a specific core to load custom mappings or autoconfig directory.

Best regards :).

ghost commented 6 years ago

Well yes thats the point these will all bind differently the xbox 360 control pads and all other pads bind to the retropad shape when they arent the shape like the xbox a/b is swapped in autoconfig .

All these shapes wont work with other cores ra cores you can feel free not to do it. The reason we will be keeping the change is people use more than mame/fba and any controller should be binding to a retropad shape and not a fight stick shape.

Its fair enough if you want to stick with console fighting stick shapes we feel people use more than mame and fba and shouldn't need remapping for other cores is all:). It would be nice if they where the same but variety is the spice of life after all

markwkidd commented 6 years ago

@barbudreadmon what are the default mappings available for FBA? My understanding is that you have Modern and Classic available as default mappings.

Are you saying that our Modern ("Gamepad") is different than FBA? Or that our Modern/Gamepad is the same as FBA's Modern, but that you don't think it is a good option to provide users?

If our Modern is different than FBA then I think it's an issue we should figure out. If our Modern is the same, then I'm confused why FBA also offers Modern if it's not a viable choice

ghost commented 6 years ago

The Gampad/Modern is the same Its the physical binding mark the fightstick physical bind is bad for core wide use. If people ise autoconfig it will be the same so we support both but we offer a 8 panel that is core friendly as well that will work across all cores.

psx/xbox fighsticks should be binding to a retropad shape they dont the left and right are swapped in modern for other core use

barbudreadmon commented 6 years ago

Perhaps there was a misunderstanding in the issue @grant2258 opened in lr-fbalpha, i'll check later how you did it in mame2003-plus (last time i checked it was the same as fba)

Basically, FBA mappings for 6+ buttons games on 6/8 buttons arcade stick/pads are like this :

ghost commented 6 years ago

The Gampad/Modern is the same Its the physical binding mark the fightstick physical bind is bad for core wide use.

If people use autoconfig it will modern will used be the same.

we support both but we offer a 8 panel that is core friendly mapped to a retropad shae as well that will work across all cores and not just a ps/xbox fighstick random mapping.

a fight stick mapped to Y X R1 L2 B A R2 R2

in auto config wont work well in any other ra cores

markwkidd commented 6 years ago

OK I now think I understand the discussion - this is not about the retropad->MAME mapping but instead about the recommended physical controller->retropad mapping.

I would like to say that since this is a frontend configuration issue then core maintainers shouldn't have to worry about but there is probably no one other than arcade core maintainers that are running into this dilemma.

As in some of the prior control layout discussions I'll step back from discussing the details because I simply don't have experience with these control types.

ghost commented 6 years ago

In simple terms its this I want to play psx on my fightstick panel

retro pad L -------- R L2--------R2 YX BA

retropad compatible layout bind XY ----- L R BA ----- L2 R2

modern YX ------- R1 L2 BA--------R2 R2

When choosing gamepad/modern in mame 2003 plus you pick this this layout if you and dont change the physical binding it will work the same as fba.

However if you go to play another emulator with this physical(modern) binding that use your left and right will be swapped not ideal mapping to the retropad standard.

So we support a core friendly 8 panel as well that works across cores and mame when bound properly Y X L R B A L2 R2

if you try use modern on the 8 panel physical layout the l and r will be swapped and this is what modern is doing to all other cores thats why we need a core friendly version in mame2003 plus

barbudreadmon commented 6 years ago

Well, i'm not sure i'm following you so i'll check mame2003-plus when i get back from work.

Simple question : i use several model of fighting sticks/pads (all with R1/R2 in the 3rd column), they are recognized by autoconfig, are they still usable without any peculiar remapping to play sf2 in mame2003-plus ?

markwkidd commented 6 years ago

I do know about autoconfigs -- and I will say that, as you may both know, those are mostly user submitted. I've purchased two controllers with nonsensical RetroArch autoconfig layouts. I then corrected the autoconfigs but who knows someone may have corrected my corrections by now. :)

ghost commented 6 years ago

@barbudreadmon if autoconfig mapping is mapping as

Y X R1 L2 B A R2 R2

and you choose gamepad maybe mark should rename this back to modern mark yes it will work the same same as fba.

The point here is autoconfig isint doing its job it should be mapping a fightstick to core friendly retropad that is what we have the 8 panel for so people can physically bind it to work in mame and other cores XY LR BA L2R2

instead of the native controller format if you look at the retropie page other controllers that dont match the ra retropad layout are modified like this as well

ghost commented 6 years ago

@markwkidd the autoconfig files are so easy to fix though. Its just no one had mapped 8 panel sticks to retropad standard they chose a native format instead. Thats not very ra friendly when using other cores is all

mame plus will support fighsticks and a 8 panel core friendly maps best of both worlds.

barbudreadmon commented 6 years ago

The point here is autoconfig isint doing its job it should be mapping a fightstick to core friendly retropad that is what we have the 8 panel for so people can physically bind it to work in mame and other cores

Well, i disagree about that, looks to me like the issue here is that you mapped your fight sticks to play games like mario kart on snes (just an example, but that's the general idea i get), and now you want mame2003-plus to be friendly with this custom mapping. Personally i have a lot of different controllers so i just switch them depending on the needs.

As long as autoconfigs don't change, and there is still a way to use autoconfigs in mame2003-plus without going through custom remapping, i don't mind how you deal with this.

barbudreadmon commented 6 years ago

the autoconfig files are so easy to fix though.

Don't fix what is not broken.

ghost commented 6 years ago

@barbudreadmon leave it as is if you like. The concept of ra is the retropad standard mapping to that is sensible for all core comparability.

auto mapping to a fightstick native breaks the model for ra in other cores.

Mame will support both and does support both. We are sticking with the ra model for the 8 panel is all so controls work across all cores if people choose too.

If they dont rebind nothing changes they can use modern and live with buttons being swapped in other cores.

if you had a black canvis

OOOO OOOO

no mappings or markings this should map sensibly to the ra retropad standard thats what 8 panel does

On the fighstick your stuck to that layout because its label of R1 and L1. So yes for fighr sticks I guess you can have confusion on the users part when setting buttons.

The 8 panel is a generic 8 button mapping to be core friendly regardless of markings ie a global arcade standard not limited by psx/xbox l/r markings that are on the wrong side hope this explains why we have arcade 8 button panels and fighsticks as two different things in mame2003+

barbudreadmon commented 6 years ago

auto mapping to a fightstick native breaks the model for ra in other cores.

If you consider sticks/pads with 6/8 buttons panels as "general purpose controllers" fit for playing games like mario kart, then yes. Personally i don't consider sticks/pads with 6/8 buttons panels as "general purpose controllers".

ghost commented 6 years ago

@barbudreadmon we do support both at the end of the day.

Ii do play other emulators on my barcade now and then. So thats why this came about both standards do work in mame2003+.

I do get what your saying @barbudreadmon RA is multi core we are still covering fight/sticks and core friendly 8 buttons.

if the users use more than mame and fba they now don't need to redefine they can choose the standard that suit them best. It not taking functionality away im just adding a retro pad friendly mapping option as well.

barbudreadmon commented 6 years ago

@grant2258 Ok for me, i just got very worried when you talked about "fixing" autoconfigs (again, i don't consider them as "broken", the fact they are not fit for games like mario kart out of the box is totally normal).

ghost commented 6 years ago

Well in arcade panels i find it easier to show people how to bind especially when using retropie they have to bind

fight stick will be

Y X R1 L2 B A R2 R2

and 8 panel will be Y X L R B A L2 R2

for mame and you just pick the appropriate modern or 8 panel depending on your choice

The autoconfig is really up to the ra people it should be binding the device in use to the retropad standards thats what its supposed to do.

this is still a wip as you can see ive done diagrams for mapping modern as well just need finalized and some basic instructions as you can see with no labels on the controller there is no issues.

https://github.com/libretro/mame2003-plus-libretro/tree/master/metadata/wipcontrols

Wilstorm commented 6 years ago

@grant2258 - Can you clarify this a little more for arcade panels?

Retropad: L -------- R L2--------R2 YX BA

Retropad compatible layout bind: XY ----- L R BA ----- L2 R2

So basically L-R & L2-R2 have been moved down and to the right of X-Y B-A.

This is the standard if using 2 rows of 4 buttons on an arcade panel?

The part that is confusing is L-R and L2-R2 are both located above YX-BA in the Retropad layout. So how do you know if L-L2 or R-R2 is the 3rd or 4th column?

ghost commented 6 years ago

@Wilstorm im lost in what your saying

retropad is a modern controller like a xbox 360 pad L2-----R2 L------R YX BA

so in a 8 button layout that translates to

Y,X,L,R B,A,L2,R2

OOOO OOOO

physical layout

6 panel translate to XYL BAR

OOO OOO

l and r have to be this way for a 6 button because they cant be across from each other unless you layed your 6 panel out like this

XYLR BA

OOOO OO

Wilstorm commented 6 years ago

@grant2258 - Let me try and ask it another way. Basically a very specific scenario. When RetroPie boots up for the first time and I have a physical layout like below on my arcade panel and I also bind my keys on an arcade panel as diagrammed below.

Y X L R B A L2 R2

Then if I plug in a 360 will it the same as the the diagram below:

f12ff342-e099-11e6-8adb-d18e9c638e94

ghost commented 6 years ago

@Wilstorm they are two different controllers its up you you how you physically bind each one. Retropie doesnt use autoconfig RA does ra would bind your xbox 360 controller like above by default.

Wilstorm commented 6 years ago

retropad is a modern controller like a xbox 360 pad L2-----R2 L------R YX BA

so in a r8 button layout that translates to

Y,X,L,R B,A,L2,R2

Ok, that's right I keep crossing over the two. Yeah I am still playing catch up. At the beginning here trying to understand. So you posted this above. Why does it translate to the above?

If I plug in a 360 controller and map it like the previous post what is being translated?

ghost commented 6 years ago

why you talking about xbox360 controllers we arent touching them this is arcade panels ? you use gamepad or classic retopads for these controllers in mame

Wilstorm commented 6 years ago

Ok so I am at my arcade panel and boot RetroPie for the first time and it ask what do I want to map to A, B, X, Y, etc. RetroPie goes down the entire list.

Where does it say it translates to this on my arcade panel?

Y X L R B A L2 R2

ghost commented 6 years ago

https://github.com/libretro/mame2003-plus-libretro/blob/master/metadata/wipcontrols/10PANEL.png is how you map it in retropie

Wilstorm commented 6 years ago

That's your mapping. You physically arranged the buttons in that order in a diagram you made?

ghost commented 6 years ago

@Wilstorm it a retropad mapping im pretty lost with what your saying how would you map a modern contoller to a 8 button physical layout ? When you bind in retropie your telling it thats where the button is when you press it it because it doesnt use autoconfig

OOOO OOOO

Wilstorm commented 6 years ago

Who said my arcade panel should be setup like below?

Y X L R B A L2 R2

Is the some RA documentation or a link that shows this diagram to be correct? I am trying to understand where it shows L-L2 should be located in the 3rd row? Where does this come from? Why are you mapping it this way?

ghost commented 6 years ago

@Wilstorm do you understand the retropad concept if you do post how you would map it. I love to see you map and we can change it it works on all cores

Wilstorm commented 6 years ago

If I knew the answer I wouldn't be asking the questions.

ghost commented 6 years ago

well the basic setup is

YX BA

l2 R L2 R2

you can see cleary how they are layed out on the panel

on a 6 panel its XYL BAR

your not questioning that how would you lay that out differently

Wilstorm commented 6 years ago

I read through this post several times and the the one over at FBA and I still don't understand. I would really like to understand this once in for all, in all honesty.

The basic setup above where does it come from? Is there a link to some documentation that you're pulling this from or are you making assumptions?

ghost commented 6 years ago

when you press a button for in retropie controller setup your telling it thats where the button is physically so what your read is what your setting your button position too.

ghost commented 6 years ago

@Wilstorm the only difference in fba modern is the l and r buttons are swapped physically no assumptions are being made at all

ghost commented 6 years ago

you would bind you panel like this for fba fighstick

Y X R1 L2 B A R2 R2

and if you wanted to use this phycial layout in mame plus pick gamepad

but your r and l buttons will be reversed on other cores with this binding

pd modern aka fighstick shown in teh diagrams how to map

Wilstorm commented 6 years ago

I am just focusing on arcade panels. Like my homemade arcade. If I have a brand new RetroPie setup and I power it on you would map it this way. Why? Sorry if that is the most fundamental question but I just thought after reading several times I need to start at the beginning.

Y X L R B A L2 R2

ghost commented 6 years ago

Are you serious @Wilstorm why do you map any controller in retropie? To make controllers work across all cores to the retropad standard with the same button maps regardless of the controller being used

retopie diagrams are setting all controllers to this standard physically

retropad_360pad

if you look at you xbox360 controler its marked as xy ab

when you bind to the diagrams your ignoring these markings at telling RA YX BA

is the physical layout now

Wilstorm commented 6 years ago

Unfortunately yes I am. It seems it's a confusing subject. So I do ask why map my arcade panel like this in all sincerity.

Y X L R B A L2 R2

vs. say this for contrast:

Y X R L B A R2 L2

ghost commented 6 years ago

well map it both ways and try play a snes game youll see

on a snes pad for example here is what the difference is normal mappping L----------R YX BA

change to modern equiv on a snes pad bind

R----------L YX BA

Wilstorm commented 6 years ago

So one of the layouts above is better for playing an SNES game. The left and right shoulder buttons I use to press with my left/right index fingers will translate better as L R in the top row vs R L in the top row?

f129dc28-e099-11e6-8524-93facf275eda

ghost commented 6 years ago

no not just snes games any core that uses the l -r L2 R2 for arcade panels basically its not a big deal its a l-r swap basically will effect any core you can use either if your happy enough with swapped lefts and rights

Wilstorm commented 6 years ago

Well I was just focusing on SNES at this moment because it's a simple layout. People seem to argue for hours on end and no one can really explain it well using exact examples. So I am trying to break it down to it's simplest form to understand with a real world example. Is that the crux of it L R vs R L in the top row on an arcade panel for say just an SNES game?

ghost commented 6 years ago

well your posting snes pad pictures

here is your pysical buttons it is what they are

X Y L R B A L2 R2

you press these buttons to get that function in all cores

left and right are are physical sides thats why its set to l - r dont know how else to explain this to you

Wilstorm commented 6 years ago

Why is my SNES picture bad?

It needs to stay simple for me apparently and other folks too. The discussion goes on for hours and hours in threads so it can't be easy so why not start with an easy example and build upon it.

If I map my arcade panel like this. My SNES left/right shoulders are in the top row row either way. Why is one preferred over the other?

Y X L R B A L2 R2

vs. this

Y X R L B A R2 L2

ghost commented 6 years ago

yes they are but the right left

one is L R the other is R L

i expect my left button to be on the left hand side logically.

Im guessing you dont have a 8 panel layout or do you? have you tried playing other cores with left and right buttons swapped try swapping them on your gamepad see how it feels

Wilstorm commented 6 years ago

No I don't have an 8 panel layout only a few 6 panels (3 to be exact) or I would just test this stuff and see how it feels with 8 buttons.

Ok so having the left shoulder on the left and the right shoulder to the right, relative to the left makes sense to me. You have pick something when it boots up.

The same logic applies to the left/right trigger because they are below the left/right shoulder. On the panel they are on the bottom row below.

Ok I have to agree with that layout and your logic on a panel but why do folks want right before left?

ghost commented 6 years ago

This is very easy to explain when someone buys a fight stick it labeled R L R2 L2

now when people remap in mame or fba they will see this and use this as a guide of how to set there buttons.

People without fighsticks dont have these markings so arent fooled they know what the map is set too with the diagrams i posted and know where each button is and that is why both exist

see pictures here

https://github.com/libretro/fbalpha/issues/225#issuecomment-396288543

hope this explains why why have a core friendly and fight stick supports as well and why both are separate

Wilstorm commented 6 years ago

People without fighsticks dont have these markings

I do not have a fight stick. All are homemade. I am staring at a blank panel asking myself how to do a setup that would best cover the games I play. Ok I think I understand better and I agree with your logic.

So MAME buttons would be this way if I mapped my panel like below.

Y X L R B A L2 R2

1 2 3 7 Y X L R B A L2 R2 4 5 6 8

ghost commented 6 years ago

yes this was by design it was mapped to be retropad core friendly (relative right and left) then the mame button order was set on that map.