Matching decompilation project for Klonoa 2: Lunatea's Veil NTSC (SLUS_201.51).
Information relevant to reverse engineering and decompiling the game was retrieved from the following sources:
- Debug symbols from the Klonoa 2 executable from Demo Disc 2.3, extracted using ccc. This includes information about functions, structs, classes, local/global variables, and filenames.
- The C# assembly (
Assembly-CSharp.dll) from the Steam release of Klonoa Phantasy Reverie Series. This includes information about functions and structs that were not present in the demo version of the game.
The ee-gcc 2.9-991111-01 compiler (available on decomp.me) seems to produce matching code most of the time, though it is not 100% certain if this was the compiler used to compile the game.
Support the series by purchasing & playing Klonoa Phantasy Reverie Series! :D
This repository does not contain any game assets, thus a legal copy of the game is required for this decompilation to work. Do not request for these files to be provided.
NOTE: This project is in VERY early stages and may fail to build.
- Setup environment:
- Set the
SCESDKenvironment variable to the root of the official PS2 SDK (usually/usr/local/sce). Download links to the SDK will not be provided in this repository.
- Set the
- Clone this repository:
git clone https://github.com/entriphy/kl2_lv_decomp.git cd kl2_lv_decomp - Build the ELF file:
cmake -Bbuild cd build make - The resulting ELF file will be named
kl2_lv_decomp.elf. You can launch it with PCSX2 using the following command:pcsx2 -elf kl2_lv_decomp.elf <disc_image_file>
(todo)
Decompilation Progress Sheet (old)
- kl2_pine: Memory editor/visualizer for Klonoa 2 using PINE
- BinarySerializer.Klonoa: Serializes various file formats from Klonoa 2 (in addition to other Klonoa games)
- klonoa2-tools: KLDATA unpacker and model extractor
- spimdisasm: MIPS disassembler
- m2c: MIPS decompiler
- ghidra-emotionengine-reloaded: Ghidra extension for Playstation 2 executables