up & down (y-axis) not working in 3.8
-
@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 ?
-
I think it was the kernel update that broke it as the controls on my 3.7 image stopped working after I ran the kernel update. I followed the workaround that @mediamogul advised above and I'm up and running again. The thing in the 3.8 update that caused the problem isn't fixed but my Pi is.
-
@Fluk3 moving the config file / configuring emulationstation and re-doing control ? strange as that's what I said to do previously (ie on my reddit reply to you)
-
I'm glad everything worked out, but I certainly don't want to take credit away from where it belongs. My original suggestion was based on a theory and once it was known to omit the emulator mappings, I was at a complete loss. Hell, I didn't even know what 'retropie_packages.sh' was for until you explained it above. Bottom line, we most certainly appreciate your help with this.
-
@mediamogul np. Team effort! I'm just confused as to what was done differently to make it work :)
-
Hi.
Is there any way to change Y axis back from 3 to 1? It's working fine in ES and libretro emu, for for atari800/scummvm I have to change source code and recompile with Y axis changes from 1 to 3. Everyone assumes that 0 is X and 1 is Y. In Zero Delay (aka Dragonrise USD gamepad) retropie detect Y axis as 3. On Windows, it's "normal".Also anyone noticed that sometimes control got stuck (for example in OpenTyrian when pressing pushbutton A on title causes it to repeat as stuck, pressing it again unstuck it). Sometimes also when exiting MAME, joystick down is "stuck" (need to unstack by pushing joystick down).
-
It seems like many people are having issues with this gamepad in linux. From what I was able to glean from a search, this is a PS3 controller? If so, all ps3 buttons are pressure sensitive and are read as axis input in linux. This isn't a problem in most parts of RetroPie, as many emulators will read any positive or negative axis readings as a binary on/off state. On the other hand, this confuses a few emulators with under developed joystick support that try to guess the different qualities of a controller. To me, it sounds like both your problems stem from this issue. I believe the emulators you mentioned are confused by the controller axis order and MAME might even be confused by the pressure sensitive buttons. If this turns out to be the case, I have corrected these issues before on a few unruly controllers by using xboxdrv, but I'll hold off on a full explanation in case I'm wildly off base with the diagnosis here.
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.