Language…
14 users online:  Alex, Aurel509, ciscomack11, Fostelif, Gattocqt89, idrone20, jobvd, KaosAlex, KoJi, matthowerules, Murphmario, Phyll,  xHF01x, YMM - Guests: 63 - Bots: 225
Users: 57,998 (2,504 active)
Latest user: Valevera103

SMW Memory Map

Displaying 14 out of 839 addresses.

View: moderated | waiting (105)

Filter

Link
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.