In not-exactly-recent news there was a piece about some guy who decided not to listen to the advice of a director of some blockbuster and instead of going to cinema to watch it he encoded it to watch on Game Boy cartridges instead. While people doing stupid things is hardly news, it sparked a mild interest in me so I looked what are the options on underpowered hardware for storing video.
It turned out there are at least three formats for coding not just cutscenes but whole movies (or at least episodes of various series) to fit into 32MB GBA cartridge. And those three formats seem to be built on vector quantisation and they all embed video into the player program (well, the cartridge in this case does not have segments or filesystem for different resources).
- GBA Video is probably the most famous and the most official one (there were official releases of couple dozens animated movies and cartoon series that used the format). It’s been developed by Majesco and it seems to use vector quantisation and
deflate
and since it checks codebook size to be 256*6, it’s most likely to be something like Cinepak using 2×2 YUV 420 codebook entries for compression. Additionally it seems to use left prediction (i.e. code pixel as a difference to the left one); - Caiman video codec seemed to come in two flavours, the original one coding 8×8 blocks using either four 4×4 pixel codebooks or just one scaled (that reminds me of Cinepak again for some reason, maybe because it did the same albeit using 2×2 vectors), next version of the codec introduced codebooks of different sizes and 8×8 block could be split recursively for that (also that version got motion compensation);
- METEO is some Japanese format that seems to be the choice for the GBA enthusiasts since there’s a free encoder for it. I actually looked into it to see what it does (it’s a standalone binary about two hundred kilobytes large) and it turns out to decode input videos using standard Windows interfaces and encode frames with Cinepak encoder and write them into their own container.
All these formats make me think that if I look at other gaming consoles I can find Cinepak there as well. Let’s look what those FMV games used…
Curiosity satisfied, I should move to something else.
That is nothing compared to films and anime encoded in CDXL (yes, this is real). CEmpeg decodes it just fine, you need to add that format to NihAV too.
If I ever need it I can unpack my Amiga box that supports it natively.
NihAV
is mostly for the formats I care about either mostly because of research reasons. So e.g. some Acorn Video codecs that are still not REd have better chance to get supported than documented Amiga stuff with countless implementations.“I should move to something else.“
I am excited!
You shouldn’t be. So far I just looked at random things since anything more interesting is either already known or too obscure.
Anything that does not support CDXL is obscure and irrelevant…
That fits
NihAV
description nicely.