mirror of
https://github.com/Xeeynamo/sotn-decomp.git
synced 2024-11-27 06:50:35 +00:00
1.9 KiB
1.9 KiB
Castlevania: Symphony of the Night disassembly
Recompilable code that creates 1:1 binaries for the commercial videogame Castlevania: Symphony of the Night for the PlayStation 1. This repository aims to create a full decompilation in C.
Game revision
SHA-1 checksum | File name | Version | Progress |
---|---|---|---|
54828d4e44ea9575f2a0917ff63def42a304abff |
main.exe | SLUS-00067 | N/A |
2eac5f7162e77416166c2511c787995488f01c37 |
DRA.BIN | SLUS-00067 |
Build
- You need
gcc-mipsel-linux-gnu
that you can easily install on any Debian-based Linux distribution. On Windows it is highly recommended to just use Ubuntu with WSL - Place your
main.exe
from the fileSLUS_000.67
andDRA.BIN
in the root directory - Run
make extract
to generate the assembly files - Run
make all
to compile the binaries into thebuild/
directory
Non-matching build
Some of the functions that do not fully match the original game can be compiled by defining #define NON_MATCHING
on a header file or by passing `-DNON_MATCHING to the compiler. In theory they might be logically equivalent in-game, but I cannot promise that. Few of them could match by tuning or changing the compiler.
Notes
- I suspect that GCC 2.7.2 / PSY-Q 3.6 have been used to originally compile
DRA.BIN
main.exe
uses PS-X libraries that might've been created with a different compiler and with-O1
rather than-O2
To do
The project is very barebone at the moment and there is a massive room of improvement, mostly in the infrastructure:
- The zone overlays (
ST/{ZONE}/{ZONE}.BIN
) are not yet disassembled - There is no CI/CD pipeline to test the correctness of the compiled code