label { name "work_level_desc"; addr $0780; size 2; comment "first 2 bytes are level number in screencodes"; }; label { name "work_level_sub0"; addr $0782; size 2; comment "a subroutine"; }; label { name "work_level_sub1"; addr $0784; size 2; comment "a subroutine"; }; label { name "work_level_sub2"; addr $0786; size 2; comment "a subroutine"; }; label { name "work_level_sub3"; addr $0788; size 2; comment "a subroutine"; }; label { name "work_level_num_bombs"; addr $078a; size 1; comment "number of bombs to pick up on this level"; }; label { name "work_level_bullet_max"; addr $078b; size 1; comment "0 = no bullets, range 0-4."; }; label { name "work_level_y_start"; addr $078c; size 1; comment "jumpman starting Y position"; }; label { name "work_level_x_start"; addr $078d; size 1; comment "jumpman starting X position"; }; label { name "work_level_fudge_x"; addr $078e; size 1; comment "fudge factor for bomb locations, always $00"; }; label { name "work_level_fudge_y"; addr $078f; size 1; comment "fudge factor for bomb locations, always $06"; }; label { name "work_level_points_per_bomb"; addr $0790; size 1; comment "points awarded per bomb pickup (always $64 aka 100)"; }; label { name "work_level_time_bonus"; addr $0791; size 2; comment "amount of time bonus at start of level"; }; label { name "work_level_offs_19"; addr $0793; size 1; comment "always $00"; }; label { name "work_level_unkn_table0"; addr $0794; size 2; comment "pointer to ROM table or $06xx"; }; label { name "work_level_map"; addr $0796; size 2; comment "used to draw the level initially (see also map_changes)"; }; label { name "work_level_map_bombs"; addr $0798; size 2; comment "start of bombs in map data (which must come last!)"; }; label { name "work_level_bomblist"; addr $079a; size 2; comment "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."; }; label { name "work_level_map_changes"; addr $079c; size 2; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; label { name "work_level_indirect_subs"; addr $079e; size 2; comment "pointer to list of indirect subs, always $0000 in this game"; }; label { name "work_level_sub_bomb"; addr $07a0; size 2; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; label { name "work_level_init"; addr $07a2; size 2; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; label { name "work_level_sub6"; addr $07a4; size 2; comment "always $9740 aka game_main_loop"; }; label { name "work_level_sub_eol"; addr $07a6; size 2; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; label { name "work_level_offs_40"; addr $07a8; size 6; comment "all zeroes"; }; label { name "work_level_colpf3"; addr $07ae; size 1; comment "color for missiles (aka 5th player)"; }; label { name "work_level_colpf0"; addr $07af; size 1; comment "color for girders and up-ropes"; }; label { name "work_level_colpf1"; addr $07b0; size 1; comment "color for ladders and down-ropes"; }; label { name "work_level_colpf2"; addr $07b1; size 1; comment "color for bombs"; }; label { name "work_level_offs_50"; addr $07b2; size 5; comment "unknown"; }; label { name "work_level_offs_55"; addr $07b7; size 3; comment "unknown, always $00 $00 $00"; }; label { name "work_level_offs_58"; addr $07ba; size 2; comment "unknown, not a ROM address"; }; label { name "work_level_offs_60"; addr $07bc; size 4; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; }; label { name "cur_level_desc"; addr $07c0; size 2; comment "first 2 bytes are level number in screencodes"; }; label { name "cur_level_sub0"; addr $07c2; size 2; comment "a subroutine"; }; label { name "cur_level_sub1"; addr $07c4; size 2; comment "a subroutine"; }; label { name "cur_level_sub2"; addr $07c6; size 2; comment "a subroutine"; }; label { name "cur_level_sub3"; addr $07c8; size 2; comment "a subroutine"; }; label { name "cur_level_num_bombs"; addr $07ca; size 1; comment "number of bombs to pick up on this level"; }; label { name "cur_level_bullet_max"; addr $07cb; size 1; comment "0 = no bullets, range 0-4."; }; label { name "cur_level_y_start"; addr $07cc; size 1; comment "jumpman starting Y position"; }; label { name "cur_level_x_start"; addr $07cd; size 1; comment "jumpman starting X position"; }; label { name "cur_level_fudge_x"; addr $07ce; size 1; comment "fudge factor for bomb locations, always $00"; }; label { name "cur_level_fudge_y"; addr $07cf; size 1; comment "fudge factor for bomb locations, always $06"; }; label { name "cur_level_points_per_bomb"; addr $07d0; size 1; comment "points awarded per bomb pickup (always $64 aka 100)"; }; label { name "cur_level_time_bonus"; addr $07d1; size 2; comment "amount of time bonus at start of level"; }; label { name "cur_level_offs_19"; addr $07d3; size 1; comment "always $00"; }; label { name "cur_level_unkn_table0"; addr $07d4; size 2; comment "pointer to ROM table or $06xx"; }; label { name "cur_level_map"; addr $07d6; size 2; comment "used to draw the level initially (see also map_changes)"; }; label { name "cur_level_map_bombs"; addr $07d8; size 2; comment "start of bombs in map data (which must come last!)"; }; label { name "cur_level_bomblist"; addr $07da; size 2; comment "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."; }; label { name "cur_level_map_changes"; addr $07dc; size 2; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; label { name "cur_level_indirect_subs"; addr $07de; size 2; comment "pointer to list of indirect subs, always $0000 in this game"; }; label { name "cur_level_sub_bomb"; addr $07e0; size 2; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; label { name "cur_level_init"; addr $07e2; size 2; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; label { name "cur_level_sub6"; addr $07e4; size 2; comment "always $9740 aka game_main_loop"; }; label { name "cur_level_sub_eol"; addr $07e6; size 2; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; label { name "cur_level_offs_40"; addr $07e8; size 6; comment "all zeroes"; }; label { name "cur_level_colpf3"; addr $07ee; size 1; comment "color for missiles (aka 5th player)"; }; label { name "cur_level_colpf0"; addr $07ef; size 1; comment "color for girders and up-ropes"; }; label { name "cur_level_colpf1"; addr $07f0; size 1; comment "color for ladders and down-ropes"; }; label { name "cur_level_colpf2"; addr $07f1; size 1; comment "color for bombs"; }; label { name "cur_level_offs_50"; addr $07f2; size 5; comment "unknown"; }; label { name "cur_level_offs_55"; addr $07f7; size 3; comment "unknown, always $00 $00 $00"; }; 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). 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"; }; range { name "level01_sub3"; start $a008; end $a009; type addrtable; comment "a subroutine"; }; range { name "level01_num_bombs"; start $a00a; end $a00a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level01_bullet_max"; start $a00b; end $a00b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level01_y_start"; start $a00c; end $a00c; type bytetable; comment "jumpman starting Y position"; }; range { name "level01_x_start"; start $a00d; end $a00d; type bytetable; comment "jumpman starting X position"; }; range { name "level01_fudge_x"; start $a00e; end $a00e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level01_fudge_y"; start $a00f; end $a00f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level01_points_per_bomb"; start $a010; end $a010; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level01_time_bonus"; start $a011; end $a012; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level01_offs_19"; start $a013; end $a013; type bytetable; comment "always $00"; }; range { name "level01_unkn_table0"; start $a014; end $a015; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level01_map"; start $a016; end $a017; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level01_map_bombs"; start $a018; end $a019; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level01_bomblist"; start $a01a; end $a01b; type addrtable; comment "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."; }; range { name "level01_map_changes"; start $a01c; end $a01d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level01_indirect_subs"; start $a01e; end $a01f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level01_sub_bomb"; start $a020; end $a021; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level01_init"; start $a022; end $a023; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level01_sub6"; start $a024; end $a025; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level01_sub_eol"; start $a026; end $a027; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level01_offs_40"; start $a028; end $a02d; type bytetable; comment "all zeroes"; }; range { name "level01_colpf3"; start $a02e; end $a02e; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level01_colpf0"; start $a02f; end $a02f; type bytetable; comment "color for girders and up-ropes"; }; range { name "level01_colpf1"; start $a030; end $a030; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level01_colpf2"; start $a031; end $a031; type bytetable; comment "color for bombs"; }; range { name "level01_offs_50"; start $a032; end $a036; type bytetable; comment "unknown"; }; range { name "level01_offs_55"; start $a037; end $a039; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level02_sub3"; start $a048; end $a049; type addrtable; comment "a subroutine"; }; range { name "level02_num_bombs"; start $a04a; end $a04a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level02_bullet_max"; start $a04b; end $a04b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level02_y_start"; start $a04c; end $a04c; type bytetable; comment "jumpman starting Y position"; }; range { name "level02_x_start"; start $a04d; end $a04d; type bytetable; comment "jumpman starting X position"; }; range { name "level02_fudge_x"; start $a04e; end $a04e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level02_fudge_y"; start $a04f; end $a04f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level02_points_per_bomb"; start $a050; end $a050; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level02_time_bonus"; start $a051; end $a052; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level02_offs_19"; start $a053; end $a053; type bytetable; comment "always $00"; }; range { name "level02_unkn_table0"; start $a054; end $a055; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level02_map"; start $a056; end $a057; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level02_map_bombs"; start $a058; end $a059; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level02_bomblist"; start $a05a; end $a05b; type addrtable; comment "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."; }; range { name "level02_map_changes"; start $a05c; end $a05d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level02_indirect_subs"; start $a05e; end $a05f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level02_sub_bomb"; start $a060; end $a061; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level02_init"; start $a062; end $a063; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level02_sub6"; start $a064; end $a065; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level02_sub_eol"; start $a066; end $a067; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level02_offs_40"; start $a068; end $a06d; type bytetable; comment "all zeroes"; }; range { name "level02_colpf3"; start $a06e; end $a06e; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level02_colpf0"; start $a06f; end $a06f; type bytetable; comment "color for girders and up-ropes"; }; range { name "level02_colpf1"; start $a070; end $a070; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level02_colpf2"; start $a071; end $a071; type bytetable; comment "color for bombs"; }; range { name "level02_offs_50"; start $a072; end $a076; type bytetable; comment "unknown"; }; range { name "level02_offs_55"; start $a077; end $a079; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level03_sub3"; start $a088; end $a089; type addrtable; comment "a subroutine"; }; range { name "level03_num_bombs"; start $a08a; end $a08a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level03_bullet_max"; start $a08b; end $a08b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level03_y_start"; start $a08c; end $a08c; type bytetable; comment "jumpman starting Y position"; }; range { name "level03_x_start"; start $a08d; end $a08d; type bytetable; comment "jumpman starting X position"; }; range { name "level03_fudge_x"; start $a08e; end $a08e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level03_fudge_y"; start $a08f; end $a08f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level03_points_per_bomb"; start $a090; end $a090; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level03_time_bonus"; start $a091; end $a092; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level03_offs_19"; start $a093; end $a093; type bytetable; comment "always $00"; }; range { name "level03_unkn_table0"; start $a094; end $a095; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level03_map"; start $a096; end $a097; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level03_map_bombs"; start $a098; end $a099; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level03_bomblist"; start $a09a; end $a09b; type addrtable; comment "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."; }; range { name "level03_map_changes"; start $a09c; end $a09d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level03_indirect_subs"; start $a09e; end $a09f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level03_sub_bomb"; start $a0a0; end $a0a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level03_init"; start $a0a2; end $a0a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level03_sub6"; start $a0a4; end $a0a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level03_sub_eol"; start $a0a6; end $a0a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level03_offs_40"; start $a0a8; end $a0ad; type bytetable; comment "all zeroes"; }; range { name "level03_colpf3"; start $a0ae; end $a0ae; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level03_colpf0"; start $a0af; end $a0af; type bytetable; comment "color for girders and up-ropes"; }; range { name "level03_colpf1"; start $a0b0; end $a0b0; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level03_colpf2"; start $a0b1; end $a0b1; type bytetable; comment "color for bombs"; }; range { name "level03_offs_50"; start $a0b2; end $a0b6; type bytetable; comment "unknown"; }; range { name "level03_offs_55"; start $a0b7; end $a0b9; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level04_sub3"; start $a0c8; end $a0c9; type addrtable; comment "a subroutine"; }; range { name "level04_num_bombs"; start $a0ca; end $a0ca; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level04_bullet_max"; start $a0cb; end $a0cb; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level04_y_start"; start $a0cc; end $a0cc; type bytetable; comment "jumpman starting Y position"; }; range { name "level04_x_start"; start $a0cd; end $a0cd; type bytetable; comment "jumpman starting X position"; }; range { name "level04_fudge_x"; start $a0ce; end $a0ce; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level04_fudge_y"; start $a0cf; end $a0cf; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level04_points_per_bomb"; start $a0d0; end $a0d0; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level04_time_bonus"; start $a0d1; end $a0d2; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level04_offs_19"; start $a0d3; end $a0d3; type bytetable; comment "always $00"; }; range { name "level04_unkn_table0"; start $a0d4; end $a0d5; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level04_map"; start $a0d6; end $a0d7; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level04_map_bombs"; start $a0d8; end $a0d9; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level04_bomblist"; start $a0da; end $a0db; type addrtable; comment "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."; }; range { name "level04_map_changes"; start $a0dc; end $a0dd; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level04_indirect_subs"; start $a0de; end $a0df; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level04_sub_bomb"; start $a0e0; end $a0e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level04_init"; start $a0e2; end $a0e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level04_sub6"; start $a0e4; end $a0e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level04_sub_eol"; start $a0e6; end $a0e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level04_offs_40"; start $a0e8; end $a0ed; type bytetable; comment "all zeroes"; }; range { name "level04_colpf3"; start $a0ee; end $a0ee; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level04_colpf0"; start $a0ef; end $a0ef; type bytetable; comment "color for girders and up-ropes"; }; range { name "level04_colpf1"; start $a0f0; end $a0f0; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level04_colpf2"; start $a0f1; end $a0f1; type bytetable; comment "color for bombs"; }; range { name "level04_offs_50"; start $a0f2; end $a0f6; type bytetable; comment "unknown"; }; range { name "level04_offs_55"; start $a0f7; end $a0f9; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level05_sub3"; start $a108; end $a109; type addrtable; comment "a subroutine"; }; range { name "level05_num_bombs"; start $a10a; end $a10a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level05_bullet_max"; start $a10b; end $a10b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level05_y_start"; start $a10c; end $a10c; type bytetable; comment "jumpman starting Y position"; }; range { name "level05_x_start"; start $a10d; end $a10d; type bytetable; comment "jumpman starting X position"; }; range { name "level05_fudge_x"; start $a10e; end $a10e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level05_fudge_y"; start $a10f; end $a10f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level05_points_per_bomb"; start $a110; end $a110; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level05_time_bonus"; start $a111; end $a112; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level05_offs_19"; start $a113; end $a113; type bytetable; comment "always $00"; }; range { name "level05_unkn_table0"; start $a114; end $a115; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level05_map"; start $a116; end $a117; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level05_map_bombs"; start $a118; end $a119; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level05_bomblist"; start $a11a; end $a11b; type addrtable; comment "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."; }; range { name "level05_map_changes"; start $a11c; end $a11d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level05_indirect_subs"; start $a11e; end $a11f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level05_sub_bomb"; start $a120; end $a121; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level05_init"; start $a122; end $a123; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level05_sub6"; start $a124; end $a125; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level05_sub_eol"; start $a126; end $a127; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level05_offs_40"; start $a128; end $a12d; type bytetable; comment "all zeroes"; }; range { name "level05_colpf3"; start $a12e; end $a12e; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level05_colpf0"; start $a12f; end $a12f; type bytetable; comment "color for girders and up-ropes"; }; range { name "level05_colpf1"; start $a130; end $a130; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level05_colpf2"; start $a131; end $a131; type bytetable; comment "color for bombs"; }; range { name "level05_offs_50"; start $a132; end $a136; type bytetable; comment "unknown"; }; range { name "level05_offs_55"; start $a137; end $a139; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level06_sub3"; start $a148; end $a149; type addrtable; comment "a subroutine"; }; range { name "level06_num_bombs"; start $a14a; end $a14a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level06_bullet_max"; start $a14b; end $a14b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level06_y_start"; start $a14c; end $a14c; type bytetable; comment "jumpman starting Y position"; }; range { name "level06_x_start"; start $a14d; end $a14d; type bytetable; comment "jumpman starting X position"; }; range { name "level06_fudge_x"; start $a14e; end $a14e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level06_fudge_y"; start $a14f; end $a14f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level06_points_per_bomb"; start $a150; end $a150; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level06_time_bonus"; start $a151; end $a152; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level06_offs_19"; start $a153; end $a153; type bytetable; comment "always $00"; }; range { name "level06_unkn_table0"; start $a154; end $a155; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level06_map"; start $a156; end $a157; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level06_map_bombs"; start $a158; end $a159; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level06_bomblist"; start $a15a; end $a15b; type addrtable; comment "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."; }; range { name "level06_map_changes"; start $a15c; end $a15d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level06_indirect_subs"; start $a15e; end $a15f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level06_sub_bomb"; start $a160; end $a161; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level06_init"; start $a162; end $a163; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level06_sub6"; start $a164; end $a165; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level06_sub_eol"; start $a166; end $a167; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level06_offs_40"; start $a168; end $a16d; type bytetable; comment "all zeroes"; }; range { name "level06_colpf3"; start $a16e; end $a16e; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level06_colpf0"; start $a16f; end $a16f; type bytetable; comment "color for girders and up-ropes"; }; range { name "level06_colpf1"; start $a170; end $a170; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level06_colpf2"; start $a171; end $a171; type bytetable; comment "color for bombs"; }; range { name "level06_offs_50"; start $a172; end $a176; type bytetable; comment "unknown"; }; range { name "level06_offs_55"; start $a177; end $a179; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level07_sub3"; start $a188; end $a189; type addrtable; comment "a subroutine"; }; range { name "level07_num_bombs"; start $a18a; end $a18a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level07_bullet_max"; start $a18b; end $a18b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level07_y_start"; start $a18c; end $a18c; type bytetable; comment "jumpman starting Y position"; }; range { name "level07_x_start"; start $a18d; end $a18d; type bytetable; comment "jumpman starting X position"; }; range { name "level07_fudge_x"; start $a18e; end $a18e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level07_fudge_y"; start $a18f; end $a18f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level07_points_per_bomb"; start $a190; end $a190; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level07_time_bonus"; start $a191; end $a192; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level07_offs_19"; start $a193; end $a193; type bytetable; comment "always $00"; }; range { name "level07_unkn_table0"; start $a194; end $a195; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level07_map"; start $a196; end $a197; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level07_map_bombs"; start $a198; end $a199; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level07_bomblist"; start $a19a; end $a19b; type addrtable; comment "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."; }; range { name "level07_map_changes"; start $a19c; end $a19d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level07_indirect_subs"; start $a19e; end $a19f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level07_sub_bomb"; start $a1a0; end $a1a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level07_init"; start $a1a2; end $a1a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level07_sub6"; start $a1a4; end $a1a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level07_sub_eol"; start $a1a6; end $a1a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level07_offs_40"; start $a1a8; end $a1ad; type bytetable; comment "all zeroes"; }; range { name "level07_colpf3"; start $a1ae; end $a1ae; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level07_colpf0"; start $a1af; end $a1af; type bytetable; comment "color for girders and up-ropes"; }; range { name "level07_colpf1"; start $a1b0; end $a1b0; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level07_colpf2"; start $a1b1; end $a1b1; type bytetable; comment "color for bombs"; }; range { name "level07_offs_50"; start $a1b2; end $a1b6; type bytetable; comment "unknown"; }; range { name "level07_offs_55"; start $a1b7; end $a1b9; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level08_sub3"; start $a1c8; end $a1c9; type addrtable; comment "a subroutine"; }; range { name "level08_num_bombs"; start $a1ca; end $a1ca; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level08_bullet_max"; start $a1cb; end $a1cb; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level08_y_start"; start $a1cc; end $a1cc; type bytetable; comment "jumpman starting Y position"; }; range { name "level08_x_start"; start $a1cd; end $a1cd; type bytetable; comment "jumpman starting X position"; }; range { name "level08_fudge_x"; start $a1ce; end $a1ce; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level08_fudge_y"; start $a1cf; end $a1cf; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level08_points_per_bomb"; start $a1d0; end $a1d0; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level08_time_bonus"; start $a1d1; end $a1d2; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level08_offs_19"; start $a1d3; end $a1d3; type bytetable; comment "always $00"; }; range { name "level08_unkn_table0"; start $a1d4; end $a1d5; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level08_map"; start $a1d6; end $a1d7; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level08_map_bombs"; start $a1d8; end $a1d9; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level08_bomblist"; start $a1da; end $a1db; type addrtable; comment "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."; }; range { name "level08_map_changes"; start $a1dc; end $a1dd; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level08_indirect_subs"; start $a1de; end $a1df; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level08_sub_bomb"; start $a1e0; end $a1e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level08_init"; start $a1e2; end $a1e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level08_sub6"; start $a1e4; end $a1e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level08_sub_eol"; start $a1e6; end $a1e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level08_offs_40"; start $a1e8; end $a1ed; type bytetable; comment "all zeroes"; }; range { name "level08_colpf3"; start $a1ee; end $a1ee; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level08_colpf0"; start $a1ef; end $a1ef; type bytetable; comment "color for girders and up-ropes"; }; range { name "level08_colpf1"; start $a1f0; end $a1f0; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level08_colpf2"; start $a1f1; end $a1f1; type bytetable; comment "color for bombs"; }; range { name "level08_offs_50"; start $a1f2; end $a1f6; type bytetable; comment "unknown"; }; range { name "level08_offs_55"; start $a1f7; end $a1f9; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level09_sub3"; start $a208; end $a209; type addrtable; comment "a subroutine"; }; range { name "level09_num_bombs"; start $a20a; end $a20a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level09_bullet_max"; start $a20b; end $a20b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level09_y_start"; start $a20c; end $a20c; type bytetable; comment "jumpman starting Y position"; }; range { name "level09_x_start"; start $a20d; end $a20d; type bytetable; comment "jumpman starting X position"; }; range { name "level09_fudge_x"; start $a20e; end $a20e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level09_fudge_y"; start $a20f; end $a20f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level09_points_per_bomb"; start $a210; end $a210; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level09_time_bonus"; start $a211; end $a212; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level09_offs_19"; start $a213; end $a213; type bytetable; comment "always $00"; }; range { name "level09_unkn_table0"; start $a214; end $a215; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level09_map"; start $a216; end $a217; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level09_map_bombs"; start $a218; end $a219; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level09_bomblist"; start $a21a; end $a21b; type addrtable; comment "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."; }; range { name "level09_map_changes"; start $a21c; end $a21d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level09_indirect_subs"; start $a21e; end $a21f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level09_sub_bomb"; start $a220; end $a221; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level09_init"; start $a222; end $a223; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level09_sub6"; start $a224; end $a225; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level09_sub_eol"; start $a226; end $a227; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level09_offs_40"; start $a228; end $a22d; type bytetable; comment "all zeroes"; }; range { name "level09_colpf3"; start $a22e; end $a22e; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level09_colpf0"; start $a22f; end $a22f; type bytetable; comment "color for girders and up-ropes"; }; range { name "level09_colpf1"; start $a230; end $a230; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level09_colpf2"; start $a231; end $a231; type bytetable; comment "color for bombs"; }; range { name "level09_offs_50"; start $a232; end $a236; type bytetable; comment "unknown"; }; range { name "level09_offs_55"; start $a237; end $a239; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level10_sub3"; start $a248; end $a249; type addrtable; comment "a subroutine"; }; range { name "level10_num_bombs"; start $a24a; end $a24a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level10_bullet_max"; start $a24b; end $a24b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level10_y_start"; start $a24c; end $a24c; type bytetable; comment "jumpman starting Y position"; }; range { name "level10_x_start"; start $a24d; end $a24d; type bytetable; comment "jumpman starting X position"; }; range { name "level10_fudge_x"; start $a24e; end $a24e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level10_fudge_y"; start $a24f; end $a24f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level10_points_per_bomb"; start $a250; end $a250; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level10_time_bonus"; start $a251; end $a252; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level10_offs_19"; start $a253; end $a253; type bytetable; comment "always $00"; }; range { name "level10_unkn_table0"; start $a254; end $a255; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level10_map"; start $a256; end $a257; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level10_map_bombs"; start $a258; end $a259; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level10_bomblist"; start $a25a; end $a25b; type addrtable; comment "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."; }; range { name "level10_map_changes"; start $a25c; end $a25d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level10_indirect_subs"; start $a25e; end $a25f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level10_sub_bomb"; start $a260; end $a261; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level10_init"; start $a262; end $a263; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level10_sub6"; start $a264; end $a265; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level10_sub_eol"; start $a266; end $a267; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level10_offs_40"; start $a268; end $a26d; type bytetable; comment "all zeroes"; }; range { name "level10_colpf3"; start $a26e; end $a26e; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level10_colpf0"; start $a26f; end $a26f; type bytetable; comment "color for girders and up-ropes"; }; range { name "level10_colpf1"; start $a270; end $a270; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level10_colpf2"; start $a271; end $a271; type bytetable; comment "color for bombs"; }; range { name "level10_offs_50"; start $a272; end $a276; type bytetable; comment "unknown"; }; range { name "level10_offs_55"; start $a277; end $a279; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level11_sub3"; start $a288; end $a289; type addrtable; comment "a subroutine"; }; range { name "level11_num_bombs"; start $a28a; end $a28a; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level11_bullet_max"; start $a28b; end $a28b; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level11_y_start"; start $a28c; end $a28c; type bytetable; comment "jumpman starting Y position"; }; range { name "level11_x_start"; start $a28d; end $a28d; type bytetable; comment "jumpman starting X position"; }; range { name "level11_fudge_x"; start $a28e; end $a28e; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level11_fudge_y"; start $a28f; end $a28f; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level11_points_per_bomb"; start $a290; end $a290; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level11_time_bonus"; start $a291; end $a292; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level11_offs_19"; start $a293; end $a293; type bytetable; comment "always $00"; }; range { name "level11_unkn_table0"; start $a294; end $a295; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level11_map"; start $a296; end $a297; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level11_map_bombs"; start $a298; end $a299; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level11_bomblist"; start $a29a; end $a29b; type addrtable; comment "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."; }; range { name "level11_map_changes"; start $a29c; end $a29d; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level11_indirect_subs"; start $a29e; end $a29f; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level11_sub_bomb"; start $a2a0; end $a2a1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level11_init"; start $a2a2; end $a2a3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level11_sub6"; start $a2a4; end $a2a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level11_sub_eol"; start $a2a6; end $a2a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level11_offs_40"; start $a2a8; end $a2ad; type bytetable; comment "all zeroes"; }; range { name "level11_colpf3"; start $a2ae; end $a2ae; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level11_colpf0"; start $a2af; end $a2af; type bytetable; comment "color for girders and up-ropes"; }; range { name "level11_colpf1"; start $a2b0; end $a2b0; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level11_colpf2"; start $a2b1; end $a2b1; type bytetable; comment "color for bombs"; }; range { name "level11_offs_50"; start $a2b2; end $a2b6; type bytetable; comment "unknown"; }; range { name "level11_offs_55"; start $a2b7; end $a2b9; type bytetable; comment "unknown, always $00 $00 $00"; }; 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 "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"; }; range { name "level12_sub3"; start $a2c8; end $a2c9; type addrtable; comment "a subroutine"; }; range { name "level12_num_bombs"; start $a2ca; end $a2ca; type bytetable; comment "number of bombs to pick up on this level"; }; range { name "level12_bullet_max"; start $a2cb; end $a2cb; type bytetable; comment "0 = no bullets, range 0-4."; }; range { name "level12_y_start"; start $a2cc; end $a2cc; type bytetable; comment "jumpman starting Y position"; }; range { name "level12_x_start"; start $a2cd; end $a2cd; type bytetable; comment "jumpman starting X position"; }; range { name "level12_fudge_x"; start $a2ce; end $a2ce; type bytetable; comment "fudge factor for bomb locations, always $00"; }; range { name "level12_fudge_y"; start $a2cf; end $a2cf; type bytetable; comment "fudge factor for bomb locations, always $06"; }; range { name "level12_points_per_bomb"; start $a2d0; end $a2d0; type bytetable; comment "points awarded per bomb pickup (always $64 aka 100)"; }; range { name "level12_time_bonus"; start $a2d1; end $a2d2; type wordtable; comment "amount of time bonus at start of level"; }; range { name "level12_offs_19"; start $a2d3; end $a2d3; type bytetable; comment "always $00"; }; range { name "level12_unkn_table0"; start $a2d4; end $a2d5; type addrtable; comment "pointer to ROM table or $06xx"; }; range { name "level12_map"; start $a2d6; end $a2d7; type addrtable; comment "used to draw the level initially (see also map_changes)"; }; range { name "level12_map_bombs"; start $a2d8; end $a2d9; type addrtable; comment "start of bombs in map data (which must come last!)"; }; range { name "level12_bomblist"; start $a2da; end $a2db; type addrtable; comment "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."; }; range { name "level12_map_changes"; start $a2dc; end $a2dd; type addrtable; comment "address of list of addresses of map data, used for changing the map when certain bombs are picked up"; }; range { name "level12_indirect_subs"; start $a2de; end $a2df; type bytetable; comment "pointer to list of indirect subs, always $0000 in this game"; }; range { name "level12_sub_bomb"; start $a2e0; end $a2e1; type addrtable; comment "called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine"; }; range { name "level12_init"; start $a2e2; end $a2e3; type addrtable; comment "called at start of level, $06E6 for some levels, or else a ROM subroutine"; }; range { name "level12_sub6"; start $a2e4; end $a2e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level12_sub_eol"; start $a2e6; end $a2e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level08"; }; range { name "level12_offs_40"; start $a2e8; end $a2ed; type bytetable; comment "all zeroes"; }; range { name "level12_colpf3"; start $a2ee; end $a2ee; type bytetable; comment "color for missiles (aka 5th player)"; }; range { name "level12_colpf0"; start $a2ef; end $a2ef; type bytetable; comment "color for girders and up-ropes"; }; range { name "level12_colpf1"; start $a2f0; end $a2f0; type bytetable; comment "color for ladders and down-ropes"; }; range { name "level12_colpf2"; start $a2f1; end $a2f1; type bytetable; comment "color for bombs"; }; range { name "level12_offs_50"; start $a2f2; end $a2f6; type bytetable; comment "unknown"; }; range { name "level12_offs_55"; start $a2f7; end $a2f9; type bytetable; comment "unknown, always $00 $00 $00"; }; range { name "level12_offs_58"; start $a2fa; end $a2fb; type bytetable; comment "unknown, not a ROM address"; }; range { name "level12_offs_60"; start $a2fc; end $a2ff; type bytetable; comment "unknown, level06 (walls) has $ff $ff $ff $ff, all others $00 $00 $00 $00"; };