The term "FreeRAM" is shorthand for describing addresses in the SNES memory that are "empty", cleared, or unused when it comes to Super Mario World. (You view a list of empty addresses on SMW Central's RAM map).
Available empty addresses are used by a variety of custom resources for their own functionality, and it is good practice to not have resources use the same address as this could lead to problems. When this happens it can lead to FreeRAM conflict and result in one or both ASM resources not working.
The below is a list of resources in the baserom and the FreeRAM they use sorted by starting RAM address, name of resource and number of bytes.
Keep in mind some of these use a range of values, e.g. if it's starting at $60 and is 4 bytes, it's using addresses 60, 61, 62 and 63.
Address | Bytesize | Resource |
---|---|---|
$87 | 1 byte | Used by SA-1 (if using) |
$0DC3 | 4 bytes | Sprite Scroll Fix patch |
$146C | 1 byte | Used by Lunar Magic |
$1487 | 4 bytes | Sprite Scroll Fix patch |
$14BE | 1 byte | Layer 2 and 3 wall triangle Fix patch |
$14C1 | 1 byte | Used by simple auto save as a check |
$15E8 | 1 byte | Goal point reward fix patch |
$1869 | 2 bytes | Extended No Sprite Tile Limits |
$18E6 | 1 byte | Skull Raft Fix |
$1923 | 1 byte | Cape spin consistency patch |
$1DFD | 1 byte | ON/OFF double-hit Fix |
These are resources that use more than a few bytes of FreeRAM to function, and are using "long" addresses in the $7F****
block of memory.
Addresses* | Bytesize | Resource |
---|---|---|
$7FA400 | 16 bytes (reserved length) | Baserom Feature Toggles |
$7FA410 | 16 bytes (reserved length) | UberASM Object System |
$7FA420 | 16 bytes (reserved length) | Screen Scrolling Pipes |
$7FA660 | 300 bytes | Dragon Coin Save, coins themselves |
$7FA960 | 8 bytes | Dragon Coin Save, buffer |
$7FB000 | 2 to 1032 bytes | AddMusicK |
$7FB400 | 230 bytes (+1 for every midway) | Retry System |
For easy configuration, the baserom uses a shared config file in shared/freeram.asm to define FreeRAM values with, so they can be called independently of resources that use them and easily be referenced.