About
crystalisdisassembly is a reassemblable disassembly of the NES game Crystalis, targeting the ca65 assembler. Using a Mesen Code/Data Log, PRG-ROM analysis is about 92% complete and CHR-ROM analysis about 88% complete as of the last update. The author states they no longer have time to actively maintain the project and has released it for anyone to use without needing to credit them.
Getting started
To reassemble the ROM, run the included batch file with the assembler tools (ca65.exe and ld65.exe) and all .asm files in the same directory; placing an original copy of the ROM alongside lets the script check for differences against the retail release.
Known limitations
- compatibility: CHR banks do not reassemble due to ambiguous code/data markers in the disassembly.
- compatibility: A single problem instruction at PRG bank 0x8 offset 0x29B7 (BCC #$01) cannot be assembled by ca65 and is emitted as raw bytes.
Additional notes
- Known limitation
- The CHR-ROM banks can't currently be reassembled, because bytes the Code/Data Log flags as ambiguous (both code and data) are treated as raw data; a specific instruction in PRG bank 0x8 also doesn't reassemble correctly with ca65 and is emitted as raw bytes instead.