bite-your-idols / Gamestarter

:video_game: Retrogaming kodi add-on repository for LibreELEC
262 stars 49 forks source link

PS3 Controller Doesnt work in retroarch #112

Closed robmcc1983 closed 5 years ago

robmcc1983 commented 5 years ago

Hi,

Ive just started a new clean install of libreelec 9 and have hit a problem reinstalling my setup.

On 8.2.5 i used emulationstation and retroarch from your repo and everything worked perfect.

Only on libreelec 9 it doesnt.

ive reinstalled emulationstation and retroarch onto my le9 setup and my ps3 controllers no longer work within retroarch.

They work controlling emulationstation and kodi but not retroarch. It pops up in the bottom corner in yellow writing saying playstation 3 controller configured but nothing actually works.

Hope you can help.

Thanks

Rob

bite-your-idols commented 5 years ago

try downloading autonfigs within retroarchs settings or from here

Also you can check if the autonfig path is correct in retroarch config file.

Yesterday I updated my RPi2 to LibreELEC 9 and my dualshock 3 worked ok via bluetooth.

robmcc1983 commented 5 years ago

Ok downloading the autoconfigs and copying them over seems to work.

But this now leads to another problem.

For some strange reason on le9 it seems that the ps3 controller is using a different config. How do i no this you might ask?

I know this because i edit the config manually to enable hotkeys so that select+start exits retroarch back to emulation station. I also have select+L1 as save state and select+R1 as load state etc.

These are all custom mappings ive made to the config myself.

Once i had found the perfect mappings for myself i backed up the config onto my computer and the file came from the udev folder and is named "Sony-PlayStation3-DualShock3-Controller-Bluetooth.cfg" kind off obvious really as im using ps3 controller over bluetooth.

I have restored this backup a couple of times when installing libreelec 8 fresh on new sd cards and it has always worked.

But now on libreelec 9 nothing changes anything to the controller when i replace that file so i believe libreelec 9 is using different config somehow.

I have loaded retroarch and can confirm that input driver is udev so im not quite sure what is happening here.

Thanks

Rob

bite-your-idols commented 5 years ago

Yes, I had same issue when started using libreelec 9 testbuilds last year, I can remember it is something related with kernel update so driver assigns different numbers to buttons.

robmcc1983 commented 5 years ago

Ok so since my last reply i have just got my old sd card out that had my previous le 8.2.5 setup on it which works absolutley fine.

Ive just ran retroarch and everything works perfect.

Ive just udated that sd card from 8.2.5 to 9.0.0.

After the update my ps3 controllers do not work in retroarch so the same problem appears to now be on a clean install of le9 and a updated version of le9.

I have just tried that incase its something to do with a left over config file that could possibly make it work but im affraid thats not the case.

Also plugging a keyboard into my pi also does not control retroarch so there is no way i can navigate retroarch to change any settings.

Do we at least no which controller cfg file retroach is using from the autoconfig folder so i can at least start trying to recover my setup.

Thanks

robmcc1983 commented 5 years ago

why do things never bloody work when updates come out lol, my computer has been playing up since the last windows update lol.

Anyway here is where im at so far. Currently i have 3 sd cards here infront of my sat infront of my raspberry pi 3. 1 of them is libreelec 8.2.5 the other is 9.0.0 (which is updated from 8.2.5) and the last one is a clean install of 9.0.0.

8.2.5 works perfect and i can edit the Sony-PlayStation3-DualShock3-Controller-Bluetooth.cfg file to match how i like my custom hotkey mappings no problem at all, all 4 of my controllers work fine in all 4 player games.

the 9.0.0 (upgraded from 8.2.5) doesnt respond in retroarch whatsover no matter what i try.

now here is the strange part. the le9.0.0 clean install didnt work at all in retroarch but worked in everything else, i added them autoconfigs from the link you sent, copied them over and the ps3 controller started to work as expected, but it is not using the Sony-PlayStation3-DualShock3-Controller-Bluetooth.cfg even though udev driver is selected for the input drive so i would assume it should still use the same config. Then i turned on the player 2 controller that behaves in such a strange way the buttons do all different things than what they are suppose to. And when that happens it also makes player 1 controller behave the same, even though before player 2 was turned on it would work fine.

Ive even tried tried changing driver within kodi setting for the input from linux to udev and they both do the same.

Surely this must be a retroarch problem as they behave normal in kodi and emulationstation. And surely im not the only one with this problem as i have 3 different sd cards here 1 working perfect on old libreelec, and i also have 4 original ps3 controllers to try and all do the same.

Thanks

Rob

bite-your-idols commented 5 years ago

Only thing I can do is give you my two config files for DS3, the one I used for LE8 and the new one for LE9, you can check them out and create yours. You can see I comment that is a Kernel 4.12 related issue, thats what we discovered in kodi forums back in that kernel update LE 9 testbuild.

Sony-PlayStation3-DualShock3-Controller.zip

robmcc1983 commented 5 years ago

Ok so adding them 2 controller cfg files to the autoconfig/udev directory causes retroarch to black screen on load then go back to kodi. Once i remove them controller cfg files you linked then retroarch loads normal again but still with no working ps3 controller within retroarch.

I think if you have a spare sd card maybe install le9 fresh install your addon and you will see the problem im faced with. The controllers work in everything except retroarch.

Thanks

bite-your-idols commented 5 years ago

no, just put into autoconfig folder the config file of corresponding LE version. If you are in LE9 just place in autoconfig folder "Sony-PlayStation3-DualShock3-Controller-LE9.cfg" but renaming it to delete "-LE9", that is just something I have to know which one is for each LE version.

Or better, what I do is changing in retroarch config file the autoconfig folder so it points to my custom "my-autoconfig" folder and there I just place my DS3 and DS4 config files not the whole retroarch autoconfig files.

robmcc1983 commented 5 years ago

we can safely say le9 has broke something within retroarch here. this morning i have done fresh install on 2 sd cards. 1 card has le8.2.5 and the other sd card has le9.0.0

installing no other addons except yours to make sure nothing else causes the problem.

le 8.2.5 works perfectly correct launch retroarch and i can navigate the retroarch interface with my ps3 controller.

but le9.0.0 setup the exact way i set the above up the ps3 controller doesnt navigate anything in the retroarch interface neither does my keyboard.

Im pulling my hair out here lol.

Thanks

robmcc1983 commented 5 years ago

Still no luck I'm affraid, I have tried what you suggested and still none of my PS3 controllers work within retroarch.

Thanks Rob

bite-your-idols commented 5 years ago

did you try this steb by step?

robmcc1983 commented 5 years ago

So just tried what you have suggested above and still none of the PS3 controllers work in retroarch :(

Thanks

robmcc1983 commented 5 years ago

So the kids went to bed and I've sat down having another go at this.

Following you steps exactly as above causes the black screen and boots back to Kodi when I launch retroarch. I had that yesterday as well when trying other things you suggested. Thanks Rob

robmcc1983 commented 5 years ago

I have found the problem i think. When logging in with winscp to my libreelec and looking at the autoconfig directory i noticed all cfg files are 0kb

capture

i have started fresh again installed retroarch from your repo and it produces the same fault. it shows the files there but every file is empty with nothing in them.

Hope this helps get this fixed now.

robmcc1983 commented 5 years ago

Ignore that last message, that seems to happen when I have to pull the plug on my pi when launching retroarch for the first time because the keyboard or controller doesn't work within retroarch so I can't exit it. The problem I have is that retroarch doesn't create a folder within the .config file until it is first launched, by that point it's loaded with no working keyboard or controller so I have to pull the plug. When I do that all cfg files are 0kb and the only way to get them back is to uninstall retroarch then install it again and launch it but I cannot navigate it to exit retroarch. There is nothing else I can do I have tried everything that I can think of. If I use your configs as per your steps I just get a black screen launching retroarch and it goes back to Kodi. If I leave it default I get no working controllers at all. If I copy the whole autoconfig directory that you linked in a earlier post I get player 1 working but the other controllers behave wrong as in the buttons do complete different things, and after the second controller is connected it then makes the player 1 controller behave in the wrong way. Altering the PlayStation cfg file has no effect at all almost like it is not using that config in LE9 like it did in LE8.

So what I have done for now is reinstall LE8.2.5 reinstalled you add-on and everything works perfect so I'll stay on LE8 until this problem is solved. Many thanks for your help and suggestions

Rob

bite-your-idols commented 5 years ago

If I copy the whole autoconfig directory that you linked in a earlier post I get player 1 working but the other controllers behave wrong as in the buttons do complete different things, and after the second controller is connected it then makes the player 1 controller behave in the wrong way.

In this case, after launching retroarch and player 1 works, did you tried going to retroarch's input button bindings and assign manually one by one player 2 buttons? this hould make it stop being crazy,

robmcc1983 commented 5 years ago

Surely to assign player 2 buttons with retroarch I would need to first turn player 2 controller on and bind the buttons within the input menu. If this is the case it is impossible because as soon as I turn it on then both both controllers will behave wrong then I cannot navigate the menu. Like I said I tried manually editing the sony-playstation3 cfg manually but it doesn't change anything like somehow it's using a different config. I suppose I'll have to wait until others have the same problem before it is fixed but for now I'm using LE8.2.5 as it works perfect on that. Thanks

bite-your-idols commented 5 years ago

maybe when lakka update to LE9... but IMO this will have no fix... I hope I'm wrong. Also, you can take a loot to this comunity build, maybe gamepads work ok...

robmcc1983 commented 5 years ago

Hi i have just tried that community build that you linked and the ps3 controllers work perfect within retroarch on that build :) All 4 controllers work together no problem. But here is the thing i dont want all the other stuff thats on it i only want your emulationstation and retroarch.

Surely if that build works fine then the problem is within your repo for retroarch.

I would much rather use yours if we can get it working.

Thanks

bite-your-idols commented 5 years ago

one thing you can try is getting autoconfig folder from that build and use it in official LE9 with retroarch addon (removing the folder that comes with the installation after first addon launch)

robmcc1983 commented 5 years ago

Haha ive already just thought of that but there is no autoconfig folder infact there is no retroarch folder within .config so i assume they have put retroarch somewhere else. Thanks

robmcc1983 commented 5 years ago

I think im just going to have to use the community build one as that just works.

Something i have just thought of is that when i first install your retroarch and launch it, it is not just my ps3 controller that doesnt work its also the keyboard that doesnt work.

I have got some usb to playstation adapters that i am going to try shortly and if they also do not work i can only assume there is a problem within you retroarch build.

Thanks Rob

bite-your-idols commented 5 years ago

as I said before, maybe when Lakka update to LibreELEC 9 it will solve, I just grab their retroarch compilation and pack it into an addon for libreELEC...

robmcc1983 commented 5 years ago

Ok so just tried a playstation 2 controller using a usb to playstation adapter. Loading retroarch it worked so i thought brilliant ill switch on ps3 controller and bind controls through retroarch. Only problem with that is that when i switch the ps3 controller on i get the strange issues of all buttons being wrong again but even with he wired controller so i cant navigate retroarch again.

robmcc1983 commented 5 years ago

How can this issue be closed when it is not fixed!

bite-your-idols commented 5 years ago

as I told you this is not going to be fixed, because there is nothing I can fix, maybe it is a Lakka's Retroarch issue... Also you said you are going to use community build that everything work ok...

robmcc1983 commented 5 years ago

I'm trying to give you a little input on my findings each and every time I try something different that's all so we can try and get to the bottom of it. Like I said earlier I would much prefer to use you add-on as I don't want all the other stuff that comes with the community build. You said you have your add-on on LE9 and it works with a PS3 controller so surely this is just a simple config file somewhere. But I have upgraded my perfectly working LE8.2.5 to 9 just as you said you did and when I launch retroarch no controller or keyboard will navigate retroarch, this is the same as it is on a clean install of LE9.

robmcc1983 commented 5 years ago

Is the retroarch build that's on the community build different to lakka?

bite-your-idols commented 5 years ago

I don't know how the dev compiles it... I just crosscompile from Lakka project, that is based in LE so it works in LE. What is very odd is that you say also keyboard doesn't work... Tonight, if I get some time, I will try in a fresh LE9 installation with my DS3.

robmcc1983 commented 5 years ago

Thanks I appreciate that, I think when you do a fresh install you will see exactly my problem.

Thanks

robmcc1983 commented 5 years ago

I have found the problem :)

I was correct thinking that retroarch must be using a different cfg file for the ps3 controller from le8 to le9

on le8 the autoconfig for my ps3 controller used Sony-PlayStation3-DualShock3-Controller-Bluetooth.cfg from autoconfig directory.

On le9 it is using Sony-PlayStation3-DualShock3-Controller-USB.cfg for the ps3 controller which has all the buttons mapped wrong and this is what has been causing the ps3 controllers not to work.

I have input the right button layout in the Sony-PlayStation3-DualShock3-Controller-USB.cfg and added my custom hotkeys and now it works as expected.

If you like i can add these changes to you github if thats possible or if you could add the changes then it should work as default out of the box :) with ps3 controllers.

Thank you for your help.

Rob

robmcc1983 commented 5 years ago

Although i must add the keyboard still does not work but at least the ps3 controllers do now.

Maybe the is a couple more configs that need altering for the le9 update.

bite-your-idols commented 5 years ago

happy to hear that... if you want you can upload your DS3 config file over here and I will take a look in order to include it in next addon update (maybe Retroarch 1.7.6...)

robmcc1983 commented 5 years ago

Its basically the same as you ps3 configs that you linked earlier in the post except i had to add 2 lines to it to stop it from black screening and returning to kodi.

So nothing else in the autoconfigs folder except your Sony-PlayStation3-DualShock3-Controller-LE9.cfg (but renamed without the -LE9 at the end) retroarch would go to a black screen when launching then back to kodi.

But if i add :- input_vendor_id = "1356" input_product_id = "616"

underneath input driver everything would work as expected. But here is the config i managed to get to work with le9 only difference is i use start select to exit emulator. Thanks PS3 Controller LE9.zip

bite-your-idols commented 5 years ago

ok, lets see. I burned a fresh LE9 image in an spare SD and I installed gamestarter repo and retroarch addon. Then I plugged my Sixaxis controller via USB. After LE recognizes it I use it to launch RA. When retroarch starts, I press PS "button" and the pad works, but it does it wrong. I exit retroach and go back to kodi. When in kodi I connected via sftp and removed all files inside autoconfig folder and pasted my PS3 controller config file. I launched retroarch again and it worked ok. Back in kodi I connected via sftp and edited my file to include the two lines you said and launched retroarch again. It still works like a charm (maybe it is because I use a Sixaxis controller and you use a DualShock 3).

So, I will include those lines in my config and if any other user has this issue I will recommend him/her to use your config file.

At this moment I can not include this config file in addon because then users using LE8 will have issues, and until Lakka releases its new 3.0 version based in LE9 the official LE version for the addon is the 8th.

Finally, I can recommend you to edit your retroarch.cfg file and point autoconfig path to a new folder (e.g. my-autoconfig) and place inside it just config files for controllers you use, this will avoid overwriting when addon update or conflicts with another controller settings files. That way, maybe you will make keyboard work.

robmcc1983 commented 5 years ago

Ok one of my controllers is a sixaxis the other 3 are dual shock three so I'll try my sixaxis the same way you did see if I get the same results so we can put the problem down to the different types of PS3 controllers. Thanks for checking it out

robmcc1983 commented 5 years ago

Hi I can confirm that using my sixaxis instead of the dualshock3 behaves exactly how you have described above so it seems there is a slight difference on configs between the 2 types of controllers. But either way I now have a working config file for my controllers that I will use for the time being. Is there any preference as to where I should create a my-autoconfig directory for my custom configs. Thanks

bite-your-idols commented 5 years ago

no, you can create wherever you want, I suggest you to place it next to default autoconfig file in /.kodi/userdata/addon_data/game.retroarch/ but you only important thing is to change that path in retroarch.cfg file. This file doesn't overwrite when updating.

robmcc1983 commented 5 years ago

Perfect. Thank you I'll have a play around with it tomorrow, spent to much time on it yesterday and today trying to get round this problem so I need a break lol. Thanks Rob