werkkzeug 4 pak files

category: code [glöplog]
All we know that werkkzeug 4 stores demodata not at the end of exe file, but in the special *.pak archive which is distributed with player. Do you want to see into this archives?

I developed small program for unpacking this archives. It can be downloaded from werkkzeug.wallst.ru:
I uploaded only Linux version of this program because I do not yet compiled it for other OS's.

Unwar stands for UNpacker for Werkkzeug ARchives.

I am not responsible if your Windows or other operating system cannot normally run Linux applications. But I shall soon publish win32 version of this program.
added on the 2011-03-11 22:43:39 by Sauron Sauron
unwar filename.pak
to unpack archive to the current directory, or
unwar filename.pak directory
or if you want to unpack archive to the specified directory (it will be created if not exists).
added on the 2011-03-11 22:47:27 by Sauron Sauron
added on the 2011-03-11 22:54:06 by xernobyl xernobyl
403 forbidden?
added on the 2011-03-11 23:17:09 by LiraNuna LiraNuna
Do you want to see into this archives?

at the moment... and... in fact?!?... no!!! so... I give a shit. :)

I don't feel like ripping magellan apart. I don't care to see... how they made the bulb. I'd rather code a nice fake myself, when I feel like it.
added on the 2011-03-11 23:30:56 by yumeji yumeji
BTW... sauron. You seem to be a lil overly obsessed, cracking farbrausch's data files lately. ?o.o?

nothing better todo?!?
added on the 2011-03-11 23:35:47 by yumeji yumeji
yumeji: Reverse-engineering file formats while you could just kindly ask the authors if they want to release the specs is something different than writing loaders for file formats, though. I mean, I have even been doing that myself with various Epic Megagames module formats, just because I wanted to listen to the original music. Nothing wrong with that. But yeah, I _did_ use the information that was publically available (and Josh Jensen wasn't very helpful either / didn't reply to my questions, so I *did* have to do some little reverse-engineering myself :).
You could at least publish source .... >_>
added on the 2011-03-12 00:22:18 by mudlord mudlord
Now, we need to reverse-engineer Unwar.
added on the 2011-03-12 02:09:12 by LLB LLB
yumeji: .pak file only has assets, the mandelbulb is code and completely realtime, no precalc involved whatsoever. j
added on the 2011-03-12 03:04:05 by ryg ryg
I know ryg. I was just subliminally joking about the motivation of rev'eng all the data stuff?! cause there's alot more real coding things involved. ;)
added on the 2011-03-12 06:38:52 by yumeji yumeji
Sauron: Maybe you could hack their mind as well...?
added on the 2011-03-12 10:18:46 by Defiance Defiance
nice work
added on the 2011-03-12 14:11:22 by Sylvao Sylvao
you can get textures! and vertex buffers! awesome!

...wait, it's actually easier to just dump them from PIX. gets you the shaders too.
added on the 2011-03-12 21:33:06 by ryg ryg
but.. but.. but.. the ultra secret .wz4 file!
added on the 2011-03-12 22:09:32 by kb_ kb_
but.. but.. but.. the ultra secret .wz4 file!

I shall publish full description of .wz4 file format next week.
added on the 2011-03-12 23:34:43 by Sauron Sauron
I shall publish full description of .wz4 file format next week.

Ok... So... I don't wanna see any unknown variable. I mean... seriously!!! No cheese please. ;)
added on the 2011-03-13 00:07:42 by yumeji yumeji
Hey everyone! I just reversed engineered The Popular Demo song!! Here goes the source code:

Code:D#m7 | A#m7 | Bmaj7 | G#m7 C# |
added on the 2011-03-13 02:10:57 by jeenio jeenio
Ok... So... I don't wanna see any unknown variable. I mean... seriously!!! No cheese please. ;)

No fucking chance of that happening :)

There's unknown variables in the source. As in, there's fields which used to have a purpose in older file format versions and are now just ignored, and others which are intentionally left blank :)

Small section of the op serialization routine:
Code: if(version>=12) s | dummy; sInt words = Class->ParaWords; s | words; s.ArrayU32(EditU(),sMin(words,Class->ParaWords)); if(words>Class->ParaWords) s.Skip((words-Class->ParaWords)*4); sInt strings = Class->ParaStrings; s | strings; if(s.IsWriting()) { sVERIFY(strings<=Class->ParaStrings); for(sInt i=0;i<strings;i++) s | EditString; } else { sInt iend = sMin(Class->ParaStrings,strings); for(sInt i=0;i<iend;i++) s | EditString[i]; // skip unused string sTextBuffer discard; for(sInt i=iend;i<strings;i++) s | &discard; }

Yep, motherfuckers, [i]that's how we roll
added on the 2011-03-13 08:24:03 by ryg ryg

you seem to be a guy who can handle code... why dot you waste your time reverseEngine stuff?

i have a better idea: what about coding a cool tool for all the audience. dont be destructive. you seem to be really talented.. :)

be creative, code something really cool instead of doing some sennnnsless cracks :)

i think there are many pouetUsers out there who will get in contact to you supporting you doing a huge project like this.
added on the 2011-03-13 21:03:55 by .reEto .reEto
how is reverse engineering destructive, please?
added on the 2011-03-13 23:00:47 by ryg ryg
are you overloading | there, or...what
added on the 2011-03-13 23:19:22 by shuffle2 shuffle2
no, we just OR everything together while saving. Results in lotta 1 bits, more easily compressible.

Loading is then done by almost the same routine, just with AND to get the bits out of the pile of ones again.
added on the 2011-03-13 23:32:53 by kb_ kb_
best answer of the day: kb
Cool, I must remember that entropy minimization trick! Have you submitted a paper to IEEE Transactions on Information Theory on it yet?
added on the 2011-03-13 23:59:54 by trc_wm trc_wm