I've made a bit more progress, but I'm not there yet.
I took a look at the AVItoSaturn source code. Unfortunately, it turns out it doesn't actually have a Cinepak encoder at all; it uses the builtin Windows encoder, and just tweaks the packet header to make it look like the Saturn is expecting. That's basically the same as what I do in my own muxer, so it didn't give me much extra information - except that it means the Saturn *can* play back standard Cinepak, so the FFmpeg encoder is probably fixable. 🙂
On the advice of someone who has some Cinepak experience, I tried forcing V4 encoding only - and it worked! I also tried V1 encoding only, and that worked too. So I suppose something is buggy about how it divides the frame between V1 and V4 vectors. At least that gives me a bit of a hint as to what's wrong.
To test, I've been encoding the Sonic Mania intro and replacing the Silver Star Story intro with it. If it plays back without crashing, I count that as a success. The V4-only version looks beautiful, but it takes up an absurdly high bitrate. 🙂 The fact it works at all, though, I'll take as a win, and I'll try to figure out what to do from here.
I took a look at the AVItoSaturn source code. Unfortunately, it turns out it doesn't actually have a Cinepak encoder at all; it uses the builtin Windows encoder, and just tweaks the packet header to make it look like the Saturn is expecting. That's basically the same as what I do in my own muxer, so it didn't give me much extra information - except that it means the Saturn *can* play back standard Cinepak, so the FFmpeg encoder is probably fixable. 🙂
On the advice of someone who has some Cinepak experience, I tried forcing V4 encoding only - and it worked! I also tried V1 encoding only, and that worked too. So I suppose something is buggy about how it divides the frame between V1 and V4 vectors. At least that gives me a bit of a hint as to what's wrong.
To test, I've been encoding the Sonic Mania intro and replacing the Silver Star Story intro with it. If it plays back without crashing, I count that as a success. The V4-only version looks beautiful, but it takes up an absurdly high bitrate. 🙂 The fact it works at all, though, I'll take as a win, and I'll try to figure out what to do from here.