✶ memory of alessa ✶

Silent Hill 3 (PS2) matching decompilation project

### project goals [![sh3 functions](https://decomp.dev/dreamingmoths/memory-of-alessa.svg?mode=shield&label=sh3+functions&color=%236b4e73&style=flat&measure=matched_functions)](https://decomp.dev/dreamingmoths/memory-of-alessa) [![sh2 functions](https://decomp.dev/dreamingmoths/memory-of-alessa/SLUS_202.28.svg?mode=shield&label=sh2+functions&color=%236b4e73&style=flat&measure=matched_functions)](https://decomp.dev/dreamingmoths/mirror-of-alessa) [![sh3 stages](https://img.shields.io/badge/sh3_stages-15%20/%2040-%236b4e73)](https://decomp.dev/dreamingmoths/memory-of-alessa?category=stages) ⋆˙⟡ 100% byte-matching decompilation of Silent Hill 3, a survival horror masterpiece. ⋆˙⟡ 100% byte-matching decompilation of Silent Hill 2 engine, the foundation for Silent Hill 3. ⋆˙⟡ Learning & documenting the technical history of Team Silent's PS2 engine. 🔴 This project is in early stages. Things are likely to change and may be wrong. ### setup 0. `python3`, `wget`, and essential build packages are prerequisites. 1. Insert the disc of Silent Hill 3 v1.02 (NTSC-U) for the PlayStation 2 into your computer. It has serial number `SLUS_206.22` and its ISO's SHA1 is `0f7b0d5d75fe34ddf72e26aae1b4f5e7891282b0`. 2. Copy the `SLUS_206.22` file as well as `B0.MFA` into the folder at `rom/SLUS_206.22` in this repository. Then proceed below depending on your operating system. #### linux (x86-64) & macOS (aarch64) On first setup, run the following commands in the root directory of this repository. They will set up a virtual environment and install the required Python packages. ```sh python3 -m venv .venv source .venv/bin/activate python3 -m pip install -r requirements.txt ``` Then run `make`. This will download the toolchain, extract files, and build Silent Hill 3. ```sh make ``` #### windows [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) or similar is required. It has been tested by several of our contributors. If you encounter problems feel free to [leave an issue](https://github.com/dreamingmoths/memory-of-alessa/issues), or submit a pull request to improve these instructions. ### more on development See our documentation: ✶ [contributing.md](docs/contributing.md)
✶ [development.md](docs/development.md)
✶ [guidebook.md](docs/guidebook.md)
✶ [style.md](docs/style.md)
✶ [llm-policy.md](docs/llm-policy.md)
### credits Tremendous thanks to the [decompals](https://github.com/decompals) for making this project possible, as well as to each of the following projects below. ✶ [silent-hill-decomp](https://github.com/Vatuu/silent-hill-decomp)
✶ [Himuro](https://github.com/Mikompilation/Himuro)
✶ [mh1j](https://github.com/2Tie/mh1j)
✶ [parappa2](https://github.com/parappadev/parappa2)
✶ [xenogears-decomp](https://github.com/ladysilverberg/xenogears-decomp)
✶ [3s-decomp](https://github.com/crowded-street/3s-decomp)
✶ [rood-reverse](https://github.com/ser-pounce/rood-reverse)
✶ [SPPS](https://github.com/Daniel-McCarthy/SPPS)
✶ [recvx-decomp](https://github.com/fmil95/recvx-decomp)