ATIC ATAC DATA FORMAT this document contains the data format for atic atac, it is not complete but gives a good start and understanding. for futher information download atic atac 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 | 0xA854 | screen table |
the screen table has a entry for every screen |
type | offset | description | |
BYTE | 00 | attribute - colour for this screen | |
BYTE | 01 | type - screen image type from the following list |
00 | 01 | 02 | 03 | 04 |
05 | 06 | 07 | 08 | 09 |
10 | 11 the final screen |
12 the fallin screen |
address | 0xA982 | screen types data |
the screen types data allows the construction of all the above screen data. the table works with a list of points and then effective lineto instructions using these points. |
type | offset | description | |
BYTE | 00 | width - width of interior | |
BYTE | 01 | height - height of interior | |
WORD | 02 | points - offset to points data | |
WORD | 04 | lineto - offset to lineto data | |
points | |||
BYTE | 00 | x position | |
BYTE | 01 | y position | |
lineto | |||
BYTE | 00 | point index | |
this table list all the points required to draw
the screen. it is used by first reading an entry. if the value is 255 then we have
finished. this is the entry to the first point. we then read the next entry and draw a
line from the first point to this point. we keep reading until the entry = 255, and draw
always from the first point to this. psuedo code: do |
|||
type | offset | description | |
BYTE | 00 | graphic - graphic representaion of this entry | |
BYTE | 01 | screen - screen this entry belongs to | |
BYTE | 02 | unknown but common 0x34,0x38,0xc4 (0 if not a door) | |
BYTE | 03 | x position | |
BYTE | 04 | y position | |
BYTE | 05 | flags - ( do not fully understant ) | |
rotation 0x00=top, 0x60=right, 0x80=bottom, 0xE0=left or other common values... 0x41 - 0x11 0x04 - used if table 0x12 0x03 - used if trapdoor 0x19 used by rug 0x1b ---- these are used by objects that are doors ---- 0x01 - 0x10 0x61 - 0x10, 0x11 0x81 - 0x10, 0x11, 0x015, 0x16, 0x26 0xe1 - 0x10, 0x11, 0x1a, 0x26 |
|||
BYTE | 06 | door timing? time a door is open or closed (0 if not a door) | |
BYTE | 07 | unknown (0 if not a door) | |
address | 0x757D | screen backround item start |
index by screen. this gives an offest into the background item list. |
type | offset | description | |
WORD | 00 | offset into background list | |
address | 0x76A9 | screen background items |
variable length table. each entry points into the background item table. |
type | offset | description | |
WORD | 00 | offset - offset into background items, read until = 0 | |
address | 0xA64E | background graphics attribute table |
type | offset | description | |
WORD | 00 | offset - offset to attribute data | |
address | 0xA600 | background graphics table |
type | offset | description | |
WORD | 00 | offset - offset to sprite data | |
graphic data | |||
BYTE | 00 | width - in bytes | |
BYTE | 01 | depth | |
BYTE | 03 ... | image data ( size = width*depth ) | |
01 cave door frame |
02 normal door frame |
03 big door frame |
|
08 red locked normal door |
09 green locked normal door |
10 white locked normal door |
11 yellow locked normal door |
12 red locked cave door |
13 green locked cave door |
14 white locked cave door |
15 yellow locked cave door |
16 clock |
17 picture |
18 table |
19 full chicken |
20 chicken carcass |
21 antler trophy |
22 trophy |
23 bookcase |
24 shut trapdoor |
25 open trapdoor |
26 barrel |
27 rug |
28 ACG shield |
29 shield |
30 knight |
|
32 shut normal door |
33 open normal door |
34 shut cave door |
35 open cave door |
36 ACG exit door |
37 picture |
38 skeleton |
39 barrels |
address | 0xA4BE | sprites graphics table |
type | offset | description | |
WORD | 00 | offset - offset to sprite data | |
graphic data | |||
BYTE | 00 | depth | |
BYTE | 02 ... | image data ( size = width*depth ) WIDTH = 2 | |