L/R shoulder buttons not working to jump letters
-
@zerobyzero I'm not familiar with this feature, as far as I know L/R act as PgUp/PgDown for scrolling in the game list.
-
@zerobyzero As far as I've always known to jump to certain letters you have to press Select (whatever button you might have configured for that) while in a system's gamelist and the first option should be Jump To... and a letter. Navigating with the Left or Right buttons should allow you to choose the letter.
-
@mitu, that would be fine as well but L/R shoulder buttons are not doing anything at all.
Yes, @simpleethat ehat, that's what I do at the moment but I find a bit annoying going go the menu simply because you want to scroll faster.
-
@zerobyzero said in L/R shoulder buttons not working to jump letters:
@mitu, that would be fine as well but L/R shoulder buttons are not doing anything at all.
What's the exact version of Emulationstation you have installed ?
-
Right now, 2.8.3rp but yesterday I tried with the latest development version (I cloned the git repository without any special command line so I assume I got the latest dev version) with the same result.
-
I have version 2.8.2rp installed right now and I have no problem with a Dualshock 4 controller - L/R act as PgUp/Down. Did you configure the L/R buttons in Emulationstation's Input configuration ?
I'll try on 2.8.3rp, to see if anything is different.
-
ES 2.8.3RP my L & R Shoulder buttons act as Page Up / Down
-
Weird!
This is my es_input.cfg
<inputConfig type="joystick" deviceName="Sony PLAYSTATION(R)3 Controller" deviceGUID="050000004c0500006802000000800000"> <input name="a" type="button" id="1" value="1" /> <input name="b" type="button" id="0" value="1" /> <input name="down" type="button" id="14" value="1" /> <input name="hotkeyenable" type="button" id="10" value="1" /> <input name="left" type="button" id="15" value="1" /> <input name="leftanalogdown" type="axis" id="1" value="1" /> <input name="leftanalogleft" type="axis" id="0" value="-1" /> <input name="leftanalogright" type="axis" id="0" value="1" /> <input name="leftanalogup" type="axis" id="1" value="-1" /> <input name="leftshoulder" type="button" id="4" value="1" /> <input name="leftthumb" type="button" id="11" value="1" /> <input name="lefttrigger" type="button" id="6" value="1" /> <input name="right" type="button" id="16" value="1" /> <input name="rightanalogdown" type="axis" id="4" value="1" /> <input name="rightanalogleft" type="axis" id="3" value="-1" /> <input name="rightanalogright" type="axis" id="3" value="1" /> <input name="rightanalogup" type="axis" id="4" value="-1" /> <input name="rightshoulder" type="button" id="5" value="1" /> <input name="rightthumb" type="button" id="12" value="1" /> <input name="select" type="button" id="8" value="1" /> <input name="start" type="button" id="9" value="1" /> <input name="up" type="button" id="13" value="1" /> <input name="x" type="button" id="2" value="1" /> <input name="y" type="button" id="3" value="1" /> </inputConfig>
-
@zerobyzero I think this might be specific to the PS3 controller, though I can't confirm since I don't have one. I'll try to 'fake' a PS3 controller via
xboxdrv
and see if I can reproduce the issue.@psyke83 do you think that the event filtering added in ES recently might affect the L/R buttons ?
-
@mitu said in L/R shoulder buttons not working to jump letters:
@zerobyzero I think this might be specific to the PS3 controller, though I can't confirm since I don't have one. I'll try to 'fake' a PS3 controller via
xboxdrv
and see if I can reproduce the issue.@psyke83 do you think that the event filtering added in ES recently might affect the L/R buttons ?
I don't think so?
The current stable build is broken for PS3 controllers, as the older trigger patch was reverted due to conflicts with other controllers. The master branch has a better patch in place, but there's still a pending PR to further improve the filtering to apply to other controllers: https://github.com/RetroPie/EmulationStation/pull/558
No matter whether you run stable, master or master + PR 558, my trigger filtering code a) doesn't affect shoulder buttons, and b) only filters inputs during during input configuration.
Looking at @zerobyzero's input config I can see that it's using the wrong inputs for triggers (should be axes 2 & 5), but shoulder button mappings are correct. However, it appears that ES stores separate mapping configuration related to GUI navigation. My configuration also has this:
<inputConfig type="joystick" deviceName="Sony PLAYSTATION(R)3 Controller" deviceGUID="050000004c0500006802000000810000"> <input name="rightanalogdown" type="axis" id="4" value="1"/> <input name="rightanalogleft" type="axis" id="3" value="-1"/> <input name="pageup" type="button" id="4" value="1"/> <input name="start" type="button" id="9" value="1"/> <input name="rightanalogup" type="axis" id="4" value="-1"/> <input name="down" type="button" id="14" value="1"/> <input name="leftanalogright" type="axis" id="0" value="1"/> <input name="pagedown" type="button" id="5" value="1"/> <input name="right" type="button" id="16" value="1"/> <input name="select" type="button" id="8" value="1"/> <input name="left" type="button" id="15" value="1"/> <input name="leftanalogup" type="axis" id="1" value="-1"/> <input name="up" type="button" id="13" value="1"/> <input name="b" type="button" id="1" value="1"/> <input name="a" type="button" id="0" value="1"/> <input name="leftanalogdown" type="axis" id="1" value="1"/> <input name="x" type="button" id="2" value="1"/> <input name="leftanalogleft" type="axis" id="0" value="-1"/> <input name="y" type="button" id="3" value="1"/> <input name="rightanalogright" type="axis" id="3" value="1"/> </inputConfig>
Relevant is the
pageup
andpagedown
, which should correspond to theleftshoulder
andrightshoulder
mappings (for sixaxis, buttons 4 & 5). -
Interestingly, with your mapping the page up/down works... So could it simply be the name of the inputs? I had "leftshoulder" and I see that "pageup" works.
-
@zerobyzero Did you try to re-configure your gamepad after you did the upgrade ?
@psyke83 I took a shot, it didn't seem the PS3 modifications had anything to do with it, but I'm not throughly familiar with ES's input handling - thanks for the explanation.
-
@mitu This is my first time using ES so I've only tried the two latest versions: the latest dev and the latest stable. And yes, I reconfigured the pad several times. What I probably didn't do is closing and reopening ES. I've noticed that several things are not always updated until you close/open the program (e.g. making changes in layout A while using it and then activating layout B and A again from the configuration menu).
-
@zerobyzero The L/R buttons don't work right away after mapping - which is probably a bug - but they work after a restart. That's a 'feature' - probably because the
es_input.cfg
is read only on start, but the mapping - in-memory - doesn't have the L/R enabled. -
I can confirm that's not working for me, @mitu. I removed the configuration and I started ES from scratch so I got:
<input name="leftshoulder" type="button" id="4" value="1" /> <input name="rightshoulder" type="button" id="5" value="1" />
By renaming the buttons to pageup and pagedown everything works as expected.
-
@zerobyzero Thanks for reporting - let's see if we can find a better solution.
-
@mitu It seems simple to fix in the code. I'd say that, to be consistent, the "pageup"/"pagedown" texts should be changed to "leftshoulder"/"rightshoulder". They don't appear in too many files. I'll try to modify the code this weekend, check it works and submit the patch to github.
Regards.
EDIT: Patched and tested, it works. Now I need to figure out how to push to ES git, I'm getting an error 403. Do I need to be verified or something like that to be able to push patches?
-
@zerobyzero said in L/R shoulder buttons not working to jump letters:
Do I need to be verified or something like that to be able to push patches?
Modifications are usually sent as Pull Requests to the RetroPie's Emulationstation Github repository - https://github.com/retroPie/emulationstation/pulls.
You'll need to fork the repository, add your modifications (commit) to your repository, then create a Pull Request with the modifications - GitHub will propose you to do so when it detects you pushed your commits. -
Thanks, done.
-
@zerobyzero I've taken a look at the PR, but it doesn't seem correct. The
.cfg
file is not produced by Emulationstation, it's only read by it. The.cfg
file is produced - externally - by this script, which already maps the shoulder buttons to 'pageUp/pageDown' (see here).Moreover, as others pointed out, the mapping appears to be correctly generated for other controllers - my DS4 input configuration has - correctly -
pageup
/pagedown
in the.cfg
file, so as my other controllers which have shoulder buttons.I'm thinking to have something like 'isMappedLike' which handles both D-Pad and Joysticks for movement, to map both types of inputs to the same action.
Contributions to the project are always appreciated, so if you would like to support us with a donation you can do so here.
Hosting provided by Mythic-Beasts. See the Hosting Information page for more information.