XOutput
XOutput copied to clipboard
I have to remap my controller everytime I unplug and replug it
Hello, I just started using this program and it works every well ! However I have a small problem. After mapping my controller, it works fine so I save the configuration. But after I unplug and replug it, it seems like the whole mapping I did is gone. At least that's what it looks like when I go into edit. Am I doing something wrong ? Thanks in advance
After the name of the joystick in brackets there is the code, that the Windows discovers. If those codes are changing if you unplug/replug, then I cannot do too much. If it never changes, then you can check if the settings.json
is saved properly.
Please report back your results.
So I did a bunch of test. First of all, yes the ID between the brackets stays the same and yes the settings file is saving properly. However, when I would close the app and open it back with my controller plugged it would not recognize it.
I then checked the settings.json files manually and saw that the ID of my controller was wrong. It used something else (I think it was the ID of another controller I tested before). I just changed it to the correct ID.
After that, when I restart the app with my controller plugged (or even if I plug it afterwards) it now works ! However, when I unplug and replug my controller with the app running, it doesn't emulate my controller and the mapping window is empty (refer to the image). The ID of my controller does not change when I unplug and replug it. In order to make it work again, I have to restart the app
I am also experiencing this issue which is a deal-breaker for me on my retro emulation PC. I was hoping to leave XOutput running at all times so I could unplug/replug my retro controllers at will and they would just work as XInput controllers. This isn't the case as when you unplug a physical controller driving a virtual one, all the virtual controller mappings go blank as the user illustrated above. If you relaunch XOutput everything works as expected.
Perhaps the app is only able to apply the saved mappings to controllers it detects at launch? With XO running I should be able to reconnect my controller and have it detect that event (or some kinda regular polling/enumeration) and reapply the mappings saved in the JSON.
Thank you for your efforts.
Having the same issue, quite annoying but this is the only program working for my needs, if this could be fixed it would be amazing.
Hi, you can make your settings.json read-only so you can avoid having to remap them. though you still need to restart the program.
the problem seems to stem from the program nuking all mappings related to the device id when the device gets disconnected
Just wanted to throw out a few ideas here. I will fully admit I don't know what all goes on behind the scenes with the XInput API, so these ideas might very well be half correct, or completely wrong.
First off, I would change XOutput to store the controller profiles independent of the actual controller. That would provide two benefits
- When adding a new controller, rather than having to map all the buttons, we could simply choose from a list of existing profiles and associate it with that controller.
- You could also add an option, that if a controller is connected with a device id XOutput doesn't have an existing profile setup for, you could have it automatically associate the last used controller profile with this new controller. Could it be the wrong profile? Well yeah, but I would hazard a guess that for the majority of your users the majority of the time they're using XOutput, it would be the correct profile.
And even if it is wrong, all they would have to do is go in and choose from a list of existing mappings they already setup, rather than having to remap all buttons all over again.
Hi, just wondering if there has been any update to this... I'm having the same issue on version 3.28
This problem is still existent and very annoying with my janky USB cable. Is this issue being checked on?
:bump: Would love a fix
Same problem in 2023, would love a fix
You just need to click "Save configuration" at the bottom to save it.
It's what i do but sometime the setting.json is generated but not all is read/loaded or sometime only partially read/loaded.
Also there is a bug with a controller like the 8bitdo wireless ultimate. Because it can work both in wireless and wired. For Xoutput, it is 2 different controllers. So i need to create 2 profiles. And i can only emulate one at a time, else this create some bug.
If you're not making any changes set the config.json to read-only