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.
- Clone the repository with
git clone --recurse-submodules https://github.com/Adubbz/DCDecomp.git - Place the NTSC 1.02 disc image, named
Dark Cloud (USA).iso, in theromfolder at the root of the project. - Run
run.sh.
diff.sh <symbol> compares a function against the retail original with
objdiff. Symbols are
the mangled names the compiler uses.
diff.sh SetDay__9CSaveDataFi # the main executable
diff.sh Load__7CScriptFPCc # an overlay -- found on its own
diff.sh dun GameInit__Fv # ...named explicitly
diff.sh SetDay__9CSaveDataFi -o - --format json # one-shot, machine-readable
diff.sh --scratch <symbol> instead creates a
decomp.me scratch for the function and prints its URL.
diff.sh --scratch SetDay__9CSaveDataFi
diff.sh --scratch title Se__7CSpriteFv
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:
decompile.sh SetDay__9CSaveDataFi # found on its own
decompile.sh title Se__7CSpriteFv # ...or name the overlay
decompile.sh DataLoad__Fv --stack-structs # extra flags go to m2c