|
DCDecomp
A decompilation of Dark Cloud for the PlayStation 2
|
DCDecomp is a work-in-progress decompilation project for Dark Cloud for the PlayStation 2.
This project is targeting the NTSC 1.02 version of the game. Other versions may be considered in the future, though they aren't currently planned.
The build produces the main executable SCUS_971.11 with matching text and data sections and completely matching TITLE.BIN and DUN.BIN overlays. Matching the main executable's symbol/string tables may be explored in future, though this isn't a current priority.
git clone --recurse-submodules https://github.com/Adubbz/DCDecomp.gitDark Cloud (USA).iso, in the rom folder at the root of the project.run.sh.diff.sh <symbol> compares a function against the retail original with objdiff. Symbols are the mangled names the compiler uses.
diff.sh --scratch <symbol> instead creates a decomp.me scratch for the function and prints its URL.
decompile.sh <symbol> runs m2c over a function's reference disassembly and prints C on stdout. It takes the same symbol spellings and optional section as diff.sh:
splat splits the disc images into the assembly the build compares against, driven by the configuration under config/, which is checked in and is what scripts/build/disassemble.py splits against. Each translation unit becomes one segment, so its functions and its constants are written to a single file per unit.
The result is checked in, so the project builds without the disc image. To regenerate it:
Source documentation is available on GitHub Pages.