Object format
In the F1CT09 file at the address of about 0x2940 there start object records. These records are used when positioning objects along the track. These records do not define objects themselves, but define the positions, rotations, heights etc.
Each record is 16 bytes long.
address: byte 0 byte 15
0x294e 1d 94 20 05 00 03 00 00 00 00 02 00 00 00 00 00
meanings:
byte:
0-1 object code - selects which object should be positioned here
2-3 something like color of predefined object bitmap areas - e.g. changes color of track
marshals
4-5 how far the object is positioned from the middle of the track (negative number means positioning to the left, positive to the right)
6 ?
7 rotation - when here 0x80, the bitmap will be on the back of an object
8-9 something like which bitmap will be displayed when watching the object from behind
may be another object code for the back of the object
10-11 ?
12-13 height above the track surface - 0x280 is about 150 - 200cm
14-15 ?
I wasn't playing with these records very long, but it seems, that every object is placed on the track using these records including huge vector objects like tribunes and houses. I was able to position one huge tribune in the middle of the track at the height of about 5 meters. But in these cases the game engine isn't able to display the 3d scene correctly. There is no z-buffer, maybe some kind of depth sorting, but not very complicated (remember - this game was running on a 286 at 8FPS at full detail !). There is backface removal, but this cannot solve these "special" cases like a tribune on the track...
When playing with trackside adverts I discovered, that almost all of them are positioned using 2 records. I changed the distance from the middle of the track to 0 and all of these adverts moved into the middle of the track (on the whole track). Some stayed at there original places - these used different records.