nes-contra-us/docs/ROM Map.md

87 lines
3.1 KiB
Markdown

Below is a detailed overview of the layout of the Contra ROM file's contents.
In summary, the ROM contains the following things
| 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 |
# ROM Map
* 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
## Visual Rom 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