I am releasing the source for several Cinepak demos. All the source files are inside the ISO itself. I build these on Linux using PERL, ffmpeg, and SCDTools (mentioned in more detail below). The convert.sh script is used to convert the original movie into a Sega CD ISO with the Cinepak demo. The SCDMAKE.CFG file controls how SCDMAKE will make the ISO. MAINPLAY.BIN and SUBPLAY.BIN are the Cinepak code for the MAIN and SUB CPUs respectively. IP.ASM and SP.ASM are the intial MAIN and SUB programs respectively.
SCDTools is a suite of scripts I made that are located at Sourceforge
. My scdasm script wraps my favorite 68k assembler for easy calling and not wondering about all the various options that typically get passed. My scdwav2pcm script converts 8-bit PCM wave audio files to the sega pcm format. My scdimg2tile generates Sega VDP tile data/maps from images, determines Sega palettes for a set of images, and can perform a few dithering methods (such as 2x2 ordered dithering and 4x2 ordered dithering that is really handy for Cinepak). My scdcinepakencodeframe script can encode a frame's tile data into the compressed Cinepak tile data. My scdcinepakencode script encodes an entire Cinepak file from palette files, cinepak compressed data, and pcm data. My scdmake script makes the Sega CD ISO (controls all the Sega fields, the PVD fields, supports Joliet, supports directories, and supports making an include file detailing file starts and sizes to make easy file usage in the SUB code). My scdmoviedecode will decode Cinepak movie files and some Sonic CD movie files (it decodes it into a format easy to use for scdcinepakencodeframe and scdcinepakencode. My scdwrite script is how I make Sega CD ISOs on Linux.
And now the links for the Cinepak demos with the source:
: Bad apple video, uses greyscale and the video is mostly monochrome and a lot of tile reuse and I did not use any dithering.
: Glenn Miller - In the mood, it is live action and has very little tile reuse, uses 4x2 ordered dithering.
: The initial Cinepak demo I made, has a custom encoding script to allow non-uniform frame durations and allows for looping the 12 frames.
: The Star Wars Chess movie of AT vs C3PO, decoded and reencoded with my cinepak encoder (and since it support tile reuse the resulting file is much smaller than the original).
I still am working on cleaning up my Cinepak disassemblies for public release.