A 1990s BBS door game, played one dial-up session at a time, taken apart down to its last procedure and
rebuilt as a Nintendo Entertainment System cartridge by AI coding agents, in a single day. This is an unofficial fan
port: how it works, how it was checked, and what is still imperfect.
25 + 38songs and sound effects, plus 6 voice clips
1 dayfrom the first decompiler run to the finished port
1The request
Operation: Overkill II was a BBS door game: a game that ran on a dial-up bulletin board system, where each
caller got a few turns a day, read the news of what the other players had done overnight, and came back tomorrow. It
was written by Dustin Nulf, Michael Montague and Bryan Turner of Vagabond Software between 1995 and 2001, and its
last release, version 1.20, still sits in BBS file archives. Benj Edwards started with one instruction to Claude Code,
Anthropic's AI coding agent (running the Claude Opus 5.5 model):
"Decompile the vintage BBS door game OOII […] so I can modify it"— Benj Edwards, BX Foundry
A few hours later, with the decompilation done, came the second one:
"[…] port it to the NES as a AAA quality NES game with excellent graphics and sound. use MMC3"— Benj Edwards
2Taking the DOS program apart
The game is a Borland Pascal 7 program for DOS: a main program plus a 402 KB overlay file, the code that DOS swapped
in and out of memory as needed. There was no source code. The agent rebuilt it from the machine code:
A script stitched the overlays back to the code that calls them, and the program went through Ghidra, the
NSA's open-source decompiler. Ghidra didn't understand some of Turbo Pascal's habits, so the agent patched its
description of the x86 processor and wrote cleanup passes for what came out.
Every one of the 698 game procedures got a real name and a one-line description, from the dice rolls of
combat to the overnight maintenance program that ran on the BBS at midnight.
Every unit got a document: the formulas, the record layouts, the file formats. About 90 bugs in the original are
written down too, and the port keeps the ones that shaped how the game plays.
The decompilation became the port's specification. When the NES code needed a rule, it came from the original's
code, not from a guess.
3The cartridge
The port uses Nintendo's MMC3, the most capable common board of the NES era (Super Mario Bros. 3 used one), in
its largest standard size:
512 KB of program memory in 64 banks of 8 KB. The 6502 processor sees only 32 KB at a time, so the game
is split into modules, each in its own banks, which call one another through a small switching layer.
256 KB of graphics, switched in 1 KB slices so the top of the screen, the map and the text box can each use
different tile sets in the same frame.
8 KB of battery-backed memory for two save files and the game's working state. Everything the original kept in
its player file has to fit in one save of about 1.5 KB.
The MMC3's scanline counter splits the screen: a scrolling map or room above, a fixed text box below.
4From text screens to a world
On a BBS the game was menus and ANSI text. On the NES you walk around in it:
The wastelands are the original's maps, five levels of 25×30 squares, drawn as scrolling terrain with
animated water, storms and the transport ship. A status bar shows HP, radiation, crystals and your position.
The Complex is 19 rooms you walk through. Each menu of the original became a person or an object: the Supply
Room's clerk, the Storage Bank's teller, the commander, the Training Room's instructor, the Games Room's six games.
Battles get their own screen, with monster portraits, backdrops, hit effects and the original's
Action Combat: a moving caret you stop on the right letter, with its timing taken from the original's code.
All 2,673 texts of the original are in, compressed with byte-pair encoding into 113 KB. Texts with names in
them are laid out when they're shown, so "the Insane Dwarf" wraps as neatly as a short word.
Map level 1. The status bar: HP, radiation, crystals, level and position.The Complex's Main Hall. Doors lead to HQ, the Barracks and the Comm Post.Action Combat: stop the caret in an "A" segment.HQ: the Supply Room's menu, from the original.
5One player, a whole BBS
The original was a multiplayer game spread over days: other callers fought, camped, got captured and robbed the bank
while you were offline, and a maintenance program rolled the world forward every night. On a cartridge there is
one player, so the agents rebuilt the rest of the BBS inside the game:
Eight rival recruits stand in for the other players. Each night they play their own day by the original's
rules: they hunt monsters on their map level, level up, train, shop, camp on the map or sleep in the Complex, get
captured and sent to the Hydrite Prison. You meet them out on the wastelands, where you can trade, steal or fight.
The night happens when you sleep or camp. It runs the original's maintenance program in its order: the
Gate Guard's supply run, Hydrite raids on the Complex, bank interest, kidnappings, the news.
HQ's radio hints from the original still reach new recruits: low on crystals, no weapon, starving, too much
radiation.
What only made sense on a BBS is gone: mail, squadrons, the sysop's tools, the time limits.
An HQ transmission, from the original's hint file.Weather: an acid-rain storm on level 2.The pause screen: the original's status page.
6The story locations
The second half of the game is its set pieces, all from the original: the Hydrite Prison with its cells, keys
and sentences; the labs under the Air Force Base with weapons research and genetic and cybernetic projects; the
transport ship and its Queen; Overkill himself; and the missile silo, where a launch code from Aurora
lets you drop a warhead on the map.
The silo got the full treatment: the Z-Frame computer types out its reports behind a block cursor, the code check
sweeps the letters, the satellite view locks on and counts down, and the crater builds up mound by mound, hitting any
bases and campers in range.
The launch-code check.Lock-on and countdown.Impact.The crater.
The Hydrite Prison.The labs under the Air Force Base.The transport ship's bridge.After Overkill.
7Art and sound, made from scratch
The original had ANSI text screens; nothing could be reused. Every pixel of the NES edition is new, and all of it is
written as data in code rather than drawn in a paint program. The generators turn it into 175 banks of NES
graphics:
Terrain that fits itself together: each map square is drawn from quarter tiles chosen by its neighbours, so
coastlines, cliffs and roads join up.
19 rooms, 15 kinds of people, 45 portraits covering all 111 monsters, 8 battle backdrops, item
icons, the title screen and the story panels.
The Games Room's props: a mug of green brew, darts that stick, top-down roaches with moving legs, a creeping hand, a
Hydrite hologram.
The sound is an original driver for the NES's five channels with 25 songs (one per screen, map level and
situation, with battle music that changes for bosses), 38 effects and 6 voice clips in the
console's sample channel, among them "Operation: Overkill" on the title screen.
The war briefing, with the original's scenario text.A Bandit, one of the 45 portraits.SharpShooter in the Games Room.Registration: the races and training programs.
8Many agents at once
The port was built by more than a dozen Claude agents working in parallel. One agent, the integrator, built the
engine and kept the master copy of the cartridge. It handed each part of the game to its own agent, each working in
a separate copy of the project:
Decompiled rules the original's code and documents
→
Module agents combat, wasteland events, items, HQ, the Complex, the Games Room, the night and the rivals, bases, the story, art, sound
→
The integrator merges each module, rebuilds the cartridge, runs every test
Each agent owned its own files and listed every small change it needed in shared ones. The integrator merged them
three ways against the copy each agent started from, so work done in parallel came together without conflicts. A
polish round followed the same way: the hint system, the silo's animations, and a visual review of every screen by an
art agent.
9Testing without a console
Every part was checked in an accurate NES emulator (Mesen 2) run by scripts, with no screen:
29 test programs that play through each part of the game: registration, the shops, fights, the night, the
prison, the silo, the ending. They press buttons, read the game's memory, check the rules' results, and take
screenshots.
An audit of every write to the graphics chip, to prove the game never touches it while the picture is being
drawn, which a real console would show as garbage.
A random-play robot that plays for ten minutes at a time, starting new games, walking, fighting and dying,
while a watcher checks that the console never misses a frame.
Contact sheets of hundreds of screenshots, reviewed by eye.
The tests found real bugs:
Every person in every room was drawn from the wrong half of the sprite memory, so they all looked like the player.
On a loading screen the console could skip a frame: reading the graphics chip's status at the exact moment a new
frame begins cancels that frame's interrupt. This is a real NES quirk, and the emulator reproduces it.
The test runner itself counted some failed checks as passes. It was fixed, and everything passes under the
stricter rules.
10Playing it here
The page runs the cartridge in your browser with Nestopia UE
compiled to WebAssembly, the same core as BX Foundry's Violent Checkers: NES Edition.
The game's battery memory, where your two save files live, is kept in your browser between visits. The page can also
download your saves as a file or load one. The same cartridge image plays in any NES emulator that supports MMC3, and
on a real console from a flash cartridge.
11What is still imperfect
It's a one-day port. The rules are the original's, but nobody has played it from the first day to Overkill's
defeat the way the BBS players did. Balance and pacing will need real players.
The other players are simulated. The original's rivalries, mail and squadrons were people, and the rival
recruits are only a stand-in.
Fights are as wordy as the original's. Holding A or B speeds the text, and the pause screen has a text speed
setting.
The pause pages' titles sit in the top 8 pixels of the picture, which many TVs crop.
A few story details are simplified. For example, the prison's transmitter messages are gone, and the silo's
monitor uses the text box's single colour scheme.
The NES edition is an unofficial fan port by BX Foundry, made by Claude Code with Claude Opus 5.5 and
directed by Benj Edwards. It is not affiliated with or endorsed by the original authors.
Decompilation: Ghidra. Testing: Mesen 2.
In the browser: Nestopia UE (GPL v2) compiled to WebAssembly.