![]() |
Game status buffer |
| Address | Length | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 5E00 | 1 |
Holds the number of players and the chosen control method. Bit 00 is the player count, bits 01-02 are the control method.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E04 | 2 |
Holds a pointer to the currently used font data.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E06 | 3 |
3-byte representation of the score.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E09 | 23 |
Remaining 3-byte scores which follow High_Score. SetDefaults copies Default_High_Score over this whole table on initialisation.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E20 | 21 |
Eight 3-letter names. SetDefaults copies Default_HallOfFame_Names here; HallOfFame prints them beside the scores at High_Score. The eighth name occupies HallOfFame_LastName.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E35 | 3 |
Eighth name slot. InsertHighScore uses it as the LDDR source when opening a gap in the name table.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E38 | 8 |
Byte after the name table. InsertHighScore uses it as the LDDR destination.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E40 | 2 |
Updated each game loop by adding a ROM byte, addressed by the low byte of GameTimer, to itself.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E42 | 14 |
Incremented once per game loop. The low byte indexes ROM when refreshing RandomNumber.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E50 | 2 |
Start of the in-play object RAM that StartGame clears up to Laser_Parameter_1.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E52 | 1 |
Has the frame been updated?
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E53 | 3 |
Holds a copy of the last FRAMES counter.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E56 | 1 |
Working copy of the actor's cached Y position (*IX+0B), compared with the new Y when a sprite is redrawn. LoadSpritePointers uses it to hold the high byte of the cached screen address instead.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E57 | 1 |
Width in character columns of the sprite being drawn. ColouriseSprite uses it as the column count when colouring the sprite.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E58 | 1 |
Height in pixel rows of the sprite being drawn, kept so ColouriseSprite can work out how many attribute rows to colour.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E59 | 1 |
Rows of the new sprite image still to be drawn.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E5A | 3 |
Rows of the old (cached) sprite image still to be erased. It is copied from *IX+0A and counted down while a sprite is redrawn.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E5D | 1 |
Set to 01 by TestSpaceKey when SPACE is first pressed, so holding the key only counts once. Cleared again when SPACE is released.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E5E | 1 |
Number of live aliens this frame. 8287 asks SpawnAlien to spawn another while this is less than 07.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E5F | 3 |
3-byte representation of the score.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E62 | 3 |
3-byte representation of the score.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E65 | 1 |
Which player is currently active.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E66 | 1 |
Attribute of the menu line currently being printed. MenuWriteText fetches it when printing a line.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E67 | 1 |
At the beginning of each player turn there is a delay to allow the player to be ready for play.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E68 | 1 |
Set to 01 once a teleport has been set up. StartGame_ReadyStack then calls FinishTeleport to finish it with a debris burst, clearing the flag.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E69 | 1 |
Number of explosion particles still moving. The debris handlers loop until this returns to 00.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E6A | 2 |
Working Y used when filling explosion particles.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E6C | 1 |
Non-zero while Jetman is dying, teleporting or otherwise not in play. Handlers return early and the game loop restarts at StartGame_ReadyStack.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E6D | 2 |
Countdown used by the hall of fame input loop.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E6F | 1 |
Current character position while entering a name.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E70 | 1 |
Set after fire accepts a letter so the same press cannot advance again.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E71 | 1 |
Which player's score is being ranked: 01 for 1UP, 02 for 2UP.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E72 | 1 |
Non-zero while the other player's score still needs to be ranked after this insert.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E73 | 1 |
Set to 01 when name entry starts for the first-ranked player and cleared by ReturnToRestart. Nothing reads it.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E74 | 1 |
Insert flag for CompareHighScores. Non-zero (set from HighScore_Player) makes it also insert the score into the table; 00 only returns the rank.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E75 | 2 |
Screen address where the letter being edited is printed. It advances by two columns after each letter is accepted.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E77 | 1 |
Used when calculating the player's position in the high score table.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E78 | 3 |
Three-letter name being entered. PrepareNameEntry seeds it as "AAA"; InsertHighScore copies it into the name table.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E7B | 1 |
Working pitch. SoundsDebris plays three clicks from this byte; the debris handlers increment or decrement it.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5E7C | 36 |
Copy of GameOptions from the last menu pass, used to notice when the selection has changed.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA0 | 1 |
Level of the active player. A value of FF is treated as level 00 when Calculate_ActivePlayer_Level converts it to two digits. Swapped with InactivePlayer_Level by ChangePlayer.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA1 | 1 |
Lives the active player has left. Swapped with InactivePlayer_Lives by ChangePlayer.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA2 | 1 |
Bit 00 of the current level. FetchSprite and FetchActorSprite test it to decide whether to remap the sprite ID with MapSpriteBand.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA3 | 1 |
00 when the rover is empty, 01 when an object is attached to it.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA4 | 1 |
Level of the inactive player. A value of FF is treated as level 00 when Calculate_InactivePlayer_Level converts it to two digits. Swapped with ActivePlayer_Level by ChangePlayer.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA5 | 1 |
Lives the inactive player has left. Swapped with ActivePlayer_Lives by ChangePlayer.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA6 | 1 |
Copy of LevelParity swapped in by ChangePlayer.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 5EA7 | 1 |
Copy of RoverCargoFlag swapped in by ChangePlayer.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6000 | 96 |
Four 18-byte actor slots for the laser beams, in the same field order as Jetman_Slot. They are the first of the 18 actor slots, which run up to Actor_List_End. Every slot is laid out the same way:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6060 | 24 |
18-byte actor slot. InitialiseExplosion copies explosion templates here.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6078 | 22 |
18-byte actor slot for Jetman. The last two bytes are the fuel pair at FuelLevel_1.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 608E | 2 |
16-bit fuel remaining. InitialiseJetman initialises it to 9000.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6090 | 24 |
18-byte actor slot for the moon rover.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 60A8 | 96 |
Four 18-byte actor slots before Object_Slot_1. The fields follow the same order as Jetman_Slot. FillDebrisSlots fills debris from here.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6108 | 120 |
Five 18-byte slots. ScanObjectSlots starts its scan here.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6180 | 24 |
18-byte actor slot for the alien base, before the bomb slot. AlienBase_WorldX is its world X position and 6184 its Y position.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6198 | 24 |
18-byte actor slot for the thrown bomb. Handler_Bombs copies the bomb template here when the slot is empty.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 61B0 | 144 |
There are a maximum of 6 aliens on the screen at one time. Each slot is 18 bytes and uses the same field order as Jetman_Slot.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 6240 | 1 |
First address after the last actor slot, where object walks stop. It also starts the 0120 bytes where ChangePlayer stores the inactive player's actor slots.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
| AA4B | 80 |
Sixteen 5-byte particle records used by AnimateDebris.
|