Contra (NES)/ROM map: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(Added bullets for readability)
(Added Usage Overview from github disassembly https://github.com/vermiceli/nes-contra-us/blob/main/docs/ROM%20Map.md)
 
(4 intermediate revisions by 4 users not shown)
Line 1: Line 1:
*00000-0000F - iNES Header
{{rommap|game=Contra}}
*00010-03D7F - Unpatterened
 
*03D80-0400F - Empty
==Header==
*04010-07DFF - Patterened/Unpatterened
* <tt>00000-0000F</tt> = iNES ROM Header Data
*07E00-0800F - Empty
 
*08010-09187 - Patterened/Unpatterened
==Bank 0==
*0918D-0923F - Text (Title Screen)
* <tt>00010-03D7A</tt> = Enemy Logic
*09240-0925F - Patterened/Unpatterened
* <tt>03D7B-0400F</tt> = Unused
*09260-0B00F - Graphics
 
*0B010-0BD4F - Patterened/Unpatterened
==Bank 1==
*0BD50-0C00F - Empty
* <tt>04010-048F7</tt> = Sound Engine Code
*0C010-1000F - Patterened
* <tt>048F8-06EAC</tt> = Encoded Sound Data
*10010-138CF - Graphics
* <tt>06EAD-0703F</tt> = Code to Draw Sprites
*138D0-13C3A - Patterened
* <tt>07040-07DF4</tt> = Encoded Sprite Data
*13C3B-13DDF - Text (Credits)
* <tt>07DF5-0800F</tt> = Unused
*13DE0-1400F - Empty
 
*14010-16DEF - Graphics
==Bank 2==
*16DF0-1764F - Patternded
* <tt>08010-090A7</tt> = Level Supertile Screen Assignments
*17650-1800F - Empty
* <tt>090A8-0B001</tt> = Compressed Graphic Data
*18010-1B26F - Graphics
* <tt>0B002-0B328</tt> = Player State Logic
*1B270-1B2A5 - Patterened/Unpatterened
* <tt>0B329-0B428</tt> = Level Header Data
*1B2A6-1B3C3 - Text (In between levels / Stage names)
* <tt>0B429-0BD4B</tt> = Enemy Generation Logic
*1B3C4-1BD3F - Patterened/Unpatterened
* <tt>0BD4C-0C00F</tt> = Unused
*1BD40-1C00F - Empty
 
*1C010-1EEAF - Patterened/Unpatterened
==Bank 3==
*1EEB0-1EFCF - Enemy Data table
* <tt>0C010-0FE09</tt> = Supertile and Palette Data
*1F630-1FC0F - Empty
* <tt>0FE0A-0FFBE</tt> = End Level Routine Logic
*1FC10-2000F - Patterened
* <tt>0FFBF-1000F</tt> = Unused
*AND
 
*ROM: 1EEB0 Memory: EEA0
==Bank 4==
* <tt>10010-138C8</tt> = Compressed Graphic Data
* <tt>138C9-13BA4</tt> = Game End Routine Logic
* <tt>13BA5-13DD0</tt> = Ending Credits Data
* <tt>13DD1-1400F</tt> = Unused
 
==Bank 5==
* <tt>14010-1736D</tt> = Compressed Graphic Data
* <tt>1736E-17643</tt> = Automated Demo Input
* <tt>17644-1800F</tt> = Unused
 
==Bank 6==
* <tt>18010-1B271</tt> = Compressed Graphic Data
* <tt>1B272-1B3D6</tt> = Text Data
* <tt>1B3D7-1BD35</tt> = Weapon Logic
* <tt>1BD36-1C00F</tt> = Unused
 
==Bank 7==
* <tt>1C010-1F621</tt> = Game Engine Logic
* <tt>1F622-1FC0F</tt> = Unused
* <tt>1FC10-1FFDF</tt> = Differential Pulse Code Modulation (DPCM) Data
* <tt>1FFE0-2000F</tt> = NES Undocumented Footer
 
=Rom Usage Overview=
 
==Table==
{| class="wikitable sortable"
|+ Rom Usage
|-
! Type !! Percentage !! Bytes
|-
| Compressed Graphic Data || 49.179% || 64,461
|-
| Code || 29.726% || 38,962
|-
| Compressed Audio || 8.109% || 10,629
|-
| Unused || 5.585% || 7,320
|-
| Configuration Data || 4.027% || 5,278
|-
| Sprite Data || 2.677% || 3,509
|-
| Text Data || .697% || 913
|}
 
==Visual Map==
<pre>
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUUUUU
CCCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACCCSSSSSSSSSSSSSSSSSSSSSSSSSSSUUUUD
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCCDDCCCCCCCCCCCCCCCCCCUUUUUUG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCUG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCCTTTTUUUUGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDDDDDDUUUUUUUUUUUUUUUUUUUUG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTTTCCCCCCCCCCCCCCCCCCCUUUUUU
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUUUUUUUUUUUUAAAAAAAA
</pre>
 
Legend
* G = Compressed Graphic Data
* C = Code
* A = Compressed Audio
* U = Unused
* D = Configuration Data
* S = Sprite Data
* T = Text Data
 
 
{{Internal Data|game=Contra}}

Latest revision as of 16:57, 15 July 2024

Chip tiny.png The following article is a ROM map for Contra (NES).

Header

  • 00000-0000F = iNES ROM Header Data

Bank 0

  • 00010-03D7A = Enemy Logic
  • 03D7B-0400F = Unused

Bank 1

  • 04010-048F7 = Sound Engine Code
  • 048F8-06EAC = Encoded Sound Data
  • 06EAD-0703F = Code to Draw Sprites
  • 07040-07DF4 = Encoded Sprite Data
  • 07DF5-0800F = Unused

Bank 2

  • 08010-090A7 = Level Supertile Screen Assignments
  • 090A8-0B001 = Compressed Graphic Data
  • 0B002-0B328 = Player State Logic
  • 0B329-0B428 = Level Header Data
  • 0B429-0BD4B = Enemy Generation Logic
  • 0BD4C-0C00F = Unused

Bank 3

  • 0C010-0FE09 = Supertile and Palette Data
  • 0FE0A-0FFBE = End Level Routine Logic
  • 0FFBF-1000F = Unused

Bank 4

  • 10010-138C8 = Compressed Graphic Data
  • 138C9-13BA4 = Game End Routine Logic
  • 13BA5-13DD0 = Ending Credits Data
  • 13DD1-1400F = Unused

Bank 5

  • 14010-1736D = Compressed Graphic Data
  • 1736E-17643 = Automated Demo Input
  • 17644-1800F = Unused

Bank 6

  • 18010-1B271 = Compressed Graphic Data
  • 1B272-1B3D6 = Text Data
  • 1B3D7-1BD35 = Weapon Logic
  • 1BD36-1C00F = Unused

Bank 7

  • 1C010-1F621 = Game Engine Logic
  • 1F622-1FC0F = Unused
  • 1FC10-1FFDF = Differential Pulse Code Modulation (DPCM) Data
  • 1FFE0-2000F = NES Undocumented Footer

Rom Usage Overview

Table

Rom Usage
Type Percentage Bytes
Compressed Graphic Data 49.179% 64,461
Code 29.726% 38,962
Compressed Audio 8.109% 10,629
Unused 5.585% 7,320
Configuration Data 4.027% 5,278
Sprite Data 2.677% 3,509
Text Data .697% 913

Visual Map

CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUUUUU
CCCCCCCCCCCCCCCCCCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAACCCSSSSSSSSSSSSSSSSSSSSSSSSSSSUUUUD
DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCCDDCCCCCCCCCCCCCCCCCCUUUUUUG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCUG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGCCCCCCTTTTUUUUGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGDDDDDDUUUUUUUUUUUUUUUUUUUUG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTTTCCCCCCCCCCCCCCCCCCCUUUUUU
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCUUUUUUUUUUUUAAAAAAAA

Legend

  • G = Compressed Graphic Data
  • C = Code
  • A = Compressed Audio
  • U = Unused
  • D = Configuration Data
  • S = Sprite Data
  • T = Text Data