Difference between revisions of "Bubble Bobble:RAM map"

From Data Crystal
Jump to: navigation, search
m (Fixed formatting.)
(Added all special item counters + general clean up)
Line 2: Line 2:
  
 
== Global Variables ==
 
== Global Variables ==
 +
 
*'''0401''' - Current Level (Level 1 = $01)
 
*'''0401''' - Current Level (Level 1 = $01)
 
*'''045D''' - Super Bubble Bobble switch
 
*'''045D''' - Super Bubble Bobble switch
 
*'''04C4''' - Altering this changes the enemy sprites. Probably an offset position for reading data from the pattern image.
 
*'''04C4''' - Altering this changes the enemy sprites. Probably an offset position for reading data from the pattern image.
  
 +
== Menu Variables ==
  
== Menu Variables ==
 
 
*'''0402''' - Option selected on main menu
 
*'''0402''' - Option selected on main menu
 
*'''0502-0506''' - Password letters (A-J = $00-$09)
 
*'''0502-0506''' - Password letters (A-J = $00-$09)
  
 +
== Player Variables ==
  
== Player Variables ==
 
 
*'''002E''' - P1 remaining lives
 
*'''002E''' - P1 remaining lives
 
*'''003F''' - P1 invincibility timer (odd = invisible, even = visible)
 
*'''003F''' - P1 invincibility timer (odd = invisible, even = visible)
 
*'''0042''' - P2 remaining lives
 
*'''0042''' - P2 remaining lives
 
*'''0053''' - P2 invincibility timer (odd = invisible, even = visible)
 
*'''0053''' - P2 invincibility timer (odd = invisible, even = visible)
 
  
 
== Counter Variables ==
 
== Counter Variables ==
These are the combined total for both players.
 
  
*'''0435''' - Counter for bubbles blown (E5DF)
+
Counter variables determine what kind of special item will appear at the start of the next level, according to specific player actions. When a counter reaches a certain threshold (from a table in ROM), the corresponding item code is loaded in $40B and the counter is reset to 0. If more than one counter reach their threshold, the lowest in the list has priority.
*'''0436''' - Counter for empty bubbles popped (E5E0)
 
*'''043A''' - Counter for number of times fallen through floor
 
*'''043B''' - Counter for fruits eaten
 
*'''0476''' - Counter for filled bubbles popped
 
  
Here's a list of arcade counters for anyone who is curious; I'm not sure how many are in the NES version or what order they're in.
+
*'''435''' - Bubbles Blown
<pre>
+
*'''436''' - Empty Bubbles Popped
E5DF = Bubbles Blown (0435 NES)
+
*'''437''' - Jumps on Bubble
E5E0 = Empty Bubbles Popped (0436 NES)
+
*'''438''' - Fire Bubbles Popped
E5E1 = Lightning Bubbles Popped
+
*'''439''' - Water Bubbles Popped
E5E2 = Fire bubbles popped
+
*'''43A''' - Times Fallen Through Floor
E5E3 = Water bubbles popped
+
*'''43B''' - Enemy Items Taken
E5E4 = Jumps
+
*'''43C''' - Enemies Killed by Water
E5E5 = Distance run
+
*'''43D''' - Enemies Killed by Lightning
E5E6 = Distance run 2
+
*'''43E''' - Enemies Killed by Fire
E5E7 = Wraparounds
+
*'''43F''' - Special Items Taken
E5E8 = Monster fruits (043B)
+
*'''440''' - Lightning Bubbles Popped
E5E9 = Fast sweeties
+
*'''441''' - Enemy Combo Kills (2 or more)
E5EA = rapid fire
+
*'''442''' - Point Items Taken
E5EB = long range
+
*'''443''' - Letter Bubbles Popped
e5ec = umbrellas
 
e5ed = clocks
 
e5ee = monsters drowned
 
e5ef = p1 joins
 
e5f0 = p2 joins
 
e5f3 = kills by fire bubble
 
e5f4 = kills by lightning
 
e5f6 = special items eaten
 
e5f7 = special fruits eaten
 
e5f8 = E
 
e5f9 = X
 
e5fa = T
 
e5fb = E
 
e5fc = N
 
e5fd = D
 
e5fe = hurry up
 
e5ff = yellow/red crosses
 
e600 = water cross
 
e601 = books
 
e602 = purple lanterns
 
e604 = "JAX" on high score table
 
e605 = flamingo
 
e606 = kit
 
e607 = ...
 
e608 = entries of 'I.F', 'MTJ', 'NSO', 'KIM' or 'YSH' into high score table
 
e609 = crown
 
e60a = 777 levels
 
e60d = level 19, no deaths
 
e60e = level 29, no deaths
 
e60f = level 39, no deaths
 
e610 = level 49, no deaths
 
e611 = skel
 
</pre>
 
  
 
== Bonus Round Variables ==
 
== Bonus Round Variables ==
 +
 
*'''042F''' - Amount of remaining treasures during Bonus Game
 
*'''042F''' - Amount of remaining treasures during Bonus Game
 
*'''0430''' - Bonus Round timer
 
*'''0430''' - Bonus Round timer
Line 84: Line 47:
 
*'''045F''' - Bonus Round switch (set to $01+ to activate the bonus game, as if picking up the bottle)
 
*'''045F''' - Bonus Round switch (set to $01+ to activate the bonus game, as if picking up the bottle)
  
 +
== Level Variables ==
  
== Level Variables ==
 
 
*'''0405''' - Queue for EXTEND letters (Only 3 will come per level, any queue excess will be cleared at the beginning of the next level with openings)
 
*'''0405''' - Queue for EXTEND letters (Only 3 will come per level, any queue excess will be cleared at the beginning of the next level with openings)
 
*'''040D''' - Timer countdown until "Hurry!" appears. This set to 040E at the beginning of each level.  
 
*'''040D''' - Timer countdown until "Hurry!" appears. This set to 040E at the beginning of each level.  
Line 94: Line 57:
 
*'''04CE''' - Appearance of Elemental Bubbles ($00-$1F = Nothing/????, $20-$3F = Water Bubbles, $40-$5F = Fire Bubbles, $60+ Fire Bubbles over Water Bubbles and other odd combinations)
 
*'''04CE''' - Appearance of Elemental Bubbles ($00-$1F = Nothing/????, $20-$3F = Water Bubbles, $40-$5F = Fire Bubbles, $60+ Fire Bubbles over Water Bubbles and other odd combinations)
  
 +
== End Boss Variables ==
  
== End Boss Variables ==
 
 
*'''006F''' - Super Drunk's HP
 
*'''006F''' - Super Drunk's HP
  
 +
== Miscellaneous Variables ==
  
== Miscellaneous Variables ==
 
 
*'''0445-044B''' - Variables representing each digit of the last scorer's score. <br>
 
*'''0445-044B''' - Variables representing each digit of the last scorer's score. <br>
 
- 0445 is millions <br>
 
- 0445 is millions <br>
Line 108: Line 71:
 
- 044A is tens <br>
 
- 044A is tens <br>
 
- 044B is ones <br>
 
- 044B is ones <br>
$27 seems to represent a blank space. These reset to $27 (36) at the beginning of each level. Could possibly be related to how the on-screen score information is redrawn.
 

Revision as of 17:34, 22 October 2013

Global Variables

  • 0401 - Current Level (Level 1 = $01)
  • 045D - Super Bubble Bobble switch
  • 04C4 - Altering this changes the enemy sprites. Probably an offset position for reading data from the pattern image.

Menu Variables

  • 0402 - Option selected on main menu
  • 0502-0506 - Password letters (A-J = $00-$09)

Player Variables

  • 002E - P1 remaining lives
  • 003F - P1 invincibility timer (odd = invisible, even = visible)
  • 0042 - P2 remaining lives
  • 0053 - P2 invincibility timer (odd = invisible, even = visible)

Counter Variables

Counter variables determine what kind of special item will appear at the start of the next level, according to specific player actions. When a counter reaches a certain threshold (from a table in ROM), the corresponding item code is loaded in $40B and the counter is reset to 0. If more than one counter reach their threshold, the lowest in the list has priority.

  • 435 - Bubbles Blown
  • 436 - Empty Bubbles Popped
  • 437 - Jumps on Bubble
  • 438 - Fire Bubbles Popped
  • 439 - Water Bubbles Popped
  • 43A - Times Fallen Through Floor
  • 43B - Enemy Items Taken
  • 43C - Enemies Killed by Water
  • 43D - Enemies Killed by Lightning
  • 43E - Enemies Killed by Fire
  • 43F - Special Items Taken
  • 440 - Lightning Bubbles Popped
  • 441 - Enemy Combo Kills (2 or more)
  • 442 - Point Items Taken
  • 443 - Letter Bubbles Popped

Bonus Round Variables

  • 042F - Amount of remaining treasures during Bonus Game
  • 0430 - Bonus Round timer
  • 0431 - P1 treasures collected in Bonus Round
  • 0433 - P2 treasures collected in Bonus Round
  • 045F - Bonus Round switch (set to $01+ to activate the bonus game, as if picking up the bottle)

Level Variables

  • 0405 - Queue for EXTEND letters (Only 3 will come per level, any queue excess will be cleared at the beginning of the next level with openings)
  • 040D - Timer countdown until "Hurry!" appears. This set to 040E at the beginning of each level.
  • 040E - What the "Hurry!" timer countdown (040D) is set to at the beginning of a level. Varies from level to level.
  • 044D - Remaining levels to be skipped by an umbrella. If > 0 when all the enemies on the level are defeated, you will being skipping levels. You can only skip 31 levels max. If the variable is set above $1F(31), skipping will occur again after the defeat of the enemies. This will continue until the variable = 0.
  • 045E - Timer going up (Item appearances/disappearances may be relative to it)
  • 04CD - Point Item position [on Level 1, it positions the item diagonally from the upper-left corner ($00) to the lower-right corner ($FF)]
  • 04CE - Appearance of Elemental Bubbles ($00-$1F = Nothing/????, $20-$3F = Water Bubbles, $40-$5F = Fire Bubbles, $60+ Fire Bubbles over Water Bubbles and other odd combinations)

End Boss Variables

  • 006F - Super Drunk's HP

Miscellaneous Variables

  • 0445-044B - Variables representing each digit of the last scorer's score.

- 0445 is millions
- 0446 is hundred thousands
- 0447 is ten thousands
- 0448 is thousands
- 0449 is hundreds
- 044A is tens
- 044B is ones