STARQUAKE DATA FORMAT
this document contains the data format for starquake, it is not complete but gives a good start and understanding. should you find any errors with this document or indeed have any information to add, please send me an email.

graphics download available

address 0xeb23  platform graphics
this table is a lookup for the addresses of the platform graphic.
type offset description
word 0 offset
type offset description
byte -1... attributes - standard spectrum colours
f b paper ink
7 6 5 4 3 2 1 0
byte 0...5 character on/off bits
byte 6 graphics pixels
the platform gfx are stored in an odd way. The first 6 bytes are
a bit mask to say which 8x8 block is available in the data. The data is stored in a 1x6 array so the maximum size of a graphic is 8x6 blocks or 64*48 pixels.
Basically for each row read the byte and if the x bit is set, reading left to right, there is a 8 bytes of data to follow to draw this 8x8 square.
The attributes start -ve from the original data and follow the same fashion. If you have decided to draw the 8x8 block, then an attribute block is available.
The attribute is calculated like this; ( where data points to the curren attribute )

    a = *data ;
    a &= 0x3f;
    if ( a==0x36 ) {
        a=(*data&0xc0)|_ea63;
    } else if ( a!=0 ) 
        a=*data;
    else {
        a=(*data&0xf8)|_ea62;
    }

    a&=~0x40;
    NOTE: The attributes have an affect on platforms and collison. the Bright bit (6) is used to determine if a block is solid or not. You can pass through dull blocks but not bright ones. You can see this in the design of the green anti-gravity tubes, and also the doors of teleporters (which are dull white). - Thanks to Simon Owen for this information

 

address 0xd03b  teleport information

type offset description
word 0 destination screen no
byte 2-6 ascii name

 

address 0x7530  screen data
the screen is a fixed 4x3 of big platforms so the data is a straight run of big platform numbers. locate the required screen by 12 to get the offset from this address. the map is made up in a 16x32 grid. 
type offset description
byte 0...3 top row
byte 4...7 middle row
byte 8...11 bottom row

 

address 0x9840  big platforms
this is a 4 byte record table. the 4 bytes are each a small platform graphic that make up the big platform in a 2x2 graphic. The graphic is draw from bottom right to top left. locate the big platform byte multiplying by 4
type offset description
byte 0 bottom right platform
byte 1 bottom left platform
byte 2 top  right platform
byte 3 top left platform

 

address 0x9740  Platform type information
this is  accessed by platform  no. it seems to have something to do with colour/behavious of the platforms. if the number is less than 0x50 then this is an attribute value that is stored in variable _ea63 and used for drawing platform graphics
type offset description
byte 0 attribute/behaviour
attrib
0x5n upward transport tubes
0x6n contain an area which kills on contact
0x7n ray effect
0xCn pick up flying pod thing
0xDn teleport
additional information on behaviours thanks to Matthew Wilson

 

miscellaneous  addresses
this table points to the actual graphic data of the platform sprites
address description
0xe074 blob sprites
The blob sprite is stored as a standard 3x2 graphic.
0xe8b4 laser sprite
0xadd4 font
0xdf40 blank graphic
0x6661 border corners