Jump to content
IGNORED

Infocom Interpreter for F18A


Recommended Posts

Here's my TMG reconversion files. The original Z3-DAT's used 256 bytes per index. On the TI the Z3-DAT file is split into GAME1 and GAME2. GAME1 (loaded into mem) contains the missing 256th byte that is needed for GAME2. The Masters Infocom Interpreter was used along with the DAT to GAME1/GAME2 conversion along with some hex editiing. This was done back in my Win98SE-V9T9 days.

 

The SuperCart versions are omitted in the V9T9 zip due lack of support in the emulator.

INFOCOM_ARC.zip

INFOCOM_V9T9.zip

INFOCOM_Classic99.zip

INFOCOM_DAT_Files.zip

  • Like 4
Link to comment
Share on other sites

Here's my TMG reconversion files. The original Z3-DAT's used 256 bytes per index. On the TI the Z3-DAT file is split into GAME1 and GAME2. GAME1 (loaded into mem) contains the missing 256th byte that is needed for GAME2. The Masters Infocom Interpreter was used along with the DAT to GAME1/GAME2 conversion along with some hex editiing. This was done back in my Win98SE-V9T9 days.

 

That's just too cool! Most of my physical floppy disks are The Master's original conversions and the original Infocom disks. Did you release the files/images back then? I have a few disk images dated ~2000, like zork1.dsk, that seem to match what you uploaded. I settled on the image because it had what appeared to be the latest interpreters.

Link to comment
Share on other sites

 

This is all the info I have. The file record counts will obviously differ for each game. I don't know what information is discarded by line 125, perhaps another interpreter+game file was used for the conversion to the TI files.

100 OPEN #1:"DSK3.DUMP",INPUT,FIXED 128
110 OPEN #2:"DSK1.GAME1",OUTPUT,FIXED 255,RELATIVE90
120 OPEN #3:"DSK1.GAME2",OUTPUT,FIXED 255
125 FOR I=1 TO 24 :: LINPUT #1:A$ :: LINPUT #1:B$ :: NEXT I
130 FOR I=1 TO 88 :: LINPUT #1:A$ :: LINPUT #1:B$ :: PRINT #2:A$&SEG$(B$,1,127) :: C$=C$&SEG$(B$,128,1) :: NEXT I
140 PRINT "GAME1 generated!"
150 FOR I=1 TO 415 :: LINPUT #1:A$ :: LINPUT #1:B$ :: PRINT #3:A$&SEG$(B$,1,127) :: C$=C$&SEG$(B$,128,1) :: IF LEN(C$)=255 THEN CALL NUKE(C$)
160 PRINT "."; :: NEXT I
170 CLOSE #3 :: PRINT #2:C$ :: CLOSE #2 :: CLOSE #1
180 END
190 SUB NUKE(C$)
200 PRINT #2:C$ :: C$=""
210 SUBEND

 

Any easy way to figure out what the record count's would be for the game being converted?

Link to comment
Share on other sites

 

Any easy way to figure out what the record count's would be for the game being converted?

 

Most likely that and possibly the pointers for the dictionary and other game segments, as embedded in the data structure. I don't know much about the conversion process used to create the TI files, though I can make some assumptions based on the articles I've read and the source code I've reviewed.

 

Torrax might know the answer and based on the files I've looked at, I wonder if the conversion program is his or is related to his efforts.

Link to comment
Share on other sites

The INF program runs in MDOS, as I see. Should have had that 25 years ago ... Only downside is that its title bar is not highlighted, as with the other 80-col interpreter that I know. Or is there a way to configure it?

 

You could create a simple program to set the blink color VR and set the 10 VDP bytes corresponding to the 80 screen image table locations. Easy way to do that is to point the the blink table into another VRAM bank then set the bits. If the interpreter resets the video mode on startup, you may have to disable the call to the XOP. And you may need to reset the mode (e.g., MODE 80) or run another program to turn off the blink mode when finished. Seems like a simple batch file could encapsulate turning on blink mode, running the interpreter, and turning off the blink mode.

Link to comment
Share on other sites

You could create a simple program to set the blink color VR and set the 10 VDP bytes corresponding to the 80 screen image table locations. Easy way to do that is to point the the blink table into another VRAM bank then set the bits. If the interpreter resets the video mode on startup, you may have to disable the call to the XOP. And you may need to reset the mode (e.g., MODE 80) or run another program to turn off the blink mode when finished. Seems like a simple batch file could encapsulate turning on blink mode, running the interpreter, and turning off the blink mode.

 

I just feel like disassembling the whole thing and fixing it directly. :)

  • Like 3
Link to comment
Share on other sites

I put the Infocom files on disk images (sector dump), usable in MAME.

 

I noticed that at least LGOP does not run with INF on the Geneve ("internal error" and "verify failed"). But you can run it with the cartridge "supersp2" on the TI-99/4A.

 

 

mame64 ti99_4a -cart supersp2 -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot8 hfdc -flop1 leathergoddesses.dsk

Infocom.zip

  • Like 3
Link to comment
Share on other sites

I noticed that at least LGOP does not run with INF on the Geneve ("internal error" and "verify failed"). But you can run it with the cartridge "supersp2" on the TI-99/4A.

mame64 ti99_4a -cart supersp2 -ioport peb -ioport:peb:slot2 32kmem -ioport:peb:slot8 hfdc -flop1 leathergoddesses.dsk

 

The same is true for Moonmist, Sampler 1, Sampler 2, Seastalker, and Wishbringer. All require the SuperSpace 2 cartridge and can be loaded like LGOP. It seems as if the INF program for MDOS does not support those games that require the SuperSpace.

Link to comment
Share on other sites

 

The same is true for Moonmist, Sampler 1, Sampler 2, Seastalker, and Wishbringer. All require the SuperSpace 2 cartridge and can be loaded like LGOP. It seems as if the INF program for MDOS does not support those games that require the SuperSpace.

I will try INF with one of the game disks from The Master for comparison.

The GAME1 file contains the pointers to the various data structures. It might be that the INF program is only loading the record count normally found in the earlier games. I'll take a quick peek during lunch time.

Link to comment
Share on other sites

There is ~3k difference when comparing LGOP to ZORK. This difference is larger than the file size difference of the two "GAME1" files. The effort to update INF or create an 80-column SC version is more than I want to undertake and seeing how the F18A compatible interpreter was my goal anyway, I'll wrap that up in this thread. ;)

 

Since the disk images you uploaded contain unique files named for each adventure, my plan is to update each disk by adding an F18A interpreter. This will allow the TIPI users to combine the files into one folder, if desired, and map it to DSK1. Re-assembling the interpreter would require me to find all of the VDP references for PABs and buffers, so I'm not going to try to increase the path.filename info beyond their current limits.

 

I have not decided what to do about the V9938 video register settings for VR0x8 to VR0xF. Maybe I should just remove the entries to avoid future compatibility issues. The V9938 folks can use the non-F18A version that is already on the disk.

  • Like 1
Link to comment
Share on other sites

LGOP, Moonmist, Sampler 1, Sampler 2, Seastalker, and Wishbringer used a larger dictionary size for the Z3 interpreter. I wrote a small program on the PC in QuickBasic back then to split the Z3-DAT file into two V9T9 GAME1 and GAME2 files.

 

There was a sampler disk offered for the TI-99/4A in some of Compute!'s Infocom ads (early/mid 80's). Does anyone have a copy of this available?? I believe this ran on a stock TI with 32K and disk controller.

Link to comment
Share on other sites

 

I put the Infocom files on disk images (sector dump), usable in MAME.

 

I noticed that at least LGOP does not run with INF on the Geneve ("internal error" and "verify failed"). But you can run it with the cartridge "supersp2" on the TI-99/4A.

peb:slot2 32kmem -ioport:peb:slot8 hfdc -flop1 leathergoddesses.dsk

 

I have updated the disk images in your ZIP file. The F18A interpreter has been added to all disks except those requiring a supercart interpreter. The F18A game and save file names have been edited to match the V9938/40 column interpreter counterparts. I included a simple readme file and an email excerpt from ~2000 regarding the collection.

 

Re: post #41, I decided to strip out the V9938-specific register settings. The F18A version no longer sets the VRs for blinking and color table. I felt keeping things separate would be best for compatibility reasons.

 

If an 80 column supercart interpreter is eventually located, I will be more than happy to "update" it and augment the collection.

Infocom game pack with F18A V9938 9918 and Geneve interpreters.zip

  • Like 3
Link to comment
Share on other sites

  • 10 months later...

So the Zork I game from the above collection does not work with the F18A. All I get is screen corruption. No issues running 40 columns though...

It might not be clear from the ZIP file but you need to launch the F18A interpreter yourself. I did not go through each disk to update the XB LOAD file, which only launches a 40 column and V9938 80 column interpreter. Someone offered to update the images and then rescinded that offer; I did not find it in my best interests (at the time) to use time updating those programs myself.

 

So for Zork I, try launching ZRK1F18A via editor assembler option 5. I suppose there may be problems not apparent until playing the game for an extended period, all I recall is that it worked in js99er and that I spent a few hours playing with a few games.

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...