Skip to content

Latest commit

 

History

History
executable file
·
667 lines (653 loc) · 24.9 KB

README.md

File metadata and controls

executable file
·
667 lines (653 loc) · 24.9 KB

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.

⚙ 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
Boot screen logic.
🎞 STREAM.BIN 🎞
Progress Purpose
Video stream logic.
💾 SAVELOAD.BIN 💾
Progress Purpose
Save and load screen logic.
📜 STF_ROLL.BIN 📜
Progress Purpose
Credits roll logic.
🛠 OPTION.BIN 🛠
Progress Purpose
Options screen logic.
🗺 Game Map Overlays 🗺
Click here to expand
🏙 MAP0_S00.BIN 🏙
Progress Location
Old Silent Hill.
☕ MAP0_S01.BIN ☕
Progress Location
Cafe in Old Silent Hill.
🏙➕ MAP0_S02.BIN ➕🏙
Progress Location
Bonus unlockable areas in Old Silent Hill.
🏫 MAP1_S00.BIN 🏫
Progress Location
School first floor, courtyard, and basement.
🏫 MAP1_S01.BIN 🏫
Progress Location
School second floor.
🏫 MAP1_S02.BIN 🏫
Progress Location
School first floor and courtyard in Otherworld.
🏫 MAP1_S03.BIN 🏫
Progress Location
School second floor and school roof in Otherworld.
🏫 MAP1_S04.BIN 🏫
Progress Location Note
Unknown School location, likely in Otherworld.
🏫 MAP1_S05.BIN 🏫
Progress Location Note
Unknown School location, likely in Otherworld.
🏫 MAP1_S06.BIN 🏫
Progress Location
School first floor and basement after the boss fight.
🏙 MAP2_S00.BIN 🏙
Progress Location
Old Silent Hill after finishing the school.
⛪ MAP2_S01.BIN ⛪
Progress Location
Church
🏙 MAP2_S02.BIN 🏙
Progress Location
Central Silent Hill
❔ MAP2_S03.BIN ❔
Progress Location Note
Unknown Location related to Central Silent Hill.
👮‍♂️ MAP2_S04.BIN 👮‍♂️
Progress Location
Police station in Central Silent Hill.
🏥 MAP3_S00.BIN 🏥
Progress Location Note
Unknown Hospital, possibly only the reception
and examination rooms but none of
the rooms around them.
🏥 MAP3_S01.BIN 🏥
Progress Location Note
Unknown Hospital, possibly the rest of the first floor
not covered by MAP3_S00.BIN
and the basement.
🏥 MAP3_S02.BIN 🏥
Progress Location Note
Unknown Hospital, the part when Harry goes
in the elevator and it goes dark.
🏥 MAP3_S03.BIN 🏥
Progress Location
Hospital third and second floor in Otherworld.
🏥 MAP3_S04.BIN 🏥
Progress Location
Hospital first floor in Otherworld.
🏥 MAP3_S05.BIN 🏥
Progress Location
Hospital basement in Otherworld.
🏥 MAP3_S06.BIN 🏥
Progress Location
Hospital first floor after the Otherworld section.
❔ MAP4_S00.BIN ❔
Progress Location
Unknown
💍 MAP4_S01.BIN 💍
Progress Location
Green Lion Antique Shop in Old Silent Hill and Otherworld.
❔ MAP4_S02.BIN ❔
Progress Location Note
Unknown Possibly one of the two parts where
Harry goes through Central Silent Hill
in Otherworld.
🛍 MAP4_S03.BIN 🛍
Progress Location
Mall and boss fight.
🏥 MAP4_S04.BIN 🏥
Progress Location Note
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.
❔ MAP4_S05.BIN ❔
Progress Location Note
Unknown Possibly one of the two parts when
Harry goes through Central Silent Hill
in Otherworld.
❔ MAP4_S06.BIN ❔
Progress Location
Unknown
💧 MAP5_S00.BIN 💧
Progress Location
Sewers lower and upper levels.
🏙🍹 MAP5_S01.BIN 🍹🏙
Progress Location
Silent Hill Resort Area.
🍻🏪 MAP5_S02.BIN 🏪🍻
Progress Locations
Annie's Bar and Indian Runner in Resort Area.
🏨 MAP5_S03.BIN 🏨
Progress Location
Norman's Motel in Resort Area.
🏙🍹 MAP6_S00.BIN 🍹🏙
Progress Location
Silent Hill Resort Area in Otherworld.
🛥 MAP6_S01.BIN 🛥
Progress Location
Boat at Lakeside Pier.
🌊 MAP6_S02.BIN 🌊
Progress Location
Lakeside Pier
💧 MAP6_S03.BIN 💧
Progress Location
Sewer connecting to Lakeside Amusement Park.
👮‍♀️🧙‍♀️ MAP6_S04.BIN 🧙‍♀️👮‍♀️
Progress Location
Cybil boss fight and cutscene of Dahlia kidnapping Alessa.
❔ MAP6_S05.BIN ❔
Progress Location
Unknown
🏥 MAP7_S00.BIN 🏥
Progress Location Note
Hospital first floor in Nowhere.
❔ MAP7_S01.BIN ❔
Progress Location Note
Unknown Nowever related.
❔ MAP7_S02.BIN ❔
Progress Location Note
Unknown Unknown parts of Nowhere and parts of the
cutscene when Alessa struggles against
Dahlia.
👿 MAP7_S03.BIN 👿
Progress Location
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
  • 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 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

Install Python3 requirements

Run pip3 install -r requirements.txt

Place the ROM

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

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:

  • 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.

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.