Monday 7 February 2022

"House Adventure" by Anonymous: A TRS-80 Model 100 Game


Similar to my last post about "Space Derelict" I recently converted another interesting and obscure text adventure program, but this time as a response to a request from someone who had wandered into my text adventure page:
Jim, I've got one more random game request that one of my cousins remembers playing. We believe we found the code here - http://www.ifarchive.org/indexes/if-archiveXgamesXtrs80.html. It's under the first section on the page, and is called "House Adventure". Any chance it's an easy one to post for play on your emulator?


I converted this program to Micro Color BASIC from source from the Club 100 Library of text adventures link mentioned above.  As in my conversion of Space Derelict, I ended up making a lot of modifications to the program to make it more coherent. But for this one I also made changes to make it more forgiving/winnable/playable.  I think it had an excessively brutal level of expectation of a player's willingness to restart a game after losing or being put in an unwinnable position. This level was only justifiable in a time when programs were rare and hard to come by. It also simply had some bugs. Both of these reasons were possibly why my contact's cousin had been so frustrated/fascinated by the game to want to return to it all these years later.  But also, there was a swan of a game waiting to emerge, which I think must have also been a part of his captivation. So I don't feel bad about altering this old program from its original form.


It was only after a lot of bug fixing and conversion work and lots of frustrating hours trying to solve the game (using peeks at the code garnered from the conversion process) that I discovered via a comment by Strident on the CASA Adventure forum, that Gaming After 40 had done a walkthrough of the game: "Adventure of the Week: House Adventure (1983?)".  I had already fixed many of the oddities that he also had noticed, but his post put me on to a few more. Here's a list of the main changes that I made (and can remember):
  • I fixed the strange illogical wrap arounds in the map. They didn't seem to add anything to the game play, and if they were there as a way to create a surreal atmosphere it didn't work for me. It just made me feel like there were errors in the map info.
  • I also changed the game so that the player has 60 moves with the flashlight, not just 40, which would allow for a fairer exploration of the basement. Also, if you end up in the dark, you die less quickly, providing you with some possibility of making it out from memory after the lights go out.
  • Bugs relating to floating-point numbers being generated by the random number calls are also fixed.  This and the weird room wrapping makes me think this may have been a botched conversion.  Also, the messages seemed to be formatted for something like a 32 X 16 column screen and not the 40 by 8 screen of the Model 100, which makes me think it may have started life as a TRS-80 Coco program (or possibly for the C64 or Atari game). But I couldn't find anything like it in the 4 Rainbow Adventure books. One thing that speaks to it being a Coco or TRS-80 Model 1 conversion, is that the RND calls typically take the form of N=RND(1)*4-1 for floors (0-3) or magic words (0-3) and N=RND(1)*9-1 for one of the 10 rooms (0-9) on each floor.  On a Coco you'd get such numbers by doing RND(4)-1 and RND(10)-1. There is also one instance of RND(1)*10-1 for random room assignment.  I think the programmer didn't really understand the nuances of Microsoft's various random number generation conventions, which were different between the version of BASIC on the Model 100, and that of the Coco and Model 1. The programmer really shouldn't have kept the -1 in there, since, for example, RND(1)*4-1 would only result in integer values between 0 and 2, thus omitting the last magic word as a possibility. Instead, I changed these references to generate consistent 0-3 and 0-9 ranges where appropriate.  In certain instances, 0-8 was needed, such as to omit the possibility of  assigning monsters to the elevators (room 9 on each floor).
  • I corrected a few spelling errors.
  • Now when carrying the aluminum dime into a phone booth you are guaranteed to be transported to one of the other booths in the house, and therefore notice the magical effect. I think "phone nook" or "phone vestibule" might be a more accurate description of these rooms (old mansions have these), but I left it as "phone booth."
  • You now have a 5 item carrying limit, instead of 4, which means the game is no longer an endless slog of to-ing and fro-ing. You have to keep hold of the flashlight and its batteries (for the basement), which eats two items and later the dime (for using the phone booths to get to the 3rd floor), which only left 1 item space under the 4 item limit. Since you must usually also carry one item to complete a task, and there might be multiple tasks and sometimes multiple items in an area, you would have to make multiple tedious trips into an area just to bring items out after solving a puzzle to gain access to them. Seemed ridiculous, especially when some items (like the batteries) go inside another item.  Even the crazy map wrap arounds made little difference in regard to this problem. In terms of possible shortcuts they might save you one or 2 moves at best.
  • The awkward formatting of the final victory message is fixed.
  • The monsters can sometimes be relocated to the Foyer, which is where you can drop items before getting the key and transferring them outside for your points. Sometimes you can lose simply because a monster gets shifted to the Foyer and then it prevents you from picking up any of the items, including potentially the item that allows you to banish the monster if you didn't notice the monster before dropping that item; or if you carried it directly outside (where items disappear at random). It seems a real shaft that you can inadvertently take items outside and then lose access to them (are people stealing them?) and then realize you need them again because a monster got shifted into a room with another item in it and starts protecting everything there. This forces you to store things in the Foyer, just in case, and then once you do this and are hauling items there (all the to-ing and fro-ing) only to realize that a monster shifted in, and you are now stuck because you have just dropped an item needed to banish that monster.  Also, the fact that the items can create a list so long that they actually scroll the screen adds to this infuriating possibility.  So I added a scroll pause routine when the item list for a room gets long.  But I wonder whether it would be better to simply prevent monsters being shifted to the Foyer. The author certainly seems to have delighted in finding ways to foil the player's (tedious) efforts to collect treasures. 
  • Now the 3rd floor phone booth will always transfer you to another phone booth, even without having the dime, so you can't get trapped on the 3rd floor before getting the dime. This can happen if you get there by discovering and testing out the magical words, which can zap you to random rooms. Text adventures shouldn't just be about meticulously recreating movement patterns learned after continuous arbitrary failures. They should be about figuring out clues and solving puzzles while exploring.
I was tempted to correct the use of a garlic clove to scare the Werewolf away, but I did find a single reference online to Eastern European beliefs about garlic warding off all manner of evil creatures including werewolves. So perhaps this is a clue about the ethnic background of the programmer.  But as Gaming After 40 suggests, this is not "canon" in terms of broader popular culture.  Garlic and sunlight  (and flashlights?) are for vampires, wolfsbane or silver are for warding off werewolves.

I also did a bunch of alterations to the arrays to consolidate them into one single multidimensional array to make the game save feature work on an MC-10.  So if you want to use that feature you will have to use Tamer's VMC10 emulator rather than the online MC-10 emulator, which doesn't support file saving.  Here’s a link to the VMC10 repo:

https://drive.google.com/file/d/1IZ7z84dlKLHu8IBOzNpFKbX4N3C03r8I/view?usp=sharing

It contains all the MC-10 programs including all the text adventures displayed on my rare text adventure page:

https://archive.org/details/@james_gerrie?and%5B%5D=subject%3A%22text+adventure%22

It also includes HOUSE.C10, in the JimG directory in the “Cassette” directory.  You can just launch vmc10.exe from the directory that you unzip the repo to and then can play any of the files in the Cassette directory.  Type RUN to launch the game after CLOADing it.

My version of House Adventure should be more coherent and forgiving than the original, but it is still a  tough adventure. I have played it to completion (see the video above--spoiler alert), so I know that it can be resolved. If you need help, then the Gaming After 40 walkthrough on his blog will get you through. He also outlines many of the bugs and weirdness that you need to remedy to get the original program to run on the TRS-80 Model 100.

I'd like to thank my informant for putting me on to the game. Strident and the other archivists over on the CASA text adventure site realized the the game wasn’t catalogued when I posted about it, so his suggestion was helpful for bringing it to their attention.

HOUSE can be tried online here, although you won't be able to use the helpful game save feature (saving is not supported by the online emulator): 

No comments:

Post a Comment