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

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.

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.

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 data | CASTLE.RAN room records (18×24 map, five-line description, exits) and CASTLE.EXE strings |
| Engine | Pure, deterministic game rules with no DOM; runs in Node and the browser |
| Display | Emulated AGA: PAL lowres, 8 bitplanes, 256 registers, copper, 50 Hz colour cycling |
| Build | No dependencies, no build step, plain ES modules |
| Tests | Engine, renderer, saves, and a full 1,550-point playthrough bot |
| Source | github.com/nickallevato/castle_adventure_2026 |
| Original | Castle Adventure © 1984 Kevin Bales |