01 · Overview
A post-mortem of porting G-Diffuser, the F-Zero X decompilation, to the Nintendo 3DS — v1.0.0, covering both the original 24-day sprint that put it on a New 3DS at 60 fps in 3D (2026-08-11 to 09-03) and the 43-day second phase that added Old 3DS support, a native renderer, and the Expansion Kit (2026-09-07 to 10-19). One person directed throughout; one long-lived Claude session orchestrated; 147 subagents built the first phase and many more carried the second.
The console went from a black screen to a native-60 stereoscopic racer, then from a New-3DS-only build to a four-way release covering both consoles with and without the 64DD expansion.
59.6fps
median on hardware, full Grand Prix, New 3DS, end of the first phase (from 12–20 fps in the first emulator race)
51.4fps
tenth-percentile floor in 30-machine crowds, first phase (from 25–35)
53%
of frames at the 60 cap, first phase (from 14% one week earlier)
15
active days across the first phase's 24 calendar days, three pauses when the weekly plan allowance ran out
3.17 B
tokens across all sessions and agents, first phase only; see Cost
$4,974
at published API list prices (Fable $10/$50 per MTok, 1-hour cache writes), first phase only; see Cost
250
commits touching the 3DS port in the first phase, frozen 2026-10-08 from the v0.9.0 docs — not re-verified against final history
15,039
lines under port/3ds plus 48 pure-delta patches, first-phase count
3
released console builds from one source tree: Old 3DS, New 3DS, and New 3DS with the Expansion Kit
199
internal progress notes written during the second phase
43days
calendar span of the second phase, 2026-09-07 to 10-19 inclusive
The tiles above are dated. The first phase's hardware numbers and token/cost figures were measured through 2026-09-03 and have not been re-run for v1.0.0; the Agentic workflow page describes how the second phase was run, and the Cost page is explicit about what it does and does not price.
The clips and photos below are from v0.9 (2026-09), before DASH replaced the debug console on the bottom screen.
Three released console builds from one source tree, all booting from the HOME menu (.cia) or the homebrew launcher (.3dsx): the base game for Old 3DS / 2DS and for New 3DS / New 2DS XL, and a New 3DS build with the 64DD Expansion Kit (course editor and machine creator, playable with a user-supplied disk image). Every build reads prebaked asset archives from the SD card — no ROM or disk image ever ships with the game.
They play the whole game: Grand Prix, Time Trial, Practice, Death Race, and the machine editor screens, with music and effects on the real DSP, stereoscopic 3D on the slider, a bottom-screen dashboard with three HUD layouts and an idle view outside races, and clean HOME suspend, resume, close, lid sleep and power-off. The New 3DS build keeps the native-60 frame pacing the first phase reached; the Old 3DS build gets to a comparable result by a different route. At v1.0.0, with no ini, both builds default to that same route: the native renderer ([perf] preset = auto). The New 3DS's first-phase render-thread/per-draw-stereo path is still built in and reachable with an explicit ini, but is no longer the default — see Frontier and Pushing the boundaries for the two builds compared side by side.
| When | Median | p10 | At cap |
|---|---|---|---|
| 08-14 first race (emulator) | 12–20 | – | – |
| 08-21 first hardware run | 48–50 | – | – |
| 08-28 release-grade build | ~51 | ~40 (crowds, MINIMAL) | – |
| 09-02 Round 1: Mainline before the campaign | 51.3 | 39.2 | 9% |
| 09-02 Round 2: Bridge memos (brfast) | 57.2 | 46.6 | 29% |
| 09-02 Round 3: HUD atlas · triangle memo · TMEM · audio | 56.0 | 48.0 | 32% |
| 09-02 Round 4: Render thread on core 2 (pipe) | 57.6 | 44.6 | 14% |
| 09-03 Round 5: Ahead mode · bridge on main · auto rival detail | 59.6 | 51.4 | 53% |
Not originally planned; it ran 09-07 to 10-19, 43 calendar days.
-DGDX_3DS_O3DS=ON profile, built to fit the console's memory grant, booted and raced the same session at about 10 fps.See Agentic workflow for how the second phase was run and Old 3DS for the full campaign, card by card.
Every number on these pages has a source: git history, the research documents under docs/research/, the hardware logs, or the session transcripts the Cost page counts. Where a value is an estimate (the dollar figures, which apply published API list prices to exact token counts), the assumption is stated next to it.