$7E1464
|
2 bytes |
Misc. |
Layer 1 Y position, next frame.
Much similar to $7E:001C.
Is also used for temporary storage to determine how much the screen has moved vertically in the current frame. ($7E:001C - $7E:1464 = $7E:17BC) |
$7E1466
|
2 bytes |
Misc. |
Layer 2 X position, next frame.
Much similar to $7E:001E.
Is also used for temporary storage to determine how much the screen has moved horizontally in the current frame. ($7E:001E - $7E:1466 = $7E:17BF) |
$7E1468
|
2 bytes |
Misc. |
Layer 2 Y position, next frame.
Much similar to $7E:0020.
Is also used for temporary storage to determine how much Layer 2 has moved vertically in the current frame. ($7E:0020 - $7E:1468 = $7E:17BE) |
$7E146A
|
2 bytes |
Misc. |
Used to determine how much layer 3 has moved horizontally in the current frame. This address is only used during the credits while displaying the enemies for the windowing HDMA.
Also used by Lunar Magic to hold the Layer 3 Initial X position/offset. |
$7E146C
|
4 bytes |
Empty |
Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. |
$7E1470
|
1 byte |
Flag |
Carrying something flag. Very similar to $7E:148F, with the difference that, if this flag is set, the player's graphics don't change, and throw blocks can still be picked up as long as $7E:148F remains zero. If used in a carryable custom sprite to check if the player is already carrying something, definitely combine it with $7E:148F to assure there are no exceptions.
#$00 = Carrying nothing; #$01 = carrying something. |
$7E1471
|
1 byte |
Misc. |
Whether the player is on top of a solid sprite, and what kind of sprite that is.
#$01 = Standing on top of a floating rock, floating grass platform, floating skull, Mega Mole, carrot top lift, etc. This one calculates the player's position based on the next frame.
#$02 = Standing on top of a springboard, pea bouncer. This one calculates the player's position based on the next frame.
There's a check at $00:D60B so that the player can hold the jump button pressed for a longer while to jump higher.
#$03 = Standing on top of a brown chained platform, gray falling platform. This one calculates the player's position based on the current frame. |
$7E1472
|
1 byte |
Sprites |
Left window X position of the top of the spotlight. It's always #$78. This is the value stored that is stored to $7E:147A every four frames. |
$7E1473
|
1 byte |
Empty |
Empty. Cleared on reset, titlescreen load and overworld load. |
$7E1474
|
1 byte |
Sprites |
Right window X position of the top of the spotlight. It's always #$87. This is the value that is stored to $7E:147C every four frames. |
$7E1475
|
1 byte |
Empty |
Empty. Cleared on reset, titlescreen load and overworld load. |
$7E1476
|
1 byte |
Sprites |
Left window X position of the extreme bottom of the spotlight.
Please note that this position is for the imaginary scanline #$FF, whereas there are normally only #$E0 scanlines on a screen.
That means that the value here is never equal to the left window X position on the very bottom of the screen, unless $7E:1476 is equal to $7E:1472, forming a straight vertical line. |
$7E1477
|
1 byte |
Empty |
Empty. Cleared on reset, titlescreen load and overworld load. |
$7E1478
|
1 byte |
Sprites |
Right window X position of the extreme bottom of the spotlight.
Please note that this position is for the imaginary scanline #$FF, whereas there are normally only #$E0 scanlines on a screen.
That means that the value here is never equal to the right window X position on the very bottom of the screen, unless $7E:1478 is equal to $7E:1474, forming a straight vertical line. |
$7E1479
|
1 byte |
Empty |
Empty. Cleared on reset, titlescreen load and overworld load. |
$7E147A
|
1 byte |
Sprites |
In the spotlight code, the left window X position of each scanline is calculated and temporarily stored here, after which this address stores its value to an even byte of $7E:04A0.
What is left at the end of every frame is the left window X position on the very bottom scanline.
This is used once in every four frames, probably to reduce lag. |
$7E147B
|
1 byte |
Empty |
Empty. Cleared on reset, titlescreen load and overworld load. |
$7E147C
|
1 byte |
Sprites |
In the spotlight code, the right window X position of each scanline is calculated and temporarily stored here, after which this address stores its value to an odd byte of $7E:04A0.
What is left at the end of every frame is the right window X position on the very bottom scanline.
This address used once in every four frames, probably to reduce lag. |
$7E147D
|
1 byte |
Empty |
Empty. Cleared on reset, titlescreen load and overworld load. |
$7E147E
|
1 byte |
Sprites |
Used by the spotlight to calculate whether or not to move the left window on a particular scan line into the direction of the resulting X position on the bottom left.
It works by adding the width from $7E:1480 to itself (starting at #$00 initially), and if the resulting value is higher than #$CF (or even overflows, setting the carry bit), the left window moves a pixel into the direction of the resulting X position on the bottom left. |
$7E147F
|
1 byte |
Sprites |
Used by the spotlight to calculate whether or not to move the right window on a particular scan line into the direction of the resulting X position on the bottom right.
It works by adding the width from $7E:1481 to itself (starting at #$00 initially), and if the resulting value is higher than #$CF (or even overflows, setting the carry bit), the right window moves a pixel into the direction of the resulting X position on the bottom right. |
$7E1480
|
1 byte |
Sprites |
Width between the top left window ($7E:1472) and the bottom left window ($7E:1476) of the spotlight. This value is always positive, and its sign flag is saved at $7E:1484. |
$7E1481
|
1 byte |
Sprites |
Width between the top right window ($7E:1474) and the bottom right window ($7E:1478) of the spotlight. This value is always positive, and its sign flag is saved at $7E:1485. |
$7E1482
|
1 byte |
Flag |
Used as a flag in the spotlight code to skip initialization of the top left, top right, bottom left, and bottom right RAM addresses.
#$00 = Run initialization; #$01 = Do not run initialization. |
$7E1483
|
1 byte |
Sprites |
Used as a flag for the current direction the spotlight is moving. #$00 = spotlight is moving right; #$01 = spotlight is moving left. |
Follow Us On