Archive for June, 2026

TWV: unsupported formats

Thursday, June 25th, 2026

While the weather is stewing here and there’s no desire to do anything, I suppose this is a good occasion to talk about two formats with the same extension that I’m not going to support.

The first TWV format comes from Reality Pump games like Knightshift and World War III: Black Gold. It is not a particularly complex codec but the fact that it’s simplified version of interlaced MPEG-2 or MPEG-4 with an additional layer of headerless deflate compression makes me not want to work on it at all.

The other TWV format comes from Québec and I’ve encountered it in Le Logiciel de Finances Personnel and (mostly with TMV extension) in the game Music Chase. I’ve written about it some time ago, essentially it is QuickTime MOV format with the annoying quirks like all values being little-endian, some additional fields inserted (I suspect that 1-byte version field and 3-byte flags field combination got expanded into two 4-byte fields), and it also uses custom handlers for both audio and video tracks (yes, even pure audio files contain a video track with dummy 17-byte frames). I tried to read the binary specification for the video decompressor but quickly got lost in code for Windows 3.x that Ghidra refused to decompile. The same applies to their special BMP compression (in TBP files).

Hopefully somebody else can fare better but I don’t expect to see these formats supported even in librempeg.

A new/old video coding scheme

Friday, June 19th, 2026

Now that AV2 has officially been released it’s time to remind that these codec advances are not for free. Here it is claimed that AV2 offers about 25% improvements in compression efficiency compared to AV1 with decoding being five times slower (and that’s for an extremely optimised decoder; no idea how much slower encoding is).

Back in the day I proposed to go full AI with the codec design but it was not a fully serious idea, here I’d like to propose something more realistic that would use “AI” hardware that we should have plenty of by now—and with no AVn codecs in mind.

(more…)

#chemicalexperiments — Saumagen

Monday, June 15th, 2026

I think it’s time to talk about the würst aspect of German life.

It is a stereotype that Germans love sausages, and it seems this stereotype has some background after all. What’s more, as I learned from one fountain in Kandel, the nearby area of Rhineland Palatinate was known as the Cattle Belt—and you can guess what they made out of that cattle. One of those specialities is called Saumagen or “pig’s stomach”, a sausage made by filling the namesake with meat, diced potatoes, spices and boiling it (some people prefer to fry it afterwards anyway, making it to spiritually resemble haggis even more despite sheep not being involved at all).

Initially I learned about it when I bought various kinds of tinned sausage from Landau at the local supermarket (yes, it is common here to sell sausage tinned and even rural butcheries produce it), but in the recent years with the spread of vending machines in rural areas offering local goods I had a chance of trying more varieties of it (those machines work every day while almost everything is closed on Sundays—exactly when I have time to travel around). So I’ll describe what varieties of saumagen I’ve seen before mentioning other curious sausage-related things.

Weisenheim am Sand is the only place (so far) offering saumagen in slices (vacuum-packed) in addition to tins. It’s nice but it had a bit too much mustard seeds (or maybe it was marjoram) to my taste.

Kirchheimbolanden offers variety with the most ingredients: it’s the only one I’ve encountered that added carrots as well. Also it has the other variety of it like in St Martin.

Speaking on which, St Martin had the best saumagen to my taste. In addition to the regular version there’s another one with chestnuts instead of potatoes. Even the fact that they add a bit of beef to it does not spoil it at all. The funniest unrelated fact is that I bought it from the shop that was open on Good Friday (it is a rare occasion when something is open on public holiday, especially on public Catholic holiday in former part of Bavaria).

Maybe I’ve seen and tried it elsewhere but those variations didn’t leave an impression. Unlike the one variation that I’ve not tried and yet it left an impression: I’ve seen this exotic dish being advertised at some restaurant in Lorsch (which is a part of Hessen and lies on the other side of the Rhine).

There are other interesting mentions (with my health I should not eat meat much or often—so I don’t, and probably there are a lot of other things that I’ve never seen; but that’s for other people to talk about). For example, in Bavaria it is common to have a version of common dish made from liver (hence my test for maultaschen not being Swabish—otherwise there would be the ones made from liver in Bavaria like it happens with spätzle). Though they have Leberkäse, literally “liver-cheese”, which contains neither.

And in Württemberg I’ve encountered at least twice Bologna sausage with boiled eggs (it makes me think of Scotland for some reason once again).

For the traditional sausages I prefer käsekrainer which are available everywhere in varying thicknesses and lengths. The best ones I’ve ever tried came from Sasbachwalden (which is worth visiting for other reasons, it’s one of the most scenic places I’ve ever seen).

That’s the story with the sausages: you pull one link and another one comes after it. I started with one specific local variety of sausage, overcame a desire to talk about local vending machines that can sell e.g. ice cream instead (not something you’d expect to see in a random village), still ended mentioning some bits of geography and local customs as well as other food articles. More talented person could write a book about German history viewed through a sausage ring (and it would be a very entertaining read!), but all I can manage is this pathetic post.

P.S. And from a small biased review the most impressively decorated butcher shops I’ve seen were in Bad Kreuznach, Ingelheim am Rhein and Durbach (the one near Offenburg).

MOVing Puzzles

Sunday, June 14th, 2026

Mostly because of the weather I have not been in mood to work on anything serious for weeks, but here is something rather interesting.

Apparently there are some CD-ROMs represented on discmaster titled “Moving Puzzle: …” that have some .mv files (inside media.pak archive) that supposedly give motion to those puzzles. And of course somebody had to look at the format.

Obviously the format was inspired by QuickTime as it has the header with all those chunks defining per-track data including e.g. sample-to-chunk mapping. There are two main differences though: the format is flat as first you have header size and header chunks following each other without any nesting (so when you encounter the second track header chunk the following chunks will belong to this new track); and the data is little-endian there, both numbers and tags (e.g. “ssiz” which is sample sizes chunk is written as “ziss” instead, same for e.g. codec IDs). Luckily I could ignore most of it as the data seems to be stored without gaps, so reading palette, then seeking to the first video chunk and reading individual samples(frames) from there works fine.

And it has its own two codecs, RLE and LZSS. RLE has two modes, both coded the same but inter mode storing the difference from the previous frame (not even XOR, simple subtraction by modulo). LZSS is not the usual flavour either. Unlike the most widespread scheme of “read 8/16/32-bit flags, treat the following bytes until next flags as either literals or packed 16-bit LZ offset+copy length combination” here it is a continuous bitstream with offset and length bits being signalled in the bitstream header and offset zero being used to skip decoded data (since you decode to the frame buffer, it leaves some bytes of it unchanged). Nothing groundbreaking but you most implementations hardly make any changes from the original LZSS.C and right now I can only think of JAM format which implemented LZSS with copying from the reference picture.

IMO this is an over-engineered system but that’s what makes it interesting to look at.