The Curses and Dumb interfaces of Unix Frotz have V6 “semi-support”, that is, they draw outlines of graphics on the terminal where they should be along with a resource number, but that’s it. That support was written by Alembic Petrofsky, who seems to have gone missing several years ago.
Somehow I forgot to add Blorb support for this semi-support and I’m wondering what’s going on with the headers of Infocom’s original graphic files. Here are offsets defined in ux_pic.c
:
#define PIC_FILE_HEADER_FLAGS 1
#define PIC_FILE_HEADER_NUM_IMAGES 4
#define PIC_FILE_HEADER_ENTRY_SIZE 8
#define PIC_FILE_HEADER_VERSION 14
#define PIC_HEADER_NUMBER 0
#define PIC_HEADER_WIDTH 2
#define PIC_HEADER_HEIGHT 4
Of these, I can determine all but PIC_FILE_HEADER_FLAGS
and PIC_FILE_HEADER_VERSION
by going through the Blorb library. These two are unsigned short
and unsigned char
respectively. What are these numbers for? The flags one seems to have something to do with scaling whereas the version is stored in the zeroth entry of an array of structs for storing picture resources (original dimensions, scaled dimensions, and resource number). By asking for the zeroth picture, the game is then given the number of pictures as the height and the version number as the width.
I suppose that I can cause Frotz to return the “correct” version number by using the existing mechanisms for handling special conditions, but I’d really like to know what Infocom did with that version number.
I see version numbers listed at http://ifarchive.org/if-archive/infocom/info/fact-sheet.txt