Castle Adventure

Kevin Bales’ 1984 DOS adventure, rebuilt rule for rule and drawn as if it had shipped on an Amiga 1200.

Play it: castles.bmux.sh

The south end of the castle garden: Amiga-style pixel art, the fountain in the middle, the action panel on the right

What it is

Eighty-three rooms, thirteen treasures, one locked gate. You’re trapped in a deserted castle and you have to find the key and get out, ideally with all the treasure and every monster dead, for the perfect 1,550.

Nothing in the game is new. Every room layout, description and exit is read out of the original CASTLE.RAN, and every line the game says to you comes from the strings compiled into CASTLE.EXE. Ogres, demons, the vampire you can’t hurt, the fairy who won’t move, the two rooms that flood if you step on the wrong tile: all where Bales left them in 1984. A bot plays the whole game to a perfect score on every test run, so the castle is provably still winnable.

The Throne Room, torchlit, with an Angry Demon waiting

What changed

The machine it pretends to run on. The original was grey ASCII on a CGA screen. This one is a real planar framebuffer emulating the Amiga’s AGA chipset: 320×256, eight bitplanes, 256 colour registers, blitter sprites, a copper list per scanline. The water, the torches and the sorcerer’s runes move by colour cycling, Mark Ferrari style, rotating palette registers rather than redrawing a pixel.

The Royal Wine Cellar, dark except for the lamp’s halo

And the modern comforts: arrow keys instead of the numeric keypad, buttons for whatever you can do right now instead of a typed parser, autosave on every room change, and a map that only shows the rooms you’ve actually been in.

Why it’s here

It’s the first computer game I remember learning to talk to. The original’s magic was in what it left out: no picture of the castle, so you drew it yourself, and a ? prompt that answered only if you guessed the right words. The rebuild fills both blanks in. That’s the trade, and it’s worth being honest about. I wrote it up in the child rendered the castle.

Technical details

Source dataCASTLE.RAN room records (18×24 map, five-line description, exits) and CASTLE.EXE strings
EnginePure, deterministic game rules with no DOM; runs in Node and the browser
DisplayEmulated AGA: PAL lowres, 8 bitplanes, 256 registers, copper, 50 Hz colour cycling
BuildNo dependencies, no build step, plain ES modules
TestsEngine, renderer, saves, and a full 1,550-point playthrough bot
Sourcegithub.com/nickallevato/castle_adventure_2026
OriginalCastle Adventure © 1984 Kevin Bales