Subnautica

Subnautica

View Stats:
alpha_9er Jun 12, 2022 @ 1:42pm
Complete swap of A and B on controller
Edit: I marked an answer, but there's a bit more to it:
1) I also proactively installed HIDHide. This may not be necessary, but it seemed like a good idea.
2) The D-Pad wouldn't work when mapped as a D-Pad (aka "Hat") so I used another option to map each direction as a button.

TL;DR is there any way to *completely* swap the behaviour of A and B buttons on a controller?

I have a Logitech F310 controller. It has Xbox layout X Y A & B buttons. But because I'm used to Nintendo button layout, I initially changed the controller settings to use A for "Exit/Holster" and B for "Left Hand/Use". Unfortunately, this still leaves the A button acting as "confirm" and B button acting as "cancel/back" in many contexts, which effectively negates the value of remapping them like this.

So I tried changing the controller to DirectInput mode so I could remap the buttons with the Logitech software. However, in this mode Subnautica misinterprets right stick input: Y-axis input is interpreted as X-axis input and X-axis input does nothing. The only workaround is to map the right stick to mouse input, but that has its own drawbacks.

I'd actually prefer to use the controller in DirectInput mode so I can use the "Shift" feature for more input options, but in lieu of that I'd like to know if there's a way to completely swap A and B when the controller is in XInput mode. Thanks.
Last edited by alpha_9er; Jun 20, 2022 @ 1:38am
Originally posted by XceptOne:
First, look at Steams' settings for controllers. It might actually be able to do that by now.

If not, this might be a bit overkill, but the combination of 'vJoy' and 'Joystick Gremlin' should do the trick. It's meant for use with joysticks, but there shouldn't be much difference between them on a device level.

vJoy creates virtual gaming input devices, which Windows will handle like any physical device you connected yourself. You would simply create a device with the same amount of axis and buttons as your physical controller.

Joystick Gremlin maps input from physical devices onto vJoy created virtual devices. It can also do all kinds of tranformations on the way. Like introducing secondary layers by holding/tapping a modifier button, switch between different button configurations, change axis-parameters and a lot more.
While the tool is quite powerful and comlex, doing things like swapping a button is relatively easy. You will basically decide for each physical button which button on the virtual device gets activated and be done with it.

Read the documentations for both programs carefully (only as far as you need).
You might also need a third program to hide your phyical controller from the game in order for everything to work correctly. Some games just don't handle controllers and sticks well or simply refuse to let you choose which device they should use.
In case you need this, one of the documentations (probably Joystick Gremlin) will detail your options.

There are definitely easier options out there, but I don't actually know about the, as I was orinally searching for something that does the more advanced stuff that Joystick Gremlin provides (You could try one of the programs it mentions on its' frontpage, like autohotkey).

https://whitemagic.github.io/JoystickGremlin/
< >
Showing 1-9 of 9 comments
Cheboygan Jun 13, 2022 @ 8:08am 
Have you tried connecting a nintendo controller instead? There is some software to connect joycons, but it can be a bit janky at time. It sounds like you're at the point where janky is okay
alpha_9er Jun 16, 2022 @ 2:10pm 
I don't actually have a Nintendo controller. At least, not one that could be connected to a PC.
The author of this thread has indicated that this post answers the original topic.
XceptOne Jun 16, 2022 @ 5:01pm 
First, look at Steams' settings for controllers. It might actually be able to do that by now.

If not, this might be a bit overkill, but the combination of 'vJoy' and 'Joystick Gremlin' should do the trick. It's meant for use with joysticks, but there shouldn't be much difference between them on a device level.

vJoy creates virtual gaming input devices, which Windows will handle like any physical device you connected yourself. You would simply create a device with the same amount of axis and buttons as your physical controller.

Joystick Gremlin maps input from physical devices onto vJoy created virtual devices. It can also do all kinds of tranformations on the way. Like introducing secondary layers by holding/tapping a modifier button, switch between different button configurations, change axis-parameters and a lot more.
While the tool is quite powerful and comlex, doing things like swapping a button is relatively easy. You will basically decide for each physical button which button on the virtual device gets activated and be done with it.

Read the documentations for both programs carefully (only as far as you need).
You might also need a third program to hide your phyical controller from the game in order for everything to work correctly. Some games just don't handle controllers and sticks well or simply refuse to let you choose which device they should use.
In case you need this, one of the documentations (probably Joystick Gremlin) will detail your options.

There are definitely easier options out there, but I don't actually know about the, as I was orinally searching for something that does the more advanced stuff that Joystick Gremlin provides (You could try one of the programs it mentions on its' frontpage, like autohotkey).

https://whitemagic.github.io/JoystickGremlin/
alpha_9er Jun 19, 2022 @ 12:30pm 
Originally posted by XceptOne:
snip

I'm not be able to really look into this ATM, but I still wanted to say thanks for the detailed response.
seven Jun 19, 2022 @ 2:26pm 
The above method with Joystick Gremlin etc would work, but it is really simple to do with software you may already have. I have an F310 also, and use "Logitech Profiler" from Logitech to make custom mappings. I've never found good documentation about how to use it, but to swap A and B you would create a new profile for the Raft game, then assign a New Command to A, click Record and hit the B button. Then do a new command for B, hitting the A button. It took longer to type this than it did to set it up.

Edit: and by Raft I mean Subnautica. Forgot what forum I was in. Oops.
Last edited by seven; Jun 19, 2022 @ 2:31pm
alpha_9er Jun 19, 2022 @ 3:00pm 
Originally posted by seven:
snip

Thanks, this is really good to know. I tried the record method when I first used the software, but it seemed weird so I pretty much ignored it from then on. Kind of like the built-in help.

Unfortunately due to the issue with the right-stick, this isn't really workable in this case. I'm not sure if I've ever left the right-stick as right-stick for any other game though, so I can't say for sure if this is a Subnautica bug or something deeper.
Last edited by alpha_9er; Jun 19, 2022 @ 3:14pm
seven Jun 19, 2022 @ 3:12pm 
Oh, right, Profiler only works in DirectInput mode. Sorry, I didn't think of that. Maybe remap the axes too? Gremlin should work. I use it to bind dual joysticks together. It's got a bit of a learning curve and is probably overkill as Xceptone says, but if nothing else works...
alpha_9er Jun 19, 2022 @ 3:16pm 
Originally posted by seven:
Oh, right, Profiler only works in DirectInput mode. Sorry, I didn't think of that. Maybe remap the axes too? Gremlin should work. I use it to bind dual joysticks together. It's got a bit of a learning curve and is probably overkill as Xceptone says, but if nothing else works...

Unfortunately, DirectInput mode has its own suite of issues. I've used it effectively when I had to remap the entire controller to kbd/mouse input. But it seems to be an epic failure when you still want it to be a controller.

I tried this (just the swap) with another game and it was even worse. Both sticks had issues, buttons at default did different things, and to top it all off, the remapping didn't even work. :/
alpha_9er Jun 20, 2022 @ 1:33am 
Originally posted by XceptOne:
snip

I eventually managed to get vJoy+JG (plus HIDHide) set up and configured with A/B swap. However, I could not get the D-Pad to work at all when remapped as a D-Pad (aka "Hat"). According to JG docs, the vJoy must be configured with 4 D-Pads, so I did try assigning the physical D-Pad to each one. Eventually I used another feature to make each direction behave like a button.
< >
Showing 1-9 of 9 comments
Per page: 1530 50

Date Posted: Jun 12, 2022 @ 1:42pm
Posts: 9