Jump to content
IGNORED

Game Engines? infocom or Synapse.. what is status?


Bikerbob

Recommended Posts

Hello all, now that I have pulled the atari out and started getting into the the 'scene' again. I wondered what I would want to do that would contribute to the community.

 

I am not a great coder, I am not a hardware designer, I do love to do mods, and consider myself pretty good with a soldering iron. I am a mechanic, so I love to fix and tinker. I also love to play Roleplaying games.. but OLD SCHOOL pen and paper Roleplaying games.

 

To that end I LOVED INFOCOM, even Adventure International.. I loved text adventures. I think the INFOCOM items were software I always lined up to buy when it came out. The only ones that if someone put a new one up on Ebay.. I would buy.. and open it.. and play it! :)

 

I also know that INFOCOM created an engine of sorts for dealing with text input, and that later Synapse came out with BTZ (Better than Zork) text input engine. I think I would love to try my hand at writing a text adventure. IS there any information what happened to this software? IS it possible to reverse engineer it from a game?

 

What is the legal status of that at this point?

 

I did write my own on the level of AI text games, back in the day.. it was a 9 room dungeon adventure, and the vocabulary was about 24 words and the if/than tables I had to make in basic back then were crazy. and huge just for 9 locations with on average 5-7 actions possible in a given location.

 

Anyway.. would love to hear about anything you might know.. can I use these "engines" to help me write my new "electronic novel" :)

 

James

Link to comment
Share on other sites

Hello James,

 

Certainly check out any "Inform" site as those tools can be used to define and create your adventure.

 

For running on the Atari 8-bits you'll need to target the '3' commands as the interpreter only reached that level on the Atari.

 

As for status: A long time back now, I re-engineered interpreter used with the Hitch-Hikers Guide to the Galaxy such that I could locate it elsewhere in memory (to run from cartridge).

I would still at some point take a look at the 4 & 5 interpreters used on the C64 and incorporate these into the Atari sources to give us an interpreter that can run the larger games.

However its not a high priority as those can be run in many other forms but remains a 'nice to have'. Happy to assist anyone wanting to take up that gauntlet though.

 

Essentially, once you have your 'Z3' file, this can be appended into a disk image already holding the interpreter and that takes care of everything.

 

Good luck!

 

Mark

 

[Edit] useful info here

Edited by Wrathchild
  • Like 2
Link to comment
Share on other sites

Hello Wrathchild, this is all new to me.

 

I have been reading..

 

SO what you are saying.. is inform seems to be at level 7 - but Atari only reached 3?

 

Inform - is independent parser and I could use it to write my game.

 

Your saying it might be worth looking into trying to take what has been written for level 4-5 and seeing if we can make it work?

 

I am amazed and happy, I had no idea that interactive fiction had come this far. In the maze of eye candy graphics cards.. I assumed the text or interactive story had passed away.

 

I am looking into it all now. thankyou.

 

James

Link to comment
Share on other sites

Hmmm.. I am surprised to not have found z-machine interpreter for the atari 8bit.

 

There is talk of a Tom Hunt that converted one with a wraper to fucntion on the 8-bit.. but why if it was done up to V5 on the C64.. in all this time has no one done it for the A8?

I think it would be awesome to play v5 level games on the atari.

 

I would like to know how we can work on this.

Link to comment
Share on other sites

Simply that Infocom decided not to release those titles on the Atari 8-bits as the next level of interpreter required more RAM and probably disk space too. So although the 130XE would have been OK I'm guessing most people would have had 48K or 64K at that time, so not commercially viable? Also I thought there may have been a shift to 80 columns for the text but that seems to cover the C128 and the C64 remained at 40.

 

To get V5 running on the Atari we'd need to reverse engineer Sherlock or Border Zone's interpreter from the C64. From both knowing how the internals of the A8 V3 interpreter and say Frotz sources as a cross-reference, piecing together the improvements needed to make the V5 interpreter for the A8 would be possible.

 

To answer the 'not found an 8-bit Atari z-machine interpreter' - there's one on each original title. One (in theory) can run any of the other games,

 

The work Tom did, e.g. with some of the sample sources like 'Alice', took the same approach (although I think he did manually hack the interpreter a little).

That is; find out where the z-code in located on the disk image and substitute your new z3 code there instead. At runtime the interpreter gets everything it needs out of the z-code's header.

I think also with the disks Tom did, the size of the games wasn't large (like the Infocom ones) and so didn't need to span two disks as where you split the single z3 file would be critical.

 

There is a thread Injecting an Infocom game into an ATR which links to Z-Code Interpreter

 

If I get a chance tomorrow I will try and demonstrate how to splice a compiled z3 onto an existing Infocom ATR image to run it.

Edited by Wrathchild
  • Like 1
Link to comment
Share on other sites

OK, I've used files taken from: if-archive/infocom/compilers/inform5/ (examples, executables, library)

 

By changing the "Switches v5;" to v3 in the alice3.inf file I could then build it using "inform -o alice3"

 

I hex edited a copy of the "HitchHikersGuide_side1.ATR". Having located the HHGTTG header at the offset $1C10 I then replaced data from that point with the alice3.z3 content.

 

Launching the new ATR now displays the screen attached. Hope that helps.

Inform_Alice.zip

post-1822-0-61470100-1460772035_thumb.png

  • Like 5
Link to comment
Share on other sites

I've been looking into the C64 Sherlock Z5 interpreter and due to the well structured way the Infocom team wrote these interpreters (and using my Z3 work as a cross-reference) a first stab at labelling up the code in IDAPro went better than I'd hoped.

 

Therefore I would say that updating the Atari interpreter with the changed areas is certainly do-able, though there maybe a constraint of needing a 64K machine for playing the Infocom titles, small z5 titles might be able to run with 48K.

 

It would appear the C64 interpreter is kept simpler in that it does not support some of the Z5 features such as colour and pictures which may exclude some works but that should be OK.

 

Also, 720 sector disks would require a 3rd side to fit the games on and so using two 1040 sector disks could work. But I'll start by either trying to make one single non-standard size ATR to fit the game on, or run from cart.

 

[Edit] It would be worth doing the same for the Z4 interpreter too as this will cover the titles: A Mind Forever Voyaging, Bureaucracy, Nord and Bert and Trinity.

The Z5 interpreter only gives us: Beyond Zork, Border Zone and Sherlock but is the more common target for community based titles.

In theory making a single interpreter that can run 3, 4 or 5 titles that detects and utilises the version from the game's header would be an ultimate goal.

Edited by Wrathchild
  • Like 3
Link to comment
Share on other sites

Wow Wrathchild, you are just mowing through this. Very nice.

 

I am going to in the next few days spend a significant time on the inform sites trying to learn as much about this stuff as I can.

 

Thankyou so much for this effort. I see more than a few people have already downloaded your patched Alice file. :)

 

James

Link to comment
Share on other sites

I had thought it would be cool to do some interactive fiction for the 8-bit. What did Infocom use to write their games back in the 80s?

 

I found a thread that may help to create .z3 games:

https://groups.google.com/forum/m/#!topic/rec.arts.int-fiction/DtiIME5UNG4

 

But it would be even cooler to write and compile on the 8-bit.

 

 

Sent from my iPad using Tapatalk

  • Like 1
Link to comment
Share on other sites

I've been looking into the C64 Sherlock Z5 interpreter and due to the well structured way the Infocom team wrote these interpreters (and using my Z3 work as a cross-reference) a first stab at labelling up the code in IDAPro went better than I'd hoped.

 

Therefore I would say that updating the Atari interpreter with the changed areas is certainly do-able, though there maybe a constraint of needing a 64K machine for playing the Infocom titles, small z5 titles might be able to run with 48K.

 

That's awesome, and I think a great way to get some games that otherwise weren't on the Atari.

 

I have taken a look at frotz, and read the z-machine standard documentation front to back, and I may take a stab at trying to port frotz to the Atari. I'd have to implement a virtual memory system though, and probably require extended RAM to do this (I don't want to mess with loading pieces from disk... too many downsides/complications.) I think it may be possible to support all versions of the z-machine version 1-5 (maybe without sound. The interpreter signals to the game what features it can support and vice versa, and not all stories use all the features or need to use them.) Version 6 seems problematic, but it may be possible to a certain degree... unsure of that. There's tons of interactive fiction out there that you could then load up and play that should work, if you have enough extended memory.

 

I don't believe this will conflict with your efforts... and I'm sure everyone will hate it for requiring extended memory to load the story file anyway! :) The regular disclaimers apply: no promises, it may not work, timeline is indeterminate, the virtual memory system may be too slow, etc, etc...

 

Some compromises would have to be taken. Z-machine stack would probably be limited to 1024 instead of 65535 like most interpreters on "big" machines. Unicode printing would be out. Font 3 (character graphics) may be an issue, or at least require some thinking about solutions/kludges (Beyond Zork uses it apparently?)

  • Like 1
Link to comment
Share on other sites

Hi Shawn,

 

Yesterday I discovered Zeugma, a C64 re-engineering of the z-machine interpreter supporting Z-code 4, 5 and 8. But haven't downloaded the sources yet.
To build Frotz, presumably in C, may result in a large binary and so as the games want a lot of runtime RAM then as you say, a virtual memory method would be required to utilise RAM >64K. Or use a bank switching Cart for the code, e.g. keeping code in 8K and using the RAM underneath. :)

The main issue for the 6502 is going to be the execution speed. Even with the Alice sample this seems to 'think' about what you've typed for too long. So C over asm would make this worse I think.

 

Good news is that the code differences between the 4 & 5 interpreters are very few and far between and so catering for those in one executable is what I'll go for. I need to do the comparisons back against my Atari z3 interpreter sources but should be at a stage soon where I can try coding this and feeding it a z4/5 file.

 

Mark

  • Like 1
Link to comment
Share on other sites

Yes, you are probably right about the speed issue, and most certainly about code size! Which is why I'm glad you are working on it as well. :)

 

I guess we'll see if it's even possible to port Frotz.

 

That Zeugma looks interesting, but there does appear to be a lot of platform dependent pieces to it, and i see they are using a virtual memory model as well, preloading the data into the REU ram. Most z-machine games are too big for 64k, so that makes sense.

Link to comment
Share on other sites

Slightly OT, but I'd like to see a Z5 interpreter on the Apple //e that isn't a dog. The one I pulled from Beyond Zork has some quirks that really make it annoying when trying to play my own injected games (one - a translation of someone else's BASIC game into Inform, under the name Warp! - specifically detects it and runs crippled with a snide remark; the same remark can be seen if using ITF) with it.

Link to comment
Share on other sites

It sounds like you're more into the technology behind this style of game, but know that there's a whole Interactive Fiction software scene, with annual prizes for the best submitted game and stuff like that.

 

http://www.ifcomp.org

https://en.m.wikipedia.org/wiki/Interactive_Fiction_Competition

 

I love that they're playable on just about anything. Frotz on iPhone is quite remarkable.

 

Frotz by Craig Smith

https://appsto.re/us/xYtjr.i

Link to comment
Share on other sites

When I first did the z3 disassembly I think it was the Frotz sources I used as a cross reference to match what the assembly was doing to some functions and from that was able to label a fair degree of the code before starting on things like relocating the code base, removing 'insert disk' messages and treating a bank switched cart as a disk instead.

 

Reading the thread posted by gozar, the issue of speed might also be down to the included inform headers/libraries as it could be that the compiler doesn't filter out unused code?

 

When I'm back home I'll post up the Zork games on a cart image and you can see how better it plays.

 

If I assume RAM isn't an issue then something like a version that uses DOS calls could be possible, e.g. run on Spartados command line with the zfile as a parameter from a drive/partition on the CF card in your Incognito.

 

:)

  • Like 1
Link to comment
Share on other sites

If I assume RAM isn't an issue then something like a version that uses DOS calls could be possible, e.g. run on Spartados command line with the zfile as a parameter from a drive/partition on the CF card in your Incognito.

 

 

That was my vision. I have to admit at having a lot of doubt now about whether porting Frotz will be too slow after this discussion and reading the Zeugma blog post. :( Then again, I thought porting Moria might be impossible... but spent a lot of hours doing it anyway until it became clear it was possible.

Edited by Shawn Jefferson
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...