Hollow Knight works well on M1 Macs, but if you're trying to play with a Bluetooth controller such as an Xbox controller then you'll most likely find that several buttons simply don't work within the game. Such as: you can't Dash (right trigger) using the controller on your M1 Mac.
The problem
Steam on Mac works just as well as in any other platform, and so do many games such as Hollow Knight. Hollow Knight runs very well on my Macbook Pro M1 but when I was playing with a Xbox controller I noticed I couldn't do certain action. Specifically, after I got the Dash action available to me the game told press RT (right trigger) to dash. And yet. try as I might: it just didn't work.
The cause is a bad set of code in the game that doesn't take into account playing on an M1 Mac which needs devices handled in a specific way. According to the Steam Community discussion (linked below) part of the issue is one (and just one) not properly set settings file that is associated with grabbing and parsing controller data. Woops.
The solution
Thankfully, a really wonderful community member tintingaroo
edited the files, recompiled them and publicaly shared them online for free!
For this to work, it is highly recommended you have Native Controller Input
is set to ON
within the game. In Steam though, I have Xbox controller emulation turned off though, but that's just me.
The short version of the steps are:
- Download the file (I used the 1.5.78 version)
- Replace the file within the game folder
Written out a bit (copied and cleaned up a bit from the community post)
- Download the file (use the links in the community page below, or here is the URL I used to download the file (copied from the community page): https://drive.google.com/drive/folders/1qCktxwFGZ5OkRxc90Uif-pEbOlH-OgX7?usp=sharing
- Navigate to the folder that has the Hollow Knight game file. You can do this by opening Steam on your Mac and right clicking on it (in the left sidebar) and the following the on screen menus to:
Properties > Local Files > Browse
- Right-click hollow_knight(.app) or Hollow Knight(.app) and click
Show Package Contents
(this opens the 'app' folder) - Then navigate through these folders into the final Managed folder:
Contents > Resources > Data > Managed
- There, sorted by name, rename the existing
Assembly-CSharp.dll
to something likeAssembly-CSharp.backup.dll
or whatever (just to make a copy of it 'just in case') - Move that file you downloaded in Step 1 to this
Managed
folder within the game folder
You should now be able to start the game and all the controller buttons should work as expected!