
Runs at 60 FPS.
Each pixel is 4x4 on-screen pixels.
4x2 pixels are supported, but buggy.
    Change HEIGHT2X in the Makefile and top.S to 1 to enable.
Input data is command based.
Supports pause button.
Could support music, but I am not a musician...

PCX sequences created with these horrifying one-liners (ImageMagick required):
For 4x4:
convert pns.gif -coalesce -resize 85x48! -gravity Center -crop 64x48+0+0 \
    +repage -level 62%,100%,1.0 +dither -colors 16 ./pns/pns48_%d.pcx
For 4x2:
convert pns.gif -coalesce -resize 85x96! -gravity Center -crop 64x96+0+0 \
    +repage -level 62%,100%,1.0 +dither -colors 16 ./pns/pns96_%d.pcx

Image 0 also has a tendency to get saved as not 8BPP, in which case you will
need to convert it.

The converter is current set to optimize for speed. Change OPTIMIZE_METH to
optimize for size if you'd like. The difference is relatively minor, so it's
typically best to leave it at speed.

The 4x2 version does not seem to work in Mednafen due to the enormous size of
the ROM it seems (it works fine with 64 banks), but works in Meka just fine.

-------------------------------------------------------------------------------
Documentation on SMSFMV format
-------------------------------------------------------------------------------

Commands:
%00xxxxxx - Delta frame
%01xxxxxx - Keyframe
%10xxxxxx - Palette change
%11xxxxxx - Bank control

The bottom 6 bits of each command are how many frames to wait before the next
command is executed. A value of 0 means perform the next command immediately.

===============================================================================
Command: %00xxxxxx
Name   : Delta Frame
Bytes  : 7+x
           Byte   0: Command
           Byte 1-2: VRAM offset
           Byte 3-4: Length of data * -4
           Byte 5-6: Data ptr
           Byte   n: Delta frame information

Delta frame information is just raw frame data, like used in the Keyframe
command.
===============================================================================
Command: %01xxxxxx
Name   : Keyframe
Bytes  : 1+x
           Byte 0: Command
           Byte n: Frame information

Frame information is always exactly 896 [$380] bytes long.

The frame information is loaded to the very top of VRAM, and will fill the
entire nametable.

Frame information is a flat array of 4bit pixels. The top bits of each byte are
the left pixel, and the bottom bits are the right pixel.
===============================================================================
Command: %10xxxxxx
Name   : Palette change
Bytes  : 3+x
           Byte 0: Command
           Byte 1: CRAM offset
           Byte 2: Length of data * -2
           Byte n: Palette information

Palette information is an array of CRAM entries.
Specifying the length of data as 0 will skip uploading any information. This
may be used for padding purposes.
===============================================================================
Command: %11xxxxxx
Name   : Bank control
Bytes  : 1
           Byte 0: Command
           Byte 1: Bank

This command will switch the current bank, and continue the animation from the
first command located there.
To restart the animation, use this command with bank 1.
===============================================================================


