up & down (y-axis) not working in 3.8
-
@BuZz said in up & down (y-axis) not working in 3.8:
doing that disables the auto configuration.
Thanks BuZz. To live is to learn. That's why I had them back the file up rather than delete it out right. Anyone who attempted my previous instructions can restore their original preference file by dropping back to the command line (f4) and typing:
rm /opt/retropie/configs/all/emulationstation/es_input.cfg
Press enter, then type:
mv /opt/retropie/configs/all/emulationstation/es_input.cfg.bak /opt/retropie/configs/all/emulationstation/es_input.cfg
Press enter, then type:
emulationstation
Press enter and Emulation Station will load in the same state it was before attempting anything.
-
btw a default "empty" config should look like
<?xml version="1.0"?> <inputList> <inputAction type="onfinish"> <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command> </inputAction> </inputList>
this is the config that triggers the auto configuration for retroarch emulators etc.
-
In the future, would it be advisable to recommend a procedure that creates 'es_input.cfg' with 'nano' that inserts those specific lines as a means of triggering the initial configure prompt?
Edit: Come to think of it, shouldn't that solve this particular situation?
-
the lines are inserted in by the ES configure function, so calling that again would re-insert the lines. eg
sudo ./retropie_packages.sh emulationstation configure
-
Very slick. Knowing the order in which these dominoes fall will certainly come in handy. Also, wouldn't this method potentially solve the problem being discussed here, or is it being examined at a developer level and we should just hold off on any further attempts at a fix?
-
I don't know what the problem is here if re - but if updown works in ES it should work in RetroArch too. So long as those lines are in the config file, when reconfiguring a joypad it should trigger the configuration of retroarch (Restart ES first if changing the config).
Perhaps some kernel change caused the axis to be different between ES and RetroArch, but without the controller, it's going to be hard to debug. Also note that RetroPie is not an OS - the RetroPie image is just Raspbian Lite with RetroPie installed on top.
It may help for me to see the configs in
/opt/retropie/configs/all/emulationstation
and/opt/retropie/configs/all/retroarch-joypads
-
@BuZz said in up & down (y-axis) not working in 3.8:
/opt/retropie/configs/all/emulationstation and /opt/retropie/configs/all/retroarch-joypads
At present up & down are not working in ES. If I remove/rename es_input.cfg then ES will prompt me to setup the controls once I restart, up & down will then work in ES but not in any Emulator.
What I find really strange though is that the problem affects non libretro emulators too where I had to manually set the controls which were working prior to the update. The contents of the files below are as they were after the update, no amendments have been made.
The contents of /opt/retropie/configs/all/emulationstation/es_input.cfg is as follows:
<?xml version="1.0"?> <inputList> <inputConfig type="joystick" deviceName="DragonRise Inc. Generic USB Joystick " deviceGUID="03000000790000000600000010010000"> <input name="a" type="button" id="3" value="1" /> <input name="b" type="button" id="4" value="1" /> <input name="down" type="axis" id="3" value="1" /> <input name="left" type="axis" id="0" value="-1" /> <input name="lefttop" type="button" id="5" value="1" /> <input name="right" type="axis" id="0" value="1" /> <input name="righttop" type="button" id="8" value="1" /> <input name="select" type="button" id="1" value="1" /> <input name="start" type="button" id="0" value="1" /> <input name="up" type="axis" id="3" value="-1" /> <input name="x" type="button" id="7" value="1" /> <input name="y" type="button" id="6" value="1" /> </inputConfig> </inputList>
The contents of /opt/retropie/configs/all/retroarch-joypads/DragonRiseInc.GenericUSBJoystick.cfg is as follows:
input_device = "DragonRise Inc. Generic USB Joystick " input_driver = ""udev"" input_r_btn = "8" input_save_state_btn = "8" input_start_btn = "0" input_exit_emulator_btn = "0" input_l_btn = "5" input_load_state_btn = "5" input_up_axis = "-1" input_a_btn = "3" input_b_btn = "4" input_reset_btn = "4" input_down_axis = "+1" input_right_axis = "+0" input_state_slot_increase_axis = "+0" input_x_btn = "7" input_menu_toggle_btn = "7" input_select_btn = "1" input_enable_hotkey_btn = "1" input_y_btn = "6" input_left_axis = "-0" input_state_slot_decrease_axis = "-0"
-
https://retropie.org.uk/forum/topic/3/read-this-first - Please try and format your posts by putting log/file snippets in code blocks (or use an external pastebin site)
-
does it help if you remove the duplicate quotes from
/opt/retropie/configs/all/retroarch-joypads/DragonRiseInc.GenericUSBJoystick.cfg
where it saysinput_driver = ""udev""
?Have you got other controllers to test ?
-
I don't think removing the duplicate quotes will effect it, as the working original files (which are below) also had them and I could use both joysticks and all buttons with no problem while on 3.7. I have a PS3 controller that I've never used with my Pi, I'll dig it out and give that a go, in the mean time the original working files are below.
Prior to the update es_input.cfg was as follows: http://pastebin.com/dCC5Hc6J
Priot to the update DragonRiseInc.GenericUSBJoystick.cfg was as follows: http://pastebin.com/skvP0UvM -
To see if it is due to the kernel update, please can you take your working 3.7 image, ssh in and do
sudo apt-get update; sudo apt-get dist-upgrade
which will pull in the new kernel - reboot and see if you have the same issue (without reconfiguring anything) -
The Pi is in an arcade cab and is difficult to get to, I managed to pull a USB cable out (turns out it was the keyboard) and then connected the PS3 controller via USB. When I booted the Pi, up & down on the arcade sticks were now working. As I could now scroll down to configure inputs I setup the PS3 controller. I got excited and so started both a game on a libretro emulator followed by a game on an non libretro emulator, up & down are still not working (all other buttons are) in the libretro emulator and in the non libretro emulator it's as if I have never configured the controls (each button does something random). I have set the controls again for 1 of the arcade sticks in ES and tried a libretro emulator again and still have the up/down problem. Additionally the PS3 controller works within ES but not within any games.
-
I have updated the kernel on the working 3.7 image and the controls are still working as normal.
edit - I've just rebooted the 3.7 image again and the controls are no longer working.
-
So when I rename the es_input.cfg to something else, it allows me to reconfigure the controller. See below for Before and After:
Before:
<?xml version="1.0"?> <inputList> <inputAction type="onfinish"> <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command> </inputAction> <inputConfig type="joystick" deviceName="DragonRise Inc. Generic USB Joystick "> <input name="pagedown" type="button" id="7" value="1"/> <input name="start" type="button" id="8" value="1"/> <input name="pageup" type="button" id="0" value="1"/> <input name="up" type="axis" id="1" value="-1"/> <input name="a" type="button" id="6" value="1"/> <input name="b" type="button" id="1" value="1"/> <input name="down" type="axis" id="1" value="1"/> <input name="right" type="axis" id="0" value="-1"/> <input name="select" type="button" id="9" value="1"/> <input name="left" type="axis" id="0" value="1"/> </inputConfig> </inputList>
After
<?xml version="1.0"?> <inputList> <inputConfig type="joystick" deviceName="DragonRise Inc. Generic USB Joystick " deviceGUID="03000000790000000600000010010000"> <input name="a" type="button" id="6" value="1" /> <input name="b" type="button" id="1" value="1" /> <input name="down" type="axis" id="3" value="1" /> <input name="left" type="axis" id="0" value="1" /> <input name="leftbottom" type="button" id="0" value="1" /> <input name="right" type="axis" id="0" value="-1" /> <input name="rightbottom" type="button" id="7" value="1" /> <input name="select" type="button" id="9" value="1" /> <input name="start" type="button" id="8" value="1" /> <input name="up" type="axis" id="3" value="-1" /> <input name="x" type="button" id="4" value="1" /> <input name="y" type="button" id="2" value="1" /> </inputConfig> </inputList>
I notice the following differences:
- The up/down axis has changes from 1 to 3
- There is no 'onfinish' command in the default version. For now I assume that this was what Buzz was referring to when he mentioned the need for a re-install of ES once the file was removed. If this is because this command is only excecuted when called from a specific workflow or something else I do not know.
In any case, it seems to me that something has caused the change in axis index from 1 to 3, the kernel update maybe?
As @Fluk3 mentioned, simply removing the cfg and running through the config-wizard in ES does not propagate trough to the emu's. Naively re-inserting the onfinish command, and re-configuring the controller does nothing either.BTW: while my keyboard did not work earlier, that seems to have been another glitch, it now works correctly on v3.8. This issue seems to be limited to the "DragonRise Inc. Generic USB Joystick " controller, although I cannot assess whether this issue is related.
-
@Zigurana said in up & down (y-axis) not working in 3.8:
simply removing the cfg and running through the config-wizard in ES does not propagate trough to the emu's.
It will propagate using a similar procedure to what was done earlier as long as the es_input.cfg is created to only include
<?xml version="1.0"?> <inputList> <inputAction type="onfinish"> <command>/opt/retropie/supplementary/emulationstation/scripts/inputconfiguration.sh</command> </inputAction> </inputList>```
If done the way I suggested earlier, the instruction set responsible for the extra mappings will not be created by simply launching emulation station. It takes what BuZz suggested above for the automagic to work. There's really no reason everything shouldn't work after that. If need be, I'll do a revised step-by-step, I just don't want to get in the way of illuminating any possible kernel problems that need full troubleshooting first.
-
Since there hasn't been any more activity on this in a while, here's a revised how-to that should help those afflicted with this problem get back on their feet. First, drop to the command line by pressing f4 on the keyboard. Once you're there type:
mv /opt/retropie/configs/all/emulationstation/es_input.cfg /opt/retropie/configs/all/emulationstation/es_input.cfg.bak
Press enter, then type:
sudo /home/pi/RetroPie-Setup/retropie_packages.sh emulationstation configure
Press enter, then type:
emulationstation
Press enter again and wait for Emulation Station to load, where you will be greeted by a configuration prompt that will now map the other emulators as well. Keep in mind that any emulators that were configured manually before will most likely have to be reconfigured again as well due to the nature of this problem.
Thanks again @BuZz.
-
Double Post
-
@mediamogul :
Thanks! I'll try this tonight and report back. -
All sorted now. Thanks everyone for your help.
-
@Fluk3 What was the problem ?
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.