![]() |
Game status buffer |
| Address | Length | Description | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| 5E00 | 3 |
The best time so far, as three BCD bytes. The hours are a single digit (in the low nibble). See Time_1 for the time of the current game.
|
|||||||||
| 5E03 | 1 |
When a value for "Best Time" exists this will be 01 else it'll be 00.
|
|||||||||
| 5E04 | 3 |
The position of the player's car along the map. It is a 24-bit number made up of a fraction of a map unit and then the position in map units. The fraction is needed because the car moves by less than one map unit each frame (see HandlerAccelerate). The map is 1800 map units wide.
|
|||||||||
| 5E07 | 3 |
The position of the player's car up the map, in the same way as PlayerMapPosition_Fraction. The map is 0C00 map units high.
|
|||||||||
| 5E0A | 2 |
The amount of fuel in the tank, which is shown on the fuel gauge. It is used up as the car moves (see HandlerFuel) and set to C0FF by a refuel (see PlaceObject_Refuel). The car is out of fuel when the high byte is 00.
|
|||||||||
| 5E0C | 1 |
The temperature of the engine, which is shown on the temperature gauge. It goes up to C0 rising at high speeds and falling at low speeds (see FuelSkipWrite). The car slows down as if it has no fuel when the temperature is A0 or more.
|
|||||||||
| 5E0D | 1 |
The speed of the player's car, which is shown on the speed gauge. It goes from 00 to C0 (see HandlerCanAccelerate).
|
|||||||||
| 5E0E | 2 |
Only ever written to, with 00 when a new car is set up (see 63C1). Purpose not yet known.
|
|||||||||
| 5E10 | 2 |
The direction that the player's car is facing, as a 0400 step circle: 00 is straight up and the car turns clockwise as the number increases. Steering changes it by 18 each frame (see HandlerSteering).
|
|||||||||
| 5E12 | 1 |
This byte is not referenced by the game.
|
|||||||||
| 5E13 | 1 |
Which side of the player's car the object being drawn is on, found by DrawObjects and used by PlaceObject. Bit 1 is set when the object is to the left of the car.
|
|||||||||
| 5E14 | 2 |
The position on the screen of the object being drawn, which is worked out by PlaceObject. The values are not used again after that.
|
|||||||||
| 5E16 | 1 |
This byte is not referenced by the game.
|
|||||||||
| 5E17 | 1 |
The horizontal distance (always positive, in map units) from the player's car to the object being drawn, which is worked out by DrawObjects.
|
|||||||||
| 5E18 | 1 |
The vertical distance (always positive, in map units) from the player's car to the object being drawn, which is worked out by DrawObjects.
|
|||||||||
| 5E19 | 2 |
The address of the first entry in MapPoints which might be in view of the player's car. DrawObjects starts from here, and it is kept up to date by FindFirstObject and UpdateCurrentObject.
|
|||||||||
| 5E1B | 1 |
Set to 01 by UpdateCurrentObject when it has moved the pointer at CurrentObject back to an earlier map point, else 00.
|
|||||||||
| 5E1C | 2 |
The distance to the previous map point, kept by UpdateCurrentObject when it is moving the pointer at CurrentObject forwards.
|
|||||||||
| 5E1E | 1 |
The sprite ID that is used to draw the object being drawn by PlaceObject. This is the same as ActiveObject, unless the object is a place name.
|
|||||||||
| 5E1F | 1 |
The sprite ID of the entry in MapPoints that is being drawn by DrawObjects. Bit 6 is set for a place name, and a collected cup is 60.
|
|||||||||
| 5E20 | 7 |
The old state of the actor whose sprite is being erased and drawn again (see StoreEntity and DisplayEntity).
|
|||||||||
| 5E27 | 2 |
The position of the sprite being coloured by ColouriseSprite.
|
|||||||||
| 5E29 | 2 |
16-bit counter starting at 0x0000 and counting +1 for each pass of the main loop (see Pause_Loop). This continues until the game is over. Counter loops around after reaching FFFF.
|
|||||||||
| 5E2B | 1 |
This byte is not referenced by the game.
|
|||||||||
| 5E2C | 1 |
Temporary counter used when drawing sprites.
|
|||||||||
| 5E2D | 3 |
The miles travelled, as six BCD digits (see UpdatePlayerCar and DisplayMiles).
|
|||||||||
| 5E30 | 1 |
The fraction of a mile that has been travelled, which carries over into the miles when it overflows (see UpdatePlayerCar).
|
|||||||||
| 5E31 | 3 |
The time taken in the current game, as three BCD bytes. The hours are a single digit (in the low nibble). See HandlerTime.
|
|||||||||
| 5E34 | 2 |
The inverted low byte of PlayerMapPosition and the low byte of PlayerMapPositionY from the last time that the terrain dots were moved (see UpdateTerrainDots).
|
|||||||||
| 5E36 | 2 |
The screen address of the player's marker on the map in the sidebar (see LocatePlayerMarker).
|
|||||||||
| 5E38 | 1 |
The byte of the screen that is covered up by the player's marker on the map (see FlashPlayerMarker).
|
|||||||||
| 5E39 | 1 |
This value will either be the current Place ID or FF to indicate being open to entering a new place (to avoid repetition).
|
|||||||||
| 5E3A | 2 |
The address of the entry in MapPoints which follows the object that was last drawn, which is used to find the sprite ID of a cup or other object that has been reached.
|
|||||||||
| 5E3C | 1 |
|
|||||||||
| 5E3D | 1 |
|
|||||||||
| 5E3E | 1 |
|
|||||||||
| 5E3F | 1 |
|
|||||||||
| 5E40 | 1 |
The number of pixels that the old sprite is shifted to the right by (see PrepareOldSprite).
|
|||||||||
| 5E41 | 1 |
The number of pixels that the new sprite is shifted to the right by (see PrepareActorSprite).
|
|||||||||
| 5E42 | 1 |
The attribute of the object being drawn, which is worked out by DrawObjects.
|
|||||||||
| 5E43 | 1 |
|
|||||||||
| 5E44 | 1 |
|
|||||||||
| 5E45 | 1 |
Set to 05 when the car bounces off the edge of the map, and counted down by HandlerSteering while the bounce sound is made.
|
|||||||||
| 5E46 | 1 |
Used as a counter for the cup collection and refuelling sounds.
|
|||||||||
| 5E47 | 1 |
|
|||||||||
| 5E48 | 1 |
Used for the indent for;
|
|||||||||
| 5E49 | 3 |
3-byte representation of the score.
|
|||||||||
| 5E4C | 3 |
3-byte representation of the score.
|
|||||||||
| 5E4F | 1 |
The sprite ID of the last place that the car has refuelled at, so that the points for reaching a place are only awarded once in a row (see 7001). It is reset when a new car is set up.
|
|||||||||
| 5E50 | 24 |
The objects that are in view, which are drawn by PlaceObject and removed by HandlerObjects. The sprite ID has bit 7 set when the object has been seen this frame, and the sprite ID is 00 when the slot is not used. The game only uses the first seven slots.
|
|||||||||
| 5E68 | 12 |
The three blips on the radar (see UpdateRadar): the first car, the second car and the nearest cup. Each is four bytes: the column and row where the blip is drawn, and then the column and row where it will be drawn next. A column and row of 00 and 00 mean that there is no blip.
|
|||||||||
| 5E74 | 1 |
The middle byte of the miles (5E2E) the last time that points were awarded for it by UpdatePlayerCar.
|
|||||||||
| 5E75 | 11 |
These bytes are not referenced by the game.
|
|||||||||
| 5E80 | 12 |
The first of the three entities that the main loop handles (see MainLoop_NewPass); EntityTemplate holds the initial values. This one is the player's car. The first byte is the state, which says what the entity is doing (01 when driving and 03 when exploding). The player's car is drawn in the centre of the play area, so its position is not used for movement.
|
|||||||||
| 5E8C | 12 |
The first of the two cars that chase the player. See HandlerCar for what each of the fields means.
|
|||||||||
| 5E98 | 12 |
The second of the two cars that chase the player. See HandlerCar for what each of the fields means.
|
|||||||||
| 5EA4 | 92 |
These bytes are not referenced by the game; NextEntity uses the address as the end of the entities.
|