Jump to content
LaunchBox Community Forums

Can’t Correctly Configure ANY controller for Big Box


eAsInEcho

Recommended Posts

Hey, I’ve been working at this for hours and have just run out of ideas. A push in any direction would be so helpful and appreciated. I may already be going about this the wrong way.

My ultimate goal is to get something set up where I can stream my gaming PC to anything. The biggest bottleneck there is having to work with an Apple TV because (as far as I know) the only options there are Steamlink and Moonlight. NVIDIA will soon disable their game stream feature, so I’m not sure Moonlight will continue to be a good choice; though I know there is already Sunshine as a replacement host program. 

Having said that, I’m currently just trying to configure Big Box and all my emulators to work with an SDL controller with gyro and have that controller use a hotkey to exit the game and return to BigBox.

I don’t want to use DSU as to avoid having another variable to worry about running at all times. I’m not trying to use gyro on games not designed for it, but I’m trying to be consistent and use the same controller for everything. I’m not even at the point where I need to worry about layering Steam or a streaming program over this setup. For the following, I don’t have Steam open.

Here’s what I have so far:

Xbox Series S/X Controller (Regular and 8Bitdo Pro 2 on X-Input mode) - Works with all emulators and even works with “Close the Active Window” to close game across different emulators by mapping it to anything like the Xbox home button. The deal breaker here is there’s no Gyro, but at least I know the controller mappings CAN work to exit my games. This was configured using SDL and not Xinput. So, I’m guessing SDL itself isn’t the issue. 

Switch Pro Controller (Regular and 8Bitdo Pro 2 on Switch mode) - Works perfectly, with Gyro, for all emulators.. The ONLY real problem here is that I cannot get Big Box to “Close Active Window” with Controller Mappings. This means I have no way of closing my games with just the controller. I’ve tried mapping it to home, screenshot, start, select and two-button combos of those. It doesn’t matter what the mapping is, Big Box just doesn’t react when using a Switch Pro controller to “Close the Active Window.” The other problem is that I have to press escape on my keyboard to get out of the game, and then click on my mouse to get Big Box to close by saying “Game Over.” Then I can click out of the still running emulation window. At this point, my controller no longer works with Big Box until I turn the controller off and back on.

PS5 Controller - Works perfectly, with Gyro, for all emulators and to control Big Box. The same problem the Switch Pro controller has is also here. Big Box doesn’t recognize controller mappings after starting a game. I mapped “Exit” to R3 and that seems to work as long as I haven’t launched a game yet. As soon as I launch a game, it’s like the emulator takes over the controller and Big Box can no longer engage until the emulator is both turned off and the controller turned off and back on. Same exact behavior as the Switch controllers.

PS4 Controller (Regular and 8Bitdo Pro on DS4 mode) - Acts the same in Big Box as the PS5 and Switch controllers. This one is a little worse because some emulators (Citra) won’t map the controller at all, so this controller seems like a dead end. 

I’ve also tried mapping hot keys in the emulators themselves, but this isn’t ideal or consistent. For example, PCSX2 and Duckstation can “Shut Down Virtual Machine” or go into a pause menu where you can shut down the game, but this just leaves the empty emulator running and you still have to grab a mouse to close it and officially return to Big Box. Other emulators, like CEMU, don’t have any hotkey functionality that I can see. 

I thought about getting some kind of hot key mapping software because I noticed that pressing “Escape” twice in PCSX2 will fully exit and go back to Big Box, but other emulators will only stop running the game but won’t actually close and return to Big Box with “Escape.”

I’ll happily take some kind of workaround, but I’ve been trying to solve this for hours and cannot think of any new ideas or things to try. I just want to use a single controller with gyro, but without having to use the mouse or keyboard at any point. Is there something simple I’m missing or am I just asking too much from this situation?

Any help is truly appreciated. 

Link to comment
Share on other sites

I’ve continued working on this and perhaps made some progress. 

I realized that RetroArch is the one emulator that can use the “Close Active Window” hotkey from Big Box when using a Switch Pro Controller.

Citra, PCSX2, Duckstation, Dolphin, Yuzu and RPCS3 can’t use the hotkey but will cleanly close with alt+F4 AND continue letting me use the controller once it goes back to Big Box. I thought this would be fine because I could map alt+F4 to the controller with joytokey. I tried this, but it seems like once the emulator takes over, then nothing besides the emulator can see the controller. I tab into joytokey while emulation is running and it no longer sees my controller presses until I close the game.

CEMU is a complete holdout. It can close back to Big Box by pressing alt+F4, but the controller cannot be used again until it is turned off and back on. I can alt+tab to get out and back into Big Box, but the controller doesn’t become active again no matter what I press.  It’s like the moment CEMU grabs the controller, nothing else will touch it until its been turned off and back on.

The standalone emulators are getting a death grip on the controller until they’re closed. I suppose there might be a solution in the auto hot key scripts? Auto hot key scripting is completely new to me.

Am I missing something simple and just way over complicating this? I’ve seen a lot of threads with people having similar issues but they’re usually resolved by turning on “Use All Controllers”, using alt-tab (or a script) to set Big Box as the active window again, or just realizing that they want “Close the Active Window” instead of “Exit” as a hot key.

 

Link to comment
Share on other sites

I did not read everything (Sorry was rushing) but I use bigbox with my PC and stream anywhere in the house. (phone, all TV's, firestick) and I exit using back and the x button at the same time. I use a setting in bigbox. I will look and send where exactly but I am using a netflix style theme so I hope they are in the same place for you.

Give me a bit (IF THIS IS WHAT YOUR ASKING) and I will send details.

I use Sunshine with Moonlight to achieve this. 

Link to comment
Share on other sites

"Close Active Window" is the binding in BB you need to set to exit out of a game back to BB. All the emulators you mentioned should work fine without anything special. At least on my cabinets they do.

How "Close Active Window" works is LB/BB will send common exit commands to the emulator. It will try "Esc", "Alt+F4", "Ctrl+F4", and I believe a few others. Some emulators may be picky and you could use an AHK in the "Running Script" tab of the emulator set-up in LB. 

Give this a test: Make sure you have the appropriate buttons mapped for the controller you are going to test with in BB to "Close Active Window" then in LB go to >Tools >Manage >Emulators and edit the emulator. In the "Running Script" tab paste the AHK below and save. Then test the game and see if it makes a difference. This is a simple AHK that has worked for many users. Also make sure the emulator does not have an active setting to "Confirm Exit" or "Confirm on Stop" like some do. 

$Esc::
{
    WinClose, ahk_exe {{{StartupEXE}}}
}

 

Link to comment
Share on other sites

5 hours ago, Retro808 said:

"Close Active Window" is the binding in BB you need to set to exit out of a game back to BB. All the emulators you mentioned should work fine without anything special. At least on my cabinets they do.

How "Close Active Window" works is LB/BB will send common exit commands to the emulator. It will try "Esc", "Alt+F4", "Ctrl+F4", and I believe a few others. Some emulators may be picky and you could use an AHK in the "Running Script" tab of the emulator set-up in LB. 

Give this a test: Make sure you have the appropriate buttons mapped for the controller you are going to test with in BB to "Close Active Window" then in LB go to >Tools >Manage >Emulators and edit the emulator. In the "Running Script" tab paste the AHK below and save. Then test the game and see if it makes a difference. This is a simple AHK that has worked for many users. Also make sure the emulator does not have an active setting to "Confirm Exit" or "Confirm on Stop" like some do. 

$Esc::
{
    WinClose, ahk_exe {{{StartupEXE}}}
}

 

Thank you so much for giving me something to try. I'm definitely using "Close the Active Window" controller mapping in BigBox. I went ahead and used that script in Duckstation as a "Running Script" but ended up with the same results as usual. I can use the Switch Pro controller to navigate Big Box, but then get no reaction from hotkeys after launching an emulator. 

An interesting thing I noticed is with JoyToKey:

It will highlight the key and controller presses to show that mappings are working. If I launch BigBox and tab over, JoytoKey will keep lighting up with my button presses. As soon as I launch an emulator and tab over, Joytokey no longer reacts to my button presses. The emulator still has the controller but Joytokey (and I'm guessing BigBox) can no longer register presses from it. The moment I close the emulator, Joytokey starts lighting up again to the controller buttons being pressed. 

This isn't an issue when using controllers in Xinput mode. If using Xbox controllers, then the hotkey mappings are fine and I can even use Joytokey if I want (no need to at that point) to close the games or show the pause menu. It's just an issue with Switch, PS4 and PS5 controllers. I think those are all Dinput, even though I'm using SDL. I did try setting Duckstation to use Dinput instead of SDL, but that didn't seem to help. 

Link to comment
Share on other sites

  • 8 months later...

I know I'm a little late to the party here, don't know if you ever got further on resolving this, but I have a thread going about a similar issue https://github.com/libretro/RetroArch/blob/master/input/drivers_joypad/sdl_joypad.c#L302. To summarize, if you're running the Dualshock controllers via bluetooth it's probably an issue with your emulators switching them from dinput mode to what SDL calls "enhanced" mode (where you get gyro and other advanced features). Once they've been toggled they don't automatically switch back, so they'll keep working with programs that use SLD (or other drivers with full feature support) but will no longer input to programs expecting dinput/xinput.

There's an open feature request https://bitbucket.org/jasondavidcarr/launchbox/issues/7003/better-switch-pro-controller-support that would likely resolve your issue, so please go upvote it if you're still having this issue.

Edited by MrSunshyne
Added details about open feature request.
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...