--$7E0058-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E005C-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E0060-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 4 bytes. ------- --$7E0079-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E007C-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E0087-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E00F0-- Used by Lunar Magic for various purposes. $7E:00FE is the current level number plus 1 (so Yoshi's Island 1 would store #$0106 here). It's used for the custom palette loading code. #$0000 means that the custom palette won't be loaded (this is probably used for castle intros and/or credits). The rest is unknown. Originally, this address is empty, and it's cleared at reset, titlescreen and overworld load. Length: 16 bytes. ------- --$7E0660-- Gets overwritten by the HDMA table for the level ending circle. If the player gets above or below the borders of the screen, it can even run into $7E:0680 and beyond. Otherwise cleared on reset and titlescreen load, but usage as empty RAM is definitely not recommended. Length: 32 bytes. ------- --$7E0682-- Uses for uploading palettes dynamically. SMW uses this in the lightning/Magikoopa/Big Boo Boss palette effects. $7E:0682 holds the amount of bytes to transfer, $7E:0683 holds the color number (stored to SNES register $2121), the bytes afterwards hold the actual color values transferred to the CGRAM. Further, this table may be indexed by $7E:0681 to add more color destinations; it's terminated by a #$00. The format is the same as before, just at the new location. This table doesn't actually have to end at $7E:0694, but SMW never goes beyond this. As such, the area after this address is listed as "empty". Length: 19 bytes. ------- --$7E0695-- 100 bytes used in LM 1.70+ for VRAM modification. In the clean ROM, it's empty (cleared on reset and titlescreen load). Length: 108 bytes. ------- --$7E0AF5-- Cleared on reset and titlescreen load. Also cleared after a boss had been beaten - this can be disabled by changing [9C 5C 0A] at $00:B08D to [80 01 EA]. Length: 1 byte. ------- --$7E0D9C-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E0DA1-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E0DC3-- Empty. Cleared on reset and titlescreen load. $7E:0DC3 is also cleared when selecting how many players to use, but this can be disabled with no known side effects by setting $00:9E48 to [80 01 EA]. Length: 4 bytes. ------- --$7E0DD4-- This address is only referenced once, and may be regarded as the low byte of $7E:0DD5. Its value is never used, nor is anything ever stored to it, and so it can be used as free RAM. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E0DD9-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E0DDB-- Empty. Cleared on reset and titlescreen load. Length: 3 bytes. ------- --$7E0F3A-- Empty. Cleared on reset and titlescreen load. Length: 6 bytes. ------- --$7E0F42-- Empty. Cleared on reset and titlescreen load. Length: 6 bytes. ------- --$7E0F5E-- Empty. Cleared on reset and titlescreen load. This table was probably meant to function as a cluster sprite table, but it was never used as such. Length: 20 bytes. ------- --$7E13C8-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E13D8-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E13E6-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 2 bytes. ------- --$7E13F2-- Cleared on reset, titlescreen, overworld and cutscene load, as well as at $00F8A7. (TODO: What exactly is this routine?) Length: 1 byte. ------- --$7E140A-- Empty. Cleared on reset, titlescreen load, overworld load and during part of the cape flight routine. Length: 1 byte. ------- --$7E140B-- Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. Length: 2 bytes. ------- --$7E1415-- Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. Length: 2 bytes. ------- --$7E145E-- Used by Lunar Magic to hold various Layer 3 settings, as follows: $145E: yyyyy-se - yyyyy: Initial Y position. Equal to the value shown in the "Initial Y Position/Offset" box divided by 2. - -: Unused bit. - s: Enable scroll sync fix. - e: Enable advanced bypass settings. $145F: yyyyxxxx - yyyy: Vertical scroll setting. - xxxx: Horizontal scroll setting. Empty in original game. Cleared on reset, titlescreen load, overworld load and cutscene load. Length: 2 bytes. ------- --$7E1461-- Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. This byte functions as the "high byte" of $7E:1460. SMW does not actually use this byte, however it is overwritten during level load (see $05:BE92). Cleared on reset, titlescreen, overworld, level (with the exception of boss rooms) and cutscene load. Length: 1 byte. ------- --$7E146C-- Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. Length: 4 bytes. ------- --$7E1473-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1475-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1477-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1479-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E147B-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E147D-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1487-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 4 bytes. ------- --$7E14AC-- Empty. However, due to the code at $00:C563 and $00:C513, it decrements every fourth frame until it hits zero. Length: 1 byte. ------- --$7E14BE-- Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. Length: 1 byte. ------- --$7E14C1-- Empty. Cleared on reset, titlescreen, overworld and cutscene load. Length: 1 byte. ------- --$7E14C4-- Empty. Cleared on reset, titlescreen, overworld and cutscene load. Length: 1 byte. ------- --$7E14C7-- Empty. Cleared on reset, titlescreen, overworld and cutscene load. Length: 1 byte. ------- --$7E15E8-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1696-- Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. Length: 1 byte. ------- --$7E17BB-- Contains the low byte of the level number when loading the levels, but never read by anything. It's cleared when the loading is done. Can be used as freeram. Length: 1 byte. ------- --$7E185D-- Related to the spawning of extended sprites. Used to index $7E:17F0 (minor extended sprite type table) if there are no empty slots when an extended sprite needs to be spawned. This is so that the oldest extended sprite can be removed when a new one needs to be made. Length: 1 byte. ------- --$7E1864-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E1869-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 2 bytes. ------- --$7E1879-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E188A-- Empty. Cleared on reset, titlescreen load, overworld load and level load, but also on death ($00:F625) and in the Peach Rescued scene ($03:AE39). Length: 1 byte. ------- --$7E188E-- Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. Length: 1 byte. ------- --$7E18A6-- Unused RAM. Referenced at $01CF9E (Morton's code) but never actually used. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E18B4-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E18B7-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E18BB-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E18C5-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 8 bytes. ------- --$7E18D8-- Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. Length: 1 byte. ------- --$7E18DB-- Set to #$08 at $00:CDD4 (unreachable by default) and never touched again. Might have been intended as a starting index for the player's fireballs. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E18E6-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E18E9-- Occasionally used to index $7E:17C0 (smoke image table). If there are no empty slots left when a smoke image should be spawned, the oldest one is removed and the index is reset. Length: 1 byte. ------- --$7E18F6-- Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. Length: 1 byte. ------- --$7E1908-- Empty. Cleared on reset, titlescreen load, overworld load and level load. Length: 1 byte. ------- --$7E191B-- Empty. Cleared on reset, titlescreen load, overworld load, and every frame when Yoshi is on screen. The latter can be disabled by changing $01:EBD9 from [9C 1B 19] to [80 01 EA]. Length: 1 byte. ------- --$7E191F-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1923-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 2 bytes. ------- --$7E1926-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 2 bytes. ------- --$7E1929-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E192C-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1934-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 1 byte. ------- --$7E1936-- Empty. Cleared on reset, titlescreen load and overworld load. Length: 2 bytes. ------- --$7E1B7F-- Empty. Cleared on reset, titlescreen load, overworld load and titlescreen load. This address could be regarded as the "high byte" of $7E:1B7E, however it is never used (AND #$00FF is applied) and only stored to on the overworld. Thus, it is safe to use this address as free RAM outside of the overworld. Length: 1 byte. ------- --$7E1B97-- This address is only stored to once in all of SMW, and that's in code that was originally never used (the fifth scrolling command, sprite #$EC). It was going to have some unknown use when you reached the last screen of the level. Because SMW never executes the code that writes to it (unless that command is used), this is a safe address to use. Cleared on reset, titlescreen load, overworld load and cutscene load. Length: 2 bytes. ------- --$7E1DEF-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E1DFD-- Empty. Cleared on reset, titlescreen, overworld and level load (the latter two due to new music banks being uploaded). Note that $7E:1DFD is cleared twice, due to a 16-bit store to $7E:1DFC - at $04:969F/0x2189F (LDA #$0023 : STA $1DFC) and $05:C75D/0x2C95D (LDA #$0009 : STA $1DFC). Length: 2 bytes. ------- --$7E1E00-- Empty. Cleared on reset, titlescreen, overworld and level load (the latter two due to new music banks being uploaded). Length: 1 byte. ------- --$7E1E01-- Empty, unused. Cleared on reset and titlescreen load. However, if the debug code at $00:CC86/0x4E86 is enabled, this address allows you to be in free roaming mode: the player can move in any direction, without being affected by objects or sprites. #$00 = none; #$01 = dash immediately; #$02 = free roaming. Length: 1 byte. ------- --$7E1F2B-- Empty. Unlike most empty addresses, this one is saved to and loaded from SRAM, so it's effectively cleared only at reset and new game. Length: 3 bytes. ------- --$7E1F3B-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E1F48-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E1FFA-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7E1FFF-- Empty. Cleared on reset and titlescreen load. Length: 1 byte. ------- --$7EC100-- Empty, untouched RAM on an unhacked ROM, potentially occupied with extended animated tile graphics in a hacked ROM. Length: 1408 bytes. ------- --$7EC6E0-- Empty, untouched RAM on an unhacked ROM, potentially occupied with extended animated tile graphics in a hacked ROM. Length: 288 bytes. ------- --$7F0000-- Layer 2 event tilemap of the overworld. $7F:0D00-$7F:3FFF is empty (untouched) RAM on a vanilla ROM, but LM uses it to hold the expanded layer 2 event tilemap on a hacked ROM. LM also uses $7F:0000 and upwards to store title screen movement (three bytes every time a key is pressed or released, or if the same keys are held for #$FF frames), and $7F:0B44-$7F:1343 are also used as buffer for dynamic sprite graphics because of them being uploaded during V-Blank. Length: 16384 bytes. ------- --$7F8183-- Empty, untouched RAM. ~420 bytes used in LM 1.70+ for VRAM modification. Length: 504 bytes. ------- --$7F9C7B-- Empty RAM which is entirely untouched. This area is used by many SMW hacking tools, so hacked ROMs are likely to use some of the addresses found here. A list of RAM addresses used by several SMW hacking tools can be found at http://www.smwiki.net/wiki/RAM_Address/$7F:9C7B . A few more addresses are documented at http://smwc.me/1115183 . [TODO: Merge those into SMWiki once it unlocks.] Length: 11141 bytes. ------- --$00B091-- Unused data. Change to AD C6 13 F0 FA A5 13 29 03 4C 39 AF to completely disable the fade-out only when beating a level. Does not apply to bosses (USE WITH $00:AF35). Length: 15 bytes. ------- --$00BA4D-- Unused data. Length: 19 bytes. ------- --$00F9F5-- Unused data. Length: 27 bytes. ------- --$00FF93-- Empty (all FF) in a clean ROM. Used by many patches (like fastrom), and the last byte becomes 42 when you lock the ROM. Length: 45 bytes. ------- --$01CD1E-- Unused ROM. Length: 12 bytes. ------- --$01E2B0-- Unused data. Length: 24 bytes. ------- --$01FFBF-- Unused data. Length: 65 bytes. ------- --$02B5EC-- Unused data. Length: 68 bytes. ------- --$02D51E-- Unused data. Length: 97 bytes. ------- --$02FFE2-- Empty on default. Can be used for various purposes. Length: 30 bytes. ------- --$03BA02-- Filled with FF. Length: 1534 bytes. ------- --$03D6AC-- Unused data. Length: 84 bytes. ------- --$03E05C-- Unused data. Length: 932 bytes. ------- --$03FDE0-- Unused data. Length: 544 bytes. ------- --$04A1B6-- Unused data Length: 586 bytes. ------- --$04EF3E-- Unused data. Length: 834 bytes. ------- --$04FFB1-- Unused data. Length: 79 bytes. ------- --$058E19-- Filled with FF. Length: 487 bytes. ------- --$05A563-- Unused data Length: 29 bytes. ------- --$05B6FE-- Tilemap of the erase file select dialog. ("ERASE MARIO A . . . EMPTY", etc.) Length: 203 bytes. ------- --$05B7C9-- Tilemap of the file select dialog. ("MARIO A . . . EMPTY", etc.) Length: 169 bytes. ------- --$05BBA6-- Unused data. Length: 90 bytes. ------- --$05CFEA-- Empty. Length: 22 bytes. ------- --$05D668-- Unused data. Length: 160 bytes. ------- --$05DC46-- Filled with FF. Length: 954 bytes. ------- --$06A5B9-- Unused data Length: 71 bytes. ------- --$06C964-- Filled with $FF. Length: 1692 bytes. ------- --$06F539-- Filled with $FF. Length: 2759 bytes. ------- --$078018-- Empty level (header only). Used as layer 2 when no background is needed. Length: 6 bytes. ------- --$0780ED-- Empty Length: 19 bytes. ------- --$07A179-- Filled with $FF. Length: 1159 bytes. ------- --$07C226-- Filled with $FF Length: 218 bytes. ------- --$07E76F-- Unused data. Length: 2193 bytes. ------- --$07FC90-- Unused data. Length: 880 bytes. ------- --$0BFD0D-- Empty space. Length: 755 bytes. ------- --$0CB66E-- Unused data. Length: 402 bytes. ------- --$0CD86F-- Unused data. Length: 145 bytes. ------- --$0CFFE1-- Unused data Length: 31 bytes. ------- --$0DBB68-- Unused data Length: 152 bytes. ------- --$0DC620-- Unused data. Length: 480 bytes. ------- --$0DD282-- Unused data Length: 382 bytes. ------- --$0DE186-- Unused data Length: 378 bytes. ------- --$0DF08A-- Unused data. Length: 630 bytes. ------- --$0DFE9F-- Unused data. Warning: the 0x12 FF bytes before this are NOT unused data (used in credits). Length: 353 bytes. ------- --$0EF0F0-- Empty Length: 3856 bytes. ------- --$0FEF90-- Empty Length: 4208 bytes.