Skip to content

An in-progress decompilation of the 1.1 US release of Silent Hill on the Playstation 1.

Notifications You must be signed in to change notification settings

Vatuu/silent-hill-decomp

Repository files navigation

Silent Hill Decompilation Project

An in-progress decompilation of the 1.1 US release of Silent Hill on the Playstation 1.

Progress

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

Total Progress

⚙ SLUS-00707 ⚙
Progress Purpose
Main executable.
Progress Purpose
Psy-Q libraries.
🎮 Game System Overlays 🎮
Click here to expand
🧟‍♂️⚔⚙🎮 BODYPROG.BIN 🎮⚙⚔🧟‍♂️
Progress Purpose
Main game logic.
👨‍💼 B_KONAMI.BIN 👨‍💼
Progress Purpose Note
Boot screen logic. First fully decompiled and matching overlay!
🎞 STREAM.BIN 🎞
Progress Purpose Note
Full motion videos stream logic. Third fully decompiled and matching overlay!
💾 SAVELOAD.BIN 💾
Progress Purpose Note
Save and load screen logic. Fourth fully decompiled and matching overlay!
📜 STF_ROLL.BIN 📜
Progress Purpose Note
Credits roll logic. Second fully decompiled and matching overlay!
🛠 OPTION.BIN 🛠
Progress Purpose Note
Options screen logic. Fifth fully decompiled and matching overlay!
🗺 Game Map Overlays 🗺
Click here to expand
🏙 MAP0 🏙
Progress Location

Nightmare intro sequence in Old Silent Hill.
Cafe in Old Silent Hill.
Bonus unlockable areas in Old Silent Hill.
🏫 MAP1 🏫
Progress Location

School first floor, courtyard, and basement.

School second floor.

School first floor and courtyard in Otherworld.

School second floor and school roof in Otherworld.
Unknown School location, likely in Otherworld.
School boss fight
School first floor and basement after the boss fight.
🏙 MAP2 🏙
Progress Location
Old Silent Hill after finishing the school.
Church
Central Silent Hill
Unknown Location related to Central Silent Hill.
Police station in Central Silent Hill.
🏥 MAP3 🏥
Progress Location
Hospital beginning. Ends after meeting with Kaufmann.
Hospital 1st and basement floors after meeting with Kaufmann.
Green Lion Antique Shop cutscene in the Hospital.

Hospital third and second floor in Otherworld.

Hospital first floor in Otherworld.

Hospital basement in Otherworld.
Hospital first floor after the Otherworld section.
🏙 MAP4 🏙
Progress Location
Unknown
Green Lion Antique Shop in Central Silent Hill and Otherworld.
Central Silent Hill in Otherworld.
Mall and boss fight.
Hospital First Floor Cutscene with Lisa after finding the
altar in the Green Lion Antique Shop and
meeting Lisa again after the mall boss fight.
Central Silent Hill Floatstinger boss fight in Otherworld.
Unknown
🏙🍹 MAP5 🍹🏙

Sewers lower and upper levels.
Silent Hill Resort Area.

Annie's Bar and Indian Runner in Resort Area.
Norman's Motel in Resort Area.
🏙🍹🔥 MAP6 🔥🍹🏙
Silent Hill Resort Area in Otherworld.
Boat at Lakeside Pier.
Lakeside Pier and Lighthouse.


Sewer connecting to Lakeside Amusement Park.

Cybil boss fight and cutscene of Dahlia kidnapping Alessa.
Unknown
❔🏥 MAP7 🏥❔
Progress Location
Hospital first floor in Nowhere and Lisa cutscene.

Unknown Nowever related.

Unknown Unknown parts of Nowhere and parts of the
cutscene when Alessa struggles against
Dahlia.
Final boss fight.

Building (Linux/Windows)

Install build dependencies

The build process has the following package requirements:

  • git
  • build-essential
  • binutils-mips-linux-gnu
  • cpp-mips-linux-gnu
  • python3
  • python3-venv
  • 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 python3-venv bchunk p7zip-full

Clone the repository

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

Place the ROM

You will need to provide your own ROM dump of the NTSC-U 1.1 version of the game, if dumped correctly you should have a .BIN file with the SHA1 hash 34278D31D9B9B12B3B5DB5E45BCBE548991ECBC7 (616,494,480 Bytes / 587 MiB).

After dumping, this BIN file must be placed as rom/image/SLUS-00707.bin in the repo.

Setup Python virtual environment and requirements

Modern Linux distros require a virtual environment to be setup before installing requirements with pip.

You can setup an environment in the repo folder with the following:

python3 -m venv .venv # creates a .venv folder with the environment
source .venv/bin/activate # activates the environment (needs to be run in every new terminal session)
python3 -m pip install -r requirements.txt # installs the project requirements from requirements.txt

Build the code

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:

  • build: Builds the executable and overlays.
  • check: Builds the executable and overlays. After compilation, it compares checksums with the original files.
  • clean-build: Clears the project configuration without deleting files.
  • clean-check: Clears the project configuration without deleting files. After compilation, it compares checksums with the original files.
  • objdiff-config: Generates project configuration for Objdiff.

NOTE: clean-build/clean-check are obligatory if the configuration in the Makefile has been modified when intending to work on different overlays.

Contributing

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.

About

An in-progress decompilation of the 1.1 US release of Silent Hill on the Playstation 1.

Topics

Resources

Stars

Watchers

Forks