Dali

From Just Solve the File Format Problem
Revision as of 03:21, 28 December 2023 by Dexvertbot (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
File Format
Name Dali
Ontology
Extension(s) .sd0 .sd1 .sd2 .hpk .lpk .mpk

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.

Software

Sample files

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox