simple .BMP image to C64 sprite data converter for Windows
V1.01 - By Phil / Retroleum - Download Latest Version
The source image is scanned in 24x21 pixel blocks from left to right, top to
bottom. Width must be
- Allows images drawn with standard PC paint programs to be
converted into raw Commodore 64 sprite data.
- Input: A 256 colour mode, uncompressed, Windows format .BMP image file.
- Output: Raw binary sprite data, 64 bytes per sprite (zeroes
are placed in the unused 64th byte of each sprite definition.)
a multiple of 8 pixels and any space which is not big enough for a sprite block (24x21 pixels) is skipped.
1) "Multicolour mode"
- Selects how the source data is interpreted. If this option is NOT ticked, the conversion is in simple hi-res mode,
IE: each source pixel (IE: colour index byte from the .bmp file)
produces a single bit in the C64 sprite. Please select the the colour
the source image) which is required to be treated as transparent.
Colour indexes 0-15 can be selected from the drop-down list or
from 0-255 can be manually entered. Any pixel that does not
match this index is treated as a binary 1 for the sprite image.
each hi-res sprite block should have only one unique colour.
When the multicolour mode box is ticked, the transparent colour index
needs to be set as above and additionally the two common multicolour
register values need to be chosen.
As the converter scans the image:
When preparing a source image for multicolour mode conversion, sprites
should be drawn with double-width pixels (see the test
- Source pixels that match the transparent value are written as a sprite
Source pixels that match multicolour 0 are written
as a bitpair 01b
Source pixels that match multicolour 1 are written as a bitpair 11b.
Any other colour index is treated as the sprite's unique colour and
written as a bitpair 10b.
pic included in the zip) The converter looks at the left pixel
of each 2 pixel pair in the source image to determine which bitpair
(00b,01b,10b,11b) to use in the destination.
2) "Save colours"
- If desired, the colour index used for the non-transparent pixels of each sprite can be saved. This is really only
useful if the source
image has the C64's original colours in indexes 0-15.
00 - Black
01 - White
02 - Red
03 - Cyan
04 - Purple
05 - Green
06 - Blue
07 - Yellow
08 - Orange
09 - Brown
10 - Pink
11 - Grey 1 (darkest)
12 - Grey 2
13 - Light Green
14 - Light Blue"
15 - Grey 3 (lightest)
3) "Skip empty sprites"
- Simply skips any sprite definition blocks that contain nothing but transparent pixels. Most of the time
you will want
The converter works from the palette index values of the source image
(0-255) and is oblivious to the actual colours in the palette.
source image does NOT need to have the original C64 colours in indexes 0-15
(these are just suggested by the
drop-down menus for when the C64 colours in
the correct order HAVE been used in the source image). If desired, the
indexes (16-255) can be used in the source image EG: for multicolour0
and multicolour1 to avoid any ambiguity when the converter
bitpairs, or for the transparent background colour so that the entire
range of colours can be saved when "save colours" is ticked.
This program has been tested on Windows XP (32bit) and Windows 7 (64 bit)