Controllers Cut Out Briefly in N64 Emulators
-
I'm decent at troubleshooting this kind of thing, but pretty far down the rabbit hole and could use another opinion to make sure I'm not going insane.
I have 4 wired 8BitDo SN30 wired USB controllers. I upgraded to the latest RetroPi version (4.7.1) about a month ago and all underlying OS package updates are all up to date now. Ever since then in both lr-mupen64plus-next and mupen64plus-GLideN64 the controllers will stop working for a few seconds at a time every few minutes or so. The issue usually manifests itself as an analog stick acting like it's stuck to the left or right or stuck in the center no matter where you push it and is common in games where you use the analog stick to steer like F-Zero or Mario Kart. It resolves itself after a few seconds. Here's all the background and some ideas on what I think could be going on, but it would be great if anyone else could suggest any other fixes.
Background
- Raspberry Pi 4B 4Gig with all OS + RetroPi Updates and the latest firmware (there looks to be some USB issue that was fixed with one of the firmware upgrades).
- Nothing overclocked
- Canakit Pi 4 USB C power supply. Nothing else pulling power on the Pi (no fans or * anything). I've tried multiple outlets with and without a power strip.
- Confirmed that all 4 controllers have the latest 8BitDo firmware.
- Swapped in a logic F310 controller and the issue was still there. Tried both direct and x-input modes.
- I've never been able to reproduce this issue from the command line using jstest and have also never seen it in the PSX emulator in games that use the analog sticks.
- The issue becomes more common the more controllers I have plugged in. It rarely happens with a single controller, but is very common with 4 controllers. It will also happen with 4 controllers plugged directly into the pi or using a USB hub (both powered and unpowered hubs). It doesn't matter if I'm playing 1 player or 4 player mode in a game.
- I've tried unplugging individual controllers (maybe one is bad?), but can still reproduce the issue with only 3 controllers plugged in swapping out each potential bad one, one at a time. This happens even when playing these games in single player mode.
- I have a USB keyboard and an Ultimarc IPAC plugged in usually, but even without those plugged in the issue still happens.
- I thought maybe it could be interference between the cables so I very carefully laid them all out to make sure they didn't touch, but that didn't help.
- I've played around with some of the controller options in RGUI related to this and didn't see any improvement.
- The 8Bitdo controllers detect as XBox 360 controllers and the contents of my /opt/retropie/configs/n64/InputAutoCfg.ini file are at https://pastebin.com/mFUzUa0d
- I played around with the AnalogDeadzone and AnalogPeak settings here after verifying them in jstest and it didn't have any affect. They almost don't even seem to affect anything in the emulators as I would expect they would.
- I tried multiple emulators since I was curios if anything from libretro/retroarch config could be messing with this because I believe mupen64plus-GLideN64 shouldn't be using any of that.
Possible Fixes
- The fact that this started happening after software updates and only happens in N64 (not PSX or using jstest) leads me to believe it's a software issue, but the nature of it becoming more common as more USB controllers are plugged in makes me think it could be a hardware issue?
- My experience also tells me it could be some sort of very minor USB power fluctuation issue. I don't know if the issue is specific to the analog sticks (I think I've seen it on the other buttons before, but can't confirm), but given that the analog sticks output a range rather than than on/off they would be most affected by any issues like this.
- Maybe it could be interference between the USB cables or the Pi is bad itself? I was debating throwing ferrite beads on the USB cables (they don't have them on now) and see if that helps with possible interference.
- Maybe it could be something related to the AnalogDeadzone and AnalogPeak settings?
I usually prefer USB controllers, but might throw in the towel and blow the money on bluetooth ones if it would fix it. My setup isn't usually on so they wouldn't be charging though.
Any help or ideas are greatly appreciated!
-
This may be the same issue described in https://retropie.org.uk/forum/topic/29481/controls-randomly-locked-for-1-or-2-secs/10
-
@toigo Solution to this problem is at https://retropie.org.uk/forum/topic/29481/controls-randomly-locked-for-1-or-2-secs/11 (switching to HDMI audio in raspi-config).
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.