Data Shenanigans - The programming blog at its finest!
  • About me
  • Applications
Reverse engineering

Gruntz – WWD specification

June 21, 2020 by Tomalla 2 Comments

Files with WWD extension (Wap World Document) are designed to store level data in games based on the WAP32 engine. Depending on the actual game in order to edit these files you’d use: Gruntz Level Editor (GLE) in the game Gruntz or Wap World in the case of the game Claw. Implementation-wise these editors don’t differ much, only GLE incorporates a few additional new features. For this very reason this article will be dedicated to WWD files produced by GLE, which are technically a functional superset of WWD files produced by the Wap World editor.

Below is the formal WWD file specification, taking into account all the subtle differences between Gruntz and Claw level editors.

A few basic definitions are required to get things started:

  • plane – every level is comprised of planes. One of them is required to be marked as “main” – that’s where all the action takes place. Other planes are purely optional and are for decorational purposes only.
  • tiles – every plane is a rectangular board comprised of tiles.
  • tile properties – every tile in the main plane may have a different functionality. Tile properties describe how the tile interacts with other objects in its vicinity and what it’s responsible for.
Continue reading
Uncategorized

Gruntz Decryptor 1.1.0 – decoding cheat codes

November 15, 2018 by Tomalla No Comments

The new version of the Gruntz Decryptor is now available for download! The application allows you to read and modify the ATTRIBUTEZ.TXT and CHEATZ.TXT files from the game Gruntz.

The primary feature in 1.1.0 is the ability to decode all cheat codes in the configuration file. Up to this version the ATTRIBUTEZ.TXT and CHEATZ.TXT files were decrypted, but the cheat codes remained in the encoded form. Now you can modify them freely as well as add your own cheat codes.

All information about the update and the application itself are available on the main page of the project: Gruntz Decryptor.

Reverse engineering

Gruntz – deciphering the CHEATZ.TXT file

November 11, 2018 by Tomalla No Comments

In my last article I described the details of the ATTRIBUTEZ.TXT file. Now it’s time to tackle the internals of the mysterious CHEATZ.TXT file. Since these two files have a lot in common I highly recommend you read the previous article about ATTRIBUTEZ.TXT file beforehand – it’ll definitely help you understand what’s going on in this one.

The CHEATZ.TXT file was quite important for me. First the encryption algorithm used in the ATTRIBUTEZ.TXT file was discovered during my absence – back then I was on a hiatus from Gruntz and when I came back I was presented with a fait accompli. I felt really uncomfortable that such a discovery missed me by a mile. Second it turned out the ATTRIBUTEZ.TXT file contains some very important information, including – the cheat codes. From 148KB which the file takes up, almost 5.5KB are cheat codes (70 of them to be more exact). And here we have the CHEATZ.TXT file, which doesn’t even have 1KB – it’s over six times smaller than the cheat codes from the ATTRIBUTEZ.TXT file alone! This provokes a few questions – what is it that’s inside this file? Is it really cheat codes like the file name would suggest? Well considering the file size it wouldn’t be many cheat codes anyways, a few of them tops. And simply look at the localization of the file – its full path is STATEZ\CREDITZ\PALETTEZ\CHEATZ.TXT. Is it any indication of what we might find in the file?

Continue reading
Program

Gruntz Decryptor

August 18, 2018 by Tomalla No Comments

In the last two articles I explained in detail what the ATTRIBUTEZ.TXT and CHEATZ.TXT files are and how to read them. They’re encrypted configuration files located in the GRUNTZ.REZ archive. The Gruntz Decryptor allows these files to be modified – you can now decrypt such file, change any parameters of interest and encrypt it back again, so that Gruntz is able to properly read them. The program also automatically decodes all cheat codes so that you can freely modify them and add your own.

Only the ATTRIBUTEZ.TXT file is really loaded and used by the game – the CHEATZ.TXT file is just a relic from the game development. Because of that the option of encrypting the CHEATZ.TXT file might seem superfluous; I’ve decided to include it however for completeness’ sake.

DOWNLOAD
Gruntz Decryptor 1.1.0.zip (1.23 MB)
Continue reading
Reverse engineering

Gruntz – deciphering the ATTRIBUTEZ.TXT file

December 9, 2017 by Tomalla No Comments

From among thousands of different files in the GRUNTZ.REZ archive two are truly unique. These are GAME\ATTRIBUTEZ.TXT and STATEZ\CREDITZ\PALETTEZ\CHEATZ.TXT files. In total, there are four files with the *.TXT extension in the archive. In addition to the two mentioned above, there are also files GAME\VERSION\VERSION.TXT (not used by the game itself, containing only the string “1.00”) and STATEZ\CREDITZ\CREDITZ.TXT (end credits of the game with some funny gags at the end). But while these two files can be easily read with Notepad, ATTRIBUTEZ.TXT and CHEATZ.TXT files may pose a problem – if opened in a typical text editor random gibberish would appear with no clear indication of what the real purpose of these files really is. If someone wants to view them, you can download them right here:

  • ATTRIBUTEZ.TXT (147KB)
  • CHEATZ.TXT (1KB)

Wait a minute, these are binary files! When I first saw these files some time ago, I felt a bit bitter about this fact, believing that I wouldn’t ever get to know the real contents of those files. Especially the CHEATZ.TXT file, whose name can make many people drool involuntarily. And what’s the deal with the PALLETEZ folder anyways, why is it in there?

In this post I’ll try to explain what ATTRIBUTEZ.TXT really is and what it is for. The next post will be reserved for the file CHEATZ.TXT.

Continue reading
Reverse engineering

Gruntz – the brief history of modding

December 8, 2017 by Tomalla No Comments

Gruntz … the game of my entire childhood (right after The Neverhood) and the game I have really fond memories of. And definitely I’m not the only one out there – since the game was produced in 1999, numerous Gruntz communities and fan pages have been created. Unfortunately the time spares no man and these activities were not an exception. Most of them have been forgotten or closed down due to lack of activitity. The one that did survive and is noteworthy is the GooRoo’s Gruntz Forum. The forum has been already running for 14 years (and I’ve been its proud member for 10 years). Naturally it had its ups and downs but thanks to Ed Kivi – the founder of the forum – everything is running smoothly and the forum is prospering. The most of the forum’s activity is based on the work of the Designers, who design custom levels for others to play. At the time of writing there are 619 custom levels and counting! 12 of which are made by yours truly 😉 The most recent level was released less than month ago so the site is doing perfectly well.

I’d even say there’s quite a fandom concentrated around the game. There are illustrated walkthroughs to guide the player through a level, be it standard or custom one (some of them in a video form), there are countless discussions on possible sequels of the game (some are even in the making), there was also a time when comic strips were put together. Oh, and there’s an interesting habit of changing the spelling of words ending with an “s” where it’s replaced with a “z” instead, so we can spot “Switchez”, “Cheatz” and “Toolz” all over the place instead of regular “Switches”, “Cheats” and “Tools”. It’s not only restricted to plurals – just take “Indiana Jonez” as an example (and bonus point to those who know where this phrase is used in the game!). This distinctive notation was introduced by the creators of the game themselves (the name of the game being a subtle hint – “Gruntz”).

Continue reading
Program

Gruntz REZ Patcher 1.0.0

December 12, 2012 by Tomalla 2 Comments

It’s the first version of the application used to modify REZ files based on patches. You provide a list of patches which program then analyzes and modifies the contents of the original REZ package.

Gruntz REZ Patcher is intended to finally make Gruntz a moddable game! To some extent at least.

Since it’s the first working version of the program, you’re likely to encounter some of the bugs. When this happens, report them in the comment section below this post alongside ideas for new features and constructive feedback in general. I don’t think there’s a need for a special place for it at this very moment, maybe I’ll think of it later.

DOWNLOAD
Gruntz REZ Patcher 1.0.0.zip (1.45 MB)

Below are the screenshots of the addition of the custom tileset “Virtual Reality” by Zu:


When I had released the first version 0.1.0, I promised I would take care of a proper, even the simplest GUI to make the program user friendly. Well, it turned out the current release, even though it’s got a GUI, has nothing to do with the original 0.1.0. I should have named it “Gruntz REZ Packer” or something alike and reserve the name “Gruntz REZ Patcher” for a version that actually does patch anything whatsoever. Ah well, should have thought of that sooner.

A brief manual and the way the program works:
The program creates a backup copy of the original REZ file before it patches it for obvious reasons. Later on it treats the backup copy as the base for patching. It’s placed in the folder where the application is located. The program is split into two functional parts: the top list named Pool is a workspace of some sorts used for stashing the patches we’re working with. The bottom one named Patches is the list of patches that actually are included when building a new, altered version of a REZ file. They are read in order from top to bottom (in case of file conflicts between patches, the lower a patch is, the higher priority it’s got). A quick way to add new patches to those lists is to simply drag them onto a program from Explorer window.

As of now patches can have *.zip or *.grp extensions. The latter is in fact a ZIP archive, however it’s interpreted in a slightly different way. The program looks for a patch.txt file in a top directory of the archive and when found, reads detailed patch information included (author and a patch name). This data is viewed in both lists when a program is up and running.

For future reference for modders, here’s an example of how patch.txt file should look like:

[patch]
author=Foo The Third
name=My name for a patch v5.7.0
Program

Gruntz REZ Patcher 0.1.0

October 13, 2012 by Tomalla No Comments

I’ve just finished the first version of “Gruntz REZ Patcher”. The application is primaly written for use in the game Gruntz, however it’s very likely to work with other Monolith games as well, such as Claw and Get Mediaval. Its primary goal is to make it possible to mod Gruntz: the program would allow anyone to create new tile sets, adding new image sets, sounds etc. As of now it isn’t really possible because of a lack of proper tools.

This version features only the most important functions, which practically are the “basis” of the future versions. These features are: creating a REZ package and exporting its contents. The user input is received via command-line; it’s got no GUI – I’ll add it later, since it’s not a priority now.

DOWNLOAD
Gruntz REZ Patcher 0.1.0.zip (485.32 KB)

A list of arguments can be thought of as a list of commands – they area analized one by one and the proper functions are being executed on the fly. There are four commands so far:

-dr <directory path> <output REZ file>
-rd <REZ file> <output directory path>
-lr <REZ file>
-l

Here are some examples of command lines:

::Packs the entire directory with subfolders into REZ file
"Gruntz REZ Patcher.exe" -dr "C:\Gruntz Data\\" "C:\Gruntz\GRUNTZ.REZ"

::Exports the contents of a REZ file into the directory specified and lists the contents of the same REZ file
"Gruntz REZ Patcher.exe" -rd "C:\Gruntz\GRUNTZ.REZ" "C:\Gruntz Data\\" -l

::Lists the contents of a REZ file specified
"Gruntz REZ Patcher.exe" -lr "C:\Gruntz\GRUNTZ.REZ"

The next version will be all about implementing automatic conversion of PID files during packing as well as exporting a REZ file. Then I’ll think of a simple GUI.

Other languages

  • PolskiPolski

Recent Posts

  • KIWI GPS – VOICE001.ME sound file specification October 1, 2022
  • Gruntz – WWD specification June 21, 2020
  • Gruntz Decryptor 1.1.0 – decoding cheat codes November 15, 2018
  • Gruntz – deciphering the CHEATZ.TXT file November 11, 2018
  • Gruntz Decryptor August 18, 2018

Recent Comments

  • Tomalla on Gruntz – WWD specification
  • Gunay on Gruntz – WWD specification
  • Quagmind on Gruntz REZ Patcher 1.0.0
  • slap slap slap clap clap clap on Gruntz REZ Patcher 1.0.0

Categories

Program (3) Reverse engineering (5) Uncategorized (2)

Tags

Announcements (1) ATTRIBUTEZ.TXT & CHEATZ.TXT (3) Gruntz (8) KIWI (1) PID (1) REZ (3) Specifications (2) WWD (2)

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

© 2011 All rights reserved.