The current URL is datacrystal.tcrf.net.
Blaster Master/ROM map
The following article is a ROM map for Blaster Master.
The corresponding RAM map can be found here.
Offsets are for a headerless ROM. To get the offset for a headered ROM (.nes) file, add 0x10 (16 in decimal) to the offset. This ROM map covers the entire first 16k bank. All listed entries are contiguous. The size of each data entry can be calculated by subtracting the next offset by the former offset. Data structures are described here.
Note that because the game references data via pointers, the layout of level data doesn't necessarily need to be in a consistent order. For example, Level 2's combo attribute data comes after the scroll map, whereas in each other level, the combo attribute data comes before the scroll map. In theory the data for all of the levels within a single bank could be intermixed, though
this would be impractical.
Banks
The first three banks contain map data for a number of levels each. Enemy/object data for all levels is contained in bank 3. Map data for each level, both overhead and tank levels, is in the same format, and each of the first three banks is laid out in a similar fashion.
Bank | Offset | Data |
---|---|---|
0 | 0x00000 | Tank Levels 1 - 5 |
1 | 0x04000 | Tank Levels 6 - 8, Overhead levels 1 and 3 |
2 | 0x08000 | Overhead Levels 2 and 6 - 8 |
3 | 0x0C000 | Enemy/Object data and other |
Level Pointers
Offset | Description |
---|---|
0000 | Level 1 map data pointer |
0002 | Level 1 map scroll data pointer |
0004 | Level 2 map data pointer |
0006 | Level 2 map scroll data pointer |
0008 | Level 3 map data pointer |
000A | Level 3 map scroll data pointer |
000C | Level 4 map data pointer |
000E | Level 4 map scroll data pointer |
0010 | Level 5 map data pointer |
0012 | Level 5 map scroll data pointer |
Level 1
Offset | Description |
---|---|
0014 | Map pointers |
0020 | Bg Palette |
0030 | Combos (count = 0x9A) |
0298 | Structures (count = 0xF4) |
0668 | Blocks (count = CB) |
0994 | Map |
0D94 | Combo attributes (count = 0x9A) |
0E2E | Scroll map |
Level 2
Offset | Description |
---|---|
0E3E | Map pointers |
0E4A | Bg palette |
0E5A | Combos (count = 0x98) |
10BA | Strucutres (count = 0x8E) |
12F2 | Blocks (count = 0xA0) |
1572 | Map |
1972 | Scroll map |
1982 | Combo attributes (count = 0x98) |
Level 3
Offset | Description |
---|---|
1A1A | Map pointers |
1A26 | Bg palette |
1A36 | Combos (count = 0x79) |
1C1A | Strucutres (count = 0x80) |
1E1A | Blocks (count = 0xB3) |
20E6 | Map |
24E6 | Combo attributes (count = 0x79) |
255F | Scroll map |
Level 4
Offset | Description |
---|---|
256F | Map pointers |
257B | Bg palette |
258B | Combos (count = 0x83) |
2797 | Structures (count = 0xB6) |
2A6F | Blocks (count = 0x9E) |
2CE7 | Map |
30E7 | Combo attributes (count = 0x83) |
316A | Scroll map |
Level 5
Offset | Description |
---|---|
317A | Map pointers |
3186 | Bg palette |
3196 | Combos (count = 0x82) |
339E | Structures (count = 0x9F) |
361A | Blocks (count = 0xB8) |
38FA | Map |
3CFA | Combo attributes (count = 0x82) |
3D7C | Scroll map |
End of Bank
Offset | Description |
---|---|
3D8C | Unknown. Zero-ing out 0x3D8C to 0x3FFF does not appear to affect the game. |
4000 | BANK: Bank 1 |