diff --git a/readme.md b/readme.md index 38fae01..f909e0e 100644 --- a/readme.md +++ b/readme.md @@ -1,16 +1,27 @@ -# Jet Set Radio Future Decompilation Notes -This is just a public holding space for anything I put together as a part of -the JSRF decompilation effort. +# Jet Set Radio Future NTSC-US Standalone Decompilation +A matching decompilation of the Xbox game Jet Set Radio Future. -## `delink/` -`objects.csv` is a table of suspected object file boundaries for delinking. -The addresses given in each section are runtime memory addresses (as one would -see in e.g. Ghidra). +## Progress +- Delinking progress: 0.008% (205 out of 2574172 bytes in XBE address space) +- Decompilation progress: 100% (6 out of the 6 symbols delinked so far) -`delink.sh` is a script that produces delinked object files in `target/` from a -Ghidra project. +## Roadmap +The approach of this decompilation is to: +1. Delink the JSRF executable (`default.xbe`) into object files, each + representing a single C++ source file +2. Decompile the object files into C++ code that produces matching object files +3. Link the object files into a Windows executable (n.b. this would not be + runnable on Windows) +4. Repackage the Windows executable into a working Xbox executable -## `decompile/` -The `src/` directory contains decompiled code and data. Each symbol is -annotated with its corresponding memory address in the original binary, and -functions are marked as perfectly or imperfectly matching. +We are currently engaging in the first two steps simultaneously, decompiling +code as it's delinked. Further details on these steps can be found in the +[contribution guide](contributing.md). Step 3 will use the linker from the +same Visual C++ 7.0 already used to compile object files. Step 4 is expected +to use the `cxbe` tool found in e.g. [nxdk](https://github.com/XboxDev/nxdk). + +## Contributing +Anybody interested in joining the effort is welcome to read the +[contribution guide](contributing.md). Those looking to get in contact with +other contributors can post to the repository's issue tracker or join the +[JSRF Reverse Engineering Discord](https://discord.gg/kYEm5jz).