AI NewsProductivityReported

Claude Fable rebuilt a developer's Amiga game from assembly, byte for byte

Rabah Shihab ported his 1993 Amiga game Babylonian Twins to Godot by having Claude Fable read the original 68000 assembly and rebuild 72,758 lines across 26 files into a byte-identical binary.

AI News

Editorial2 min read

LinkedInX

Why it mattersThe port worked because Claude Fable had almost no Amiga assembly in its training data and had to reason from hardware behaviour, which is the useful test for whether a coding model is recalling or thinking.

Rabah Shihab, who wrote the 1993 Amiga game Babylonian Twins in Baghdad on an Amiga 500 with 512KB of RAM and no hard drive, has posted a long account of porting it to Godot with Claude Fable 5 reading the original 68000 assembly. The Hacker News thread has 141 points as of this writing.

What was rebuilt

The project had three parts. The first ported the 2010 iOS C++ engine of about 34,000 lines to Godot 4 and had a playable character on screen 21 minutes into the first evening. The second rebuilt the 1993 assembly version, 72,758 lines across 26 source files, into a byte-identical binary in about an hour of work. The third embedded the rebuilt 1993 game inside the modern one, so it launches alongside the 2026 version at the original 50 Hz tick rate.

How the model worked

Claude Fable ran in Claude Code with access to the vasm assembler, the FS-UAE emulator, and a diffing step against the original released binaries. Shihab had it work backwards from the code that consumed each data structure rather than the data itself, so display and collision routines annotated the format implicitly. The undocumented structures it recovered included the level tile maps, 16-bit cell properties encoding graphics and collision, the planar sprite sheets, the object tables, and the copper list sky gradients. The five levels came out correctly on the first pass with no human hints, in contrast to the "several rounds and corrections" Shihab needed by hand.

Where the bugs came from

The model was not perfect. A guard's proximity check was inverted, so its spear travelled through solid rock into lower floors. A hidden second tile layer opened secrets from the start. Bounce height on a trampoline needed an old iOS workaround that treated held button presses as released. And the exit prompt on the final free level lost the tutorial that opens the door, which had been caught fifteen years earlier by a one-star review. Shihab notes he had made the same kind of mistake himself in 2010, slowly, over months.

Why the story matters

Shihab set out to test a hypothesis: because there is almost no Amiga assembly in modern LLM training sets, if a coding model was actually reasoning rather than recalling, the Amiga was where that would show. The result is a datapoint for anyone deciding how much to trust a coding agent on unfamiliar hardware, obscure file formats, or old languages a team has to keep in use. It also shows a workflow that generalises: give the model the assembler, the emulator, and a way to diff the output against a known-good binary, then let it reason from what the consumer code does. The reason the byte-identical target mattered is that it turned every question into a yes-or-no check the model could run itself.

Source

Primary source: Rabah Shihab, "Porting a 1993 Amiga game to Godot". Community reception: Hacker News discussion.

Reported byRabah Shihab

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

Share
LinkedInX
Start a project