add rom map

This commit is contained in:
Michael Miceli 2023-12-29 22:19:05 -05:00
parent 352e6ff15c
commit 7a751b3215
2 changed files with 104 additions and 13 deletions

View File

@ -77,21 +77,25 @@ YouTube called
Supplemental materials have been added that help explain interesting features of Supplemental materials have been added that help explain interesting features of
the code. Below are some of the more important documents. the code. Below are some of the more important documents.
* `docs/Aim Documentation.md` - documentation on how enemy aiming works * [docs/Aim Documentation.md](./docs/Aim%20Documentation.md) - documentation on
* `docs/Bugs.md` - bugs identified while disassembling how enemy aiming works
* `docs/Contra Control Flow.md` - detailed look at the game routine and level * [docs/Bugs.md](./docs/Bugs.md) - bugs identified while disassembling
routine flows. * [docs/Contra Control Flow.md](./docs/Contra%20Control%20Flow.md) - detailed
* `docs/Enemy Glossary.md` - documentation on every enemy type in the game look at the game routine and level routine flows.
* `docs/Enemy Routines.md` - documentation on level enemy configuration and * [docs/Enemy Glossary.md](./docs/Enemy%20Glossary.md) - documentation on every
random soldier generation. enemy type in the game
* `docs/Graphics Documentation.md` - documentation on pattern tables, * [docs/Enemy Routines.md](./docs/Enemy%20Routines.md) - documentation on level
nametables, palettes, palette cycling, super-tiles, background collision, and enemy configuration and random soldier generation.
compression. * [docs/Graphics Documentation.md](./docs/Graphics%20Documentation.md) -
* `docs/Sound Documentation.md` - documentation on the audio engine used as well documentation on pattern tables, nametables, palettes, palette cycling,
as information on all sounds from the game. super-tiles, background collision, and compression.
* [docs/ROM Map.md](./docs/ROM%20Map.md) - detailed description of ROM file
contents
* [docs/Sound Documentation.md](./docs/Sound%20Documentation.md) - documentation
on the audio engine used as well as information on all sounds from the game.
All sprites were captured and labeled for easy reference in All sprites were captured and labeled for easy reference in
`docs/sprite_library/README.md` [docs/sprite_library/README.md](./docs/sprite_library/README.md)
### Getting Started ### Getting Started

87
docs/Rom Map.md Normal file
View File

@ -0,0 +1,87 @@
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 |
|-------------------------|------------|
| Compressed Graphic Data | 49.177% |
| Code | 29.721% |
| Compressed Audio | 8.108% |
| Unused | 5.578% |
| Configuration Data | 4.024% |
| Sprite Data | 2.676% |
| Text Data | .695% |
# 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