Thread: C# Decompressor
View Single Post
  #7  
Old 24th May 2012, 10:29 PM
spoondiddly's Avatar
spoondiddly spoondiddly is offline
Jinjo
 
Join Date: Jun 2004
Some games went with gzip headers whereas most used 2-byte zlib-ish IDs. Despite the headers though all were compressed with gzip, and that results in much smaller filesizes. Here's some headers off the top of my head.
Blast Corps: Full gzip header
DK + proto: gzip without names; proto uses temp.bin as a placeholder name
Goldeneye, Killer Instict Gold: 0x1172, no filesize
Banjo Kazooie: 0x1172, 4 byte filesize
Banjo Tooie: 0x0015, no filesize
Perfect Dark: 0x1173, 3 byte filesize
Conker's Bad Fur Day: no identifier, 4 byte filesize
Jet Force Gemini: 4 byte filesize (little-endian), 0x9 identifier

Don't remember offhand what the racing game headers are. Maybe they're the same as JFG?
I hate Conker though. One of the largest titles of them all, virtually the whole thing is compressed, and there's no clear identifier or single table. Beast of a game.

Did same thing in python some time back, although I don't have filelists for all of Rare's titles yet. It's really just a perversion of the normal zlib decompressor.
In general though most N64 games use zlib with funky headers. Second place goes to LZSS derivatives. Pretty much any compression scheme ever dreamt up by that point is represented to some degree in a random N64 game.

Last edited by spoondiddly; 26th May 2012 at 03:22 PM.
Reply With Quote