Skip to content

countgitmick/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, some screen-related code, and map stage logic code into many distinct binaries. The main executable (SLUS_007.07 on the 1.1 NTSC release) serves primarily as a memory handler.

What does the decompilation percentage mean? (click to expand)

The percentage tracks how much of the game's compiled code has been matched, meaning we've written C code that compiles to an output identical to the original assembly code.

Reaching 100% means every function in the game is accounted for, but that's only the end of the first phase, not the project as a whole.

There's still a lot of work ahead:

  • Deobfuscation & naming: many functions and variables still have generated names like func_80241A30. We'll need to figure out the actual purposes of these and name them meaningfully.
  • Data migration: raw binary data needs to be parsed into proper C structs so the data can be made understandable.
  • Shiftability: making the build not rely on hardcoded memory addresses so that code and data can be modified without breaking everything.
  • Documentation: understanding and documenting how the game's systems work together to aid in mods and future projects.

100% will be a milestone worth celebrating, but there's still plenty left to do!

Total Progress

⚙ SLUS-00707 ⚙
Progress Purpose
Main executable.
🧟‍♂️⚔⚙🎮 BODYPROG.BIN 🎮⚙⚔🧟‍♂️
Progress Purpose
Main game logic.
🎮 Game Screen Overlays 🎮
Progress Purpose
Unique game screens.
Click here to expand
👨‍💼 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 🗺
Progress Purpose

42/43 matched.
Map and character code.
Click here to expand
🏙 MAP0 🏙
Progress Location
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.
Unused (Click here for more information) First fully decompiled and matching
map overlay!
School boss fight.
School first floor and basement after the boss fight.
🏙 MAP2 🏙
Progress Location
Old Silent Hill.
Church. Third fully decompiled and matching
map overlay!
Central Silent Hill.
Unused (Click here for more information) Second fully decompiled and matching
map overlay!
Police station in Central Silent Hill. Fourth fully decompiled and matching
map overlay!
🏥 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
Unused (Click here for more information)
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.
Unused (Click here for more information)
🏙🍹 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.
Unused (Click here for more information) Fifth fully decompiled and matching overlay!
❔🏥 MAP7 🏥❔
Progress Location
Hospital first floor in Nowhere and Lisa cutscene.
Unknown Unknown parts of Nowhere.
Unknown Unknown parts of Nowhere, contains the
cutscene where Alessa struggles against
Dahlia.
Final boss fight.
Progress bars powered by decomp.dev

Contributing

Contributions are welcome! Feel free to open a pull request. To help familiarize yourself with the setup and decompilation workflow for Silent Hill, refer to our Wiki Page.

You can also reach out to us by opening an issue or joining the #silent-hill channel on the PS1/PS2 Decompilation Discord server.

About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • C 90.7%
  • C++ 4.8%
  • Python 2.3%
  • BitBake 1.7%
  • Makefile 0.3%
  • Shell 0.1%
  • Other 0.1%