Jonathan Peck

Ph.D. student, Ghent University
jonathan.peck@ugent.be

How to get Silent Hill 2 working on Linux

Silent Hill 2 is over 20 years old at this point, yet it still remains the only videogame worth playing. Similarly, Linux remains the only operating system worth running. So, naturally, we ask ourselves: how do we get Silent Hill 2 working on Linux?
Published: Thursday, July 8, 2021
« Back

Silent Hill 2 (SH2) is a survival horror game originally published in 2001 by Konami for the Playstation 2. It is generally considered to be one of the best games of the genre, and so one would expect that a publisher such as Konami would treat this game with the care and respect that it deserves. Unfortunately, Konami is run by a bunch of incompetent fools, and they have been completely neglecting the classic SH games for years now. Not only did we never get a satisfactory HD remaster of the original games,1 there does not appear to be any official way to even obtain the original games legally anymore. On top of that, the PC ports of the games were widely considered to be vastly inferior to the Playstation versions, and there was never a version released for Linux.

I was recently tempted to replay SH2, only to realize that the original PC port of the game doesn’t work smoothly on Wine. Moreover, the original looks like trash on modern high-resolution monitors, so this begs the question: how do I get SH2 to work in high definition on a modern Linux computer? It’s easy if you know what to do:

1. Download the original game. It is publicly available on My Abandonware. There’s no need to download any of the additional files they give you (not even the no-CD patch); just the original game will suffice.
2. Follow the steps outlined in the enhancement guide. This will allow you to play the community-made updated SH2 game, with upscaled textures, widescreen FMV, etc. The guide is braindead-easy to follow: it just involves copying a bunch of files to the folder where you installed the game.

This gets you all the necessary files in order to play the modern enhanced version of SH2. There’s just one problem: it doesn’t work on Linux. If you run wine sh2pc.exe, you’ll notice nothing is different from the original: everything is still low-res and the game is full of glitches caused by incompatabilities with modern systems. This is ostensibly because the load order of DLLs is different for Wine than it is for the actual Windows OS, and the enhanced edition of SH2 cannot function without its own d3d8.dll. The fix to this problem is due to jcplemons and involves a few additional simple steps:

1. Via winecfg, override d3d8 to “(native, builtin)". This will cause Wine to try to load the native version of this DLL first, only resorting to the system built-in when no native version can be found.
2. Even with the DLL fix in place, however, it is possible the enhanced edition will still be incredibly laggy. To fix this, install dxvk or d9vk via winetricks.

Now you should be able to run the SH2 enhanced edition via Wine. Just navigate to the installation folder and run wine sh2pc.exe. There are still some minor problems to watch out for that I wasn’t able to fix, however:

• There’s an obnoxious white flashing effect in some screen transitions, such as opening the inventory or going through doors. It’s a minor inconvenience.
• The game can sometimes hang right before certain cutscenes. The solution here is to save regularly, as this bug usually doesn’t repeat in the same spot after a reload. The long stretch between the first boss fight and Brookhaven hospital is especially dangerous, as I’ve had the game freeze on three separate occasions during that part (the cutscene in the stairway hall with Pyramid Head, the cutscene with Laura after that and the cutscene with Maria in Rosewater Park) and there are no save points available. Save from the menu if need be.

All in all, the game runs pretty well and it looks and sounds fantastic. It’s what the official HD remake should have been.

1. The offensive turd that is the official Silent Hill HD Collection emphatically does not count. ↩︎