Castle Adventure

Aye yo. Do you know this game?

Doo doo doo Doooooo, Doo doo doo Doooooo, Doo doo doo Dooo doo doo doo Dooo doo doo doo Doooooo *beat*
Doo doo doo Dooo doo doo doo Dooo doo Doo doo Dooooo.

Castle Adventure, written in 1984, is one of the first computer games I ever played. It had an impact. Written in BASIC and rendered in 40 by 25 characters of IBM text, Castle is one of the earliest DOS graphic adventure games and a precursor to all the great Sierra games I later loved. With 83 rooms, real-time monster fights, sound, two-word text commands and a simple goal of escape, it was intense. As a six year old I had the motor skills to move from room to room with the arrow keys, the street smarts to flee the approaching smiley faces and the pattern recognition to match the words "a" and "the" to my Berenstain Bears book, but the illiteracy to keep me from understanding any of the rest. I couldn't read a single sentence or type a single command. The room descriptions were as much a mystery as where the game even came from. That last one is still a mystery; I'm imagining a single floppy disk with GAMES scrawled on it, passed around and copied into oblivion by America's engineers with their home computers, forming a national sneaker-net whose demise Lyndon LaRouche still rails about.

Sadly, Castle hasn't aged well. It's not just because it's a DOS game, or that it has no colors, or that its liberal spelling of RUBYS might lose you a dispute with your mom (it did), or even that it was written in BASIC. Castle was doomed from the start! The game's timing is tethered to the CPU speed, so if your computer is too fast, which it has been since 1986, then the monsters are too fast and the game becomes unplayable. Even if you avoid monstrous conflicts, things aren't the same. While amazingly even the latest 32-bit Windows can run the original game, Castle's access to the internal PC speaker has been revoked, so you won't be hearing sounds and music out of that device you forgot you don't even have anymore. Even the graphics are off as the Windows command prompt fonts are only approximations of the original glyphs burned into video BIOS chips. Finally, as the command prompt has lost full screen ability, so too has Castle.

The standard solution to all of these problems nowadays is DOSBox, the most Heroic software project ever undertaken by humans. DOSBox plays Castle beautifully, emulates the environment perfectly and runs on all operating systems. BUT… there are some barriers to entry. First you have to know about DOSBox, then you have to configure DOSBox, which means you have to know how to do that, then you have to find the original Castle, then once you get DOSBox running and Castle loaded you have to know that it's still too fast and that you need to crank down the emulation speed to a crawl, and so you need to know how to do that… all of which is fine for us faithful nerds but it's a lot more complicated than when I was six.

There's also an issue that emulation doesn't address: exactly what is the correct speed to run Castle? I love this question because there's only one man who knows the answer, and that's the game's author, Kevin Bales! There is only one machine that runs Castle at the correct speed, and that's the machine Kevin Bales wrote it on. Since that machine's identity is unknown, so is the correctness. But since it's my childhood I have a pretty good notion as to what it should be, but that's all it is, a notion locked in the brain.

So the problem of preserving Castle for the ages has been solved… but it's not a one-click shiny-button affair. And it involves some subjective technical issues intertwined with some serious childhood nostalgia. And hey you know what, those SAVE and LOAD commands in the game never worked! Also… I can program computers. Uh-oh.

So I rebuilt Castle from scratch as a native Windows program! There, I've admitted it. Actually, I did this two years ago. I think it might have been a cry for help, but if that's true then I didn't do a very good job because I forgot to tell people. Have I learned nothing from Dr. Strangelove?

Castle Adventure is a standalone application that looks, acts, sounds and feels exactly like the original within a tolerance of 1 Benshoof. It's written to be immediately playable, portable and run on all Windows machines until the end of all humans. The game contains an image of the original IBM PC font for consistent display, the game speed is fixed instead of machine-dependent and the internal PC speaker sounds have been converted to WAV format so that they play as standard audio. I've also embedded the original data file, castle.ran, and use it for drawing the rooms and their descriptions so I can promise brick-by-brick and typo-by-typo accuracy. (Try not to challenge your mom on how to spell COORIDOR.)

As the source code to Castle has never been released, I had to reverse engineer all of the text commands and general behavior. I took everything I knew about the game and worked from there. I inspected all of the raw text embedded in the original program file for things I didn't know, which I found, and I snooped through the source of an Allegro graphical remake to see if there were any rules I didn't know, which there were. With all of that and a couple DOSBox windows open for quick testing, I believe I have every command handled identically to the original, but since it was just me giving it my best shot I can't guarantee it. Try to find a mistake! In a few rare instances I exercised editorial privilege, but only where I believed there to be an unintentional oversight that detracted from the original's spirit. These were extreme edge cases that not even diehards should notice, though I'd really be thrilled if anyone did.

Finally… fighting. There was some serious reverse engineering in the beginning to lay the groundwork… but then I just made up the rest until it was close enough. I found some surprising things about the original implementation, including what I consider a game changer, but the short version is that fighting is a very subjective experience in the original game. There are almost no visible indicators as to how a fight is going or how anyone is doing and it's all tied up in how fast your CPU is and how a DOS program handles keyboard input and timing events. All of that was already completely different in my Windows version but even if it wasn't it wouldn't matter because a good deal of the fight logic is random anyway. So I just made some stuff up, and since no one knows how it really works, and it only "worked" on one machine ever, I think we're good. It feels about right.

So please enjoy Castle Adventure, now for Microsoft Windows! You can toggle the display through three timely colors of Gray, Green and Amber because back then our monitor had a switch on the front that let me do exactly that. I figure it was for spicing up monochrome programs, and consarn it that's exactly what I did when I got bored with Gray walls. There's also a Full Screen mode which I recommend using on the largest TV you can find, preferably if said TV is mounted in a major American airport. Anything to stop the CNN. And please please enjoy the SAVE and LOAD commands, because they've waited 26 years to work.

If you do enjoy this, and at this point even if you don't, I'd like to hear about it. I'm especially interested in any discrepancies you can find between this and the original. Unintentional ones will be quickly exterminated and credited. Oh, and I'm especially especially interested in hearing from you if you are Kevin Bales! Though I may need to verify your identity with a question that only you would know, such as "What room is the lamp in"

PS: Macintosh friends, theoretical Linux acquaintances, let me tell you how Castle runs on WINE: LIKE A WOLVERINE, and I've seen a wolverine so I know what I'm talking about.