$05DD30
|
70 bytes |
Code |
Modified by Lunar Magic. |
$05DD80
|
20 bytes |
Code |
Modified by Lunar Magic. |
$05DDA0
|
96 bytes |
Data |
Used by LM for the initial flags of each level (as stored to $1EA2).
If the overworld expansion hijack from LM v2.53 is applied, the table is instead moved to $03BE80, while these bytes are left unused. |
$05DE00
|
512 bytes |
Data |
Added by Lunar Magic as a fifth byte of each level's secondary level header. Format: LWPYX---
L - Slippery flag
W - Water flag
P - Flag to use X/Y position method 2
Y - Bit 5 of the entrance Y position for method 2
X - Bit 4 of the entrance X position for method 2
(X/Y are switched in vertical levels) |
$06F540
|
182 bytes |
Jump (JML/JSL) |
Used by Lunar Magic as a routine to get a particular Map16 tile's VRAM data (tile number/YXPPCCCT for each of its four tiles). To use, A/X/Y must be 16-bit, and A must contain the tile number multiplied by 2. It returns the lower two bytes of the pointer in A and the bank byte in both the high byte of Y and in $0C (for usages as a 24-bit pointer at $0A).
Alternative entries to the routine are at $06F5D0 (which returns the bank byte in $06 for a pointer at $04 instead of $0A), and $06F5E4 (which directly stores the full pointer into $65).
Pages 0/1 are handled via the original system (a pointer table to data at $0FBE).
Pages 2-7F are then handled by directly indexing their data tables. Each set of 0x10 pages uses a different table; they can each be found with the following calculations:
02-0F: read1($06F557)<<16|(read2($06F553)+$1000&$FFFF)
10-1F: read1($06F560)<<16|(read2($06F55C)+$8000&$FFFF)
20-2F: read1($06F56B)<<16|read2($06F567)+1
30-3F: read1($06F574)<<16|(read2($06F570)+$8000&$FFFF)+1
40-4F: read1($06F598)<<16|read2($06F594)
50-5F: read1($06F5A1)<<16|(read2($06F59D)+$8000&$FFFF)
60-6F: read1($06F5AC)<<16|read2($06F5A8)+1
70-7F: read1($06F5B5)<<16|(read2($06F5B1)+$8000&$FFFF)+1
In addition, if page 2 is set to use tileset-specific Map16 (which can be determined by checking if $06F547 is non-zero), then its data can be found at (read1($06F58A)<<16|read2($06F586))+$1000 . In that table, each tileset receives 0x800 bytes, so you can find a particular tile's data by indexing as 0ttttbbb bbbbb000 , where tttt is the FG/BG tileset and bbbbbbbb is the low byte of the tile number. |
$06F608
|
60 bytes |
Jump (JMP/JSR) |
Used by Lunar Magic as a routine to get a Map16 tile's true acts-like (act as) setting (i.e. a value less than 0x200). It returns the 16-bit result in $03, as well as the low byte in $1693 and high byte in Y.
Additionally, the tables used to hold the Map16 tile acts-like settings can be found at the following locations:
Pages 00-3F: read3($06F624)
Pages 40-7F: read3($06F63A)
Each block in these tables receives two bytes, as its 16-bit acts-like setting. To find the true acts-like setting (i.e. a value less than 0x200), simply perform repeated lookups on these tables until a valid value is returned. |
$06F624
|
3 bytes |
24-bit Pointer |
Hijacked by GPS.
It inserts a long pointer to the table of acts like settings for block in the range $0000-$3FFF. |
$06F63A
|
3 bytes |
24-bit Pointer |
Hijacked by GPS.
It inserts a long pointer to the table of acts like settings for block in the range $4000-$7FFF. Only inserted if !__insert_pages_40_plus == 1. |
$06F67B
|
4 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
JML, jumps to code that checks for the new "WallFeet" and "WallBody" offsets. |
$06F690
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioBelow" offset for custom blocks. The code then jumps back to $06F602. |
$06F690
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario hits a tile from below. |
$06F6A0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioAbove" offset for custom blocks. The code then jumps back to $06F602. |
$06F6A0
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile from above. |
$06F6B0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioSide" offset for custom blocks. The code then jumps back to $06F602. |
$06F6B0
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile horizontally. |
$06F6C0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "TopCorner" offset for custom blocks. The code then jumps back to $06F602. |
$06F6C0
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile on the top corners (which corner doesn't matter als long as they are from the top side). |
$06F6D0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioBody" offset for custom blocks. The code then jumps back to $06F602. |
$06F6D0
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile with the lower half of his body (i.e. excluding his head). |
$06F6E0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioHead" offset for custom blocks. The code then jumps back to $06F602. |
$06F6E0
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile with the upper half of his body (i.e. the head but not the rest of the body). |
$06F717
|
4 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
JML, jumps to code that fixes a bug regarding the "SpriteH" offset. |
$06F720
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "SpriteV" offset for custom blocks. The code then jumps back to $06F602. |
$06F720
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if a sprite touches a tile vertically (which side doesn't matter) |
$06F730
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "SpriteH" offset for custom blocks. The code then jumps back to $06F602. |
$06F730
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if a sprite touches a tile horizontally (which side doesn't matter) |
$06F780
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioCape" offset for custom blocks. The code then jumps back to $06F602. |
$06F780
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario touches a tile with his cape. |
$06F7C0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "MarioFireball" offset for custom blocks. The code then jumps back to $06F602. |
$06F7C0
|
16 bytes |
Hex Edit |
Used by Lunar Magic. This area allows you to insert custom Map16 interactions if Mario's fireball touches a tile. |
$06F7D0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "WallFeet" offset for custom blocks. The code then jumps back to $06F602. |
$06F7E0
|
16 bytes |
Jump (JML/JSL) |
Hijacked by GPS.
Hijacks part of Lunar Magic's map16 code to run the "WallBody" offset for custom blocks. The code then jumps back to $06F602. |
$07F0C8
|
30 bytes |
Data |
Modified by Custom End Level Stars Text, by KevinM.
The new data for X displacement of the giant bonus stars letters. This data can be up to 108 bytes big. |
$07F134
|
30 bytes |
Data |
Modified by Custom End Level Stars Text, by KevinM.
The new data for Y displacement of the giant bonus stars letters. This data can be up to 108 bytes big. |
$07F1AA
|
32 bytes |
Data |
Modified by Goal Tape Gives Score patch. Changes bonus star reward table into a score reward table. |
$07F1CF
|
21 bytes |
Code |
Modified by Custom End Level Stars Text, by KevinM.
Modifies the routine that draws the star text when the player catches a goal tape. Its size may vary, though; the limit address is $071FFF (included). |
$07F208
|
1 byte |
Hex Edit |
Modified by Custom End Level Stars Text, by KevinM.
Modifies the X position of the first star text letter. |
$07F215
|
1 byte |
Hex Edit |
Modified by Custom End Level Stars Text, by KevinM.
Modifies the Y position of the star text letters. |
$07F21A
|
1 byte |
Hex Edit |
Modified by Custom End Level Stars Text, by KevinM.
Modifies the tile used to draw the star text letters. |
$07F234
|
1 byte |
Hex Edit |
Modified by Custom End Level Stars Text, by KevinM.
Modifies the GFX Page of the star text letter tiles. |
$07F24E
|
4 bytes |
Hex Edit |
Modified by Custom End Level Stars Text, by KevinM.
The same as $07F21A, but deals with the letters fade-out effect. |
$07F25D
|
5 bytes |
Code |
Modified by Goal Tape Gives Score patch. Makes goal always give score on hit. |
$07F26C
|
1 byte |
Data |
Modified by PIXI's poison mushroom patch.
Sprite's $1656 value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F26C + ($85) = $07F2F1). |
$07F335
|
1 byte |
Data |
Modified by PIXI's poison mushroom patch.
Sprite's $1662 value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F3BA + ($85) = $07F43F). |
$07F3FE
|
1 byte |
Data |
Modified by PIXI's poison mushroom patch.
Sprite's $166E value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F3FE + ($85) = $07F483). |
$07F43C
|
1 byte |
Data |
Modified by Item Box Sprite Fix, by Davros/Romi.
db $36, modifies P-Switch sprite tweaker info 166E to ensure proper palette in custom state. |
$07F451
|
1 byte |
Data |
Modified by Item Box Sprite Fix, by Davros/Romi.
db $36, modifies Throw Block sprite tweaker info 166E to ensure proper palette in custom state. |
$07F4C7
|
1 byte |
Data |
Modified by PIXI's poison mushroom patch.
Sprite's $167A value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F4C7 + ($85) = $07F54C). |
$07F590
|
1 byte |
Data |
Modified by PIXI's poison mushroom patch.
Sprite's $1686 value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F590 + ($85) = $07F615). |
$07F659
|
1 byte |
Data |
Modified by PIXI's poison mushroom patch.
Sprite's $190F value. Note that the actual hijack location depends on the sprite slot chosen. For example, if the sprite is inserted in slot $85, then the hijack location is ($07F659 + ($85) = $07F6DE). |
Follow Us On