Mega Man V: Level Data
Level Data is logically common level data, but is here used to describe the part of level data which is unique for every level. Screen Bank Data on the other hand, can be used by multiple levels.
Mega Man 5 is structured so that each a bank is spent for each level's Level Data. With a bank is meant a $2000-byte bank as the MMC3 Mapper divides them into. The bank is either loaded into memory area $8000-$9FFF or $A000-$BFFF when level data is read.
The different datas are at fixed offsets in the bank. Offsets below have iNES header added to them. To get the proper ROM address for a Level ID, one must add an multiplication of $2000 (depending on the Level ID) to the offsets below. For example, the Screen Layout Data for Gravityman's Level (ID #0) is at ROM address $910, while the Screen Layout Data for Waveman's Level (ID #1) is at ROM address $2910.
Contents of Level Data Bank
- 0910 to ???? (?) = Screen Layout Data
- 0960 to 0977 (18) = Scroll Map Data: Direction/Length
- 0978 to 098F (18) = Scroll Map Data: Palette Set/Door Bits
- 0990 to ---- (1) = Initial Background-CHR Bank 0
- 0991 to ---- (1) = Initial Background-CHR Bank 1
- 0998 to ???? (?) = Level Palette Data
- 09F0 to 0A0F (?) = Multi-Path Data
- 0A10 to 0A8F (80) = Enemy Data: Screen Position
- 0A90 to 0B0F (80) = Enemy Data: X Coordinate
- 0B10 to 0B8F (80) = Enemy Data: Y Coordinate
- 0B90 to 0C0F (80) = Enemy Data: Enemy ID
- 0C10 to ???? (?) = Screen: Enemy Counter Offset