Difference between revisions of "Illusion of Gaia:RAM map"
From Data Crystal
FCandChill (talk | contribs) m |
m (another thing) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{rammap|game=Illusion of Gaia}} | |
− | + | <pre> | |
− | + | Bank $7e | |
− | + | ||
− | + | 0000-???? Scratch space. | |
− | + | ||
− | + | 0036-0037 Frame counter. Increased by 1 every NMI. | |
− | + | 0038-0039 ? | |
− | + | 003A-003D Map header data table address (hardcoded as $8D8000) | |
− | + | 003E-0041 Scratch variable for addresses of assets during map transitions | |
− | + | 0042-0045 Scratch variable for addresses of assets during map transitions | |
− | + | 0046-0049 Address of currently playing music | |
− | + | ||
− | + | 004E-0051 Long pointer to next available RAM address for new actors | |
− | + | 0052-0055 Long pointer to next available RAM address for new thinkers | |
− | + | 0056-0057 Base address of first actor in actor list | |
− | + | 0058-0059 Base address of last actor in actor list | |
− | + | 005A-005B Base address of first thinker in thinker list | |
− | + | 005C-005D Base address of last thinker in thinker list | |
− | + | ||
− | + | 0066-0067 Bitwise flags: DMA channels which are ready to be queued | |
− | + | 0068-0069 Next available DMA channel's bitwise flag, for COP #$01-02 | |
− | + | 006A-006B Next available DMA channel * #$10, i.e. offset for $43xx writes | |
− | + | ||
− | + | 0072-007B Scratch variables for graphics decompression | |
− | + | ||
− | + | 0080-0082 Base RAM address of CollisionLayer (hardcoded as #$7FC000) | |
− | + | ||
− | + | 0096-00A5 Staging memory for map rearrangement | |
− | + | ||
− | + | 00B4-00B5 Name of map has been shown and dismissed | |
− | + | 00B6-00CD Mode7 variables for world map movement | |
− | + | ||
− | + | 00D8-00D9 Next available manual OAM index | |
− | + | ||
− | + | 00E4-00E5 Timer used by end credits sequence | |
− | + | 00E6-00E9 Unused (but modified during end credits sequence) | |
− | + | ||
− | + | 00F0-00FF Room-specific memory: Castoth hand states, scratch space for Vamps and credits, maybe other uses | |
− | + | 0100-01FF Stack | |
− | + | 0200-0401 Actor position table for collision detection | |
− | + | 0402-0407 PHB; MVN $xx,$yy; PLB; RTS : rewritable mass memory mover, write banks at $0404 and JSR to here | |
− | + | 0408-040B XX,YY signed displacement added to Player this frame (for wind etc.) | |
− | + | 040C-040D Running-allowed timer: Player runs if they move while this is > 0; set to #$0D by D-pad input | |
− | + | 040E-040F ? (Set every frame, but never used?) | |
− | + | 0410-0421 Pseudo-random bytes; access RNG with COP #$23/24 | |
− | + | 0422-0621 OAM Low Table buffer | |
− | + | 0622-0641 OAM High Table buffer | |
− | + | 0642-0643 Index for the next map to load (checks multiple times a second to see if new value is in here which triggers next level load) | |
− | + | 0644-0645 ID of the current map (high byte should always be 0) | |
− | + | 0646-0647 2*ID of the current map | |
− | + | 0648-064B Map transition fade-out type, fade-in type, fade-out time modifier, fade-in time modifier | |
− | + | 064C-064F Player spawn position on new map | |
− | + | 0650-0653 Facing direction, map size, and camera settings for new map | |
− | + | 0654-0655 Working variable for screen settings during map transition | |
− | + | 0656-0657 Joypad bits: ABST on attack frame, others on attack and hold frames | |
− | + | 0658-0659 Working variable for ABST joypad button processing | |
− | + | 065a-065b Bitmask for disabling joypad buttons, e.g. when Will is hurt | |
− | + | 065c-065d Bitmask for disabling joypad buttons, e.g. on item screen | |
− | + | 065e-065f Joypad bits (IOG format), all buttons on attack and hold frames | |
− | + | 0660-0661 Like $065e but in SNES format at start of frame, then converted to IOG | |
− | + | 0662-0663 Direction button held timer for menu screens | |
− | + | ||
− | + | 0675-0677 Current map's sprite graphics data source address | |
− | + | 0678-067A Current map's tileset data source address (Layer 1?) | |
− | + | 067B-067D Current map's tileset data source address (Layer 2?) | |
− | + | 067E-0680 Current map's BG1 arrangement data source address | |
− | + | 0681-0683 Current map's BG2 arrangement data source address | |
− | + | 0684-0686 Current map's sprite data (0x10 map header) source address | |
− | + | 0687-0689 Current map's music address | |
− | + | 068A-0691 MapLayerX/EffectLayerX/MapLayerY/EffectLayerY camera position, for rendering engine use | |
− | + | 0692-0699 MapLayerX/EffectLayerX/MapLayerY/EffectLayerY dimensions | |
− | + | 069A-069D MapLayer/EffectLayer total size | |
− | + | 069E-06A1 MapLayer/EffectLayer base RAM addresses, bank $7E, hardcoded $A000 and $C000 | |
− | + | ||
− | + | 06AE-06BD Hardcoded RAM addresses (bank $7E) of RAM->VRAM mapping and staging tables | |
− | + | 06BE-06C5 MapLayerX/EffectLayerX/MapLayerY/EffectLayerY (?) camera position, editable copy for actors to write | |
− | + | ||
− | + | 06D6-06D9 Current camera offset XX,YY | |
− | + | 06DA-06DD Current camera bounds XX,YY | |
− | + | ||
− | + | 06EF-06EF Bitwise flags? $08 = "Push Mode-7 data to PPU at top of frame" | |
− | + | 06F0-06F1 Default actor parameter/properties | |
− | + | 06F2-06F3 Current map's music track ID | |
− | + | 06F4-06F5 During map transition, new map's music group | |
− | + | 06F6-06F7 Current map's music group | |
− | + | 06F8-06F9 Small buffer for writing bytes to APU channel 2 (plays sounds) | |
− | + | 06FA-06FB ? | |
− | + | 06FC-06FE OAM1 player data ROM source address, base | |
− | + | 06FF-0714 OAM1 ROM source addresses; copies #$40 bytes from each | |
− | + | ||
− | + | 0720-074F BG relative scroll/parallax workspace, e.g. for item screen and Inca clouds. | |
+ | |||
+ | 0800-08FF VRAM data write list, used e.g. during map rearrangement to change the VRAM tilemap | ||
+ | |||
+ | 099E-099F BG3 tilemap drawing: default tile mask | ||
+ | 09A0-09A1 BG3 tilemap drawing: target address | ||
+ | 09A2-09A3 Player's X position (left side of sprite, center height, in pixels) | ||
+ | 09A4-09A5 Player's Y position (left side of sprite, center height, in pixels) | ||
+ | 09A6-09A7 Player's X Position (left side of sprite, center height, in tiles) | ||
+ | 09A8-09A9 Player's Y Position (left side of sprite, center height, in tiles) | ||
+ | 09AA-09AB Current address of Player actor in actor tables | ||
+ | 09AC-09AD ? | ||
+ | 09AE-09AF Player attack and control flags | ||
+ | & $0001 Attack button pressed | ||
+ | & $0002 Player's body destroys obstacles | ||
+ | & $0004 ? | ||
+ | & $0008 Attack disabled | ||
+ | & $0010 Quake used, freeze world | ||
+ | & $0020 Player doesn't die at 0 HP | ||
+ | & $0040 ? | ||
+ | & $0080 ? | ||
+ | & $0100 ? | ||
+ | & $0200 Death in progress | ||
+ | & $0400 ? | ||
+ | & $0800 Special move pattern, e.g. Aura Ball or ladder | ||
+ | & $1000 ? | ||
+ | & $2000 Action in progress, can't walk | ||
+ | & $4000 ? | ||
+ | & $8000 Special sprite instead of normal Body | ||
+ | 09B0-09B1 Unused (would have been: tile type that animates player stuck on it, if using cop #$96-8) | ||
+ | 09B2-09B3 Current running speed if running east (positive) or west (negative) | ||
+ | 09B4-09B5 Current running speed if running south (positive) or north (negative) | ||
+ | |||
+ | 09CC-09CF Long-address of player sprite data in previous frame ($7F100C-D,8) | ||
+ | 09D0-09DF Psycho Dash position tracker, for symmetric movement | ||
+ | 09E0-09E1 Current attack damage bonus | ||
+ | 09E2-09E3 Additional ranged attack damage bonus | ||
+ | 09E4-09E5 Working variable for enemy damage processing | ||
+ | 09E6-09E7 Target's current HP | ||
+ | 09E8-09E9 Unused? | ||
+ | 09EA-09EB If set, show enemy health bar for up to 31 more frames? | ||
+ | 09EC-09ED Rendering flags for BG3/HUD/text, almost entirely unknown purposes | ||
+ | |||
+ | 09EE-09EF Direction of player's most recent attack (SNWE = 0123) | ||
+ | 09F0-09F3 Working variables for vampire boss coordinated attack | ||
+ | 09F4-09F5 Actor ID to tether camera to (usually Player, #$1000) | ||
+ | 09F6-09FF Unused? | ||
+ | |||
+ | [Save file: $0a00 - $0bfb] | ||
+ | 0A00-0A1F Game flags $00-$FF | ||
+ | 0A20-0A3F Game flags $100 and up, this section mostly map rearrangement / BG changes | ||
+ | 0A40-0A4F Chest opened flags | ||
+ | 0A50-0A5F More flags; 0-1 are Red Jewels, others are probably unused | ||
+ | 0A60-0A7F Room clear reward obtained flags | ||
+ | 0A80-0A9F Dungeon-level enemy-defeated flags | ||
+ | 0AA0-0AA1 Boss-defeated flags | ||
+ | 0AA2-0AA3 Special ability flags (0x01: Psycho Dash, 0x02: Psycho Slide, 0x04: Spin Dash, 0x10: Dark Friar, 0x20: Aura Barrier, 0x40: Earth Quaker) | ||
+ | 0AA4-0AAD Temp state tracking, e.g. raft progress, Ishtar progress, snake game counter, placed hieroglyph type, active Dark Space type | ||
+ | 0AAE-0AAF Unused? | ||
+ | 0AB0-0AB1 Number of Collected Red Jewels (BCD-FORMAT!) | ||
+ | 0AB2-0AB3 ? | ||
+ | 0AB4-0AC3 Item Menu Slots, item index for every slot | ||
+ | $00: Nothing | ||
+ | $01: Red Jewel | ||
+ | $02: Edward Castle Prison Key | ||
+ | $03: Inca Statue A | ||
+ | $04: Inca Statue B | ||
+ | $05: Inca Melody (unused) | ||
+ | $06: Herb | ||
+ | $07: Diamond: Shaped Block | ||
+ | $08: Wind Melody | ||
+ | $09: Lola's Melody | ||
+ | $0A: Large Roast | ||
+ | $0B: Mine Key A | ||
+ | $0C: Mine Key B | ||
+ | $0D: Memory Melody | ||
+ | $0E: Crystal Ball | ||
+ | $0F: Elevator Key | ||
+ | $10: Mu Palace Key | ||
+ | $11: Purification Stone | ||
+ | $12: Statue of Hope | ||
+ | $13: Rama Statue | ||
+ | $14: Magic Dust | ||
+ | $15: Blue Journal (unused) | ||
+ | $16: Lance's Letter | ||
+ | $17: Necklace Stones | ||
+ | $18: Will | ||
+ | $19: Teapot | ||
+ | $1A: Mushroom Drops | ||
+ | $1B: Bag of Gold (unused) | ||
+ | $1C: Black glasses | ||
+ | $1D: Gorgon Flower | ||
+ | $1E: Hieroglyph Plate 1 | ||
+ | $1F: Hieroglyph Plate 2 | ||
+ | $20: Hieroglyph Plate 3 | ||
+ | $21: Hieroglyph Plate 4 | ||
+ | $22: Hieroglyph Plate 5 | ||
+ | $23: Hieroglyph Plate 6 | ||
+ | $24: Aura | ||
+ | $25: Lola's Melody | ||
+ | $26: Father's Journal | ||
+ | $27: Crystal Ring | ||
+ | $28: Apple | ||
+ | 0AC4-0AC5 Number of the equipped Item Slot (valid values: 0x00 to 0x0F, or FFFF for none) | ||
+ | 0AC6-0AC7 Type of equipped item | ||
+ | 0AC8-0AC9 Player's special sprite index (e.g. if in Psycho Dash or other stopping actions) | ||
+ | 0ACA-0ACB Max HP | ||
+ | 0ACC-0ACD Max HP (scratch value for rendering?) | ||
+ | 0ACE-0ACF Current HP | ||
+ | 0AD0-0AD1 Current HP (scratch value for rendering?) | ||
+ | 0AD2-0AD3 ? | ||
+ | 0AD4-0AD5 Player's current Body (0x00: Will, 0x01: Freedan, 0x02: Shadow, others: transformations) | ||
+ | 0AD6-0AD7 Number of DP | ||
+ | 0AD8-0AD9 Number of hundreds of DP | ||
+ | 0ADA-0ADB Number of DP (scratch value for rendering?) | ||
+ | 0ADC-0ADD Player DEF | ||
+ | 0ADE-0ADF Player STR | ||
+ | 0AE0-0AE1 Max HP of hit enemy, for drawing health bar | ||
+ | 0AE2-0AE3 Current HP of hit enemy, for drawing health bar | ||
+ | 0AE4-0AE5 Timer until enemy health bar stops being rendered (default #$003c frames) | ||
+ | 0AE6-0AE7 Item screen BG tilemap selector | ||
+ | 0AE8-0AE9 Type of item currently active | ||
+ | 0AEA-0AEB ? | ||
+ | 0AEC-0AED Number of enemies on the current map (hexadecimal) | ||
+ | 0AEE-0AEF Number of enemies on the current map (decimal) | ||
+ | 0AF0-0AF3 Death Warp: Address of eight "COP #$26" parameters for new map after death | ||
+ | 0AF4-0AF7 Death Warp with DP: Address of parameters used if at least 100 DP are available | ||
+ | 0AF8-0AF9 If nonzero, show death message on next screen transition | ||
+ | 0AFA-0AFB Scratch counter for inventory screen | ||
+ | |||
+ | 0B02-0B03 Difficulty level; can't be set in-game; affects a few projectile attacks | ||
+ | 0B04-0B05 Default text speed (delay before each character) | ||
+ | 0B06-0B07 ? | ||
+ | 0B08-0B09 X position of Dark Space in outside map | ||
+ | 0B0A-0B0B X size of Dark Space in outside map | ||
+ | 0B0C-0B0D Y position of Dark Space in outside map | ||
+ | 0B0E-0B0F Y size of Dark Space in outside map | ||
+ | 0B10-0B11 Camera settings for outside map when leaving Dark Space | ||
+ | 0B12-0B13 Map ID outside of current Dark Space | ||
+ | 0B14-0B15 ? | ||
+ | 0B16-0B17 Psycho Dash upgrade level | ||
+ | 0B18-0B19 Psycho Slider upgrade level (does more damage) | ||
+ | 0B1A-0B1B Spin Dash upgrade level (lasts twice as long and does more damage) | ||
+ | 0B1C-0B1D Dark Friar upgrade level (0, 1, 2) | ||
+ | 0B1E-0B1F Aura Barrier upgrade level (creates 4 shields; should do more damage but a bug prevents this) | ||
+ | 0B20-0B21 Earthquaker upgrade level (no in-game effect) | ||
+ | 0B22-0B22 Amount of HP to heal | ||
+ | 0B23-0B23 ? | ||
+ | 0B24-0B25 Active sound style, 0-1 | ||
+ | 0B26-0B27 Active control style, 0-1 | ||
+ | 0B28-0B33 Hieroglyph types currently set in Pyramid wall, 2 bytes each (#$FFFF = slot empty) | ||
+ | |||
+ | 0BFC-0BFF Unused (placeholder for save file checksum) | ||
+ | |||
+ | 0C00-0CB1 Table of on-screen objects that might need rendering or collision detection | ||
+ | |||
+ | 0D52-0D53 Trigger for world map movement, then copied to $0D54 | ||
+ | 0D54-0D55 X coordinate of world map movement start point | ||
+ | 0D56-0D57 Y coordinate of world map movement start point | ||
+ | 0D58-0D59 Map movement text box index | ||
+ | 0D5A-0D5B Forced map movement, movement ID | ||
+ | |||
+ | 0D60-0D6B Sprite IDs for world map movement | ||
+ | 0D6C-0D6D Screen size and camera settings for new map after map movement | ||
+ | 0D6E-0D6E World map: preset destination map ID (if any) | ||
+ | 0D6F-0D6F World map: previous map ID | ||
+ | |||
+ | 0D72-0D73 Is music playing? 1 = Yes, 0 = No | ||
+ | 0D74-0D79 Place on map to show as the save point for each save file | ||
+ | 0D7A-0D7F HP to display for each save file | ||
+ | 0D80-0D85 DEF to display for each save file | ||
+ | 0D86-0D8B STR to display for each save file | ||
+ | 0D8C-0D8D Active (currently being played) save file, 0-2 | ||
+ | 0D8E-0D8F Control style selected on menu; 0 = Type1, 1 = Type2 | ||
+ | 0D90-0D91 Sound style selected on menu; 0 = Stereo, 1 = Mono | ||
+ | 0D92-0D93 Save file selected on menu, 0-2 | ||
+ | 0D94-0D95 Save file clicked most recently, 0-2 | ||
+ | 0D96-0D97 Empty save file selected for copying over on the menu, 0-2 | ||
+ | 0D98-0D99 Main menu option selected, 0-3 | ||
+ | 0D9A-0D9F HP,STR,DEF of one save file in BCD format; filled only when drawing the file menu | ||
+ | 0DA0-0DA5 Unused? | ||
+ | 0DA6-0DA7 Controller bit mask for IOG format, R button | ||
+ | 0DA8-0DA9 Controller bit mask for IOG format, L button | ||
+ | 0DAA-0DAB Controller bit mask for IOG format, B button (set by control style) | ||
+ | 0DAC-0DAD Controller bit mask for IOG format, A button (set by control style) | ||
+ | 0DAE-0DAF Controller bit mask for IOG format, Y button (set by control style) | ||
+ | 0DB0-0DB1 Controller bit mask for IOG format, X button | ||
+ | 0DB2-0DB3 Controller bit mask for IOG format, sTart button | ||
+ | 0DB4-0DB5 Controller bit mask for IOG format, Select button | ||
+ | |||
+ | 0DBC-0DBD Number of active actors | ||
+ | |||
+ | 0E00-0EFF Table of available RAM addresses for new actors | ||
+ | |||
+ | 0F00-0FFF Main thinker table, in #$10-byte chunks | ||
+ | 1000-1FBF Main actor table, in #$30-byte chunks | ||
+ | 1FC0-1FFF Unused | ||
+ | |||
+ | 2000-27FF MapLayer tilemap RAM->VRAM mapping: maps RAM tiles $00-$FF to eight VRAM bytes | ||
+ | 2800-2FFF EffectLayer tilemap RAM->VRAM mapping | ||
+ | 3000-3021 Table of available RAM addresses for new thinkers | ||
+ | |||
+ | 3100-340F BG tilemap RAM->VRAM staging area | ||
+ | |||
+ | 3490-358F Item screen's backup of $0E00 - $0EFF | ||
+ | 3590-368F Item screen's backup of $3000 - $30FF | ||
+ | 3690-378F Item screen's backup of $0F00 - $0FFF | ||
+ | 3790-388F Item screen's backup of $7F0F00 - $7F0FFF | ||
+ | 3890-389B Item screen's backup of $06BE - $06C9 | ||
+ | 389C-38AB Item screen's backup of $004E - $005D | ||
+ | 38AC-38B1 Item screen's backup of $0656 - $065B | ||
+ | 38B2-38B3 ? | ||
+ | 38B4-3AB6 Item screen's backup of $7F0A00 - $7F0C02 | ||
+ | |||
+ | 4000-6FFF Decompressed spritesets, sprite data; possibly other map load data too | ||
+ | 7000-9FFF During map load, contains sprite and BG tiles before they are pushed into VRAM. After map load, this memory is free. Some actors put HDMA tables here. | ||
+ | A000-BFFF MapLayer tilemap; $B000 and above are also the map screen (mode 7) tilemap | ||
+ | C000-DFFF EffectLayer tilemap and map screen (mode 7) tilemap | ||
+ | E000-EFFF Map screen (mode 7) tilemap | ||
+ | |||
+ | |||
+ | |||
+ | Bank $7f | ||
+ | |||
+ | 0000-00FF Tile properties (passable, wall, etc.) of every type of MapLayer tile; used during map load | ||
+ | 0100-01FF Tile properties of every type of EffectLayer tile; used during map load | ||
+ | 0200-09FF BG3 tilemap (pause screen, status bar, etc.) | ||
+ | 0A00-0BFF Palette data | ||
+ | 0C00-0C02 Color data for palette arithmetic (e.g. translucency) | ||
+ | 0C03-0C06 Source address for optional DMA during VBlank ($0C06 is ignored) | ||
+ | 0C07-0C08 Target VRAM word-address for optional DMA during VBlank | ||
+ | 0C09-0C0A DMA transfer size | ||
+ | |||
+ | 0F00-0FFF Additional thinker data, in #$10-byte chunks | ||
+ | 1000-1FBF Additional actor data, in #$30-byte chunks | ||
+ | 1FC0-1FFF Unused | ||
+ | 2000-2FBF Additional actor data, in #$30-byte chunks | ||
+ | 2FC0-2FFF Unused | ||
+ | |||
+ | 3100-???? Manual OAM table, renders sprite tiles without needing an actor | ||
+ | |||
+ | C000-DFFF CollisionLayer tilemap (base address stored at $7E0080 but hardcoded elsewhere) | ||
+ | E000-EFFF Item screen's backup of $7E1000 - $7E1FFF | ||
+ | F000-FFFF Item screen's backup of $7F1000 - $7F1FFF | ||
+ | </pre> | ||
{{Internal Data|game=Illusion of Gaia}} | {{Internal Data|game=Illusion of Gaia}} |
Latest revision as of 22:41, 11 April 2022
The following article is a RAM map for Illusion of Gaia.
Bank $7e 0000-???? Scratch space. 0036-0037 Frame counter. Increased by 1 every NMI. 0038-0039 ? 003A-003D Map header data table address (hardcoded as $8D8000) 003E-0041 Scratch variable for addresses of assets during map transitions 0042-0045 Scratch variable for addresses of assets during map transitions 0046-0049 Address of currently playing music 004E-0051 Long pointer to next available RAM address for new actors 0052-0055 Long pointer to next available RAM address for new thinkers 0056-0057 Base address of first actor in actor list 0058-0059 Base address of last actor in actor list 005A-005B Base address of first thinker in thinker list 005C-005D Base address of last thinker in thinker list 0066-0067 Bitwise flags: DMA channels which are ready to be queued 0068-0069 Next available DMA channel's bitwise flag, for COP #$01-02 006A-006B Next available DMA channel * #$10, i.e. offset for $43xx writes 0072-007B Scratch variables for graphics decompression 0080-0082 Base RAM address of CollisionLayer (hardcoded as #$7FC000) 0096-00A5 Staging memory for map rearrangement 00B4-00B5 Name of map has been shown and dismissed 00B6-00CD Mode7 variables for world map movement 00D8-00D9 Next available manual OAM index 00E4-00E5 Timer used by end credits sequence 00E6-00E9 Unused (but modified during end credits sequence) 00F0-00FF Room-specific memory: Castoth hand states, scratch space for Vamps and credits, maybe other uses 0100-01FF Stack 0200-0401 Actor position table for collision detection 0402-0407 PHB; MVN $xx,$yy; PLB; RTS : rewritable mass memory mover, write banks at $0404 and JSR to here 0408-040B XX,YY signed displacement added to Player this frame (for wind etc.) 040C-040D Running-allowed timer: Player runs if they move while this is > 0; set to #$0D by D-pad input 040E-040F ? (Set every frame, but never used?) 0410-0421 Pseudo-random bytes; access RNG with COP #$23/24 0422-0621 OAM Low Table buffer 0622-0641 OAM High Table buffer 0642-0643 Index for the next map to load (checks multiple times a second to see if new value is in here which triggers next level load) 0644-0645 ID of the current map (high byte should always be 0) 0646-0647 2*ID of the current map 0648-064B Map transition fade-out type, fade-in type, fade-out time modifier, fade-in time modifier 064C-064F Player spawn position on new map 0650-0653 Facing direction, map size, and camera settings for new map 0654-0655 Working variable for screen settings during map transition 0656-0657 Joypad bits: ABST on attack frame, others on attack and hold frames 0658-0659 Working variable for ABST joypad button processing 065a-065b Bitmask for disabling joypad buttons, e.g. when Will is hurt 065c-065d Bitmask for disabling joypad buttons, e.g. on item screen 065e-065f Joypad bits (IOG format), all buttons on attack and hold frames 0660-0661 Like $065e but in SNES format at start of frame, then converted to IOG 0662-0663 Direction button held timer for menu screens 0675-0677 Current map's sprite graphics data source address 0678-067A Current map's tileset data source address (Layer 1?) 067B-067D Current map's tileset data source address (Layer 2?) 067E-0680 Current map's BG1 arrangement data source address 0681-0683 Current map's BG2 arrangement data source address 0684-0686 Current map's sprite data (0x10 map header) source address 0687-0689 Current map's music address 068A-0691 MapLayerX/EffectLayerX/MapLayerY/EffectLayerY camera position, for rendering engine use 0692-0699 MapLayerX/EffectLayerX/MapLayerY/EffectLayerY dimensions 069A-069D MapLayer/EffectLayer total size 069E-06A1 MapLayer/EffectLayer base RAM addresses, bank $7E, hardcoded $A000 and $C000 06AE-06BD Hardcoded RAM addresses (bank $7E) of RAM->VRAM mapping and staging tables 06BE-06C5 MapLayerX/EffectLayerX/MapLayerY/EffectLayerY (?) camera position, editable copy for actors to write 06D6-06D9 Current camera offset XX,YY 06DA-06DD Current camera bounds XX,YY 06EF-06EF Bitwise flags? $08 = "Push Mode-7 data to PPU at top of frame" 06F0-06F1 Default actor parameter/properties 06F2-06F3 Current map's music track ID 06F4-06F5 During map transition, new map's music group 06F6-06F7 Current map's music group 06F8-06F9 Small buffer for writing bytes to APU channel 2 (plays sounds) 06FA-06FB ? 06FC-06FE OAM1 player data ROM source address, base 06FF-0714 OAM1 ROM source addresses; copies #$40 bytes from each 0720-074F BG relative scroll/parallax workspace, e.g. for item screen and Inca clouds. 0800-08FF VRAM data write list, used e.g. during map rearrangement to change the VRAM tilemap 099E-099F BG3 tilemap drawing: default tile mask 09A0-09A1 BG3 tilemap drawing: target address 09A2-09A3 Player's X position (left side of sprite, center height, in pixels) 09A4-09A5 Player's Y position (left side of sprite, center height, in pixels) 09A6-09A7 Player's X Position (left side of sprite, center height, in tiles) 09A8-09A9 Player's Y Position (left side of sprite, center height, in tiles) 09AA-09AB Current address of Player actor in actor tables 09AC-09AD ? 09AE-09AF Player attack and control flags & $0001 Attack button pressed & $0002 Player's body destroys obstacles & $0004 ? & $0008 Attack disabled & $0010 Quake used, freeze world & $0020 Player doesn't die at 0 HP & $0040 ? & $0080 ? & $0100 ? & $0200 Death in progress & $0400 ? & $0800 Special move pattern, e.g. Aura Ball or ladder & $1000 ? & $2000 Action in progress, can't walk & $4000 ? & $8000 Special sprite instead of normal Body 09B0-09B1 Unused (would have been: tile type that animates player stuck on it, if using cop #$96-8) 09B2-09B3 Current running speed if running east (positive) or west (negative) 09B4-09B5 Current running speed if running south (positive) or north (negative) 09CC-09CF Long-address of player sprite data in previous frame ($7F100C-D,8) 09D0-09DF Psycho Dash position tracker, for symmetric movement 09E0-09E1 Current attack damage bonus 09E2-09E3 Additional ranged attack damage bonus 09E4-09E5 Working variable for enemy damage processing 09E6-09E7 Target's current HP 09E8-09E9 Unused? 09EA-09EB If set, show enemy health bar for up to 31 more frames? 09EC-09ED Rendering flags for BG3/HUD/text, almost entirely unknown purposes 09EE-09EF Direction of player's most recent attack (SNWE = 0123) 09F0-09F3 Working variables for vampire boss coordinated attack 09F4-09F5 Actor ID to tether camera to (usually Player, #$1000) 09F6-09FF Unused? [Save file: $0a00 - $0bfb] 0A00-0A1F Game flags $00-$FF 0A20-0A3F Game flags $100 and up, this section mostly map rearrangement / BG changes 0A40-0A4F Chest opened flags 0A50-0A5F More flags; 0-1 are Red Jewels, others are probably unused 0A60-0A7F Room clear reward obtained flags 0A80-0A9F Dungeon-level enemy-defeated flags 0AA0-0AA1 Boss-defeated flags 0AA2-0AA3 Special ability flags (0x01: Psycho Dash, 0x02: Psycho Slide, 0x04: Spin Dash, 0x10: Dark Friar, 0x20: Aura Barrier, 0x40: Earth Quaker) 0AA4-0AAD Temp state tracking, e.g. raft progress, Ishtar progress, snake game counter, placed hieroglyph type, active Dark Space type 0AAE-0AAF Unused? 0AB0-0AB1 Number of Collected Red Jewels (BCD-FORMAT!) 0AB2-0AB3 ? 0AB4-0AC3 Item Menu Slots, item index for every slot $00: Nothing $01: Red Jewel $02: Edward Castle Prison Key $03: Inca Statue A $04: Inca Statue B $05: Inca Melody (unused) $06: Herb $07: Diamond: Shaped Block $08: Wind Melody $09: Lola's Melody $0A: Large Roast $0B: Mine Key A $0C: Mine Key B $0D: Memory Melody $0E: Crystal Ball $0F: Elevator Key $10: Mu Palace Key $11: Purification Stone $12: Statue of Hope $13: Rama Statue $14: Magic Dust $15: Blue Journal (unused) $16: Lance's Letter $17: Necklace Stones $18: Will $19: Teapot $1A: Mushroom Drops $1B: Bag of Gold (unused) $1C: Black glasses $1D: Gorgon Flower $1E: Hieroglyph Plate 1 $1F: Hieroglyph Plate 2 $20: Hieroglyph Plate 3 $21: Hieroglyph Plate 4 $22: Hieroglyph Plate 5 $23: Hieroglyph Plate 6 $24: Aura $25: Lola's Melody $26: Father's Journal $27: Crystal Ring $28: Apple 0AC4-0AC5 Number of the equipped Item Slot (valid values: 0x00 to 0x0F, or FFFF for none) 0AC6-0AC7 Type of equipped item 0AC8-0AC9 Player's special sprite index (e.g. if in Psycho Dash or other stopping actions) 0ACA-0ACB Max HP 0ACC-0ACD Max HP (scratch value for rendering?) 0ACE-0ACF Current HP 0AD0-0AD1 Current HP (scratch value for rendering?) 0AD2-0AD3 ? 0AD4-0AD5 Player's current Body (0x00: Will, 0x01: Freedan, 0x02: Shadow, others: transformations) 0AD6-0AD7 Number of DP 0AD8-0AD9 Number of hundreds of DP 0ADA-0ADB Number of DP (scratch value for rendering?) 0ADC-0ADD Player DEF 0ADE-0ADF Player STR 0AE0-0AE1 Max HP of hit enemy, for drawing health bar 0AE2-0AE3 Current HP of hit enemy, for drawing health bar 0AE4-0AE5 Timer until enemy health bar stops being rendered (default #$003c frames) 0AE6-0AE7 Item screen BG tilemap selector 0AE8-0AE9 Type of item currently active 0AEA-0AEB ? 0AEC-0AED Number of enemies on the current map (hexadecimal) 0AEE-0AEF Number of enemies on the current map (decimal) 0AF0-0AF3 Death Warp: Address of eight "COP #$26" parameters for new map after death 0AF4-0AF7 Death Warp with DP: Address of parameters used if at least 100 DP are available 0AF8-0AF9 If nonzero, show death message on next screen transition 0AFA-0AFB Scratch counter for inventory screen 0B02-0B03 Difficulty level; can't be set in-game; affects a few projectile attacks 0B04-0B05 Default text speed (delay before each character) 0B06-0B07 ? 0B08-0B09 X position of Dark Space in outside map 0B0A-0B0B X size of Dark Space in outside map 0B0C-0B0D Y position of Dark Space in outside map 0B0E-0B0F Y size of Dark Space in outside map 0B10-0B11 Camera settings for outside map when leaving Dark Space 0B12-0B13 Map ID outside of current Dark Space 0B14-0B15 ? 0B16-0B17 Psycho Dash upgrade level 0B18-0B19 Psycho Slider upgrade level (does more damage) 0B1A-0B1B Spin Dash upgrade level (lasts twice as long and does more damage) 0B1C-0B1D Dark Friar upgrade level (0, 1, 2) 0B1E-0B1F Aura Barrier upgrade level (creates 4 shields; should do more damage but a bug prevents this) 0B20-0B21 Earthquaker upgrade level (no in-game effect) 0B22-0B22 Amount of HP to heal 0B23-0B23 ? 0B24-0B25 Active sound style, 0-1 0B26-0B27 Active control style, 0-1 0B28-0B33 Hieroglyph types currently set in Pyramid wall, 2 bytes each (#$FFFF = slot empty) 0BFC-0BFF Unused (placeholder for save file checksum) 0C00-0CB1 Table of on-screen objects that might need rendering or collision detection 0D52-0D53 Trigger for world map movement, then copied to $0D54 0D54-0D55 X coordinate of world map movement start point 0D56-0D57 Y coordinate of world map movement start point 0D58-0D59 Map movement text box index 0D5A-0D5B Forced map movement, movement ID 0D60-0D6B Sprite IDs for world map movement 0D6C-0D6D Screen size and camera settings for new map after map movement 0D6E-0D6E World map: preset destination map ID (if any) 0D6F-0D6F World map: previous map ID 0D72-0D73 Is music playing? 1 = Yes, 0 = No 0D74-0D79 Place on map to show as the save point for each save file 0D7A-0D7F HP to display for each save file 0D80-0D85 DEF to display for each save file 0D86-0D8B STR to display for each save file 0D8C-0D8D Active (currently being played) save file, 0-2 0D8E-0D8F Control style selected on menu; 0 = Type1, 1 = Type2 0D90-0D91 Sound style selected on menu; 0 = Stereo, 1 = Mono 0D92-0D93 Save file selected on menu, 0-2 0D94-0D95 Save file clicked most recently, 0-2 0D96-0D97 Empty save file selected for copying over on the menu, 0-2 0D98-0D99 Main menu option selected, 0-3 0D9A-0D9F HP,STR,DEF of one save file in BCD format; filled only when drawing the file menu 0DA0-0DA5 Unused? 0DA6-0DA7 Controller bit mask for IOG format, R button 0DA8-0DA9 Controller bit mask for IOG format, L button 0DAA-0DAB Controller bit mask for IOG format, B button (set by control style) 0DAC-0DAD Controller bit mask for IOG format, A button (set by control style) 0DAE-0DAF Controller bit mask for IOG format, Y button (set by control style) 0DB0-0DB1 Controller bit mask for IOG format, X button 0DB2-0DB3 Controller bit mask for IOG format, sTart button 0DB4-0DB5 Controller bit mask for IOG format, Select button 0DBC-0DBD Number of active actors 0E00-0EFF Table of available RAM addresses for new actors 0F00-0FFF Main thinker table, in #$10-byte chunks 1000-1FBF Main actor table, in #$30-byte chunks 1FC0-1FFF Unused 2000-27FF MapLayer tilemap RAM->VRAM mapping: maps RAM tiles $00-$FF to eight VRAM bytes 2800-2FFF EffectLayer tilemap RAM->VRAM mapping 3000-3021 Table of available RAM addresses for new thinkers 3100-340F BG tilemap RAM->VRAM staging area 3490-358F Item screen's backup of $0E00 - $0EFF 3590-368F Item screen's backup of $3000 - $30FF 3690-378F Item screen's backup of $0F00 - $0FFF 3790-388F Item screen's backup of $7F0F00 - $7F0FFF 3890-389B Item screen's backup of $06BE - $06C9 389C-38AB Item screen's backup of $004E - $005D 38AC-38B1 Item screen's backup of $0656 - $065B 38B2-38B3 ? 38B4-3AB6 Item screen's backup of $7F0A00 - $7F0C02 4000-6FFF Decompressed spritesets, sprite data; possibly other map load data too 7000-9FFF During map load, contains sprite and BG tiles before they are pushed into VRAM. After map load, this memory is free. Some actors put HDMA tables here. A000-BFFF MapLayer tilemap; $B000 and above are also the map screen (mode 7) tilemap C000-DFFF EffectLayer tilemap and map screen (mode 7) tilemap E000-EFFF Map screen (mode 7) tilemap Bank $7f 0000-00FF Tile properties (passable, wall, etc.) of every type of MapLayer tile; used during map load 0100-01FF Tile properties of every type of EffectLayer tile; used during map load 0200-09FF BG3 tilemap (pause screen, status bar, etc.) 0A00-0BFF Palette data 0C00-0C02 Color data for palette arithmetic (e.g. translucency) 0C03-0C06 Source address for optional DMA during VBlank ($0C06 is ignored) 0C07-0C08 Target VRAM word-address for optional DMA during VBlank 0C09-0C0A DMA transfer size 0F00-0FFF Additional thinker data, in #$10-byte chunks 1000-1FBF Additional actor data, in #$30-byte chunks 1FC0-1FFF Unused 2000-2FBF Additional actor data, in #$30-byte chunks 2FC0-2FFF Unused 3100-???? Manual OAM table, renders sprite tiles without needing an actor C000-DFFF CollisionLayer tilemap (base address stored at $7E0080 but hardcoded elsewhere) E000-EFFF Item screen's backup of $7E1000 - $7E1FFF F000-FFFF Item screen's backup of $7F1000 - $7F1FFF
Internal Data for Illusion of Gaia |
---|
ROM Map • RAM Map • Text Table • Notes • Tutorials |