An in-progress decompilation of the 1.1 US release of Silent Hill on the Playstation 1.
Due to the limited memory on the PlayStation 1, games often distribute their logic and functionality across different binary overlays. Silent Hill follows this approach by separating core engine code, screen-related code, and map stage event code into many distinct binaries. The main executable (SLUS_007.07
on the 1.1 NTSC release) serves primarily as a memory handler.
Progress bars powered by decomp.dev.
The build process has the following package requirements:
- git
- build-essential
- binutils-mips-linux-gnu
- cpp-mips-linux-gnu
- python3
- bchunk
- 7z
Under a Debian-based distribution (or Windows with a Debian-based WSL2 setup), you can install these with the following commands:
sudo apt update
sudo apt install git build-essential binutils-mips-linux-gnu cpp-mips-linux-gnu python3 bchunk p7zip-full
Clone https://github.com/Vatuu/silent-hill-decomp
to your desired directory. Make sure to clone recursively!
git clone --recursive https://github.com/Vatuu/silent-hill-decomp.git && cd silent-hill-decomp
Run pip3 install -r requirements.txt
You will need to provide your own ROM dump of the game. The required version is Silent Hill NTSC-U 1.1.
If done correctly, you will end up with a .BIN and a .CUE file. These must be placed in the rom/image
folder and renamed to SLUS-00707.bin/.cue, respectively.
SHA1 Hashes:
- .cue:
299D08DCB44E7516F394C3DD5BA40690AE33FD22
84 Bytes - .bin:
34278D31D9B9B12B3B5DB5E45BCBE548991ECBC7
616,494,480 Bytes / 587 MiB
Run make setup
to extract needed assets and code from the binary.
If the setup was successful, run make
to build.
Once the build has finished, a folder named build
will be produced. The output will be inside this.
Additional Make commands:
check
: Builds the executable and overlays. After compilation, it compares checksums with the original files.build-c
: Clears the project configuration without deleting files.build-C
: Clears the project configuration without deleting files. After compilation, it compares checksums with the original files.
NOTE: build-c/build-C
are obligatory if the configuration in the Makefile
has been modified when intending to work on different overlays.
Contributions are welcome. Following our code conventions, feel free to contribute via a pull request or issue and join us in the PS1/PS2 Decompilation Discord server's #silent-hill
channel.