JSRF-Decompilation/readme.md
KeybadeBlox 8eda56dcdf Change executable section flags to please objiff
objdiff assumes that all symbols in executable memory sections are code,
which led to misbehaviour due to .rdata and .data being marked as
executable in JSRF.  We now set these sections to non-executable in
Ghidra to work around this.
2025-12-21 19:36:09 -05:00

28 lines
1.4 KiB
Markdown

# Jet Set Radio Future North American Standalone Decompilation
A matching decompilation of the Xbox game Jet Set Radio Future.
## Progress
- Delinking progress: 0.008% (205 out of 2574172 bytes in XBE address space)
- Decompilation progress: 100% (3 out of the 3 functions delinked so far)
## 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
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](https://codeberg.org/KeybadeBlox/JSRF-Decompilation/issues)
or join the [JSRF Reverse Engineering Discord](https://discord.gg/kYEm5jz).