Jump to content

Unknow Compression Algorithm

- - - - -

  • Please log in to reply
3 replies to this topic

#1
johnwhile

johnwhile

    Newbie

  • Members
  • Pip
  • 3 posts
Hi all, this is my first topic.
I'm trying to understand a compression algorithm used by a games maker, preface they themselves have released a small program to unzip their files for modding, then I suppose isn't illegal.
The two files for comparison were obtained from the original game (compressed), and from file uncompressed by the released program (is a exe).

Obviously is a proprietary program then the source code is not released, but certainly from a first analysis with a hex editor seems to be intuitive:
If you see the string "Scene Root" is rewritten equal, the string "bone_root" is written "bone_r" because i suppose "oot" string is already in the previous string. :confused:

http://dl.dropbox.co...lista_crank.zip

After this introduction someone can enlighten me ? I would be very grateful !
The purpose of this is just to understand if the same method was used to compress an animations used by the game in some special cases, however, is already dated and now unpacked to 99% with programs made ​​by its to support modding, butt this aspect have been neglected and no longer offer support for this game.

Thanks.

#2
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
What do you know about compression methods, in general?
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

#3
johnwhile

johnwhile

    Newbie

  • Members
  • Pip
  • 3 posts
I know nothing about compression, but a user tell me that is a lzo algorithm result without header. I download the lzo.exe to test and I found that result is identical. Now i'm try to convert the source code in python and maxscript (my goal).:w00t:

#4
Alexander

Alexander

    It's Science!

  • Moderators
  • 4,120 posts
  • Location:Vancouver, Eh! Cleverness: 200
If you see root words, it is likely a compression scheme using a dictionary based algorithm on occurrences of these root words.

A good reference of algorithms implementing such methods can be found fairly easily, in this case WikiBooks has one:
Data Compression/Dictionary compression - Wikibooks, open books for an open world

It lists common algorithms such as LZW, and LZO is a bit down the list.

It appears to be more custom than more common schemes, so finding "LZO" from somebody else would have saved time either way.

Alexander.
Be sure to read the updated FAQ! || Health is achieved through the same 10,000 steps.
If a suggested code/method fails, informing us is less important than telling us why or what errors occurred.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users