Batman: The Video Game (NES)/RAM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Made some minro corrections. Add "Details to the chart". Changed some verbiage, such as Bat Boomerand to Batarang.)
 
(7 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{rammap|game=Batman}}
{{rammap|game=Batman}}
<br>
 
{| border="1" cellpadding="1"
==Zero Page==
|'''RAM''' || '''Function''' || '''Detail'''
  Address Usage
|-
 
|0x00A6 || Current weapon selected || $00-Batman, $50(80)-Batarang, $60(96)-Ninja Stars, $C0(192)-Gun
  001F    Current object slot: Used by AI loop function
|-
  00A6    Current weapon selected
|0x00B7 || Health ||
              $00-Batman, $50(80)-Batarang, $60(96)-Ninja Stars, $C0(192)-Gun
|-
  00B4    Global timer 
|0x00B8 || Amount of Ammo ||
  00B7    Health  
|-
  00B8    Amount of Ammo  
|0x00D4 || Batman's X position ||
  00BE    Lives
|-
  00C0    BG CHR Bank 0 (tiles 00-7F)
|}
  00C1    BG CHR Bank 1 (tiles 80-FF)
  00C2    SPR CHR Bank 0 (tiles 00-3F)
  00C3    SPR CHR Bank 1 (tiles 40-7F)
  00C4    SPR CHR Bank 2 (tiles 80-BF)
  00C5    SPR CHR Bank 3 (tiles C0-FF)
  00D0    Batman's Y position (unit = screen)
  00D1    Batman's Y position (unit = pixel)
  00D2    Batman's Y position (unit = subpixel)
  00D3    Batman's X position (unit = screen)
  00D4    Batman's X position (unit = pixel)
  00D5    Batman's X position (unit = subpixel)
  00D6    Batman's on-screen Y position
  00D7    Batman's on-screen X position
  00D8    Sprite scroll Y (unit = screen) Scrolls all entities visually,
  00D9    Sprite scroll Y (unit = pixel)  doesn't affect collision/physics.
  00DA    Sprite scroll X (unit = screen)
  00DB    Sprite scroll X (unit = pixel)
 
  00E0    Left edge of view (unit = screen) stored in high nibble
  00E1    Left edge of view (unit = metatile [32×16 px]) stored in high nibble
  00E2    Right edge of view (unit = screen) stored in high nibble
  00E3    Right edge of view (unit = metatile) stored in high nibble
  00E4    OAM counter (used to index OAM while rendering sprites)
 
  00EA    View coordinates (unit = screen/high nibble = x, low nibble = y)
  00EB    View coordinates (unit = pixel/high nibble = x, low nibble = y)
 
  00F5    Joy 1 press
  00F6    Joy 2 press
  00F7    Joy 1 hold
  00F8    Joy 2 hold
 
  00FC    Scroll Y shadow register
  00FD    Scroll X shadow register
  00FE    PPU mask shadow register
  00FF    PPU control shadow register
 
==System RAM==
  Address  Usage
 
  0540    Objects' Action IDs 
  0580    Objects' X positions (high byte) 
  0590    Objects' X positions (low byte) 
  05A0    Objects' Y positions (high byte) 
  05B0    Objects' Y Positions (low byte) 
<br>
<br>
{{stub}}
{{stub}}
{{Internal Data|game=Batman}}

Latest revision as of 21:08, 28 January 2024

Chip tiny.png The following article is a RAM map for Batman: The Video Game (NES).

Zero Page

 Address  Usage
 
 001F     Current object slot: Used by AI loop function
 00A6     Current weapon selected
              $00-Batman, $50(80)-Batarang, $60(96)-Ninja Stars, $C0(192)-Gun
 00B4     Global timer  
 00B7     Health    
 00B8     Amount of Ammo    
 00BE     Lives 
 00C0     BG CHR Bank 0 (tiles 00-7F)
 00C1     BG CHR Bank 1 (tiles 80-FF)
 00C2     SPR CHR Bank 0 (tiles 00-3F)
 00C3     SPR CHR Bank 1 (tiles 40-7F)
 00C4     SPR CHR Bank 2 (tiles 80-BF)
 00C5     SPR CHR Bank 3 (tiles C0-FF)
 00D0     Batman's Y position (unit = screen)
 00D1     Batman's Y position (unit = pixel)
 00D2     Batman's Y position (unit = subpixel)
 00D3     Batman's X position (unit = screen)
 00D4     Batman's X position (unit = pixel)
 00D5     Batman's X position (unit = subpixel)
 00D6     Batman's on-screen Y position
 00D7     Batman's on-screen X position
 00D8     Sprite scroll Y (unit = screen) Scrolls all entities visually,
 00D9     Sprite scroll Y (unit = pixel)  doesn't affect collision/physics.
 00DA     Sprite scroll X (unit = screen)
 00DB     Sprite scroll X (unit = pixel)
 
 00E0     Left edge of view (unit = screen) stored in high nibble
 00E1     Left edge of view (unit = metatile [32×16 px]) stored in high nibble
 00E2     Right edge of view (unit = screen) stored in high nibble
 00E3     Right edge of view (unit = metatile) stored in high nibble
 00E4     OAM counter (used to index OAM while rendering sprites)
 
 00EA     View coordinates (unit = screen/high nibble = x, low nibble = y)
 00EB     View coordinates (unit = pixel/high nibble = x, low nibble = y)
 
 00F5     Joy 1 press
 00F6     Joy 2 press
 00F7     Joy 1 hold
 00F8     Joy 2 hold
 
 00FC     Scroll Y shadow register
 00FD     Scroll X shadow register
 00FE     PPU mask shadow register
 00FF     PPU control shadow register

System RAM

 Address  Usage
 
 0540     Objects' Action IDs   
 0580     Objects' X positions (high byte)  
 0590     Objects' X positions (low byte)   
 05A0     Objects' Y positions (high byte)  
 05B0     Objects' Y Positions (low byte)   


So very stubbly.
This page is rather stubbly and could use some expansion.
Are you a bad enough dude to rescue this article?