The Sam does of course have line-based palette changes built into its
native SCREEN$ loader (before you say: yes I know that's not quite as
sophisticated as what's being discussed).

In... oh, 1996, I attempted to write a program that could translate a
256x192 image into a plain Sam screen with palette line changes, though
it wasn't hugely successful.

It describes itself as follows:

Usage: /tmp/ppmtosam [flags] [input] [output]

This program converts the named input file (or standard input if none
is named) from raw PPM format to a Sam mode 4 screen picture and writes
the result in the named output file (or standard output).  The resulting
file will contain the bitmap (24576 bytes) a palette (40 bytes) and, if
required, a line table (4*n bytes) and end with an end marker (character
255).  This is the same format as if the picture had been saved to disk
on a Sam.

If line changes are not requested then the program selects the 16 best
colours for the palette.  Otherwise the program attempts to calculate
a best palette for each line, based on the colours in the surrounding
area (the program does not take account of the fact that if several
palette changes are made on one line then the later ones will not be
available immediately).  Alternatively, a picture can be produced using
the 14-colour greyscale palette.  The picture is not dithered by default,
but Floyd-Steinberg dithering may be selected.

Valid flags: (default values in brackets)
-c   Allow line changes
-d   Produce some debugging information
-f   Use Floyd-Steinberg dithering
-g   Produce a greyscale picture instead of a colour one
-q   Quiet (don't print the number of palette changes)
-s   Attempt to smooth boundaries caused by palette changes while dithering

-A n Look ahead n lines when calculating popular colours for line changes [4]
-B n Look behind n lines when calculating colours for line changes [0]
-D n Discourage line changes (higher n makes fewer line changes) [4]
-k n Keep the first n colours constant when calculating line changes [8]
     (pen 0 if kept should be a popular dark colour and pen 1 should be light)
-L n Use a maximum of L colour changes on a line [2]
-M n Use a maximum of n colour changes for the whole picture [127]

imc

Reply via email to