R.C. Pro-Am II/RAM map

From Data Crystal
Jump to navigation Jump to search

Chip tiny.png The following article is a RAM map for R.C. Pro-Am II.

  • (T) denotes temporary use. Don't mess with these.
  • Unless otherwise noted, a size of 04 means one byte per racer.
  • Plane bytes shared by plane weapons too ("06" range is not a typo).
  • Coordinates are listed as either "map" - the standard Cartesian layout,
or "room" - the isometric layout visible to the player.


Address    Size    Description
--------   ----    -----------
0x08C        02    (T) Attribute Table Address
0x090              (T) Repeat Counter
                       Tally
0x0A4        02    (T) Secondary Subroutine Address
                       Item Checkpoint Map Position
0x0A7              (T) Tile Assembly Nametable Address
0x0A8        02    (T) Primary Subroutine Address
0x0AA        02    Track Subsection Layout Address
0x0AE        02    Track Terrain Set Address
0x0B0        02    Track Terrain Map Address
0x0B8              (T) Car Sprite Copy
0x0B9              (T) Car Sprite Attributes Copy
                       Item Palette
0x0BA        02    (T) X On Screen
                       Horizontal Distance To Camera
0x0BC        02    (T) Y On Screen
                       Vertical Distance To Camera
0x0BF        3C    Pickup Status
                       bits 0-1 = player restriction, bit 2 = all players, bit 6 = obtained
0x0C4        04    Shop Sub-Menu Position
0x0FC              Track ID
0x0FD              Track Tileset
                       00 = grass, 01 = city, 02 = off-road
0x100        05    Hi-Score First Initial
                       bit 7 = animate initials (gets reset when hi-score table loaded)
0x105        05    Hi-Score Second Initial
0x10A        05    Hi-Score Third Initial
0x10F        05    Hi-Score "Track" Races
0x114        05    Hi-Score Continues Used
0x119        05    Hi-Score Points (low)
0x11E        05    Hi-Score Points (high)
0x123              Hi-Score Star Animation Timer
0x124              Hi-Score Star Animation State
0x125        24    Item X-Position
0x149        24    Item Y-Position
0x16E        50    Item Checkpoint Map
0x1BE        16    Item Sprites for Track
0x1D3              Shop Human Player Count (affects price of continues)
0x1D4        05    Boot-up Signature (SIMON)
0x1D9        27    Reserved for Stack
0x200       100    OAM Data
                       byte 1 = Y, byte 2 = sprite, byte 3 = palette, byte 4 = x
0x300              BGM Square Channel 1 Track Segment 
0x301              BGM Square Channel 1 Note Timer
0x302        02    BGM Square Channel 1 Note Address
0x304              BGM Square Channel 2 Track Segment
0x305              BGM Square Channel 2 Note Timer
0x306        02    BGM Square Channel 2 Note Address
0x308              BGM Triangle Channel Track Segment
0x309              BGM Triangle Channel Note Timer
0x30A        02    BGM Triangle Channel Note Address
0x30C              BGM Noise Channel Track Segment
0x30D              BGM Noise Channel Note Timer
0x30E        02    BGM Noise Channel Note Address
0x310              SFX Square Channel 1 Track
0x311              SFX Square Channel 1 Note Timer
0x312        02    SFX Square Channel 1 Note Address
0x314              SFX Square Channel 2 Track
0x315              SFX Square Channel 2 Note Timer
0x316        02    SFX Square Channel 2 Note Address
0x318              SFX Triangle Channel Track
0x319              SFX Triangle Channel Note Timer
0x31A        02    SFX Triangle Channel Note Address
0x31C              SFX Noise Channel Track
0x31D              SFX Noise Channel Note Timer
0x31E        02    SFX Noise Channel Note Address
0x320              BGM & Engine Square Channel 1 Duty-Volume
0x321              BGM & Engine Square Channel 1 Sweep
0x322        02    BGM & Engine Square Channel 1 Length
0x324              BGM & Engine Square Channel 2 Duty-Volume
0x325              BGM & Engine Square Channel 2 Sweep
0x326        02    BGM & Engine Square Channel 1 Length
0x328              BGM & Engine Triangle Channel Duty-Volume
0x329              BGM & Engine Triangle Channel "Sweep"
0x32A        02    BGM & Engine Triangle Channel Length
0x32C              BGM & Engine Noise Channel Duty-Volume
0x32D              BGM & Engine Noise Channel "Sweep"
0x32E        02    BGM & Engine Noise Channel Length
0x330              SFX Square Channel 1 Duty-Volume
0x331              SFX Square Channel 1 Sweep
0x332        02    SFX Square Channel 1 Length
0x334              SFX Square Channel 2 Duty-Volume
0x335              SFX Square Channel 2 Sweep
0x336        02    SFX Square Channel 1 Length
0x338              SFX Triangle Channel Duty-Volume
0x339              SFX Triangle Channel "Sweep"
0x33A        02    SFX Triangle Channel Length
0x33C              SFX Noise Channel Duty-Volume
0x33D              SFX Noise Channel "Sweep"
0x33E        02    SFX Noise Channel Length
0x340        02    Square Channel 1 Repeat Address
0x342              Square Channel 1 Repeat Count
0x343              Square Channel 1 LFO Depth
0x344        02    Square Channel 2 Repeat Address
0x346              Square Channel 2 Repeat Count
0x347              Square Channel 2 LFO Depth
0x348        02    Triangle Channel Repeat Address
0x34A              Triangle Channel Repeat Count
0x34B              Triangle Channel LFO Depth
0x34C        02    Noise Channel Repeat Address
0x34E              Noise Channel Repeat Count
0x34F              Noise Channel LFO Depth
0x351              Square Channel 1 Volume Envelope
0x352              Square Channel 1 Default Volume Release Time
0x353              Square Channel 1 Transposition
0x355              Square Channel 2 Volume Envelope
0x356              Square Channel 2 Volume Delay
0x357              Square Channel 2 Transposition
0x359              Triangle Channel Linear Envelope
0x35A              Triangle Channel Linear Delay
0x35B              Triangle Channel Transposition
0x35D              Noise Channel Volume Envelope
0x35E              Noise Channel Volume Delay
0x35F              Noise Channel Transposition
0x360              Square Channel 1 LFO Rate Default Time (enables LFO)
0x361              Square Channel 1 LFO Rate Timer
0x362              Square Channel 1 LFO Sync Default Time
0x363              Square Channel 1 LFO Sync Timer
0x364              Square Channel 2 LFO Rate Default Time
0x365              Square Channel 2 LFO Rate Timer
0x366              Square Channel 2 LFO Sync Default Time
0x367              Square Channel 2 LFO Sync Timer
0x368              Triangle Channel LFO Rate Default Time
0x369              Triangle Channel LFO Rate Timer
0x36A              Triangle Channel LFO Sync Default Time
0x36B              Triangle Channel LFO Sync Timer
0x36C              Noise Channel LFO Rate Default Time
0x36D              Noise Channel LFO Rate Timer
0x36E              Noise Channel LFO Sync Default Time
0x36F              Noise Channel LFO Sync Timer
0x370              Square Channel 1 Volume Envelope Activity
                       bits 0-6 = default volume envelope, bit 7 = apply
0x372              Square Channel 1 Volume Sustain Timer
0x374              Square Channel 2 Volume Envelope Activity
0x376              Square Channel 2 Volume Sustain Timer
0x37C              Noise Channel Volume Envelope Activity
0x37E              Noise Channel Volume Sustain Timer
0x390              Square Channel 1 Volume Target (bit 4 must be set)
0x391              Square Channel 1 Volume Release Timer
0x392              Square Channel 1 Dynamic Volume
                       00 = no dynamic volume, 01 = (de-)crescendo, 02 = tremolo 
0x393              Square Channel 1 Default Volume Sustain Time
0x394              Square Channel 2 Volume Target
0x395              Square Channel 2 Volume Release Timer
0x396              Square Channel 2 Dynamic Volume
0x397              Square Channel 2 Default Volume Sustain Time
0x398              Triangle Channel Length Target
0x39C              Noise Channel Volume Target
0x39D              Noise Channel Volume Release Timer
0x39E              Noise Channel Dynamic Volume
0x39F              Noise Channel Default Volume Sustain Time
0x3B1        02    Disused Audio Variables (never read)
0x3B7        02    Disused Audio Variables (never read)
0x3C1              Disused Audio Variable (never read)
0x3C7              (T) Working X-register Value
0x3C8              (T) Item Map X (high) Copy
0x3C9              (T) Working Y-register Value
0x3CA              (T) Working Iterator
                       Item Map Y (high) Copy
0x3CB              Game State & BGM Track (don't mess with this)
0x3CC        0C    Exhaust Smoke Sprites (3 per car)
0x432        04    Car Draw Order (0x432 = bottom, 0x435 = top)
0x436              Track Sections Total
0x437              Leading Player (determines CPU speed)
0x438        04    Catch-up Distance Remaining (players only)
0x43C              Frame Counter
0x43D              Starting Light Appearance Delay
0x43F              PPU Mask (clearing bits 3 or 4 will freeze the game)
0x443              Minigame Mode
                       00 = normal race, 01 = tug-o-war, 02 = drag race
0x444              Paused
0x445              Pause Spam Delay
0x446        02    Track Tile Attribute Table Address
0x448        02    Track Tile Square Assembly Address
0x44A              Track Lap Length
0x44C        02    Track Tilemap Address
0x44E              Nametable Column Write Address Low Byte (high byte always #22)
0x44F        02    Nametable Row Write Address
0x451        1E    Tile Column Data to Write
0x46F        20    Tile Row Data to Write
0x4CF              Attribute Table Row Iterator
                   Title & Hi-Score Screen Timer
0x4D0              Attribute Table Row Count
                   Title & Hi-Score Screen Delay
0x4D1              Attribute Table Row Address
0x4D2              Camera Map X (low) (relative to 0x530)
0x4D3              Camera Map X (high) (relative to 0x535)
0x4D4              Camera Map Y (low) (relative to 0x53A)
0x4D5              Camera Map Y (high) (relative to 0x53F)
0x4D6              Copy of 0x4D2 for Tile Updates
0x4D7              Copy of 0x4D4 for Tile Updates
0x4D8              Attribute Table Updates X-Offset (same as 0x4D2)
0x4D9              Attribute Table Updates Y-Offset 
0x4DA              Horizontal Scroll
0x4DB              Vertical Scroll
0x4DC              Based on 0x4D5 for Attribute Table Updates
0x4DD              Nametable Write Address (unpacked to 0x44F-0x450)
0x4DE              Copy of 0x4DC
0x4DF              Load New Tile Row Flag (set to #01)
0x4E0              Load New Tile Column Flag (set to #02)
0x4E1              Unknown Tile Update Flag (set to #04)
0x504        04    Map X (low)
0x508              Camera Target Map X (low)
0x509        04    Map X (high)
0x50D              Camera Target Map X (high)
0x50E        04    Copy of 0x504
0x512              Copy of 0x508
0x513        04    Copy of 0x509
0x517              Copy of 0x50D
0x518        04    Map Y (low)
0x51C              Camera Target Map Y (low)
0x51D        04    Map Y (high)
                       00 is center of map, y-axis is inverted)
0x521              Camera Target Map Y (high) 
0x522        04    Copy of 0x518
0x526              Copy of 0x51C
0x527        04    Copy of 0x51D
0x52B              Copy of 0x521
0x52C        04    Room X (low)
0x530              Camera Room X (low)
0x531        04    Room X (high)
0x535              Camera Room X (high)
0x536        04    Room Y (low)
0x53A              Camera Room Y (low)
0x53B        04    Room Y (high)
0x53F              Camera Room Y (high)
0x540        04    Map X (subpixel)
0x544              Camera Map X (subpixel)
0x545        04    Map Y (subpixel)
0x549              Camera Map Y (subpixel)
0x554        04    Track Position (high)
0x559        04    Current Track Section
0x55E        04    Laps Completed
0x563        04    Track Section Type
0x568        04    Copy of 0x563
0x56D        04    Track Position (low)
0x572        04    Air Height (integer)
0x576        04    Air Height (subpixel)
0x57A        04    Race Position
                       01 = 1st, 02 = 2nd, 03 = 3rd, 04 = 4th
0x57E        04    Shadow Distance (integer)
0x582        04    Shadow Distance (subpixel)
0x586        04    Z-Speed (integer)
0x58A        04    Z-Speed (fraction)
0x58E        04    Track Height
0x592        04    Speed (fraction)
0x596        04    Speed (integer)
0x59A        04    Steer Direction (fraction)
0x59E        04    Steer Direction (integer)
0x5A2        04    Real Direction (integer)
0x5A6        04    Real Direction (fraction)
0x5AA        04    Visual Direction (angle)
                       00 = northwest, rotate clockwise to 17
0x5AE        04    Catch-up Speed (players only)
0x5B2        04    Chevron Boost (integer)
0x5B6        04    Chevron Boost (fraction)
0x5BA        04    Tire Traction (low) 
0x5BE        04    Tire Traction (high)
0x5C2        04    Tire Traction (fraction)
0x5C6        04    Hit Timer
0x5CA        04    Big Hit Timer
0x5CE        04    Attacked Count
0x5D2        04    Acceleration Rate (low)
0x5D6        04    Acceleration Rate (high)
0x5DA        04    Deceleration Rate (low)
0x5DE        04    Deceleration Rate (high)
0x5EA        04    Car Sprite
             04    Continue Screen Text
0x5EE        04    Car Sprite Attributes
0x5F2        04    Accumulated Cash (high)
0x5F6        04    Accumulated Cash (low)
0x5FA        04    Track Minimum Edge (depends on section type)
0x5FE        04    Track Width
0x602        04    Human Player Catch-up
0x612        04    Max Speed
0x616        04    CPU Cruising Speed (used when ahead of player)
             04    CPU Tug-O-Truck Shift Speed (resets both trucks' speed when reached)
             04    CPU Drag Race Speed (varies by racer)
0x61A        04    CPU Safe Lead Speed (used when ahead 2+ checkpoints)
             04    Tug-O-Truck Max Speed (unused, value is hard-coded for player)
0x68E        04    Spin Timer
0x692        04    Cornering Behavior (glitches player, affects CPU steering)
0x69E        04    CPU Steering Behavior(?) (lock this and CPU will get stuck in a turn)
0x6AA        04    CPU Driving Style
0x6B6        04    Car Draw Depth (low)
0x6BA        04    Car Draw Depth (high)
0x6CA        04    Pole Position (randomized)
             04    Tug-O-Truck Position (00 vs. 02, 01 vs. 03)
0x6CE        04    Freeze Timer
0x6D2        04    Pulser Timer
0x6D6        04    Shield Timer
0x6DA        04    Respawn Flash Timer
0x6DE        04    Invincibility Timer
0x6E2              Starting Light Timer
0x6E3              Starting Light State
0x6E4              Heads-Up Display State
                       00 = map, 01 = hide display, 02 = warning w/klaxon, 03 = silent warning
0x6E5              Gamepad 1 State
0x6E6              Gamepad 2 State
0x6E7              Copy of 0x6E5
0x6E8              Copy of 0x6E6
0x6E9              Gamepad 1 Pressed
0x6EA              Gamepad 2 Pressed
0x6EB              Copy of 0x6E9
0x6EC              Copy of 0x6EA
0x6ED        02    Water Pattern Table Write Address (overwrites 1 of 4 tiles each frame)
0x6EF        06    Water Pattern Table Write Value (draws waves on water tiles)
0x6F5        02    Unused Water Pattern Table Write Values (always 00, never used)
0x700        04    Motor Level
0x704        04    Tire Level
0x708        04    Active Weapon (reset after race)
0x70C        04    Active Extra (reset after race)
0x710        04    Toy Model 
                       00 = truck, 01 = sports, 02 = formula
                       Note: can be set at title screen
0x714        04    Default Extra
0x718        04    Default Weapon
0x71C        04    CPU Shopping Pattern (determines upgrade order)
0x720        04    CPU Handicap (max 02, determines speed limits)
0x724        04    CPU Purchases
0x728        04    Buckshot Ammo
0x72C        04    Missile Ammo
0x730        04    Bomb Ammo
0x734        04    Lazer Ammo
0x738        04    Freeze Ammo
0x73C        04    Pulser Ammo
0x740        04    Shield Supply
0x744        04    Oil Slick Supply
0x748        04    Nitros Supply
0x74C        04    Car Active 
                       00 = display Continue option after race
                       01 = draw shadow, allow crossing finish, goto next race
0x750              Race Number
0x751        04    Shop Main Selection
                       00 = motor, 01 = tires, 02 = guns,
                       03 = extra, 04 = race, 05 = game over
0x755              Screen Display Type
                       00 = active race, 01 = static image (e.g. blank, preview), 
                       02 = parts shop, 03 = player entry, 04 = racer overview, 
                       05 = continue screen, 06 = title screen, 07 = hi-score table
0x756        04    Randomizer (32 bits, 0x756 = working value)
0x75A              Blank Screen (waits until VBLANK)
0x75B        04    Cash (low)
0x75F        04    Cash (high) (max glitchless cash is #270F or $99990)
0x763              Human Player Count
0x764        04    Car Status
                       bit 0 = invisible, bit 1 = on ice, bit 2 = off-screen,
                       bit 3 = turn right, bit 4 = turn left, 
                       bit 5 = behind background, bit 6 = finished, bit 7 = CPU
0x768        04    Mini-Game Button Pressed
                       40 = B button, 80 = A button
             04    CPU Status
                       bit 2 = ahead of lead player
0x76D        04    Finish Line Placement
0x771        04    Continues Remaining
0x775        04    Continues Used
0x77A              Ammo Purchased (bitmasked by player)
0x77B              Shield Purchased (bitmasked by player) 
0x77C              Oil Slick Purchased (bitmasked by player)
0x77D              Nitros Purchased (bitmasked by player)
0x77E              Continue Purchased (bitmasked by player) 
0x77F              Buckshot Purchased (bitmasked by player)
0x780              Missile Purchased (bitmasked by player)
0x781              Bomb Purchased (bitmasked by player)
0x782              Lazer Purchased (bitmasked by player)
0x783              Freeze Purchased (bitmasked by player)
0x784              Pulser Purchased (bitmasked by player)
0x785        04    Ammo Mark-up
0x789        04    Continue Mark-up
0x78D        04    Racer First Initial
0x791        04    Racer Second Initial
0x795        04    Racer Third Initial
0x799        04    Circuit Point Score (low)
0x79D        04    Circuit Point Score (high)
0x7A1        04    Collected Letters
                       bit 0 = I (2nd), bit 1 = I (1st), bit 2 = M,
                       bit 3 = A, bit 4 = O, bit 5 = R, bit 6 = P
0x7A6              First Place Car
0x7A7              Second Place Car
0x7A8              Third Place Car
0x7A9              Last Place Car
0x7AA        05    Plane Attack Pointer
                       ff = no more planes
                       max 2 planes, must be 3 bytes apart
0x7AF        05    Plane Map X (low)
0x7B4        05    Plane Map X (high)
0x7B9        05    Plane Map Y (low)
0x7BE        05    Plane Map Y (high)
0x7C3        05    Plane Animation Timer (integer)
0x7C8        05    Plane Animation Timer (fraction)
0x7CD        05    Plane Sprite Attributes
0x7D2        05    Plane Map X (subpixel)
0x7D7        05    Plane Map Y (subpixel)
0x7DC        05    Plane Room X (low)
0x7E1        05    Plane Map X (high)
0x7E6        05    Plane Room Y (low)
0x7EB        05    Plane Room Y (high)
0x7F0        06    Plane Sprites 
0x7F6        06    Plane General Timer