RAM | BYTES | USED BY | ORIGINALLY USED FOR |
$7E:0058 | 1 byte | objectool04.asm, Barker Duck, | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:005C | 1 byte | AirMeter/Panic (Sprite 82), Barker Duck, | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:0060 | 4 bytes* | title.asm, Barker Duck(61) | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:0062 | ? | leodspr.asm, Barker Duck | |
$7E:0079 | 1 byte | DisableFireCape.asm/NewCart.asm | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:007C | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:0087 | 1 byte | Barker Duck\IRQhack | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:00F0 | 16 bytes | DO NOT USE | 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. |
$7E:0695 | 108 bytes | DO NOT USE | Empty. Cleared on reset and titlescreen load. 100 bytes used in LM 1.70+ for VRAM modification. |
$7E:0AF5 | 1 byte | Barker Duck | 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/0x328D to [80 01 EA]. |
$7E:0D9C | 1 byte | Empty | Empty. Cleared on reset and titlescreen load. |
$7E:0DA1 | 1 byte | Hindenbird | Empty. Cleared on reset and titlescreen load. |
$7E:0DC3 | 4 bytes | Owcounter.asm, Barker Duck, HindenBird | 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/0x2048 to [80 01 EA]. |
$7E:0DD4 | 1 byte | Empty | 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. |
$7E:0DD9 | 1 byte | objectclipping.asm, Hindenbird | Empty. Cleared on reset and titlescreen load. |
$7E:0DDB | 3 bytes | objectclipping.asm | Empty. Cleared on reset and titlescreen load. |
$7E:0F3A | 6 bytes | Hindenbird | Empty. Cleared on reset and titlescreen load. |
$7E:0F42 | 6 bytes | LASM 147 | Empty. Cleared on reset and titlescreen load. |
$7E:0F5E | 20 bytes* | Barker Duck (&0F9A) | 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. |
$7E:0F70 | Hindenbird | ||
$7E:13C0 | ? | Windowing.asm | |
$7E:13C8 | 1 byte | LASM BB, 171, HindenBird, Barker Duck | Empty. Cleared on reset and titlescreen load. |
$7E:13D8 | 1 byte | Barker Duck, Hindenbird | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:13E6 | 2 bytes | OWMusic.asm,Barker Duck,LakituFixSpecial | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:13F2 | 1 byte | Hindenbird,LakituFixSpecial | Cleared on reset, titlescreen, overworld and cutscene load. |
$7E:140A | 1 byte | deathfix | Empty. Cleared on reset, titlescreen load, overworld load and during part of the cape flight routine. |
$7E:140B | 2 bytes | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. |
$7E:1415 | 2 bytes | Barker Duck(&1416) | Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. |
$7E:145E | 2 bytes | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. |
$7E:1461 | 1 byte | Empty | 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. |
$7E:146C | 4 bytes | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. |
$7E:1473 | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1475 | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1477 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1479 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:147B | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:147D | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1487 | 4 bytes | Antigravity Patch | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:14AC | 1 byte | Empty | Empty. However, due to the code at $00:C563/0x04763 and $00:C513/0x04713, it decrements every fourth frame until it hits zero. |
$7E:14BE | 1 byte | Barker Duck, Hindenbird | Empty. Cleared on reset, titlescreen load, overworld load and cutscene load. |
$7E:14C1 | 1 byte | Empty | Empty. Cleared on reset, titlescreen, overworld and cutscene load. |
$7E:14C4 | 1 byte | Empty | Empty. Cleared on reset, titlescreen, overworld and cutscene load. |
$7E:14C7 | 1 byte | Empty | Empty. Cleared on reset, titlescreen, overworld and cutscene load. |
$7E:15E8 | 1 byte | LASM:Level2E | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1696 | 1 byte | Hindenbird | Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. |
$7E:17BB | 1 byte | Empty | 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. |
$7E:1864 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:1869 | 2 bytes | Hindenbird | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:1879 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:188A | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load and level load, but also on death ($00:F625/0x7825) and in the Peach Rescued scene ($03:AE39/0x1B039). |
$7E:188E | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. |
$7E:18A6 | 1 byte | mechatree.asm | Unused RAM. Referenced at $01CF9E (Morton's code) but never actually used. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:18B4 | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:18B7 | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:18BB | 1 byte | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:18C5 | 8 bytes | Barker Duck | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:18CA-B | 2 bytes | NMSTL.asm | |
$7E:18D8 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. |
$7E:18DB | 1 byte | Empty | 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. |
$7E:18E6 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:18F6 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load, cutscene load and level load. |
$7E:1908 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load and level load. |
$7E:191B | 1 byte | Empty | Empty. Cleared on reset, titlescreen load, overworld load, and every frame when Yoshi is on screen. The latter can be disabled by changing [9C 1B 19] at $01:EBD9/0xEDD9 to [80 01 EA]. |
$7E:191F | 1 byte | Empty | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1923 | 2 bytes | Hindenbird | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1926 | 2 bytes | Hindenbird | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1929 | 1 byte | Empty | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:192C | 1 byte | Empty | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1934 | 1 byte | Hindenbird | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1936 | 2 bytes | Hindenbird | Empty. Cleared on reset, titlescreen load and overworld load. |
$7E:1B7F | 1 byte | Empty | 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. |
$7E:1B97 | 2 bytes | Empty | 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. |
$7E:1DEF | 1 byte | Empty | Empty. Cleared on reset and titlescreen load. |
$7E:1DFD-FF | 2 bytes | AMK | 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). |
$7E:1E00 | 1 byte | Empty | Empty. Cleared on reset, titlescreen, overworld and level load (the latter two due to new music banks being uploaded). |
$7E:1E01 | 1 byte | Empty | 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. |
$7E:1F2B | 3 bytes | Empty | Empty. Cleared at reset and titlescreen load. Unlike most empty addresses, this one is saved to and loaded from SRAM. |
$7E:1F3B | 1 byte | Empty | Empty. Cleared on reset and titlescreen load. |
$7E:1F48 | 1 byte | Empty | Empty. Cleared on reset and titlescreen load. |
$7E:1FFA | 1 byte | Hindenbird | Empty. Cleared on reset and titlescreen load. |
$7E:1FFF | 1 byte | Empty | Empty. Cleared on reset and titlescreen load. |
$7E:C100* | 1,408 bytes | Empty | Empty, untouched RAM on an unhacked ROM, potentially occupied with extended animated tile graphics in a hacked ROM. |
$7E:C271 | 3D0RedGem.asm(Blue, yellow) | ||
$7E:C275 | 3D0RedGem.asm(Blue, yellow) | ||
$7E:C400 | 20 bytes | Doc Cros boss. | |
$7E:C6E0 | 288 bytes | Empty | Empty, untouched RAM on an unhacked ROM, potentially occupied with extended animated tile graphics in a hacked ROM. |
$7F:8183 | 504 bytes | DO NOT USE | Empty, untouched RAM. ~420 bytes used in LM 1.70+ for VRAM modification. |
$7F:837E-$7F9856 | genericuploader.asm | ||
$7F:8827 | ? | math.asm/thermometer.asm | |
$7F:888A-8C | - | frankboss.asm/tanuki.asm on 8C | |
$7F:8900 | ? | firechomp.asm | |
$7F:9A7B | math.asm/3C3MathBlock0.asm | ||
$7F:9A7C-7D | 3C3MathBlock0-9.asm | ||
$7F:9A7E | math.asm | ||
$7F:9A81 | score.asm/2D90eventdoors.asm | ||
$7F:9A82 | 2DC8RttFDoorA.asm 2DC9RttFDoorB.asm 2DD4doortargets.asm 2DD6flagpole.asm 2DD7failuretele.asm 2DE2RttFDoorC.asm 3CFplacer.asm |
||
$7F:9A83-84 | ? | 2D90eventdoors.asm 3B1doomark1.asm |
|
$7F:9A90 | |||
$7F:9B01 | 3CDAnswerSubmit.asm | ||
$7F:9C7B* | 11,141 bytes | Empty | 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 here. |
$7F:9D00 | 40 bytes | Hindenbird | |
$7f:9E00 | HDMA stuff (edit1754) | ||
$7F:A000-4 | |||
$7F:A006-7 | LASM:Level2E | ||
$7F:A00A-B | LASM:Level2E | ||
$7F:A230-3C | ? | timer.asm/2DCBRttFspike.asm | |
$7F:AB10 | ? | Various Sprites | |
$7F:AB28 | ? | Various Sprites | |
$7F:AB34 | ? | npc3.asm | |
$7F:AB9E | 8 bytes | Various Sprites | |
$7F:ABAA | ? | objectclipping.asm | |
$7F:AC80 | asar_patch | ||
$7F:B000 | ? | AMK? | |
$7F:B020-22 | |||
$7F:B100 | 390Button1-9.asm, Barker Duck | ||
$7F:B200-21 | 15 bytes | newcart (sprite) | |
$7F:B300-30 | LASM Level 2E | ||
$7F:B500 | 400 bytes | Barker Duck | |
$7F;B603 | LASM:Level2E | ||
$7F:C070 | ? | laser.asm | |
$7F:C080 | ? | 3D5A-F.asm 360animhurt1-4.asm |
|
$7F:C0FC | 3D0RedGem.asm(Blue, yellow) 3D3RedGemActivateBlock.asm (Yellow, Blue) |
||
$7F:C700 | 96 bytes | CoinDefines.asm | |
$7F:C770 | 41 bytes | DKC2_bar.asm, MultimidwayPoints1.3.asm |