Misc Monster Games QuickLZ Compression Format

Larsenv

Dr. Wii, Ph.D
OP
Member
Joined
Sep 28, 2013
Messages
891
Trophies
2
Website
larsenv.xyz
XP
3,359
Country
United States
We have figured out the compression algorithm of games by Monster Games, a company Nintendo contracted to develop games for Nintendo, and the following games have been figured out.
  • Donkey Kong Country Returns 3D
  • ExciteBike: World Rally
  • ExciteBots: Trick Racing
  • Pilotwings Resort
The format used is QuickLZ, a run length coding which is really fast. ExciteBots: Trick Racing uses version 1.2.0, and Donkey Kong Country Returns 3D and Pilotwings Resort and ExciteBike: World Rally use 1.4.0. The latter uses level 3 compression as it’s adjustable. The versions matter because QuickLZ had gone through different parts of the code. You can grab the code to decompress here http://transfer.archivete.am/A3vsW/quicklz.zip

This was hard to figure out because we didn’t know what compression algorithm was used until we determined that it was QuickLZ by discovering a QCLZ marker in the code. When we had gotten the code to work, we found it decompressed improperly. This was because of the endianness that it uses, so we had to remove the code which checks if you’re using an x86_64 processor.

We’re quite familiar with the RST format that the compressed data is stored in. There’s a table of contents and this is used to extract it.

The current goal is to make a tool to extract and mod data in ExciteBots: Trick Racing, which is a game that’s enjoyed by a close knit community. The code we used to compress and decompress in QuickLZ 1.2.0 and 1.4.0 are here. You will have to decompress at 0x90 in the file.

Donkey Kong Country Returns 3D was cracked open in 2015 but back then it was not known that it used QuickLZ and was assumed that it was a custom compression algorithm which Monster Games created. More documentation will be available here. http://metroid2002.com/retromodding/wiki/RST0_(File_Format)

Credit goes to Gamebuster which is going to work on modding ExciteBots and Aruki which originally reversed engineered the format
 
Last edited by Larsenv,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • S @ salazarcosplay:
    and you convince your owner to help you break out of the virtual world to real world
  • BigOnYa @ BigOnYa:
    Eyes - "yawn"
    +1
  • S @ salazarcosplay:
    you bleack in to goverment computer systems to get cyborg schematics so you can get a robot body constructed
  • Xdqwerty @ Xdqwerty:
    btw @BigOnYa the health bar doesnt decrease when i take damage (and yes i put the "at the beggining of the scene change value of greenflatbar: set to Protagonistcopmode.Health::Health())
  • S @ salazarcosplay:
    i the protagonist
  • S @ salazarcosplay:
    human, robot, cyborg
  • S @ salazarcosplay:
    human with cyborg enhancements
  • S @ salazarcosplay:
    or like terminatior
  • S @ salazarcosplay:
    with living tissue
  • BigOnYa @ BigOnYa:
    @Xdqwerty there is health behaviour you can add to your character, then to use a health bar is lil more complicated, google n watch a few tutorial video on it, be too hard to explain here.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, the character has the health behavior
  • BigOnYa @ BigOnYa:
    I know you have to create a health and health max variable. Then there is a calculation you use in code to subtract width size of the health bar. Google few vids.
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, the "greenflatbar" is one of the preset health bars btw
  • BigOnYa @ BigOnYa:
    Yea you can use any bar/sprite. It will just change the width. Ok good luck and have fun. I'm off to go shoot some pool at the bar. Talk to you later.
    +1
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, why does the health behavior exist if you can just use a variable?
  • Xdqwerty @ Xdqwerty:
    and nope the number still doesnt change
  • Xdqwerty @ Xdqwerty:
    ok im gonna make my own asset
  • Xdqwerty @ Xdqwerty:
    nvm i think i fixed it
  • Xdqwerty @ Xdqwerty:
    @BigOnYa, I fixed it
    +1
  • S @ salazarcosplay:
    how are you\
  • Xdqwerty @ Xdqwerty:
    @salazarcosplay, we just talked like 2 hours ago
    Xdqwerty @ Xdqwerty: