Difference between revisions of "Disney's Aladdin:RAM map"

From Data Crystal
Jump to navigation Jump to search
(Initial dump of RAM map)
 
(Updating with new addresses and comments)
Line 15: Line 15:
 
   7E000C  $0004  Variable use, often indirect address
 
   7E000C  $0004  Variable use, often indirect address
  
   7E0016 $0003 Sprite X
+
   7E004D $0001 Current Sprite Stun Timer
   7E0019 $0003 Sprite Y
+
   7E004E $0001 Index for story time tilemap
 +
  7E0050  $0002  Pointer for story time
 +
  7E0052  $0001  Story time timer
  
 
   7E0065  $0003  Variable use, often indirect address
 
   7E0065  $0003  Variable use, often indirect address
Line 26: Line 28:
 
   7E00A9  $0001  Password menu 1st slot
 
   7E00A9  $0001  Password menu 1st slot
  
 +
  7E0327  $0001  Index to DP RAM
 +
  7E0328  $0001  Stored to $0329, always $08
 +
  7E0329  $0001  Loop counter
 +
  7E032A  $0001  NMI flag, cleared in the idle loop @ $81BC6D
 
   7E032B  $0001  RNG seed 1
 
   7E032B  $0001  RNG seed 1
 
   7E032C  $0001  RNG seed 2
 
   7E032C  $0001  RNG seed 2
 
   7E032D  $0001  Render counter, does not include lag frames
 
   7E032D  $0001  Render counter, does not include lag frames
 
   7E032E  $0001  Frame counter, every frame/NMI
 
   7E032E  $0001  Frame counter, every frame/NMI
 +
  7E032F  $0001  Inc'd from $00 to $23, then reset @ $8394A4
 +
  7E0330  $0001  Dec'd from $23 to $00, then reset @ $8394A4
 +
  7E0331  $0001  Related to inputs, $02 = demo playback
  
 +
  7E033B  $0002  Index to demo input data
 +
  7E033D  $0001  Demo input, $80 = Jump, $40 = Dash, $02 = Left, $01 = Right
 +
  7E033E  $0001  Demo input timer
 +
  7E033F  $0001  Index to demo, $00 and $01 are actual demos, other scripted inputs beyond that
 +
  7E0340  $0001  UNUSED?
 +
  7E0341  $0002  Demo exit timer
 +
  7E0343  $0002  Time until demo starts, demo exit timer if secret credits
 +
 +
  7E0347  $0001  Invulnerability state, $80 at level clear, $7F at secret credits, $04 = iframes, $02 = knockback
 
   7E0348  $0002  Jump input mask
 
   7E0348  $0002  Jump input mask
 
   7E034A  $0002  Dash input mask
 
   7E034A  $0002  Dash input mask
 
   7E034C  $0002  Throw input mask
 
   7E034C  $0002  Throw input mask
   7E034E  $0002  Dash input mask
+
   7E034E  $0002  Hover input mask
  
 +
  7E0359  $0001  Cleared at title menu and every level load
 +
  7E035A  $0001  Chests opened
 
   7E035B  $0001  Credits (continues), stored as decimal
 
   7E035B  $0001  Credits (continues), stored as decimal
 
   7E035C  $0001  Current stage
 
   7E035C  $0001  Current stage
 
   7E035D  $0001  Current level
 
   7E035D  $0001  Current level
   7E035E  $0001 Current level, counted sequentially
+
   7E035E  $0002 Current level index
 
+
  7E035F  $0001  Equipment setup flag, $01 if respawning, $02 if demo
   7E0363  $0001  Aladdin's lives on HUD, stored as decimal  
+
  7E0360  $0001  Level checkpoint flag, used for first Jafar fight
 +
  7E0361  $0001  UNUSED?
 +
  7E0362  $0001  Aladdin's credit lives, applied after game over
 +
   7E0363  $0001  Aladdin's lives on HUD, stored as decimal
 
   7E0364  $0001  Aladdin's lives, stored as decimal
 
   7E0364  $0001  Aladdin's lives, stored as decimal
 
   7E0365  $0001  Aladdin's max hearts
 
   7E0365  $0001  Aladdin's max hearts
Line 53: Line 76:
 
   7E036D  $0001  Aladdin's cape on HUD
 
   7E036D  $0001  Aladdin's cape on HUD
 
   7E036E  $0001  Aladdin's cape
 
   7E036E  $0001  Aladdin's cape
 +
  7E036F  $0001  Equipment setup flag, $01 if respawning, $02 if demo
  
   7E0475 $0001  Rubies collected this stage
+
   7E0371  $0001  Flag related to music loading
 +
  7E0372  $0001  Flag related to music loading
 +
  7E0373  $0001  Unknown, cleared with Rubies below
 +
  7E0374  $0001  Unknown, cleared with Rubies below
 +
  7E0375 $0001  Rubies collected this stage
 
   7E0376  $0001  Total rubies collected, calculated at stage clear
 
   7E0376  $0001  Total rubies collected, calculated at stage clear
 
   7E0377  $0002  Controller 1 inputs
 
   7E0377  $0002  Controller 1 inputs
Line 60: Line 88:
 
   7E037B  $0002  Controller 1 new inputs
 
   7E037B  $0002  Controller 1 new inputs
 
   7E037D  $0002  Controller 2 new inputs
 
   7E037D  $0002  Controller 2 new inputs
 
+
  7E037F  $0002  Controller 1 inputs again
 +
  730381  $0002  Controller 1 new inputs again
 
   7E0383  $0001  Jump input held
 
   7E0383  $0001  Jump input held
 
   7E0384  $0001  Dash input held
 
   7E0384  $0001  Dash input held
Line 71: Line 100:
 
   7E038B  $0001  REG $212E Main Screen Window Mask
 
   7E038B  $0001  REG $212E Main Screen Window Mask
 
   7E038C  $0001  REG $212F Subscreen Window Mask
 
   7E038C  $0001  REG $212F Subscreen Window Mask
 +
 +
  7E0395  $0002  REG $211F Mode 7 Center X
 +
  7E0397  $0002  REG $2120 Mode 7 Center Y
  
 
   7E0399  $0001  REG $212C Main Screen Designation
 
   7E0399  $0001  REG $212C Main Screen Designation
 
   7E039A  $0001  REG $212D Subscreen Designation
 
   7E039A  $0001  REG $212D Subscreen Designation
 +
 +
  7E039D  $0001  REG $2105 Background Mode
  
 
   7E03A0  $0001  REG $2107 BG1 Tilemap Address Size
 
   7E03A0  $0001  REG $2107 BG1 Tilemap Address Size
Line 97: Line 131:
 
   7E03B4  $0001  REG $2132 Color Intensity - Blue
 
   7E03B4  $0001  REG $2132 Color Intensity - Blue
  
 +
  7E03B6  $0001  REG $420C HDMA Enable
 
   7E03B7  $0001  REG $4200 NMITIMEN
 
   7E03B7  $0001  REG $4200 NMITIMEN
 
   7E03B8  $0001  REG $2100 INIDISP
 
   7E03B8  $0001  REG $2100 INIDISP
 +
  7E03B9  $0001  APU Command sent to $2140
  
 
   7E03BB  $0001  SFX ring buffer index
 
   7E03BB  $0001  SFX ring buffer index
   7E03BD  $0001 SFX ring buffer max index?
+
  7E03BC  $0001  UNUSED?
 +
   7E03BD  $0002 SFX ring buffer max index?
 
   7E03BF  $0020  SFX ring buffer
 
   7E03BF  $0020  SFX ring buffer
  
 
   7E03DF  $0002  REG $2116 VMADDL
 
   7E03DF  $0002  REG $2116 VMADDL
 
   7E03E1  $0001  REG $4305 DAS0L
 
   7E03E1  $0001  REG $4305 DAS0L
 +
 +
  7E03F5  $0001  I-Frame timer
 +
 +
  7E03F8  $0001  Last APU command
 +
  7E03F9  $0001  Set to 1 while paused
 +
 +
  7E0821  $0001  Position based level complete flag
 +
  7E0822  $0002  Index to level complete positions
  
 
   7E0835  $0001  BG3 tilemap flag, 0 = skip BG3 tilemap update
 
   7E0835  $0001  BG3 tilemap flag, 0 = skip BG3 tilemap update
Line 111: Line 156:
 
   7E0849  $0002  Title menu cursor
 
   7E0849  $0002  Title menu cursor
  
 +
  7E0858  $0001  DMA transfer flag?
 +
  7E0859  $0001  DMA transfer flag?
 
   7E085A  $0002  REG $2116 VRAM address
 
   7E085A  $0002  REG $2116 VRAM address
 
   7E085C  $0002  REG $4302 source address
 
   7E085C  $0002  REG $4302 source address
Line 121: Line 168:
 
   7E0868  $0002  REG $4305 DMA size
 
   7E0868  $0002  REG $4305 DMA size
 
   7E086A  $0002  REG $2115 VRAM control
 
   7E086A  $0002  REG $2115 VRAM control
 +
 +
  7E08E2  $0001  $08 if credits remaining, $0F if no credits (game over)
 +
  7E08E3  $0001  ORA #$80 if damage taken
 +
 +
  7E08E6  $0001  Aladdin X subposition
 +
  7E08E7  $0002  Aladdin X position
 +
  7E08E9  $0001  Aladdin Y subposition
 +
  7E08EA  $0002  Aladdin Y position
 +
 +
  7E03EF  $0001  Aladdin travelling direction
 +
  7E03F0  $0001  Aladdin facing direction
 +
 +
  7E08F4  $0002  Aladdin X speed
 +
 +
  7E08F9  $0002  Aladdin Y speed
 +
 +
  7E0925  $0001  Apple cooldown timer
 +
 +
  7E0936  $0002  Abu X position
 +
 +
  7E093A  $0002  Abu Y position
  
 
   7E0B50  ????  Sprite RAM starts here
 
   7E0B50  ????  Sprite RAM starts here
 +
    +$16  $0003  Sprite X
 +
    +$19  $0003  Sprite Y
 +
    +$37  $????  Palette
 +
    +$4D  $????  Timer, stun too
 +
 +
  7E0B6C  $0001  Jafar hits remaining
 +
  7E0BBC  $0001  Farouk hits remaining
 +
  7E0C0C  $0001  Snake hits remaining
 +
 +
  7E141B  $0001  Damage taken flag
 +
  7E141C  $0001  Moving in air flag
 +
 +
  7E1420  $0001  Aladdin pose
 +
 +
  7E1423  $0001  Level completed flag
 +
  7E1424  $0001  Inc'd when Al dies
 +
 +
  7E1471  $0002  Another Abu X position
 +
  7E1473  $0002  Another Abu Y position
  
 
   7E1484  $0002  Another Aladdin X position
 
   7E1484  $0002  Another Aladdin X position
 
   7E1486  $0002  Another Aladdin Y position
 
   7E1486  $0002  Another Aladdin Y position
  
   7E1B14  $0001  Options menu cursor position
+
  7E1773  $0002  X position progress toward level complete
   7E1B15  $0001  Options menu BGM
+
 
  7E1B16  $0001  UNUSED?
+
   7E1B14  $0001  Options menu cursor position, has other uses outside of menu
   7E1B17  $0001  Options menu Control Type
+
   7E1B15  $0001  Options menu BGM, has other uses outside of menu
 +
   7E1B17  $0001  Options menu Control Type, has other uses outside of menu

Revision as of 10:09, 5 May 2022

REG = Register mirror

Address  Size   Description
-------  -----  ------------
 7E0002  $0001  SFX sync
 7E0003  $0001  Control Type, possibly other uses
 7E0004  $0001  Sound setting, $80 = Stereo, $00 = Monaural
 7E0005  $0001  Unknown, ORA'd with options before stored in $06
 7E0006  $0001  Combined options
 7E0009  $0001  DEBUG MODE, set non-zero to enable
 7E000B  $0001  No-pause timer, set to 16 frames when unpausing
 7E000C  $0004  Variable use, often indirect address
 7E004D  $0001  Current Sprite Stun Timer
 7E004E  $0001  Index for story time tilemap
 7E0050  $0002  Pointer for story time
 7E0052  $0001  Story time timer
 7E0065  $0003  Variable use, often indirect address
 7E00A5  $0001  Password menu cursor
 7E00A6  $0001  Password menu 4th slot
 7E00A7  $0001  Password menu 3rd slot
 7E00A8  $0001  Password menu 2nd slot
 7E00A9  $0001  Password menu 1st slot
 7E0327  $0001  Index to DP RAM
 7E0328  $0001  Stored to $0329, always $08
 7E0329  $0001  Loop counter
 7E032A  $0001  NMI flag, cleared in the idle loop @ $81BC6D
 7E032B  $0001  RNG seed 1
 7E032C  $0001  RNG seed 2
 7E032D  $0001  Render counter, does not include lag frames
 7E032E  $0001  Frame counter, every frame/NMI
 7E032F  $0001  Inc'd from $00 to $23, then reset @ $8394A4
 7E0330  $0001  Dec'd from $23 to $00, then reset @ $8394A4
 7E0331  $0001  Related to inputs, $02 = demo playback
 7E033B  $0002  Index to demo input data
 7E033D  $0001  Demo input, $80 = Jump, $40 = Dash, $02 = Left, $01 = Right
 7E033E  $0001  Demo input timer
 7E033F  $0001  Index to demo, $00 and $01 are actual demos, other scripted inputs beyond that
 7E0340  $0001  UNUSED?
 7E0341  $0002  Demo exit timer
 7E0343  $0002  Time until demo starts, demo exit timer if secret credits
 7E0347  $0001  Invulnerability state, $80 at level clear, $7F at secret credits, $04 = iframes, $02 = knockback
 7E0348  $0002  Jump input mask
 7E034A  $0002  Dash input mask
 7E034C  $0002  Throw input mask
 7E034E  $0002  Hover input mask
 7E0359  $0001  Cleared at title menu and every level load
 7E035A  $0001  Chests opened
 7E035B  $0001  Credits (continues), stored as decimal
 7E035C  $0001  Current stage
 7E035D  $0001  Current level
 7E035E  $0002  Current level index
 7E035F  $0001  Equipment setup flag, $01 if respawning, $02 if demo
 7E0360  $0001  Level checkpoint flag, used for first Jafar fight
 7E0361  $0001  UNUSED?
 7E0362  $0001  Aladdin's credit lives, applied after game over
 7E0363  $0001  Aladdin's lives on HUD, stored as decimal
 7E0364  $0001  Aladdin's lives, stored as decimal
 7E0365  $0001  Aladdin's max hearts
 7E0366  $0001  Aladdin's hearts on HUD
 7E0367  $0001  Aladdin's hearts
 7E0368  $0001  Aladdin's apples on HUD, stored as decimal
 7E0369  $0001  Aladdin's apples, stored as decimal
 7E036A  $0001  Aladdin's gems on HUD, stored as decimal
 7E036B  $0001  Aladdin's gems, stored as decimal
 7E036C  $0001  Scarab collected this level
 7E036D  $0001  Aladdin's cape on HUD
 7E036E  $0001  Aladdin's cape
 7E036F  $0001  Equipment setup flag, $01 if respawning, $02 if demo
 7E0371  $0001  Flag related to music loading
 7E0372  $0001  Flag related to music loading
 7E0373  $0001  Unknown, cleared with Rubies below
 7E0374  $0001  Unknown, cleared with Rubies below
 7E0375  $0001  Rubies collected this stage
 7E0376  $0001  Total rubies collected, calculated at stage clear
 7E0377  $0002  Controller 1 inputs
 7E0379  $0002  Controller 2 inputs
 7E037B  $0002  Controller 1 new inputs
 7E037D  $0002  Controller 2 new inputs
 7E037F  $0002  Controller 1 inputs again
 730381  $0002  Controller 1 new inputs again
 7E0383  $0001  Jump input held
 7E0384  $0001  Dash input held
 7E0385  $0001  Throw input held
 7E0386  $0001  Hover input held
 7E0387  $0001  New jump input
 7E0388  $0001  New dash input
 7E0389  $0001  New throw input
 7E038A  $0001  New hover input
 7E038B  $0001  REG $212E Main Screen Window Mask
 7E038C  $0001  REG $212F Subscreen Window Mask
 7E0395  $0002  REG $211F Mode 7 Center X
 7E0397  $0002  REG $2120 Mode 7 Center Y
 7E0399  $0001  REG $212C Main Screen Designation
 7E039A  $0001  REG $212D Subscreen Designation
 7E039D  $0001  REG $2105 Background Mode
 7E03A0  $0001  REG $2107 BG1 Tilemap Address Size
 7E03A1  $0001  REG $2108 BG2 Tilemap Address Size
 7E03A2  $0001  REG $2109 BG3 Tilemap Address Size
 7E03A3  $0001  UNUSED?
 7E03A4  $0001  REG $210B BG1/2 Character Address
 7E03A5  $0001  REG $210C BG3/4 Character Address
 7E03A6  $0001  REG $2126 Window 1 Left
 7E03A7  $0001  REG $2127 Window 1 Right
 7E03A8  $0001  REG $2128 Window 2 Left
 7E03A9  $0001  REG $2129 Window 1 Left
 7E03AA  $0001  REG $2123 Window 1/2 Select
 7E03AB  $0001  REG $2124 Window 3/4 Select
 7E03AC  $0001  REG $2125 Window Color Obj
 7E03AD  $0001  REG $212A BG Window Mask
 7E03AE  $0001  REG $212B Color OBJ Window Mask
 7E03AF  $0001  REG $2130 Color Addition Select
 7E03B0  $0001  REG $2131 Color Math
 7E03B1  $0001  REG $2106 Mosaic
 7E03B2  $0001  REG $2132 Color Intensity - Red
 7E03B3  $0001  REG $2132 Color Intensity - Green
 7E03B4  $0001  REG $2132 Color Intensity - Blue
 7E03B6  $0001  REG $420C HDMA Enable
 7E03B7  $0001  REG $4200 NMITIMEN
 7E03B8  $0001  REG $2100 INIDISP
 7E03B9  $0001  APU Command sent to $2140
 7E03BB  $0001  SFX ring buffer index
 7E03BC  $0001  UNUSED?
 7E03BD  $0002  SFX ring buffer max index?
 7E03BF  $0020  SFX ring buffer
 7E03DF  $0002  REG $2116 VMADDL
 7E03E1  $0001  REG $4305 DAS0L
 7E03F5  $0001  I-Frame timer
 7E03F8  $0001  Last APU command
 7E03F9  $0001  Set to 1 while paused
 7E0821  $0001  Position based level complete flag
 7E0822  $0002  Index to level complete positions
 7E0835  $0001  BG3 tilemap flag, 0 = skip BG3 tilemap update
 7E0849  $0002  Title menu cursor
 7E0858  $0001  DMA transfer flag?
 7E0859  $0001  DMA transfer flag?
 7E085A  $0002  REG $2116 VRAM address
 7E085C  $0002  REG $4302 source address
 7E085E  $0001  REG $4304 source bank
 7E085F  $0002  REG $4305 DMA size
 7E0861  $0002  REG $2115 VRAM control
 7E0863  $0002  REG $2116 VRAM address
 7E0865  $0002  REG $4302 source address
 7E0867  $0001  REG $4304 source bank
 7E0868  $0002  REG $4305 DMA size
 7E086A  $0002  REG $2115 VRAM control
 7E08E2  $0001  $08 if credits remaining, $0F if no credits (game over)
 7E08E3  $0001  ORA #$80 if damage taken
 7E08E6  $0001  Aladdin X subposition
 7E08E7  $0002  Aladdin X position
 7E08E9  $0001  Aladdin Y subposition
 7E08EA  $0002  Aladdin Y position
 7E03EF  $0001  Aladdin travelling direction
 7E03F0  $0001  Aladdin facing direction
 7E08F4  $0002  Aladdin X speed
 7E08F9  $0002  Aladdin Y speed
 7E0925  $0001  Apple cooldown timer
 7E0936  $0002  Abu X position
 7E093A  $0002  Abu Y position
 7E0B50   ????  Sprite RAM starts here
   +$16  $0003  Sprite X
   +$19  $0003  Sprite Y
   +$37  $????  Palette
   +$4D  $????  Timer, stun too
 7E0B6C  $0001  Jafar hits remaining
 7E0BBC  $0001  Farouk hits remaining
 7E0C0C  $0001  Snake hits remaining
 7E141B  $0001  Damage taken flag
 7E141C  $0001  Moving in air flag
 7E1420  $0001  Aladdin pose
 7E1423  $0001  Level completed flag
 7E1424  $0001  Inc'd when Al dies
 7E1471  $0002  Another Abu X position
 7E1473  $0002  Another Abu Y position
 7E1484  $0002  Another Aladdin X position
 7E1486  $0002  Another Aladdin Y position
 7E1773  $0002  X position progress toward level complete
 7E1B14  $0001  Options menu cursor position, has other uses outside of menu
 7E1B15  $0001  Options menu BGM, has other uses outside of menu
 7E1B17  $0001  Options menu Control Type, has other uses outside of menu