F1GP GP.EXE
The GP.EXE file contains most data needed by the game, except for various graphical elements, sounds and the separate track files.
Data Locations
This represents the zero-based index of the byte in the file where the data (“Item”) begins.
In the data below, “dec” indicates a decompressed EXE (using UNP 4.11)
Item | EU 1.05 | US 1.05 | EU 1.05 dec | US 1.05 dec |
---|---|---|---|---|
Player Horsepower | 19,848 | 19,848 | 24,600 | 24,548 |
AI Grip Level | 20,183 | 20,183 | 24,935 | 24,919 |
Driver Numbers | 154,936 | 154,892 | 180,210 | 180,146 |
Team Horsepower | 158,380 | 158,336 | 183,996 | 183,932 |
Driver Performance Qual. | 158,420 | 158,376 | 184,036 | 183,972 |
Driver Performance Race | 158,460 | 158,416 | 184,076 | 184,012 |
Car Colors | 158,500 | 158,456 | 184,116 | 184,052 |
Helmet Colors | 158,795 | 158,751 | 184,436 | 184,372 |
Pit Crew Colors | 159,421 | 159,377 | 185,076 | 185,012 |
Points System | 158,341 | 158,297 | 183,940 | 183,876 |
Rain at 1st Track Flag | 106,319 | 106,319 | 111,746 | 111,730 |
Chance of Rain | 58,394 | 58,394 | 63,146 | 63,130 |
Yellow Flags period | 23,517 | 23,517 | 28,269 | 28,253 |
Retired Cars removed | 23,631 | 23,631 | 28,383 | 28,367 |
Retire after wall hit | 125,420 | 125,376 | 131,948 | 131,884 |
Retire after car hit | 125,422 | 125,378 | 131,950 | 131,886 |
Damage after wall hit | 125,428 | 125,384 | 131,956 | 131,892 |
Damage after car hit | 125,426 | 125,382 | 131,954 | 131,890 |
Driver Aids | 124,159 | 129,990 | ||
Year Level text | 193,671 | 423,759 | ||
Car 3D shape | 159,915 ? | |||
Internal track | 128,261 (chksum offset?) | 143,481 (chksum offset?) | ||
... | ||||
Total File Length | 321,878 | 321,716 | 600,480 | 600,304 |
Item | Ita 1.05 | EU 1.03 | US 1.03 |
---|---|---|---|
Total File Length | 321,748 | 332,890 | 332,840 |
Player Horsepower
The player horsepower value is stored as a short (two bytes).
The default horsepower value for a player is 716, but the value that is actually stored is 16,384.
The formula for transforming a “normal” horsepower value into the value to store is:
value to store = normal hp * 22 + 632
Therefore, to convert a stored value to the “normal” horspower value, the formula is:
normal hp = (stored value - 632) / 22
Given this, the maximum value that can be stored is 1,460. Going above this value actually creates “negative” horsepower values, meaning that when accelerating in first gear, the player car will move backwards!
Driver Numbers
The driver numbers list is a list of 40 bytes, where each byte contains the driver number for that specific slot.
There are two slots for each team. When looking in the driver selection menu, they read from top to bottom and left to right. So the first two bytes set the numbers for the two drivers in the first team (default: McLaren), then Tyrrell, Williams, etc.
To disable a driver, set their number to 0.
A minimum of 26 active drivers is needed, otherwise the game will crash.
Also note that driver numbers cannot be higher than 40.
Drivers cannot share numbers.
Car Colors
Each car is made up of 16 bytes. The 16 bytes for each car repeat 18 times, once for each team. The team’s appear in the order in the game menu, reading from top to bottom and left to right, i.e. first McLaren, then Tyrrell, then Williams, etc.
Pos. | Polygon | Comment |
---|---|---|
0 | Tyres, sidepod air intake, lower rear wing elements | Always 33 (very dark gray) in default data |
1 | Engine cover | Main/top part of engine cover |
2 | In front of cockpit | Area at the top of the nose-cone, just in front of the cockpit. Diagonal Marlboro stripe for McLaren. |
3 | Front wing endplates | |
4 | Rear wing sides | |
5 | Side of nose cone | |
6 | Sidepod | |
7 | Front and rear wing | These are always the same color |
8 | Nose top/center | The top center part of the nose cone |
9 | Unknown | Value varies |
10/A | Tyre accent color | Always 36, except for Minardi which has 34 (slightly darker) |
11/B | Nose area | Part between the top/center and side of the nose cone. Only visible from far on McLaren. |
12/C | Cockpit side | |
13/D | Engine cover side | The "stripe" beneath the main/top part of the engine cover |
14/E | Engine cover rear | The end part of the "stripe" on the engine cover |
15/F | Sidepod top |
Normal Car Shape
Alternate Car Shape (McLaren)
When cars are far away, the “special” McLaren car shape appears in the same way as the normal car shape.
Helmet Colors
Most helmets are made up of 16 different bytes. In non-decompressed EXE files, the exceptions to this are the helmets for drivers with numbers #13, #16, #36, #37, #38, #39 and #40. These drivers have helmets where the bottom two-thirds will always have the same color.
Index 1 is never visible.
The default visor (index 0) color is 0 (black) and the default visor surround (index 6) is 6.
Pit Crew Colors
Each pit crew has 16 colors. Most of the colors should not be edited, however, since they are the colors of the jack, skin, etc.
The interesting ones are:
Pos. | Item | Comment |
---|---|---|
3 | Socks | |
4 | Pants, secondary color | |
5 | Shirt, secondary color | |
6 | Shirt, primary color | |
11 | Pants, primary color |
Points System
The points system is stored as a list of bytes, where each value contains the number of points scored for that position. However, the default EXE file is compressed, which means that positions 7 to 26 are hard-coded to 0 due to the compression.
By default, the points are stored as:
0A 06 04 03 02 01 1C 00
This is 10, 6, 4, 3, 2 and 1 for the first six finishers. The 1C 00
combo means that the rest are 0.
After decompressing the EXE file, the values are instead stored like this:
0A 06 04 03 02 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
This allows you to edit the points system for each car.
It is important to note that if a driver fails to finish the race, it seems that they will not score points, even though the final position is a point scoring one. It has not yet been researched if this is due to the F1 rule about needing to completely a certain percentage of the race to be classified, or if it’s always like this.
Driver Aids
The driver aids data specifies which aids are available at each skill level (Rookie, Amateur, Semi-Pro, Pro, Ace)
The driver aids data is five bytes long.
For each level, the available aids are a bit flag in the byte (where the two top bits are ignored, since there are only six aids)
The bits are set from right to left, so considering the bits as flags:
Bit | Aid | |
---|---|---|
1 | Auto-brakes | |
2 | Auto-gears | |
4 | Self-correcting spin | |
8 | Indestructible | |
16 | Ideal line | |
32 | Suggested gear |
For instance, the rookie settings bits are:
00111111
meaning that all aids are available.
While the ace settings bits are:
00000010
meaning that only auto-gears is available.
Internal track
Each GP.EXE contains an instance of the Silverstone track (F1CT08.DAT) inside it.