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

KIWI GPS – VOICE001.ME sound file specification

October 1, 2022 by Tomalla No Comments

KIWI GPS is a navigation system built in many cars. In order to use a particular map you have to put the map DVD into the DVD drive in your car and the GPS system will load it up and use it. Besides map data the DVD also includes sound data used for voice directions. Many car manufactures also augment the data with other extensions.

The contents of the DVD can be viewed and explored using a program named Kiwi Format Explorer, or KFE for short. Here’s how KFE looks like:

It just so happened that I wanted to replace standard voice-overs with … Gruntz monologues! I’d love to hear those little buggers tell me to turn left or to take a second exit on a roundabout up ahead. So basically … it was solely for shit and giggles. Unfortunately with KFE you may only preview the saved voice-overs – it won’t allow you to edit or replace them. In that moment I thought to myself – surely in order to playback those voice-overs KFE has to decode them first. And if I manage to reverse the decoding algorithm perhaps I will be able to design an encoder and encode my own samples as well.

The following specification of sound data in the KIWI GPS was reversed for the system used in Volvo cars specifically. It may or may not work in other car brands. In the case of Volvo all the sound data is stored in the DVD in the file named VOICE001.ME. In order to provide the specification KFE was reversed to see how it exactly reads the archive and how it decodes the sound data before playing it back.

Continue reading
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
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
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

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.