AddressDescriptionTypeSize
$009A1FWrites the Map16 data for Ludwig/Morton/Roy's boss battle room. $009A40 is what tile the lava tiles in the Morton/Ludwig/Roy battles act like (by default: 05). Only Map16 page 00 is usable.Subroutine (JSR)47
$00A045The routine that sets the interaction of the Layer 3 tide tiles. Both $00A04E and $00A04F are the low byte of the Map16 tile that the tides act like; nothing is stored to the high byte, so this is always on page 0.Layer 338
$00BA60The low byte of a series of Map16 data pointers in horizontal levels. The high bytes are at $00BA9C, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x1B0 bytes). These are used in various routines that read or write Map16 data to find where a particular tile is.Pointer32
$00BA80The low byte of a series of Map16 data pointers in vertical levels. The high bytes are at $00BABC, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x200 bytes, which means that all of these will be 00 in a clean ROM anyway). These are used in various routines that read or write Map16 data to find where a particular tile is.Pointer28
$00BA9CThe high byte of a series of Map16 data pointers in horizontal levels. The low bytes are at $00BA60, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x1B0 bytes). These are used in various routines that read or write Map16 data to find where a particular tile is.Pointer32
$00BABCThe high byte of a series of Map16 data pointers in vertical levels. The high bytes are at $00BA80, and the bank byte is either $7E or $7F. These are indexed by screen number; each byte in this table and the other corresponds to the start of a particular screen's Map16 data (or chunk of 0x200 bytes, which means that these are all simply multiples of 2 plus #$C8). These are used in various routines that read or write Map16 data to find where a particular tile is.Pointer28
$00BEB0SMW's Map16-tile-generating routine. It uses values of $9C to determine which tile to generate, but these values are hardcoded. (See RAM address [url=https://smwc.me/m/smw/ram/7E009C]$9C[/url].) This is the main part; $00BFBC runs the codes for each tile.Subroutine (JSL)268
$00BFBCA subroutine used with $00BEB0; it runs different codes depending on the value of $9C. The pointers for the different values begin at $00BFC9. They go from 01 to 1B, although the actual codes are kind of weird...the pointers vary depending on which Map16 page the tile is on, whether or not item memory should be affected, and if there are special cases (such as the Yoshi coin, which generates two tiles simultaneously).Subroutine (JSR)67
$00C06BTiles to generate on Map16 page 0, used for values 01-09 of $9C. Note that the first byte is unused.Misc.9
$00C074SMW's subroutine for generating tiles on Map16 page 0. $00C077 is an alternate entry point to this routine; if it is used instead, then the tile generation will not affect item memory.Subroutine (JSR)54
$00C0B2Tiles to generate on Map16 page 1, used for values 0A-17 of $9C.Misc.15
$00C0C1A portion of code used in SMW for generating tiles on Map16 page 1. $00C0C4 is an alternate entry point to this routine; if it is used instead, then the tile generation will not affect item memory.ASM58
$00C0FBThe portion of code in SMW's Map16-tile-generating routine that changes the actual graphics of the tile. Both $00C074 and $00C0C1 use it (the former jumps to it, and it immediately follows the latter).ASM177
$00E4B9Values stored to [url=https://smwc.me/m/smw/ram/7E13E1]$13E1[/url] for each slope tile. Rather than being indexed by the tile's actual Map16 tile number, this table is instead indexed first by the type of slope and then the tiles within that slope from left-to-right. For instance, the gradual slopes have four tiles spanning their surface, so they each get four bytes in this table; the steep slopes meanwhile span 1 tile horizontally, so they only get a single byte each. See the details for more information about the order.Misc.33
$00E55EIndices to the tables at $00E4B9-$00E53D and $00E632, when in any tileset except 0 and 7 (used for upside-down slopes). This table is indexed by Map16 tile number, for the range 16E-1D7. An index to this table is stored at $82.Misc.106
$00E5C8Indices to the tables at $00E4B9-$00E53D and $00E632, when in tilesets 0 or 7 (used for diagonal pipes). This table is indexed by Map16 tile number, for the range 16E-1D7. An index to this table is stored at $82.Misc.106
$00EAC1Table of which slope tiles on Map16 page 1 are in water.Objects26
$00EBDDDoor interaction routine. Handles boss doors, normal doors and p-switch doors. $00EBDE: The Map16 tile of a door which can be entered from any position if touched (used for the large castle door). $00EBE5: The tileset where the castle door is enterable. $00EBE9: The Map16 tile number for the normal door (independent of power up and p-switch). $00EBED: The Map16 tile number for the small door (enterable when not big, independent of p-switch). $00EBF6: The Map16 tile number for the p-switch door (independent of power up, p-switch must be active). $00EBFA: The Map16 tile number for the small p-switch door (enterable when not big, p-switch must be active). $00EBFD: Code that checks Mario's powerup state when entering doors. Change to [80 02] (BRA $02) to allow small doors can be entered even if Mario is big, and normal doors to be entered even if riding Yoshi. $00EC01: Checks whether Mario is centered enough to enter a non-boss door. Replace it with [$80,$03] to disable this behaviour. $00EC09: Replace it with [$00] to allow doors to be enterable in the air. $00EC10: Sound effect to play. $00EC11 (8-bit) is the SFX ID and $00EC13 (16-bit) is the SFX port. See $7E1DF9 to $7E1DFC for more details Note: All the Map16 tiles must be located on page 0.Mario physics68
$00EEB2Change from 1E to 04 (BNE jumps to $00EEB7 instead of $00EED1) to make it possible to trigger already triggered switch palace switches, as opposed to them randomly becoming solid for no obvious reason. Note that this only applies to switches inserted using Direct Map16; switches inserted as extended objects will still disappear.Objects1
$00F05CTable for several Map16 blocks that handles which bounce block sprite is shown when the block is hit. Please see this thread and this thread for additional information. Block order is as follows: 00-1C: Tiles 111-12D 1D-20: Tiles 021-024 21: Broken turnblock 22: Green ! block 23: Yellow ! blockMisc.36
$00F080Table for several Map16 blocks that handles which powerup is spawned out of the block when it's hit (see [url=http://acmlm.kafuka.org/board/thread.php?id=5741]here[/url] for more details). Block order is the same as $00F05C.Misc.36
$00F0A4Table for several Map16 blocks that handles from which sides the block is activated, in ----btrl format. - = unused, b = bottom, t = top, r = right, l = left Block order is the same as $00F05C.Misc.36
$00F0C8Table for several Map16 blocks that handles which tiles to generate (the value stored to [url=https://www.smwcentral.net/?p=nmap&m=smwram#7E009C]$9C[/url]) when the block is hit. Block order is the same as $00F05C.Objects36
$00F120Shared Map16 page 1 interaction routine. This handles Munchers, spikes and bounce blocks (including but not limited to Note Blocks and ?-blocks). This routine is called for most of Mario's interaction points as well as carryable sprites and the cape. The order in which the routine goes as follows:
  • Check for Yoshi
  • Handle hurt blocks
  • Hande bounce blocks
The routine can be jumped at various points:
  • $00F120 includes the Yoshi check and is used if the player is above a block.
  • $00F127 handles hurt blocks regardless whether the player rides Yoshi or not and is used for the other sides of a block.
  • $00F160 handles only bounce sprites and is used for the invisible blocks and sprite interaction.
All these routines take the following inputs:
  • A: Map16 tile which is interacted
  • Y: Block direction (follows a similar fomat as $7E0077).
Mario physics217
$00F160Routine used to trigger SMW blocks, used for example by kicked sprites to make ON/OFF blocks, Note blocks, etc. activate when hitting them. Inputs: - $98: 16-bit Y position of the block. - $9A: 16-bit X position of the block. - $1933: which layer the block is in. - Y: must be #$00. - A: map16 number low byte (high byte is always #$01, since all the blocks that can be triggered by this are in map16 page 1).Subroutine (JSL)263
$00F2C0Shared Map16 interaction routine to handle interaction with various tiles on page 0. The tile number is passed in Y, and the specific interaction point being processed is identified via a value passed in A, using a format similar to that of $74. The routine specifically handles interaction for the following tiles, in the following order:
  • Liquids (000-005)
  • Midpoints (038)
  • Climbable blocks (006-01C)
  • Moons (tile 06E)
  • Yoshi coins (tiles 02D, 02E)
  • Normal coins (tiles 02A-02C)
The game uses multiple entry points to the routine depending on the interaction point being processed:
  • [b]$00F2C0:[/b] MarioBody. This specifically sets A to #$01.
  • [b]$00F2C2:[/b] MarioAbove and MarioBelow.
  • [b]$00F2C9:[/b] MarioSide and MarioHead. This skips liquid interaction.
  • [b]$00F309:[/b] TopCorner and WallFeet. This skips liquid, midpoint, and climbable block interaction.
Mario physics183
$00F2CDThe code for the midway point tile (Map16 tile 38, not the extended object). - $00F2CE: what tile gets generated after breaking the midway point tape (see [url=https://smwc.me/m/smw/ram/7E009C]$9C[/url]; default is 02 - none). - $00F2D5: change to [80 01] to disable the glitter that appears after touching a midpoint. - $00F2E2: change to [80] to disable midway powerups (or [80 01] to make them always make you big, even if you have a better powerup). - $00F2E5: what powerup midway points give you. - $00F2E9: what sound effect midway points play.Objects33
$00F332The code that handles a Yoshi coin being collected. - $00F333: Map16 tile number of the top half of the coin. - $00F33C: offset of the score sprite when the top half is collected, relative to the bottom half. - $00F343: changing [EE 22 14] to [EA EA EA] will disable the Yoshi Coin counter in the status bar. Note that this will also stop them from respawning when you've got five of them. - $00F34A: number of Yoshi coins that need to be collected to trigger the "collected all" flag. - $00F354: changing [99 2F 1F] to [EA EA EA] will make the Yoshi coins reappear even after collecting all 5 (or more) of them. - $00F359: Yoshi coin sound. - $00F35E: amount of regular coins a Dragon Coin gives you. - $00F364: value stored to [url=https://smwc.me/m/smw/ram/7E009C]$9C[/url] when the coin is collected.ASM69
$00F545Routine that handles behaviours for various Map16 tiles. For P-Switch dependent tiles, this routine only sets the "act as", not the graphics. $00F54C: Map16 tile number (low byte) that should act like a ? Coin Block when the blue P-Switch is active. Default is ($00)29, the Invisible POW ? Coin Block. $00F555: Map16 tile number (low byte) that the Invisible POW ? Coin Block should act like when the blue P-Switch is active. Default is ($01)24, the ? Coin Block. $00F55B: Map16 tile number (low byte) that should act like a Brown "used" Block when the blue P-Switch is active. Default is ($00)2B, the Coin. $00F572: Map16 tile number (low byte) that Coins should act like when the blue P-Switch is active. Default is ($01)32, the Brown "used" Block. $00F561 & $00F563: Range of Map16 tiles (page 0) that set the "current Palace Switch being pressed" value in $1423. $00F561 (#$EC) is subtracted from the Map16 tile number, then compared with $00F563 (#$10). If the result is less than #$10, the value gets incremented by 1 and stored to $1423. This makes it so that only tiles ($00)EC to ($00)FB, the Palace Switch tiles, set $1423. $00F57B: Map16 tile number (low byte) that should act like a Coin when the blue P-Switch is active. Default is ($01)32, the Brown "used" Block. $00F585: Map16 tile number (low byte) that should act like a Coin when the silver P-Switch is active. Default is ($01)2F, the Black Piranha Plant. $00F58E: Map16 tile number (low byte) that the Brown "used" Block should act like when the blue P-Switch is active, and the Black Piranha Plant should act like when the silver P-Switch is active. Default is ($00)2B, the Coin.Subroutine (JSL)80
$00FA19Load slope information. This is a subroutine which gets the slope information for the current tile which means slope type and height of the ground for the current X position. It's used to load the slope info for sprites. Input: Map16 tile ID low byte $0A: X position of the interaction point $0C: Y position of the interaction point Output: Y: Index to the ground height table, calculated with from $08 * 4 + $0A & #$0F. $00: Y position of the current interaction within the block, calculated from $0C & #$0F. $05-$07: 24-bit pointer to the ground height table $00E632. $08: Slope type.Sprite subroutine (JSL)44
$01BA20Lowest Map16 tile that a vertical net Koopa can climb on. Change from 07 to 06 to allow vertical net Koopas to climb on vine tiles.Sprite physics1
$01BA24Highest Map16 tile that a vertical net Koopa can climb on, plus one.Sprite physics1
$01BA2BLowest Map16 tile that a horizontal net Koopa can climb on. Change from 07 to 06 to allow horizontal net Koopas to climb on vine tiles.Sprite physics1
$01BA2FHighest Map16 tile that a horizontal net Koopa can climb on, plus one.Sprite physics1
$01BC67Change to EA EA EA EA EA EA EA EA and every Map16 block will change into sprites when touched by Magikoopa's Magic. (Not just turn blocks)Misc.8
$0291B5Value for $9C to change what Map16 tile is created when a multiple-coin-block is hit after its timer has run out.Misc.1
$02B9A4This generates a Map16 tile at the position of the sprite currently being processed. It can be accessed with a JSL, and A should be set to the value of $9C you wish to use.Sprite subroutine (JSL)25
$03938BThis generates a Map16 tile at the position of the sprite currently being processed. It is identical to the routine at $02B9A4, except that this one ends with RTS.Sprite subroutine (JSR)25
$03C000This generates a Map16 tile at the position of the sprite currently being processed plus 8 pixels left and 8 pixels down. It can be accessed with a JSL, and A should be set to the value of $9C you wish to use.Sprite subroutine (JSL)35
$0581BBMap16 tileset-specific table. Each bit (from high to low) corresponds to one tile. When the game sets up tile pointers, if the bit is set, it writes and then increments (by 2) P1 (which is initialized to the value at $058000 + (Tileset * 2)), otherwise it writes and increments P2 (initialized to $(0D)8000).Misc.64
$058A95Until which Y position (default : #$01B0) all Map16 tiles' graphics should be updated.Coordinate2
$07FBF3Low byte of pointer to line-guided sprite speed table, indexed by the Map16 tile number (76-95). The high bytes are at $07FC13, and the bank byte is 07.Pointer32
$07FC13High byte of pointer to line-guided sprite speed table, indexed by the Map16 tile number (76-95). The low bytes are at $07FBF3, and the bank byte is 07.Pointer32
$0C94C0Routine called during credits initialization, specifically by the routine at [url=https://smwc.me/m/smw/rom/0C93DD/]$0C93DD[/url]. It copies the background data at [url=https://smwc.me/m/smw/ram/7EB900]$7EB900[/url] and [url=https://smwc.me/m/smw/ram/7EBD00]$7EBD00[/url] (transforming it from map16 data to raw tilemap data) into one portion of the [url=https://smwc.me/m/smw/ram/7F4000]$7F4000[/url] buffer.Misc.153
$0CF7DFLayer 1 Map16 data of the overworld, uncompressed. The data is directly copied from there to [url=https://smwc.me/m/smw/ram/7EC800]$7EC800[/url]. Note that the original game only has low bytes for each of these tiles; the high bytes are all set to 00. Lunar Magic adds an additional table for the high bytes at (read1($04D827)<<16)|read2($04D821), compressed with LC_LZ2.Overworld2048
$0D8000Graphic data for Map16 tiles 000-072. Shared by all tilesets. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics920
$0D8398Graphic data for Map16 tiles 100-106. Shared by all tilesets. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics56
$0D83D0Graphic data for Map16 tiles 111-152. Shared by all tilesets. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics528
$0D85E0Graphic data for Map16 tiles 16E-1C3. Shared by all tilesets. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics688
$0D8890Graphic data for Map16 tiles 1C4-1C7. Used in every tileset, but not when using GFX header 0 or 7. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics32
$0D88B0Graphic data for Map16 tiles 1C8-1EB. Shared by all tilesets. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics288
$0D89D0Graphic data for Map16 tiles 1EC-1EF. Used in every tileset, but not when using GFX header 0 or 7. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics32
$0D89F0Graphic data for Map16 tiles 1F0-1FF. Shared by all tilesets. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics128
$0D8A70Graphic data for Map16 tiles 1C4-1C7. Only used in GFX header 0 and 7. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics32
$0D8A90Graphic data for Map16 tiles 1EC-1EF. Only used when using GFX header 0 or 7. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics32
$0D8AB0Graphic data for the Map16 tiles used by multicolour pipes (besides the default green pipe). 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics192
$0D8B70Graphic data for Map16 tiles 073-0FF. Used by tileset 0 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics1128
$0D8FD8Graphic data for Map16 tiles 107-110. Used by tileset 0 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics80
$0D9028Graphic data for Map16 tiles 153-16D. Used by tileset 0 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics216
$0D9100Background Map16 tiles (pages 0x80 and 0x81 in LM) in TTTTTTTT YXPCCCTT format.Graphics4096
$0DA548Map16 data for extended objects 10-40, low byte. They are in order of object number, but the 8th byte is unused (it would be used for object 17, but the final byte in the table is used instead). The high byte of the first 19 tiles is 00, while the high byte of the rest of the tiles is 01.Objects51
$0DA6B1A routine that backs up the low and high bytes of the Map16 data pointers. It stores $6B and $6C in $04 and $05.Subroutine (JSR)9
$0DA6BAA routine that restores the low and high bytes of the Map16 pointers [$6B] and [$6E] from scratch RAM. Used in conjunction with $0DA6B1.Subroutine (JSR)19
$0DA6CDMap16 data for the door and P-switch-activated door. In order: Top tile of normal door, top tile of P-switch door, bottom tile of normal door, bottom tile of P-switch door.Objects4
$0DA6EEMap16 data for the big bushMisc.45
$0DA71BMain creation code for extended object 82 (the larger of the two big bushes). $0DA71E is the width, minus one. $0DA722 is the height, minus one. $0DA732 is the pointer to Map16 tile array (only contains low bytes).Objects45
$0DA748Map16 data for the small bushObjects24
$0DA760Main creation code for extended object 83 (the smaller of the two big bushes). $0DA763 is the width, minus one. $0DA767 is the height, minus one. $0DA777 is the pointer to Map16 tile array (only contains low bytes).Objects45
$0DA7E3Goal Arrow sign: MAP16 tilesObjects4
$0DA8B4Map16 data for objects 01-0E, low bytes of tile numbers. The last byte is actually used for tileset-specific object 31 when it forms ice-blue turn blocks.Objects15
$0DA8C3Main creation code for the objects that are made up of only one Map16 tile and can be extended both horizontally and vertically, i.e., objects 01-0E and tileset-specific object 31 when it forms ice-blue turn blocks.Objects152
$0DAA08A short routine which stores 01 to the high byte of the current index in the map16 table. Used liberally throughout SMW's object generation code.Objects5
$0DAA0DA short routine which stores 00 to the high byte of the current index in the map16 table. Used liberally throughout SMW's object generation code.Objects5
$0DAA12Map16 data for vertical pipe ends. There are four 5-byte tables here. The first two are for the top of a pipe (the last two bytes are unused), and the second two are for the bottom of a pipe (the first two bytes are unused).Objects20
$0DAA26Main creation code for the vertical pipe objects. $0DAA5A - The Map16 tile number (low byte) for the left side of the vertical pipe with no end. $0DAA62 - The Map16 tile number (low byte) for the right side of the vertical pipe with no end. $0DAA6C - The Map16 tile number (low byte) for the left side of all non-vertical pipes except the one without ends. $0DAA74 - The Map16 tile number (low byte) for the right side of all non-vertical pipes except the one without ends.Objects126
$0DAAA4Map16 data for the horizontal pipes. There are two tables here, each containing the low bytes of the tile numbers and both in order; the first two bytes of each table are for the left-facing non-exit-enabled pipe, the next two are for the left-facing exit-enabled pipe, the next two are for the right-facing non-exit-enabled pipe, and the last two are for the right-facing exit-enabled pipe.Objects16
$0DAB0DMain creation code for the Bullet Bill shooter object. $0DAB1A, $0DAB27, and $0DAB34 control which three Map16 tiles make up the object.Objects49
$0DABFDThe routine that allows slopes to overlap with dirt tiles. It checks the Map16 tile below the current one for certain numbers and adds values to the current tile number to change it into the one with dirt behind it.Objects36
$0DB212The Map16 tiles that make up the midway point and goal point objects. There are 6 3-byte tables here that are, in order: Top tiles of midway point, middle tiles of midway point, bottom tiles of midway point, top tiles of goal point, middle tiles of goal point, bottom tiles of goal point. You can change $0DB221 to 3A and $0DB223 to 3D to fix the glitched tiles at the bottom of the goal point. (They will just appear the same as the middle tiles.)Objects18
$0DB2CADragon Coin creation routine. $0DB2DF - Change to 00 to prevent Dragon Coins from vanishing when at least 5 have been collected. $0DB328 - Map16 tile for the upper half of a Yoshi/Dragon Coin. $0DB329 - Change to EA EA to make only the lower half of Yoshi/Dragon Coins appear. $0DB332 - Map16 tile for the lower half of a Yoshi/Dragon Coin. $0DB333 - Change to EA EA to make only the upper half of Yoshi/Dragon Coins appear.Objects108
$0DB3BBRope: MAP16 blockObjects1
$0DB3BCClouds: MAP16 blockObjects1
$0DB3DBWater with animated surface: MAP16 block (Top)Objects1
$0DB3DCWater with normal surface: MAP16 block (Top)Objects1
$0DB3DDLava with animated surface: MAP16 block (Top)Objects1
$0DB3DEClimbing net with top edge: MAP16 block (Top)Objects1
$0DB3DFWater with animated surface: MAP16 block (Bottom)Objects1
$0DB3E0Water with normal surface: MAP16 block (Bottom)Objects1
$0DB3E1Lava with animated surface: MAP16 block (Bottom)Objects1
$0DB3E2Climbing net with top edge: MAP16 block (Bottom)Objects1
$0DB42BDonut bridge: MAP16 block (Top)Objects1
$0DB42CDonut bridge: MAP16 block (Bottom)Objects1
$0DB51FVertical pipe/bone/log object creation subroutine. $0DB52E, $0DB536, and $0DB543 determine which three Map16 tiles make up the object.Objects40
$0DB547Horizontal pipe/bone/log object creation subroutine. $0DB552, $0DB55A, and $0DB565 determine which three Map16 tiles make up the object.Objects34
$0DB583Main creation code for the yellow and green switch blocks. $0DB583 - Start of the code for the green block. $0DB587 - Map16 tiles (on page 1) for the filled-in blocks. $0DB589 - Map16 tiles (on page 0) for the outline blocks. $0DB58B - Start of the code for the yellow block. $0DB592 - Change F0 to D0, to invert the Green and Yellow Switch Palace blocks (solid before the Switch Palce, passable afterwards).Objects37
$0DB5B76A-Green Switch Palace Block after you beat its Palace (always Map16 page 1)Misc.1
$0DB5B86B-Yellow Switch Palace Block after you beat its Palace (always Map16 page 1)Misc.1
$0DB5B96A-Green Switch Palace Block after you beat its Palace (always Map16 page 0)Misc.1
$0DB5BA6B-Yellow Switch Palace Block after you beat its Palace (always Map16 page 0)Misc.1
$0DB72FMap16 data for the diagonal pipe (low bytes only).Objects16
$0DB73FMain creation code for the diagonal pipe object. $0DB7A6 - The Map16 tile (on page 1) at the bottom of the diagonal pipe object. (Default: $EB.)Objects107
$0DB916Main creation code for the red and blue switch blocks. Note that the actual object number varies per tileset. (It was really dumb that Nintendo did that...oh well.) $0DB916 - Start of the code for the blue block. $0DB91A - Map16 tiles (on page 0) for the outline blocks. $0DB91C - Map16 tiles (on page 1) for the filled-in blocks. $0DB91E - Start of the code for the red block. $0DB943 - Change F0 to D0 to invert the Blue and Red Switch Palace blocks.Objects76
$0DBC00Graphic data for Map16 tiles 073-0FF. Used by tileset 1 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics1128
$0DC068Graphic data for Map16 tiles 107-110. Used by tileset 1 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics80
$0DC0B8Graphic data for Map16 tiles 153-16D. Used by tileset 1 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics216
$0DC26BCastle entrance: MAP16 blocksObjects126
$0DC46FThe three Map16 tiles that make up the left side of the large stone castle block (tileset-specific object 3C in tileset 1). These are low bytes; the tiles are on page 1.Objects3
$0DC472The three Map16 tiles that make up the middle columns of the large stone castle block (tileset-specific object 3C in tileset 1). These are low bytes; the tiles are on page 1.Objects3
$0DC475The three Map16 tiles that make up the right side of the large stone castle block (tileset-specific object 3C in tileset 1). These are low bytes; the tiles are on page 1.Objects3
$0DC800Graphic data for Map16 tiles 073-0FF. Used by tileset 2 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics1128
$0DCC68Graphic data for Map16 tiles 107-110. Used by tileset 2 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics80
$0DCCB8Graphic data for Map16 tiles 153-16D. Used by tileset 2 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics216
$0DCE57Map16 data for the large circular line guide pieces (low bytes only).Objects16
$0DCE90Map16 data for the small circular line guide pieces (low bytes).Objects4
$0DCEBEMap16 data for the horizontal line guide end (extended object 55).Objects2
$0DCED8Map16 data for the vertical line guide end (extended object 56).Objects2
$0DD400Graphic data for Map16 tiles 073-0FF. Used by tileset 3 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics1128
$0DD868Graphic data for Map16 tiles 107-110. Used by tileset 3 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics80
$0DD8B8Graphic data for Map16 tiles 153-16D. Used by tileset 3 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics216
$0DDA9ETorpedo Ted Launcher: MAP16 tilesObjects4
$0DE12CThe low bytes of the map16 tiles that make up tileset-specific object 36 (four-sided ground square). The creation routine for this object at $0DE135 puts them on page 01.Objects9
$0DE300Graphic data for Map16 tiles 073-0FF. Used by tileset 4 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics1128
$0DE768Graphic data for Map16 tiles 107-110. Used by tileset 4 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics80
$0DE7B8Graphic data for Map16 tiles 153-16D. Used by tileset 4 only. 8 bytes per tile, upper left, lower left, upper right, lower right. TTTTTTTT YXPCCCTT format.Graphics216
$0DEADEGhost House entrance: MAP16 blocksObjects140
$0DEC7ELow bytes of the Map16 tiles used when generating extended objects 8A through 8D, the Green, Yellow, Blue, and Red switch palace switches. The creation code at [url=https://smwc.me/m/smw/rom/0DEC8E/]$0DEC8E[/url] puts them all on page 0.Objects16
$0DEC8EMain object creation code for Extended objects 8A through 8D, the Green, Yellow, Blue, and Red switch palace switches. The code at $0DEC96 (6 bytes long) keeps the objects from being generated if the associated flag (at [url=https://smwc.me/m/smw/ram/7E1F27/]$7E1F27[/url]) is set. The hack at [url=https://smwc.me/m/smw/rom/00EEB2/]$00EEB2[/url] will keep them from becoming solid if this code is changed. The Map16 tiles used (on page 0) are at [url=https://smwc.me/m/smw/rom/0DEC7E/]$0DEC7E[/url].Objects51