Friday, November 2, 2018

Adventureland: An introduction to TRS-80 emulation

I had long written off Scott Adams’ Adventureland as an unsophisticated early attempt at bringing adventure games to microcomputers, vastly inferior to Zork I released two years later on the same TRS-80, notable only for being the first adventure designed for a microcomputer. “Firsts” never really interested me unless they were influential too. Zork I would have happened with or without Adventureland; an early PDP-10 version of Zork had already existed in some form on a PDP-10 at MIT by this time. Roberta William’s series of adventures on the Apple II have no evident influence from Adventureland, and led to King’s Quest and the graphic adventure genre. But Adventureland just seemed like a dead end, popular enough for Adams to found Adventure International and create 11 more text adventures in a similar vein which paled in comparison to Infocom’s full prose, advanced parser, and complex scenarios. They mainly sold on less powerful computers like the VIC-20 and TI-99/4A, becoming obsolete and irrelevant as these machines did, and forgotten as graphic adventures took over.

But it was popular in its day, and is on my whaling log. For the first time, I will play it in a serious manner.

Playing the game in a historically accurate manner proved challenging. The original version was distributed on a cassette tape which ran a BASIC program that loaded entirely into the TRS-80’s 16KB of memory. At some point, probably in 1979, Adams remade Adventureland in machine language. Other versions existed as compilations on diskette format.

There are modern Windows and Web-compatible interpreters for all of Adams’ Adventure International games, but I wanted to emulate a TRS-80 and deal with the experience of loading a cassette program. MAME can emulate a TRS-80, and trs-80.com offers Adventureland in a variety of formats including .cas.

Ultimately, I found a number of reliable ways to play Adventureland. I’ll present them, with pros and cons.

Setting up MAME


These steps are common to all of my methods that involve emulating a TRS-80. You can skip this if you’d rather just use a Windows or web interpreter. As of this writing, MAME is at version 0.202, and these instructions work with MAMEUI of this version.

To play this version, get MAMEUI here:
http://www.mameui.info/

Download this package:
https://drive.google.com/uc?authuser=0&id=1g6BQ3QXnOwhxpxRcirYZxKUvQ9iPxXB4&export=download

Extract the package into your MAMEUI directory, overwriting the folders there.

Launch MAMEUI.

On the left-hand side of the window is a list of categories, such as “All Systems” and “Available.” Right click the one called “Computer” and click “Audit.” Wait for this process to finish.

Locate the machine “TRS-80 Model I (Level II Basic).” Right click->Properties.



Under Display, you want “Run in a window” checked. If you haven’t spent much time emulating a TRS-80 through MAME before, trust me on this.



Under Miscellaneous, you want “Show Menu” checked.

OK out, and double-click the TRS-80 Model I Level II icon.



The Media drop-down menu lets you mount and unmount media files. You’ll need this.



Options->Configuration lets you enable or disable floppy disks, which is also important.

To save or restore a game, first unmount the cassette, and then mount “save.wav.” Do this even if you already have “save.wav” mounted, this will ensure that the tape is rewound all the way.

To save, open the Cassette menu and hit “Record.” Type “SAVE GAME” ingame, and follow the instructions.

To restore while ingame, type “QUIT.” You’ll eventually be asked if you want to play a new game, answer “Y.” You’ll be asked if you want to restore a save, answer “Y” and follow the instructions.

In the BASIC version, saving and loading takes about six minutes. In the machine language version, it takes about 45 seconds.

BASIC version on MAME with cassette and disk


Pros:
  • Possibly the authentic original version
Cons:
  • Not totally authentic
  • Somewhat involved setup
  • Slow, slow, slow!
  • Slow loading; takes 21 minutes just to load the game data
  • Slow saving, takes 6 minutes to save a game and another 6 minutes to restore it
  • Slow gameplay; takes several seconds for the program to react to your commands
  • Unfinished feel
  • Clunkiest parser out of all versions
  • TEXT IS IN ALL CAPS
  • Clumsy keyboard controls

Thanks to Jimmy Maher at Digital Antiquarian for providing this version!

This represents Adventureland in its earliest known state. A BASIC version was coded first, and a machine language version coded later and released through The Software Exchange (and later Adventure International).

I can’t find much in the way of hard facts regarding the BASIC version’s commercial distribution. The earliest advertisement, in an issue of SoftSide magazine printed in late 1978, is bizarrely worded but indicates that it includes Adventureland and its sequel Pirate Adventure on a single diskette. We know that Adventureland came first and was originally on a cassette, by itself, so even this first advertisement isn’t for the original BASIC version.

Nor is this version completely authentic to the original cassette tape version. The original cassette tape starts with an interpreter program, which then loads data from the remainder of the tape, to be used by the cassette program. In 1980, at which point Adams had long converted over to machine language, he coded a new “adventure builder” program in BASIC which would allow end users to create their own data tape, and the source code for the interpreter and this “adventure builder” were published in SoftDisk magazine. This disk image contains code transcribed from the magazine, rather than being the original BASIC interpreter and data, which may not exist anymore.

Run MAMEUI, and run the “TRS-80 Model I (Level II BASIC)” machine.

Make sure floppy disk drives are enabled!



You’ll probably want the keyboard set to “Natural.” I’ll assume you are doing this.
From the media menu:
  • Mount the cassette to “adventureland-data.wav.”
  • Mount Floppydisk1 to “NEWDOS_80sssd_jv1.DSK.”
  • Mount Floppydisk2 to “adventureland-interpreter.dsk.”
You might need to restart the machine, with Options->Hard Reset.

The machine should boot into NEWDOS/80.



Type “BASIC” at the NEWDOS/80 prompt.



Now run these commands exactly. Note that the left arrow key deletes, rather than the backspace key.



Yep, it will take 21 minutes to load! And the sounds coming from the machine will be shrill – that’s what the “audio” on the cassette tape sounds like! So wait 21 minutes, and mute your speakers if you like. MAME will display a virtual tape counter on the screen.

Once it loads, make sure your caps lock is on, because from here on it is possible to type in lowercase, but Adventureland only accepts commands in upper case! The left arrow key still serves as backspace, and your actual backspace key won’t work.

Machine language version on MAME with quickload


Pros:
  • Mostly authentic c1979 gameplay experience
  • Instant loading
  • Fast gameplay
  • Feels reasonably finished and polished
  • Intuitive keyboard controls with emulated keyboard
Cons:
  • Not the true original, contains some content and features that wouldn’t be present until Adams’ third or fourth adventure
  • Quickload isn’t authentic TRS-80 behavior.

Machine language versions of various TRS-80 games, including all of Scott Adams' adventures, may be downloaded in a variety of versions and formats here:
http://www.trs-80.com/wordpress/archive-search/

I am fairly certain that the .cas files distributed above accurately represent commercial copies of Adventureland distributed either by The Software Exchange or Adventure International.  But I couldn’t get them to work in MAME’s Model I machine, only in the Model III machine. Fortunately, they are also offered in a "cmd" format more or less equivalent to a DOS exe, and these files can be loaded directly in MAME, skipping the cassette load step entirely. This worked just fine with the Model I machine.

Run MAMEUI, and run the “TRS-80 Model I (Level II BASIC)” machine.

Make sure floppy disk drives are not enabled!

Mount the Quickload to “adventur.cmd.” Unmount all other devices.

You might need to restart the machine, with Options->Hard Reset.

That’s it, the game should just work!

ScottFree Windows 32 port


Pros:
  • No emulation involved
  • Easy setup
  • Includes most of Scott Adam’s Adventure International library
  • Decent porting accuracy
  • Makes good use of Win32 features (GUI, fonts, file dialogues, etc.)
  • Quick and easy saving and restoring
Cons:
  • Not authentic period play
  • Look and feel isn’t very immersive

Just download the package here.
http://www.msadams.com/downloads.htm

You want the version compatible with Windows 95 through Windows 8 (not the PDA version). Extract wherever, run ADVENT.EXE, and within that program load “adv01.dat.” You can probably operate it fine without further instructions.

Inform conversion


Pros:
  • Play in your web browser
  • Can undo moves by using the “back” button on your browser
Cons:
  • Not authentic or accurate
  • Design appears to be based on BASIC version
  • No way to save and restore

The path of lowest resistance. There are conversions to Inform (the Infocom engine) for all of Scott Adam’s games playable online, but they aren’t accurate representations at all. Most notably, the parser accepts Infocom style full sentence commands rather than Adventure style two-word commands. Not everyone will consider that a bad thing.
https://www.ifiction.org/games/index.php?cat=44

The CMD file path was the first one that I figured out and deemed acceptable (the Windows and Inform ports are too far removed from authenticity for me to consider), and it’s how I played through the game.

No comments:

Post a Comment