Miscellaneous Wacky Wheels File Formats
This page describes a number of Wacky Wheels file formats that are difficult to categorize.
Tabulated data for drawing the screen
The files in this section contain only tables of numbers used when drawing objects and tiles on the screen. Editing these files changes the viewing perspective of the game.
This file contains a table of INT16LE integers. If you convert each integer to a decimal number and write them to a file, 70 integers to a line, then each column of numbers describes a function. They resemble parabolas but I couldn’t find a good fit line. If you multiply all the numbers in the file by a constant factor, then the objects in the game are drawn in the wrong position from certain viewing angles.
This file contains a table of INT16LE integers. I haven’t tried plotting them yet. If you change the values, objects won’t be drawn when viewed from certain angles. This file may tell the game when a certain object is in the player’s field of view and therefore needs to be drawn.
This file contains 320 INT16LE integers. The integers describe a section of a parabola. The numbers in this file influence the apparent distance of objects and other drivers.
This file contains only a series of (x, y) points that describe a circle of radius 65,535. Each (x, y) pair is described with two signed integers:
|INT32LE Xpos||X-position on the circle|
|INT32LE Ypos||Y-position on the circle|
The first 960 pairs describe the top half of the circle, and the last 960 pairs describe the bottom half.
If you multiply every number in this file by a constant factor, your vehicle’s size changes. If you multiply the values by 1.2, for example, you can drive faster and see farther away (extending to the black area beyond the edge of the map). Multiplying by a factor less than one shrinks your vehicle.
Most of this file looks like an unused high score file, similar in format to wacky*.hi. It consists of structs that are 46 bytes long containing some text (“KNOCK ME OFF!” and “MAR 1994”) and other data. I don’t think this data is used.
The first 66 bytes of this file are unknown data. The game won’t load unless at least the first 28 bytes are present. At least these first 28 bytes appear to be signed integers (INT32LE). The sixth and seventh integers in the file (offsets 0x14 and 0x18) are read when allocating memory. If you change either of these integers to –100, for example, the game will fail to start, and will print how many bytes of memory it allocated and state that it needed an extra –100 bytes of memory.
Most likely nothing in this file will need to be changed to edit levels.
Devil motion – gig.mov
The devil that appears at the end of the last lap, and the devils that pop up in two–player races when you hit the “giggle keys,” all move according to the data in gig.mov. The first two bytes in the file are a UINT16LE integer giving the number of structs that follow minus one (i.e., there is one more struct in the file than you would think). The default length integer is 0x50, designating 0x51 or 81 structs. You can set the length lower (down to zero), but if you set it longer, the game might crash or act erratically.
Each struct is 4 bytes long and contains a signed (x, y) pair of coordinates:
|INT16LE Xpos||X-position of the devil relative to its default position (off to the right for the last lap devil, and in the middle of the screen for the other devils). The positive direction is to the right.|
|INT16LE Ypos||Y-position of the devil relative to its default position. The positive direction is down.|
The game shows the devil at each (x, y) position for about 0.1 seconds. Once there are no more (x, y) pairs, the devil disappears in a puff of smoke.
Changing go kart/lawnmower speed – *.tab
The files *.tab set the player speeds for 12 hp and 6 hp engines: vel.tab is for 12 hp engines and vel2.tab is for 6 hp engines. Each file contains 200 INT16LE integers that designate the human player’s go kart/lawnmower speed as it accelerates. The first number is presumably zero, and the last number is the top speed (80 mph by default for 12 hp engines). The computer players will automatically adjust their speed to be competitive with you.
You drive backwards if you set the speeds to be negative. So far, I have only set speeds in a linear progression, but other curves should be possible. The in-game speedometer can only read to 99 mph, but you can try to drive as fast as 32,767 mph if you want to. (Good luck.)