aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2016-09-02 03:58:22 -0400
committerB. Watson <yalhcru@gmail.com>2016-09-02 03:58:22 -0400
commit670a6fef7b1767ae2a0ceed3881eade1278fbac4 (patch)
tree3088b3b26cbbe948f2e2859a655a8db252df213b
parent44d935410e8e4b9d998ae516bc7175391750c9b6 (diff)
downloadjumpmanjr-670a6fef7b1767ae2a0ceed3881eade1278fbac4.tar.gz
label all the map/bomb/etc data for all levels
-rw-r--r--jumpmanjr.dasm355
-rw-r--r--jumpmanjr.info133
-rw-r--r--leveldesc.info24
-rw-r--r--main.info109
-rw-r--r--mklevelinfo.pl16
5 files changed, 436 insertions, 201 deletions
diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm
index 48718e2..683790d 100644
--- a/jumpmanjr.dasm
+++ b/jumpmanjr.dasm
@@ -1,5 +1,5 @@
; da65 V2.15 - Git 104f898
-; Created: 2016-09-02 01:14:13
+; Created: 2016-09-02 03:47:10
; Input file: jumpmanjr.rom
; Page: 1
@@ -4167,7 +4167,7 @@ cartoptions_right:
cartinit_right:
.addr cart_start_stub ; 9FFE FE 8A ..
; ----------------------------------------------------------------------------
-; 64-byte level descriptors, 12 of them (1 per level). first 2 bytes are level number in screencodes
+; 64-byte level descriptors, 12 of them (1 per level). Descriptor for Nothing To It. first 2 bytes are level number in screencodes
level01_desc:
.byte $10,$11 ; A000 10 11 ..
; ----------------------------------------------------------------------------
@@ -4274,7 +4274,7 @@ level01_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level01_offs_60:
.byte $00,$00,$00,$00 ; A03C 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Electrocution. first 2 bytes are level number in screencodes
level02_desc:
.byte $10,$12 ; A040 10 12 ..
; ----------------------------------------------------------------------------
@@ -4329,10 +4329,10 @@ level02_map:
.addr l02_map ; A056 E0 A3 ..
; start of bombs in map data (which must come last!)
level02_map_bombs:
- .addr LA446 ; A058 46 A4 F.
+ .addr l02_map_bombs ; A058 46 A4 F.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level02_bomblist:
- .addr LA477 ; A05A 77 A4 w.
+ .addr l02_bombs ; A05A 77 A4 w.
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level02_map_changes:
.addr L0000 ; A05C 00 00 ..
@@ -4381,7 +4381,7 @@ level02_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level02_offs_60:
.byte $00,$00,$00,$00 ; A07C 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Dumbwaiter. first 2 bytes are level number in screencodes
level03_desc:
.byte $10,$13 ; A080 10 13 ..
; ----------------------------------------------------------------------------
@@ -4430,16 +4430,16 @@ level03_offs_19:
; ----------------------------------------------------------------------------
; pointer to ROM table or $06xx
level03_unkn_table0:
- .addr LA66D ; A094 6D A6 m.
+ .addr l03_unkn ; A094 6D A6 m.
; used to draw the level initially (see also map_changes)
level03_map:
- .addr LA5F0 ; A096 F0 A5 ..
+ .addr l03_map ; A096 F0 A5 ..
; start of bombs in map data (which must come last!)
level03_map_bombs:
- .addr LA62F ; A098 2F A6 /.
+ .addr l03_map_bombs ; A098 2F A6 /.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level03_bomblist:
- .addr LA654 ; A09A 54 A6 T.
+ .addr l03_bombs ; A09A 54 A6 T.
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level03_map_changes:
.addr L0000 ; A09C 00 00 ..
@@ -4488,7 +4488,7 @@ level03_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level03_offs_60:
.byte $00,$00,$00,$00 ; A0BC 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Hellstones. first 2 bytes are level number in screencodes
level04_desc:
.byte $10,$14 ; A0C0 10 14 ..
; ----------------------------------------------------------------------------
@@ -4540,13 +4540,13 @@ level04_unkn_table0:
.addr L06DF ; A0D4 DF 06 ..
; used to draw the level initially (see also map_changes)
level04_map:
- .addr LA790 ; A0D6 90 A7 ..
+ .addr l04_map ; A0D6 90 A7 ..
; start of bombs in map data (which must come last!)
level04_map_bombs:
- .addr LA7D5 ; A0D8 D5 A7 ..
+ .addr l04_map_bombs ; A0D8 D5 A7 ..
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level04_bomblist:
- .addr LA806 ; A0DA 06 A8 ..
+ .addr l04_bombs ; A0DA 06 A8 ..
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level04_map_changes:
.addr L0000 ; A0DC 00 00 ..
@@ -4595,7 +4595,7 @@ level04_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level04_offs_60:
.byte $00,$00,$00,$00 ; A0FC 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Figurits Revenge. first 2 bytes are level number in screencodes
level05_desc:
.byte $10,$15 ; A100 10 15 ..
; ----------------------------------------------------------------------------
@@ -4647,16 +4647,16 @@ level05_unkn_table0:
.addr L06DF ; A114 DF 06 ..
; used to draw the level initially (see also map_changes)
level05_map:
- .addr LAAD0 ; A116 D0 AA ..
+ .addr l05_map ; A116 D0 AA ..
; start of bombs in map data (which must come last!)
level05_map_bombs:
- .addr LAB42 ; A118 42 AB B.
+ .addr l05_map_bombs ; A118 42 AB B.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level05_bomblist:
- .addr LAB6D ; A11A 6D AB m.
+ .addr l05_bombs ; A11A 6D AB m.
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level05_map_changes:
- .addr LAB8A ; A11C 8A AB ..
+ .addr l05_map_changes ; A11C 8A AB ..
; ----------------------------------------------------------------------------
; pointer to list of indirect subs, always $0000 in this game
level05_indirect_subs:
@@ -4702,7 +4702,7 @@ level05_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level05_offs_60:
.byte $00,$00,$00,$00 ; A13C 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Walls. first 2 bytes are level number in screencodes
level06_desc:
.byte $10,$16 ; A140 10 16 ..
; ----------------------------------------------------------------------------
@@ -4754,13 +4754,13 @@ level06_unkn_table0:
.addr L06DF ; A154 DF 06 ..
; used to draw the level initially (see also map_changes)
level06_map:
- .addr LA920 ; A156 20 A9 .
+ .addr l06_map ; A156 20 A9 .
; start of bombs in map data (which must come last!)
level06_map_bombs:
- .addr LA974 ; A158 74 A9 t.
+ .addr l06_map_bombs ; A158 74 A9 t.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level06_bomblist:
- .addr LA9A5 ; A15A A5 A9 ..
+ .addr l06_bombs ; A15A A5 A9 ..
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level06_map_changes:
.addr L0000 ; A15C 00 00 ..
@@ -4809,7 +4809,7 @@ level06_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level06_offs_60:
.byte $FF,$FF,$FF,$FF ; A17C FF FF FF FF ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Zig-Zag. first 2 bytes are level number in screencodes
level07_desc:
.byte $10,$17 ; A180 10 17 ..
; ----------------------------------------------------------------------------
@@ -4861,16 +4861,16 @@ level07_unkn_table0:
.addr L06DF ; A194 DF 06 ..
; used to draw the level initially (see also map_changes)
level07_map:
- .addr LAC60 ; A196 60 AC `.
+ .addr l07_map ; A196 60 AC `.
; start of bombs in map data (which must come last!)
level07_map_bombs:
- .addr LACBA ; A198 BA AC ..
+ .addr l07_map_bombs ; A198 BA AC ..
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level07_bomblist:
- .addr LACE5 ; A19A E5 AC ..
+ .addr l07_bombs ; A19A E5 AC ..
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level07_map_changes:
- .addr LAD02 ; A19C 02 AD ..
+ .addr l07_map_changes ; A19C 02 AD ..
; ----------------------------------------------------------------------------
; pointer to list of indirect subs, always $0000 in this game
level07_indirect_subs:
@@ -4916,7 +4916,7 @@ level07_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level07_offs_60:
.byte $00,$00,$00,$00 ; A1BC 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Spellbound. first 2 bytes are level number in screencodes
level08_desc:
.byte $10,$18 ; A1C0 10 18 ..
; ----------------------------------------------------------------------------
@@ -4965,16 +4965,16 @@ level08_offs_19:
; ----------------------------------------------------------------------------
; pointer to ROM table or $06xx
level08_unkn_table0:
- .addr LAE8A ; A1D4 8A AE ..
+ .addr l08_unkn0 ; A1D4 8A AE ..
; used to draw the level initially (see also map_changes)
level08_map:
- .addr LADE0 ; A1D6 E0 AD ..
+ .addr l08_map ; A1D6 E0 AD ..
; start of bombs in map data (which must come last!)
level08_map_bombs:
- .addr LAE4C ; A1D8 4C AE L.
+ .addr l08_map_bombs ; A1D8 4C AE L.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level08_bomblist:
- .addr LAE71 ; A1DA 71 AE q.
+ .addr l08_bombs ; A1DA 71 AE q.
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level08_map_changes:
.addr L0000 ; A1DC 00 00 ..
@@ -4985,16 +4985,16 @@ level08_indirect_subs:
; ----------------------------------------------------------------------------
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level08_sub_bomb:
- .addr LAF23 ; A1E0 23 AF #.
+ .addr spellbound_bomb_sub ; A1E0 23 AF #.
; called at start of level, $06E6 for some levels, or else a ROM subroutine
level08_sub_start:
- .addr LAE9B ; A1E2 9B AE ..
+ .addr spellbound_init ; A1E2 9B AE ..
; always $9740 aka game_main_loop
level08_sub6:
.addr game_main_loop ; A1E4 40 97 @.
; called at end of level (all bombs picked up). $06E6 for all but level08
level08_sub_eol:
- .addr level08_letters ; A1E6 58 AF X.
+ .addr spellbound_letters ; A1E6 58 AF X.
; ----------------------------------------------------------------------------
; all zeroes
level08_offs_40:
@@ -5023,13 +5023,13 @@ level08_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level08_offs_60:
.byte $00,$00,$00,$00 ; A1FC 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Blackout. first 2 bytes are level number in screencodes
level09_desc:
.byte $10,$19 ; A200 10 19 ..
; ----------------------------------------------------------------------------
; a subroutine
level09_sub0:
- .addr LB140 ; A202 40 B1 @.
+ .addr blackout_sub0 ; A202 40 B1 @.
; a subroutine
level09_sub1:
.addr L0000 ; A204 00 00 ..
@@ -5075,13 +5075,13 @@ level09_unkn_table0:
.addr L06DF ; A214 DF 06 ..
; used to draw the level initially (see also map_changes)
level09_map:
- .addr LB0A2 ; A216 A2 B0 ..
+ .addr l09_map ; A216 A2 B0 ..
; start of bombs in map data (which must come last!)
level09_map_bombs:
- .addr LB072 ; A218 72 B0 r.
+ .addr l09_map_bombs ; A218 72 B0 r.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level09_bomblist:
- .addr LB0A3 ; A21A A3 B0 ..
+ .addr l09_bombs ; A21A A3 B0 ..
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level09_map_changes:
.addr L0000 ; A21C 00 00 ..
@@ -5092,10 +5092,10 @@ level09_indirect_subs:
; ----------------------------------------------------------------------------
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level09_sub_bomb:
- .addr LB121 ; A220 21 B1 !.
+ .addr blackout_bomb_sub ; A220 21 B1 !.
; called at start of level, $06E6 for some levels, or else a ROM subroutine
level09_sub_start:
- .addr LB0C4 ; A222 C4 B0 ..
+ .addr blackout_init ; A222 C4 B0 ..
; always $9740 aka game_main_loop
level09_sub6:
.addr game_main_loop ; A224 40 97 @.
@@ -5130,13 +5130,13 @@ level09_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level09_offs_60:
.byte $00,$00,$00,$00 ; A23C 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for HereThereEverywhere. first 2 bytes are level number in screencodes
level10_desc:
.byte $11,$10 ; A240 11 10 ..
; ----------------------------------------------------------------------------
; a subroutine
level10_sub0:
- .addr LB27E ; A242 7E B2 ~.
+ .addr herethere_sub0 ; A242 7E B2 ~.
; a subroutine
level10_sub1:
.addr L0000 ; A244 00 00 ..
@@ -5145,7 +5145,7 @@ level10_sub2:
.addr L0000 ; A246 00 00 ..
; a subroutine
level10_sub3:
- .addr LB2E0 ; A248 E0 B2 ..
+ .addr herethere_sub3 ; A248 E0 B2 ..
; ----------------------------------------------------------------------------
; number of bombs to pick up on this level
level10_num_bombs:
@@ -5179,16 +5179,16 @@ level10_offs_19:
; ----------------------------------------------------------------------------
; pointer to ROM table or $06xx
level10_unkn_table0:
- .addr LB275 ; A254 75 B2 u.
+ .addr l10_unkn0 ; A254 75 B2 u.
; used to draw the level initially (see also map_changes)
level10_map:
- .addr LB1E0 ; A256 E0 B1 ..
+ .addr l10_map ; A256 E0 B1 ..
; start of bombs in map data (which must come last!)
level10_map_bombs:
- .addr LB237 ; A258 37 B2 7.
+ .addr l10_map_bombs ; A258 37 B2 7.
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level10_bomblist:
- .addr LB25C ; A25A 5C B2 \.
+ .addr l10_bombs ; A25A 5C B2 \.
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level10_map_changes:
.addr L0000 ; A25C 00 00 ..
@@ -5199,7 +5199,7 @@ level10_indirect_subs:
; ----------------------------------------------------------------------------
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level10_sub_bomb:
- .addr LB2FD ; A260 FD B2 ..
+ .addr herethere_bomb_sub ; A260 FD B2 ..
; called at start of level, $06E6 for some levels, or else a ROM subroutine
level10_sub_start:
.addr L8036 ; A262 36 80 6.
@@ -5237,22 +5237,22 @@ level10_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level10_offs_60:
.byte $00,$00,$00,$00 ; A27C 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Hatchlings. first 2 bytes are level number in screencodes
level11_desc:
.byte $11,$11 ; A280 11 11 ..
; ----------------------------------------------------------------------------
; a subroutine
level11_sub0:
- .addr LB457 ; A282 57 B4 W.
+ .addr hatch_sub0 ; A282 57 B4 W.
; a subroutine
level11_sub1:
- .addr LB581 ; A284 81 B5 ..
+ .addr hatch_sub1 ; A284 81 B5 ..
; a subroutine
level11_sub2:
.addr L0000 ; A286 00 00 ..
; a subroutine
level11_sub3:
- .addr LB57C ; A288 7C B5 |.
+ .addr hatch_sub3 ; A288 7C B5 |.
; ----------------------------------------------------------------------------
; number of bombs to pick up on this level
level11_num_bombs:
@@ -5286,19 +5286,19 @@ level11_offs_19:
; ----------------------------------------------------------------------------
; pointer to ROM table or $06xx
level11_unkn_table0:
- .addr data_table_b50b ; A294 0B B5 ..
+ .addr hatch_table_b50b ; A294 0B B5 ..
; used to draw the level initially (see also map_changes)
level11_map:
- .addr LB320 ; A296 20 B3 .
+ .addr l11_map ; A296 20 B3 .
; start of bombs in map data (which must come last!)
level11_map_bombs:
- .addr LB38F ; A298 8F B3 ..
+ .addr l11_map_bombs ; A298 8F B3 ..
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level11_bomblist:
- .addr LB3BD ; A29A BD B3 ..
+ .addr l11_bombs ; A29A BD B3 ..
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level11_map_changes:
- .addr LB3DC ; A29C DC B3 ..
+ .addr l11_map_changes ; A29C DC B3 ..
; ----------------------------------------------------------------------------
; pointer to list of indirect subs, always $0000 in this game
level11_indirect_subs:
@@ -5306,7 +5306,7 @@ level11_indirect_subs:
; ----------------------------------------------------------------------------
; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine
level11_sub_bomb:
- .addr LB44C ; A2A0 4C B4 L.
+ .addr hatch_bomb_sub ; A2A0 4C B4 L.
; called at start of level, $06E6 for some levels, or else a ROM subroutine
level11_sub_start:
.addr L8036 ; A2A2 36 80 6.
@@ -5344,19 +5344,19 @@ level11_offs_58:
; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00
level11_offs_60:
.byte $00,$00,$00,$00 ; A2BC 00 00 00 00 ....
-; first 2 bytes are level number in screencodes
+; Descriptor for Hurricane. first 2 bytes are level number in screencodes
level12_desc:
.byte $11,$12 ; A2C0 11 12 ..
; ----------------------------------------------------------------------------
; a subroutine
level12_sub0:
- .addr LB691 ; A2C2 91 B6 ..
+ .addr hurr_sub0 ; A2C2 91 B6 ..
; a subroutine
level12_sub1:
- .addr LB69B ; A2C4 9B B6 ..
+ .addr hurr_sub1 ; A2C4 9B B6 ..
; a subroutine
level12_sub2:
- .addr LB709 ; A2C6 09 B7 ..
+ .addr hurr_sub2 ; A2C6 09 B7 ..
; a subroutine
level12_sub3:
.addr check_collisions_1 ; A2C8 73 8F s.
@@ -5393,19 +5393,19 @@ level12_offs_19:
; ----------------------------------------------------------------------------
; pointer to ROM table or $06xx
level12_unkn_table0:
- .addr LB658 ; A2D4 58 B6 X.
+ .addr l12_unkn0 ; A2D4 58 B6 X.
; used to draw the level initially (see also map_changes)
level12_map:
- .addr data_b590 ; A2D6 90 B5 ..
+ .addr l12_map ; A2D6 90 B5 ..
; start of bombs in map data (which must come last!)
level12_map_bombs:
- .addr LB5D2 ; A2D8 D2 B5 ..
+ .addr l12_map_bombs ; A2D8 D2 B5 ..
; addr of list of bombs, indexed by player position on coarse 8x8 grid. 2 bytes each, 1st is coarse-grid position, 2nd is: hi 4 bits = change_map index, lo 4 = indirect sub (unused). terminated by $FF.
level12_bomblist:
- .addr LB5FD ; A2DA FD B5 ..
+ .addr l12_bombs ; A2DA FD B5 ..
; address of list of addresses of map data, used for changing the map when certain bombs are picked up
level12_map_changes:
- .addr LB61A ; A2DC 1A B6 ..
+ .addr l12_map_changes ; A2DC 1A B6 ..
; ----------------------------------------------------------------------------
; pointer to list of indirect subs, always $0000 in this game
level12_indirect_subs:
@@ -5519,17 +5519,20 @@ l02_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A3E0 FE 33 9C FD 04 00 04 05
.byte $05,$FE,$C9,$9C,$19,$3C,$05,$85 ; A430 05 FE C9 9C 19 3C 05 85 .....<..
.byte $3C,$05,$FE,$DA,$9C,$05,$30,$08 ; A438 3C 05 FE DA 9C 05 30 08 <.....0.
.byte $99,$30,$08,$FE,$B3,$9C ; A440 99 30 08 FE B3 9C .0....
-LA446: .byte $04,$02,$01,$38,$02,$01,$64,$02 ; A446 04 02 01 38 02 01 64 02 ...8..d.
+l02_map_bombs:
+ .byte $04,$02,$01,$38,$02,$01,$64,$02 ; A446 04 02 01 38 02 01 64 02 ...8..d.
.byte $01,$98,$02,$01,$04,$12,$01,$38 ; A44E 01 98 02 01 04 12 01 38 .......8
.byte $12,$01,$64,$12,$01,$98,$12,$01 ; A456 12 01 64 12 01 98 12 01 ..d.....
.byte $20,$22,$01,$7C,$22,$01,$38,$32 ; A45E 20 22 01 7C 22 01 38 32 ".|".82
.byte $01,$64,$32,$01,$04,$52,$01,$38 ; A466 01 64 32 01 04 52 01 38 .d2..R.8
.byte $52,$01,$64,$52,$01,$98,$52,$01 ; A46E 52 01 64 52 01 98 52 01 R.dR..R.
.byte $FF ; A476 FF .
-LA477: .byte $22,$00,$62,$00,$82,$00,$C2,$00 ; A477 22 00 62 00 82 00 C2 00 ".b.....
+l02_bombs:
+ .byte $22,$00,$62,$00,$82,$00,$C2,$00 ; A477 22 00 62 00 82 00 C2 00 ".b.....
.byte $24,$00,$64,$00,$84,$00,$C4,$00 ; A47F 24 00 64 00 84 00 C4 00 $.d.....
.byte $46,$00,$A6,$00,$68,$00,$88,$00 ; A487 46 00 A6 00 68 00 88 00 F...h...
.byte $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A48F 2C 00 6C 00 8C 00 CC 00 ,.l.....
+l02_bombs_term:
.byte $FF ; A497 FF .
; ----------------------------------------------------------------------------
; not sure what this actually does
@@ -5651,7 +5654,8 @@ LA5C2: .byte $03,$D3,$A5,$08,$00,$00,$01,$00 ; A5C2 03 D3 A5 08 00 00 01 00
.byte $00,$C3,$C3,$C3,$C3,$FF,$FF,$C3 ; A5DA 00 C3 C3 C3 C3 FF FF C3 ........
.byte $C3,$00,$00,$00,$00,$00,$00,$00 ; A5E2 C3 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00 ; A5EA 00 00 00 00 00 00 ......
-LA5F0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A5F0 FE 33 9C FD 04 00 04 05 .3......
+; level map data starts here
+l03_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A5F0 FE 33 9C FD 04 00 04 05 .3......
.byte $06,$84,$05,$06,$04,$15,$06,$84 ; A5F8 06 84 05 06 04 15 06 84 ........
.byte $15,$06,$04,$25,$0C,$6C,$25,$0C ; A600 15 06 04 25 0C 6C 25 0C ...%.l%.
.byte $04,$35,$0C,$6C,$35,$0C,$04,$45 ; A608 04 35 0C 6C 35 0C 04 45 .5.l5..E
@@ -5659,16 +5663,20 @@ LA5F0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A5F0 FE 33 9C FD 04 00 04 05
.byte $45,$04,$04,$55,$06,$84,$55,$06 ; A618 45 04 04 55 06 84 55 06 E..U..U.
.byte $FE,$5F,$9C,$FD,$00,$04,$0C,$01 ; A620 FE 5F 9C FD 00 04 0C 01 ._......
.byte $05,$8C,$01,$05,$FE,$B3,$9C ; A628 05 8C 01 05 FE B3 9C .......
-LA62F: .byte $04,$02,$01,$04,$12,$01,$04,$22 ; A62F 04 02 01 04 12 01 04 22 ......."
+l03_map_bombs:
+ .byte $04,$02,$01,$04,$12,$01,$04,$22 ; A62F 04 02 01 04 12 01 04 22 ......."
.byte $01,$04,$32,$01,$04,$42,$01,$04 ; A637 01 04 32 01 04 42 01 04 ..2..B..
.byte $52,$01,$98,$02,$01,$98,$12,$01 ; A63F 52 01 98 02 01 98 12 01 R.......
.byte $98,$22,$01,$98,$32,$01,$98,$42 ; A647 98 22 01 98 32 01 98 42 ."..2..B
.byte $01,$98,$52,$01,$FF ; A64F 01 98 52 01 FF ..R..
-LA654: .byte $22,$00,$24,$00,$26,$00,$28,$00 ; A654 22 00 24 00 26 00 28 00 ".$.&.(.
+l03_bombs:
+ .byte $22,$00,$24,$00,$26,$00,$28,$00 ; A654 22 00 24 00 26 00 28 00 ".$.&.(.
.byte $2A,$00,$2C,$00,$C2,$00,$C4,$00 ; A65C 2A 00 2C 00 C2 00 C4 00 *.,.....
.byte $C6,$00,$C8,$00,$CA,$00,$CC,$00 ; A664 C6 00 C8 00 CA 00 CC 00 ........
+l03_bombs_term:
.byte $FF ; A66C FF .
-LA66D: .byte $00,$00,$00,$01,$7A,$01,$01,$66 ; A66D 00 00 00 01 7A 01 01 66 ....z..f
+l03_unkn:
+ .byte $00,$00,$00,$01,$7A,$01,$01,$66 ; A66D 00 00 00 01 7A 01 01 66 ....z..f
.byte $03,$86,$A6,$06,$4C,$4A,$01,$66 ; A675 03 86 A6 06 4C 4A 01 66 ....LJ.f
.byte $04,$86,$A6,$06,$A4,$CA,$01,$66 ; A67D 04 86 A6 06 A4 CA 01 66 .......f
; horizontally moving platforms from level03
@@ -5798,11 +5806,12 @@ LA779: lda player_y_pos ; A779 AD 83 06
LA781: rts ; A781 60 `
; ----------------------------------------------------------------------------
-; the dumbwaiters from level03. stored upside-down.
+; the dumbwaiters from level03. stored upside-down. trailing 00's might just be filler.
dumbwaiter_player:
.byte $18,$3C,$7E,$FF,$FF,$FF,$00,$00 ; A782 18 3C 7E FF FF FF 00 00 .<~.....
.byte $00,$00,$00,$00,$00,$00 ; A78A 00 00 00 00 00 00 ......
-LA790: .byte $FE,$33,$9C,$FD,$04,$00,$40,$05 ; A790 FE 33 9C FD 04 00 40 05 .3....@.
+; level map data starts here
+l04_map:.byte $FE,$33,$9C,$FD,$04,$00,$40,$05 ; A790 FE 33 9C FD 04 00 40 05 .3....@.
.byte $08,$18,$15,$0A,$04,$25,$14,$18 ; A798 08 18 15 0A 04 25 14 18 .....%..
.byte $35,$0A,$2C,$45,$0A,$04,$55,$0F ; A7A0 35 0A 2C 45 0A 04 55 0F 5.,E..U.
.byte $60,$55,$0F,$4C,$15,$0F,$60,$25 ; A7A8 60 55 0F 4C 15 0F 60 25 `U.L..`%
@@ -5811,17 +5820,20 @@ LA790: .byte $FE,$33,$9C,$FD,$04,$00,$40,$05 ; A790 FE 33 9C FD 04 00 40 05
.byte $4C,$21,$05,$4C,$41,$05,$18,$11 ; A7C0 4C 21 05 4C 41 05 18 11 L!.LA...
.byte $05,$80,$11,$05,$2C,$31,$05,$6C ; A7C8 05 80 11 05 2C 31 05 6C ....,1.l
.byte $31,$05,$FE,$B3,$9C ; A7D0 31 05 FE B3 9C 1....
-LA7D5: .byte $40,$02,$01,$5C,$02,$01,$24,$12 ; A7D5 40 02 01 5C 02 01 24 12 @..\..$.
+l04_map_bombs:
+ .byte $40,$02,$01,$5C,$02,$01,$24,$12 ; A7D5 40 02 01 5C 02 01 24 12 @..\..$.
.byte $01,$3C,$12,$01,$60,$12,$01,$78 ; A7DD 01 3C 12 01 60 12 01 78 .<..`..x
.byte $12,$01,$04,$22,$01,$3C,$22,$01 ; A7E5 12 01 04 22 01 3C 22 01 ...".<".
.byte $60,$22,$01,$98,$22,$01,$18,$32 ; A7ED 60 22 01 98 22 01 18 32 `".."..2
.byte $01,$84,$32,$01,$3C,$42,$01,$60 ; A7F5 01 84 32 01 3C 42 01 60 ..2.<B.`
.byte $42,$01,$04,$52,$01,$98,$52,$01 ; A7FD 42 01 04 52 01 98 52 01 B..R..R.
.byte $FF ; A805 FF .
-LA806: .byte $62,$00,$82,$00,$44,$00,$64,$00 ; A806 62 00 82 00 44 00 64 00 b...D.d.
+l04_bombs:
+ .byte $62,$00,$82,$00,$44,$00,$64,$00 ; A806 62 00 82 00 44 00 64 00 b...D.d.
.byte $84,$00,$A4,$00,$26,$00,$66,$00 ; A80E 84 00 A4 00 26 00 66 00 ....&.f.
.byte $86,$00,$C6,$00,$48,$00,$A8,$00 ; A816 86 00 C6 00 48 00 A8 00 ....H...
.byte $6A,$00,$8A,$00,$2C,$00,$CC,$00 ; A81E 6A 00 8A 00 2C 00 CC 00 j...,...
+l04_bombs_term:
.byte $FF ; A826 FF .
; ----------------------------------------------------------------------------
hellstones_sub3:
@@ -5945,7 +5957,7 @@ sfx_hellstone:
.byte $01,$83,$00,$0A,$03,$00,$00,$00 ; A90D 01 83 00 0A 03 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; A915 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00 ; A91D 00 00 00 ...
-LA920: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A920 FE 33 9C FD 04 00 04 05 .3......
+l06_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A920 FE 33 9C FD 04 00 04 05 .3......
.byte $04,$24,$05,$04,$44,$05,$06,$6C ; A928 04 24 05 04 44 05 06 6C .$..D..l
.byte $05,$04,$8C,$05,$04,$30,$16,$04 ; A930 05 04 8C 05 04 30 16 04 .....0..
.byte $60,$16,$04,$04,$25,$09,$78,$25 ; A938 60 16 04 04 25 09 78 25 `...%.x%
@@ -5956,17 +5968,20 @@ LA920: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A920 FE 33 9C FD 04 00 04 05
.byte $5F,$9C,$FD,$00,$04,$04,$01,$09 ; A960 5F 9C FD 00 04 04 01 09 _.......
.byte $94,$01,$09,$30,$19,$0F,$68,$19 ; A968 94 01 09 30 19 0F 68 19 ...0..h.
.byte $0F,$FE,$B3,$9C ; A970 0F FE B3 9C ....
-LA974: .byte $24,$02,$01,$44,$02,$01,$58,$02 ; A974 24 02 01 44 02 01 58 02 $..D..X.
+l06_map_bombs:
+ .byte $24,$02,$01,$44,$02,$01,$58,$02 ; A974 24 02 01 44 02 01 58 02 $..D..X.
.byte $01,$78,$02,$01,$44,$12,$01,$58 ; A97C 01 78 02 01 44 12 01 58 .x..D..X
.byte $12,$01,$24,$22,$01,$78,$22,$01 ; A984 12 01 24 22 01 78 22 01 ..$".x".
.byte $40,$32,$01,$5C,$32,$01,$40,$42 ; A98C 40 32 01 5C 32 01 40 42 @2.\2.@B
.byte $01,$5C,$42,$01,$04,$52,$01,$3C ; A994 01 5C 42 01 04 52 01 3C .\B..R.<
.byte $52,$01,$60,$52,$01,$98,$52,$01 ; A99C 52 01 60 52 01 98 52 01 R.`R..R.
.byte $FF ; A9A4 FF .
-LA9A5: .byte $42,$00,$62,$00,$82,$00,$A2,$00 ; A9A5 42 00 62 00 82 00 A2 00 B.b.....
+l06_bombs:
+ .byte $42,$00,$62,$00,$82,$00,$A2,$00 ; A9A5 42 00 62 00 82 00 A2 00 B.b.....
.byte $64,$00,$84,$00,$46,$00,$A6,$00 ; A9AD 64 00 84 00 46 00 A6 00 d...F...
.byte $68,$00,$88,$00,$6A,$00,$8A,$00 ; A9B5 68 00 88 00 6A 00 8A 00 h...j...
.byte $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A9BD 2C 00 6C 00 8C 00 CC 00 ,.l.....
+l06_bombs_term:
.byte $FF ; A9C5 FF .
; ----------------------------------------------------------------------------
LA9C6: jsr L8036 ; A9C6 20 36 80 6.
@@ -6100,7 +6115,8 @@ LAABC: lda $062A ; AABC AD 2A 06
; dunno what this is for yet
map_aac8:
.byte $00,$09,$40,$45,$02,$58,$45,$02 ; AAC8 00 09 40 45 02 58 45 02 ..@E.XE.
-LAAD0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05 .3......
+; level map data starts here
+l05_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05 .3......
.byte $02,$1A,$05,$0B,$50,$05,$07,$04 ; AAD8 02 1A 05 0B 50 05 07 04 ....P...
.byte $25,$26,$7C,$33,$08,$20,$3B,$03 ; AAE0 25 26 7C 33 08 20 3B 03 %&|3. ;.
.byte $40,$3B,$03,$60,$3B,$06,$04,$47 ; AAE8 40 3B 03 60 3B 06 04 47 @;.`;..G
@@ -6115,17 +6131,22 @@ LAAD0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05
.byte $3C,$08,$06,$35,$28,$04,$55,$28 ; AB30 3C 08 06 35 28 04 55 28 <..5(.U(
.byte $04,$FE,$DA,$9C,$9A,$30,$08,$FE ; AB38 04 FE DA 9C 9A 30 08 FE .....0..
.byte $B3,$9C ; AB40 B3 9C ..
-LAB42: .byte $04,$02,$01,$44,$02,$01,$24,$16 ; AB42 04 02 01 44 02 01 24 16 ...D..$.
+l05_map_bombs:
+ .byte $04,$02,$01,$44,$02,$01,$24,$16 ; AB42 04 02 01 44 02 01 24 16 ...D..$.
.byte $01,$44,$22,$01,$64,$22,$01,$98 ; AB4A 01 44 22 01 64 22 01 98 .D".d"..
.byte $22,$01,$24,$32,$01,$44,$32,$01 ; AB52 22 01 24 32 01 44 32 01 ".$2.D2.
.byte $64,$32,$01,$24,$52,$01,$44,$52 ; AB5A 64 32 01 24 52 01 44 52 d2.$R.DR
.byte $01,$64,$52,$01,$84,$52,$01,$98 ; AB62 01 64 52 01 84 52 01 98 .dR..R..
.byte $52,$01,$FF ; AB6A 52 01 FF R..
-LAB6D: .byte $22,$10,$62,$20,$44,$30,$66,$40 ; AB6D 22 10 62 20 44 30 66 40 ".b D0f@
+l05_bombs:
+ .byte $22,$10,$62,$20,$44,$30,$66,$40 ; AB6D 22 10 62 20 44 30 66 40 ".b D0f@
.byte $86,$50,$C6,$60,$48,$70,$68,$80 ; AB75 86 50 C6 60 48 70 68 80 .P.`Hph.
.byte $88,$90,$4C,$A0,$6C,$B0,$8C,$C0 ; AB7D 88 90 4C A0 6C B0 8C C0 ..L.l...
- .byte $AC,$00,$CC,$D0,$FF ; AB85 AC 00 CC D0 FF .....
-LAB8A: .byte $00,$00,$A6,$AB,$B6,$AB,$C0,$AB ; AB8A 00 00 A6 AB B6 AB C0 AB ........
+ .byte $AC,$00,$CC,$D0 ; AB85 AC 00 CC D0 ....
+l05_bombs_term:
+ .byte $FF ; AB89 FF .
+l05_map_changes:
+ .byte $00,$00,$A6,$AB,$B6,$AB,$C0,$AB ; AB8A 00 00 A6 AB B6 AB C0 AB ........
.byte $D3,$AB,$DD,$AB,$F0,$AB,$FA,$AB ; AB92 D3 AB DD AB F0 AB FA AB ........
.byte $04,$AC,$0E,$AC,$18,$AC,$22,$AC ; AB9A 04 AC 0E AC 18 AC 22 AC ......".
.byte $2C,$AC,$36,$AC,$FE,$49,$9C,$FD ; ABA2 2C AC 36 AC FE 49 9C FD ,.6..I..
@@ -6152,7 +6173,7 @@ LAB8A: .byte $00,$00,$A6,$AB,$B6,$AB,$C0,$AB ; AB8A 00 00 A6 AB B6 AB C0 AB
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; AC4A 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; AC52 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00 ; AC5A 00 00 00 00 00 00 ......
-LAC60: .byte $FE,$33,$9C,$FD,$04,$00,$3C,$05 ; AC60 FE 33 9C FD 04 00 3C 05 .3....<.
+l07_map:.byte $FE,$33,$9C,$FD,$04,$00,$3C,$05 ; AC60 FE 33 9C FD 04 00 3C 05 .3....<.
.byte $0A,$04,$0C,$08,$7C,$0C,$08,$04 ; AC68 0A 04 0C 08 7C 0C 08 04 ....|...
.byte $15,$08,$7C,$15,$08,$38,$16,$01 ; AC70 15 08 7C 15 08 38 16 01 ..|..8..
.byte $64,$16,$01,$2C,$2C,$04,$64,$2C ; AC78 64 16 01 2C 2C 04 64 2C d..,,.d,
@@ -6164,17 +6185,22 @@ LAC60: .byte $FE,$33,$9C,$FD,$04,$00,$3C,$05 ; AC60 FE 33 9C FD 04 00 3C 05
.byte $39,$19,$03,$65,$19,$03,$FE,$DA ; ACA8 39 19 03 65 19 03 FE DA 9..e....
.byte $9C,$1F,$12,$0F,$80,$12,$0F,$FE ; ACB0 9C 1F 12 0F 80 12 0F FE ........
.byte $B3,$9C ; ACB8 B3 9C ..
-LACBA: .byte $04,$02,$01,$3C,$02,$01,$60,$02 ; ACBA 04 02 01 3C 02 01 60 02 ...<..`.
+l07_map_bombs:
+ .byte $04,$02,$01,$3C,$02,$01,$60,$02 ; ACBA 04 02 01 3C 02 01 60 02 ...<..`.
.byte $01,$98,$02,$01,$24,$22,$01,$78 ; ACC2 01 98 02 01 24 22 01 78 ....$".x
.byte $22,$01,$24,$32,$01,$78,$32,$01 ; ACCA 22 01 24 32 01 78 32 01 ".$2.x2.
.byte $24,$42,$01,$78,$42,$01,$04,$52 ; ACD2 24 42 01 78 42 01 04 52 $B.xB..R
.byte $01,$3C,$52,$01,$60,$52,$01,$98 ; ACDA 01 3C 52 01 60 52 01 98 .<R.`R..
.byte $52,$01,$FF ; ACE2 52 01 FF R..
-LACE5: .byte $22,$10,$62,$20,$82,$30,$C2,$40 ; ACE5 22 10 62 20 82 30 C2 40 ".b .0.@
+l07_bombs:
+ .byte $22,$10,$62,$20,$82,$30,$C2,$40 ; ACE5 22 10 62 20 82 30 C2 40 ".b .0.@
.byte $46,$50,$A6,$50,$48,$60,$A8,$60 ; ACED 46 50 A6 50 48 60 A8 60 FP.PH`.`
.byte $4A,$70,$AA,$70,$2C,$80,$6C,$00 ; ACF5 4A 70 AA 70 2C 80 6C 00 Jp.p,.l.
- .byte $8C,$00,$CC,$90,$FF ; ACFD 8C 00 CC 90 FF .....
-LAD02: .byte $00,$00,$16,$AD,$16,$AD,$20,$AD ; AD02 00 00 16 AD 16 AD 20 AD ...... .
+ .byte $8C,$00,$CC,$90 ; ACFD 8C 00 CC 90 ....
+l07_bombs_term:
+ .byte $FF ; AD01 FF .
+l07_map_changes:
+ .byte $00,$00,$16,$AD,$16,$AD,$20,$AD ; AD02 00 00 16 AD 16 AD 20 AD ...... .
.byte $20,$AD,$2A,$AD,$34,$AD,$3E,$AD ; AD0A 20 AD 2A AD 34 AD 3E AD .*.4.>.
.byte $48,$AD,$58,$AD,$FE,$49,$9C,$FD ; AD12 48 AD 58 AD FE 49 9C FD H.X..I..
.byte $04,$FF,$24,$0B,$06,$FF,$FE,$49 ; AD1A 04 FF 24 0B 06 FF FE 49 ..$....I
@@ -6246,7 +6272,7 @@ data_table_adc7:
.byte $00,$FF,$FE,$FD,$FC,$FD,$FE,$FF ; ADCF 00 FF FE FD FC FD FE FF ........
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; ADD7 00 00 00 00 00 00 00 00 ........
.byte $00 ; ADDF 00 .
-LADE0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; ADE0 FE 33 9C FD 04 00 04 05 .3......
+l08_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; ADE0 FE 33 9C FD 04 00 04 05 .3......
.byte $02,$44,$05,$06,$94,$05,$02,$30 ; ADE8 02 44 05 06 94 05 02 30 .D.....0
.byte $0A,$02,$68,$0A,$02,$28,$21,$04 ; ADF0 0A 02 68 0A 02 28 21 04 ..h..(!.
.byte $68,$21,$04,$04,$25,$06,$84,$25 ; ADF8 68 21 04 04 25 06 84 25 h!..%..%
@@ -6260,20 +6286,25 @@ LADE0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; ADE0 FE 33 9C FD 04 00 04 05
.byte $C9,$9C,$34,$0C,$04,$6B,$0C,$04 ; AE38 C9 9C 34 0C 04 6B 0C 04 ..4..k..
.byte $FE,$DA,$9C,$44,$02,$10,$5A,$02 ; AE40 FE DA 9C 44 02 10 5A 02 ...D..Z.
.byte $10,$FE,$B3,$9C ; AE48 10 FE B3 9C ....
-LAE4C: .byte $04,$02,$01,$98,$02,$01,$04,$22 ; AE4C 04 02 01 98 02 01 04 22 ......."
+l08_map_bombs:
+ .byte $04,$02,$01,$98,$02,$01,$04,$22 ; AE4C 04 02 01 98 02 01 04 22 ......."
.byte $01,$98,$22,$01,$18,$34,$01,$84 ; AE54 01 98 22 01 18 34 01 84 .."..4..
.byte $34,$01,$04,$42,$01,$98,$42,$01 ; AE5C 34 01 04 42 01 98 42 01 4..B..B.
.byte $04,$52,$01,$38,$52,$01,$64,$52 ; AE64 04 52 01 38 52 01 64 52 .R.8R.dR
.byte $01,$98,$52,$01,$FF ; AE6C 01 98 52 01 FF ..R..
-LAE71: .byte $22,$00,$C2,$00,$26,$00,$C6,$00 ; AE71 22 00 C2 00 26 00 C6 00 "...&...
+l08_bombs:
+ .byte $22,$00,$C2,$00,$26,$00,$C6,$00 ; AE71 22 00 C2 00 26 00 C6 00 "...&...
.byte $48,$00,$A8,$00,$2A,$00,$CA,$00 ; AE79 48 00 A8 00 2A 00 CA 00 H...*...
.byte $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; AE81 2C 00 6C 00 8C 00 CC 00 ,.l.....
+l08_bombs_term:
.byte $FF ; AE89 FF .
-LAE8A: .byte $03,$00,$00,$01,$7C,$01,$01,$00 ; AE8A 03 00 00 01 7C 01 01 00 ....|...
+l08_unkn0:
+ .byte $03,$00,$00,$01,$7C,$01,$01,$00 ; AE8A 03 00 00 01 7C 01 01 00 ....|...
.byte $04,$0C,$AF,$10,$86,$00,$01,$0F ; AE92 04 0C AF 10 86 00 01 0F ........
.byte $FF ; AE9A FF .
; ----------------------------------------------------------------------------
-LAE9B: jsr L8036 ; AE9B 20 36 80 6.
+spellbound_init:
+ jsr L8036 ; AE9B 20 36 80 6.
lda #$C0 ; AE9E A9 C0 ..
sta $0770 ; AEA0 8D 70 07 .p.
rts ; AEA3 60 `
@@ -6308,7 +6339,8 @@ LAF1C: lda $062A ; AF1C AD 2A 06
rts ; AF22 60 `
; ----------------------------------------------------------------------------
-LAF23: lda $B2 ; AF23 A5 B2 ..
+spellbound_bomb_sub:
+ lda $B2 ; AF23 A5 B2 ..
lsr a ; AF25 4A J
tax ; AF26 AA .
ldy data_table_aea4,x ; AF27 BC A4 AE ...
@@ -6336,14 +6368,14 @@ LAF3B: lda LAEBC,y ; AF3B B9 BC AE
; ----------------------------------------------------------------------------
; called at end of Spellbound, adds up letter bonus
-level08_letters:
+spellbound_letters:
lda work_level_num_bombs ; AF58 AD 8A 07 ...
- beq l08_got_all ; AF5B F0 01 ..
+ beq spellbound_got_all ; AF5B F0 01 ..
rts ; AF5D 60 `
; ----------------------------------------------------------------------------
; got all the bombs
-l08_got_all:
+spellbound_got_all:
lda #$09 ; AF5E A9 09 ..
sta player_speed ; AF60 8D 24 06 .$.
lda #$00 ; AF63 A9 00 ..
@@ -6410,8 +6442,8 @@ sfx_letter_bonus:
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; AFEB 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; AFF3 00 00 00 00 00 00 00 00 ........
.byte $00,$00,$00,$00,$00 ; AFFB 00 00 00 00 00 .....
-; referenced by routine at $B0C4
-map_b000:
+; blackout doesn't draw the map initially
+l09_real_map:
.byte $FE,$33,$9C,$FD,$04,$00,$04,$07 ; B000 FE 33 9C FD 04 00 04 07 .3......
.byte $06,$24,$07,$02,$6C,$05,$04,$8C ; B008 06 24 07 02 6C 05 04 8C .$..l...
.byte $05,$04,$28,$18,$04,$48,$15,$06 ; B010 05 04 28 18 04 48 15 06 ..(..H..
@@ -6427,21 +6459,25 @@ map_b000:
.byte $1A,$0A,$06,$5E,$18,$09,$9A,$08 ; B060 1A 0A 06 5E 18 09 9A 08 ...^....
.byte $0B,$FE,$DA,$9C,$83,$04,$13,$FE ; B068 0B FE DA 9C 83 04 13 FE ........
.byte $49,$9C ; B070 49 9C I.
-LB072: .byte $04 ; B072 04 .
-LB073: .byte $02,$01,$24,$02,$01,$44,$02,$01 ; B073 02 01 24 02 01 44 02 01 ..$..D..
- .byte $78,$02,$01,$98,$02,$01,$3C,$12 ; B07B 78 02 01 98 02 01 3C 12 x.....<.
- .byte $01,$5C,$12,$01,$7C,$12,$01,$24 ; B083 01 5C 12 01 7C 12 01 24 .\..|..$
- .byte $22,$01,$78,$22,$01,$04,$38,$01 ; B08B 22 01 78 22 01 04 38 01 ".x"..8.
- .byte $1C,$46,$01,$78,$42,$01,$04,$52 ; B093 1C 46 01 78 42 01 04 52 .F.xB..R
- .byte $01,$58,$52,$01,$98,$52,$01 ; B09B 01 58 52 01 98 52 01 .XR..R.
-LB0A2: .byte $FF ; B0A2 FF .
-LB0A3: .byte $22,$00,$42,$00,$62,$00,$A2,$00 ; B0A3 22 00 42 00 62 00 A2 00 ".B.b...
+l09_map_bombs:
+ .byte $04,$02,$01,$24,$02,$01,$44,$02 ; B072 04 02 01 24 02 01 44 02 ...$..D.
+ .byte $01,$78,$02,$01,$98,$02,$01,$3C ; B07A 01 78 02 01 98 02 01 3C .x.....<
+ .byte $12,$01,$5C,$12,$01,$7C,$12,$01 ; B082 12 01 5C 12 01 7C 12 01 ..\..|..
+ .byte $24,$22,$01,$78,$22,$01,$04,$38 ; B08A 24 22 01 78 22 01 04 38 $".x"..8
+ .byte $01,$1C,$46,$01,$78,$42,$01,$04 ; B092 01 1C 46 01 78 42 01 04 ..F.xB..
+ .byte $52,$01,$58,$52,$01,$98,$52,$01 ; B09A 52 01 58 52 01 98 52 01 R.XR..R.
+; blackout doesn't draw the map initially
+l09_map:.byte $FF ; B0A2 FF .
+l09_bombs:
+ .byte $22,$00,$42,$00,$62,$00,$A2,$00 ; B0A3 22 00 42 00 62 00 A2 00 ".B.b...
.byte $C2,$00,$64,$00,$84,$00,$A4,$00 ; B0AB C2 00 64 00 84 00 A4 00 ..d.....
.byte $46,$00,$A6,$00,$28,$00,$4A,$00 ; B0B3 46 00 A6 00 28 00 4A 00 F...(.J.
.byte $AA,$00,$2C,$00,$8C,$00,$CC,$00 ; B0BB AA 00 2C 00 8C 00 CC 00 ..,.....
+l09_bombs_term:
.byte $FF ; B0C3 FF .
; ----------------------------------------------------------------------------
-LB0C4: jsr L8036 ; B0C4 20 36 80 6.
+blackout_init:
+ jsr L8036 ; B0C4 20 36 80 6.
lda #$10 ; B0C7 A9 10 ..
sta SAVMSC+1 ; B0C9 85 59 .Y
jsr clear_screen_mem_jv ; B0CB 20 1E 80 ..
@@ -6469,9 +6505,9 @@ LB0E8: lda RANDOM ; B0E8 AD 0A D2
clc ; B0FA 18 .
adc $AB ; B0FB 65 AB e.
tay ; B0FD A8 .
- lda LB072,y ; B0FE B9 72 B0 .r.
+ lda l09_map_bombs,y ; B0FE B9 72 B0 .r.
sta $0903 ; B101 8D 03 09 ...
- lda LB073,y ; B104 B9 73 B0 .s.
+ lda l09_map_bombs+1,y ; B104 B9 73 B0 .s.
sta $0904 ; B107 8D 04 09 ...
lda #$00 ; B10A A9 00 ..
sta dm_progctr ; B10C 85 C0 ..
@@ -6487,7 +6523,8 @@ LB119: rts ; B119 60
map_b11a:
.byte $FE,$B3,$9C,$00,$00,$01,$FF ; B11A FE B3 9C 00 00 01 FF .......
; ----------------------------------------------------------------------------
-LB121: lda #$10 ; B121 A9 10 ..
+blackout_bomb_sub:
+ lda #$10 ; B121 A9 10 ..
sta SAVMSC+1 ; B123 85 59 .Y
lda #$D9 ; B125 A9 D9 ..
sta dm_progctr ; B127 85 C0 ..
@@ -6504,7 +6541,8 @@ LB121: lda #$10 ; B121 A9 10
rts ; B13F 60 `
; ----------------------------------------------------------------------------
-LB140: lda falling_flag ; B140 AD 21 06 .!.
+blackout_sub0:
+ lda falling_flag ; B140 AD 21 06 .!.
bne LB146 ; B143 D0 01 ..
LB145: rts ; B145 60 `
@@ -6600,10 +6638,9 @@ LB1D2: cmp #$26 ; B1D2 C9 26
LB1DE: rts ; B1DE 60 `
; ----------------------------------------------------------------------------
-; dunno what this is for yet
-data_table_b1df:
+zero_filler_b1df:
.byte $00 ; B1DF 00 .
-LB1E0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B1E0 FE 33 9C FD 04 00 04 05 .3......
+l10_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B1E0 FE 33 9C FD 04 00 04 05 .3......
.byte $06,$38,$05,$08,$7C,$05,$06,$24 ; B1E8 06 38 05 08 7C 05 06 24 .8..|..$
.byte $15,$06,$64,$15,$0E,$04,$2D,$06 ; B1F0 15 06 64 15 0E 04 2D 06 ..d...-.
.byte $38,$35,$0C,$04,$45,$06,$30,$45 ; B1F8 38 35 0C 04 45 06 30 45 85..E.0E
@@ -6614,19 +6651,24 @@ LB1E0: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B1E0 FE 33 9C FD 04 00 04 05
.byte $01,$0B,$0C,$41,$05,$40,$01,$05 ; B220 01 0B 0C 41 05 40 01 05 ...A.@..
.byte $40,$31,$05,$8C,$01,$15,$FE,$DA ; B228 40 31 05 8C 01 15 FE DA @1......
.byte $9C,$66,$30,$04,$FE,$B3,$9C ; B230 9C 66 30 04 FE B3 9C .f0....
-LB237: .byte $04,$02,$01,$38,$02,$01,$7C,$02 ; B237 04 02 01 38 02 01 7C 02 ...8..|.
+l10_map_bombs:
+ .byte $04,$02,$01,$38,$02,$01,$7C,$02 ; B237 04 02 01 38 02 01 7C 02 ...8..|.
.byte $01,$38,$12,$01,$64,$12,$01,$98 ; B23F 01 38 12 01 64 12 01 98 .8..d...
.byte $12,$01,$04,$22,$01,$98,$39,$01 ; B247 12 01 04 22 01 98 39 01 ..."..9.
.byte $58,$47,$01,$04,$52,$01,$38,$52 ; B24F 58 47 01 04 52 01 38 52 XG..R.8R
.byte $01,$98,$52,$01,$FF ; B257 01 98 52 01 FF ..R..
-LB25C: .byte $22,$00,$62,$00,$A2,$00,$64,$00 ; B25C 22 00 62 00 A2 00 64 00 ".b...d.
+l10_bombs:
+ .byte $22,$00,$62,$00,$A2,$00,$64,$00 ; B25C 22 00 62 00 A2 00 64 00 ".b...d.
.byte $84,$00,$C4,$00,$26,$00,$C8,$00 ; B264 84 00 C4 00 26 00 C8 00 ....&...
.byte $8A,$00,$2C,$00,$6C,$00,$CC,$00 ; B26C 8A 00 2C 00 6C 00 CC 00 ..,.l...
+l10_bombs_term:
.byte $FF ; B274 FF .
-LB275: .byte $03,$A8,$B2,$0A,$A4,$20,$01,$56 ; B275 03 A8 B2 0A A4 20 01 56 ..... .V
+l10_unkn0:
+ .byte $03,$A8,$B2,$0A,$A4,$20,$01,$56 ; B275 03 A8 B2 0A A4 20 01 56 ..... .V
.byte $FF ; B27D FF .
; ----------------------------------------------------------------------------
-LB27E: lda $06F5 ; B27E AD F5 06 ...
+herethere_sub0:
+ lda $06F5 ; B27E AD F5 06 ...
sta $066C ; B281 8D 6C 06 .l.
bne LB287 ; B284 D0 01 ..
rts ; B286 60 `
@@ -6660,7 +6702,8 @@ data_table_b2a8:
LB2D0: .byte $A4,$4C,$52,$70,$86,$86,$A4,$82 ; B2D0 A4 4C 52 70 86 86 A4 82 .LRp....
LB2D8: .byte $20,$20,$98,$C0,$B4,$80,$68,$40 ; B2D8 20 20 98 C0 B4 80 68 40 ....h@
; ----------------------------------------------------------------------------
-LB2E0: lda $0619 ; B2E0 AD 19 06 ...
+herethere_sub3:
+ lda $0619 ; B2E0 AD 19 06 ...
and #$0F ; B2E3 29 0F ).
bne LB2F2 ; B2E5 D0 0B ..
lda $068A ; B2E7 AD 8A 06 ...
@@ -6673,7 +6716,8 @@ LB2F2: lda $062A ; B2F2 AD 2A 06
jmp L8F79 ; B2FA 4C 79 8F Ly.
; ----------------------------------------------------------------------------
-LB2FD: lda $0680 ; B2FD AD 80 06 ...
+herethere_bomb_sub:
+ lda $0680 ; B2FD AD 80 06 ...
sta player_x_pos ; B300 8D 7E 06 .~.
lda $0685 ; B303 AD 85 06 ...
sta player_y_pos ; B306 8D 83 06 ...
@@ -6689,7 +6733,7 @@ LB2FD: lda $0680 ; B2FD AD 80 06
; referenced by routine at $B2FD
sxf_b319:
.byte $01,$86,$00,$0A,$20,$00,$00 ; B319 01 86 00 0A 20 00 00 .... ..
-LB320: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B320 FE 33 9C FD 04 00 04 05 .3......
+l11_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B320 FE 33 9C FD 04 00 04 05 .3......
.byte $08,$2C,$07,$15,$84,$05,$06,$1C ; B328 08 2C 07 15 84 05 06 1C .,......
.byte $15,$03,$48,$15,$0D,$04,$25,$07 ; B330 15 03 48 15 0D 04 25 07 ..H...%.
.byte $30,$2F,$0D,$04,$35,$06,$74,$35 ; B338 30 2F 0D 04 35 06 74 35 0/..5.t5
@@ -6703,17 +6747,22 @@ LB320: .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B320 FE 33 9C FD 04 00 04 05
.byte $C9,$9C,$04,$38,$02,$1A,$38,$02 ; B378 C9 9C 04 38 02 1A 38 02 ...8..8.
.byte $33,$32,$07,$74,$38,$05,$FE,$DA ; B380 33 32 07 74 38 05 FE DA 32.t8...
.byte $9C,$6A,$12,$0F,$FE,$B3,$9C ; B388 9C 6A 12 0F FE B3 9C .j.....
-LB38F: .byte $04,$02,$01,$3A,$02,$01,$5A,$02 ; B38F 04 02 01 3A 02 01 5A 02 ...:..Z.
+l11_map_bombs:
+ .byte $04,$02,$01,$3A,$02,$01,$5A,$02 ; B38F 04 02 01 3A 02 01 5A 02 ...:..Z.
.byte $01,$7A,$02,$01,$98,$02,$01,$20 ; B397 01 7A 02 01 98 02 01 20 .z.....
.byte $12,$01,$5A,$12,$01,$04,$22,$01 ; B39F 12 01 5A 12 01 04 22 01 ..Z...".
.byte $3A,$22,$01,$04,$32,$01,$78,$32 ; B3A7 3A 22 01 04 32 01 78 32 :"..2.x2
.byte $01,$98,$32,$01,$04,$52,$01,$38 ; B3AF 01 98 32 01 04 52 01 38 ..2..R.8
.byte $52,$01,$60,$52,$01,$FF ; B3B7 52 01 60 52 01 FF R.`R..
-LB3BD: .byte $22,$10,$62,$20,$82,$30,$A2,$40 ; B3BD 22 10 62 20 82 30 A2 40 ".b .0.@
+l11_bombs:
+ .byte $22,$10,$62,$20,$82,$30,$A2,$40 ; B3BD 22 10 62 20 82 30 A2 40 ".b .0.@
.byte $C2,$50,$44,$60,$84,$70,$26,$80 ; B3C5 C2 50 44 60 84 70 26 80 .PD`.p&.
.byte $66,$90,$28,$A0,$A8,$B0,$C8,$C0 ; B3CD 66 90 28 A0 A8 B0 C8 C0 f.(.....
- .byte $2C,$D0,$6C,$E0,$8C,$F0,$FF ; B3D5 2C D0 6C E0 8C F0 FF ,.l....
-LB3DC: .byte $00,$00,$FC,$B3,$06,$B4,$10,$B4 ; B3DC 00 00 FC B3 06 B4 10 B4 ........
+ .byte $2C,$D0,$6C,$E0,$8C,$F0 ; B3D5 2C D0 6C E0 8C F0 ,.l...
+l11_bombs_term:
+ .byte $FF ; B3DB FF .
+l11_map_changes:
+ .byte $00,$00,$FC,$B3,$06,$B4,$10,$B4 ; B3DC 00 00 FC B3 06 B4 10 B4 ........
.byte $06,$B4,$10,$B4,$1A,$B4,$24,$B4 ; B3E4 06 B4 10 B4 1A B4 24 B4 ......$.
.byte $2E,$B4,$38,$B4,$2E,$B4,$38,$B4 ; B3EC 2E B4 38 B4 2E B4 38 B4 ..8...8.
.byte $FC,$B3,$24,$B4,$1A,$B4,$42,$B4 ; B3F4 FC B3 24 B4 1A B4 42 B4 ..$...B.
@@ -6728,14 +6777,16 @@ LB3DC: .byte $00,$00,$FC,$B3,$06,$B4,$10,$B4 ; B3DC 00 00 FC B3 06 B4 10 B4
.byte $00,$04,$54,$3F,$04,$FF,$FE,$89 ; B43C 00 04 54 3F 04 FF FE 89 ..T?....
.byte $9C,$FD,$00,$04,$8C,$1D,$04,$FF ; B444 9C FD 00 04 8C 1D 04 FF ........
; ----------------------------------------------------------------------------
-LB44C: lda #$01 ; B44C A9 01 ..
+hatch_bomb_sub:
+ lda #$01 ; B44C A9 01 ..
sta $0770 ; B44E 8D 70 07 .p.
lda #$00 ; B451 A9 00 ..
sta $0771 ; B453 8D 71 07 .q.
rts ; B456 60 `
; ----------------------------------------------------------------------------
-LB457: lda $0623 ; B457 AD 23 06 .#.
+hatch_sub0:
+ lda $0623 ; B457 AD 23 06 .#.
cmp #$02 ; B45A C9 02 ..
bne LB46A ; B45C D0 0C ..
lda #$00 ; B45E A9 00 ..
@@ -6823,7 +6874,7 @@ LB502: sty $A0 ; B502 84 A0
; ----------------------------------------------------------------------------
; dunno what this is for yet
-data_table_b50b:
+hatch_table_b50b:
.byte $03,$1C,$B5,$08,$00,$00,$01,$56 ; B50B 03 1C B5 08 00 00 01 56 .......V
.byte $04,$1C,$B5,$08,$00,$00,$05,$1A ; B513 04 1C B5 08 00 00 05 1A ........
.byte $FF,$00,$00,$18,$18,$24,$24,$18 ; B51B FF 00 00 18 18 24 24 18 .....$$.
@@ -6841,19 +6892,20 @@ sfx_woop:
.byte $DC,$01,$01,$A6,$00,$C8,$02,$01 ; B56C DC 01 01 A6 00 C8 02 01 ........
.byte $A4,$DC,$01,$01,$A2,$F0,$01,$00 ; B574 A4 DC 01 01 A2 F0 01 00 ........
; ----------------------------------------------------------------------------
-LB57C: lda #$00 ; B57C A9 00 ..
+hatch_sub3:
+ lda #$00 ; B57C A9 00 ..
jmp L8F76 ; B57E 4C 76 8F Lv.
; ----------------------------------------------------------------------------
-LB581: lda $062A ; B581 AD 2A 06 .*.
+hatch_sub1:
+ lda $062A ; B581 AD 2A 06 .*.
sta PCOLR3 ; B584 8D C3 02 ...
rts ; B587 60 `
; ----------------------------------------------------------------------------
zero_filler_8588:
.byte $00,$00,$00,$00,$00,$00,$00,$00 ; B588 00 00 00 00 00 00 00 00 ........
-data_b590:
- .byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B590 FE 33 9C FD 04 00 04 05 .3......
+l12_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B590 FE 33 9C FD 04 00 04 05 .3......
.byte $08,$3C,$05,$0A,$7C,$05,$08,$04 ; B598 08 3C 05 0A 7C 05 08 04 .<..|...
.byte $25,$26,$04,$43,$26,$04,$55,$06 ; B5A0 25 26 04 43 26 04 55 06 %&.C&.U.
.byte $3C,$55,$0A,$84,$55,$06,$04,$43 ; B5A8 3C 55 0A 84 55 06 04 43 <U..U..C
@@ -6862,17 +6914,22 @@ data_b590:
.byte $2A,$1F,$09,$6A,$1F,$09,$0C,$3F ; B5C0 2A 1F 09 6A 1F 09 0C 3F *..j...?
.byte $05,$4C,$3F,$05,$8C,$3F,$05,$FE ; B5C8 05 4C 3F 05 8C 3F 05 FE .L?..?..
.byte $B3,$9C ; B5D0 B3 9C ..
-LB5D2: .byte $04,$02,$01,$20,$02,$01,$3C,$02 ; B5D2 04 02 01 20 02 01 3C 02 ... ..<.
+l12_map_bombs:
+ .byte $04,$02,$01,$20,$02,$01,$3C,$02 ; B5D2 04 02 01 20 02 01 3C 02 ... ..<.
.byte $01,$60,$02,$01,$7C,$02,$01,$98 ; B5DA 01 60 02 01 7C 02 01 98 .`..|...
.byte $02,$01,$04,$22,$01,$98,$22,$01 ; B5E2 02 01 04 22 01 98 22 01 ..."..".
.byte $3C,$36,$01,$60,$36,$01,$04,$52 ; B5EA 3C 36 01 60 36 01 04 52 <6.`6..R
.byte $01,$3C,$52,$01,$60,$52,$01,$98 ; B5F2 01 3C 52 01 60 52 01 98 .<R.`R..
.byte $52,$01,$FF ; B5FA 52 01 FF R..
-LB5FD: .byte $22,$10,$42,$20,$62,$00,$82,$00 ; B5FD 22 10 42 20 62 00 82 00 ".B b...
+l12_bombs:
+ .byte $22,$10,$42,$20,$62,$00,$82,$00 ; B5FD 22 10 42 20 62 00 82 00 ".B b...
.byte $A2,$30,$C2,$40,$26,$00,$C6,$00 ; B605 A2 30 C2 40 26 00 C6 00 .0.@&...
.byte $68,$00,$88,$00,$2C,$00,$6C,$00 ; B60D 68 00 88 00 2C 00 6C 00 h...,.l.
- .byte $8C,$00,$CC,$00,$FF ; B615 8C 00 CC 00 FF .....
-LB61A: .byte $00,$00,$24,$B6,$2E,$B6,$3E,$B6 ; B61A 00 00 24 B6 2E B6 3E B6 ..$...>.
+ .byte $8C,$00,$CC,$00 ; B615 8C 00 CC 00 ....
+l12_bombs_term:
+ .byte $FF ; B619 FF .
+l12_map_changes:
+ .byte $00,$00,$24,$B6,$2E,$B6,$3E,$B6 ; B61A 00 00 24 B6 2E B6 3E B6 ..$...>.
.byte $4E,$B6,$FE,$49,$9C,$FD,$04,$00 ; B622 4E B6 FE 49 9C FD 04 00 N..I....
.byte $78,$43,$02,$FF,$FE,$49,$9C,$FD ; B62A 78 43 02 FF FE 49 9C FD xC...I..
.byte $04,$00,$3C,$25,$02,$FD,$04,$00 ; B632 04 00 3C 25 02 FD 04 00 ..<%....
@@ -6880,7 +6937,8 @@ LB61A: .byte $00,$00,$24,$B6,$2E,$B6,$3E,$B6 ; B61A 00 00 24 B6 2E B6 3E B6
.byte $04,$00,$7C,$25,$02,$FD,$04,$00 ; B642 04 00 7C 25 02 FD 04 00 ..|%....
.byte $5C,$25,$02,$FF,$FE,$49,$9C,$FD ; B64A 5C 25 02 FF FE 49 9C FD \%...I..
.byte $04,$00,$5C,$43,$02,$FF ; B652 04 00 5C 43 02 FF ..\C..
-LB658: .byte $00,$71,$B6,$08,$40,$02,$01,$08 ; B658 00 71 B6 08 40 02 01 08 .q..@...
+l12_unkn0:
+ .byte $00,$71,$B6,$08,$40,$02,$01,$08 ; B658 00 71 B6 08 40 02 01 08 .q..@...
.byte $03,$71,$B6,$08,$14,$40,$02,$08 ; B660 03 71 B6 08 14 40 02 08 .q...@..
.byte $04,$71,$B6,$08,$00,$80,$03,$08 ; B668 04 71 B6 08 00 80 03 08 .q......
.byte $FF,$47,$EF,$3E,$1E,$1E,$0E,$02 ; B670 FF 47 EF 3E 1E 1E 0E 02 .G.>....
@@ -6889,7 +6947,8 @@ LB658: .byte $00,$71,$B6,$08,$40,$02,$01,$08 ; B658 00 71 B6 08 40 02 01 08
.byte $05,$40,$EE,$3F,$1E,$1C,$0C,$02 ; B688 05 40 EE 3F 1E 1C 0C 02 .@.?....
.byte $05 ; B690 05 .
; ----------------------------------------------------------------------------
-LB691: lda falling_flag ; B691 AD 21 06 .!.
+hurr_sub0:
+ lda falling_flag ; B691 AD 21 06 .!.
bne LB697 ; B694 D0 01 ..
rts ; B696 60 `
@@ -6898,7 +6957,8 @@ LB697: inc player_x_pos ; B697 EE 7E 06
LB69A: rts ; B69A 60 `
; ----------------------------------------------------------------------------
-LB69B: lda player_speed ; B69B AD 24 06 .$.
+hurr_sub1:
+ lda player_speed ; B69B AD 24 06 .$.
cmp #$09 ; B69E C9 09 ..
bcs LB6A9 ; B6A0 B0 07 ..
lda $0623 ; B6A2 AD 23 06 .#.
@@ -6947,7 +7007,8 @@ LB702: lda $076C ; B702 AD 6C 07
rts ; B708 60 `
; ----------------------------------------------------------------------------
-LB709: lda $06F5 ; B709 AD F5 06 ...
+hurr_sub2:
+ lda $06F5 ; B709 AD F5 06 ...
cmp #$01 ; B70C C9 01 ..
bne LB71C ; B70E D0 0C ..
inc $0669 ; B710 EE 69 06 .i.
diff --git a/jumpmanjr.info b/jumpmanjr.info
index 0bf6eca..da90ca8 100644
--- a/jumpmanjr.info
+++ b/jumpmanjr.info
@@ -52,8 +52,8 @@ label { name "update_score_display"; addr $8CBC; comment "also adds extra life e
label { name "update_score_display_jv"; addr $800C; comment "also adds extra life every 7500 points"; };
label { name "score_mod_1m"; addr $B7C0; comment "roll over the score if it's >= 1 million"; };
label { name "score_below_1m"; addr $B7EE; };
-label { name "level08_letters"; addr $AF58; comment "called at end of Spellbound, adds up letter bonus"; };
-label { name "l08_got_all"; addr $AF5E; comment "got all the bombs"; };
+label { name "spellbound_letters"; addr $AF58; comment "called at end of Spellbound, adds up letter bonus"; };
+label { name "spellbound_got_all"; addr $AF5E; comment "got all the bombs"; };
label { name "bonus_250_pts"; addr $AF96; comment "per letter"; };
label { name "epyx_jumpman"; addr $AEAF; comment "letters for level08, spellbound (not ASCII or screencodes though)"; };
@@ -296,7 +296,7 @@ label { name "play_hellstone_sfx"; addr $A88D; };
label { name "sfx_hellstone"; addr $a90d; };
range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment "screen codes, displayed by well_done_screen"; };
range { name "zero_filler_8588"; start $B588; end $B58f; type bytetable; };
-range { name "data_b590"; start $B590; end $B690; type bytetable; };
+#range { name "data_b590"; start $B590; end $B690; type bytetable; };
range { name "wind_table_1"; start $B76B; end $b7bf; type bytetable; comment "used in level12"; };
label { name "wind_table_2"; addr $b771; };
label { name "electrocution_bomb_pickup"; addr $A498; comment "not sure what this actually does"; };
@@ -317,21 +317,101 @@ label { name "l01_map_change_2"; addr $a3c2; };
label { name "l01_map_change_3"; addr $a3cc; };
range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; comment "probably just filler"; };
-range { name "l02_map"; start $A3e0; end $a497; type bytetable; comment "level map data starts here"; };
+range { name "l02_map"; start $A3e0; end $a445; type bytetable; comment "level map data starts here"; };
+range { name "l02_map_bombs"; start $A446; end $a476; type bytetable; };
+range { name "l02_bombs"; start $A477; end $a496; type bytetable; };
+range { name "l02_bombs_term"; start $A497; end $a497; type bytetable; };
+
+range { name "data_a542"; start $A542; end $A5EF; type bytetable; comment "dunno, referenced by electrocution_bomb_pickup"; };
+range { name "l03_map"; start $A5F0; end $a62e; type bytetable; comment "level map data starts here"; };
+range { name "l03_map_bombs"; start $a62f; end $a653; type bytetable; };
+range { name "l03_bombs"; start $a654; end $a66b; type bytetable; };
+range { name "l03_bombs_term"; start $a66c; end $a66c; type bytetable; };
+range { name "l03_unkn"; start $a66d; end $a684; type bytetable; };
range { name "sfx_electrocution"; start $A52D; end $A53C; type bytetable; };
-range { name "data_a542"; start $A542; end $A68B; type bytetable; comment "dunno, referenced by electrocution_bomb_pickup"; };
-range { name "dumbwaiter_player"; start $a782; end $A826; type bytetable; comment "the dumbwaiters from level03. stored upside-down."; };
-label { name "dw_platform_player"; addr $A685; comment "horizontally moving platforms from level03"; };
-range { name "data_table_a8fd"; start $a8fd; end $A9C5; type bytetable; comment "dunno, referenced by routine at $A8D4"; };
+range { name "dumbwaiter_player"; start $a782; end $a78f; type bytetable; comment "the dumbwaiters from level03. stored upside-down. trailing 00's might just be filler."; };
+range { name "dw_platform_player"; start $A685; end $a68b; type bytetable; comment "horizontally moving platforms from level03"; };
+
+range { name "l04_map"; start $a790; end $a7d4; type bytetable; comment "level map data starts here"; };
+range { name "l04_map_bombs"; start $a7d5; end $a805; type bytetable; };
+range { name "l04_bombs"; start $a806; end $a825; type bytetable; };
+range { name "l04_bombs_term"; start $a826; end $a826; type bytetable; };
+
+range { name "l05_map"; start $aad0; end $ab41; type bytetable; comment "level map data starts here"; };
+range { name "l05_map_bombs"; start $ab42; end $ab6c; type bytetable; };
+range { name "l05_bombs"; start $ab6d; end $ab88; type bytetable; };
+range { name "l05_bombs_term"; start $ab89; end $ab89; type bytetable; };
+range { name "l05_map_changes"; start $ab8a; end $ac5f; type bytetable; };
+
+range { name "data_table_a8fd"; start $a8fd; end $a91f; type bytetable; comment "dunno, referenced by routine at $A8D4"; };
+range { name "l06_map"; start $a920; end $a973; type bytetable; };
+range { name "l06_map_bombs"; start $a974; end $a9a4; type bytetable; };
+range { name "l06_bombs"; start $a9a5; end $a9c4; type bytetable; };
+range { name "l06_bombs_term"; start $a9c5; end $a9c5; type bytetable; };
+
+range { name "l07_map"; start $ac60; end $acb9; type bytetable; };
+range { name "l07_map_bombs"; start $acba; end $ace4; type bytetable; };
+range { name "l07_bombs"; start $ace5; end $ad00; type bytetable; };
+range { name "l07_bombs_term"; start $ad01; end $ad01; type bytetable; };
+range { name "l07_map_changes"; start $ad02; end $ad67; type bytetable; };
+
+range { name "data_table_adc7"; start $adc7; end $addf; type bytetable; comment "dunno, referenced by routines at $AD9E and $ADB5"; };
+range { name "l08_map"; start $ade0; end $ae4b; type bytetable; };
+range { name "l08_map_bombs"; start $ae4c; end $ae70; type bytetable; };
+range { name "l08_bombs"; start $ae71; end $ae88; type bytetable; };
+range { name "l08_bombs_term"; start $ae89; end $ae89; type bytetable; };
+range { name "l08_unkn0"; start $ae8a; end $ae9a; type bytetable; };
+label { name "spellbound_bomb_sub"; addr $AF23; };
+label { name "spellbound_init"; addr $AE9B; };
+
+range { name "l09_real_map"; start $b000; end $b0a2; type bytetable; comment "blackout doesn't draw the map initially"; };
+#range { name "l09_map"; start $b0a2; end $b0a2; type bytetable; comment "blackout doesn't draw the map initially"; };
+#range { name "l09_map_bombs"; start $b072; end $b0a2; type bytetable; };
+label { name "l09_map_bombs"; addr $b072; size $21; };
+range { name "l09_bombs"; start $b0a3; end $b0c2; type bytetable; };
+range { name "l09_bombs_term"; start $b0c3; end $b0c3; type bytetable; };
+label { name "l09_map"; addr $b0a2; comment "blackout doesn't draw the map initially"; };
+label { name "blackout_bomb_sub"; addr $B121; };
+label { name "blackout_init"; addr $B0C4; };
+label { name "blackout_sub0"; addr $B140; };
+
+label { name "herethere_sub0"; addr $B27E; };
+label { name "herethere_sub3"; addr $B2E0; };
+range { name "zero_filler_b1df"; start $b1df; end $b1df; type bytetable; };
+range { name "l10_map"; start $B1E0; end $b236; type bytetable; };
+range { name "l10_map_bombs"; start $b237; end $b25b; type bytetable; };
+range { name "l10_bombs"; start $b25c; end $b273; type bytetable; };
+range { name "l10_bombs_term"; start $b274; end $b274; type bytetable; };
+range { name "l10_unkn0"; start $b275; end $b27d; type bytetable; };
+label { name "herethere_bomb_sub"; addr $B2FD; };
+
+label { name "hatch_sub0"; addr $B457; };
+label { name "hatch_sub1"; addr $B581; };
+label { name "hatch_sub3"; addr $B57C; };
+range { name "l11_map"; start $B320; end $b38e; type bytetable; };
+range { name "l11_map_bombs"; start $B38F; end $B3BC; type bytetable; };
+range { name "l11_bombs"; start $B3BD; end $b3da; type bytetable; };
+range { name "l11_bombs_term"; start $b3db; end $b3db; type bytetable; };
+range { name "l11_map_changes"; start $B3DC; end $b44b; type bytetable; };
+label { name "hatch_bomb_sub"; addr $B44C; };
+
+label { name "hurr_sub0"; addr $b691; };
+label { name "hurr_sub1"; addr $b69b; };
+label { name "hurr_sub2"; addr $B709; };
+range { name "l12_map"; start $b590; end $b5d1; type bytetable; };
+range { name "l12_map_bombs"; start $b5d2; end $b5fc; type bytetable; };
+range { name "l12_bombs"; start $b5fd; end $b618; type bytetable; };
+range { name "l12_bombs_term"; start $b619; end $b619; type bytetable; };
+range { name "l12_map_changes"; start $b61a; end $b657; type bytetable; };
+range { name "l12_unkn0"; start $b658; end $b690; type bytetable; };
+
range { name "map_aa90"; start $aa90; end $aabb; type bytetable; comment "dunno what this is for yet"; };
-range { name "map_aac8"; start $aac8; end $AD67; type bytetable; comment "dunno what this is for yet"; };
+range { name "map_aac8"; start $aac8; end $aacf; type bytetable; comment "dunno what this is for yet"; };
label { name "map_aaa6"; addr $aaa6; comment "referenced by routine at $AA82"; };
-range { name "data_table_adc7"; start $adc7; end $AE9A; type bytetable; comment "dunno, referenced by routines at $AD9E and $ADB5"; };
range { name "data_table_aea4"; start $aea4; end $af0f; type bytetable; comment "dunno"; };
-range { name "sfx_letter_bonus"; start $AFCB; end $b0c3; type bytetable; comment "played once per correct letter at end of level08 (spellbound)"; };
+range { name "sfx_letter_bonus"; start $AFCB; end $afff; type bytetable; comment "played once per correct letter at end of level08 (spellbound)"; };
label { name "cue_letter_sfx"; addr $AFB9; comment "play sfx_letter_bonus"; };
-label { name "map_b000"; addr $b000; comment "referenced by routine at $B0C4"; };
label { name "stub"; addr $8405; comment "just an RTS"; };
range { name "data_table_85b6"; start $85b6; end $85bd; type bytetable; comment "used in vblank_imm_isr, not sure for what yet"; };
label { name "page6_initial_vectors_minus_one"; addr $85d3; comment "1-indexed"; };
@@ -358,10 +438,9 @@ label { name "sh_up_rope"; addr $9cc9; };
label { name "sh_down_rope"; addr $9cda; };
label { name "sh_9ceb"; addr $9ceb; comment "dunno what this is yet"; };
range { name "sprite_table"; start $9d00; end $9dff; type bytetable; comment "jumpman's animation frames and other sprites, seem to be 10 bytes per sprite"; };
-range { name "sxf_b319"; start $b319; end $B44B; type bytetable; comment "referenced by routine at $B2FD"; };
-range { name "data_table_b1df"; start $b1df; end $B27d; type bytetable; comment "dunno what this is for yet"; };
+range { name "sxf_b319"; start $b319; end $b31f; type bytetable; comment "referenced by routine at $B2FD"; };
range { name "data_table_b2a8"; start $b2a8; end $B2df; type bytetable; comment "dunno what this is for yet"; };
-range { name "data_table_b50b"; start $b50b; end $B57b; type bytetable; comment "dunno what this is for yet"; };
+range { name "hatch_table_b50b"; start $b50b; end $B57b; type bytetable; comment "dunno what this is for yet"; };
range { name "scores_screen_dlist"; start $8C52; end $8C67; type bytetable; comment "a GR.2-ish DL, with DLIs, screen mem at $3000, for player scores screen"; };
label { name "reyalp_msg_minus_one"; addr $8c67; };
label { name "show_reyalp_msg"; addr $8BC0; comment "shows PLAYER (backwards loop)"; };
@@ -677,7 +756,7 @@ label { name "cur_level_offs_55"; addr $07f7; size 3; comment "unknown, always $
label { name "cur_level_offs_58"; addr $07fa; size 2; comment "unknown, not a ROM address"; };
label { name "cur_level_offs_60"; addr $07fc; size 4; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level01_desc"; start $a000; end $a001; type bytetable; comment "64-byte level descriptors, 12 of them (1 per level). first 2 bytes are level number in screencodes"; };
+range { name "level01_desc"; start $a000; end $a001; type bytetable; comment "64-byte level descriptors, 12 of them (1 per level). Descriptor for Nothing To It. first 2 bytes are level number in screencodes"; };
range { name "level01_sub0"; start $a002; end $a003; type addrtable; comment "a subroutine"; };
range { name "level01_sub1"; start $a004; end $a005; type addrtable; comment "a subroutine"; };
range { name "level01_sub2"; start $a006; end $a007; type addrtable; comment "a subroutine"; };
@@ -711,7 +790,7 @@ range { name "level01_offs_55"; start $a037; end $a039; type bytetable; comment
range { name "level01_offs_58"; start $a03a; end $a03b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level01_offs_60"; start $a03c; end $a03f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level02_desc"; start $a040; end $a041; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level02_desc"; start $a040; end $a041; type bytetable; comment "Descriptor for Electrocution. first 2 bytes are level number in screencodes"; };
range { name "level02_sub0"; start $a042; end $a043; type addrtable; comment "a subroutine"; };
range { name "level02_sub1"; start $a044; end $a045; type addrtable; comment "a subroutine"; };
range { name "level02_sub2"; start $a046; end $a047; type addrtable; comment "a subroutine"; };
@@ -745,7 +824,7 @@ range { name "level02_offs_55"; start $a077; end $a079; type bytetable; comment
range { name "level02_offs_58"; start $a07a; end $a07b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level02_offs_60"; start $a07c; end $a07f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level03_desc"; start $a080; end $a081; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level03_desc"; start $a080; end $a081; type bytetable; comment "Descriptor for Dumbwaiter. first 2 bytes are level number in screencodes"; };
range { name "level03_sub0"; start $a082; end $a083; type addrtable; comment "a subroutine"; };
range { name "level03_sub1"; start $a084; end $a085; type addrtable; comment "a subroutine"; };
range { name "level03_sub2"; start $a086; end $a087; type addrtable; comment "a subroutine"; };
@@ -779,7 +858,7 @@ range { name "level03_offs_55"; start $a0b7; end $a0b9; type bytetable; comment
range { name "level03_offs_58"; start $a0ba; end $a0bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level03_offs_60"; start $a0bc; end $a0bf; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level04_desc"; start $a0c0; end $a0c1; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level04_desc"; start $a0c0; end $a0c1; type bytetable; comment "Descriptor for Hellstones. first 2 bytes are level number in screencodes"; };
range { name "level04_sub0"; start $a0c2; end $a0c3; type addrtable; comment "a subroutine"; };
range { name "level04_sub1"; start $a0c4; end $a0c5; type addrtable; comment "a subroutine"; };
range { name "level04_sub2"; start $a0c6; end $a0c7; type addrtable; comment "a subroutine"; };
@@ -813,7 +892,7 @@ range { name "level04_offs_55"; start $a0f7; end $a0f9; type bytetable; comment
range { name "level04_offs_58"; start $a0fa; end $a0fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level04_offs_60"; start $a0fc; end $a0ff; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level05_desc"; start $a100; end $a101; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level05_desc"; start $a100; end $a101; type bytetable; comment "Descriptor for Figurits Revenge. first 2 bytes are level number in screencodes"; };
range { name "level05_sub0"; start $a102; end $a103; type addrtable; comment "a subroutine"; };
range { name "level05_sub1"; start $a104; end $a105; type addrtable; comment "a subroutine"; };
range { name "level05_sub2"; start $a106; end $a107; type addrtable; comment "a subroutine"; };
@@ -847,7 +926,7 @@ range { name "level05_offs_55"; start $a137; end $a139; type bytetable; comment
range { name "level05_offs_58"; start $a13a; end $a13b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level05_offs_60"; start $a13c; end $a13f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level06_desc"; start $a140; end $a141; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level06_desc"; start $a140; end $a141; type bytetable; comment "Descriptor for Walls. first 2 bytes are level number in screencodes"; };
range { name "level06_sub0"; start $a142; end $a143; type addrtable; comment "a subroutine"; };
range { name "level06_sub1"; start $a144; end $a145; type addrtable; comment "a subroutine"; };
range { name "level06_sub2"; start $a146; end $a147; type addrtable; comment "a subroutine"; };
@@ -881,7 +960,7 @@ range { name "level06_offs_55"; start $a177; end $a179; type bytetable; comment
range { name "level06_offs_58"; start $a17a; end $a17b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level06_offs_60"; start $a17c; end $a17f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level07_desc"; start $a180; end $a181; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level07_desc"; start $a180; end $a181; type bytetable; comment "Descriptor for Zig-Zag. first 2 bytes are level number in screencodes"; };
range { name "level07_sub0"; start $a182; end $a183; type addrtable; comment "a subroutine"; };
range { name "level07_sub1"; start $a184; end $a185; type addrtable; comment "a subroutine"; };
range { name "level07_sub2"; start $a186; end $a187; type addrtable; comment "a subroutine"; };
@@ -915,7 +994,7 @@ range { name "level07_offs_55"; start $a1b7; end $a1b9; type bytetable; comment
range { name "level07_offs_58"; start $a1ba; end $a1bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level07_offs_60"; start $a1bc; end $a1bf; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level08_desc"; start $a1c0; end $a1c1; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level08_desc"; start $a1c0; end $a1c1; type bytetable; comment "Descriptor for Spellbound. first 2 bytes are level number in screencodes"; };
range { name "level08_sub0"; start $a1c2; end $a1c3; type addrtable; comment "a subroutine"; };
range { name "level08_sub1"; start $a1c4; end $a1c5; type addrtable; comment "a subroutine"; };
range { name "level08_sub2"; start $a1c6; end $a1c7; type addrtable; comment "a subroutine"; };
@@ -949,7 +1028,7 @@ range { name "level08_offs_55"; start $a1f7; end $a1f9; type bytetable; comment
range { name "level08_offs_58"; start $a1fa; end $a1fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level08_offs_60"; start $a1fc; end $a1ff; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level09_desc"; start $a200; end $a201; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level09_desc"; start $a200; end $a201; type bytetable; comment "Descriptor for Blackout. first 2 bytes are level number in screencodes"; };
range { name "level09_sub0"; start $a202; end $a203; type addrtable; comment "a subroutine"; };
range { name "level09_sub1"; start $a204; end $a205; type addrtable; comment "a subroutine"; };
range { name "level09_sub2"; start $a206; end $a207; type addrtable; comment "a subroutine"; };
@@ -983,7 +1062,7 @@ range { name "level09_offs_55"; start $a237; end $a239; type bytetable; comment
range { name "level09_offs_58"; start $a23a; end $a23b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level09_offs_60"; start $a23c; end $a23f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level10_desc"; start $a240; end $a241; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level10_desc"; start $a240; end $a241; type bytetable; comment "Descriptor for HereThereEverywhere. first 2 bytes are level number in screencodes"; };
range { name "level10_sub0"; start $a242; end $a243; type addrtable; comment "a subroutine"; };
range { name "level10_sub1"; start $a244; end $a245; type addrtable; comment "a subroutine"; };
range { name "level10_sub2"; start $a246; end $a247; type addrtable; comment "a subroutine"; };
@@ -1017,7 +1096,7 @@ range { name "level10_offs_55"; start $a277; end $a279; type bytetable; comment
range { name "level10_offs_58"; start $a27a; end $a27b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level10_offs_60"; start $a27c; end $a27f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level11_desc"; start $a280; end $a281; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level11_desc"; start $a280; end $a281; type bytetable; comment "Descriptor for Hatchlings. first 2 bytes are level number in screencodes"; };
range { name "level11_sub0"; start $a282; end $a283; type addrtable; comment "a subroutine"; };
range { name "level11_sub1"; start $a284; end $a285; type addrtable; comment "a subroutine"; };
range { name "level11_sub2"; start $a286; end $a287; type addrtable; comment "a subroutine"; };
@@ -1051,7 +1130,7 @@ range { name "level11_offs_55"; start $a2b7; end $a2b9; type bytetable; comment
range { name "level11_offs_58"; start $a2ba; end $a2bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level11_offs_60"; start $a2bc; end $a2bf; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level12_desc"; start $a2c0; end $a2c1; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level12_desc"; start $a2c0; end $a2c1; type bytetable; comment "Descriptor for Hurricane. first 2 bytes are level number in screencodes"; };
range { name "level12_sub0"; start $a2c2; end $a2c3; type addrtable; comment "a subroutine"; };
range { name "level12_sub1"; start $a2c4; end $a2c5; type addrtable; comment "a subroutine"; };
range { name "level12_sub2"; start $a2c6; end $a2c7; type addrtable; comment "a subroutine"; };
diff --git a/leveldesc.info b/leveldesc.info
index ed6a200..12e7301 100644
--- a/leveldesc.info
+++ b/leveldesc.info
@@ -66,7 +66,7 @@ label { name "cur_level_offs_55"; addr $07f7; size 3; comment "unknown, always $
label { name "cur_level_offs_58"; addr $07fa; size 2; comment "unknown, not a ROM address"; };
label { name "cur_level_offs_60"; addr $07fc; size 4; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level01_desc"; start $a000; end $a001; type bytetable; comment "64-byte level descriptors, 12 of them (1 per level). first 2 bytes are level number in screencodes"; };
+range { name "level01_desc"; start $a000; end $a001; type bytetable; comment "64-byte level descriptors, 12 of them (1 per level). Descriptor for Nothing To It. first 2 bytes are level number in screencodes"; };
range { name "level01_sub0"; start $a002; end $a003; type addrtable; comment "a subroutine"; };
range { name "level01_sub1"; start $a004; end $a005; type addrtable; comment "a subroutine"; };
range { name "level01_sub2"; start $a006; end $a007; type addrtable; comment "a subroutine"; };
@@ -100,7 +100,7 @@ range { name "level01_offs_55"; start $a037; end $a039; type bytetable; comment
range { name "level01_offs_58"; start $a03a; end $a03b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level01_offs_60"; start $a03c; end $a03f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level02_desc"; start $a040; end $a041; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level02_desc"; start $a040; end $a041; type bytetable; comment "Descriptor for Electrocution. first 2 bytes are level number in screencodes"; };
range { name "level02_sub0"; start $a042; end $a043; type addrtable; comment "a subroutine"; };
range { name "level02_sub1"; start $a044; end $a045; type addrtable; comment "a subroutine"; };
range { name "level02_sub2"; start $a046; end $a047; type addrtable; comment "a subroutine"; };
@@ -134,7 +134,7 @@ range { name "level02_offs_55"; start $a077; end $a079; type bytetable; comment
range { name "level02_offs_58"; start $a07a; end $a07b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level02_offs_60"; start $a07c; end $a07f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level03_desc"; start $a080; end $a081; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level03_desc"; start $a080; end $a081; type bytetable; comment "Descriptor for Dumbwaiter. first 2 bytes are level number in screencodes"; };
range { name "level03_sub0"; start $a082; end $a083; type addrtable; comment "a subroutine"; };
range { name "level03_sub1"; start $a084; end $a085; type addrtable; comment "a subroutine"; };
range { name "level03_sub2"; start $a086; end $a087; type addrtable; comment "a subroutine"; };
@@ -168,7 +168,7 @@ range { name "level03_offs_55"; start $a0b7; end $a0b9; type bytetable; comment
range { name "level03_offs_58"; start $a0ba; end $a0bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level03_offs_60"; start $a0bc; end $a0bf; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level04_desc"; start $a0c0; end $a0c1; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level04_desc"; start $a0c0; end $a0c1; type bytetable; comment "Descriptor for Hellstones. first 2 bytes are level number in screencodes"; };
range { name "level04_sub0"; start $a0c2; end $a0c3; type addrtable; comment "a subroutine"; };
range { name "level04_sub1"; start $a0c4; end $a0c5; type addrtable; comment "a subroutine"; };
range { name "level04_sub2"; start $a0c6; end $a0c7; type addrtable; comment "a subroutine"; };
@@ -202,7 +202,7 @@ range { name "level04_offs_55"; start $a0f7; end $a0f9; type bytetable; comment
range { name "level04_offs_58"; start $a0fa; end $a0fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level04_offs_60"; start $a0fc; end $a0ff; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level05_desc"; start $a100; end $a101; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level05_desc"; start $a100; end $a101; type bytetable; comment "Descriptor for Figurits Revenge. first 2 bytes are level number in screencodes"; };
range { name "level05_sub0"; start $a102; end $a103; type addrtable; comment "a subroutine"; };
range { name "level05_sub1"; start $a104; end $a105; type addrtable; comment "a subroutine"; };
range { name "level05_sub2"; start $a106; end $a107; type addrtable; comment "a subroutine"; };
@@ -236,7 +236,7 @@ range { name "level05_offs_55"; start $a137; end $a139; type bytetable; comment
range { name "level05_offs_58"; start $a13a; end $a13b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level05_offs_60"; start $a13c; end $a13f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level06_desc"; start $a140; end $a141; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level06_desc"; start $a140; end $a141; type bytetable; comment "Descriptor for Walls. first 2 bytes are level number in screencodes"; };
range { name "level06_sub0"; start $a142; end $a143; type addrtable; comment "a subroutine"; };
range { name "level06_sub1"; start $a144; end $a145; type addrtable; comment "a subroutine"; };
range { name "level06_sub2"; start $a146; end $a147; type addrtable; comment "a subroutine"; };
@@ -270,7 +270,7 @@ range { name "level06_offs_55"; start $a177; end $a179; type bytetable; comment
range { name "level06_offs_58"; start $a17a; end $a17b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level06_offs_60"; start $a17c; end $a17f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level07_desc"; start $a180; end $a181; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level07_desc"; start $a180; end $a181; type bytetable; comment "Descriptor for Zig-Zag. first 2 bytes are level number in screencodes"; };
range { name "level07_sub0"; start $a182; end $a183; type addrtable; comment "a subroutine"; };
range { name "level07_sub1"; start $a184; end $a185; type addrtable; comment "a subroutine"; };
range { name "level07_sub2"; start $a186; end $a187; type addrtable; comment "a subroutine"; };
@@ -304,7 +304,7 @@ range { name "level07_offs_55"; start $a1b7; end $a1b9; type bytetable; comment
range { name "level07_offs_58"; start $a1ba; end $a1bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level07_offs_60"; start $a1bc; end $a1bf; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level08_desc"; start $a1c0; end $a1c1; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level08_desc"; start $a1c0; end $a1c1; type bytetable; comment "Descriptor for Spellbound. first 2 bytes are level number in screencodes"; };
range { name "level08_sub0"; start $a1c2; end $a1c3; type addrtable; comment "a subroutine"; };
range { name "level08_sub1"; start $a1c4; end $a1c5; type addrtable; comment "a subroutine"; };
range { name "level08_sub2"; start $a1c6; end $a1c7; type addrtable; comment "a subroutine"; };
@@ -338,7 +338,7 @@ range { name "level08_offs_55"; start $a1f7; end $a1f9; type bytetable; comment
range { name "level08_offs_58"; start $a1fa; end $a1fb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level08_offs_60"; start $a1fc; end $a1ff; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level09_desc"; start $a200; end $a201; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level09_desc"; start $a200; end $a201; type bytetable; comment "Descriptor for Blackout. first 2 bytes are level number in screencodes"; };
range { name "level09_sub0"; start $a202; end $a203; type addrtable; comment "a subroutine"; };
range { name "level09_sub1"; start $a204; end $a205; type addrtable; comment "a subroutine"; };
range { name "level09_sub2"; start $a206; end $a207; type addrtable; comment "a subroutine"; };
@@ -372,7 +372,7 @@ range { name "level09_offs_55"; start $a237; end $a239; type bytetable; comment
range { name "level09_offs_58"; start $a23a; end $a23b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level09_offs_60"; start $a23c; end $a23f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level10_desc"; start $a240; end $a241; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level10_desc"; start $a240; end $a241; type bytetable; comment "Descriptor for HereThereEverywhere. first 2 bytes are level number in screencodes"; };
range { name "level10_sub0"; start $a242; end $a243; type addrtable; comment "a subroutine"; };
range { name "level10_sub1"; start $a244; end $a245; type addrtable; comment "a subroutine"; };
range { name "level10_sub2"; start $a246; end $a247; type addrtable; comment "a subroutine"; };
@@ -406,7 +406,7 @@ range { name "level10_offs_55"; start $a277; end $a279; type bytetable; comment
range { name "level10_offs_58"; start $a27a; end $a27b; type bytetable; comment "unknown, not a ROM address"; };
range { name "level10_offs_60"; start $a27c; end $a27f; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level11_desc"; start $a280; end $a281; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level11_desc"; start $a280; end $a281; type bytetable; comment "Descriptor for Hatchlings. first 2 bytes are level number in screencodes"; };
range { name "level11_sub0"; start $a282; end $a283; type addrtable; comment "a subroutine"; };
range { name "level11_sub1"; start $a284; end $a285; type addrtable; comment "a subroutine"; };
range { name "level11_sub2"; start $a286; end $a287; type addrtable; comment "a subroutine"; };
@@ -440,7 +440,7 @@ range { name "level11_offs_55"; start $a2b7; end $a2b9; type bytetable; comment
range { name "level11_offs_58"; start $a2ba; end $a2bb; type bytetable; comment "unknown, not a ROM address"; };
range { name "level11_offs_60"; start $a2bc; end $a2bf; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };
-range { name "level12_desc"; start $a2c0; end $a2c1; type bytetable; comment "first 2 bytes are level number in screencodes"; };
+range { name "level12_desc"; start $a2c0; end $a2c1; type bytetable; comment "Descriptor for Hurricane. first 2 bytes are level number in screencodes"; };
range { name "level12_sub0"; start $a2c2; end $a2c3; type addrtable; comment "a subroutine"; };
range { name "level12_sub1"; start $a2c4; end $a2c5; type addrtable; comment "a subroutine"; };
range { name "level12_sub2"; start $a2c6; end $a2c7; type addrtable; comment "a subroutine"; };
diff --git a/main.info b/main.info
index d93f34a..9001d00 100644
--- a/main.info
+++ b/main.info
@@ -50,8 +50,8 @@ label { name "update_score_display"; addr $8CBC; comment "also adds extra life e
label { name "update_score_display_jv"; addr $800C; comment "also adds extra life every 7500 points"; };
label { name "score_mod_1m"; addr $B7C0; comment "roll over the score if it's >= 1 million"; };
label { name "score_below_1m"; addr $B7EE; };
-label { name "level08_letters"; addr $AF58; comment "called at end of Spellbound, adds up letter bonus"; };
-label { name "l08_got_all"; addr $AF5E; comment "got all the bombs"; };
+label { name "spellbound_letters"; addr $AF58; comment "called at end of Spellbound, adds up letter bonus"; };
+label { name "spellbound_got_all"; addr $AF5E; comment "got all the bombs"; };
label { name "bonus_250_pts"; addr $AF96; comment "per letter"; };
label { name "epyx_jumpman"; addr $AEAF; comment "letters for level08, spellbound (not ASCII or screencodes though)"; };
@@ -294,7 +294,7 @@ label { name "play_hellstone_sfx"; addr $A88D; };
label { name "sfx_hellstone"; addr $a90d; };
range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment "screen codes, displayed by well_done_screen"; };
range { name "zero_filler_8588"; start $B588; end $B58f; type bytetable; };
-range { name "data_b590"; start $B590; end $B690; type bytetable; };
+#range { name "data_b590"; start $B590; end $B690; type bytetable; };
range { name "wind_table_1"; start $B76B; end $b7bf; type bytetable; comment "used in level12"; };
label { name "wind_table_2"; addr $b771; };
label { name "electrocution_bomb_pickup"; addr $A498; comment "not sure what this actually does"; };
@@ -315,21 +315,101 @@ label { name "l01_map_change_2"; addr $a3c2; };
label { name "l01_map_change_3"; addr $a3cc; };
range { name "zero_filler_a3d6"; start $a3d6; end $a3df; type bytetable; comment "probably just filler"; };
-range { name "l02_map"; start $A3e0; end $a497; type bytetable; comment "level map data starts here"; };
+range { name "l02_map"; start $A3e0; end $a445; type bytetable; comment "level map data starts here"; };
+range { name "l02_map_bombs"; start $A446; end $a476; type bytetable; };
+range { name "l02_bombs"; start $A477; end $a496; type bytetable; };
+range { name "l02_bombs_term"; start $A497; end $a497; type bytetable; };
+
+range { name "data_a542"; start $A542; end $A5EF; type bytetable; comment "dunno, referenced by electrocution_bomb_pickup"; };
+range { name "l03_map"; start $A5F0; end $a62e; type bytetable; comment "level map data starts here"; };
+range { name "l03_map_bombs"; start $a62f; end $a653; type bytetable; };
+range { name "l03_bombs"; start $a654; end $a66b; type bytetable; };
+range { name "l03_bombs_term"; start $a66c; end $a66c; type bytetable; };
+range { name "l03_unkn"; start $a66d; end $a684; type bytetable; };
range { name "sfx_electrocution"; start $A52D; end $A53C; type bytetable; };
-range { name "data_a542"; start $A542; end $A68B; type bytetable; comment "dunno, referenced by electrocution_bomb_pickup"; };
-range { name "dumbwaiter_player"; start $a782; end $A826; type bytetable; comment "the dumbwaiters from level03. stored upside-down."; };
-label { name "dw_platform_player"; addr $A685; comment "horizontally moving platforms from level03"; };
-range { name "data_table_a8fd"; start $a8fd; end $A9C5; type bytetable; comment "dunno, referenced by routine at $A8D4"; };
+range { name "dumbwaiter_player"; start $a782; end $a78f; type bytetable; comment "the dumbwaiters from level03. stored upside-down. trailing 00's might just be filler."; };
+range { name "dw_platform_player"; start $A685; end $a68b; type bytetable; comment "horizontally moving platforms from level03"; };
+
+range { name "l04_map"; start $a790; end $a7d4; type bytetable; comment "level map data starts here"; };
+range { name "l04_map_bombs"; start $a7d5; end $a805; type bytetable; };
+range { name "l04_bombs"; start $a806; end $a825; type bytetable; };
+range { name "l04_bombs_term"; start $a826; end $a826; type bytetable; };
+
+range { name "l05_map"; start $aad0; end $ab41; type bytetable; comment "level map data starts here"; };
+range { name "l05_map_bombs"; start $ab42; end $ab6c; type bytetable; };
+range { name "l05_bombs"; start $ab6d; end $ab88; type bytetable; };
+range { name "l05_bombs_term"; start $ab89; end $ab89; type bytetable; };
+range { name "l05_map_changes"; start $ab8a; end $ac5f; type bytetable; };
+
+range { name "data_table_a8fd"; start $a8fd; end $a91f; type bytetable; comment "dunno, referenced by routine at $A8D4"; };
+range { name "l06_map"; start $a920; end $a973; type bytetable; };
+range { name "l06_map_bombs"; start $a974; end $a9a4; type bytetable; };
+range { name "l06_bombs"; start $a9a5; end $a9c4; type bytetable; };
+range { name "l06_bombs_term"; start $a9c5; end $a9c5; type bytetable; };
+
+range { name "l07_map"; start $ac60; end $acb9; type bytetable; };
+range { name "l07_map_bombs"; start $acba; end $ace4; type bytetable; };
+range { name "l07_bombs"; start $ace5; end $ad00; type bytetable; };
+range { name "l07_bombs_term"; start $ad01; end $ad01; type bytetable; };
+range { name "l07_map_changes"; start $ad02; end $ad67; type bytetable; };
+
+range { name "data_table_adc7"; start $adc7; end $addf; type bytetable; comment "dunno, referenced by routines at $AD9E and $ADB5"; };
+range { name "l08_map"; start $ade0; end $ae4b; type bytetable; };
+range { name "l08_map_bombs"; start $ae4c; end $ae70; type bytetable; };
+range { name "l08_bombs"; start $ae71; end $ae88; type bytetable; };
+range { name "l08_bombs_term"; start $ae89; end $ae89; type bytetable; };
+range { name "l08_unkn0"; start $ae8a; end $ae9a; type bytetable; };
+label { name "spellbound_bomb_sub"; addr $AF23; };
+label { name "spellbound_init"; addr $AE9B; };
+
+range { name "l09_real_map"; start $b000; end $b0a2; type bytetable; comment "blackout doesn't draw the map initially"; };
+#range { name "l09_map"; start $b0a2; end $b0a2; type bytetable; comment "blackout doesn't draw the map initially"; };
+#range { name "l09_map_bombs"; start $b072; end $b0a2; type bytetable; };
+label { name "l09_map_bombs"; addr $b072; size $21; };
+range { name "l09_bombs"; start $b0a3; end $b0c2; type bytetable; };
+range { name "l09_bombs_term"; start $b0c3; end $b0c3; type bytetable; };
+label { name "l09_map"; addr $b0a2; comment "blackout doesn't draw the map initially"; };
+label { name "blackout_bomb_sub"; addr $B121; };
+label { name "blackout_init"; addr $B0C4; };
+label { name "blackout_sub0"; addr $B140; };
+
+label { name "herethere_sub0"; addr $B27E; };
+label { name "herethere_sub3"; addr $B2E0; };
+range { name "zero_filler_b1df"; start $b1df; end $b1df; type bytetable; };
+range { name "l10_map"; start $B1E0; end $b236; type bytetable; };
+range { name "l10_map_bombs"; start $b237; end $b25b; type bytetable; };
+range { name "l10_bombs"; start $b25c; end $b273; type bytetable; };
+range { name "l10_bombs_term"; start $b274; end $b274; type bytetable; };
+range { name "l10_unkn0"; start $b275; end $b27d; type bytetable; };
+label { name "herethere_bomb_sub"; addr $B2FD; };
+
+label { name "hatch_sub0"; addr $B457; };
+label { name "hatch_sub1"; addr $B581; };
+label { name "hatch_sub3"; addr $B57C; };
+range { name "l11_map"; start $B320; end $b38e; type bytetable; };
+range { name "l11_map_bombs"; start $B38F; end $B3BC; type bytetable; };
+range { name "l11_bombs"; start $B3BD; end $b3da; type bytetable; };
+range { name "l11_bombs_term"; start $b3db; end $b3db; type bytetable; };
+range { name "l11_map_changes"; start $B3DC; end $b44b; type bytetable; };
+label { name "hatch_bomb_sub"; addr $B44C; };
+
+label { name "hurr_sub0"; addr $b691; };
+label { name "hurr_sub1"; addr $b69b; };
+label { name "hurr_sub2"; addr $B709; };
+range { name "l12_map"; start $b590; end $b5d1; type bytetable; };
+range { name "l12_map_bombs"; start $b5d2; end $b5fc; type bytetable; };
+range { name "l12_bombs"; start $b5fd; end $b618; type bytetable; };
+range { name "l12_bombs_term"; start $b619; end $b619; type bytetable; };
+range { name "l12_map_changes"; start $b61a; end $b657; type bytetable; };
+range { name "l12_unkn0"; start $b658; end $b690; type bytetable; };
+
range { name "map_aa90"; start $aa90; end $aabb; type bytetable; comment "dunno what this is for yet"; };
-range { name "map_aac8"; start $aac8; end $AD67; type bytetable; comment "dunno what this is for yet"; };
+range { name "map_aac8"; start $aac8; end $aacf; type bytetable; comment "dunno what this is for yet"; };
label { name "map_aaa6"; addr $aaa6; comment "referenced by routine at $AA82"; };
-range { name "data_table_adc7"; start $adc7; end $AE9A; type bytetable; comment "dunno, referenced by routines at $AD9E and $ADB5"; };
range { name "data_table_aea4"; start $aea4; end $af0f; type bytetable; comment "dunno"; };
-range { name "sfx_letter_bonus"; start $AFCB; end $b0c3; type bytetable; comment "played once per correct letter at end of level08 (spellbound)"; };
+range { name "sfx_letter_bonus"; start $AFCB; end $afff; type bytetable; comment "played once per correct letter at end of level08 (spellbound)"; };
label { name "cue_letter_sfx"; addr $AFB9; comment "play sfx_letter_bonus"; };
-label { name "map_b000"; addr $b000; comment "referenced by routine at $B0C4"; };
label { name "stub"; addr $8405; comment "just an RTS"; };
range { name "data_table_85b6"; start $85b6; end $85bd; type bytetable; comment "used in vblank_imm_isr, not sure for what yet"; };
label { name "page6_initial_vectors_minus_one"; addr $85d3; comment "1-indexed"; };
@@ -356,10 +436,9 @@ label { name "sh_up_rope"; addr $9cc9; };
label { name "sh_down_rope"; addr $9cda; };
label { name "sh_9ceb"; addr $9ceb; comment "dunno what this is yet"; };
range { name "sprite_table"; start $9d00; end $9dff; type bytetable; comment "jumpman's animation frames and other sprites, seem to be 10 bytes per sprite"; };
-range { name "sxf_b319"; start $b319; end $B44B; type bytetable; comment "referenced by routine at $B2FD"; };
-range { name "data_table_b1df"; start $b1df; end $B27d; type bytetable; comment "dunno what this is for yet"; };
+range { name "sxf_b319"; start $b319; end $b31f; type bytetable; comment "referenced by routine at $B2FD"; };
range { name "data_table_b2a8"; start $b2a8; end $B2df; type bytetable; comment "dunno what this is for yet"; };
-range { name "data_table_b50b"; start $b50b; end $B57b; type bytetable; comment "dunno what this is for yet"; };
+range { name "hatch_table_b50b"; start $b50b; end $B57b; type bytetable; comment "dunno what this is for yet"; };
range { name "scores_screen_dlist"; start $8C52; end $8C67; type bytetable; comment "a GR.2-ish DL, with DLIs, screen mem at $3000, for player scores screen"; };
label { name "reyalp_msg_minus_one"; addr $8c67; };
label { name "show_reyalp_msg"; addr $8BC0; comment "shows PLAYER (backwards loop)"; };
diff --git a/mklevelinfo.pl b/mklevelinfo.pl
index 5cc633f..e3c1492 100644
--- a/mklevelinfo.pl
+++ b/mklevelinfo.pl
@@ -69,10 +69,26 @@ EOF
return $range;
}
+@lvnames = (
+ "Nothing To It",
+ "Electrocution",
+ "Dumbwaiter",
+ "Hellstones",
+ "Figurits Revenge",
+ "Walls",
+ "Zig-Zag",
+ "Spellbound",
+ "Blackout",
+ "HereThereEverywhere",
+ "Hatchlings",
+ "Hurricane"
+);
+
for $level (-610,-609,0..11) {
$addr = 0xa000 + $level * 0x40;
for $offset (sort { $a <=> $b } keys %struct) {
my ($size, $label, $comment) = @{$struct{$offset}};
+ $comment = "Descriptor for $lvnames[$level]. $comment" if $level >= 0 && $offset == 0;
if($level == 0 && $offset == 0) {
$comment = "64-byte level descriptors, 12 of them (1 per level). " . $comment;
}