Converting GP2 Tracks to GP3

Version 0.8 written by Wøødy, August 2000
e-mail to: <philwoody802@netscapeonline.co.uk>

Current Track Editor versions: Paul Hoad v2.0.1; Vaino Iso-Hannula v3.007

Introduction

This guide is intended to help quickly convert GP2 tracks to GP3 format, until it is fully supported by the Track Editors. It also acts as a list of functions which should be added to the editors, so hopefully the use of this document will soon become redundant. The list is growing but you must follow all these steps to prevent the EXE from hanging upon loading your track.

Stage 1 = correcting visible differences
Stage 2 = correcting hidden differences

*** Stage 1 ***


a) Importing Track
Always have the GP2ed and the GP3ed running at the same time for easy comparison.
i) As many GP2 cmds are now obsolete or have a different number of arguments it is unwise to import them all using the editor function, illegal cmds cause the game to crash. However simply choosing not to import the GP2 cmds is sometimes not enough. You should remove all track cmds first in the GP2ed, apart from 0x86, 0x87, 0xa1, 0xa2, 0xa3 and 0xa4. These are the essential cmds to connect the pit world.

ii) Why manually remove the rest?
There are anomalies, e.g. if a cmd has a variable number of arguments, where the GP3ed may read this number wrongly and therefore try to import from the wrong offset in the file.
(An example is the 0xc5 flag for 7 or 8 args. If you import a GP2 track which contains a 0xc5 cmd, even if you choose not to import this cmd, when the track sector w/ 0xc5 is imported the GP3ed reads its 10 bytes incorrectly, and further sectors don't display).

iii) You must have an excess of sectors for both CC line and track in your GP3 base before importing – new ones cannot be inserted, unwanted ones can be clipped.
I would either remove all cmds in the GP2ed and then insert the 6 pit cmds, or manually remove only the type 1 & type 2 obsolete cmds (listed below) from the GP2 track and choose to import cmds. The first option is safest, but if you already have successes go for the second.

iv) You must also consider the cmds in the GP3 base track. With only these legal cmds left in the GP2 base, you must first remove all clashing cmds in the GP3 track and then import from GP2 the track shape, with cmd import enabled.
Also you must manually copy across the following data:
Track tree/ Track Config/ Track Sections/ – track start angle, height, x, y, z, unk number

b) Importing Pitlane
It’s currently slightly different from the track in that the pitlane does not overwrite the old one but is pasted on the end, you must manually remove the base GP3 pitlane first (I use Vaino Iso-Hannula's editor to do this because it does not crash as eagerly as Paul Hoad’s). Again delete all the GP2 pit cmds apart from 0x89, 0x96, 0x97, 0x9b, 0x9e, 0x9f, 0xa0 (the essentials) and those known to be unchanged, and import them with the pit shape. The pitlane side flag must match that in the GP2 version:
Track tree/ Track Config/ Track Sections/ – pitlane side flag

c) Importing CC Line (the important bit)
Remember to have an excess of CC sectors in the GP3 base, and import with the prune function enabled.
There are some blocks of misc. data and offsets which must be copied manually into the new GP3 track. The main one is the CC line start position - the line is imported but not the info for start offset and distance from track centre, so it goes off the track and the EXE hangs as expected if this is not corrected.
Also the imported track will be in the same position in the GP world as its GP3 base, if this means it hangs outside you must adjust, as well as for the track, the start position of the CC line (x, y, z, gradient), making sure they're the same as the GP2 version.
The data you must manually input is:
Menu toolbar/ CC line/ CC Line Start Position – offset, DFC, track side
Track tree/ Track Config/ CC Line Sections – CC start x, start y, start high, unk numbers 1 to 4

Summary: the track & CC line must be identical relative to each other as in the GP2 original.

*** Stage 2 ***


For safety always observe the following checks:
i) Make sure the GP3ed display is identical to GP2ed and that there are no illegal GP2 cmds present.
ii) Ensure there is no conflict between pit and track cmds, GP3 is less crash resilient than GP2 (I deleted all track scenery and the track crashed, then deleted all pit scenery and it worked again).
iii) Make sure the track + pit length is not greater than 1648 units (though with the GP2 limit at 1597 this is unlikely!).
iv) Put the track in the same slot as its base.

There are more minor problems that you will need to look closely for. For example the Track Editor does not like importing track sector 0 sometimes so simply insert it yourself, and at present you have to enter the heights manually. Not being able to import scenery is the main problem but this should be easy to convert when the new cmds are fully de-unked, the CC line is the most use for now.

Cmd List
Please refer to the Command Library of Addie Walti for more detailed information on these cmds:

Type 1 – cannot be in GP2 track even if not imported

0xc5?

Type 2 – cannot be imported because obsolete or altered

0x8a
0x8b
0x92?
0x9c
0xaa?
0xb0
0xb8
0xb9
0xbb
0xbc
0xc5, 0xc8
etc. – different loc codes
0xce?
0xd9
0xda
0xe0?

Glossary
Cmd – command
Arg – argument
Unk – unknown
GP2ed – Grand Prix 2 Track Editor
GP3ed – Grand Prix 3 Track Editor

Disclaimer
The author takes no responsibility for errors or any file damage resulting from the use of this document, if you find any of the above information incorrect or incomplete you must notify me.