- C++ 45.8%
- Java 31.3%
- C 14.9%
- Shell 4.4%
- Awk 2.3%
- Other 1.3%
I get the feeling we're going to find ourselves in a situation where no order works some day. |
||
|---|---|---|
| decompile | ||
| documentation | ||
| ghidra | ||
| .gitignore | ||
| readme.md | ||
Jet Set Radio Future North American Standalone Decompilation
A matching decompilation of the Xbox game Jet Set Radio Future.
Progress
- Delinking progress: 2.28% (58898 out of 2574172 bytes in XBE address space)
- Decompilation progress: 15.24% fuzzy match of bytes delinked so far, 0.34% of whole XBE
Roadmap
The approach of this decompilation is to:
- Delink the JSRF executable (
default.xbe) into object files, each representing a single C++ source file - Decompile the object files into C++ code that produces matching object files
- Link the object files into a Windows executable (n.b. this would not be runnable on Windows)
- 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. Step 3 uses the linker
from the same Visual C++ 7.0 already used to compile object files. Step 4 uses
the cxbe tool found in e.g. nxdk.
Contributing
Anybody interested in joining the effort is welcome to read the contribution guide. Those looking to get in contact with other contributors can post to the repository's issue tracker or join the JSRF Reverse Engineering Discord.
Use of Language Models
Please be aware that the use of large language models ("LLMs," or "generative AI" more generally) is disallowed from this repository. This policy aims to favour developing long-term expertise and trust in contributors (see the concept of "Contributor Poker") while maintaining good will with those among potential contributors and the public that have come to associate "vibecoded" with poor quality or object to its use on ethical grounds.
Forking this repository is of course allowed for any reason, but if you do so to unleash an agent upon it, please do not attempt to merge the results upstream, as the merge request will not be accepted.