With assistance and permission of one of the authors, O’Dwyer has posted the source code of a 1980 text adventure, Castlequest, that was once available on the GEnie network, but thought to be lost until now.
I gather that it’s not yet possible to play the game until someone works out a few difficulties with compiling the ancient FORTRAN code. Meanwhile, I’m sure this will be of interest to many people here.
(This is why I keep Quux+1 in my RSS feed, even though most of it is technical posts on C++ that are entirely Greek to me.)
Note that there are still transcription errors being fixed, though. I’ve been helping out with that, but I’m probably missing things and anyway I still have about 30 pages left to look at.
I eventually managed to compile this on WSL after Googling a few cryptic error messages (I know rather less than an addled egg about this), and I’m just starting to play the game. (If someone produces a working Windows executable, please speak up. I was able to run the MinGW version of gfortran without errors, but the executable segfaults when I try to run it.)
It seems to lack some of the polish of Adventure so far, but I’m having fun exploring. The game takes place in a castle “somewhere in eastern Europe,” and you’re told that your goal is to find and kill the master of the castle. Meanwhile, in the very first room, you find a crucifix and a silver bullet. So it’s easy to guess what sort of person the master of the castle will be. Interestingly, this first room is a bedroom, and you start the game in the bed. All sorts of questions suggest themselves about this situation. How did we get here? If there’s any information about the player character, I haven’t found it yet.
LOOK works as expected, but there’s no EXAMINE. There’s a VERBOSE command, but it doesn’t seem to work - I have to keep LOOKing to get the full description of visited rooms. SAVE creates a file called CQUEST.SAV and exits, while RESTORE reads this file. Managing multiple save files requires renaming the files manually, and CQUEST.SAV is overwritten without warning on every save, so be careful.
I finished my proofreading, so I tried playing the game for a bit, using a version I compiled myself under Linux. I saw the same thing when quitting, but not every time. Maybe it’s tied to some event that isn’t running at the very beginning of the game (e.g. the werewolf)? I didn’t get very far, so most of my quitting was very early.
Speaking of the werewolf, once it appeared and I tried shooting it (I missed) it just kept following me around like a puppy, taking the occasional swipe at me and always missing. Does anyone know how it’s supposed to work? Looking at wwolf.f, I get the idea that he’s suppose to get more likely to hit you every time he misses. But I don’t speak Fortran, and I hadn’t even heard o the game before this.
I know zilch about Fortran but the PDP-10 ITS has an old Fortran compiler (Fortan IV, I think) that can compile the ADVENTURE. Coul this be used to compile the original code to Castlequest?
There where no problem to compile Castlequest with gfortran in CygWin. CygWin lacks the asa command to handle carriage control but it was quite easy to compile my own from, for example, this source.
I don’t know how the hell ifarchive.org is structured, but that link seems to go to the old version of Castlequest_win32. I can download the newer version including asa by accessing it from this page, even though the link on that page seems to go to the same URL. I don’t know if it’s an oddly persistent browser cache issue or ifarchive is doing something bizarre with HTTP referrers.
ifarchive.org is behind Cloudflare, which can take 24 hours or so to update itself for changes to files, which is usually the cause of such oddities. It seems to be okay for me now.
I’ve already started, but I really need to get a compilable version so that I can play the game. That will make it easier to decipher the Fortran, as it’s a dialect that I’m not familiar with…and I haven’t really used Fortran for 40 years, anyway.
What system are you on? I had no problem compiling it with gfortran but you have to compile the asa or patch branch because the master branch isn’t patched for modern fortran and is still the transcribed original for ancient fortran.