I've had a go at squeezing the Bad Apple!! video down onto the arduboy. Unlike other consoles the video has been ported to, the issue is not speed, but storage. The arduboy has a fixed 32kb of program
memory, no way of expanding with cartridges. I've aimed for 11x8 resolution and 8 frames per second, which when uncompressed sits at ~27KB of memory, but the overhead of the libraries and arduino gunk pushes that up to about 40KB combined.
My compression method pads the video to 16x8 resolution, 2 bytes per line. The left hand byte stores 5 data bits and 3 image bits, while the right hand byte stores 8 image bits. If the right byte can be matched to anything from the previous 31 bytes in the chain, it is discarded, and the distance to the matching byte is stored in the data bits. This compresses the source video down to 62%-ish, making room for other things like more frames or music, maybe. There is the odd bit of video corruption, but I think that's down to my encoding tool, not the method used.
If anyone has a good idea on how to store the music alongside the video, I'm open to suggestions.