zigurana / EmulationStation

Extension of A flexible emulator front-end supporting keyboardless navigation and custom system themes.
MIT License
25 stars 6 forks source link

X & Y buttons not sticking for marking Fav/Kid #15

Closed opensourcefan closed 8 years ago

opensourcefan commented 8 years ago

I can only use the X and Y buttons to mark Fav/Kid immediately after configuring my controls. Once I reboot or play a game the buttons no longer function.

I'm using a Sony PS3 via wireless. RPI3, v 3.7 from SD Image, 4.4 Kernel, Child-Friendly ES, Carbon V4 Theme, 3 amp Power Supply, No Case

henrikp commented 8 years ago

I can confirm that it isn't working as well,

Using a USB SNES controller, Raspberry Pi Zero, RetroPie with yesterdays (15.05.2016) updates.

zigurana commented 8 years ago

I've seen a similar problem, so I can reproduce it. Will have a look at it asap!

opensourcefan commented 8 years ago

I don't know how to write code but is there anything I can do to help with this bug?

zigurana commented 8 years ago

I've had a short look at it earlier this week, but failed to reproduce it then. It just needs some more time. If you're willing to learn, it's never too late to have a look at the code. This part is mainly managed by https://github.com/zigurana/EmulationStation/blob/master/es-core/src/InputManager.cpp

henrikp commented 8 years ago

I tried it a week ago and failed to reproduce also, recompiled kids emulationstation and upgraded the system, though 0 new commits between recompilations.

opensourcefan commented 8 years ago

Maybe something in 3.8 fixed it? I'll take a look at the code and see if my brain will accept new information.

zigurana commented 8 years ago

Nah, the issue is still there. I've found the root cause though.

TLDR: RetroPie specifics cause the es_input.cfg to be rewritten, you have to fix it manually (for now).

Long version: So what happens after running the configure input routine (where you have to press every button on your controller) is that a separate call is made to scripts that configure retroarch, reicast, mupen64plus and finally emulationstation (again). In this script there has been made no provision for x or y buttons, so, they do not get set (because in stock ES, they are not needed). If you want to have a look, you can find those scripts at: opt/retropie/supplementary/emulationstation/scripts Because these scripts are outside the scope of this repo, I am not hopeful that I can fix this anytime soon. In the meantime, you can fix this manually by opening up the temporary input file at: /home/pi/.emulationstation/es_temporaryinput.cfg and look for the lines that say something like:

<input name="x" type="button" id="0" value="1" />
<input name="y" type="button" id="3" value="1" />

You can copy those into the es_input.cfg manually (make sure you paste them in the branch for the correct device). This will likely be a hassle, as I have no idea when these values get rewritten, only after the reconfiguration of the same controller, or after every call to CONFIGURE INPUT from the game-menu. Thats all I can do about it for now, without breaking core functionality that RetroPie brings.

zigurana commented 8 years ago

With this commit, the issue of non-sticking x/y buttons should be solved.