Wario Land: Super Mario Land 3/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
m (new addresses)
No edit summary
Line 1: Line 1:
{| border="1" cellpadding="1"
{| border="1" cellpadding="1"
|'''RAM'''  || '''Purpose'''
|'''RAM'''  || '''Purpose'''
|-
|A100-A1FF || related to active actors on screen like A200-A2FF
|-
|-
|A200-A2FF || active actors on the screen (enemies, bonuses, throwed coins, ...).
|A200-A2FF || active actors on the screen (enemies, bonuses, throwed coins, ...).
Line 7: Line 9:
enemies with throwable items (eg : boomerang) need a second actor to manage the item.
enemies with throwable items (eg : boomerang) need a second actor to manage the item.


a lot of information is enemy specific.
actors slots that are not used anymore (status = 00) are reused when need of a new actor.   
 
actors that are not used anymore (status = 00) are recycled when need of a new actor.   


only actors that have status = 02 are drawn.
only actors that have status = 02 are drawn.
Line 24: Line 24:


|-
|-
|A375 || writing something here terminate level
|A375 || writing something here terminate level (player is teleported to bonus screen)
|-
|-
|A376 || indicate if level exit is open (00 : closed, 01 : rising up, 02 : open)
|A376 || indicate if level exit (skull) is open (00 : closed, 01 : rising up, 02 : open)
|-
|-
|A600 || writing something here trigger sound effects
|A600-A6?? || trigger sound effects and music
|-
|-
|A805-A807 || total player money
|A805-A807 || total player money
Line 39: Line 39:
|-
|-
|A80B || rice beach completion.  
|A80B || rice beach completion.  
each bit indicate if a specific level have been completed
each bit indicate if a specific level of the map have been completed


total number of bits used can be different for each world.  
total number of bits used can be different for each world.  
Line 47: Line 47:
|A80C || mt. teapot completion
|A80C || mt. teapot completion
|-
|-
|A80D || numbers of levels completed
|A80D || numbers of levels completed (shown on pipe at file selection screen)
|-
|-
|A80E-A80F || treasures collected (1 bit per treasure, since there is 15 treasures one bit is unused)
|A80E-A80F || treasures collected (1 bit per treasure, since there is 15 treasures one bit is unused)
Line 61: Line 61:
|A814 || syrup castle completion
|A814 || syrup castle completion
|-
|-
|A815 || indicate if level check point has been activated (00 : inactive, 01 : active)
|A815 || indicate if level check point (skull) has been activated (00 : inactive, 01 : active). to use with A816.
|-
|-
|A816 || this value is overwritten everytime a level check point is activated. value is different for each level.
|A816 || this value is overwritten everytime a level check point is activated. value seems different for each level.
|-
|-
|A817 || indicate if game have been completed at least once
|A817 || indicate if game have been completed at least once (pipe at file selection screen will blink)
|-
|-
|A8C4 || control level transition
|A8C4 || control level transition
Line 91: Line 91:
|A917 || player blinking eyes timer (reset to zero if player make any move)
|A917 || player blinking eyes timer (reset to zero if player make any move)
|-
|-
|A93A || screen shaker timer
|A93A || screen shaking countdown timer
|-
|-
|A94B || wario invicibility timer
|A94B || wario invicibility countdown timer
|-
|-
|A964-A965 || remaining level time
|A964-A965 || remaining level time
Line 99: Line 99:
|A97A-A97B || level coins collected
|A97A-A97B || level coins collected
|-
|-
|A998 || wario flying timer
|A998 || wario flying countdown timer
|-
|-
|AA0A || flame thrower timer
|AA0A || flame thrower countdown timer
|-
|-
|AC88 || level animation counter (moving platform, water, ...)
|AC88 || level animation counter (moving platform, water, ...)
Line 109: Line 109:
there is 128 blocks in total, each defined by the 4 indexes of 8x8 tiles.
there is 128 blocks in total, each defined by the 4 indexes of 8x8 tiles.
|-
|-
|C000-DFFF || level 16x16 block indexes are decompressed here. level size is 256 x 32 blocks.
|AF00-AFFF || 8x8 visible sprites for actors (4 bytes for each). wario seems to be always the first.
  +00 : x position
  +01 : y position
  +02 : sprite index
  +03 : h/v flip / palette
|-
|C000-DFFF || all indexes of 16x16 blocks (for current level) are decompressed here. level is 256 x 32 blocks.
|}
|}

Revision as of 21:20, 21 January 2013

RAM Purpose
A100-A1FF related to active actors on screen like A200-A2FF
A200-A2FF active actors on the screen (enemies, bonuses, throwed coins, ...).

each actor take 32 bytes. there is a maximum of 8 actors.

enemies with throwable items (eg : boomerang) need a second actor to manage the item.

actors slots that are not used anymore (status = 00) are reused when need of a new actor.

only actors that have status = 02 are drawn.

          +00 : status 
                00 : inactive
                01 : out of screen (not visible) but still active
                02 : visible
          +01-02 : x position 
          +03-04 : y position 
          +0A : y position (relative to screen)
          +0B : x position (relative to screen)
          +0E : orientation (01 : right - 02 : left)
          +0F : animation counter
A375 writing something here terminate level (player is teleported to bonus screen)
A376 indicate if level exit (skull) is open (00 : closed, 01 : rising up, 02 : open)
A600-A6?? trigger sound effects and music
A805-A807 total player money
A808 hearts
A809 lives
A80A wario status (00 : small, 01 : normal, 02 : bull, 03 : eagle, 04 : dragon)
A80B rice beach completion.

each bit indicate if a specific level of the map have been completed

total number of bits used can be different for each world.

last bit generally indicate if world have been completed (a flag is then show on map)

A80C mt. teapot completion
A80D numbers of levels completed (shown on pipe at file selection screen)
A80E-A80F treasures collected (1 bit per treasure, since there is 15 treasures one bit is unused)
A810 stove canyon completion
A811 ss tea cup completion
A812 parsely woods completion
A813 sherbet land completion
A814 syrup castle completion
A815 indicate if level check point (skull) has been activated (00 : inactive, 01 : active). to use with A816.
A816 this value is overwritten everytime a level check point is activated. value seems different for each level.
A817 indicate if game have been completed at least once (pipe at file selection screen will blink)
A8C4 control level transition
      01 : show level title
      02 : warp player to start of level   
      03 : normal gameplay
      0A : warp to last door used (if no door entered, crashes)    
A900-A901 level scroll y
A902-A903 level scroll x
A905 game internal timer
A90F wario animation frame (when walking, swimming, ...)
A911-A912 player position y
A913-A914 player position x
A915 player animation frame (walking, swimming etc...)
A916 player horizontal or vertical flip, invert palette or half visible (bit 4-7)
A917 player blinking eyes timer (reset to zero if player make any move)
A93A screen shaking countdown timer
A94B wario invicibility countdown timer
A964-A965 remaining level time
A97A-A97B level coins collected
A998 wario flying countdown timer
AA0A flame thrower countdown timer
AC88 level animation counter (moving platform, water, ...)
AD00-AEFF this array maps level 16x16 blocks to hardware 8x8 tiles.

there is 128 blocks in total, each defined by the 4 indexes of 8x8 tiles.

AF00-AFFF 8x8 visible sprites for actors (4 bytes for each). wario seems to be always the first.
 +00 : x position
 +01 : y position
 +02 : sprite index
 +03 : h/v flip / palette
C000-DFFF all indexes of 16x16 blocks (for current level) are decompressed here. level is 256 x 32 blocks.