Rollerball (NES)/RAM map

From Data Crystal
< Rollerball (NES)
Revision as of 21:00, 28 January 2024 by Hawk (talk | contribs) (Hawk moved page Rollerball/RAM map to Rollerball (NES)/RAM map)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for Rollerball (NES).

RAM addresses and values in hex.

For Rollerball US version (PRG+CHR CRC32 hex 69635A6E)

000A: controller 1 held buttons (80=A 40=B 20=SELECT 10=START 08=up 04=down 02=left 01=right)
000B: controller 2 held buttons
000C: controller 1 new buttons
000D: controller 2 new buttons

0079: number of players (1 to 4)
007A: current player (0 = player 1, ..., 3 = player 4)

007B: current screen (0,1,2,3)
007C: transition flag (?) (FF= no transition in progress, 0,1,2,3 = transition to screen 0,1,2,3 in progress)


      (For Match Play, ball 1 is green, ball 2 is red)

      Ball positions
007E: ball 1 x subpixels
007F: ball 2 x subpixels
0080: ball 1 x pixels
0081: ball 2 x pixels
0082: ball 1 y subpixels
0083: ball 2 y subpixels
0084: ball 1 y pixels
0085: ball 2 y pixels

      Ball status
      0 = ball not in play (?)
      1 = ball motionless at the plunger or in a hole (?)
      2 = ball waiting on another screen (?)
      3 = ball moving normally on the visible screen (?)
0086: ball 1 status
0087: ball 2 status

      Ball screen (0,1,2,3 = screen; 4 = not in play (?) )
0088: ball 1 screen
0089: ball 2 screen

      Ball velocities (2-byte signed, in units of 6/256 of a pixel per frame)
008A: ball 1 x velocity LSB
008B: ball 2 x velocity LSB
008C: ball 1 x velocity MSB
008D: ball 2 x velocity MSB
008E: ball 1 y velocity LSB
008F: ball 2 y velocity LSB
0090: ball 1 y velocity MSB
0091: ball 2 y velocity MSB

0092: gravity modifier (?) (cycles through values 0,2,4,6,8,1,3,5,7)

009C: left flippers raised amount (0 to 7)
009D: right flippers raised amount (0 to 7)
00A0: left flippers velocity (?) (74=up, 8C=down)
00A1: right flippers velocity (?) (74=up, 8C=down)

00AF ~ 00B0: on game over screen, seconds and frames countdown timer until return to title screen. (starts at 30 seconds when scores appear)

0100 ~ 01FF: stack

0200 ~ 02FF: buffer sent to OAM

0301 ~ 0305: checked to tell if power on or reset. contains "SUPRA" if reset, RAM contents like high score kept from before

      Number of balls left (including current ball)
0306: player 1 balls left
0307: player 2 balls left
0308: player 3 balls left
0309: player 4 balls left

030A: screen transition (?) (FF = no screen transition in progress (?))

030F: collision flag (?) (changes to non-zero values on collisions, but freezing value has no effect)

             Skyscraper score digits (ones digit is always zero, not stored)
0311 ~ 0319: player 1 score
031A ~ 0322: player 2 score
0323 ~ 032B: player 3 score
032C ~ 0334: player 4 score
0335 ~ 033D: top score

             Match Play score digits
0341 ~ 0344: Elephant's score
0345 ~ 0348: Donkey's score


0370: LED text display to write to?

037B: screen(?) (0~3=Skyscraper, 4=Match Play, 6=Title)

06EB: bonus in thousands (decimal 0 ~ 199)
06EE: bonus multiplier (1 ~ 5)

070B: Elephant's games won
070C: Donkey's games won