Main Restorations Software Audio/Jukebox/MP3 Everything Else Buy/Sell/Trade
Project Announcements Monitor/Video GroovyMAME Merit/JVL Touchscreen Meet Up Retail Vendors
Driving & Racing Woodworking Software Support Forums Consoles Project Arcade Reviews
Automated Projects Artwork Frontend Support Forums Pinball Forum Discussion Old Boards
Raspberry Pi & Dev Board controls.dat Linux Miscellaneous Arcade Wiki Discussion Old Archives
Lightguns Arcade1Up Try the site in https mode Site News

Unread posts | New Replies | Recent posts | Rules | Chatroom | Wiki | File Repository | RSS | Submit news

  

Author Topic: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput  (Read 88069 times)

0 Members and 6 Guests are viewing this topic.

nugarp

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 308
  • Last login:Yesterday at 02:26:51 am
  • I want to build my own arcade controls!
Re: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput
« Reply #40 on: October 23, 2025, 11:11:30 pm »
Hello, I understand you can use multiple inputs and assign them in Wheel2XInput. I see an example for overriding one GUID with another for say a specific button but here's what I'm trying to accomplish...

I have a TMX racing wheel and the TH8S shifter. I want to map the shifter to currently mapped dpad and paddles on the wheel in the json, not override it, but have both inputs working. How would I code that into the json? I have used the trace app to pull the GUID and button numbers, so just need to know how to inject that info into the json.

Thanks!

Map multiple inputs to the same output, it will work as you want by default as I assume these are digital inputs and not analog that you are making as your targets.

Another way to say this: you can have the same targetButtons or targetDpads for multiple defined inputs.

Eckers569

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:February 16, 2026, 12:41:42 pm
  • I want to build my own arcade controls!
Re: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput
« Reply #41 on: November 09, 2025, 09:24:49 pm »
Hello, I understand you can use multiple inputs and assign them in Wheel2XInput. I see an example for overriding one GUID with another for say a specific button but here's what I'm trying to accomplish...

I have a TMX racing wheel and the TH8S shifter. I want to map the shifter to currently mapped dpad and paddles on the wheel in the json, not override it, but have both inputs working. How would I code that into the json? I have used the trace app to pull the GUID and button numbers, so just need to know how to inject that info into the json.

Thanks!



I think the code for mapping multiple GUIDs to a single button in the earlier reply might be wrong. I couldn't get it to work.

I tried a mixture of that and Copilot and came up with the following which did the trick for me.

Same Gear shifter as yours,  but my wheel is the TS-PC Racer. Pasted the full json so you can see it in context, but at the end of the 'buttons' section I've mapped A,B,X,Y to 0,1,2,3 on my shifter (gear changes in Daytona!). The plus side is the same buttons still work on my wheel.

Program is especially useful for emulating systems like Dreamcast, where the controller has limited buttons so you need to multitask. Crazy Taxi for example uses A and B to navigate menus but are then gear shifts in game - so I wanted wheel shifting to function while also retaining the face buttons for navigation:


{
  "guid": "00000003-044f-0000-89b6-000000000000.1",

  "enableForceFeedback": 1,
  "enableRumble": 0,
  "centeringForce": 50,
  "largeRumbleMagnitude": 80,
  "largeRumblePeriod": 120,
  "smallRumbleMagnitude": 50,
  "smallRumblePeriod": 60,
  "effectDuration": 1000,
  "effectAntiDeadzone": 0,

  "detectControllerReconnects": 1,
  "pollInterval": 16,

  "buttons": [
    {
      "button": 0,
      "targetButtons": [ { "button": "A" } ]
    },
    {
      "button": 1,
      "targetButtons": [ { "button": "B" } ]
    },
    {
      "button": 2,
      "targetButtons": [ { "button": "Y" } ]
    },
    {
      "button": 3,
      "targetButtons": [ { "button": "A" } ]
    },
    {
      "button": 4,
      "targetButtons": [ { "button": "Back" } ]
    },
    {
      "button": 5,
      "targetButtons": [ { "button": "B" } ]
    },
    {
      "button": 8,
      "targetButtons": [ { "button": "Start" } ]
    },
    {
      "button": 9,
      "targetButtons": [ { "button": "X" } ]
    },
    {
      "button": 0,
      "guid": "00000003-044f-0000-60b6-000000000000.1",
      "targetButtons": [
        { "button": "X" }
      ]
     },
     {
      "button": 1,
      "guid": "00000003-044f-0000-60b6-000000000000.1",
      "targetButtons": [
        { "button": "A" }
      ]
     },
     {
      "button": 2,
      "guid": "00000003-044f-0000-60b6-000000000000.1",
      "targetButtons": [
        { "button": "Y" }
      ]
     },
     {
      "button": 3,
      "guid": "00000003-044f-0000-60b6-000000000000.1",
      "targetButtons": [
        { "button": "B" }
      ]
     },
  ],
  "dpads": [
    {
      "dpad": "up",
      "targetDpads": [ { "dpad": "Up" } ]
    },
    {
      "dpad": "right",
      "targetDpads": [ { "dpad": "Right" } ]
    },
    {
      "dpad": "down",
      "targetDpads": [ { "dpad": "Down" } ]
    },
    {
      "dpad": "left",
      "targetDpads": [ { "dpad": "Left" } ]
    }
  ],
  "axes": [
    {
      "axis": 0,
      "config": {
        "inverted": 0
      },
      "targetAxes": [ { "axis": "LeftThumbX", "deadzone": 0, "antiDeadzone": 0, "linearity": -30, "low": -110, "high": 110 } ]
    },
    {
      "axis": 2,
      "config": {
        "inverted": 1
      },
      "targetSliders": [ { "slider": "RightTrigger" } ]
    },
    {
      "axis": 1,
      "config": {
        "inverted": 1
      },
      "targetSliders": [ { "slider": "LeftTrigger" } ]
    }
  ]
}




Great little program by the way Nugarp. Once I've got my head around it looks like it can replace x360ce in a lot of similar user cases.
 

« Last Edit: November 10, 2025, 12:03:09 pm by Eckers569 »

nugarp

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 308
  • Last login:Yesterday at 02:26:51 am
  • I want to build my own arcade controls!
Re: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput
« Reply #42 on: November 09, 2025, 11:22:06 pm »
Great little program by the way Nugarp. Once I've got my head around it looks like it can replace x360ce in a lot of similar user cases.

Cheers. The way you have done it is correct, as you noticed :).

I have a 1.6 beta that will send ffb or rumble to multiple devices, so if anyone needs that, find me on discord. It should also support hotswapping of the config.

Eckers569

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:February 16, 2026, 12:41:42 pm
  • I want to build my own arcade controls!
Re: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput
« Reply #43 on: November 11, 2025, 05:28:46 pm »
Great little program by the way Nugarp. Once I've got my head around it looks like it can replace x360ce in a lot of similar user cases.

Cheers. The way you have done it is correct, as you noticed :).

I have a 1.6 beta that will send ffb or rumble to multiple devices, so if anyone needs that, find me on discord. It should also support hotswapping of the config.


Nice one, thank you. I will check out the discord ASAP.

« Last Edit: November 11, 2025, 05:38:47 pm by Eckers569 »

ark216

  • Trade Count: (0)
  • Full Member
  • ***
  • Offline Offline
  • Posts: 64
  • Last login:December 09, 2025, 07:01:15 am
  • I want to build my own arcade controls!
Re: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput
« Reply #44 on: December 09, 2025, 06:58:37 am »
How does this software differ from x360ce. I would really like to test this out with my G29 but since it does not have GUI and is just code based it looks a bit intimidating. Are there any easy user friendly guides where i can follow? I did check it's README, i found it to be a bit confusing.

Eckers569

  • Trade Count: (0)
  • Jr. Member
  • **
  • Offline Offline
  • Posts: 3
  • Last login:February 16, 2026, 12:41:42 pm
  • I want to build my own arcade controls!
Re: Wheel2XInput, designed for mapping wheel and wheel accessories to XInput
« Reply #45 on: February 16, 2026, 12:40:36 pm »
There’s a lot of cross-over between this and x360ce to be fair. However, for me at least, I got fed up of x360 constantly deleting settings and never really getting to grips with the per game configs. Never had any such problems with W2X.

Another key benefit is not only being able to map multiple devices to single xinput bindings (which you can also do with x360) but then with any of those individual devices also being able to map multiple buttons from them to a single xinput outputs- which you can’t do in x360 (it will clear a binding if you try to map elsewhere on the same device - see my crazy taxi example above). There’s also I believe benefits of being able send FFB to multiple devices which I’ve yet to explore.