Well I got most of the data anyway. The level data itself is stored in 33 bytes (thankfully not compressed). 3 bits (I think that's the term to use) represents 8 tiles. I figured out how the game calculates the values, I just don't understand how the values are adding up. I'm hoping it's something simple that I've overlooked. Any ideas?
My notes are below. This is for the US version.
-------------------------------------
Code:
C111 = Level Data (Where it gets loaded into RAM)
51BE = Round 1 (33 Bytes of Data)
51DF = Round 2
5200 = Round 3
5221 = Round 4
5242 = Round 5
C6A3 = Edit 1 (33 Bytes of Data)
C6C4 = Edit 2
C6E5 = Edit 3
C706 = Edit 4
C727 = Edit 5
Level 1 Data (ROM - Level Size 11 x 8)
B6 DB 6D B6 DB 6D B6 DB 6D B6 DB 6D B6 DB 6D B6
DA 00 00 00 2D 1C 20 C0 56 DB 6D A2 DB 6D B6 DB
6D
Level 1 Data (RAM)
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 00 00 00 00 00 00 00 00 00 05 05 00 00 00
05 05 00 10 00 02 00 03 00 00 02 05 05 00 00 00
05 05 05 05 05 05 05 05 00 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
Notes:
Level Size - 13 x 9 = 130
Level Size [Edit Mode] 11 x 8 = 88
The data is sort of like a compression.
3 bytes covers 8 tiles.
3 bits covers 4 tiles.
ID:
0 = Nothing (NT)
2 = Stairs (ST)
4 = Monster (MO)
6 = Rock (RC)
8 = Sand (SD)
A = Wall (WL)
C = Ghost (GH)
E = Player (PL)
Note: There are three different monster images, Mummy, Frankeinstain and Ghost.
They all use the same value (4) and act the same. Depending on the level,
the game loads the required graphics for that monster.
Tile1 = ID
Tile2 = Tile1 + (ID * 2)
Tile3 = Tile2 + ((ID * 2) * 2)
Tile4 = Tile3 + (ID / 2)
Examples:
PL = E00
ST + ST = 200 + (2 * 2 = 04) = 240
PL + PL = E00 + (E * 2 = 1C) = FC0
ST + WL = 200 + (A * 2 = 14) = 340
WL + WL = A00 + (A * 2 = 14) = B40
WL + WL + WL = A00 + (A * 2 = 14) = B40 + (A * 2 = 14 * 2 = 28) = B68
GH + SD + PL = C00 + (8 * 2 = 10) = D00 + (E * 2 = 1C * 2 = 38) = D38
GH + SD + PL + PL = C00 + (8 * 2 = 10) = D00 + (E * 2 = 1C * 2 = 38) = D38 + (E / 2 = 7) = D3F
RC + ST + GH + MO = 600 + (2 * 2 = 04) = 640 + (C * 2 = 18 * 2 = 30) = 670 + (4 / 2 = 2) = 672
---------------------
E80 = PL + MO
EC0 = PL + RC
FC0 = PL + PL
FD0 = PL + PL + MO
B68 = WL + WL + WL
D3F = GH + SD + PL + PL
51BE = Round 1 (33 Bytes of Data)
51DF = Round 2
5200 = Round 3
5221 = Round 4
5242 = Round 5
C6A3 = Edit 1 (33 Bytes of Data)
C6C4 = Edit 2
C6E5 = Edit 3
C706 = Edit 4
C727 = Edit 5
Level 1 Data (ROM - Level Size 11 x 8)
B6 DB 6D B6 DB 6D B6 DB 6D B6 DB 6D B6 DB 6D B6
DA 00 00 00 2D 1C 20 C0 56 DB 6D A2 DB 6D B6 DB
6D
Level 1 Data (RAM)
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 00 00 00 00 00 00 00 00 00 05 05 00 00 00
05 05 00 10 00 02 00 03 00 00 02 05 05 00 00 00
05 05 05 05 05 05 05 05 00 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 00 00 00
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
05 05 05 05 05 05 05 05 05 05 05 05 05 05 05 05
Notes:
Level Size - 13 x 9 = 130
Level Size [Edit Mode] 11 x 8 = 88
The data is sort of like a compression.
3 bytes covers 8 tiles.
3 bits covers 4 tiles.
ID:
0 = Nothing (NT)
2 = Stairs (ST)
4 = Monster (MO)
6 = Rock (RC)
8 = Sand (SD)
A = Wall (WL)
C = Ghost (GH)
E = Player (PL)
Note: There are three different monster images, Mummy, Frankeinstain and Ghost.
They all use the same value (4) and act the same. Depending on the level,
the game loads the required graphics for that monster.
Tile1 = ID
Tile2 = Tile1 + (ID * 2)
Tile3 = Tile2 + ((ID * 2) * 2)
Tile4 = Tile3 + (ID / 2)
Examples:
PL = E00
ST + ST = 200 + (2 * 2 = 04) = 240
PL + PL = E00 + (E * 2 = 1C) = FC0
ST + WL = 200 + (A * 2 = 14) = 340
WL + WL = A00 + (A * 2 = 14) = B40
WL + WL + WL = A00 + (A * 2 = 14) = B40 + (A * 2 = 14 * 2 = 28) = B68
GH + SD + PL = C00 + (8 * 2 = 10) = D00 + (E * 2 = 1C * 2 = 38) = D38
GH + SD + PL + PL = C00 + (8 * 2 = 10) = D00 + (E * 2 = 1C * 2 = 38) = D38 + (E / 2 = 7) = D3F
RC + ST + GH + MO = 600 + (2 * 2 = 04) = 640 + (C * 2 = 18 * 2 = 30) = 670 + (4 / 2 = 2) = 672
---------------------
E80 = PL + MO
EC0 = PL + RC
FC0 = PL + PL
FD0 = PL + PL + MO
B68 = WL + WL + WL
D3F = GH + SD + PL + PL