Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.

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

From Data Crystal
Jump to navigation Jump to search
No edit summary
(Added info + reformatted)
Line 1: Line 1:
{{rammap|game=Batman}}
{{rammap|game=Batman}}


{| border="1" cellpadding="1"
===Zero Page===
|'''RAM''' || '''Function''' || '''Detail'''
  Address Usage
|-
 
|0x001F || Current object slot || Used by AI loop function
  001F    Current object slot: Used by AI loop function
|-
  00A6    Current weapon selected
|0x00A6 || Current weapon selected || $00-Batman, $50(80)-Batarang, $60(96)-Ninja Stars, $C0(192)-Gun
              $00-Batman, $50(80)-Batarang, $60(96)-Ninja Stars, $C0(192)-Gun
|-
  00B4    Global timer
|0x00B4 || Global timer ||
  00B7    Health  
|-
  00B8    Amount of Ammo  
|0x00B7 || Health ||
  00BE    Lives
|-
  00C0    BG CHR Bank 0 (tiles 00-7F)
|0x00B8 || Amount of Ammo ||
  00C1    BG CHR Bank 1 (tiles 80-FF)
|-
  00C2    SPR CHR Bank 0 (tiles 00-3F)
|0x00BE || Lives ||
  00C3    SPR CHR Bank 1 (tiles 40-7F)
|-
  00C4    SPR CHR Bank 2 (tiles 80-BF)
|0x00D4 || Batman's X position ||
  00C5    SPR CHR Bank 3 (tiles C0-FF)
|-
  00D0    Batman's Y position (unit = screen)
|0x00D6 || Batman's Y position ||
  00D1    Batman's Y position (unit = pixel)
|-
  00D2    Batman's Y position (unit = subpixel)
|0x0540 || Objects' Action IDs ||
  00D3    Batman's X position (unit = screen)
|-
  00D4    Batman's X position (unit = pixel)
|0x0580 || Objects' X positions (high byte) ||
  00D5    Batman's X position (unit = subpixel)
|-
  00D6    Batman's on-screen Y position
|0x0590 || Objects' X positions (low byte) ||
  00D7    Batman's on-screen X position
|-
  00D8    Sprite scroll Y (unit = screen) Scrolls all entities visually,
|0x05A0 || Objects' Y positions (high byte) ||
  00D9    Sprite scroll Y (unit = pixel)  doesn't affect collision/physics.
|-
  00DA    Sprite scroll X (unit = screen)
|0x05B0 || Objects' Y Positions (low byte) ||
  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}}
{{Internal Data|game=Batman}}

Revision as of 22:51, 2 May 2020

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?