DOS Frotz is back

I’ve managed to bring the DOS port of Frotz almost up to the level of the curses interface port. Loading zcode from a Blorb works, but very slowly. Graphics and sound in Blorb are not yet addressed, though old-style sound and graphics still kinda-sorta work. There’s still a problem with DOS Frotz crashing on real hardware and sometimes causing DOSbox to freeze.

I’m hoping to make a new release of DOS Frotz with version 2.45, which is expected when the Unix audio overhaul is done.

7 Likes

Hi David Griffith,

I’am interested by your portage project. I have send you a private message but we can abord it here. I want to create a Frotz for DOS compatible game with graphics. I don’t find any game that run with graphics on this software in her DOS version. Can you suggest me some tools for create zblorb files and tutorial about linking *.Zn file and graphics (maybe I must use EGA instead of PNG File, I don’t really know the way for make it work. By the way add some sounds to a game can interesting me too but I privilige the graphics to the sounds. What about formats to use? What about tools to use? What about the code inside the *.inf file? What about the blurb file edition?..A lot of question for now.

Thanks.

1 Like

I am interested in this port too.

I’ve got a functioning PCjr to test a new or future version on if that happens.

1 Like

Sorry that I missed this earlier. Frotz supports EGA and CGA only when reading from Infocom’s own graphic files. So far, I can unpack the graphics from each type, but there are things about interpreting and presenting the EGA and CGA data that I still don’t understand. That hampers my ability to get CGA and EGA versions working for Blorb. Stefan Jokisch (original author of Frotz) understands this better than I, but I haven’t been able to get in touch with him for years. This part of the problem is data extraction and interpretation.

To display newly-made graphics on EGA or CGA interfaces, real or emulated, those problems must be solved. Trying to put them into Infocom-style graphic packages could work, but it looks like nobody remembers how to do that anymore and that information is not in the Infocom Dump. This means using Blorb as a container is the only way to go, even though its overhead is more than reading Infocom’s graphic files.

The graphics in Blorbs are stored as PNG files. CGA, EGA, MCGA/VGA are not relevant as those come into play only when writing directly to these interfaces, as was common with DOS. DOS Frotz currently doesn’t do graphics of any kind when going through Blorb. Right now all it can do with Blorb is find and execute the Zcode chunk. Graphical display on DOS Frotz through Blorb can work if the routines that write to the CGA, EGA, and MCGA/VGA registers are rewritten to access what Blorb presents. As long as the data conform to the rules of the interfaces, that should work. Understanding what’s going on in Infocom’s CGA and EGA files would help me greatly in understanding what needs to happen to go from PNG files with the right palettes to displaying correctly on CGA and EGA interfaces.

The overhead impact of Blorb would be significantly lessened by a rewrite of fastmem.c to reimplement paging of the the read-only part of a Zcode file. That was removed sometime prior to version 2.01 because by that time, memory became cheap enough to simply suck in the whole Zcode file instead of paging it. That code is now lost and I’m trying now and then to piece it back using older versions of Mark Howell’s ZIP. Getting that functionality back as a compile-time option would be a great benefit to running Frotz on very limited machines, not just DOS. I’m thinking of the PDP-10 and PDP-11 lines of machines in particular and other minis and mainframes of 1970s vintage in general.

For creating Blorb files, I created Blorbtools. See https://gitlab.com/DavidGriffith/blorbtools. This is a collection of tools building on Graham Nelson’s early work on Blorb. He has since moved on to cBlorb, which is what Inform7 uses. These are written in Perl and are intended to be used on a Unix machine of some sort. I should really update that to document its use. In the meantime, look at https://gitlab.com/DavidGriffith/uninvited for how I use it. Blorbtools also contains tools for extracting data from the Infocom graphic files and preparing them to be packed into Blorb files.

4 Likes