CompressFS

From WebTV Wiki
Jump to navigation Jump to search

CompressFS is a proprietary file system used to store system media for UltimateTV, Microsoft TV Simulator, and MSN TV 2. CompressFS acts as a direct replacement to the ROMFS format used to store system media in first-generation WebTV/MSN TV firmware. Files stored in CompressFS partitions can be stored with compression, hence the name of the file system. CompressFS also supports Unicode filenames, although this doesn't seem to be used in practice for UltimateTV or MSN TV 2. A patent was created for this file system, which includes snippets of code from a CompressFS header file.

A CompressFS partition starts with the byte sequence "5DCF5DCF" (0xCF5DCF5D in little endian form).

Almost everything about CompressFS has been figured out except for how the partitions are accessed on actual hardware and properly decompressing most files. On the topic of compression, most files that are compressed use some form of "LZJ", a compression algorithm that doesn't have much documentation available right now outside of a white paper written by the inventor and passing mentions of it on various websites. We believe that CompressFS uses a Microsoft-specific variant dubbed "LZJ64" based on a variable in Microsoft's header file for the filesystem.

Tools that extract and build CompressFS images were made at least back when the UltimateTV was relatively new. Those tools have since been unearthed by one of the old WebTV hacking scene people and are now available on Archive.org by us.