Banner
Views: 959,033,160
Time:
10 users online: ASSATAKKU, Final Theory,  JamesD28,  Kevin, monkey03297, S.U, SteamyPanini, Stivi, Taja, Triple P - Guests: 54 - Bots: 92 Users: 53,111 (2,249 active)
Latest: I43OBF
Tip: It's recommended to use these tools when ripping graphics.
Not logged in.
SMW Memory Map
Displaying 28 out of 1828 addresses. Show Waiting Addresses (52)
Filter
Link
Address
Hexadecimal number for a partial address. 6-digit number for a full address. Use - to denote a range. Use , to list more than one address.
Length
Type
Enable JavaScript to use multiple regions.
Region
Hold control to select multiple. Check "All" to select all at once.

Type
Description
Separate each individual keyword with spaces. Surround a phrase with quotes to look for the exact phrase, or with / to use a PCRE regular expression. Prepend with - to exclude a keyword or phrase, with + to require a whole word or phrase, or with -+ to exclude a whole word or phrase. ? matches any character, * matches any amount of characters.
 
Pages: « 1 2 334 35 36 37 » Per Page: 25 50 75 100 150 500 All
Hijack Address Length Type Description Details
$0DBB16 13 bytes Code Modified by Lunar Magic.
$0DE190 7 bytes Code Used by Lunar Magic. Routine that indexes secondary entrance table $05F800 or its expanded version with long addressing. $0DE191 is the 24-bit pointer to the location of secondary entrance table $05F800 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$0DE197 7 bytes Code Used by Lunar Magic. Routine that indexes secondary entrance table $05FA00 or its expanded version with long addressing. $0DE198 is the 24-bit pointer to the location of secondary entrance table $05FA00 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$0DE19E 7 bytes Code Used by Lunar Magic. Routine that indexes secondary entrance table $05FC00 or its expanded version with long addressing. $0DE19F is the 24-bit pointer to the location of secondary entrance table $05FC00 or its expanded version in ROMs modified with Lunar Magic 2.50+.
$0DF08A 79 bytes Code Modified by Lunar Magic.
It's a subroutine (which ends in RTS) inserted the first time a level is saved in LM.
$0DF150 13 bytes Code Modified by Lunar Magic.
Small piece of code inserted the first time a level is saved in LM.
$0DF160 35 bytes Code Modified by Lunar Magic.
It's a subroutine (which ends in RTS) inserted the first time the time limit setting is bypassed in LM.
$0DF17D 4 bytes Jump (JML/JSL) Hijacked by the Midway Point Timer Reset patch by WhiteYoshiEgg.
JML, it hijacks Lunar Magic's custom routine that sets the level timer to backup its initial value.
$0DF1C0 178 bytes Code Modified by Lunar Magic.
It's a subroutine (which ends in RTS) inserted the first time a level is saved in LM.
$0DF290 59 bytes Code Modified by Lunar Magic.
It's a subroutine (which ends in RTS) inserted the first time a level is saved in LM.
$0DF2CB 8 bytes Table Modified by Lunar Magic.
It's an AND table (which goes from $01 to $80) inserted the first time a level is saved in LM. It's used by the code at $0DF290.
$0E8000 28928 bytes Code Modified by AddmusicK.
First, an header is inserted, containing the following:
- The identifier characters "@AMK".
- Version number (which seems to be kept at $00 in all versions of the program).
- Long pointer to the table of sample groups pointers.
- Long pointer to the table of music data pointers.
- 21 "$00" bytes, probably meant for future expansions.

Then, the main code of the tool is inserted, which handles uploading music to the SPC700 and playing it, and the rest of the space is cleared out by filling it with "$55" bytes ("rep $7100 : db $55" done before inserting the custom code). The space is cleared out until $0EF0FF, since $0EF100-$0EFFFF is used by Lunar Magic.
$0EF0F0 3856 bytes Miscellaneous Modified by Lunar Magic.

- $0EF100-$0EF2FF (512 bytes): Table that holds the bank byte of the pointer to each level's sprite data, modified the first time any level is saved in LM. If a level hasn't been altered, the entry into the table for that level will be the vanilla bank byte of the sprite data pointer ($07).

- $0EF300-$0EF30B (12 bytes): Routine that gets the bank byte of the pointer to the level's sprite data from the table at $0EF100, and stores it to $D0. Read from [$CE] during the level load routine.

If $0EF30C-$0EF30E contains an address to a sprite extra byte table and $0EF30F holds a value of $42, Lunar magic will enable extra bit customization for placing sprites.

Additionally, Lunar Magic inserts a 55 bytes routine at $0EFD00 (ends in RTL), which is used to get the BG Map16 page during level loading, and a 48 bytes table at $0EFD50, read from in the routine.
Extra Bytes Data
$0EF100 512 bytes Table Modified by LM.

This table contains the bank bytes of every level's sprite data pointer.
$0EF30C 4 bytes Data Hijacked by Pixi.
Writes the pointer to sprite size table, and then a $42 byte, so that Lunar Magic will enable extra bit customization for placing sprites.
$0EF310 512 bytes Table Used by LM as a table of Layer 2-related data for each level. Format: bbBB-LD-
D = What type of data the layer 2 is: object (0) or tilemap (1)
L = Flag to indicate the usage of the high nibble
BB = When L bit is set: Map16 bank to use for the BG
bbBB = When L bit is clear: used as the high byte for all BG Map16 tiles (deprecated?)
-- = Unused
$0EF55D 3 bytes 24-bit Pointer Used by Lunar Magic as a 24-bit pointer to the custom overworld sprite data table. Will be $FFFFFF if no custom sprites are being used.
$0EF600 1536 bytes 24-bit Pointer A list of 24-bit pointers to each level's palette data, inserted by Lunar Magic. Indexed by level number * 3. If an entry's low and high bytes are both zero, the default palette is loaded instead (the bank byte is not checked in this case).
$0EFD50 24 bytes Table Used by Lunar Magic. This is a table of eight 24-bit pointers to the BG Map16 data in ascending order, where each pointer corresponds to a set of 0x10 pages. If a pointer is $000000, then that set of BG Map16 pages is currently unused.
$0F8000 28753 bytes Data Modified by AddmusicK.
This is where AMK's custom SPC engine (main.bin) is inserted in the ROM, to then be uploaded to the SPC700 ram. The remaining bytes are cleared out by filling them with "$55" bytes ("REP $7051 : db $55" done before inserting the custom data). The space is cleared out until $0FF050, since $0FF051-$0FFFFF is used by Lunar Magic.
$0FF0A0 160 bytes Hex Edit Not actually "used" for anything, but Lunar Magic writes the following string here:
Code
Lunar Magic Version X.XX Public 
©YYYY FuSoYa, Defender of Relm h
ttp://fusoya.eludevisibility.org
                                
I am Naaall, and I love fiiiish!

where X.XX is the version number and YYYY is the publication year of the LM version used.
$0FF600 384 bytes 24-bit Pointer Used by Lunar Magic for a table of 24-bit pointers to ExGFX80-FF (pointers for 100-FFF can be found at $read3($0FF937)). A pointer of 000000 indicates the file isn't inserted.
$0FF780 40 bytes Code Modified by Lunar Magic.
Routine called during level load to store some level-specific data in the $7FC000 area.
$0FF7F0 67 bytes Jump (JML/JSL) Used by Lunar Magic as a routine to handle processing ExGFX files during level load.
A table of every level's ExGFX files can be found at read3($0FF7FF). Each level receives 32 bytes, with two bytes per ExGFX file; some additional data is also stored in the high byte of certain files. More information can be found here.
$0FF900 110 bytes Jump (JML/JSL) Used by Lunar Magic as a routine to decompress a 4bpp GFX file to a specified location in RAM. To use it, load the 16-bit GFX file number into A and 24-bit destination RAM address in $00.
Note that it won't work on GFX32/33.
$0FFB9C 4 bytes Jump (JML/JSL) Modified by 32x32 Player Tilemap Patch, by ExE Boss and Ladida. Edit applied by the main patch.

JML, overwrites Lunar Magic code to skip uploading player graphics during overworld path transitions, preventing graphical bugs.
$0FFC94 4 bytes Jump (JML/JSL) Modified by 32x32 Player Tilemap Patch, by ExE Boss and Ladida. Edit applied by the main patch.

JML, overwrites Lunar Magic code to correct player palette mirrors prior to palette upload, preventing graphical bugs.
$0FFD80 332 bytes Code Modified by Lunar Magic.
Routine called from $0FF780 during level load to store some level-specific variables in the $7FC000 area and to upload some graphics data to VRAM.
Pages: « 1 2 334 35 36 37 » Per Page: 25 50 75 100 150 500 All

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2022 - SMW Central
Legal Information - Privacy Policy - Link To Us


Menu

Follow Us On

  • YouTube
  • Twitch
  • Twitter

Affiliates

  • Super Mario Bros. X Community
  • ROMhacking.net
  • Mario Fan Games Galaxy
  • sm64romhacks