Views: 992,673,603
14 users online: ageVerrly,  Anorakun, Dark Mario Bros, Ezel, FireSeraphim, George, GrenCarret, Isikoro, kyasarintsu, NewPointless, Russ, TeddyJi, Worl, wulv257 - Guests: 51 - Bots: 109 Users: 54,447 (2,093 active)
Latest: Novahamsber
Tip: The "Edit Animation Settings" tab in Lunar Magic is very convenient if you want to disable certain animations in the game to make room for your own graphics or ExAnimations.
Not logged in.
YI Memory Map - Waiting Addresses
Displaying 24 out of 24 waiting addresses. Show Moderated Addresses
Hexadecimal number for a partial address. 6-digit number for a full address. Use - to denote a range. Use , to list more than one address.
Enable JavaScript to use multiple regions.
Hold control to select multiple. Check "All" to select all at once.

Separate each individual keyword with spaces. Surround a phrase with quotes to look for the exact phrase, or with / to use a PCRE regular expression. Prepend with - to exclude a keyword or phrase, with + to require a whole word or phrase, or with -+ to exclude a whole word or phrase. ? matches any character, * matches any amount of characters.
Per Page: 25 50 75 100 150 500 All
RAM Address Length Type Description Details Submitter
$7E0127 1 byte Misc. Which tilemap queue to DMA
Default $00 (RAM queue)
Values $00 to $0C
$7E0220 1 byte Map Used during gamemode $#20 to determine which map event to run. Set when exiting level.

#$00 = no event
#$01-#$7F = unlock next level
#$80-#$FF = update high score (last seven bits are old high score)
$7E0CF9 2 bytes Misc. Flag to upload graphics from the Super FX buffer. Is the value positive then 0x2000 bytes are uploaded from $705800 into $5400 (i.e. the last four rows of the sprite graphics). Is the value negative then the VRAM destination is whatever is stored in $0CF9 & 0x7FE0 and the graphics come from $706800 instead. Upload size stays the same. MarioFanGamer
$7E0D0D 1 byte Misc. Special background colour HDMA activated. This tells the game that the background colour HDMA doesn't come from the level's background colour but rather from a hardcoded setting. MarioFanGamer
$7E0D27 2 bytes Misc. Enable flag for subscreen designation HDMA?? (1-3 stage) ($7E5040) Arnethegreat
$7E0D2B 2 bytes Misc. Enable flag for BG2 Horizontal Scroll HDMA ($7E5040) Arnethegreat
$7E0D2D 2 bytes Misc. Enable flag for BG2 Vertical Scroll HDMA ($7E51E4) Arnethegreat
$7E0D3B 2 bytes Misc. Enable flag for BG3 Horizontal Scroll and subscreen designation HDMA (ch 6 & 7)?? (Pond submarine sections) ($7E552C) Arnethegreat
$7E0D3D 2 bytes Misc. Enable flag for BG3 Horizontal Scroll HDMA ($7E51E4) Arnethegreat
$7E0D45 2 bytes Misc. Enable flag for BG3 Vertical Scroll HDMA ($7E5040) Arnethegreat
$7E19DA 1062 bytes Level Data Set and used during level load: This one holds the Map16 tile numbers of certain objects for the current tilemap. This allows the game to place different Map16 tiles in different tilesets while using the same object. MarioFanGamer
SRAM Address Length Type Description Details Submitter
$70004A 22 bytes Super FX Palette for the falling wall and spinning wooden platform (sprites 0x36 and 0x39). Each byte contains the individual colour i.e. only red, green or blue. These colours are then multiplied with the angle plus some constant which is then stored into the CG-RAM mirror. MarioFanGamer
$700086 2 bytes Controller The button which allows Yoshi to thrown an egg, same format as in $700072. MarioFanGamer
$700088 2 bytes Controller The button which allows Yoshi to lick an enemy, same format as in $700072. MarioFanGamer
$7001C2 2 bytes Player Physics Yoshi pushes a solid sprite (e.g. Chomp Rocks). If set, it sets the push timer to at least 0x0F and doesn't reset if Yoshi doesn't touch a wall. MarioFanGamer
$7001E6 2 bytes Misc. Timer until Yoshi is able to flutter again in a flutter chain. Set to $12 after a flutter is finished and decrements. Teyla
$701960 16 bytes Misc. Sprite scratch RAM. The direct page in sprites is set to $7960 so accesses from $00-$0F default to these inside sprites. MarioFanGamer
$701FE4 2 bytes Timer Frame counter for the wave effect on layer 3. Since this is only used in backgrounds with a wave effect like the sun background, it can be used as freeRAM if these backgrounds aren't currently used. MarioFanGamer
ROM Address Length Type Description Details Submitter
$00BE39 56 bytes ASM Sets up a DMA queue for NMI. The input is the next 8 bytes after the opcode with the following format:
dl source : dl destination : dw size
The return is corrected afterwards.
Example Code MarioFanGamer
$0280BD 108 bytes Sprite Palette Falling wall palettes. Palettes are stored in individual colours, in the order blue, green and red. It is indexed by the table at $0280B7 which in turn is indexed by the sprite palette and is copied to $70404A. MarioFanGamer
$0890E7 156 bytes Super FX Decompresses the HDMA colour gradient in ROM where the table's bank byte is in R0 and its low and high byte in R1. The resulting colour is stored into the Super FX buffer $705800.

Each gradient table is 48 bytes large resulting 24 different colours. The HDMA table is backwards i.e. the first colours are the bottom most colours and the last colours the top most colours in the final gradient.
The first 368 generated lines are smooth transitions where each tenth line is a different colour and the other generated 70 lines are a constant colour using in the compressed table last colour.
Calculation MarioFanGamer
$08DC4D Unknown Super FX Generates a layer 3 parallax and wave HDMA table. In addition, it also updates $701FE4 which is the frame counter/"angle" for the wave effect which only gets updated if R11 is zero. During the initialisation, R1 determines whether the table starts as without or with a wave effect.

In the loop, if the mode switch value is positive then decompress the table. Otherwise, switch the mode.
It first evaluates the parallax scroll by multiplying the layer 1 X position with the scroll factor for the current lines and takes bits 8-15 of the 32-bit for the scrolling value. This value is stored into the buffer up to the scrolling reaches Y position of the effect where the next values are evaluated.
If the wave effect is activated then the offset added to the scrolling is -sin(t) * rad with t being the frame counter/"angle" and rad being the amplitude/"radius". For each new line, t is increased by the "angle" stored in the fifth byte in the table.

This procedure is repeated for so long until 210 lines are evaluated.
Input Table Format MarioFanGamer
$09835F 477 bytes Super FX Super FX routine which draws Yoshi (puts the OAM tiles and sets the graphics pointer). It also draws Yoshi's tongue. MarioFanGamer
Tweaks Address Length Type Description Details Submitter
$0EBEA1 1 byte Sprite Palette Item Memory index at which Chomp Rock in 1-1 will use the special palette. Default [01]. BTD6_maker
Per Page: 25 50 75 100 150 500 All

The purpose of this site is not to distribute copyrighted material, but to honor one of our favourite games.

Copyright © 2005 - 2022 - SMW Central
Legal Information - Privacy Policy - Link To Us


Follow Us On

  • YouTube
  • Twitch
  • Twitter


  • Super Mario Bros. X Community
  • Mario Fan Games Galaxy
  • sm64romhacks