Compare commits

..

2 commits

Author SHA1 Message Date
KeybadeBlox
8c9f622ab5 Decompiling C++: Add static object initialization 2026-01-09 21:06:28 -05:00
KeybadeBlox
ee519090c1 Add "estimated total progress"
There have been cases of the "decompilation progress" metric being
confused for total progress, so a new figure has been added (in bold)
roughly estimating the total progress by multiplying the other two
together.
2026-01-09 19:29:44 -05:00
2 changed files with 8 additions and 1 deletions

View file

@ -117,7 +117,13 @@ its lifetime (e.g. it goes out of scope), which can lead to inclusion in
exception handling code or just being called at the end of a code block even if
the source code doesn't invoke it explicitly. This automatic resource
management is often called part of C++'s RAII (resource acquisition is
initialization) design.
initialization) design. Lastly, objects with constructors that exist for the
lifetime of the program (e.g. global variables or static local variables) have
special treatment, having their constructor run before `main()` and their
destructor run on program exit. In an Xbox game specifically, the `_cinit()`
function called by `mainXapiStartup()` walks a list of function pointers, with
each called function calling an object's constructor and registering its
destructor with `atexit()`.
Virtual methods are methods that can be overridden on child classes. They're
not called directly, but instead called through a hidden first member that

View file

@ -4,6 +4,7 @@ A matching decompilation of the Xbox game Jet Set Radio Future.
## Progress
- Delinking progress: 0.52% (13263 out of 2574172 bytes in XBE address space)
- Decompilation progress: 30.6% (30 out of the 98 functions delinked so far)
- **Estimated total progress: 0.16%** (previous two multiplied together)
## Roadmap
The approach of this decompilation is to: