Closed hermetic-charm closed 5 months ago
Thanks for opening your first issue here! Be sure to follow the relevant issue templates, or risk having this issue marked as invalid.
As an additional note I installed the Retroarch desktop app to test and the controller is working okay in that.
The only controllers I have to test are Xbox series, Xbox wired(360 and wired), Razr kishi Though I can say that low button controllers likely crash the menu as this logic needs a 16th button to detect triple home button presses to drop back to the menu. https://github.com/linuxserver/emulatorjs/blob/master/frontend/js/index.js#L579 Also are you sure this is Bluetooth and not 2.4 ghz ?
Check the browser console for errors.
Just to be clear when I say to check the browser console for errors those are the errors I need to know what is going wrong.
I am not getting any errors controller related in the console, only thing it seems to be reporting on the controller is when I disconnect it.
I am pretty sure it's Bluetooth, is there an easy-ish way to check? It shows up in device manager on Windows under Bluetooth devices.
The error should be when you are in the game browser if the controller does not work there.
Tried in the game browser, I am not really seeing anything useful there either. I tried connecting/disconnecting the controller, pressing all of the buttons. No response, no logs/errors/warning output other than things that seem ordinary (see below screenshot).
As a note again, the controller is completely non-responsive until I open (F1)->Controls->Port 1 Controls and then select one of the control buttons. Once I am in that menu and press a button all of a sudden, the controller works on other screens but it is going crazy. So it seems like the controller is not even recognized until I go to that screen for whatever reason.
Does this page work for you ? https://hardwaretester.com/gamepad
Yes, below is the mapping: B0 = "A" button B1 = "B" button
B10 = "Select" button B11 = "Start" button
Axis 0 @ -1 = D-pad left Axis 0 @ +1 = D-pad right Axis 1 @ -1 = D-pad up Axis 1 @ +1 = D-pad down
I think I can work with that, i have a lot on my plate right now will take a bit to get you something to test.
@hermetic-charm Can you please test this code?
Exec into the container to replace the file with head:
docker exec emulatorjs sh -c 'curl -L https://raw.githubusercontent.com/linuxserver/emulatorjs/master/frontend/js/index.js -o /emulatorjs/frontend/js/index.js'
Then in your browser use a private window to make sure you don't get any cache and see if the controller works at all in the menu or in game.
Thanks for the work! I am trying it now, definitely getting different behavior but it seems to still not be working.
When the game selection screen loads, the first page, I can choose between SNES or NES. Whichever is selected is repeatedly playing its zoom animation. But if I press the D-pad it does switch between the two, although if I want to select the non-default I have to hold the D-pad down or it reverts to the default selection. There does seem to be some errors here now, they are ever increasing in count, seemingly in sync with the animation starting over:
A/B seem to work too here, as pressing A loads the game selection screen.
On the game selection screen D-pad is still working. Same issue with the animations. Now, when pressing D-pad it does switch between games but now there is an error displayed whenever I do press the D-pad:
A/B seems to work as I am able to select a game.
Once a game is loaded, the D-pad become unresponsive, but it seems like A/B are still working. Start/Select do not appear to work. Trying to open retroarch F1 menu, the controller there is completely unresponsive, but also now mouse and keyboard are also completely unresponsive. No errors at first, but I did notice that when I scroll the mouse wheel in the F1 menu an error shows:
It looks like your controller dpad is registered as n analogue device, I will get a fix in for the up down not working in the menu. The other errors are because you have to click on the page chrome does not see the controller input as interaction it seems anymore.
As for gameplay in retroarch itself you need to set I believe:
Settings, Input, User 1 Binds, set User 1 Analog to Digital Type to Left Analog.
Keep in mind retroarch thinks your dpad is an analogue input.
Run this again this should fix the menu:
docker exec emulatorjs sh -c 'curl -L https://raw.githubusercontent.com/linuxserver/emulatorjs/master/frontend/js/index.js -o /emulatorjs/frontend/js/index.js'
And again I think you need to interact with the page (mouse click into it or keyboard) before you start doing controller stuff or at the very least before trying to launch a game. That last error is from Retroarch itself and I have never seen it though I doubt it is related to a controller.
This one is working a bit better.
Still issues on System/Game selection, if the controller is turned on it constantly switches between the options as if I was rapidly pressing up or down on the d-pad repeatedly.
Once I do load a game A/B works, if I head into options and set Left Analog the D-Pad does start working. "Select" and "Start" buttons do not work at all as far as I can tell.
Additionally, the controller working as described above seems somewhat hit or miss. Sometimes it works right away (after setting Left Analog). Other times it is non-responsive, and I need to turn the controller off and back on again. Sometimes the Retroarch menu scrolls through options infinitely (similiar to System/Game selection screens). Other times, the Retroarch menu completely locked up again (i.e. controller didn't work in the menus but also mouse and keyboard stopped working until I disconnected the controller).
Can you show me a screenshot of what it looks like when you press down or up on your controller from here https://hardwaretester.com/gamepad ?
Pressing nothing:
Pressing up:
Pressing down:
So you see the problem here right?
It's two fold, you have a dead zone registered on the controller that -0.00952
registered with no input (it should be 0). That is fine and we work around that by only registering analog presses of .5 and greater. But you also have these axis 3 and 4 that are permanently pressed. That is not something I believe Retroarch can deal with and I do not want to shim anything in to blacklist in the frontend as it does not fix retroarch and axis 3 is the right analog on all normal controllers and it can be the left analog on many others.
Basically everything should be registered as 0 as seen with my series controller here:
Your only real course of action is to contact 8bitdo, they need to work to get their controller sane in web browsers and participate in its mapping and identification.
Edit: also the start select has to be a trial and error thing, which is made difficult if the menu is going bonkers when you try to select buttons to try from the controller mapping.
I see what you mean here, I will reach out to 8bitdo and start a conversation with them.
This issue has been automatically marked as stale because it has not had recent activity. This might be due to missing feedback from OP. It will be closed if no further activity occurs. Thank you for your contributions.
This issue is locked due to inactivity
Is there an existing issue for this?
Current Behavior
Bluetooth controller is connected but either does nothing or goes "crazy" looping through menus.
Expected Behavior
Bluetooth controller works in both the menus and games.
Steps To Reproduce
Environment
CPU architecture
x86-64
Docker creation
Container logs