So while looking at various exotic formats, I decided to look at the other video format family from the A-class of computers. This time not Amiga but Acorn (so far nobody has updated Amiga binary loaders for Ghidra 11
, I feel more and more that upgrading for 10.x series was a mistake). So, Acorn Replay Movie format for a computer using Acorn RISC Machine CPU.
For those who do not know, the format has human-readable header and may contain several audio and video streams in various formats. And it had a variety of video codecs supported from different vendors—raw YUV or RGB formats, repacked formats (like MPEG, Quicktime or M$ Video-1 and RLE) and some original ones. Apparently people cared only about some later codecs developed by Eidos Technologies as they were used in their PC games as well but there is more to it.
My search resulted in the following list of codecs (raw video codecs are omitted; also while many entries come from the official documentation, not all of them do):
- 1—Acorn Moving Lines;
- 7—Acorn Moving Blocks;
- 12-13—MPEG wrapper (inside RPL or as a reference to an external file);
- 14—IBM Ultimotion;
- 17—Acorn Moving Blocks HQ;
- 18—H.263;
- 19—Acorn Super Moving Blocks;
- 20—Acorn Moving Blocks Beta
- 100, 102, 122, 124, 130—Eidos Escape codecs (but hardly anybody cares about the first two of those);
- 500—LZW-compressed frames from Iota Software;
- 600—M$ Video-1 8-bit;
- 601—M$ Video-1 15-bit;
- 602—Cinepak;
- 603—QuickTime RPZA;
- 604—QuickTime SMC;
- 605—IBM Ultimotion (again);
- 607—M$ RLE 8-bit;
- 609—QuickTime 8-bit RLE;
- 610—FLIC;
- 613-615—QuickTime RLE, 4-, 16- and 24-bit variants respectively;
- 622—WSS DL (in reality just palette plus raw pixels);
- 623—ANM film wrapper;
- 630—QuickTime VR wrapper;
- 800—LinePack by Henrik Bjerregaard Pedersen
- 802—Movie 16:3 by the same developer (apparently something similar to codecs like Video-1)
- 803—a generic AVI/QT/FLI codec wrapper from the same developer.
The decoder format is well-documented so you just need to load raw binary to Ghidra
without much hassle and you know what parameters to expect as well. I’ve actually looked at some of those codecs already and willing to continue.
So probably I’ll waste some indefinite time adding ARMovie support to NihAV
with various codecs nobody cares about (and/or documenting them). I have not located samples for many of the formats but at least I’ve found some for codecs 1, 7, 17 and 800 which seem to be some of the most interesting ones.