![]() |
Game Status Buffer |
| Address | Length | Description | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 23550 | 1 |
Top of the stack (so, pushes below this point).
|
||||||||||||
| 24481 | 1 |
Tracks whether the current screen has been fully initialised. Set to 1 after the HUD header is drawn, and cleared to 0 when a fresh screen setup is needed.
|
||||||||||||
| 24482 | 1 |
Bitmask representing the current directional input. 31 means no input. Each bit represents a direction when reset:
|
||||||||||||
| 24484 | 1 |
Stores the last directional input for animation and speed purposes.
|
||||||||||||
| 24485 | 1 |
0=facing right, 1=facing left.
|
||||||||||||
| 24486 | 1 |
Controls which input device is active:
|
||||||||||||
| 24487 | 1 |
Tracks whether Percy is falling:
|
||||||||||||
| 24488 | 1 |
Set to 1 when Percy has collided with scenery and the move was rejected.
|
||||||||||||
| 24489 | 1 |
Set to 255 when Percy is dropping an egg, and cleared to 0 when the egg routine is complete.
|
||||||||||||
| 24490 | 1 |
Set to 255 when Percy is carrying a worm, and cleared to 0 when he's not.
|
||||||||||||
| 24491 | 1 |
A delay so Percy's energy bar doesn't deplete too quickly while he's flying.
|
||||||||||||
| 24492 | 1 |
Set to 255 when a worm has been dropped. Cleared to 0 when there's no worm being processed.
|
||||||||||||
| 24493 | 1 |
Set to 255 when Percy has landed on a platform. Cleared to 0 when no platform is beneath him.
|
||||||||||||
| 24494 | 1 |
Percy's current movement speed in pixels per frame. Ranges from 1 (minimum) to 4 (maximum). Accelerates while a direction is held, decelerates when input changes or is released.
|
||||||||||||
| 24495 | 1 |
Animation frame counter for Percy's wing flap cycle. Increments each frame Percy moves horizontally, cycling from 1 to 4.
|
||||||||||||
| 24496 | 1 |
Controls the animation frame cycle. Counts up from 1 to 4 (first half), then bit 7 is set and it counts back down (second half). Bits 0-2 hold the frame index, bit 7 indicates the second half.
|
||||||||||||
| 24497 | 1 |
The current level number. E.g. 1 for the first level.
|
||||||||||||
| 24498 | 1 |
Number of worms Percy has remaining to collect for the current level.
|
||||||||||||
| 24499 | 1 |
The ASCII character displayed on screen to represent the current lives count.
|
||||||||||||
| 24500 | 1 |
A rotating bit pattern used to animate the nest chicks. Each bit controls the animation frame for one chick, rotated each frame so they animate independently.
|
||||||||||||
| 24501 | 2 |
Pointer to the current room's object data, calculated from the room number and the base at Room_Object_Data. Used to track the state of collectible worms and other interactive elements in the current room.
|
||||||||||||
| 24503 | 2 |
Current pitch value used for sound effects (item collection, falling). Adjusted each frame during the sound.
|
||||||||||||
| 24505 | 2 |
The two-byte drawing position used by Draw_Room_Tile to track where the next tile should be placed.
The low byte is the column and the high byte is the row.
|
||||||||||||
| 24507 | 1 |
Set to 255 when entering a new room. Checked by hazard handlers to reset their positions and state when the room is repopulated.
|
||||||||||||
| 24508 | 1 |
0=not paused, 255=paused; set at Game_Initialise.
|
||||||||||||
| 24509 | 1 |
|
||||||||||||
| 24510 | 3 |
Copy of LivesDisplayCharacter. Set when lives are initialised, cleared at end of each frame. When non-zero the main game handlers run; when zero the full sprite draw runs.
|
||||||||||||
| 24513 | 2 |
Holds the pointer to the currently active tile set.
|
||||||||||||
| 24515 | 2 |
Points to the tile data for the current room.
|
||||||||||||
| 24517 | 1 |
The ID of the current Room (0-11).
|
||||||||||||
| 26661 | 7 |
|
||||||||||||
| 26668 | 6 |
Workspace for scoring calculations.
|
||||||||||||
| 26783 | 25 |
|
||||||||||||
| 26977 | 5 |
|
||||||||||||
| 27826 | 1 |
Counts down each frame. When it reaches zero, the red bird picks a new random flight direction.
|
||||||||||||
| 27827 | 1 |
Controls which direction the red bird traverses across rooms. 0=moving left (entering from the right), 1=moving right (entering from the left). Toggled when the red bird wraps past the room boundary.
|
||||||||||||
| 27828 | 1 |
When non-zero, the red bird is stunned. Counts down each frame until it reaches 1 then the stun ends and a short reappearance delay begins.
|
||||||||||||
| 27829 | 1 |
Copy of the initial stun timer value, stored when the red bird is first stunned.
|
||||||||||||
| 27830 | 1 |
The room number the red bird is currently in.
|
||||||||||||
| 27831 | 1 |
Seeded from the Memory Refresh Register when the red bird is initialised for each room.
|
||||||||||||
| 27832 | 1 |
The red bird's current movement direction within a room (0-7), indexing into the direction jump table at Direction_Jump_Table. Changes randomly each time the direction change timer at RedBirdDirectionChangeTimer expires.
|
||||||||||||
| 27833 | 1 |
The red bird's current flight speed, looked up from the per-level speed table at RedBirdSpeedTable based on the current level number.
|
||||||||||||
| 27834 | 1 |
Counts down to trigger a new flight path setup via HandleRedBird_SetupFlight.
|
||||||||||||
| 27835 | 2 |
Pointer to the current room's flight path boundary data at Table_RedBirdFlightPath_01. Each boundary entry is 4 bytes: Y-min, Y-max, X-min, X-max.
|
||||||||||||
| 27837 | 1 |
Counts down each frame while the red bird is waiting to enter the current room. When it reaches zero, the red bird appears.
|
||||||||||||
| 27838 | 5 |
Flight speed for each level. Indexed by zero-based level number.
|
||||||||||||
| 27843 | 1 |
|
||||||||||||
| 27844 | 1 |
Cycles through 0-7 to animate the red bird's wings. Divided by 2 and added to the frame base of 24 to select the sprite frame.
|
||||||||||||
| 27845 | 1 |
Boundary data for the butterfly's movement, used by the direction jump table at Direction_Jump_Table.
|
||||||||||||
| 27846 | 22 |
Table of room/level pairs where butterflies appear. Each entry is two bytes: the room number followed by the level number. Bit 7 of the level byte is set when the butterfly has been collected. The table is terminated by 255.
|
||||||||||||
| 27868 | 1 |
Toggled each frame to alternate the butterfly's wing animation between two frames.
|
||||||||||||
| 27869 | 1 |
Countdown timer for the butterfly's current movement direction. When it reaches zero, a new random direction and delay are generated.
|
||||||||||||
| 27870 | 1 |
Current movement direction for the butterfly, in the range 0-7.
|
||||||||||||
| 29161 | 3 |
|
||||||||||||
| 29164 | 3 |
|
||||||||||||
| 29167 | 25 |
Jump height lookup table. Each entry is the Y offset from ground level for one step of the frog's jump arc. The values rise to a peak of 34 at the midpoint then fall back to 0 forming a smooth parabolic arc over 24 steps.
|
||||||||||||
| 29192 | 7 |
Crash animation timer. When non-zero, the car cycles through crash frames. Counts down to 1 then clears.
|
||||||||||||
| 29959 | 1 |
Single byte used as movement boundary data; read at Move_Helicopter.
|
||||||||||||
| 29960 | 10 |
State variables for the helicopter hazard. Two five-byte state blocks: Helicopter_State_Data_1 (first) and Helicopter_State_Data_2 (second).
Referenced by room handlers at Handler_Room01 and Handler_Room06.
|
||||||||||||
| 30088 | 3 |
Animation counter, direction flag and step size for the cat.
|
||||||||||||
| 30103 | 3 |
Animation counter, direction flag and step size for the dog.
|
||||||||||||
| 30329 | 7 |
State variables for the UFO hazard.
|
||||||||||||
| 30638 | 1 |
Countdown for the bomb explosion animation. When non-zero, the explosion frames are displayed on Percy.
|
||||||||||||
| 30639 | 4 |
State variables for the plane hazard.
|
||||||||||||
| 30643 | 1 |
The horizontal speed of the plane in pixels per frame.
|
||||||||||||
| 30865 | 1 |
Direction flag for the balloon. 0 = floating right, non-zero = floating left.
|
||||||||||||
| 30866 | 1 |
Counter for the balloon popping and respawn sequence. Values 1 to 3 show deflating frames, 4 to 199 are the respawn delay, and 200 triggers the respawn.
|
||||||||||||
| 31012 | 4 |
Animation counter, direction flag and boundary data for the walking paratrooper.
|
||||||||||||
| 31016 | 8 |
Walking speed for the paratrooper, indexed by room number minus one. Only rooms 5, 6 and 8 have active paratrooper entries.
|
||||||||||||
| 31185 | 1 |
Direction flag for the spider. 0 = ascending, 255 = descending.
|
||||||||||||
| 31427 | 4 |
State variables for the parachute hazard.
|
||||||||||||
| 31431 | 1 |
|
||||||||||||
| 31432 | 32 |
State variables for the cat hazard. Only rooms 2, 3, 5, 6, 7 and 8 have active entries.
|
||||||||||||
| 31464 | 28 |
State variables for the dog hazard. Only rooms 3 and 7 have active entries.
|
||||||||||||
| 31492 | 9 |
Lookup table of starting X positions for the parachute, indexed by room number minus one. Only rooms 2, 8 and 9 have active paratrooper entries.
|
||||||||||||
| 31501 | 32 |
State variables for the walking paratrooper hazard. Only rooms 5, 6 and 8 have active entries.
|
||||||||||||
| 31534 | 22 |
|
||||||||||||
| 48640 | 147 |
|
||||||||||||
| 49152 | 6848 |
|
||||||||||||
| 56000 | 4 |
|
||||||||||||
| 56004 | 4 |
Used by the Red Bird.
|
||||||||||||
| 56008 | 4 |
Used by Frog 1, Car Type 1.
|
||||||||||||
| 56012 | 4 |
Used by Frog 2.
|
||||||||||||
| 56016 | 4 |
Used by Car Type 3, Cat.
|
||||||||||||
| 56020 | 4 |
|
||||||||||||
| 56024 | 4 |
Used by the Helicopter, Parachute.
|
||||||||||||
| 56028 | 4 | |||||||||||||
| 56032 | 4 |
|
||||||||||||
| 56036 | 4 |
Sprite data for the butterfly collectible.
|
||||||||||||
| 56040 | 4 |
|
||||||||||||
| 56044 | 4 |
|
||||||||||||
| 56048 | 4 |
|
||||||||||||
| 56052 | 4 |
|
||||||||||||
| 56056 | 4 |
|
||||||||||||
| 56060 | 4 |
|
||||||||||||
| 56064 | 4 |
Backup of Percy_X_Position. First byte is Percy's X from previous frame (used for wing flap animation); written each frame by Draw_Sprites.
|
||||||||||||
| 56068 | 4 |
Backup of Sprite01_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56072 | 4 |
Backup of Sprite02_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56076 | 4 |
Backup of Sprite03_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56080 | 4 |
Backup of Sprite04_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56084 | 4 |
Backup of Sprite05_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56088 | 4 |
Backup of Sprite06_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56092 | 4 |
Backup of Sprite07_3Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56096 | 4 |
Backup of Egg_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56104 | 4 |
Backup of Sprite01_2Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56108 | 4 |
Backup of Sprite02_2Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56112 | 4 |
Backup of Sprite03_2Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56116 | 4 |
Backup of Sprite04_2Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56120 | 4 |
Backup of Sprite05_2Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56124 | 4 |
Backup of Sprite06_2Wide_X_Position; written each frame by Draw_Sprites.
|
||||||||||||
| 56990 | 354 |
Buffer holding the state of interactive objects (worms, nest slots) for all rooms. Each byte can be:
|
||||||||||||
| 57344 | 6144 |
|
||||||||||||
| 63488 | 705 |
|
||||||||||||
| 64678 | 690 |
|