Topic : ATARI ST Picture formats
Author : David Baggett/Jan K⌐upka
Version : atari_gf.hyp 0.01 (17/09/96)
Subject : Documentation/File formats
Nodes : 52
Index Size : 1328
HCP-Version : 3
Compiled on : Atari
@charset : atarist
@lang :
@default :
@help :
@options : -i -s +y +z
@width : 75Tiny *.TNY (any resolution)
*.TN1 (low resolution)
*.TN2 (medium resolution)
*.TN3 (high resolution)
Several people have reported sightings of mutated Tiny pictures that
do not follow the standard format, so let's be careful out there. What
is described here is the format that David Mumper's original TNYSTUFF.PRG
produces.
1 byte resolution (same as NEO, but +3 indicates rotation
information also follows)
If resolution > 2 {
1 byte left and right color animation limits. High 4 bits
hold left (start) limit; low 4 bits hold right (end) limit
1 byte direction and speed of color animation (negative value
indicates left, positive indicates right, absolute value
is delay in 1/60's of a second.
1 wordword = 2 bytes
color rotation duration (number of iterations)
}
16 words palette1 wordword = 2 bytes
number of control bytes
1 wordword = 2 bytes
number of data words
3-10667 bytes control bytes
1-16000 words data words
42-32044 bytes total
Control byte meanings:
For a given control byte, x:
x < 0 Absolute value specifies the number of unique words to take
from the data section (from 1 to 127)
x = 0 1 wordword = 2 bytes
is taken from the control section which specifies the
number of times to repeat the next data wordword = 2 bytes
(from 128 to 32767)
x = 1 1 wordword = 2 bytes
is taken from the control section which specifies
the number of unique words to be taken from the data section
(from 128 - 32767)
x > 1 Specifies the number of times to repeat the next wordword = 2 bytes
taken from
the data section (from 2 to 127)
Format of expanded data:
The expanded data is not simply screen memory bitmap data;
instead, the data is divided into four sets of vertical columns.
(This results in better compression.) A column consists of one specific
wordword = 2 bytes
taken from each scan line, going from top to bottom. For example,
column 1 consists of wordword = 2 bytes
1 on scanline 1 followed by word 1 on scanline 2,
etc., followed by wordword = 2 bytes
1 on scanline 200.
The columns appear in the following order:
1st set contains columns 1, 5, 9, 13, ..., 69, 73, 77 in order
2nd set contains columns 2, 6, 10, 14, ..., 70, 74, 78 in order
3rd set contains columns 3, 7, 11, 15, ..., 71, 75, 79 in order
4th set contains columns 4, 8, 12, 16, ..., 72, 76, 80 in order
Note that Tiny partitions the screen this way regardless of resolution;
i.e., these aren't bitplanes. For example, medium resoltion only has two
bitplanes, but Tiny still divides medium resolution pictures into four
parts.