A 1993 Amiga game ported to Godot by an LLM reading raw assembly
The author of Babylonian Twins had a model port the 72,758 lines of 68000 assembly behind his 1993 Amiga game to Godot. The machine read the code; a human still had to say whether the jump felt right.

Baghdad, 1993, 512 KB
Babylonian Twins was written on an Amiga 500: 512 KB of RAM, no hard drive, plugged into a TV. Pure 68000 assembly, every sprite and every scanline placed by hand by a twenty-something engineering student — Murtadha Salman on graphics, Mahir AlSalman on music. Under sanctions: no internet, no game-dev resources of any kind, one copy of the Amiga Hardware Reference Manual, and electricity a few hours a day. Endless floppy swapping and 50 °C summers killed the disk drive three times.
“By hand” means something precise here. On boot, the game saves the interrupt vectors, kills the system’s own, and takes the whole machine. The period comment, still sitting in the source, reads “Get the system from the AMIGA”. Display runs off the game’s own copper list, rewritten on the fly; tiles move by writing straight into blitter registers; the fire button is a pin on a CIA chip. The OS only gets to come back between levels, long enough to load files, before being shut out again.
First commercial game produced in Iraq — and, for years, a game almost nobody got to play. Commodore collapses, sanctions scare the publishers off, and the finished game sits on a shelf until an Amiga forum tracks down its author in 2008, from YouTube videos posted by their brother. In 2010 the same team rebuilds it by hand for the iPhone, on a homegrown engine of roughly 34,000 lines of C++. Apple and Google feature it; over two million downloads.
Three asks stacked on one weekend
The account of the port, published on 3 September 2026 and picked up on Hacker News, describes a deliberate test. A year earlier, an older model had eventually cracked the binary level maps, but over several turns and with a lot of hand-holding. The author handed the same files to Claude Fable 5, betting there is next to no Amiga assembly in anyone’s training corpus: if the model is reasoning rather than reciting, this is where you’d see it.
Three steps planned for the July 4th weekend, each one conditional on the last. The safe ask: port the 2010 C++ engine to Godot 4 — the control group. The unfair ask: rebuild in Godot the 72,758 lines of original 68000 assembly, almost entirely uncommented and sharing nothing with the C++, at the period-correct 50 Hz. The greedy ask: nest the second inside the first, so buying the modern game also unlocks the 1993 original. All three landed, and the level format that had taken several rounds a year earlier came out in a single pass, no hints.
The tooling matters as much as the model
All of it happened inside Claude Code, with a terminal and a filesystem: edit, assemble with vasm, build, run the game, read what comes back, boot the Amiga output in FS-UAE. When the post says the 1993 binaries were rebuilt and verified, that means vasm was run again and the output diffed.
More to the point, the model built itself a pair of eyes. Command-line flags added very early on: --level to load a level, --pose to drop the twins at an exact position, --drive to press buttons frame by frame, --probe to dump the state of switches, doors and keys, --screenshot to render one frame and quit. Plus two headless checks: one that compiles every script, one that builds every level. “Is the jump right?” then becomes a machine-readable line, something like pos=(25.44, 24.04) vel=(0.00, -14.51) ground=false. Ruthlessly practical. Just not, quite, an answer to the question you actually care about.
Feel doesn’t compile into an assertion
Because that question stayed human. The author explains they didn’t do this port: they asked for it, played the result every evening, said what felt wrong, and settled the handful of calls that needed someone who was in the room in 1993. File formats, reading the assembly, deciding how thirty-year-old code should carry across — all machine side. And it moved faster than they could keep up with.
Hence the least comfortable passage in the post: sitting back down weeks later to read what had been done to their own game, they found things that were plain wrong, and that they had waved straight through.
The model reread 72,758 lines of assembly without blinking. It just needed someone next to it who still remembered what that button felt like under a thumb in 1993.
Sources (1)
- Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assemblybabyloniantwins.com
Written with AI assistance from the sources cited above, then reviewed and approved before publication by Sébastien Soulier.


