From 44d935410e8e4b9d998ae516bc7175391750c9b6 Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Fri, 2 Sep 2016 01:15:28 -0400 Subject: renumber levels so they match the displayed level number (1-based, 1st level = level01) --- jumpmanjr.dasm | 916 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 458 insertions(+), 458 deletions(-) (limited to 'jumpmanjr.dasm') diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm index 1d858f5..48718e2 100644 --- a/jumpmanjr.dasm +++ b/jumpmanjr.dasm @@ -1,5 +1,5 @@ ; da65 V2.15 - Git 104f898 -; Created: 2016-09-01 23:57:51 +; Created: 2016-09-02 01:14:13 ; Input file: jumpmanjr.rom ; Page: 1 @@ -116,7 +116,7 @@ work_level_indirect_subs:= $079E ; pointer to list of indirect su work_level_sub_bomb:= $07A0 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine work_level_sub_start:= $07A2 ; called at start of level, $06E6 for some levels, or else a ROM subroutine work_level_sub6 := $07A4 ; always $9740 aka game_main_loop -work_level_sub_eol:= $07A6 ; called at end of level (all bombs picked up). $06E6 for all but level07 +work_level_sub_eol:= $07A6 ; called at end of level (all bombs picked up). $06E6 for all but level08 work_level_offs_40:= $07A8 ; all zeroes work_level_colpf3:= $07AE ; color (not sure what gets drawn in this color yet) work_level_colpf0:= $07AF ; color for girders and up-ropes @@ -125,7 +125,7 @@ work_level_colpf2:= $07B1 ; color for bombs work_level_offs_50:= $07B2 ; unknown work_level_offs_55:= $07B7 ; unknown, always $00 $00 $00 work_level_offs_58:= $07BA ; unknown, not a ROM address -work_level_offs_60:= $07BC ; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 +work_level_offs_60:= $07BC ; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 cur_level_desc := $07C0 ; first 2 bytes are level number in screencodes cur_level_sub0 := $07C2 ; a subroutine cur_level_sub1 := $07C4 ; a subroutine @@ -149,7 +149,7 @@ cur_level_indirect_subs:= $07DE ; pointer to list of indirect su cur_level_sub_bomb:= $07E0 ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine cur_level_sub_start:= $07E2 ; called at start of level, $06E6 for some levels, or else a ROM subroutine cur_level_sub6 := $07E4 ; always $9740 aka game_main_loop -cur_level_sub_eol:= $07E6 ; called at end of level (all bombs picked up). $06E6 for all but level07 +cur_level_sub_eol:= $07E6 ; called at end of level (all bombs picked up). $06E6 for all but level08 cur_level_offs_40:= $07E8 ; all zeroes cur_level_colpf3:= $07EE ; color (not sure what gets drawn in this color yet) cur_level_colpf0:= $07EF ; color for girders and up-ropes @@ -158,7 +158,7 @@ cur_level_colpf2:= $07F1 ; color for bombs cur_level_offs_50:= $07F2 ; unknown cur_level_offs_55:= $07F7 ; unknown, always $00 $00 $00 cur_level_offs_58:= $07FA ; unknown, not a ROM address -cur_level_offs_60:= $07FC ; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 +cur_level_offs_60:= $07FC ; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 game_display_list:= $0881 ; display list for game board pm_memory := $2800 HPOSP0_minus_two:= $CFFE @@ -320,7 +320,7 @@ unused_vec_rts: ; the entry point for parsing the level map and drawing graphics from it. see level_maps.txt. caller must set $C0/$C1 to the address of the map data. modders beware: bogus map data can & will cause infinite loops. draw_map: ldy #$00 ; 8049 A0 00 .. -; $C0/$C1 points to $A300 (level00_desc) on the first call +; $C0/$C1 points to $A300 (level01_desc) on the first call dm_get_opcode: lda (dm_progctr),y ; 804B B1 C0 .. ; map opcodes: $FC = jump, $FF = end, $FD = set drawing direction, $FE = select graphics object @@ -1452,7 +1452,7 @@ store_bomb_coords: lsr a ; 8818 4A J lsr a ; 8819 4A J tay ; 881A A8 . -; some bombs redraw parts of the level (e.g. disappearing platforms on level00) +; some bombs redraw parts of the level (e.g. disappearing platforms on level01) change_map: lda work_level_map_changes ; 881B AD 9C 07 ... sta $B0 ; 881E 85 B0 .. @@ -4168,1291 +4168,1291 @@ 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 -level00_desc: +level01_desc: .byte $10,$11 ; A000 10 11 .. ; ---------------------------------------------------------------------------- ; a subroutine -level00_sub0: +level01_sub0: .addr L0000 ; A002 00 00 .. ; a subroutine -level00_sub1: +level01_sub1: .addr L0000 ; A004 00 00 .. ; a subroutine -level00_sub2: +level01_sub2: .addr L0000 ; A006 00 00 .. ; a subroutine -level00_sub3: +level01_sub3: .addr check_collisions_1 ; A008 73 8F s. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level00_num_bombs: +level01_num_bombs: .byte $0C ; A00A 0C . ; 0 = no bullets, range 0-4. -level00_bullet_max: +level01_bullet_max: .byte $01 ; A00B 01 . ; jumpman starting Y position -level00_y_start: +level01_y_start: .byte $A0 ; A00C A0 . ; jumpman starting X position -level00_x_start: +level01_x_start: .byte $7C ; A00D 7C | ; fudge factor for bomb locations, always $00 -level00_fudge_x: +level01_fudge_x: .byte $00 ; A00E 00 . ; fudge factor for bomb locations, always $06 -level00_fudge_y: +level01_fudge_y: .byte $06 ; A00F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level00_points_per_bomb: +level01_points_per_bomb: .byte $64 ; A010 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level00_time_bonus: +level01_time_bonus: .word $03E8 ; A011 E8 03 .. ; ---------------------------------------------------------------------------- ; always $00 -level00_offs_19: +level01_offs_19: .byte $00 ; A013 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level00_unkn_table0: +level01_unkn_table0: .addr L06DF ; A014 DF 06 .. ; used to draw the level initially (see also map_changes) -level00_map: - .addr l00_map ; A016 00 A3 .. +level01_map: + .addr l01_map ; A016 00 A3 .. ; start of bombs in map data (which must come last!) -level00_map_bombs: - .addr l00_map_bombs ; A018 66 A3 f. +level01_map_bombs: + .addr l01_map_bombs ; A018 66 A3 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. -level00_bomblist: - .addr l00_bombs ; A01A 8B A3 .. +level01_bomblist: + .addr l01_bombs ; A01A 8B A3 .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level00_map_changes: - .addr l00_map_changes ; A01C A4 A3 .. +level01_map_changes: + .addr l01_map_changes ; A01C A4 A3 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level00_indirect_subs: +level01_indirect_subs: .byte $00,$00 ; A01E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level00_sub_bomb: +level01_sub_bomb: .addr L06E6 ; A020 E6 06 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level00_sub_start: +level01_sub_start: .addr L06E6 ; A022 E6 06 .. ; always $9740 aka game_main_loop -level00_sub6: +level01_sub6: .addr game_main_loop ; A024 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level00_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level01_sub_eol: .addr L06E6 ; A026 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level00_offs_40: +level01_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A028 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level00_colpf3: +level01_colpf3: .byte $CA ; A02E CA . ; color for girders and up-ropes -level00_colpf0: +level01_colpf0: .byte $96 ; A02F 96 . ; color for ladders and down-ropes -level00_colpf1: +level01_colpf1: .byte $18 ; A030 18 . ; color for bombs -level00_colpf2: +level01_colpf2: .byte $5A ; A031 5A Z ; unknown -level00_offs_50: +level01_offs_50: .byte $0C,$24,$4C,$74,$8C ; A032 0C 24 4C 74 8C .$Lt. ; unknown, always $00 $00 $00 -level00_offs_55: +level01_offs_55: .byte $00,$00,$00 ; A037 00 00 00 ... ; unknown, not a ROM address -level00_offs_58: +level01_offs_58: .byte $1A,$7E ; A03A 1A 7E .~ -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level00_offs_60: +; 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 -level01_desc: +level02_desc: .byte $10,$12 ; A040 10 12 .. ; ---------------------------------------------------------------------------- ; a subroutine -level01_sub0: +level02_sub0: .addr electrocution_done ; A042 DD A4 .. ; a subroutine -level01_sub1: +level02_sub1: .addr electrocute ; A044 09 A5 .. ; a subroutine -level01_sub2: +level02_sub2: .addr L0000 ; A046 00 00 .. ; a subroutine -level01_sub3: - .addr level02_collisions ; A048 3D A5 =. +level02_sub3: + .addr level03_collisions ; A048 3D A5 =. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level01_num_bombs: +level02_num_bombs: .byte $10 ; A04A 10 . ; 0 = no bullets, range 0-4. -level01_bullet_max: +level02_bullet_max: .byte $02 ; A04B 02 . ; jumpman starting Y position -level01_y_start: +level02_y_start: .byte $20 ; A04C 20 ; jumpman starting X position -level01_x_start: +level02_x_start: .byte $7C ; A04D 7C | ; fudge factor for bomb locations, always $00 -level01_fudge_x: +level02_fudge_x: .byte $00 ; A04E 00 . ; fudge factor for bomb locations, always $06 -level01_fudge_y: +level02_fudge_y: .byte $06 ; A04F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level01_points_per_bomb: +level02_points_per_bomb: .byte $64 ; A050 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level01_time_bonus: +level02_time_bonus: .word $07D0 ; A051 D0 07 .. ; ---------------------------------------------------------------------------- ; always $00 -level01_offs_19: +level02_offs_19: .byte $00 ; A053 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level01_unkn_table0: +level02_unkn_table0: .addr LA5C2 ; A054 C2 A5 .. ; used to draw the level initially (see also map_changes) -level01_map: - .addr l01_map ; A056 E0 A3 .. +level02_map: + .addr l02_map ; A056 E0 A3 .. ; start of bombs in map data (which must come last!) -level01_map_bombs: +level02_map_bombs: .addr LA446 ; 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. -level01_bomblist: +level02_bomblist: .addr LA477 ; A05A 77 A4 w. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level01_map_changes: +level02_map_changes: .addr L0000 ; A05C 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level01_indirect_subs: +level02_indirect_subs: .byte $00,$00 ; A05E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level01_sub_bomb: +level02_sub_bomb: .addr electrocution_bomb_pickup ; A060 98 A4 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level01_sub_start: +level02_sub_start: .addr L8036 ; A062 36 80 6. ; always $9740 aka game_main_loop -level01_sub6: +level02_sub6: .addr game_main_loop ; A064 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level01_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level02_sub_eol: .addr L06E6 ; A066 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level01_offs_40: +level02_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A068 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level01_colpf3: +level02_colpf3: .byte $6A ; A06E 6A j ; color for girders and up-ropes -level01_colpf0: +level02_colpf0: .byte $08 ; A06F 08 . ; color for ladders and down-ropes -level01_colpf1: +level02_colpf1: .byte $C6 ; A070 C6 . ; color for bombs -level01_colpf2: +level02_colpf2: .byte $1A ; A071 1A . ; unknown -level01_offs_50: +level02_offs_50: .byte $18,$4C,$80,$00,$00 ; A072 18 4C 80 00 00 .L... ; unknown, always $00 $00 $00 -level01_offs_55: +level02_offs_55: .byte $00,$00,$00 ; A077 00 00 00 ... ; unknown, not a ROM address -level01_offs_58: +level02_offs_58: .byte $02,$94 ; A07A 02 94 .. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level01_offs_60: +; 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 -level02_desc: +level03_desc: .byte $10,$13 ; A080 10 13 .. ; ---------------------------------------------------------------------------- ; a subroutine -level02_sub0: +level03_sub0: .addr dumbwaiter_sub0 ; A082 BD A6 .. ; a subroutine -level02_sub1: +level03_sub1: .addr L0000 ; A084 00 00 .. ; a subroutine -level02_sub2: +level03_sub2: .addr L0000 ; A086 00 00 .. ; a subroutine -level02_sub3: +level03_sub3: .addr dumbwaiter_sub3 ; A088 24 A7 $. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level02_num_bombs: +level03_num_bombs: .byte $0C ; A08A 0C . ; 0 = no bullets, range 0-4. -level02_bullet_max: +level03_bullet_max: .byte $00 ; A08B 00 . ; jumpman starting Y position -level02_y_start: +level03_y_start: .byte $40 ; A08C 40 @ ; jumpman starting X position -level02_x_start: +level03_x_start: .byte $B4 ; A08D B4 . ; fudge factor for bomb locations, always $00 -level02_fudge_x: +level03_fudge_x: .byte $00 ; A08E 00 . ; fudge factor for bomb locations, always $06 -level02_fudge_y: +level03_fudge_y: .byte $06 ; A08F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level02_points_per_bomb: +level03_points_per_bomb: .byte $64 ; A090 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level02_time_bonus: +level03_time_bonus: .word $09C4 ; A091 C4 09 .. ; ---------------------------------------------------------------------------- ; always $00 -level02_offs_19: +level03_offs_19: .byte $00 ; A093 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level02_unkn_table0: +level03_unkn_table0: .addr LA66D ; A094 6D A6 m. ; used to draw the level initially (see also map_changes) -level02_map: +level03_map: .addr LA5F0 ; A096 F0 A5 .. ; start of bombs in map data (which must come last!) -level02_map_bombs: +level03_map_bombs: .addr LA62F ; 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. -level02_bomblist: +level03_bomblist: .addr LA654 ; A09A 54 A6 T. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level02_map_changes: +level03_map_changes: .addr L0000 ; A09C 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level02_indirect_subs: +level03_indirect_subs: .byte $00,$00 ; A09E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level02_sub_bomb: +level03_sub_bomb: .addr L06E6 ; A0A0 E6 06 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level02_sub_start: +level03_sub_start: .addr dumbwaiter_setup ; A0A2 8C A6 .. ; always $9740 aka game_main_loop -level02_sub6: +level03_sub6: .addr game_main_loop ; A0A4 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level02_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level03_sub_eol: .addr L06E6 ; A0A6 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level02_offs_40: +level03_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A0A8 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level02_colpf3: +level03_colpf3: .byte $1A ; A0AE 1A . ; color for girders and up-ropes -level02_colpf0: +level03_colpf0: .byte $C6 ; A0AF C6 . ; color for ladders and down-ropes -level02_colpf1: +level03_colpf1: .byte $96 ; A0B0 96 . ; color for bombs -level02_colpf2: +level03_colpf2: .byte $1A ; A0B1 1A . ; unknown -level02_offs_50: +level03_offs_50: .byte $0C,$8C,$00,$00,$00 ; A0B2 0C 8C 00 00 00 ..... ; unknown, always $00 $00 $00 -level02_offs_55: +level03_offs_55: .byte $00,$00,$00 ; A0B7 00 00 00 ... ; unknown, not a ROM address -level02_offs_58: +level03_offs_58: .byte $00,$00 ; A0BA 00 00 .. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level02_offs_60: +; 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 -level03_desc: +level04_desc: .byte $10,$14 ; A0C0 10 14 .. ; ---------------------------------------------------------------------------- ; a subroutine -level03_sub0: +level04_sub0: .addr hellstones_sub0 ; A0C2 36 A8 6. ; a subroutine -level03_sub1: +level04_sub1: .addr L0000 ; A0C4 00 00 .. ; a subroutine -level03_sub2: +level04_sub2: .addr L0000 ; A0C6 00 00 .. ; a subroutine -level03_sub3: +level04_sub3: .addr hellstones_sub3 ; A0C8 27 A8 '. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level03_num_bombs: +level04_num_bombs: .byte $10 ; A0CA 10 . ; 0 = no bullets, range 0-4. -level03_bullet_max: +level04_bullet_max: .byte $00 ; A0CB 00 . ; jumpman starting Y position -level03_y_start: +level04_y_start: .byte $C0 ; A0CC C0 . ; jumpman starting X position -level03_x_start: +level04_x_start: .byte $7C ; A0CD 7C | ; fudge factor for bomb locations, always $00 -level03_fudge_x: +level04_fudge_x: .byte $00 ; A0CE 00 . ; fudge factor for bomb locations, always $06 -level03_fudge_y: +level04_fudge_y: .byte $06 ; A0CF 06 . ; points awarded per bomb pickup (always $64 aka 100) -level03_points_per_bomb: +level04_points_per_bomb: .byte $64 ; A0D0 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level03_time_bonus: +level04_time_bonus: .word $07D0 ; A0D1 D0 07 .. ; ---------------------------------------------------------------------------- ; always $00 -level03_offs_19: +level04_offs_19: .byte $00 ; A0D3 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level03_unkn_table0: +level04_unkn_table0: .addr L06DF ; A0D4 DF 06 .. ; used to draw the level initially (see also map_changes) -level03_map: +level04_map: .addr LA790 ; A0D6 90 A7 .. ; start of bombs in map data (which must come last!) -level03_map_bombs: +level04_map_bombs: .addr LA7D5 ; 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. -level03_bomblist: +level04_bomblist: .addr LA806 ; A0DA 06 A8 .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level03_map_changes: +level04_map_changes: .addr L0000 ; A0DC 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level03_indirect_subs: +level04_indirect_subs: .byte $00,$00 ; A0DE 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level03_sub_bomb: +level04_sub_bomb: .addr L06E6 ; A0E0 E6 06 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level03_sub_start: +level04_sub_start: .addr L8036 ; A0E2 36 80 6. ; always $9740 aka game_main_loop -level03_sub6: +level04_sub6: .addr game_main_loop ; A0E4 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level03_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level04_sub_eol: .addr L06E6 ; A0E6 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level03_offs_40: +level04_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A0E8 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level03_colpf3: +level04_colpf3: .byte $CA ; A0EE CA . ; color for girders and up-ropes -level03_colpf0: +level04_colpf0: .byte $96 ; A0EF 96 . ; color for ladders and down-ropes -level03_colpf1: +level04_colpf1: .byte $18 ; A0F0 18 . ; color for bombs -level03_colpf2: +level04_colpf2: .byte $5A ; A0F1 5A Z ; unknown -level03_offs_50: +level04_offs_50: .byte $4C,$18,$2C,$80,$6C ; A0F2 4C 18 2C 80 6C L.,.l ; unknown, always $00 $00 $00 -level03_offs_55: +level04_offs_55: .byte $00,$00,$00 ; A0F7 00 00 00 ... ; unknown, not a ROM address -level03_offs_58: +level04_offs_58: .byte $00,$00 ; A0FA 00 00 .. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level03_offs_60: +; 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 -level04_desc: +level05_desc: .byte $10,$15 ; A100 10 15 .. ; ---------------------------------------------------------------------------- ; a subroutine -level04_sub0: +level05_sub0: .addr L0000 ; A102 00 00 .. ; a subroutine -level04_sub1: +level05_sub1: .addr L0000 ; A104 00 00 .. ; a subroutine -level04_sub2: +level05_sub2: .addr L0000 ; A106 00 00 .. ; a subroutine -level04_sub3: +level05_sub3: .addr check_collisions_1 ; A108 73 8F s. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level04_num_bombs: +level05_num_bombs: .byte $0E ; A10A 0E . ; 0 = no bullets, range 0-4. -level04_bullet_max: +level05_bullet_max: .byte $02 ; A10B 02 . ; jumpman starting Y position -level04_y_start: +level05_y_start: .byte $C0 ; A10C C0 . ; jumpman starting X position -level04_x_start: +level05_x_start: .byte $34 ; A10D 34 4 ; fudge factor for bomb locations, always $00 -level04_fudge_x: +level05_fudge_x: .byte $00 ; A10E 00 . ; fudge factor for bomb locations, always $06 -level04_fudge_y: +level05_fudge_y: .byte $06 ; A10F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level04_points_per_bomb: +level05_points_per_bomb: .byte $64 ; A110 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level04_time_bonus: +level05_time_bonus: .word $07D0 ; A111 D0 07 .. ; ---------------------------------------------------------------------------- ; always $00 -level04_offs_19: +level05_offs_19: .byte $00 ; A113 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level04_unkn_table0: +level05_unkn_table0: .addr L06DF ; A114 DF 06 .. ; used to draw the level initially (see also map_changes) -level04_map: +level05_map: .addr LAAD0 ; A116 D0 AA .. ; start of bombs in map data (which must come last!) -level04_map_bombs: +level05_map_bombs: .addr LAB42 ; 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. -level04_bomblist: +level05_bomblist: .addr LAB6D ; A11A 6D AB m. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level04_map_changes: +level05_map_changes: .addr LAB8A ; A11C 8A AB .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level04_indirect_subs: +level05_indirect_subs: .byte $00,$00 ; A11E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level04_sub_bomb: +level05_sub_bomb: .addr L06E6 ; A120 E6 06 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level04_sub_start: +level05_sub_start: .addr L06E6 ; A122 E6 06 .. ; always $9740 aka game_main_loop -level04_sub6: +level05_sub6: .addr game_main_loop ; A124 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level04_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level05_sub_eol: .addr L06E6 ; A126 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level04_offs_40: +level05_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A128 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level04_colpf3: +level05_colpf3: .byte $6A ; A12E 6A j ; color for girders and up-ropes -level04_colpf0: +level05_colpf0: .byte $08 ; A12F 08 . ; color for ladders and down-ropes -level04_colpf1: +level05_colpf1: .byte $C6 ; A130 C6 . ; color for bombs -level04_colpf2: +level05_colpf2: .byte $1A ; A131 1A . ; unknown -level04_offs_50: +level05_offs_50: .byte $0C,$22,$84,$8E,$00 ; A132 0C 22 84 8E 00 ."... ; unknown, always $00 $00 $00 -level04_offs_55: +level05_offs_55: .byte $00,$00,$00 ; A137 00 00 00 ... ; unknown, not a ROM address -level04_offs_58: +level05_offs_58: .byte $96,$00 ; A13A 96 00 .. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level04_offs_60: +; 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 -level05_desc: +level06_desc: .byte $10,$16 ; A140 10 16 .. ; ---------------------------------------------------------------------------- ; a subroutine -level05_sub0: +level06_sub0: .addr LAA3A ; A142 3A AA :. ; a subroutine -level05_sub1: +level06_sub1: .addr LAA35 ; A144 35 AA 5. ; a subroutine -level05_sub2: +level06_sub2: .addr LAA55 ; A146 55 AA U. ; a subroutine -level05_sub3: +level06_sub3: .addr LAABC ; A148 BC AA .. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level05_num_bombs: +level06_num_bombs: .byte $10 ; A14A 10 . ; 0 = no bullets, range 0-4. -level05_bullet_max: +level06_bullet_max: .byte $00 ; A14B 00 . ; jumpman starting Y position -level05_y_start: +level06_y_start: .byte $80 ; A14C 80 . ; jumpman starting X position -level05_x_start: +level06_x_start: .byte $34 ; A14D 34 4 ; fudge factor for bomb locations, always $00 -level05_fudge_x: +level06_fudge_x: .byte $00 ; A14E 00 . ; fudge factor for bomb locations, always $06 -level05_fudge_y: +level06_fudge_y: .byte $06 ; A14F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level05_points_per_bomb: +level06_points_per_bomb: .byte $64 ; A150 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level05_time_bonus: +level06_time_bonus: .word $05DC ; A151 DC 05 .. ; ---------------------------------------------------------------------------- ; always $00 -level05_offs_19: +level06_offs_19: .byte $00 ; A153 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level05_unkn_table0: +level06_unkn_table0: .addr L06DF ; A154 DF 06 .. ; used to draw the level initially (see also map_changes) -level05_map: +level06_map: .addr LA920 ; A156 20 A9 . ; start of bombs in map data (which must come last!) -level05_map_bombs: +level06_map_bombs: .addr LA974 ; 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. -level05_bomblist: +level06_bomblist: .addr LA9A5 ; A15A A5 A9 .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level05_map_changes: +level06_map_changes: .addr L0000 ; A15C 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level05_indirect_subs: +level06_indirect_subs: .byte $00,$00 ; A15E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level05_sub_bomb: +level06_sub_bomb: .addr LAA73 ; A160 73 AA s. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level05_sub_start: +level06_sub_start: .addr LA9C6 ; A162 C6 A9 .. ; always $9740 aka game_main_loop -level05_sub6: +level06_sub6: .addr game_main_loop ; A164 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level05_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level06_sub_eol: .addr L06E6 ; A166 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level05_offs_40: +level06_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A168 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level05_colpf3: +level06_colpf3: .byte $56 ; A16E 56 V ; color for girders and up-ropes -level05_colpf0: +level06_colpf0: .byte $C6 ; A16F C6 . ; color for ladders and down-ropes -level05_colpf1: +level06_colpf1: .byte $96 ; A170 96 . ; color for bombs -level05_colpf2: +level06_colpf2: .byte $28 ; A171 28 ( ; unknown -level05_offs_50: +level06_offs_50: .byte $04,$30,$68,$94,$00 ; A172 04 30 68 94 00 .0h.. ; unknown, always $00 $00 $00 -level05_offs_55: +level06_offs_55: .byte $00,$00,$00 ; A177 00 00 00 ... ; unknown, not a ROM address -level05_offs_58: +level06_offs_58: .byte $4C,$FF ; A17A 4C FF L. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level05_offs_60: +; 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 -level06_desc: +level07_desc: .byte $10,$17 ; A180 10 17 .. ; ---------------------------------------------------------------------------- ; a subroutine -level06_sub0: +level07_sub0: .addr zigzag_sub0 ; A182 68 AD h. ; a subroutine -level06_sub1: +level07_sub1: .addr L0000 ; A184 00 00 .. ; a subroutine -level06_sub2: +level07_sub2: .addr L0000 ; A186 00 00 .. ; a subroutine -level06_sub3: +level07_sub3: .addr check_collisions_1 ; A188 73 8F s. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level06_num_bombs: +level07_num_bombs: .byte $0E ; A18A 0E . ; 0 = no bullets, range 0-4. -level06_bullet_max: +level07_bullet_max: .byte $03 ; A18B 03 . ; jumpman starting Y position -level06_y_start: +level07_y_start: .byte $C0 ; A18C C0 . ; jumpman starting X position -level06_x_start: +level07_x_start: .byte $7C ; A18D 7C | ; fudge factor for bomb locations, always $00 -level06_fudge_x: +level07_fudge_x: .byte $00 ; A18E 00 . ; fudge factor for bomb locations, always $06 -level06_fudge_y: +level07_fudge_y: .byte $06 ; A18F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level06_points_per_bomb: +level07_points_per_bomb: .byte $64 ; A190 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level06_time_bonus: +level07_time_bonus: .word $05DC ; A191 DC 05 .. ; ---------------------------------------------------------------------------- ; always $00 -level06_offs_19: +level07_offs_19: .byte $00 ; A193 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level06_unkn_table0: +level07_unkn_table0: .addr L06DF ; A194 DF 06 .. ; used to draw the level initially (see also map_changes) -level06_map: +level07_map: .addr LAC60 ; A196 60 AC `. ; start of bombs in map data (which must come last!) -level06_map_bombs: +level07_map_bombs: .addr LACBA ; 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. -level06_bomblist: +level07_bomblist: .addr LACE5 ; A19A E5 AC .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level06_map_changes: +level07_map_changes: .addr LAD02 ; A19C 02 AD .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level06_indirect_subs: +level07_indirect_subs: .byte $00,$00 ; A19E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level06_sub_bomb: +level07_sub_bomb: .addr L06E6 ; A1A0 E6 06 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level06_sub_start: +level07_sub_start: .addr L8036 ; A1A2 36 80 6. ; always $9740 aka game_main_loop -level06_sub6: +level07_sub6: .addr game_main_loop ; A1A4 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level06_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level07_sub_eol: .addr L06E6 ; A1A6 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level06_offs_40: +level07_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A1A8 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level06_colpf3: +level07_colpf3: .byte $CA ; A1AE CA . ; color for girders and up-ropes -level06_colpf0: +level07_colpf0: .byte $96 ; A1AF 96 . ; color for ladders and down-ropes -level06_colpf1: +level07_colpf1: .byte $18 ; A1B0 18 . ; color for bombs -level06_colpf2: +level07_colpf2: .byte $5A ; A1B1 5A Z ; unknown -level06_offs_50: +level07_offs_50: .byte $0C,$4C,$8C,$00,$00 ; A1B2 0C 4C 8C 00 00 .L... ; unknown, always $00 $00 $00 -level06_offs_55: +level07_offs_55: .byte $00,$00,$00 ; A1B7 00 00 00 ... ; unknown, not a ROM address -level06_offs_58: +level07_offs_58: .byte $1C,$7E ; A1BA 1C 7E .~ -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level06_offs_60: +; 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 -level07_desc: +level08_desc: .byte $10,$18 ; A1C0 10 18 .. ; ---------------------------------------------------------------------------- ; a subroutine -level07_sub0: +level08_sub0: .addr LAF1C ; A1C2 1C AF .. ; a subroutine -level07_sub1: +level08_sub1: .addr L0000 ; A1C4 00 00 .. ; a subroutine -level07_sub2: +level08_sub2: .addr L0000 ; A1C6 00 00 .. ; a subroutine -level07_sub3: +level08_sub3: .addr check_collisions_1 ; A1C8 73 8F s. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level07_num_bombs: +level08_num_bombs: .byte $0C ; A1CA 0C . ; 0 = no bullets, range 0-4. -level07_bullet_max: +level08_bullet_max: .byte $02 ; A1CB 02 . ; jumpman starting Y position -level07_y_start: +level08_y_start: .byte $20 ; A1CC 20 ; jumpman starting X position -level07_x_start: +level08_x_start: .byte $7C ; A1CD 7C | ; fudge factor for bomb locations, always $00 -level07_fudge_x: +level08_fudge_x: .byte $00 ; A1CE 00 . ; fudge factor for bomb locations, always $06 -level07_fudge_y: +level08_fudge_y: .byte $06 ; A1CF 06 . ; points awarded per bomb pickup (always $64 aka 100) -level07_points_per_bomb: +level08_points_per_bomb: .byte $64 ; A1D0 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level07_time_bonus: +level08_time_bonus: .word $05DC ; A1D1 DC 05 .. ; ---------------------------------------------------------------------------- ; always $00 -level07_offs_19: +level08_offs_19: .byte $00 ; A1D3 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level07_unkn_table0: +level08_unkn_table0: .addr LAE8A ; A1D4 8A AE .. ; used to draw the level initially (see also map_changes) -level07_map: +level08_map: .addr LADE0 ; A1D6 E0 AD .. ; start of bombs in map data (which must come last!) -level07_map_bombs: +level08_map_bombs: .addr LAE4C ; 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. -level07_bomblist: +level08_bomblist: .addr LAE71 ; A1DA 71 AE q. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level07_map_changes: +level08_map_changes: .addr L0000 ; A1DC 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level07_indirect_subs: +level08_indirect_subs: .byte $00,$00 ; A1DE 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level07_sub_bomb: +level08_sub_bomb: .addr LAF23 ; A1E0 23 AF #. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level07_sub_start: +level08_sub_start: .addr LAE9B ; A1E2 9B AE .. ; always $9740 aka game_main_loop -level07_sub6: +level08_sub6: .addr game_main_loop ; A1E4 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level07_sub_eol: - .addr level07_letters ; A1E6 58 AF X. +; called at end of level (all bombs picked up). $06E6 for all but level08 +level08_sub_eol: + .addr level08_letters ; A1E6 58 AF X. ; ---------------------------------------------------------------------------- ; all zeroes -level07_offs_40: +level08_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A1E8 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level07_colpf3: +level08_colpf3: .byte $6A ; A1EE 6A j ; color for girders and up-ropes -level07_colpf0: +level08_colpf0: .byte $08 ; A1EF 08 . ; color for ladders and down-ropes -level07_colpf1: +level08_colpf1: .byte $C6 ; A1F0 C6 . ; color for bombs -level07_colpf2: +level08_colpf2: .byte $1A ; A1F1 1A . ; unknown -level07_offs_50: +level08_offs_50: .byte $0C,$30,$68,$8C,$00 ; A1F2 0C 30 68 8C 00 .0h.. ; unknown, always $00 $00 $00 -level07_offs_55: +level08_offs_55: .byte $00,$00,$00 ; A1F7 00 00 00 ... ; unknown, not a ROM address -level07_offs_58: +level08_offs_58: .byte $40,$56 ; A1FA 40 56 @V -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level07_offs_60: +; 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 -level08_desc: +level09_desc: .byte $10,$19 ; A200 10 19 .. ; ---------------------------------------------------------------------------- ; a subroutine -level08_sub0: +level09_sub0: .addr LB140 ; A202 40 B1 @. ; a subroutine -level08_sub1: +level09_sub1: .addr L0000 ; A204 00 00 .. ; a subroutine -level08_sub2: +level09_sub2: .addr L0000 ; A206 00 00 .. ; a subroutine -level08_sub3: +level09_sub3: .addr L0000 ; A208 00 00 .. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level08_num_bombs: +level09_num_bombs: .byte $08 ; A20A 08 . ; 0 = no bullets, range 0-4. -level08_bullet_max: +level09_bullet_max: .byte $00 ; A20B 00 . ; jumpman starting Y position -level08_y_start: +level09_y_start: .byte $C0 ; A20C C0 . ; jumpman starting X position -level08_x_start: +level09_x_start: .byte $9E ; A20D 9E . ; fudge factor for bomb locations, always $00 -level08_fudge_x: +level09_fudge_x: .byte $00 ; A20E 00 . ; fudge factor for bomb locations, always $06 -level08_fudge_y: +level09_fudge_y: .byte $06 ; A20F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level08_points_per_bomb: +level09_points_per_bomb: .byte $64 ; A210 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level08_time_bonus: +level09_time_bonus: .word $07D0 ; A211 D0 07 .. ; ---------------------------------------------------------------------------- ; always $00 -level08_offs_19: +level09_offs_19: .byte $00 ; A213 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level08_unkn_table0: +level09_unkn_table0: .addr L06DF ; A214 DF 06 .. ; used to draw the level initially (see also map_changes) -level08_map: +level09_map: .addr LB0A2 ; A216 A2 B0 .. ; start of bombs in map data (which must come last!) -level08_map_bombs: +level09_map_bombs: .addr LB072 ; 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. -level08_bomblist: +level09_bomblist: .addr LB0A3 ; A21A A3 B0 .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level08_map_changes: +level09_map_changes: .addr L0000 ; A21C 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level08_indirect_subs: +level09_indirect_subs: .byte $00,$00 ; A21E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level08_sub_bomb: +level09_sub_bomb: .addr LB121 ; A220 21 B1 !. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level08_sub_start: +level09_sub_start: .addr LB0C4 ; A222 C4 B0 .. ; always $9740 aka game_main_loop -level08_sub6: +level09_sub6: .addr game_main_loop ; A224 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level08_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level09_sub_eol: .addr L06E6 ; A226 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level08_offs_40: +level09_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A228 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level08_colpf3: +level09_colpf3: .byte $1A ; A22E 1A . ; color for girders and up-ropes -level08_colpf0: +level09_colpf0: .byte $C6 ; A22F C6 . ; color for ladders and down-ropes -level08_colpf1: +level09_colpf1: .byte $96 ; A230 96 . ; color for bombs -level08_colpf2: +level09_colpf2: .byte $28 ; A231 28 ( ; unknown -level08_offs_50: +level09_offs_50: .byte $0C,$3C,$00,$00,$8C ; A232 0C 3C 00 00 8C .<... ; unknown, always $00 $00 $00 -level08_offs_55: +level09_offs_55: .byte $00,$00,$00 ; A237 00 00 00 ... ; unknown, not a ROM address -level08_offs_58: +level09_offs_58: .byte $80,$00 ; A23A 80 00 .. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level08_offs_60: +; 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 -level09_desc: +level10_desc: .byte $11,$10 ; A240 11 10 .. ; ---------------------------------------------------------------------------- ; a subroutine -level09_sub0: +level10_sub0: .addr LB27E ; A242 7E B2 ~. ; a subroutine -level09_sub1: +level10_sub1: .addr L0000 ; A244 00 00 .. ; a subroutine -level09_sub2: +level10_sub2: .addr L0000 ; A246 00 00 .. ; a subroutine -level09_sub3: +level10_sub3: .addr LB2E0 ; A248 E0 B2 .. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level09_num_bombs: +level10_num_bombs: .byte $0C ; A24A 0C . ; 0 = no bullets, range 0-4. -level09_bullet_max: +level10_bullet_max: .byte $02 ; A24B 02 . ; jumpman starting Y position -level09_y_start: +level10_y_start: .byte $C0 ; A24C C0 . ; jumpman starting X position -level09_x_start: +level10_x_start: .byte $3C ; A24D 3C < ; fudge factor for bomb locations, always $00 -level09_fudge_x: +level10_fudge_x: .byte $00 ; A24E 00 . ; fudge factor for bomb locations, always $06 -level09_fudge_y: +level10_fudge_y: .byte $06 ; A24F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level09_points_per_bomb: +level10_points_per_bomb: .byte $64 ; A250 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level09_time_bonus: +level10_time_bonus: .word $05DC ; A251 DC 05 .. ; ---------------------------------------------------------------------------- ; always $00 -level09_offs_19: +level10_offs_19: .byte $00 ; A253 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level09_unkn_table0: +level10_unkn_table0: .addr LB275 ; A254 75 B2 u. ; used to draw the level initially (see also map_changes) -level09_map: +level10_map: .addr LB1E0 ; A256 E0 B1 .. ; start of bombs in map data (which must come last!) -level09_map_bombs: +level10_map_bombs: .addr LB237 ; 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. -level09_bomblist: +level10_bomblist: .addr LB25C ; A25A 5C B2 \. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level09_map_changes: +level10_map_changes: .addr L0000 ; A25C 00 00 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level09_indirect_subs: +level10_indirect_subs: .byte $00,$00 ; A25E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level09_sub_bomb: +level10_sub_bomb: .addr LB2FD ; A260 FD B2 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level09_sub_start: +level10_sub_start: .addr L8036 ; A262 36 80 6. ; always $9740 aka game_main_loop -level09_sub6: +level10_sub6: .addr game_main_loop ; A264 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level09_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level10_sub_eol: .addr L06E6 ; A266 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level09_offs_40: +level10_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A268 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level09_colpf3: +level10_colpf3: .byte $CA ; A26E CA . ; color for girders and up-ropes -level09_colpf0: +level10_colpf0: .byte $96 ; A26F 96 . ; color for ladders and down-ropes -level09_colpf1: +level10_colpf1: .byte $18 ; A270 18 . ; color for bombs -level09_colpf2: +level10_colpf2: .byte $5A ; A271 5A Z ; unknown -level09_offs_50: +level10_offs_50: .byte $0C,$40,$8C,$00,$00 ; A272 0C 40 8C 00 00 .@... ; unknown, always $00 $00 $00 -level09_offs_55: +level10_offs_55: .byte $00,$00,$00 ; A277 00 00 00 ... ; unknown, not a ROM address -level09_offs_58: +level10_offs_58: .byte $62,$00 ; A27A 62 00 b. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level09_offs_60: +; 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 -level10_desc: +level11_desc: .byte $11,$11 ; A280 11 11 .. ; ---------------------------------------------------------------------------- ; a subroutine -level10_sub0: +level11_sub0: .addr LB457 ; A282 57 B4 W. ; a subroutine -level10_sub1: +level11_sub1: .addr LB581 ; A284 81 B5 .. ; a subroutine -level10_sub2: +level11_sub2: .addr L0000 ; A286 00 00 .. ; a subroutine -level10_sub3: +level11_sub3: .addr LB57C ; A288 7C B5 |. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level10_num_bombs: +level11_num_bombs: .byte $0F ; A28A 0F . ; 0 = no bullets, range 0-4. -level10_bullet_max: +level11_bullet_max: .byte $00 ; A28B 00 . ; jumpman starting Y position -level10_y_start: +level11_y_start: .byte $B6 ; A28C B6 . ; jumpman starting X position -level10_x_start: +level11_x_start: .byte $C4 ; A28D C4 . ; fudge factor for bomb locations, always $00 -level10_fudge_x: +level11_fudge_x: .byte $00 ; A28E 00 . ; fudge factor for bomb locations, always $06 -level10_fudge_y: +level11_fudge_y: .byte $06 ; A28F 06 . ; points awarded per bomb pickup (always $64 aka 100) -level10_points_per_bomb: +level11_points_per_bomb: .byte $64 ; A290 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level10_time_bonus: +level11_time_bonus: .word $03E8 ; A291 E8 03 .. ; ---------------------------------------------------------------------------- ; always $00 -level10_offs_19: +level11_offs_19: .byte $00 ; A293 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level10_unkn_table0: +level11_unkn_table0: .addr data_table_b50b ; A294 0B B5 .. ; used to draw the level initially (see also map_changes) -level10_map: +level11_map: .addr LB320 ; A296 20 B3 . ; start of bombs in map data (which must come last!) -level10_map_bombs: +level11_map_bombs: .addr LB38F ; 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. -level10_bomblist: +level11_bomblist: .addr LB3BD ; A29A BD B3 .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level10_map_changes: +level11_map_changes: .addr LB3DC ; A29C DC B3 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level10_indirect_subs: +level11_indirect_subs: .byte $00,$00 ; A29E 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level10_sub_bomb: +level11_sub_bomb: .addr LB44C ; A2A0 4C B4 L. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level10_sub_start: +level11_sub_start: .addr L8036 ; A2A2 36 80 6. ; always $9740 aka game_main_loop -level10_sub6: +level11_sub6: .addr game_main_loop ; A2A4 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level10_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level11_sub_eol: .addr L06E6 ; A2A6 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level10_offs_40: +level11_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A2A8 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level10_colpf3: +level11_colpf3: .byte $6A ; A2AE 6A j ; color for girders and up-ropes -level10_colpf0: +level11_colpf0: .byte $08 ; A2AF 08 . ; color for ladders and down-ropes -level10_colpf1: +level11_colpf1: .byte $C6 ; A2B0 C6 . ; color for bombs -level10_colpf2: +level11_colpf2: .byte $1A ; A2B1 1A . ; unknown -level10_offs_50: +level11_offs_50: .byte $0C,$30,$54,$8C,$00 ; A2B2 0C 30 54 8C 00 .0T.. ; unknown, always $00 $00 $00 -level10_offs_55: +level11_offs_55: .byte $00,$00,$00 ; A2B7 00 00 00 ... ; unknown, not a ROM address -level10_offs_58: +level11_offs_58: .byte $00,$66 ; A2BA 00 66 .f -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level10_offs_60: +; 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 -level11_desc: +level12_desc: .byte $11,$12 ; A2C0 11 12 .. ; ---------------------------------------------------------------------------- ; a subroutine -level11_sub0: +level12_sub0: .addr LB691 ; A2C2 91 B6 .. ; a subroutine -level11_sub1: +level12_sub1: .addr LB69B ; A2C4 9B B6 .. ; a subroutine -level11_sub2: +level12_sub2: .addr LB709 ; A2C6 09 B7 .. ; a subroutine -level11_sub3: +level12_sub3: .addr check_collisions_1 ; A2C8 73 8F s. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level -level11_num_bombs: +level12_num_bombs: .byte $0E ; A2CA 0E . ; 0 = no bullets, range 0-4. -level11_bullet_max: +level12_bullet_max: .byte $00 ; A2CB 00 . ; jumpman starting Y position -level11_y_start: +level12_y_start: .byte $C0 ; A2CC C0 . ; jumpman starting X position -level11_x_start: +level12_x_start: .byte $7C ; A2CD 7C | ; fudge factor for bomb locations, always $00 -level11_fudge_x: +level12_fudge_x: .byte $00 ; A2CE 00 . ; fudge factor for bomb locations, always $06 -level11_fudge_y: +level12_fudge_y: .byte $06 ; A2CF 06 . ; points awarded per bomb pickup (always $64 aka 100) -level11_points_per_bomb: +level12_points_per_bomb: .byte $64 ; A2D0 64 d ; ---------------------------------------------------------------------------- ; amount of time bonus at start of level -level11_time_bonus: +level12_time_bonus: .word $09C4 ; A2D1 C4 09 .. ; ---------------------------------------------------------------------------- ; always $00 -level11_offs_19: +level12_offs_19: .byte $00 ; A2D3 00 . ; ---------------------------------------------------------------------------- ; pointer to ROM table or $06xx -level11_unkn_table0: +level12_unkn_table0: .addr LB658 ; A2D4 58 B6 X. ; used to draw the level initially (see also map_changes) -level11_map: +level12_map: .addr data_b590 ; A2D6 90 B5 .. ; start of bombs in map data (which must come last!) -level11_map_bombs: +level12_map_bombs: .addr LB5D2 ; 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. -level11_bomblist: +level12_bomblist: .addr LB5FD ; A2DA FD B5 .. ; address of list of addresses of map data, used for changing the map when certain bombs are picked up -level11_map_changes: +level12_map_changes: .addr LB61A ; A2DC 1A B6 .. ; ---------------------------------------------------------------------------- ; pointer to list of indirect subs, always $0000 in this game -level11_indirect_subs: +level12_indirect_subs: .byte $00,$00 ; A2DE 00 00 .. ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine -level11_sub_bomb: +level12_sub_bomb: .addr L06E6 ; A2E0 E6 06 .. ; called at start of level, $06E6 for some levels, or else a ROM subroutine -level11_sub_start: +level12_sub_start: .addr L8036 ; A2E2 36 80 6. ; always $9740 aka game_main_loop -level11_sub6: +level12_sub6: .addr game_main_loop ; A2E4 40 97 @. -; called at end of level (all bombs picked up). $06E6 for all but level07 -level11_sub_eol: +; called at end of level (all bombs picked up). $06E6 for all but level08 +level12_sub_eol: .addr L06E6 ; A2E6 E6 06 .. ; ---------------------------------------------------------------------------- ; all zeroes -level11_offs_40: +level12_offs_40: .byte $00,$00,$00,$00,$00,$00 ; A2E8 00 00 00 00 00 00 ...... ; color (not sure what gets drawn in this color yet) -level11_colpf3: +level12_colpf3: .byte $08 ; A2EE 08 . ; color for girders and up-ropes -level11_colpf0: +level12_colpf0: .byte $C6 ; A2EF C6 . ; color for ladders and down-ropes -level11_colpf1: +level12_colpf1: .byte $96 ; A2F0 96 . ; color for bombs -level11_colpf2: +level12_colpf2: .byte $28 ; A2F1 28 ( ; unknown -level11_offs_50: +level12_offs_50: .byte $0C,$2A,$4C,$6A,$8C ; A2F2 0C 2A 4C 6A 8C .*Lj. ; unknown, always $00 $00 $00 -level11_offs_55: +level12_offs_55: .byte $00,$00,$00 ; A2F7 00 00 00 ... ; unknown, not a ROM address -level11_offs_58: +level12_offs_58: .byte $00,$00 ; A2FA 00 00 .. -; unknown, level05 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 -level11_offs_60: +; unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00 +level12_offs_60: .byte $00,$00,$00,$00 ; A2FC 00 00 00 00 .... ; level map data starts here -l00_map:.byte $FE,$33,$9C,$FD,$04,$00,$44,$05 ; A300 FE 33 9C FD 04 00 44 05 .3....D. +l01_map:.byte $FE,$33,$9C,$FD,$04,$00,$44,$05 ; A300 FE 33 9C FD 04 00 44 05 .3....D. .byte $06,$04,$15,$0A,$74,$15,$0A,$24 ; A308 06 04 15 0A 74 15 0A 24 ....t..$ .byte $22,$02,$74,$22,$02,$24,$25,$16 ; A310 22 02 74 22 02 24 25 16 ".t".$%. .byte $04,$45,$04,$44,$45,$06,$8C,$45 ; A318 04 45 04 44 45 06 8C 45 .E.DE..E @@ -5466,39 +5466,39 @@ l00_map:.byte $FE,$33,$9C,$FD,$04,$00,$44,$05 ; A300 FE 33 9C FD 04 00 44 05 .byte $18,$0A,$FE,$DA,$9C,$1D,$38,$06 ; A358 18 0A FE DA 9C 1D 38 06 ......8. .byte $81,$38,$06,$FE,$B3,$9C ; A360 81 38 06 FE B3 9C .8.... ; gfx_draw instructions for bombs, used by bomb_pickup to get bomb coords. $ff terminated -l00_map_bombs: +l01_map_bombs: .byte $04,$12,$01,$38,$02,$01,$64,$02 ; A366 04 12 01 38 02 01 64 02 ...8..d. .byte $01,$98,$12,$01,$44,$22,$01,$58 ; A36E 01 98 12 01 44 22 01 58 ....D".X .byte $22,$01,$04,$42,$01,$98,$42,$01 ; A376 22 01 04 42 01 98 42 01 "..B..B. .byte $04,$52,$01,$38,$52,$01,$64,$52 ; A37E 04 52 01 38 52 01 64 52 .R.8R.dR .byte $01,$98,$52,$01,$FF ; A386 01 98 52 01 FF ..R.. ; 2 bytes per entry, terminated by $FF. 1st byte is coarse grid coords (top nybble = X, bottom = Y), 2nd byte is index into map_changes -l00_bombs: +l01_bombs: .byte $24,$00,$62,$10,$82,$20,$C4,$00 ; A38B 24 00 62 10 82 20 C4 00 $.b.. .. .byte $66,$30,$86,$40,$2A,$00,$CA,$00 ; A393 66 30 86 40 2A 00 CA 00 f0.@*... .byte $2C,$00,$6C,$00,$8C,$00,$CC,$00 ; A39B 2C 00 6C 00 8C 00 CC 00 ,.l..... -; terminator for l00_bombs -l00_bombs_term: +; terminator for l01_bombs +l01_bombs_term: .byte $FF ; A3A3 FF . ; ---------------------------------------------------------------------------- ; 0000 = no change -l00_map_changes: +l01_map_changes: .addr L0000 ; A3A4 00 00 .. - .addr l00_map_change_0 ; A3A6 AE A3 .. - .addr l00_map_change_1 ; A3A8 B8 A3 .. - .addr l00_map_change_2 ; A3AA C2 A3 .. - .addr l00_map_change_3 ; A3AC CC A3 .. + .addr l01_map_change_0 ; A3A6 AE A3 .. + .addr l01_map_change_1 ; A3A8 B8 A3 .. + .addr l01_map_change_2 ; A3AA C2 A3 .. + .addr l01_map_change_3 ; A3AC CC A3 .. ; ---------------------------------------------------------------------------- -l00_map_change_0: +l01_map_change_0: .byte $FE,$49,$9C,$FD,$04,$01,$64,$08 ; A3AE FE 49 9C FD 04 01 64 08 .I....d. .byte $02,$FF ; A3B6 02 FF .. -l00_map_change_1: +l01_map_change_1: .byte $FE,$49,$9C,$FD,$04,$FF,$34,$09 ; A3B8 FE 49 9C FD 04 FF 34 09 .I....4. .byte $02,$FF ; A3C0 02 FF .. -l00_map_change_2: +l01_map_change_2: .byte $FE,$49,$9C,$FD,$04,$00,$2C,$25 ; A3C2 FE 49 9C FD 04 00 2C 25 .I....,% .byte $05,$FF ; A3CA 05 FF .. -l00_map_change_3: +l01_map_change_3: .byte $FE,$49,$9C,$FD,$04,$00,$60,$25 ; A3CC FE 49 9C FD 04 00 60 25 .I....`% .byte $05,$FF ; A3D4 05 FF .. ; probably just filler @@ -5506,7 +5506,7 @@ zero_filler_a3d6: .byte $00,$00,$00,$00,$00,$00,$00,$00 ; A3D6 00 00 00 00 00 00 00 00 ........ .byte $00,$00 ; A3DE 00 00 .. ; level map data starts here -l01_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A3E0 FE 33 9C FD 04 00 04 05 .3...... +l02_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; A3E0 FE 33 9C FD 04 00 04 05 .3...... .byte $08,$34,$05,$0E,$7C,$05,$08,$14 ; A3E8 08 34 05 0E 7C 05 08 14 .4..|... .byte $15,$04,$34,$15,$04,$5C,$15,$04 ; A3F0 15 04 34 15 04 5C 15 04 ..4..\.. .byte $7C,$15,$04,$04,$25,$10,$5C,$25 ; A3F8 7C 15 04 04 25 10 5C 25 |...%.\% @@ -5618,7 +5618,7 @@ sfx_electrocution: .byte $32,$02,$01,$81,$00,$1E,$02,$00 ; A535 32 02 01 81 00 1E 02 00 2....... ; ---------------------------------------------------------------------------- ; skip a couple of the collision regs, so we don't register a collision when Jumpman is being electrocuted -level02_collisions: +level03_collisions: lda #$00 ; A53D A9 00 .. jmp L8F79 ; A53F 4C 79 8F Ly. @@ -5671,7 +5671,7 @@ LA654: .byte $22,$00,$24,$00,$26,$00,$28,$00 ; A654 22 00 24 00 26 00 28 00 LA66D: .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 level02 +; horizontally moving platforms from level03 dw_platform_player: .byte $FF,$FF,$FF,$AA,$55,$FF,$FF ; A685 FF FF FF AA 55 FF FF ....U.. ; ---------------------------------------------------------------------------- @@ -5798,7 +5798,7 @@ LA779: lda player_y_pos ; A779 AD 83 06 LA781: rts ; A781 60 ` ; ---------------------------------------------------------------------------- -; the dumbwaiters from level02. stored upside-down. +; the dumbwaiters from level03. stored upside-down. 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 ...... @@ -6283,7 +6283,7 @@ LAE9B: jsr L8036 ; AE9B 20 36 80 data_table_aea4: .byte $18,$08,$38,$20,$00,$48,$30,$18 ; AEA4 18 08 38 20 00 48 30 18 ..8 .H0. .byte $28,$10,$10 ; AEAC 28 10 10 (.. -; letters for level07, spellbound (not ASCII or screencodes though) +; letters for level08, spellbound (not ASCII or screencodes though) epyx_jumpman: .byte $40,$29,$21,$11,$19,$11,$09,$01 ; AEAF 40 29 21 11 19 11 09 01 @)!..... .byte $49,$41,$39,$19,$31 ; AEB7 49 41 39 19 31 IA9.1 @@ -6336,14 +6336,14 @@ LAF3B: lda LAEBC,y ; AF3B B9 BC AE ; ---------------------------------------------------------------------------- ; called at end of Spellbound, adds up letter bonus -level07_letters: +level08_letters: lda work_level_num_bombs ; AF58 AD 8A 07 ... - beq l07_got_all ; AF5B F0 01 .. + beq l08_got_all ; AF5B F0 01 .. rts ; AF5D 60 ` ; ---------------------------------------------------------------------------- ; got all the bombs -l07_got_all: +l08_got_all: lda #$09 ; AF5E A9 09 .. sta player_speed ; AF60 8D 24 06 .$. lda #$00 ; AF63 A9 00 .. @@ -6401,7 +6401,7 @@ cue_letter_sfx: jmp LAF86 ; AFC8 4C 86 AF L.. ; ---------------------------------------------------------------------------- -; played once per correct letter at end of level07 (spellbound) +; played once per correct letter at end of level08 (spellbound) sfx_letter_bonus: .byte $01,$A5,$00,$18,$04,$F3,$04,$00 ; AFCB 01 A5 00 18 04 F3 04 00 ........ .byte $00,$00,$00,$00,$00,$00,$00,$00 ; AFD3 00 00 00 00 00 00 00 00 ........ @@ -6994,7 +6994,7 @@ LB75D: lda #$02 ; B75D A9 02 jmp LB724 ; B768 4C 24 B7 L$. ; ---------------------------------------------------------------------------- -; used in level11 +; used in level12 wind_table_1: .byte $01,$02,$03,$03,$03,$03 ; B76B 01 02 03 03 03 03 ...... wind_table_2: -- cgit v1.2.3