Wanted: support for Mac OS 7/8/9 installer "tome" file
ci-macpaw opened this issue · 9 comments
Jason Duerstock (evilmoo):
There was an archive format used by the Mac OS installer before OS X known as a "tome". The majority of tomes I've come across are There are still copies of the Installer SDK available and there is a packer and unpacker utility therein. What is the best way to go about analyzing this file format and adding support for it to The Unarchiver?
Jason Duerstock (evilmoo):
This .zip file contains several tome files that use some sort of compression algorithm. According to some bits in the installer, I think the compression algorithm is named "InstaCompOne".
Dag Ågren (DagAgren):
The more obscure formats I have usually tried to decipher partly by inspecting files in a hex editor to find the high-level file format, and then by disassembling unpacking tools to reverse engineer the algorithm. It is quite challenging but also fun work.
To add support for a format to The Unarchiver basically involves creating a XADArchiveParser subclass to read the file format, and a CSHandle subclass to handle the decompression.
Kevin Wojniak (kainjow):
I wrote some code several years ago that read the metadata from Tome files, but I wasn't able to get the decompression to work. Seems like it does use an Apple private library that appears to be long gone. I just uploaded the code if it helps anyone: https://github.com/kainjow/TomeViewerX
First time I ran the code in a while. Still worked with the attached files.
Jason Duerstock (evilmoo):
I have the Installer SDK (the code is known as "InstaCompOne") and I
disassembled the m68k version of the decompressor. Would either of these
help?
I think recent versions of Pacifist can extract tomes, but they're all in a flat directory.
FYI, I just committed an initial Python implementation of the InstaCompOne decompressor, see https://github.com/maximumspatium/ResDecompress/blob/master/InstaCompOne.py
This implementation can be easily extended to decompress tomes as well. IIRC, the original algorithm is based on LZ77 and has two encoding modes: with or without Huffman coding.
@maximumspatium Where one can find files compressed with InstaCompOne
?
Where one can find files compressed with InstaCompOne
Mac OS 8/9 installation packages as well as System resources
Someone has written a (seemingly incomplete) tome viewer here: https://github.com/kainjow/TomeViewerX