Okay, this post is gonna cover a fair amount I needed to figure out whilst dumping and putting everything together.
First off, inside Hourglass, you
must dump uncompressed, otherwise, the output will be skewed like this:
It should be noted that for some reason, the dump is 642x402, which explains this issue right here.
Secondly, you need to stitch the AVIs together using VirtualDub2 using the Caching driver, then save it to Lagarith.
As an aside, it is strongly recommended to dump video and audio separately. This guarantees that the audio won't have any weird skips.
I also had to make a full dump with any codec, in spite of the skew, because it's still a sort of "clear" image otherwise (read: text readable, at the very least). Why, you may ask? Well....it turns out Hourglass's internal AVI dumper is huge amounts of garbage and will skip several frames upon splitting if the frame before happens to be identical. However, thanks to the skewed dump I had, I could figure out where to add frames.
This is the end result:
Language: AviSynth
video = AVISource("th05vid.avi").Crop(1, 1, -1, -1).DuplicateFrame(5289, 10579, 10579, 10579, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 15869, 60834, 71414, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929, 89929)
audio = WAVSource("th05audio.avi").AssumeSampleRate(44060)
AudioDub(video, audio).DelayAudio(-0.1)
The duplicate frames were figured out by comparing it with the dump that had a skewed output, but was fine otherwise, as I could still read the score, for instance.
The AssumeSampleRate part is to ensure a/v sync. The DelayAudio(-0.1) is to account for the audio emulation buffer.
With that, I have a dump that is ready to go.
One thing I'd like to point out is the framerate. While it is true that the PC-98 runs at around 56.4 FPS, the fact remains that it was recorded on Hourglass at a flat 60 FPS. So a run time of 37:30.1773 would be wrong as well. Instead, the correct run time is the one given by Hourglass, namely
35:15.17. Indeed, it matches up neatly with when the final input occurs in my dump after fixing everything up. Making it roughly 56.4 FPS with AssumeFPS would actually slow the audio down (and make it lower pitched as a result).