News: 11 March 2016 - Forum Rules
Current Moderators - DarkSol, KingMike, MathOnNapkins, Azkadellia, Danke

Author Topic: Super Mario Land 3 (Wario Land) RAM map  (Read 2230 times)

tigrou

  • Jr. Member
  • **
  • Posts: 22
    • View Profile
Super Mario Land 3 (Wario Land) RAM map
« on: December 30, 2012, 09:36:40 am »
Hello, I started to have a look at ram values in Super Mario Land 3 (Wario Land).

I wanted to post this in romhacking documents but it seems this kind of document are not accepted : "Documents containing only game specific RAM hacking are out of scope."

Here is what I found so far :

+----------------------------------------------------------------------------------------+
|RAM      |Purpose                                                                       |
|---------+------------------------------------------------------------------------------|
|         |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.                                                                     |
|         |                                                                              |
|         |a lot of information is enemy specific.                                       |
|         |                                                                              |
|         |actors that are not used anymore (status = 00) are recycled when need of a new|
|         |actor.                                                                        |
|A200-A2FF|                                                                              |
|         |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                                        |
|---------+------------------------------------------------------------------------------|
|A376     |indicate if level exit is open (00 : closed, 01 : rising up, 02 : open)       |
|---------+------------------------------------------------------------------------------|
|A600     |writing something here trigger sound effects                                  |
|---------+------------------------------------------------------------------------------|
|A805-A807|total player money                                                            |
|---------+------------------------------------------------------------------------------|
|A808     |hearts                                                                        |
|---------+------------------------------------------------------------------------------|
|A809     |lives                                                                         |
|---------+------------------------------------------------------------------------------|
|A80A     |wario status (00 : small, 01 : normal, 02 : bull, 03 : eagle, 04 : dragon)    |
|---------+------------------------------------------------------------------------------|
|         |rice beach completion.                                                        |
|         |                                                                              |
|         |each bit indicate if a specific level have been completed                     |
|A80B     |                                                                              |
|         |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                                                   |
|---------+------------------------------------------------------------------------------|
|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 has been activated (00 : inactive, 01 : active) |
|---------+------------------------------------------------------------------------------|
|A816     |this value is overwritten everytime a level check point is activated. value is|
|         |different for each level.                                                     |
|---------+------------------------------------------------------------------------------|
|A817     |indicate if game have been completed at least once                            |
|---------+------------------------------------------------------------------------------|
|         |control level transition                                                      |
|         |                                                                              |
|A8C4     |      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 shaker timer                                                           |
|---------+------------------------------------------------------------------------------|
|A94B     |wario invicibility timer                                                      |
|---------+------------------------------------------------------------------------------|
|A964-A965|remaining level time                                                          |
|---------+------------------------------------------------------------------------------|
|A97A-A97B|level coins collected                                                         |
|---------+------------------------------------------------------------------------------|
|A998     |wario flying timer                                                            |
|---------+------------------------------------------------------------------------------|
|AA0A     |flame thrower timer                                                           |
|---------+------------------------------------------------------------------------------|
|AC88     |level animation counter (moving platform, water, ...)                         |
|---------+------------------------------------------------------------------------------|
|         |this array maps level 16x16 blocks to hardware 8x8 tiles.                     |
|AD00-AEFF|                                                                              |
|         |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.                                                                       |
+----------------------------------------------------------------------------------------+
« Last Edit: January 16, 2013, 10:57:26 am by tigrou »

Drenn

  • Jr. Member
  • **
  • Posts: 94
    • View Profile
Re: Super Mario Land 3 (Wario Land) RAM map
« Reply #1 on: December 30, 2012, 10:27:45 am »
RHDN may not accept it as a document, but this is exactly the sort of thing datacrystal was made for. Nice job so far.
Zeldahacking.net: The hub for Zelda: Oracle of Ages and Seasons hacking. We have a discord!

tigrou

  • Jr. Member
  • **
  • Posts: 22
    • View Profile
Re: Super Mario Land 3 (Wario Land) RAM map
« Reply #2 on: January 01, 2013, 08:57:01 am »
done  8)