fuzziqersoftware / resource_dasm

Classic Mac OS resource fork and application disassembler, with reverse-engineering tools for specific applications
MIT License
108 stars 12 forks source link

Decoding QuickTime files? #78

Open BlueCyro opened 4 months ago

BlueCyro commented 4 months ago

I've got an old texture CD my buddy gave me and I stumbled across this program while searching for ways to decode it. In the extracted files, there are files labeled stuff like 1.MOV, 2.MOV, 3.MOV... etc. with correspondingly-named files in the .rsrc folder. I do have to use the --data-fork tag for this to decode anything at all though, so maybe that means something.

Playing some of these files in something like VLC or MPV works, but most of them don't. I imagine that's because some of them are split up, but I attempted to run this program on them and it only gives me a few bmps, some bin files, or disassemblies of the viewer program meant to run on the actual machine. I had a look through the command line arguments and tried a few more, but to no avail.

I'm wondering if maybe you've come across this before. I haven't included the files here due to the actual CD being quite large, I'm unsure of the proper way I could split them to send examples of the files I'm decoding, but if you happen to know a little bit about this and know what files I'd need to potentially send for examples, I can provide.

fuzziqersoftware commented 3 months ago

Sorry for the delay here - resource_dasm's QuickTime decoder is very incomplete, and is probably doing the wrong thing with these files. If I recall correctly, the MooV resources contain metadata that's needed to properly decode the data fork. I can take a look at the files and either fix the decoder or recommend a better way to decode them if you upload them here (or anywhere, and link them here).

Epimonster commented 3 months ago

Hey, I'm the buddy in question, I have the files in an ISO image and also an extracted set of files (including resource forks and metadata info). Would love your insight on this because I bulk convert a ton of old media into modern forms and some of these older mac CDs are TOUGH.

Here's an ISO image of the disk:

https://mega.nz/file/z51gVBIa#vxiXaY8rxmrjmmB2S3qBamlsp38KvYc-Rphe3iFWE7w

Or if you prefer here's all the extracted contents, zip compressed:

https://mega.nz/file/ut0FkbjL#7uVZUtmnkf-k6cw_fhyxhJ_qK1DKVbxLxd5Or9MYqtk

fuzziqersoftware commented 3 months ago

Thanks for sharing the files.

The files in the 3D MOVIE/FLC and 3D MOVIE/FLI directories seem to play correctly with modern VLC. VLC can't play the files in 3D MOVIE/QT or most files in 3DQ, however. Modern QuickTime Player also can't play these, but it seems MoviePlayer 3.0 in SheepShaver has no problem with them.

I think there are a couple of things going on here:

Resource forks are sometimes necessary for QuickTime files to play properly, because on classic Mac OS, sometimes the movie metadata is in the moov 128 resource instead of in the data fork. (Some of the files in the disc image are formatted like this.) I would guess that no modern player would know how to play files in this format. I theorized that modern players might understand the files if you simply prepend the contents of each file's moov 128 to the file's data fork, but this doesn't work either. Without a more complete understanding of the file format, I don't yet have a recommendation on how to deal with this, but I'll work on it.

Second, and more annoyingly, these files use codecs that are probably not widely supported anymore. Some of them use rpza and smc, both of which resource_dasm can decode, but currently only for still images. FFmpeg and VLC claim to have support for decoding these codecs, but playing these files in VLC results in choppy video with a lot of dropped frames.

Sometime soon I'll read this documentation and put together a basic QuickTime decoder. I'm fairly busy these days and can't promise when I'll get it done, but I'll move this near the top of my priority list and should be able to get to it sometime soon.

BlueCyro commented 3 months ago

Do all of the MOV files play correctly in the FLC/FLI directories? You can open a couple of them, but they are way below the proper framerate, and some don't open at all.

Epimonster commented 3 months ago

Thanks so much for the insight @fuzziqersoftware . Let me give some additional context I totally neglected to mention in my reply.

I actually had great success getting them to play via infinitemacs using their Mac system 9 emulator. It was able to easily play all of them. VLC generally plays the other types in different folders but as cyro mentioned it’s often with corrupted colors or reduced frame rates.

I greatly appreciate this added insight though. I find the occasional disk in these formats and having a reliable way to convert these will be a welcome feature for uploading to archive.org in an accessible format.

I appreciate you taking the time to explore it and write some converters, I’m super interested in how it’ll turn out.