In 1993 Baghdad, where electricity came a few hours a day, a twenty-something engineering student sat at an Amiga 500 — 512KB of RAM, no hard drive, connected to a TV. No dev environment, no internet, just a well-worn Amiga hardware reference. The game asked nothing of the OS: joysticks read directly from hardware ports, the fire button was a pin on the CIA chip. The floppy drive burned out three times from constant swapping and 50°C summers. Writing in pure 68000 assembly, Rabah Shihab completed *Babylonian Twins* — by his account, Iraq's first commercial-quality game. Art was by Murtadha Salman, music by Mahir AlSalman.
The finished game went nowhere: Commodore collapsed, sanctions scared off publishers. It sat on a shelf for fifteen years.
The First Port: By Hand
In 2008, an Amiga forum tracked down the author via old YouTube videos and obtained the disks. In 2010, the original team ported it to iPhone: a from-scratch engine, roughly 34,000 lines of C++, "months of nights and weekends." Apple and Google both featured it; downloads exceeded two million.
Keep that baseline in mind. Sixteen years later, the same man would port the same game again — this time with Claude Fable 5 running in Claude Code, a setup with a terminal and filesystem that could edit files, run the assembler, build the game, launch it, and read back results. The author described his own role: "I didn't do the porting. I made requests, played the results each night, said what felt wrong, and made the few decisions only someone who was there in 1993 could make." His thirteen-year-old son was the playtester.
The Second Port: AI
On the night of July 1, 2026, the work started from the 2010 C++ version into Godot 4. Timestamps from the blog: 22:23 empty project; 22:44 both twin characters controllable — 21 minutes in; 23:19 all 38 entity types in place; 00:35 menus, map, and saves working; 02:15 builds exported for three platforms.
July 5 brought the real ask: turning the 1993 assembly source into the authentic 50Hz Godot build. The input: 72,758 lines of 68000 assembly across 26 files — averaging 2,800 lines each, zero comments, no documentation. Landmines abounded: the 2008 disk transfer had truncated all long filenames, so every include pointed at nonexistent names, and one of five level source files was cut off mid-data-table with no second copy.
The AI's approach is worth copying industry-wide: don't port first — make the 1993 source assemble again. Imported at 14:34, by 14:49 vasm on an Apple Silicon Mac produced a binary byte-identical to the factory disk — fifteen minutes. At 15:42 the rebuilt image booted playable in FS-UAE. About 108 bytes didn't reconcile; the model's explanation (factory files are memory snapshots saved after running) is, by the author's own admission, the only claim he never personally verified.
Then every format was reverse-engineered from the code that reads those bytes: level maps, 16-bit tile attributes, object tables, runtime doors, copper-list skies, planar sprites. All five level maps were correct on the first attempt. Assets were decoded into ordinary PNG, WAV, and JSON; behaviors were rewritten in the engine's own language. The player skips Godot's physics — a plain Node2D plus a 150-line collision routine, line-by-line from 1993, including the author's hand-tuned correction constants. Verification was brutal: pixel-by-pixel comparison against 2020 emulator screenshots, five full level captures, zero pixel differences. Level one alone is 600 tiles wide — 9,600 pixels.
Humans Fixed the Feel; the Machine Found the Bugs
The blog is equally honest: the core port took one night; game feel took three days — jump arcs and trampoline timing fixed between July 2–4. "It didn't use image comparison — it screenshots, I look. It also can't check whether the game feels right," the author wrote.
The most elegant win: the AI crawled Google Play reviews, read them through, and surfaced those actually describing defects. One one-star review said "the door on the first level won't open, and when it opens it doesn't end" — investigation revealed only 2 of 18 levels had exit hints; the other 16 were missing. This bug survived fifteen years, two remakes, and a test team unnoticed. The author: "A stranger's review did it." The fix shipped with 2.0.3 on both stores.
What It Proves — and What It Doesn't
Proven: an agent with a terminal, a real toolchain, and byte-level and pixel-level baselines can complete verifiable heritage engineering. The reliability comes from acceptance criteria, not magic.
What it doesn't prove is equally clear. This is a single-person sample holding the world's richest priors — the prompter was the original author, with the 2010 C++ engine as a reference, 2020 screenshots, and 33 years of memory. Cost data and the source repo are unpublished. On Hacker News, others reported their own LLM ports — a ZX81 memory dump, an MSX cartridge, "a 16KB ROM one-shot in under an hour" — while a skeptic grumbled that "an AI trash port isn't a port." The rebuttal: "Riding in a car doesn't count as traveling; real travel is on horseback."
A quiet footnote: the first draft of this very blog post about AI porting was also written by AI, then edited line-by-line by the author over a week. Moderator dang left a comment — errors are fast becoming a mark of authenticity.
Thirty-three years later, the original disk is free on itch.io; the Godot version hits Steam this autumn, with the 1993 game hidden as a second launch option inside the 2026 one — one at 50Hz, one at 60Hz, two clocks each keeping their own time. The shoebox of disks went back.
--- Sources: babyloniantwins.com blog post "Porting my 1993 Amiga game to Godot, with an LLM reading the 68000 assembly" (Rabah Shihab, 2026-09-01); HN 49550375 (377 points) and the author's full comment thread; TouchArcade, 2010-01-16; Indie Retro News. All timestamps and line counts are quoted verbatim from the blog.