Decompilation project for North American standalone release of Jet Set Radio Future
  • C++ 45.8%
  • Java 31.3%
  • C 14.9%
  • Shell 4.4%
  • Awk 2.3%
  • Other 1.3%
Find a file
KeybadeBlox 4a1a1f20bb Fix header order in make_header.sh
I get the feeling we're going to find ourselves in a situation where no
order works some day.
2026-06-19 19:57:03 -04:00
decompile Add symbols for SaveData jump tables 2026-06-10 22:38:14 -04:00
documentation Automate decompilation progress tracking 2026-06-06 10:07:58 -04:00
ghidra Fix header order in make_header.sh 2026-06-19 19:57:03 -04:00
.gitignore Complete basic build process 2026-02-14 23:05:32 -05:00
readme.md Update decompilation progress 2026-06-10 22:40:33 -04:00

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:

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