Simple Linux guide for TCode devices

I realized there isn’t much info out there on how to get TCode (such as the OSR) devices working well on Linux, so here’s my attempt at creating a basic guide that should help people just starting out.

  1. Connecting the device
    First off, connect your device to your computer like normal. If you’d like to know more about your device like the baud rate, the command stty is what you should use. For example, if you wanted to read the info of a serial device, you’d use the command stty < /dev/ttyX, with X being USB0, USB1, S0 or whatever else your device is registered as.

  2. Setting up the software
    To my knowledge there’s only three applications that support Linux natively, and that’s Open Funscripter, XTPlayer and Intiface - all three are amazing apps so you shouldn’t need to use anything else, and if you do, it’s possible they’d work through WINE.

  • To get XTPlayer working, you only need to connect your device to your computer and it should be autodetected, BUT, unless you want to run the app as sudo everytime, you should add yourself to the dialout group. To do so, issue the command usermod -a -G dialout user (replace “user” with your own username), you’ll need to log out and back in again for the change to apply.
  • For Open Funscripter, you may need to install mpv-libs for it to launch
  • For Intiface, you’ll want to run the app once, then head to /home/user/.local/share/intiface_central/config and edit the file buttplug-device-config.json - search for this block of code:
"tcode-v03": {
      "serial": [
        {
          "port": "COM0",
          "baud-rate": 115200,
          "data-bits": 8,
          "parity": "N",
          "stop-bits": 1
        } 
  • Both the port and baud rate need to be changed in order for Intiface to properly detect your device. As mentioned earlier, you can issue the command stty < /dev/ttyUSB0 to find the baud rate.
    Once you have the required info, change out the port and baud entries to look like this:
"tcode-v03": {
      "serial": [
        {
          "port": "/dev/ttyUSB0",
          "baud-rate": 9600,
          "data-bits": 8,
          "parity": "N",
          "stop-bits": 1
        }
  • Intiface should now be able to read and detect your device without issue.

  • Webapps should also work without any issue.

  1. Running other software via WINE
    So long as you’re in the dialout group, WINE should auto detect your serial devices and register them as COM entries (1-32), ttyUSB0 will equal COM32, USB1 would be COM31 and so on. I wont get into how to setup WINE, there’s a lot of other guides for that, and I’ve personally had some bad luck getting things related to this to run. That said, I’ve gotten two different games to work, both required .NET 6 to be installed.

I’m sure that as time goes on more and more things will start to work, and hopefully in the future developers will care more about having their games/apps work on Linux/Steam Deck/ChromeOS/Deckard as more people become interested in and start using Linux.

If you’d like any help with something Linux specific feel free to ask here, and if you have any suggestions for the guide let me know and I’ll add them in (:

6 Likes