Diagrams
Four pictures for talking through the X Plus decomp: how far it has come, how a function gets matched, who is doing the work, and what's next. Numbers are as of 2026-10-17.
The climb How one function gets matched Who is working where What we have coming
X Plus: the climb to 3,351 X Plus: the climb functions rebuilt from C, byte for byte, on both discs 3,616 = the whole game 0 Round 1 · Oct 13 Scoping Accent Core Plus led to X Plus. Found the original compiler, rebuilt a disc byte for byte 364 Round 2 · Oct 13 The Korean disc kept its debug symbols. First hitbox, Tension, throw and AI code 2,522 Round 3 · Oct 13 Real types for every function. Sol, Ky, May and Millia fully matched 3,351 Round 4 · now Seven workers, two machines. Every accept matches on both discs. +640 so far ×7 93% of the game by function count. 265 left: modes, render, battle. The Sony SDK is counted separately.
Four rounds, all since October 13. Round 2 is where the Korean disc's debug symbols came in; round 3 turned them into real types for every function. Round 4 is slower per function but stricter: every accept has to match on both discs.
Open full size
How one function gets matched How one function gets matched What we start from The Korean disc kept its debug symbols: names, types, structs Generated headers every struct the game uses Original MIPS assembly split from the Japanese disc A machine draft m2c's first guess at C The worker's loop A worker writes C natural, original-style code The original 1999 compiler same version, same flags Same bytes as the disc? no Locking it in Both-disc gate the whole file still matches on Japan AND Korea yes Checkpoint every 30 minutes Full build, both discs byte-identical executables The counter 3,351 / 3,616
Left: what we start from. The Korean disc gives names and types, the Japanese disc gives the assembly to match, and m2c gives a first draft. Middle: the loop. Write C, compile it with the original compiler, compare bytes, read the diff, repeat. Right: nothing counts until the whole file still matches on both discs and the full builds agree.
Open full size
Round 4: who is working where Round 4: who is working where 7 workers, 2 machines, 1 coordinator · 3,351 / 3,616 matched Coordinator briefs, fixes, merges, full builds, this site Windows desktop (Linux toolchain) modes title, options, credits render fades, text, GPU packets battle fight flow, AI, system The toolchain original compiler, full builds of both discs Progress counter every 2 minutes Mac (M5 Max) rmodes story, training, select, winner rrender poly effects, sprites, backgrounds rdata place the 53 matched but unlinked functions rsdk Sony SDK + libc Another decomp is paused so this machine is all GGX briefs briefs Checkpoints every 30 minutes Checkpoints every 30 minutes main only after both discs rebuild byte-identical Progress this site, the counter merge merge
Seven workers split across two machines, each owning different source files so they never collide. A coordinator writes the briefs, answers questions, merges, and runs the full builds.
Open full size
What we have coming What we have coming NOW 265 game functions left (modes, render, battle) Data pass: place the 53 matched but unlinked Sony SDK: identify its compiler, start matching Merge to main after every verified both-disc build NEXT X Plus at 100%: every function in C Data in C too: move tables, hitbox tables, strings Hitboxes and frame data read straight from the C Write-ups for each system we understand LATER Bridge to Accent Core: X Plus → XX → #Reload → AC+ (695 names carry over so far) Accent Core Plus matching with real names (pilot: 55 / 100) New Guilty Codes from what the C reveals The other pages here fill in, game by game Why X Plus first: the Korean disc keeps names and types, so matching runs about twice as fast with a 98% hit rate. Everything learned carries over to Accent Core.
Now: finish the game code, place the last data, start on the Sony SDK. Next: X Plus at 100%, then hitboxes and frame data read straight from the C. Later: walk the names forward through XX and #Reload to Accent Core.
Open full size