Tools for creating retro tape-based parser games?

I’m a little disappointed that Level 9 didn’t get as much love as Infocom over the years, as using some version of their system would have been ideal.

I hadn’t considered using the Scott Adams tools, as I only ever played Adventureland back in the day, so don’t really know what his later games were like to play. I’ll see what I can find out about them.

Many of the first 8-bit machines had less than 64Kb of RAM. The first Dragon had only 32Kb and some models of the Spectrum had just 16Kb. I would love to be able to create at least some games that fit into 16Kb.

Disk drives for early machines were rare in the UK and probably even rarer now. Physical machines that could use a standard cassette player (rather than a dedicated one) should be able to load and save using a digital recording device though.

I did take a look at DAAD, but (as several of you already mentioned) the source for the interpreters is not available and it only supports the most popular machines.

Creating several BASIC interpreters would be problematic, as BASIC itself was interpreted on the platforms I’m hoping to target. This means that BASIC itself eats up a lot of available memory and is quite slow.

Another issue would be that almost every manufacturer had their own dialect.

I believe that Pascal compilers were available for some systems, but I’m not sure how easy they would be to get hold of these days.

I was hoping to avoid creating a new system from scratch, but it’s starting to look like my only option.

3 Likes

Probably won’t help your original motives and I am not sure if there is anything still out there. I had several of the Scott Adams adventures on cassette for my Exidy Sorcerer. This was a 16kb machine although I did mod it up to 56kb. Most of the Infocom adventures were on floppy disks.
There might be somthing available via some of the emulators but that would be a long shot.
Some of the ones I had on tape were also programmed in Z80 assembler too.

I have an RC2014 Z80 Retro built from a kit. Zork 1, 2 & 3, Planetfall and Hitchhiker are readily available for the Z80. As discussed on another thread, there is an “interpreter” available for each game. It was an easy change to mod Zork 1 to play Hibernated. A Z80 z machine interpreter is in development. I have never looked into a working tape system.

The job of “develop games on a modern 2021 supercomputar that can be played as memory-resident on 1981 home computars” is most easily accomplished with a Scott Adams development system. Henrik mentioned the two contemporary development languages for SA format. The games are memory-resident by design. You (or someone) would need to do some work to build the playable tape images for each platform.

If you want to roll your own parser (or, I don’t know, port something?), you might get some traction with a newer cross-platform dev environment like TRSE.

Shame about Level 9 not releasing its devtools, but, that’s how it goes.

It would probably not be a good idea to create several BASIC interpreters, although you could just revive a dormant tradition, do what was actually quite common when those machines were new, and write the games directly in BASIC with an eye toward multi-platform conversion. The pages of magazines like Compute! are chock full of real-world examples of this practical-if-burdensome approach to solving this problem, with modified listings that reflected the subtle differences between Atarisoft BASIC, Applesoft BASIC, CBM PET BASIC, etc. etc.

1 Like

Just to provide some numbers here: I just picked up my copy of BASIC Fun with Adventure Games (1984) from my shelf. The sample game listing at the back of the book is 421 lines (I think; by hand-count) over 22 pages, and the only line that has to be changed from the Apple 2 BASIC of the listing for IBM PC users is line 500: 500 HOME becomes 500 CLS: KEY OFF.

The dialects of BASIC are different, but there’s a lot of overlap between them, and thoughtful design can make porting less of a problem than you might think.

2 Likes

On the other hand, I have a book called “The Mystery of Silver Mountain” which contains a text adventure listing for CBM 64 + Vic20, BBC B + Electron, Apple II, TRS-80 (32K) and Spectrum 48.

The program listing is about ten pages, with a further three pages of changes to make for individual computers.

The BBC and Electron need minimal changes, but those for the Spectrum are spread over a page and a half. Changes for the other machines fall somewhere between those two extremes.

I’m a little disappointed that Level 9 didn’t get as much love as Infocom over the years, as using some version of their system would have been ideal.

I presume that by “didn’t get as much love”, you are talking about the fact that nobody has reversed engineered the system and come up with Inform-type system that compiles to Level 9’s A-Code, which I agree with totally.

I hadn’t considered using the Scott Adams tools, as I only ever played Adventureland back in the day, so don’t really know what his later games were like to play. I’ll see what I can find out about them.

Here in the UK, outside of the earlier imported TRS-80 releases, the versions of Scott Adams games we played on our home micros were the ones created by Brian Howarth. He started with his own adventure system which he then later tweaked so it would be compatible with Scott’s. His versions of Scott Adams’ games, and his own epic Mysterious Adventures series, were released on a fairly wide range of tape-based formats; including at one point the 8K Vic-20. (He was never satisfied with those versions, though,) Ref: Molimerx's Mysterious Adventures

Many of the first 8-bit machines had less than 64Kb of RAM. The first Dragon had only 32Kb and some models of the Spectrum had just 16Kb. I would love to be able to create at least some games that fit into 16Kb.

You should be able to get something that fits into 16K yes, as long as your realistic. The early Level 9 games were released in 16K tape versions. (A lot less text and much heavily compressed than the ones most people are familiar with… Sadly none of those early versions survive so we can’t compare them with the 32K+ versions). Level 9 16K Text Adventures

There were even some other decent attempts at fitting the full Colossal Cave into 16K. e.g. Syrtis Adventure

Disk drives for early machines were rare in the UK and probably even rarer now. Physical machines that could use a standard cassette player (rather than a dedicated one) should be able to load and save using a digital recording device though.

It’s obviously not considered “a thing” by users on here, but tape is still really important in the UK retro computing community. There are lots (and lots) of physical game releases on tape every year… including quite a few text adventure games.

I did take a look at DAAD, but (as several of you already mentioned) the source for the interpreters is not available and it only supports the most popular machines.

There are people making new interpreters for DAAD. As I mentioned previously, a lot of the work is spearheaded by the clever chaps in the Spanish “conversational adventure” community who have worked for years creating retro-flavoured adventure writing systems. I doubt that any of your obscure platforms would be on the list. DAAD only really makes sense with 48K plus of memory.

Creating several BASIC interpreters would be problematic, as BASIC itself was interpreted on the platforms I’m hoping to target. This means that BASIC itself eats up a lot of available memory and is quite slow.

It can be slow, yes, but you’re going to have to trade something somewhere in order to hit your more obscure choice of target platforms… It’s going to be a choice of compromising on speed or on game-size. Or ultimately, I suspect, on the platforms supported.

It might be worth investigating adventures that currently exist for the target platforms, including the non-official ports of games from other systems.

Another issue would be that almost every manufacturer had their own dialect.

This is true but, as other posters have pointed out, there is an overlap and supporting/working with multiple dialects was very much published adventure systems did back in the day. There are still people out there who enjoy porting text adventures from one form of BASIC to another. Check out Jim Gerrie’s work here, for example Type-in Mania: Text Adventurers

I believe that Pascal compilers were available for some systems, but I’m not sure how easy they would be to get hold of these days.

On Z80 processors, C tends to be the language of choice, cross-compiling with z88dk, see Davide Bucci’s work for an example of that… he’s supporting something like 18 different platforms at the moment… Silk Dust - Davide Bucci
It might be useful touching base with people like Davide who have been on similar journeys.

I was hoping to avoid creating a new system from scratch, but it’s starting to look like my only option.

That will ultimately give you more control, but it would be a lot of work… definitely more than dealing with a few different dialects of BASIC!

Good luck, anyway! Always interesting to see people develop for a range of 8-bit machines. Tape-based text adventure gaming is where my 100% of my interest lies.

6 Likes

About BASIC type-ins - Hidden in the perlscott repo is this transcription of a SA terp (v4.6, Adventureland) for TRS-80 done by @pdxiv.This could “easily” be modified for different dialects and run the output from ScottKit.

1 Like

One thing that might be worth looking at is UCSD Pascal. It compiled to bytecode for a virtual machine, the so-called p-machine, which I think was a rather compact format (there was a UCSD Pascal for the TI-99/4A, which did not exactly have a lot of memory compared to some of the other machines available at about the same time).

I haven’t used it myself, but it looks like it’s still possible to download it. It’s also the development language used in Richard Vile’s Programming Your Own Adventure Games in Pascal. (Which is hopefully available somewhere at a cheaper price than the single copy currently listed at the Amazon link I just posted. Yeesh.)

1 Like

I actually bought a copy of that book for around £20 from AbeBooks about a year ago, hoping it would be helpful with FreePascal. I had to set up an email alert and wait several months to get it that cheaply though.

IIRC, the most common Pascal dialect for home computers was by HiSoft.

I also just found out that some of the updated DAAD tools are written in FreePascal/Lazarus. The dev branch of FreePascal also contains a Z80 compiler tool.

2 Likes

You should have a look at GitHub - Fabrizio-Caruso/CROSS-LIB: CROSS LIB - A universal 8-bit library and some games built with it

He has used it to build games for hundreds of 8-bit platforms, including ones with very little memory.

2 Likes

Level 9 has recieved some love, Terps for different platforms with source here.

No authoring tools for this format, though.

EDIT: I just tried it with a snapshot of Colossal Cave from VICE (C64 Emulator) and it seems to works flawlessly.

1 Like

It is what it is. It takes some hard, typically unpaid work from people who enjoy the challenge of reverse engineering the format and creating development tools and interpreters for it. The format is evidently well understood, since there are new interpreters for it. If someone with the programming skills had been determined to create a set of development tools, they would have done so.

Maybe make it your first mission to create a simple development tool for Level 9 format games?

5 Likes

The original Basic source code from Scott Adams published in Byte Magazine (PerlScott/basicinterpreter.bas at master · pdxiv/PerlScott · GitHub) isn’t as fully featured as the later incarnations of the interpreter, missing 5 conditions and 12 commands that are typically present in newer game data files. If those conditions and commands are avoided during the authoring, I’m sure the original Basic code could be made to work with minimal effort.

…However, I have suspicions that there are newer Basic interpreters around for the TRS-80 and other platforms which are more feature-complete. (I just never bothered venturing that far down into the digital archeology rabbit hole to verify that.)

Adding to what others are saying;

I’d be tempted to write my own “mini basic” which could be (fairly) easily ported to various 8 bit systems then write my games in that, so that they could be developed on windows, then ran on the target machines.

The mini basic would not need floating point nor any scientific functions, and instead perhaps have some helpful stuff for these kind of games, eg a 2 word parser.

For cassette tape operation, I’d be less inclined to worry about text compression (although that could be added) and instead make my games out of “levels”, where each, so-called, “level” is a new basic program that loads and plays. This way, you wouldn’t run out of memory on any system. But, of course, the game design would have to be around these levels.

So clearly, you need some continuity across levels, which would be a set of flags/states and some objects. Ideally as few objects as possible crossing “level” boundaries.

To give an example, and to keep things really simple, perhaps each level has a single final “treasure” that you must get. Say there are 4 levels, then there are 4 treasures, and these objects are present in all 4 level parts, but none of the other objects exists outside their own level. Now you can get the 4 treasures in any order.

Or, even simpler, the levels are sequential, so it can be assumed that you have all “treasures” from the all previous levels at each start.

some stuff;

A while back i wrote a mini-basic for embedded hw, and for fun(?) i ported it to the trs-80. I’m planning to check it into github after a cleanup. But that might be a good start candidate (just a few pages of C code & very low memory usage).

2 Likes

nd to expand on this crazy idea of why a trs-80 basic;

my own mad plan was to write a “star trek” game, where you could “beam down” on planets, and each planet would have its own mini game in basic. Obviously, there’d be only enough memory for one such game at a time.

And “winning” each mini game would have a reward, which would be a added to the main game. Stuff like, extra torpedoes, cloaking devices, phaser boost, and so on…

They’d be a bit like adventure games, but a bit of graphics too.

2 Likes

Check out TinyBasic. Dr. Dobb’s Journal has tons of information about it. I think archive.org has copies of it.

I’m not sure how useful creating a Level 9 development tool would be, considering that new interpreters would also have to be made for each supported platform. I would need a lot more information on how their system worked to even attempt it.

As for creating a bunch of mini BASIC interpreters, I feel it would make more sense to create a mini BASIC cross compiler or transpiler that runs on a modern machine and creates native code for the retro machines.

That’s an idea I’ve been thinking about on and off for a while, but I’m unsure how practical it would be.

There’s also TAB, ThinBasic Adventure Builder. Not too popular.

I’d probably just build some kind of framework that is portable across multiple BASIC dialect.

Unless there have been some recent changes, TAB and the games built with it only run on Windows computers.

I had envisioned a combination of mini programming language and a prebuilt adventure framework.

Unfortunately, the standard version of BASIC on 8-bit computers was interpreted (so much slower than machine code) and used up a chunk of the available RAM. For example, the Commodore 64 had only 38Kb or so free (out of 64) if BASIC was in memory.

There were third party BASIC compilers available for some machines, but I doubt they are easy to get hold of these days.

1 Like