SABRE WULF DATA FORMAT
this document contains the data format for sabre wulf, it is not complete but gives a good start and understanding. for futher information download sabre wulf  source this may help fill in some of the blanks. should you find any errors with this document or indeed have any information to add, please send me an email.

 

address 0xA29D Amulet Start Positions
this table holds the map start positions of the four parts of the amulet. there are 8 entries in the table
type offset description
BYTE 00 location for amulet part 1

BYTE 01 location for amulet part 2
BYTE 02 location for amulet part 3
BYTE 03 location for amulet part 4

 

address 0x6036 unknown location table
this table is used after a location has changed. it holds one byte per location type.
type offset description
BYTE 00 unknown

 

address 0x6066 map layout
the map is a fixed 16x16 grid. all location no references  are a direct offset into this table. the table holds a location type which is used for all other functions.
type offset description
BYTE 00 location type

 

address 0x6166 location type table
a list of offsets to the data for each location type, there are 48 entries.
type offset description
WORD 00 offset to location data

 

address 0x6200 start of location type data
the location data is a series of data that describes the graphic type and the screen coordinate to draw it at.
type offset description
WORD 00 offset - offset to background sprite data
BYTE 02 x coordinate
BYTE 03 y coordinate
... REPEAT UNTIL OFFSET = 0

 

other location types

two other location types are available but are not actually locations

offset description
0x61c6 grass border for presentation
0xc386 underwurlde end screen graphic

 

sprite structure format
this is the structure used for all sprite entries within the game.
type offset description
BYTE 00 sprite image no ( check the sprites in the download )
BYTE 01 current location
BYTE 02 unknown
BYTE 03 screen x coordinate
BYTE 04 screen y coordinate
BYTE 05 attribute color
BYTE 06 ( delta x ) ??
BYTE 07 ( delta y ) ??
BYTE 08 unknown
BYTE 09 unknown
BYTE 0A unknown
BYTE 0B unknown

 

address 0xDC6C location object screen positions

7523.gif (806 bytes)

this table holds the 4 possible object screen locations for the different screen types. the game places 2 objects into random selected slots.
NOTE: if the location has an amulet then it is always placed in (object 1)
type offset description
BYTE 00 x coordinate ( object 1 - or orchid )
BYTE 01 y coordinate ( object 1  or orchid )
BYTE 02 x coordinate ( object 2 )
BYTE 03 y coordinate ( object 2 )
BYTE 04 x coordinate ( object 3 )
BYTE 05 y coordinate ( object 3 )
BYTE 06 x coordinate ( object 4 )
BYTE 07 y coordinate ( object 4 )

 

address 0xD6A6 location orchid screen positions
type offset description
BYTE 00 x coordinate
BYTE 01 y coordinate

 

address 0xA7F8 location orchid type table?

this table is used for orchid information for each location type not each location. it is a live table and just holds defaults at start up.
all locations that use the same location type will have the same orchid activity.
type offset description
BYTE 00 unknown
?? ? ??
7 6 5 4 3 2 1 0
BYTE 01 unknown

 

address 0x70bc background graphics

type offset description
BYTE 00 width - in bytes
BYTE 01 depth
BYTE 03...size image data ( size = width*depth )
BYTE attribute data

 

background graphic types

7523.gif (806 bytes)
70BC 71B3 7298 72F6 7462 7523 771F 785E
78F2 7947 7981 7B11 7BB7 7C0C 7CCD 7E4B
8047 81C5 8382 83AA 83D2 8427 847C 8558
85C8 86DA 8702 872A 8806 89C3 8B80 8C5C
8CCC 8D3C 8E18 8F2A 90A8 93C4 955D 95CD
9673

 

address 0xbf84 sprites offset table
type offset description
WORD 00 offset - offset to data
0xc10e sprite data format
type offset description
BYTE 00 width - in bytes
BYTE 01 depth
BYTE 03...size image data ( size = width*depth )

 

address 0xAC77 default immortal moving objects
this table holds the default sprite structures for the 12 moving immortals. inc sabre man.
entry description
00 sabre man
01 rhino running left
02 rhino running right
03 rhino running left
04 rhino running right
05 spear man
06 spear man
07 spear man
08 fire
09 wolf
0a hippo
0b guardian

 

address 0x9702 sprite working structures
this table holds the  sprite structures for the 25 active sprites while the game runs
offset number description
0x9702 12 immortals
0x9792 06 nasties
0x97da 01 orchid
0x97e6 02 objects
0x97fe 04 amulet parts

 

address   various random tables
the following tables are used to randomly select the type and colorr of certain sprites.
offset number description
0xaf6d 16 orchid colours
0xa41a 16 nasty sprite types
0xa3a7 16 object colours
0x9ab8 04 other colours for flashing?