10 · Cost
What it cost to build
Priced the same way, the human route costs roughly 11–69× more, even after billing the author's hours at a senior engineer's rate ($140/h, which puts this project at $33k–$41k). The token and API figures are counted exactly from the session transcripts; the human figures are estimates and the author's hours come from the transcripts and the author, and the page says how each was made.
By phase
| Phase | Dates | API calls | Tokens | Output | Subagents / workflow agents | Cost, 1 h writes | Cost, as logged |
|---|---|---|---|---|---|---|---|
| New 3DS, to v0.9.0 | 08-11 → 09-03 | 22,552 | 3.20 B | 13.3 M | 147 / 1,103 | $4,998 | $4,419 |
| Native fork, to v1.0.0 | 09-07 → 10-19 | 62,051 | 15.21 B | 6.8 M | 317 / 185 | $12,427 | $9,463 |
| v1.1.0 work | 10-20 → 10-26 | 22,624 | 4.14 B | 1.7 M | 124 / 0 | $2,074 | $1,625 |
| Between phases | 09-04 → 09-06 | 192 | 41.7 M | 170 K | 0 / 0 | $60 | $60 |
| Total | 08-11 → 10-26 | 107,419 | 22.59 B | 22.0 M | 588 / 1,288 | $19,559 | $15,567 |
Prices used
Published Claude API list prices in dollars per million tokens: the same table the first version of this page used, with the two models that arrived since (Opus 5.5 and Sonnet 5) added at their published rates. Cache reads are 0.1× input except where listed.
| Model | Input | Output | Cache write (1 h) | Cache write (5 min) | Cache read |
|---|---|---|---|---|---|
| Claude Fable 5.1 | $10 | $50 | $20 | $12.50 | $0.25 |
| Claude Fable 5 | $10 | $50 | $20 | $12.50 | $1.00 |
| Claude Opus 5 / Opus 4.8 | $5 | $25 | $10 | $6.25 | $0.50 |
| Claude Opus 5.5 | $4 | $20 | $8 | $5.00 | $0.20 |
| Claude Sonnet 5 | $2 | $10 | $4 | $2.50 | $0.20 |
| Claude Haiku 4.5 | $1 | $5 | $2 | $1.25 | $0.10 |
By model
| Model | API calls | Output tokens | Cache-read tokens | Cost, 1 h writes | Cost, as logged |
|---|---|---|---|---|---|
claude-opus-5-5 | 45,674 | 3,257,065 | 10,477,297,093 | $9,299 | $6,711 |
claude-fable-5 | 15,190 | 9,293,400 | 2,151,927,954 | $3,647 | $3,339 |
claude-opus-5 | 16,984 | 1,996,961 | 3,658,547,740 | $3,165 | $2,728 |
claude-fable-5-1 | 4,715 | 3,488,585 | 1,042,680,573 | $1,989 | $1,485 |
claude-sonnet-5 | 20,369 | 1,815,661 | 3,583,164,321 | $1,072 | $946 |
claude-opus-4-8 | 4,132 | 2,038,747 | 398,856,214 | $385 | $356 |
claude-haiku-4-5-20251001 | 148 | 76,340 | 6,114,482 | $2 | $2 |
Spend by day
The human estimate
A rough comparison, not a quote. The scope a team would face is what shipped: a citro3d rendering backend, a 32-bit sweep, audio on the DSP, stereo, lifecycle, an owned native renderer sized to the Old 3DS's instruction cache, the 64DD Expansion Kit, a bottom-screen dashboard and menus, and 2–4 player multiplayer over local wireless and the internet, on two consoles.
| Input | Value | Basis |
|---|---|---|
| Code written for the port | 181,208 lines | port/3ds at ac33c30, excluding the vendored libultraship subset, third-party libraries, generated asset headers and docs; includes the patch stack and 13,349 lines of tests, probes and harness. Build and dev tools add another 41,324, not counted below |
| Lines a human team would need | 84k–168k | Half to all of the production code. The agents wrote heavily instrumented code (receipts, A/B arms, levers); a team would write less of it for the same result |
| Rate | 100–200 lines per engineer-day | The rate the first version of this page used for low-level port work once debugging and hardware loops are counted; 220 working days a year |
| Effort | 1.9–7.6 engineer-years | Lines ÷ rate |
| Cost | $0.5M–$2.3M | $240k–$300k loaded per senior engineer-year (US; $20–25k a month, as before) |
| Calendar | about 6–23 months | A team of 4, ignoring hiring and ramp-up |
A check against people who have done comparable work: Ship of Harkinian, the Ocarina of Time PC port, was built by a volunteer team from November 2021, when the decompilation was finished, to its first release in March 2022; 2 Ship 2 Harkinian, the Majora's Mask port on the same libultraship base, shipped in May 2024, six months after its decompilation was finished (Wikipedia). Those are PC ports with no memory or frame budget to speak of. The N64-on-3DS projects listed on Pushing the boundaries are hobby efforts that, by their own READMEs, mostly target the New 3DS at 30 fps or with interpolation. Nothing here contradicts the range above; nothing narrows it much either.
The author's time
The transcripts hold 777 prompts typed into this project's sessions on 49 days between 08-10 and 10-26 (US Eastern time). Grouping prompts less than 20–45 minutes apart into sittings, and adding 15 minutes to each, gives 126–157 hours at the keyboard. The author confirms the total was about 125–150 hours: hardware testing, SD-card copies, photographing screens and reading the docs leave no trace in the transcripts, but they largely overlapped with sittings or were short, so the total is close to the keyboard time. Prompts fall on every day of the week and at every hour from 8 am to 3 am, so this was not only evenings.
No code was written by hand. The author's work was direction (what to build next, what to drop), judgement on evidence (which experiments were real wins), and the hardware loop the agents could not run themselves.
Side by side
| This project | Human team, estimate | |
|---|---|---|
| Calendar | 11 weeks (08-11 → 10-26), 48 days with API activity | 6–23 months with 4 engineers |
| Money | $15,567–$19,559 API-equivalent | $0.5M–$2.3M |
| People | one person, ~125–150 hours, no code written by hand | 2–8 engineer-years |
| What shipped | v0.9.0, v1.0.0 (Old and New 3DS, Expansion Kit) and v1.1.0 (multiplayer); known gaps listed in the release notes | the same scope, plus whatever polish a funded team would add |
Cost per outcome
| Measure | 1-hour writes | As logged |
|---|---|---|
| Per human prompt | $25 | $20 |
| Per day with API activity (48) | $407 | $324 |
| Per line of port code (181,208) | $0.11 | $0.09 |
How the census was made
docs/postmortem/gen/pa_census.py re-implements the first version's method and can be re-run. It reads every transcript under the project's two Claude Code directories (~/Code/G-Diffuser through v1.0.0, ~/Code/gdx-3ds since; 1,881 files: orchestrator sessions, Agent-tool subagents and deep-research workflow agents). Each assistant message id is one API call; the 2–5 streamed records of the same message are merged by taking the largest value of each usage field, so nothing is counted twice. Sessions started from the home directory that only mention the project, and every other project on the same account, are excluded.
| Check | Finding |
|---|---|
| The first phase reproduces. | Over 08-11 to 09-03 the script finds 3.20 B tokens and $4,998 (1-hour writes), against 3.17 B and $4,974 published. The first census stopped at 19:04 UTC on 09-03; this one counts the whole UTC day. |
| Claude Code's own stats file counts every streamed record. | Its totals are about 1.9× the de-duplicated count (found in the first phase, 5.94 B vs 3.17 B). The API bills per request, so the de-duplicated figure is the one used. |
| /usage shows plan utilisation, not dollars. | Reaching a weekly cap says nothing about the dollar value of the tokens under it, and other projects shared the same allowance. |
| Not counted. | Web searches and fetches billed per use, context compactions and title/summary side calls are not in the transcripts. In the first phase they came to about $13 in total. |
The first phase's per-subagent and per-tool tables are in source-census.md. Its clearest cost lesson still stands: two 900-turn agents of 08-14 were left running through a credit pause and each re-read a very large context hundreds of times. An agent that has finished its brief should be stopped.