Contra (NES)/ROM map

From Data Crystal
< Contra (NES)
Revision as of 16:57, 15 July 2024 by Vermiceli (talk | contribs) (Added Usage Overview from github disassembly https://github.com/vermiceli/nes-contra-us/blob/main/docs/ROM%20Map.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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