YI Memory Map
Displaying 150 out of 586 addresses.
View: moderated | waiting (30)
ROM Address | Length | Type | Description | Details |
---|---|---|---|---|
$008000 | 85 bytes | ASM | This is the starting address for YI. This takes care of basic initialization such as disabling IRQ, HDMA, DMA, clearing the SPC ports, enabling F-blank, disabling emulation mode, disabling decimal mode, initializing the direct page, and setting up the stack, among other things. | |
$0080F8 | 56 bytes | Debug | Routine used for frame advance debug code. Enabled by tweak at $0080F7. See details for controls. | Controls |
$00816A | 207 bytes | Pointer | Gamemode subroutine table, 3 bytes per entry. | |
$008275 | 2 bytes | Empty | Empty (filled with FF) | |
$008288 | 35 bytes | Subroutine | JSL to copy a block of memory into RAM. Input: A: Size of the block $20-$22: RAM Destination $23-$25: DMA Source |
|
$0082D0 | 19 bytes | ASM | Copies SPC program | |
$0083CD | 34 bytes | Subroutine | Subroutine that handles fading effects. | |
$00841F | 140 bytes | Subroutine | Music uploader subroutine | |
$00851C | 16 bytes | Music | Item-Denial table for each music track: $01-$7F: disable items, $00 and $80-$FF: enable items | |
$008543 | 142 bytes | ASM | Music uploader controller | |
$0085D2 | 10 bytes | Subroutine | Subroutine that plays sound effects | |
$00B039 | 768 bytes | Graphics | List of sprite GFX file numbers (1 byte each) that make up each sprite set (6 files per set). | |
$00BFF6 | 10 bytes | Empty | Empty (filled with FF) | |
$00DE44 | 35 bytes | Super FX | Calls a Super FX routine, Register X = Bank, Register A = Address | |
$00E101 | 37 bytes | Subroutine | Kill Yoshi Subroutine. This one kills Yoshi as he was killed by lava. Note that this routine is copied into RAM so jump to $7EE101 if GSU is active. $00E10F is Yoshi's initial Y speed in the death animation. $00E0FD (4 bytes) is the X speed Yoshi has got in the death animation, for facing right and left. |
|
$00E552 | 1024 bytes | Table | Lookup table for function y = 1/x, copied into $702200-$7025FF (Used by GSU to divide. It does not have a hardware divide so this lookup table is used instead) | |
$00F7A9 | 2039 bytes | Empty | Empty (filled with FF) | |
$00FFA0 | 5 bytes | Misc. | ROM build date and time. On a U 1.0 ROM, it's 11:19 am on July 31st, 1995 | |
$00FFA5 | 11 bytes | Empty | Empty (filled with FF) | |
$00FFB0 | 2 bytes | Misc. | ROM registration: Maker code (ASCII): "01" (Nintendo) | |
$00FFB2 | 4 bytes | Misc. | ROM registration: Game code (ASCII): "YI " | |
$00FFB6 | 6 bytes | Misc. | ROM registration: reserved (all $00) | |
$00FFBC | 1 byte | Misc. | ROM registration: Expansion FLASH Size ($00 = none) | |
$00FFBD | 1 byte | Misc. | ROM registration: Super FX RAM size ($05 = 32KB) | |
$00FFBE | 1 byte | Misc. | ROM registration: Special version ($00 = not special) | |
$00FFBF | 1 byte | Misc. | ROM registration: Chipset sub-type ($00) | |
$00FFC0 | 21 bytes | Misc. | ROM header: Cartridge title (ASCII): "YOSHI'S ISLAND " | |
$00FFD5 | 1 byte | Misc. | ROM header: ROM Makeup ($20 = LoROM) | |
$00FFD6 | 1 byte | Misc. | ROM header: Chipset ($15 = ROM + SuperFX + RAM + SRAM) | |
$00FFD7 | 1 byte | Misc. | ROM header: ROM size ($0B = 2MB) | |
$00FFD8 | 1 byte | Misc. | ROM header: SRAM size | |
$00FFD9 | 1 byte | Misc. | ROM header: Region ($01 = NTSC) | |
$00FFDA | 1 byte | Misc. | ROM header: $33 (fixed value) | |
$00FFDB | 1 byte | Misc. | ROM header: Version ($00 = 1.0) | |
$00FFDC | 2 bytes | Misc. | ROM header: Checksum complement (inverted bits) | |
$00FFDE | 2 bytes | Misc. | ROM header: Checksum | |
$00FFE0 | 4 bytes | Misc. | 2 unused native vectors | |
$00FFE4 | 2 bytes | Misc. | Native COP vector (unused) | |
$00FFE6 | 2 bytes | Misc. | Native BRK vector (unused) | |
$00FFE8 | 2 bytes | Misc. | Native ABORT vector (unused) | |
$00FFEA | 2 bytes | Misc. | Native NMI vector (vblank) | |
$00FFEC | 2 bytes | Misc. | Native RESET vector (unused) | |
$00FFEE | 2 bytes | Misc. | Native IRQ vector | |
$00FFF0 | 4 bytes | Misc. | 2 unused emulation vectors | |
$00FFF4 | 2 bytes | Misc. | Emulation COP vector (unused) | |
$00FFF6 | 2 bytes | Misc. | Emulation BRK vector (unused) | |
$00FFF8 | 2 bytes | Misc. | Emulation ABORT vector (unused) | |
$00FFFA | 2 bytes | Misc. | Emulation NMI vector (unused) | |
$00FFFC | 2 bytes | Misc. | Emulation RESET vector | |
$00FFFE | 2 bytes | Misc. | Emulation IRQ vector (unused) | |
$028000 | 72 bytes | Sprite Palette | Yoshi colors used in-level. Arranged by translevel number. | |
$0280BD | 108 bytes | Sprite Palette | Falling wall palettes. Palettes are stored in individual colours, in the order blue value, green value and red value. It is indexed by the table at $0280B7 which in turn is indexed by the sprite palette and is copied to $70404A. | |
$02FFD7 | 41 bytes | Empty | Empty (filled with FF) | |
$038000 | 1326 bytes | Pointer | Long pointers to sprite init routines in sprite ID order ($000 - $1B9) | |
$03852E | 1326 bytes | Pointer | Long pointers to sprite main routines in sprite ID order ($000 - $1B9) | |
$038A5C | 1326 bytes | Pointer | Long pointers to sprite head bop routines in sprite ID order ($000 - $1B9) | |
$038F8A | 1326 bytes | Pointer | Long pointers to sprite riding Yoshi routines in sprite ID order ($000 - $1B9) | |
$03A364 | 300 bytes | Subroutine | Subroutine that spawns sprites | |
$03FEEE | 274 bytes | Empty | Empty (filled with FF) | |
$0489B8 | 8 bytes | Sprite Palette | Shy Guy Colors (Green, Red, Yellow, Pink) | |
$04AC9C | 29 bytes | Subroutine | Kill Yoshi Subroutine. This one kills Yoshi as he was killed by a spike. | |
$05C6FD | 16 bytes | Misc. | Table of '?' bucket rotation effects | |
$05FFC4 | 60 bytes | Empty | Empty (filled with FF) | |
$06FEAA | 342 bytes | Empty | Empty (filled with FF) | |
$07FF47 | 185 bytes | Empty | Empty (filled with FF) | |
$089FD0 | 48 bytes | Empty | Empty (filled with 01) | |
$09835F | 477 bytes | Super FX | Super FX routine which draws Yoshi (copies tiles to OAM and sets the graphics pointer). It also draws Yoshi's tongue. | |
$09AF70 | 206 bytes | Empty | Empty (filled with 01) | |
$09EDCE | 624 bytes | Empty | Empty (filled with 01) | |
$09F18F | 687 bytes | Empty | Empty (filled with 01) | |
$0AEC2B | 4 bytes | Player Physics | Yoshi max speed for acceleration to apply, for right and left. | |
$0B9787 | 121 bytes | Empty | Empty (filled with 01) | |
$0BF3B7 | 3145 bytes | Empty | Empty (filled with FF) | |
$0CDACA | 24 bytes | Sprite Palette | Color of Kamek's first magic spell; 2 bytes per boss battle. | |
$0CDAE2 | 24 bytes | Sprite Palette | Color of Kamek's second magic spell; 2 bytes per boss battle. | |
$0CDAFA | 12 bytes | Music | Music value used for each boss battle: $0A is x-4 boss music (or for level header music setting 7 or 8, $0A becomes the longer intro used in piranha & raven), and $0C is x-8 boss music | |
$0CFF69 | 151 bytes | Empty | Empty (filled with FF) | |
$0DFC83 | 893 bytes | Empty | Empty (filled with FF) | |
$0EA131 | 7 bytes | Subroutine | Barney Bubble init subroutine | |
$0EFF82 | 126 bytes | Empty | Empty (filled with FF) | |
$0FE056 | 6058 bytes | Empty | Empty (filled with FF) | |
$0FFC80 | 896 bytes | Misc. Tilemap | Tilemap for the Title Screen logo | |
$108B05 | 16 bytes | Level Data | Table (one byte entries): The number of bits to copy for each piece of variable-sized header information, in level header order. The final $00 marks the end. Used by $108B15. |
|
$108B15 | 72 bytes | Subroutine | Level header decompression routine: copies variable-sized pieces of header data into separate addresses in RAM starting at $7E0134 | |
$11B0FB | 4 bytes | Bandit Mini-Game | Table of distances that the Gather Coins cannon rotates | |
$11B0FF | 4 bytes | Bandit Mini-Game | Table of distances that the Gather Coins cannon and platform will move along the white track | |
$11B103 | 4 bytes | Bandit Mini-Game | Table of speeds that the Gather Coins cannon rotates | |
$15FFD3 | 45 bytes | Empty | Empty (filled with FF) | |
$1681C7 | 766 bytes | Level Data | Level $00: object data | |
$17B781 | 384 bytes | Map | X-coordinates for checkpoints along Yoshi's walking path after beating a level; 8 bytes per level | |
$17B901 | 384 bytes | Map | Y-coordinates for checkpoints along Yoshi's walking path after beating a level; 8 bytes per level | |
$17BDAE | 16 bytes | Map | X-coordinates of each Yoshi on the world 1 map | |
$17BDBE | 16 bytes | Map | X-coordinates of each Yoshi on the world 2 map | |
$17BDCE | 16 bytes | Map | X-coordinates of each Yoshi on the world 3 map | |
$17BDDE | 16 bytes | Map | X-coordinates of each Yoshi on the world 4 map | |
$17BDEE | 16 bytes | Map | X-coordinates of each Yoshi on the world 5 map | |
$17BDFE | 16 bytes | Map | X-coordinates of each Yoshi on the world 6 map | |
$17BE0E | 16 bytes | Map | Y-coordinates of each Yoshi on the world 1 map | |
$17BE1E | 16 bytes | Map | Y-coordinates of each Yoshi on the world 2 map | |
$17BE2E | 16 bytes | Map | Y-coordinates of each Yoshi on the world 3 map | |
$17BE3E | 16 bytes | Map | Y-coordinates of each Yoshi on the world 4 map | |
$17BE4E | 16 bytes | Map | Y-coordinates of each Yoshi on the world 5 map | |
$17BE5E | 16 bytes | Map | Y-coordinates of each Yoshi on the world 6 map | |
$17E18E | 10 bytes | Map | (X, X, Y, B, A) Button sequence that unlocks the Mini-Battle menu | |
$17F7C3 | 1332 bytes | Level Data | Level data long pointers, two per level, in translevel ID order ($00-$DD): First is header/object/screen exit (all in one) Second is sprite data |
|
$18B3F2 | 74280 bytes | Layer 1 Tilemap | MAP16 page tables: data is word-sized SNES VRAM tilemap, split up into pages $00-$A7 and then further into 8-byte (4-word) chunks representing a single 16x16 tile (4 8x8 entries together) | |
$20B0B6 | 15992 bytes | Sound Effect | Waves crashing on island (BRR) | |
$20EF2F | 2339 bytes | Sound Effect | Seagulls on island (BRR) | |
$21B3FB | 19461 bytes | Empty | Empty (filled with FF) | |
$229333 | 682 bytes | Text | Intro cutscene message box text: "This paradise is Yoshi's Island, where all the Yoshies live. They are all in an uproar over the baby that fell from the sky. Wait! The baby seems to know where he wants to go. The bonds between the twins informs each of them where the other one is. The Yoshies decide to carry the baby to his destination via a relay system. Now begins a new adventure for the Yoshies and Baby Mario." |
|
$229825 | 140 bytes | Text | "Hovering Jump" message box text (from Welcome level) | |
$2298C7 | 225 bytes | Text | "Making Eggs" message box text (from level 1-1) | |
$22C20B | 38 bytes | Text | "Try this stage again?" text | |
$22C248 | 47 bytes | Text | "Restart from the middle ring?" text | |
$22D348 | 44216 bytes | Empty | Empty (filled with FF) | |
$248000 | 32768 bytes | Graphics | Uncompressed tile graphics, 4bpp, 32 bytes per 8x8 tile, 1024 tiles | |
$258000 | 32768 bytes | Graphics | Uncompressed tile graphics, 4bpp, 32 bytes per 8x8 tile, 1024 tiles | |
$268000 | 32768 bytes | Graphics | Block of two 256x128 Super FX bitmaps, separated by high & low nibble (map screen icons) | |
$278000 | 16384 bytes | Graphics | Block of two 256x64 Super FX bitmaps, separated by high & low nibble (selection screen & bonus screen icons) | |
$27C000 | 16384 bytes | Graphics | Uncompressed tile graphics, 4bpp, 32 bytes per 8x8 tile, 512 tiles | |
$288000 | 32768 bytes | Graphics | Block of two 256x128 Super FX bitmaps, separated by high & low nibble | |
$298000 | 32768 bytes | Graphics | Block of two 256x128 Super FX bitmaps, separated by high & low nibble | |
$2A8000 | 32768 bytes | Graphics | Block of two 256x128 Super FX bitmaps, separated by high & low nibble | |
$2B8000 | 32768 bytes | Graphics | Block of two 256x128 Super FX bitmaps, separated by high & low nibble | |
$2C8000 | 32768 bytes | Graphics | Block of two 256x128 Super FX bitmaps, separated by high & low nibble (mostly island cutscene) | |
$2D8000 | 26624 bytes | Graphics | Uncompressed tile graphics, 2bpp, 16 bytes per 8x8 tile, 1664 tiles | |
$2DE800 | 6144 bytes | Graphics | Uncompressed tile graphics, 4bpp, 32 bytes per 8x8 tile, 192 tiles | |
$2E8000 | 15360 bytes | Graphics | Block of two 256x60 Super FX bitmaps, separated by high & low nibble (French & German icon graphics) | |
$2EBC00 | 3305 bytes | Graphics | LC_LZ1 file $000: 4bpp, 4kb | |
$2EC8E9 | 3186 bytes | Graphics | LC_LZ1 file $001: 4bpp, 4kb | |
$2ED55B | 3289 bytes | Graphics | LC_LZ1 file $002: 4bpp, 4kb | |
$2EE234 | 3191 bytes | Graphics | LC_LZ1 file $003: 4bpp, 4kb | |
$2EEEAB | 2638 bytes | Graphics | LC_LZ1 file $004: 4bpp, 4kb | |
$2EF8F9 | 2419 bytes | Graphics | LC_LZ1 file $005: 4bpp, 4kb | |
$2F826C | 2892 bytes | Graphics | LC_LZ1 file $006: 4bpp, 4kb | |
$2F8DB8 | 2970 bytes | Graphics | LC_LZ1 file $007: 4bpp, 4kb | |
$2F9952 | 3096 bytes | Graphics | LC_LZ1 file $008: 4bpp, 4kb | |
$2FA56A | 2401 bytes | Graphics | LC_LZ1 file $009: 4bpp, 4kb | |
$2FAECB | 2789 bytes | Graphics | LC_LZ1 file $00A: 4bpp, 4kb | |
$2FB9B0 | 2241 bytes | Graphics | LC_LZ1 file $00B: 4bpp, 4kb | |
$2FC271 | 3120 bytes | Graphics | LC_LZ1 file $00C: 4bpp, 4kb | |
$2FCEA1 | 3353 bytes | Graphics | LC_LZ1 file $00D: 4bpp, 4kb | |
$2FDBBA | 3232 bytes | Graphics | LC_LZ1 file $00E: 4bpp, 4kb | |
$2FE85A | 2925 bytes | Graphics | LC_LZ1 file $00F: 4bpp, 4kb | |
$2FF3C7 | 1175 bytes | Graphics | LC_LZ1 file $010: 2bpp, 2kb | |
$2FF85E | 1420 bytes | Graphics | LC_LZ1 file $011: 2bpp, 2kb | |
$2FFDEA | 1139 bytes | Graphics | LC_LZ1 file $012: 2bpp, 2kb | |
$30825D | 388 bytes | Graphics | LC_LZ1 file $013: 2bpp, 2kb | |
$3083E1 | 1269 bytes | Graphics | LC_LZ1 file $014: 2bpp, 2kb | |
$3088D6 | 911 bytes | Graphics | LC_LZ1 file $015: 2bpp, 2kb | |