Rare Witch Roundtable Podcast
Go Back   The Rare Witch Project Forums > Gaming > Rare & Playtonic > Homebrew Games and Tools

Homebrew Games and Tools If you've created a trainer, texture editor, or a full-blown fangame we'd like to see it here. Show off your mad programming skills.

Reply
 
Thread Tools
  #1  
Old 16th March 2012, 06:56 PM
SubDrag's Avatar
SubDrag SubDrag is offline
McLovin
 
Join Date: Apr 1999
Location: USA
Total Awards: 3
INFECTED - B1K1 Awesome Default Medal Random Award 
C# Decompressor

There has been some interest in the Decompressor but in C#, so that a popular modern language can be used. I've done it. It only supports Rare games and I will not be porting the rest of the compressions to C#. You are free to include this in your programs.

Oh and in my haste didn't do any exception handling, so add your own wrapping your calls.

http://goldeneyevault.com/viewfile.php?id=229

Last edited by SubDrag; 16th March 2012 at 07:06 PM.
Reply With Quote


  #2  
Old 16th March 2012, 08:02 PM
Coolboyman's Avatar
Coolboyman Coolboyman is offline
Best Rarely Active Member '11 - '12
 
Join Date: Jul 2003
Location: The East Bay, CA
Total Awards: 4
Game On RWP Podcast INFECTED - B1K1 Awesome Default Medal 
Quote:
Originally Posted by SubDrag View Post
There has been some interest in the Decompressor but in C#, so that a popular modern language can be used. I've done it. It only supports Rare games and I will not be porting the rest of the compressions to C#. You are free to include this in your programs.

Oh and in my haste didn't do any exception handling, so add your own wrapping your calls.

http://goldeneyevault.com/viewfile.php?id=229
Holy shit this looks great. I'm going to try this when I get home. Well done!
Reply With Quote


  #3  
Old 16th March 2012, 11:23 PM
Starblazer's Avatar
Starblazer Starblazer is offline
Mr. Pants
 
Join Date: Jun 2010
Location: Hyperbolic Time Chamber
I ****ing LOVE you. I LOVE you. This is PERFECT for my latest project. Dude. You just made my ****ing DAY.
__________________
I took the hinges and put em in the ****boy's hands
Formerly Galactic Mario || Call me Max if you want [:
Nintendo Network ID: Zeroman :banjo
Reply With Quote


  #4  
Old 18th March 2012, 10:36 PM
SubDrag's Avatar
SubDrag SubDrag is offline
McLovin
 
Join Date: Apr 1999
Location: USA
Total Awards: 3
INFECTED - B1K1 Awesome Default Medal Random Award 
I made a small bugfix, that impacted some of the BK model files (and maybe more). Apparently in C++ it buffer overrun but didn't hurt for most part, although I will fix there too, but in C# it exceptions. Regrab the zip.
Reply With Quote


  #5  
Old 17th May 2012, 11:22 AM
gilgamesh's Avatar
gilgamesh gilgamesh is offline
Glowbo
 
Join Date: Apr 2008
Location: France
Is there a chronological order of the compression formats used by Rare for the N64 games?
Reply With Quote


  #6  
Old 17th May 2012, 11:48 PM
SubDrag's Avatar
SubDrag SubDrag is offline
McLovin
 
Join Date: Apr 1999
Location: USA
Total Awards: 3
INFECTED - B1K1 Awesome Default Medal Random Award 
They're pretty much all zlib, except for a couple unknown. Think whether header or uncompressed size there was just based on team.
Reply With Quote


  #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


Reply


User Tag List


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 09:06 AM.


Forums powered by vBulletin® Copyright © Jelsoft Enterprises Ltd.
Website © 2000-∞ The RWP