Dali
From Just Solve the File Format Problem
(Difference between revisions)
m (→Format details) |
|||
Line 17: | Line 17: | ||
=== Dali file format === | === Dali file format === | ||
− | Copied from | + | ''Copied from [[Atari Forum Wiki]].'' |
<pre> | <pre> | ||
Line 37: | Line 37: | ||
=== Dali Compressed file format === | === Dali Compressed file format === | ||
− | Copied from | + | ''Copied from [[Atari Forum Wiki]].'' |
<pre> | <pre> |
Revision as of 20:30, 15 August 2020
Dali is a graphics program for the Atari ST.
SD0
files are 320x200 with 16 colors
SD1
files are 640x200 with 4 colors
SD2
files are 640x400 in mono
Contents |
Format details
Dali file format
Copied from Atari Forum Wiki.
Dali *.SD0 (ST low resolution) *.SD1 (ST medium resolution) *.SD2 (ST high resolution) Files do not seem to have any resolution or bit plane info stored in them. The file extension seems to be the only way to determine the contents. 1 long file id? [always 0] 16 words palette 92 bytes reserved? [usually 0] 32000 bytes raw image data ----------- 32128 bytes total for file
Dali Compressed file format
Copied from Atari Forum Wiki.
Dali compressed *.LPK (ST low resolution) *.MPK (ST medium resolution) *.HPK (ST high resolution) Files do not seem to have any resolution or bit plane info stored in them. The file extension seems to be the only way to determine the contents. 16 words palette ? size of byte array in bytes, stored as plain ASCII text + cr/lf ? size of long array in bytes, stored as plain ASCII text + cr/lf ? array of bytes ? array of longs ? image data: Assuming the tables have been loaded into arrays: uint8 *btab=malloc(size of byte array); uint32 *ltab=malloc(size of long array); uint8 *bmap=malloc(32000); /* st bitmap */ /* PureC example by Lonny Pursell - placed into the Public Domain 1/19/2017 */ uint8 flag; uint16 i, index, offset; uint32 data; flag = index = 0; for (i=0; i<=156; i=i+4) { for (offset=0; offset<=31840; offset=offset+160) { if (flag==0) { flag = btab[index]; data = ltab[index]; index++; } bmap[offset + i] = (data >> 24) & 0xFF; bmap[offset + i + 1] = (data >> 16) & 0xFF; bmap[offset + i + 2] = (data >> 8) & 0xFF; bmap[offset + i + 3] = data & 0xFF; flag--; } }
Identification
.sc*
files are exactly 32128 bytes long.
*.pk
files are compressed.