Decompilation project for North American standalone release of Jet Set Radio Future
  • C++ 63.2%
  • Java 22.3%
  • C 10.4%
  • Shell 2.2%
  • Awk 1.2%
  • Other 0.7%
Find a file
KeybadeBlox e05102e990 Add (correct) jump table and analysis to listing
This re-adds symbols that had previously been modified to satisfy
objdiff separating jump tables to restore the original delinking
behaviour of merging them with their functions, as objdiff 3.8.2 also
now merges them.

Some other symbols, mostly library function matches, were added by
accidentally rerunning analyzers.  Some spurious references were also
removed (mostly because the analyzers created a bunch, but some existing
ones were deleted, too).
2026-10-05 00:42:48 -04:00
decompile Symbols: rename UnknownObj_0x6 -> CFadeManager 2026-10-03 15:53:34 +01:00
documentation Enhanced*.java -> *Listing.java 2026-09-29 20:34:49 -04:00
ghidra Add (correct) jump table and analysis to listing 2026-10-05 00:42:48 -04:00
.gitignore Complete basic build process 2026-02-14 23:05:32 -05:00
readme.md Update progress 2026-10-01 09:36:05 -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.39% (61640 out of 2574172 bytes in XBE address space)
  • Decompilation progress: 62.59% fuzzy match of bytes delinked so far, 1.50% 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.