Rewrite readme for official decomp repository

I guess this isn't just notes anymore.
This commit is contained in:
KeybadeBlox 2025-12-18 22:36:26 -05:00
parent 5692ee9531
commit 115052d2a5

View file

@ -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).