Problem with controller port assignment (auto-incrementation)



I’m using an 8 Bitdo SFC30 bluetooth controller. When I start Retroarch the controller is assigned to port #0. Sometimes I get interrupted (e.g. answer the phone, go to the bathroom, drawing a map etc.). When I return to the game the controller has turned itself off to save energy.

When I turn it back on, Retroarch assigns port#1 this time (not #0 as before). This is unfavorable because I cannot control the game anymore. Everytime when I turn it off and on, the port number is increased by 1.

The only way that I have found to fix this is forcing a shutdown and start Retroarch again. Unfortunately my progress in the game is then lost. And it’s an annoying procedure.

Is it possible to configure Retroarch so, that the controller is always assigned to port #0 without the auto incrementation of the port-number?


A better question is what is Retroarch assigning to port 0 when your controller goes to sleep. I would start Retroarch without your 8bitdo connected and see what Retroarch says at the bottom left of the screen what it’s assigning to port 0.


I am using an Amazon Fire TV stick. I can start Retroarch with the Fire TV Remote. When I do this, Retroarch shows “Amazon Fire TV Remote configured” (not mentioning any port #) in the bottom left corner once a button is pressed. When I start Retroarch with the 8BitDo-Controller it shows “BitDo SFC30 Gamepad(START) configured in port#0”.

But I doubt that this has something to do with the Fire Remote. I have the same behavior on the Fire tablet. I can start Retroarch there with the touchscreen and everytime when I turn the 8BitDo off and on the port number is increased by 1.

For example: When I turn the 8BitDo 5 times off and on it is assigned to port#5 eventually. And I don’t think that anything is assigned to ports#0-#4 after that.


I’ve been looking around the net on the 8bitdo controllers and it seems to be sort of a common complaint that they have to be re paired often when they are shut off or have gone to sleep with some devices. It may have to do more with the fire stick’s bluetooth paring than Retroarch. The only other thing that could possibly fix your situation is to see if there’s a way to disable the controller from entering sleep mode. I coudn’t find anyone who was able to do that though.


I just tried this on my Gen 1 stick. I have the remote and an 8bitdo N30, I was playing RA, switched to menu and came back to RetroArch and my 8bitdo was mapped to port #0 again. I can reproduce this is shutting off my gamepad and turning it on while on RA, but then again, task switching restores it properly. This is a long standing issue, we don’t have a disconnect event on android, but as I said switching back and forth to another app fixes the problem entirely.

The fire remote always maps to port 0 as intended.


@radius: This is a good idea.

@OldsXCool: I don’t think there is a way to turn off sleep mode. I have several 8Bitdo controllers (like them). The SFC30 and FC30 turn off after 15 minutes- the 8BitdoZero turns off after 5 minutes of inactivity

I do it this way now:

When the controller turns off while in Retroarch I go back to the Home-Menu of the Fire TV stick, turn the 8Bitdo on again and then choose the Retroarch Icon which brings me back to where I was with the controller mapped to port#0 again. That’s essentially what @radius has suggested. Works good.

This was not exactly the solution that I was hoping for but I can live with it.

Addendum: When I think of it, I believe that the port incrementation is intentionally done in Retroarch so that you can easy set up multi player sessions. The first person that turns his/her controller on is mapped to port#0 (=Player 1), the second person is mapped to port#1 (=Player 2), the third person is #2 (=Player 3) etc. This makes perfect sense as long as noboby turns the controller off or the battery runs out

Thanks for your help.


Did u ever find a way to turn off this feature of retroarch besides exiting and returning? I’m having the same issue.


Sorry, no.

When the controller turns itself off, I always switch to the home menu of the device (in my case a FireTV stick), turn the controller on again and then choose RetroArch again. Since RetroArch is already in memory and still running in the background, I always get exactly to the point in the game where I was.

There’s no need to force shut down RetroArch.