Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
  You are not logged in - nap
DART 1.4   [2025]

DART 1.4 Released by :
Genesis Project [web]

Release Date :
1 January 2025

Type :
Other Platform C64 Tool

AKA :
Dirart Importer - the tool everyone has to write at least once

Website :
https://github.com/spartaomg/dart_cpp

User rating:awaiting 8 votes (3 left)   See votestatistics

Credits :
Code .... Sparta of Genesis Project, OMG, Propaganda Magazine Staff
Test .... Raistlin of C64GFX Staff, Genesis Project, Propaganda Magazine Staff

Download :

Look for downloads on external sites:
 Pokefinder.org


Summary
Submitted by Sparta on 1 January 2025
More PNG and GIF output examples can be found in the Git repo:

https://github.com/spartaomg/dart_cpp/tree/master/examples
Summary
Submitted by Sparta on 1 January 2025
*********************************************************
DART 1.4 - Directory Art Importer by Sparta (C) 2022-2025
*********************************************************

DART is a command-line tool that imports C64 directory art from a variety of source file types to D64 disk images.
It can also create PNG and animated GIF outputs of the directory art. Thanks to Raistlin/G*P for testing!

Windows, Linux, and macOS binaries included in the zip file.

New in this release:

- Support for PNG and animated GIF outputs. Use the ".png" or ".gif" output file extension instead of ".d64"
to create this image formats.
- Support for input image files with (VICE) borders, in addition to the previously supported borderless images.
- Support for DirArts extending beyond track 18.
- Bug fixes.

PNG example: https://c64gfx.com/image/9994114
GIF example: https://drive.google.com/file/d/1rJX7YMzFvqHvlkjvOFCo3npTVILzmX..

Usage:
------
dart input -o [output.d64/output.png/output.gif] -n ["disk name"] -i ["disk id"] -s [skipped entries] 
           -t [default entry type] -f [first imported entry] -l [last imported entry]

input - the file from which the directory art will be imported. See accepted file types below.

-o [output.d64/output.png/output.gif] - the D64/PNG/GIF file to which the directory art will be imported. This 
       parameter is optional and it will be ignored if it is used with KickAss ASM input files that include the
       'filename' disk parameter. If an output is not specified then DART will create an input_dart.d64 file. If the
       output file is a PNG or GIF then DART will create a PNG "screenshot" of the directory listing or an animated
       GIF instead of a D64 file. If there are less than 23 entries then the ouput PNG's size will be 384 x 272 pixels
       (same as a VICE screenshot). If there are at least 23 entries then the height will be ((n + 4) * 8) + 72 pixels.
       The -s option will be ignored if the output is a PNG of GIF (you can't append entries to an existing PNG or GIF).

-n ["disk name"] - the output D64's disk name (left side of the topmost inverted row of the directory listing), max.
       16 characters. Wrap text in double quotes. This parameter is optional and it will be ignored if it is used
       with D64 and ASM files that contain this information.

-i ["disk id"] - the output d64's disk ID (right side of the topmost inverted row of the directory listing), max. 5
       characters. Wrap text in double quotes. This parameter is optional and it will be ignored if it is used with
       D64 and ASM files that contain this information.

-s [skipped entries] - the number of entries in the directory of the output.d64 that you don't want to overwrite.
       E.g. use 1 if you want to leave the first entry untouched. To append the directory art to the end of the
       existing directory, use 'all' instead of a numeric value. This parameter is optional. If not specified, the
       default value is 0 and DART will overwrite all existing directory entries.

-t [default entry type] - DART will use the file type specified here for each directory art entry, if not otherwise
       defined in the input file. Accepted values include: del, prg, usr, seq, *del, del<, etc. This parameter is
       optional. If not specified, DART will use del as default entry type. The -t option will be ignored if the
       type is specified in the input file (ASM or D64, see below).

-f [first imported entry] - a numeric value (1-based) which is used by DART to determine the first DirArt entry to be
       imported. This parameter is optional. If not specified, DART will start import with the first DirArt entry.

-l [last imported entry] - a numeric value (1-based) which DART uses to determine the last DirArt entry to be
       imported. This parameter is optional. If not specified, DART will finish import after the last DirArt entry.

- [palette number (00-22) for PNG output] - a numeric value (0-based) which DART uses to determine the palette to be
       used for a PNG or GIF output. You can choose from 23 palettes that are available in VICE 3.8:

               00 - C64HQ              08 - Godot              16 - Pepto PAL
               01 - C64S               09 - PALette            17 - Pepto PAL old
               02 - CCS64              10 - PALette 6569R1     18 - Pixcen
               03 - ChristopherJam     11 - PALette 6569R5     19 - Ptoing
               04 - Colodore           12 - PALette 8565R2     20 - RGB
               05 - Community Colors   13 - PC64               21 - VICE 3.8 Original
               06 - Deekay             14 - Pepto NTSC Sony    22 - VICE 3.8 Internal
               07 - Frodo              15 - Pepto NTSC

       If not specified, DART will use Pepto PAL (palette No. 16) as default.

You can only import from one input file at a time. DART will overwrite the existing directory entries in the output
file (after skipping the number of entries defined with the -s option) with the new, imported ones, leaving only the
track:sector pointers intact. To attach the imported DirArt to the end of the existing directory, use the -s option
with 'all' instead of a number. This allows importing multiple DirArts into the same D64 as long as there is space
on track 18. DART does not support directories expanding beyond track 18. The new entries' type can be modified with
the -t option or it can be defined separately in D64 and KickAss ASM input files. You can also define the first and
last DirArt entries you want to import from the input file using the -f and -l options. Both can take 1-based numbers
as values (i.e., 1 means first).

Accepted input file types:
--------------------------
D64  - DART will import all directory entries from the input file. The disk name, ID, and the entry types will also
       be imported. The track and sector pointers will be left untouched in the output D64. The -n and -i options
       will be ignored.

PRG  - DART accepts two file formats: screen RAM grabs (40-byte long char rows of which the first 16 are used as dir
       entries, can have more than 25 char rows) and $a0 byte terminated directory entries*. If an $a0 byte is not
       detected sooner, then 16 bytes are imported per directory entry. DART then skips up to 24 bytes or until an
       $a0 byte detected. Example source code for $a0-terminated .PRG (KickAss format, must be compiled):

           * = $1000              // Address can be anything, will be skipped by DART
           .text "hello world!"   // This will be upper case once compiled
           .byte $a0              // Terminates directory entry
           .byte $30,$31,$32,$33,$34,$35,$36,$37,$38,$39,$01,$02,$03,$04,$05,$06,$a0

       *Char code $a0 (inverted space) is also used in standard directories to mark the end of entries.

BIN  - DART will treat this file type the same way as PRGs, without the first two header bytes.

ASM  - KickAss ASM DirArt source file. Please refer to Chapter 11 in the Kick Assembler Reference Manual for details.
       The ASM file may contain both disk and file parameters within [] brackets. DART recognizes the 'filename',
       'name', and 'id' disk parameters and the 'name' and 'type' file parameters. If disk parameters are provided
       they will overwrite the -o, -n, and -i options. If a 'type' file parameter is specified then it will be used
       instead of the default entry type defined by the -t option.
       Example:

           .disk [filename= "Test.d64", name="test disk", id="-g*p-"]
           {
               [name = "0123456789ABCDEF", type = "prg"],
               [name = @"\$75\$69\$75\$69\$B2\$69\$75\$69\$75\$ae\$B2\$75\$AE\$20\$20\$20", type="del"],
           }

C    - Marq's PETSCII Editor C array file. This file type can also be produced using Petmate. This is essentially a
       C source file which consists of a single unsigned char array declaration initialized with the dir entries.
       If present, DART will use the 'META:' comment after the array to determine the dimensions of the DirArt.

PET  - This format is supported by Marq's PETSCII Editor and Petmate. DART will use the first two bytes of the input
       file to determine the dimensions of the DirArt, but it will ignore the next three bytes (border and background
       colors, charset) as well as color RAM data. DART will import max. 16 chars per directory entry.

JSON - This format can be created using Petmate. DART will import max. 16 chars from each character row.

PNG  - Portable Network Graphics image file. Image input files can only use two colors (background and foreground).
       DART will try to identify the colors by looking for a space character. If none found, it will use the darker
       of the two colors as background color. Image files must display the uppercase charset and their appearance
       cannot rely on command characters. DART accepts two input image formats: one without boders and another one
       with (VICE) borders.

       - Borderless images must have a width of exactly 16 characters (128 pixels) and the height must be a multiple
       of 8 pixels. Images can only contain directory entries without a directory header and entry type identifiers.

       - Images with borders must have a width of 384 pixels where the border is 32 pixels on each side. The height
       must include a 35-pixel top and a 37-pixel bottom border (as in VICE). The "screen" portion of the image
       must be 320 pixels wide and at least 200 pixels tall or more if the DirArt has more entries than what would
       fit on a standard screen. The  image can also include a directory header with a disk name and ID, and entry
       types. Bordered images can be created by listing the directory in VICE and then saving a screenshot. DART
       can also create this format.
BMP  - Bitmap image file. Same rules and limitations as with PNGs.

Any other file type will be handled as a binary file and will be treated as PRGs without the first two header bytes.

Example 1:
----------

dart MyDirArt.pet

DART will create MyDirArt_dart.d64 (if it doesn't already exist) and will import all DirArt entries from MyDirArt.pet
into it, overwriting all existing directory entries, using del as entry type.

Example 2:
----------

dart MyDirArt.c -o MyDemo.d64 -n "demo 2023" -i "-g*p-"

DART will import the DirArt from a Marq's PETSCII Editor C array file into MyDemo.d64 overwriting all existing
directory entries, using del as entry type, and it will update the disk name and ID in MyDemo.d64.

Example 3:
----------

dart MyDirArt.asm -o MyDemo.d64 -s all

DART will append the DirArt from a KickAss ASM source file to the existing directory entries of MyDemo.d64.

Example 4:
----------

dart MyDirArt1.png -o MyDemo.d64 -s 1 -t prg
dart MyDirArt2.png -o MyDemo.d64 -s all -f 3 -l 7

DART will first import the DirArt from a PNG image file into MyDemo.d64 overwriting all directory entries except
the first one, using prg as entry type. Then DART will append entries 3-7 from the second PNG file to the directory
of MyDemo.d64 (keeping all already existing entries in it), using del as (default) entry type.

Example 5:
----------

dart MyDirArt.d64 -o MyDirArt1.png -p 18

DART will import the DirArt from a D64 file and convert it to a PNG, using palette 18 (Pixcen).


DART uses the LodePNG library by Lode Vandevenne (http://lodev.org/lodepng/) to encode and decode PNG files,
and gif.h by Charlie Tangora (https://github.com/charlietangora/gif-h) to create animated GIFs.
Search CSDb
Advanced
Navigate
Prev - Random - Next
Detailed Info
· Summaries (2)
· User Comments (6)
· Production Notes
Fun Stuff
· Goofs
· Hidden Parts
· Trivia
Forum
· Discuss this release
Support CSDb
Help keep CSDb running:



Funding status:




About this site:
CSDb (Commodore 64 Scene Database) is a website which goal is to gather as much information and material about the scene around the commodore 64 computer - the worlds most popular home computer throughout time. Here you can find almost anything which was ever made for the commodore 64, and more is being added every day. As this website is scene related, you can mostly find demos, music and graphics made by the people who made the scene (the sceners), but you can also find a lot of the old classic games here. Try out the search box in the top right corner, or check out the CSDb main page for the latest additions.
Home - Disclaimer
Copyright © No Name 2001-2025
Page generated in: 0.087 sec.