My Gran Turismo Diaries

A Lurid Tale of Obsession, Depravity, Wits and Attempted Wit

Thursday December 07, 2000

(GT1 Version 1.1) More Explanation of the Race Parameters

[Previous Entry ] [Thread List ] [Search ] [game logs ] [Next Entry ] [email] [Disclaimers]

<<-- Game Shark Hints -->>
<<-- Gameplay Hints -->>

Copyright © 1999,2000, the author/owner of the following ==> page <==.


Thursday December 07, 2000

(GT1 Version 1.1) More Explanation of the Race Parameters

Well, you probably managed to figure out what most of the stuff in my lists of the race parameters meant, but perhaps some of it was fuzzy. So here I attempt to explain them in more detail.

   
Sunday Cup Event (8008F544) - address of main table (6 x 4 bytes)
   
 tracks 80090E0C
 prizemoney 80091004
 poletimes 8008F4E4
 entrants 80090B50
 prizecars 80090D0C
 laps 2

Each of the four-byte quantities is the address of another table, except for the number of laps which is simply a four-byte quantity. Thus every race in a series must have the same number of laps. Each four-byte quantity comes right after the previous--that is their addresses (locations) increase by 4. In the case of spot races, which have no prize cars, the four-byte pointer quantity to the prize cars list is in fact zero.

The addresses in this table always point to the start a list of four-byte quantities. In the case of the track list, entrant list, and prize-car list, those lists are in turn composed of 4-byte pointers, stored contiguously, and terminated by 4-byte zero pointer. Successive elements of those lists will, once again, be stored at addresses (locations) increasing by 4.

In the case of the poletimes, however, the table (composed of four-byte quantities representing the number of thousandths of seconds for each pole position time) is not zero-terminated. The number of elements is inferred by the number of elements in the track table. Similarly, the number of elements in the prize-money list is known and constant (although the Championship element is zero in the case of Spot Race or Enduro).

You can actually patch the zero pointer which terminates the track list to be non-zero (preferably a valid pointer to a valid track name) and extend the number of races in a series. (A Spot Race or Enduro is actually, in some sense, a series of only 1 race, so you can turn a Spot Races or Enduro into a series).

Similarly, you can extend the prize car list, or terminate it at fewer entries by putting in a zero pointer. It is also quite easy to shorten the number of possible AI entrants in the same way. You can shorten the number of possible entrants to one, in which case the field you race against will consist of several copies of that same car (although they will be different colours, if the car has multiple colour choices).

Most patches can be done while in the pre-race screen for the first race, but the AI field must be patched using a boot code so that it will take effect before the first race starts.

     
tracks
 80090E0C ->
 8008C77C "mini" Autumn Mini
 8008C760 "testline" High Speed Ring
 8008C6B0 "short" Grand Valley East

Here, 80090E0C is tha address of the first pointer to a track string (value 8008C77C which points to the string "mini"), 80090E10 is the address of the pointer to the second, 80090E14 the third, and 80090E18 contains a four-byte zero quantity, indicating that there are three races in this event.

   
prizemoney
 80091004 ->
 (q1500, 1st5000, champ15000)
     
entrants
 80090B50 ->
 8008C408 "tstln" Starlet Glanza V
 8008C250 "mecln" Eclipse GT
 8008C410 "hcfon" Civic'93 Sedan
 8008C418 "tlevn" Corolla Levin BZ-G
 8008C378 "ademn" Demio GL-X
 8008C490 "mmgon" Mirage Cyborg R'92
 8008C3D8 "hcvnn" Civic 3 door
 8008C458 "mmgrn" Mirage Asti RX
 8008C470 "nq15n" Silvia Q's Aero (S14)

Here, 80090B50 is tha address of the first pointer to a car string (value 8008C408 which points to the string "tstln"), location 80090B54 contains the pointer to the second, 80090B58 the third, etc.

     
prizecars
 80090D0C ->
 8008C678 "a-emn" Demio Aspec

Here, 80090D0C is tha address of the pointer to a car string (8008C678 which points to the string "a-emn"), while location 80090D10 contains a four-byte zero quantity, indicating that there is only one possible prize car for this race.

     
poletimes
 8008F4E4 ->
 0000B2C0 0:45.769 (Autumn Mini)
 000122C2 1:14.434 (High Speed Ring)
 0001447C 1:23.068 (Grand Valley East)

Here, 8008F4E4 is tha address of the first four-byte qualifying time (0000B2C0 or 45769, representing 45.769 seconds), 8008F4E8 is the address of the second, and 8008F4EC the third. 8008F4F0 is actually the address of the first element of the qualifying table for the next event (Clubman).


<<-- Game Shark Hints -->>
<<-- Gameplay Hints -->>

[Previous Entry ] [Thread List ] [Search ] [game logs ] [Next Entry ] [email] [Disclaimers]


Copyright © 1999,2000 the author/owner of the following ==> page <==.

email

Disclaimers