MacOS – Successor for 360Controller to support wired XBox One Controller

big surdrivermacos

I know, there's native support in Big Sur for bluetooth connected XBox One Controllers. However, two games published for MacOS by Feral Interactive (Thief and Deus Ex: Mankind Devided) required the controller to be connected with a cable. However, the only driver I found namend 360Controller does not support Big Sur and the developer won't continue work with that software.

https://github.com/360Controller/360Controller/issues/1128#issuecomment-736584705

Is there another way to connect my controller (with or without cable) to play both games?

Best Answer

I created a modified .plist-file for the games which worked like a charm.

The file needs to be put in

Steam/steamapps/common/$Game/$Game.app/Contents/Resources/InputDevices/Digital/

With the following content.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CGPDeviceCategory</key>
    <string>GamePad</string>
    <key>CGPDeviceType</key>
    <string>Standard</string>
    <key>CGPDeviceImageType</key>
    <string>Xbox</string>
    <key>CGPDisplayNameOvr</key>
    <string>Xbox One Controller</string>
    <key>VendorID</key>
    <integer>1118</integer>
    <key>ProductID</key>
    <integer>765</integer>
    <key>LeftAxisX</key>
    <string>1:48</string>
    <key>LeftAxisX-Min</key>
    <string>0</string>
    <key>LeftAxisX-Max</key>
    <string>65535</string>
    <key>LeftAxisY</key>
    <string>1:49</string>
    <key>LeftAxisY-Min</key>
    <string>0</string>
    <key>LeftAxisY-Max</key>
    <string>65535</string>
    <key>LeftTrigger</key>
    <string>2:197</string>
    <key>LeftTrigger-Min</key>
    <string>0</string>
    <key>LeftTrigger-Max</key>
    <string>1023</string>
    <key>RightAxisX</key>
    <string>1:50</string>
    <key>RightAxisX-Min</key>
    <string>0</string>
    <key>RightAxisX-Max</key>
    <string>65535</string>
    <key>RightAxisY</key>
    <string>1:53</string>
    <key>RightAxisY-Min</key>
    <string>0</string>
    <key>RightAxisY-Max</key>
    <string>65535</string>
    <key>RightTrigger</key>
    <string>2:196</string>
    <key>RightTrigger-Min</key>
    <string>0</string>
    <key>RightTrigger-Max</key>
    <string>1023</string>
    <key>Hatswitch</key>
    <string>1:57</string>
    <key>HSValueRest</key>
    <integer>0</integer>
    <key>HSValueUp</key>
    <integer>1</integer>
    <key>HSValueUpRight</key>
    <integer>2</integer>
    <key>HSValueRight</key>
    <integer>3</integer>
    <key>HSValueDownRight</key>
    <integer>4</integer>
    <key>HSValueDown</key>
    <integer>5</integer>
    <key>HSValueDownLeft</key>
    <integer>6</integer>
    <key>HSValueLeft</key>
    <integer>7</integer>
    <key>HSValueUpLeft</key>
    <integer>8</integer>
    <key>ButtonDevice</key>
    <string>1:133</string>
    <key>ButtonA</key>
    <string>9:1</string>
    <key>ButtonB</key>
    <string>9:2</string>
    <key>ButtonX</key>
    <string>9:4</string>
    <key>ButtonY</key>
    <string>9:5</string>
    <key>LeftShoulder</key>
    <string>9:7</string>
    <key>RightShoulder</key>
    <string>9:8</string>
    <key>ButtonBack</key>
    <string>12:548</string>
    <key>ButtonStart</key>
    <string>9:12</string>
    <key>LeftThumb</key>
    <string>9:14</string>
    <key>RightThumb</key>
    <string>9:15</string>
</dict>
</plist>