SMW Memory Map
Displaying 14 out of 839 addresses.
View: moderated | waiting (105)
RAM Address | Length | Type | Description | Details |
---|---|---|---|---|
$7FAF00 | 256 bytes | Sprites | Custom sprite table used by Pixi. This serves the same purpose as $1938, but it supports up to 255 sprites per level. Not used if !Disable255SpritesPerLevel is set. In custom sprites it's recommended to use the !1938 define, since it'll be mapped to either $1938 or $7FAF00 depending on the Pixi configuration (pay attention that in one case it's absolute, in the other it's long!). |
|
$7FB000 | 1034 bytes | Misc. | RAM used by AddmusicK for various purposes. | RAM Map |
$7FBC00 | 1024 bytes | Misc. | Used by Lunar Magic's VRAM patch. | |
$7FC000 | 32 bytes | Misc. | Used by Lunar Magic for various purposes. See details for an incomplete list. | RAM Map |
$7FC020 | 14 bytes | Misc. | Used by Lunar Magic v2.20+ for LZ2/LZ3/ExAnimation code execution, on SA-1 roms only. | |
$7FC060 | 16 bytes | Flag | Used by Lunar Magic v1.80+ as bitwise state flags for Conditional Direct Map16. To find the bit for a particular flag, use flag >> 3 to get the byte, and then flag % 8 to get the bit (ordered low to high).Note that this address is not initialized automatically. |
|
$7FC070 | 16 bytes | Misc. | Used by Lunar Magic v1.70+ as frame numbers for each Manual ExAnimation. One byte per slot. Note that these addresses are uninitialized unless specified by the "Trigger Init" settings in Lunar Magic. |
|
$7FC080 | 32 bytes | Counter | Used by Lunar Magic as frame counters for each Level ExAnimation. One byte per slot. | |
$7FC0A0 | 32 bytes | Counter | Used by Lunar Magic as frame counters for each Global ExAnimation. One byte per slot. | |
$7FC0C0 | 56 bytes | Graphics | Lunar Magic's ExAnimation output table, used to temporarily store data for any ExAnimations updating on the current frame. There are 8 tables, each 7 bytes long, with their data written by the routine at read3($00A2A5+1). The data within these tables is then written as follows: Bytes 0-1: 16-bit header. The highest bit determines the animation type, with 0 being graphics and 1 being palettes. For graphics, the remaining 15 bits are the transfer size. For palettes, the low byte is doubled and used as the transfer size (with the low byte hence effectively being the number of colors). Bytes 2-3: 16-bit destination. For GFX animations, the high bit determines whether the animation uses a line (0) or rectangular (1) type, with the remaining 15 bits used as the base VRAM address. For color animations, the low byte holds the base CGRAM address while the high byte is unused. Bytes 4-6: 24-bit source. For GFX animations, this generally points to RAM, but may be ROM for ExGFX60-63. For "palette + working" animations, this points to the corresponding color to update in the table at $0903. For palette animations with only one color (i.e. header = #$8001), bytes 4/5 hold the raw 16-bit SNES RGB color while byte 6 is unused. For any other palette animation, bytes 4-6 hold the 24-bit address to the color data. |
|
$7FC0F8 | 4 bytes | Flag | Used by Lunar Magic v1.70+ as bitwise flags for One Shot ExAnimation triggers. To find the bit for a particular trigger, use trigger >> 3 to get the byte, and then trigger % 8 to get the bit (ordered low to high). |
|
$7FC0FC | 2 bytes | Flag | Used by Lunar Magic v1.70+ as bitwise flags for Custom ExAnimation triggers. To find the bit for a particular flag, use flag >> 3 to get the byte, and then flag % 8 to get the bit (ordered low to high).Note that these addresses are uninitialized unless specified by the "Trigger Init" settings in Lunar Magic. |
|
$7FC300 | 1024 bytes | Misc. | Used by Lunar Magic v1.70 as a Map16 high byte buffer. | |
$7FC800 | 14336 bytes | Blocks | Map16 high byte table. Same format as $7EC800. $7FFFF8-$7FFFFD are also used by Lunar Magic's title screen recording ASM. |
|