Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
One user has PS5 controller working (wired not Bluetooth):
https://steamcommunity.com/app/367520/discussions/0/3108025660984901686/?ctp=2#c3085508296751296652
I've read on Feral's site that their port uses SDL. Looking at a file list for the game on Mac, I think you want to edit these files:
File 1
Tomb Raider.app/Contents/Resources/InputDevices/AnalogTriggers/PS4Dualshock.plist
File 2
Tomb Raider.app/Contents/Resources/InputDevices/Digital/PS4Dualshock[Digital].plist
(Another key file could possibly be this one:
Tomb Raider.app/Contents/Resources/inputdevices.json
I think that comes into play if trying to add a new controller mapping.)
I don't have the game downloaded so I don't actually know what the files look like...
To locate the files:
Right-click the game in Steam Library > Properties > Local Files > Browse...
Then right-click on Tomb Raider(.app) > Show Package Contents
Then navigate to those files.
Make a backup copy of them.
Open them with a text editor and see if they contain something like (part in bold may be different):
030000004c050000c405000000010000
If so, overwrite it with:
050000004c050000e60c000000010000
Save changes, and test the game. Test wired & Bluetooth.
If you don't see anything like that, and the 2 files are in text, paste their contents here.
If that doesn't work, make sure steam's built-in ps5 controller support is turned on. If it's already on, turn it off and see if it works that way. (Some games are weird like that)
Lastly if that doesn't work, try @tintingaroo 's method. He is an absolute wizard when it comes to this sort of stuff.
(1)
Go back to version 1.4.3.2.
In Steam Library, right-click Hollow Knight > Properties > Betas > select 1.4.3.2 from the drop-down.
I don't know if you'll find your save to be compatible though & at least one user had black screen issues when going back (some have had it going up :/).
(2)
Try the file I edited.
I added
new InputDeviceMatcher
{
NamePattern = "."
}
to the profile of a DS4 controller. This results in all controllers using the DS4 mapping. I think the DS5 matches the DS4, but if not, as long as the controller results in some action, with trial-and-error we should be able to get to the correct mapping.
In Steam Library, right-click Hollow Knight > Local Files > Browse...
Right-click hollow_knight(.app) > Show Package Contents
Contents > Resources > Data > Managed
Rename Assembly-CSharp.dll to Assembly-CSharp.dll.BAK
Download and paste in the edited Assembly-CSharp.dll: {LINK REMOVED}
(Steam Input shouldn't affect things on an M1, but it's best disabled for HK in this case.)
I used a program called dnSpy, so if you have Windows (I tried a while back to get it to work on a Mac but wasn't successful) and prefer to make the edit yourself, I can show you what I did."
All credit goes to @tintingaroo. He told me all of this and it worked like a charm.
<?xml version="1.0" encoding="050000004c050000e60c000000010000>
<!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>CGPDisplayNameOvr</key>
<string>PS4 Digital</string>
<key>CGPDeviceType</key>
<string>PSDigital</string>
<key>VendorID</key>
<integer>1356</integer>
<key>ProductID</key>
<integer>1476</integer>
<key>LeftAxisX</key>
<string>1:48</string>
<key>LeftAxisY</key>
<string>1:49</string>
<key>LeftTrigger</key>
<string>9:7</string>
<key>RightAxisX</key>
<string>1:50</string>
<key>RightAxisY</key>
<string>1:53</string>
<key>RightTrigger</key>
<string>9:8</string>
<key>ButtonA</key>
<string>9:2</string>
<key>ButtonB</key>
<string>9:3</string>
<key>ButtonX</key>
<string>9:1</string>
<key>ButtonY</key>
<string>9:4</string>
<key>LeftShoulder</key>
<string>9:5</string>
<key>RightShoulder</key>
<string>9:6</string>
<key>LeftThumb</key>
<string>9:11</string>
<key>RightThumb</key>
<string>9:12</string>
<key>ButtonStart</key>
<string>9:10</string>
<key>ButtonBack</key>
<string>9:14</string>
<key>ButtonDevice</key>
<string>0</string>
<key>DPadUp</key>
<string>0</string>
<key>DPadDown</key>
<string>0</string>
<key>DPadLeft</key>
<string>0</string>
<key>DPadRight</key>
<string>0</string>
<key>Hatswitch</key>
<string>1:57</string>
<key>HSValueRest</key>
<integer>8</integer>
<key>HSValueUp</key>
<integer>0</integer>
<key>HSValueUpRight</key>
<integer>1</integer>
<key>HSValueRight</key>
<integer>2</integer>
<key>HSValueDownRight</key>
<integer>3</integer>
<key>HSValueDown</key>
<integer>4</integer>
<key>HSValueDownLeft</key>
<integer>5</integer>
<key>HSValueLeft</key>
<integer>6</integer>
<key>HSValueUpLeft</key>
<integer>7</integer>
<key>XAxisInitValue</key>
<integer>127</integer>
<key>YAxisInitValue</key>
<integer>127</integer>
</dict>
</plist>
Change Product ID from 1476 to 3302, then we see what happens...
(Product ID of a DS4 is 5C4 (or 0x05C4). Convert that hexadecimal to decimal and you get 1476.
DS5 Product ID is CE6, converted to decimal -> 3302.)
You added the encoding variable?
<?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>CGPDisplayNameOvr</key>
<string>PS4 Digital</string>
<key>CGPDeviceType</key>
<string>PSDigital</string>
<key>VendorID</key>
<integer>1356</integer>
<key>ProductID</key>
<integer>3302</integer>
<key>LeftAxisX</key>
<string>1:48</string>
<key>LeftAxisY</key>
<string>1:49</string>
<key>LeftTrigger</key>
<string>9:7</string>
<key>RightAxisX</key>
<string>1:50</string>
<key>RightAxisY</key>
<string>1:53</string>
<key>RightTrigger</key>
<string>9:8</string>
<key>ButtonA</key>
<string>9:2</string>
<key>ButtonB</key>
<string>9:3</string>
<key>ButtonX</key>
<string>9:1</string>
<key>ButtonY</key>
<string>9:4</string>
<key>LeftShoulder</key>
<string>9:5</string>
<key>RightShoulder</key>
<string>9:6</string>
<key>LeftThumb</key>
<string>9:11</string>
<key>RightThumb</key>
<string>9:12</string>
<key>ButtonStart</key>
<string>9:10</string>
<key>ButtonBack</key>
<string>9:14</string>
<key>ButtonDevice</key>
<string>0</string>
<key>DPadUp</key>
<string>0</string>
<key>DPadDown</key>
<string>0</string>
<key>DPadLeft</key>
<string>0</string>
<key>DPadRight</key>
<string>0</string>
<key>Hatswitch</key>
<string>1:57</string>
<key>HSValueRest</key>
<integer>8</integer>
<key>HSValueUp</key>
<integer>0</integer>
<key>HSValueUpRight</key>
<integer>1</integer>
<key>HSValueRight</key>
<integer>2</integer>
<key>HSValueDownRight</key>
<integer>3</integer>
<key>HSValueDown</key>
<integer>4</integer>
<key>HSValueDownLeft</key>
<integer>5</integer>
<key>HSValueLeft</key>
<integer>6</integer>
<key>HSValueUpLeft</key>
<integer>7</integer>
<key>XAxisInitValue</key>
<integer>127</integer>
<key>YAxisInitValue</key>
<integer>127</integer>
</dict>
</plist>