From 9adb57030389b8fe337cdfb144edacdded00739a Mon Sep 17 00:00:00 2001 From: "B. Watson" Date: Mon, 29 Aug 2016 22:09:51 -0400 Subject: bomb pickups --- jumpmanjr.dasm | 79 ++++++++++++++++++++++++++++++++-------------------------- jumpmanjr.info | 36 ++++++++++++++------------ leveldesc.info | 28 ++++++++++----------- main.info | 7 ++++-- mklevelinfo.pl | 2 +- 5 files changed, 83 insertions(+), 69 deletions(-) diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm index eada163..a177c55 100644 --- a/jumpmanjr.dasm +++ b/jumpmanjr.dasm @@ -1,5 +1,5 @@ ; da65 V2.15 - Git 104f898 -; Created: 2016-08-29 17:57:21 +; Created: 2016-08-29 22:07:15 ; Input file: jumpmanjr.rom ; Page: 1 @@ -99,7 +99,7 @@ work_level_map1 := $0798 ; map data work_level_map2 := $079A ; map data work_level_unkn_table1:= $079C ; unknown, pointer to a ROM table or $0000 work_level_offs_30:= $079E ; always $0000 -work_level_sub4 := $07A0 ; $06E6 for most levels, or else a ROM subroutine +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_sub5 := $07A2 ; $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 @@ -127,7 +127,7 @@ cur_level_map1 := $07D8 ; map data cur_level_map2 := $07DA ; map data cur_level_unkn_table1:= $07DC ; unknown, pointer to a ROM table or $0000 cur_level_offs_30:= $07DE ; always $0000 -cur_level_sub4 := $07E0 ; $06E6 for most levels, or else a ROM subroutine +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_sub5 := $07E2 ; $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 @@ -261,7 +261,9 @@ crumble_gameboard_jv: jmp crumble_gameboard ; 8030 4C 00 8D L.. ; ---------------------------------------------------------------------------- -L8033: jmp L87A0 ; 8033 4C A0 87 L.. +; check whether Jumpman just touched a bomb (RTS if not) +check_bomb_coll_jv: + jmp check_bomb_coll ; 8033 4C A0 87 L.. ; ---------------------------------------------------------------------------- L8036: jmp L8B23 ; 8036 4C 23 8B L#. @@ -1328,13 +1330,17 @@ set_prior: jmp L88A8 ; 879D 4C A8 88 L.. ; ---------------------------------------------------------------------------- -L87A0: lda collision_save+4 ; 87A0 AD B4 06 ... +; check whether Jumpman just touched a bomb (RTS if not) +check_bomb_coll: + lda collision_save+4 ; 87A0 AD B4 06 ... and #$04 ; 87A3 29 04 ). - bne L87A8 ; 87A5 D0 01 .. + bne bomb_pickup ; 87A5 D0 01 .. rts ; 87A7 60 ` ; ---------------------------------------------------------------------------- -L87A8: lda $067E ; 87A8 AD 7E 06 .~. +; Jumpman just picked up a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, do some other stuff I don't understand yet +bomb_pickup: + lda $067E ; 87A8 AD 7E 06 .~. clc ; 87AB 18 . adc work_level_offs_14 ; 87AC 6D 8E 07 m.. and #$E0 ; 87AF 29 E0 ). @@ -1426,9 +1432,9 @@ L8831: ldy $B2 ; 8831 A4 B2 lda ($B0),y ; 884E B1 B0 .. sta $06E5 ; 8850 8D E5 06 ... jsr L06E3 ; 8853 20 E3 06 .. -L8856: lda work_level_sub4 ; 8856 AD A0 07 ... +L8856: lda work_level_sub_bomb ; 8856 AD A0 07 ... sta $06E4 ; 8859 8D E4 06 ... - lda work_level_sub4+1 ; 885C AD A1 07 ... + lda work_level_sub_bomb+1 ; 885C AD A1 07 ... sta $06E5 ; 885F 8D E5 06 ... jsr L06E3 ; 8862 20 E3 06 .. clc ; 8865 18 . @@ -1452,7 +1458,8 @@ L888A: lda collision_save+4 ; 888A AD B4 06 rts ; 8891 60 ` ; ---------------------------------------------------------------------------- -data_8892: +; played when a bomb is picked up +sfx_bomb_pickup: .byte $01,$A6,$00,$1E,$03,$28,$03,$1E ; 8892 01 A6 00 1E 03 28 03 1E .....(.. .byte $03,$28,$03,$1E,$03,$28,$03,$1E ; 889A 03 28 03 1E 03 28 03 1E .(...(.. .byte $03,$28,$03,$00,$00,$00 ; 88A2 03 28 03 00 00 00 .(.... @@ -3260,7 +3267,7 @@ get_ready_dlist: ; ---------------------------------------------------------------------------- game_main_loop: jsr materialize_jumpman ; 9740 20 7B 97 {. -L9743: jsr L8033 ; 9743 20 33 80 3. +L9743: jsr check_bomb_coll_jv ; 9743 20 33 80 3. lda work_level_num_bombs ; 9746 AD 8A 07 ... beq got_all_bombs ; 9749 F0 1B .. lda $0623 ; 974B AD 23 06 .#. @@ -4168,8 +4175,8 @@ level00_unkn_table1: level00_offs_30: .byte $00,$00 ; A01E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level00_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level00_sub_bomb: .addr L06E6 ; A020 E6 06 .. ; $06E6 for some levels, or else a ROM subroutine level00_sub5: @@ -4261,8 +4268,8 @@ level01_unkn_table1: level01_offs_30: .byte $00,$00 ; A05E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level01_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level01_sub_bomb: .addr LA498 ; A060 98 A4 .. ; $06E6 for some levels, or else a ROM subroutine level01_sub5: @@ -4354,8 +4361,8 @@ level02_unkn_table1: level02_offs_30: .byte $00,$00 ; A09E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level02_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level02_sub_bomb: .addr L06E6 ; A0A0 E6 06 .. ; $06E6 for some levels, or else a ROM subroutine level02_sub5: @@ -4447,8 +4454,8 @@ level03_unkn_table1: level03_offs_30: .byte $00,$00 ; A0DE 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level03_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level03_sub_bomb: .addr L06E6 ; A0E0 E6 06 .. ; $06E6 for some levels, or else a ROM subroutine level03_sub5: @@ -4540,8 +4547,8 @@ level04_unkn_table1: level04_offs_30: .byte $00,$00 ; A11E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level04_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level04_sub_bomb: .addr L06E6 ; A120 E6 06 .. ; $06E6 for some levels, or else a ROM subroutine level04_sub5: @@ -4633,8 +4640,8 @@ level05_unkn_table1: level05_offs_30: .byte $00,$00 ; A15E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level05_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level05_sub_bomb: .addr LAA73 ; A160 73 AA s. ; $06E6 for some levels, or else a ROM subroutine level05_sub5: @@ -4726,8 +4733,8 @@ level06_unkn_table1: level06_offs_30: .byte $00,$00 ; A19E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level06_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level06_sub_bomb: .addr L06E6 ; A1A0 E6 06 .. ; $06E6 for some levels, or else a ROM subroutine level06_sub5: @@ -4819,8 +4826,8 @@ level07_unkn_table1: level07_offs_30: .byte $00,$00 ; A1DE 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level07_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level07_sub_bomb: .addr LAF23 ; A1E0 23 AF #. ; $06E6 for some levels, or else a ROM subroutine level07_sub5: @@ -4912,8 +4919,8 @@ level08_unkn_table1: level08_offs_30: .byte $00,$00 ; A21E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level08_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level08_sub_bomb: .addr LB121 ; A220 21 B1 !. ; $06E6 for some levels, or else a ROM subroutine level08_sub5: @@ -5005,8 +5012,8 @@ level09_unkn_table1: level09_offs_30: .byte $00,$00 ; A25E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level09_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level09_sub_bomb: .addr LB2FD ; A260 FD B2 .. ; $06E6 for some levels, or else a ROM subroutine level09_sub5: @@ -5098,8 +5105,8 @@ level10_unkn_table1: level10_offs_30: .byte $00,$00 ; A29E 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level10_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level10_sub_bomb: .addr LB44C ; A2A0 4C B4 L. ; $06E6 for some levels, or else a ROM subroutine level10_sub5: @@ -5191,8 +5198,8 @@ level11_unkn_table1: level11_offs_30: .byte $00,$00 ; A2DE 00 00 .. ; ---------------------------------------------------------------------------- -; $06E6 for most levels, or else a ROM subroutine -level11_sub4: +; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine +level11_sub_bomb: .addr L06E6 ; A2E0 E6 06 .. ; $06E6 for some levels, or else a ROM subroutine level11_sub5: @@ -7164,7 +7171,7 @@ LBCC1: lda $0663 ; BCC1 AD 63 06 rts ; BCCC 60 ` ; ---------------------------------------------------------------------------- -; dunno, but referenced by code at $BC6A +; dunno, but referenced by code at $BC6A (part of well_done_screen) code_bccd: lda $062A ; BCCD AD 2A 06 .*. sta COLOR2 ; BCD0 8D C6 02 ... diff --git a/jumpmanjr.info b/jumpmanjr.info index 17dfa03..f94de92 100644 --- a/jumpmanjr.info +++ b/jumpmanjr.info @@ -1,5 +1,6 @@ ### GENERATED FILE, do not edit, edit main.info and mklevelinfo.pl instead + # da65 info file for jumpman junior ROM. GLOBAL { @@ -96,9 +97,12 @@ label { name "check_collisions_3"; addr $9832; size 1; comment "did player 0 or label { name "collision_save"; addr $06B0; size 16; comment "save_collisions copies GTIA collision regs $D000-$d00f here"; }; label { name "init_next_level"; addr $9BE8; size 1; comment "..."; }; label { name "show_get_ready_prompt"; addr $9624; size 1; comment "only in multiplayer games"; }; +label { name "check_bomb_coll"; addr $87A0; size 1; comment "check whether Jumpman just touched a bomb (RTS if not)"; }; +label { name "check_bomb_coll_jv"; addr $8033; size 1; comment "check whether Jumpman just touched a bomb (RTS if not)"; }; +label { name "bomb_pickup"; addr $87A8; size 1; comment "Jumpman just picked up a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, do some other stuff I don't understand yet"; }; range { name "gr7_or_masks"; start $8143; end $8152; type bytetable; }; range { name "gr7_and_masks"; start $8153; end $8156; type bytetable; }; -range { name "data_8892"; start $8892; end $88A7; type bytetable; }; +range { name "sfx_bomb_pickup"; start $8892; end $88A7; type bytetable; comment "played when a bomb is picked up"; }; range { name "data_8dfa"; start $8DFA; end $8DFF; type bytetable; }; range { name "data_8f43"; start $8F43; end $8f72; type bytetable; }; @@ -224,7 +228,7 @@ range { name "data_table_86da"; start $86da; end $8713; type bytetable; }; range { name "level_name_hscrol_table"; start $BBF0; end $BBff; type bytetable; comment "used for centering level name on gameboard"; }; range { name "zero_filler_b8bf"; start $b8bf; end $b96a; type bytetable; comment "all zeroes, filler?"; }; range { name "zero_filler_baab"; start $baab; end $babb; type bytetable; comment "filler?"; }; -range { name "code_bccd"; start $bccd; end $bcd8; type code; comment "dunno, but referenced by code at $BC6A"; }; +range { name "code_bccd"; start $bccd; end $bcd8; type code; comment "dunno, but referenced by code at $BC6A (part of well_done_screen)"; }; range { name "well_done_map"; start $bcd9; end $bd51; type bytetable; comment "level map used for the WELL DONE screen, when you beat level 12"; }; range { name "well_done_shape"; start $bda0; end $bdc6; type bytetable; comment "used to draw the large WELL DONE banner"; }; range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment "not sure what displays this, but it's screen codes"; }; @@ -519,7 +523,7 @@ label { name "work_level_map1"; addr $0798; size 2; comment "map data"; }; label { name "work_level_map2"; addr $079a; size 2; comment "map data"; }; label { name "work_level_unkn_table1"; addr $079c; size 2; comment "unknown, pointer to a ROM table or $0000"; }; label { name "work_level_offs_30"; addr $079e; size 2; comment "always $0000"; }; -label { name "work_level_sub4"; addr $07a0; size 2; comment "$06E6 for most levels, or else a ROM subroutine"; }; +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_sub5"; addr $07a2; size 2; comment "$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 level07"; }; @@ -548,7 +552,7 @@ label { name "cur_level_map1"; addr $07d8; size 2; comment "map data"; }; label { name "cur_level_map2"; addr $07da; size 2; comment "map data"; }; label { name "cur_level_unkn_table1"; addr $07dc; size 2; comment "unknown, pointer to a ROM table or $0000"; }; label { name "cur_level_offs_30"; addr $07de; size 2; comment "always $0000"; }; -label { name "cur_level_sub4"; addr $07e0; size 2; comment "$06E6 for most levels, or else a ROM subroutine"; }; +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_sub5"; addr $07e2; size 2; comment "$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 level07"; }; @@ -577,7 +581,7 @@ range { name "level00_map1"; start $a018; end $a019; type addrtable; comment "ma range { name "level00_map2"; start $a01a; end $a01b; type addrtable; comment "map data"; }; range { name "level00_unkn_table1"; start $a01c; end $a01d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level00_offs_30"; start $a01e; end $a01f; type bytetable; comment "always $0000"; }; -range { name "level00_sub4"; start $a020; end $a021; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level00_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 "level00_sub5"; start $a022; end $a023; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level00_sub6"; start $a024; end $a025; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level00_sub_eol"; start $a026; end $a027; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -606,7 +610,7 @@ range { name "level01_map1"; start $a058; end $a059; type addrtable; comment "ma range { name "level01_map2"; start $a05a; end $a05b; type addrtable; comment "map data"; }; range { name "level01_unkn_table1"; start $a05c; end $a05d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level01_offs_30"; start $a05e; end $a05f; type bytetable; comment "always $0000"; }; -range { name "level01_sub4"; start $a060; end $a061; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level01_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 "level01_sub5"; start $a062; end $a063; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level01_sub6"; start $a064; end $a065; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level01_sub_eol"; start $a066; end $a067; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -635,7 +639,7 @@ range { name "level02_map1"; start $a098; end $a099; type addrtable; comment "ma range { name "level02_map2"; start $a09a; end $a09b; type addrtable; comment "map data"; }; range { name "level02_unkn_table1"; start $a09c; end $a09d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level02_offs_30"; start $a09e; end $a09f; type bytetable; comment "always $0000"; }; -range { name "level02_sub4"; start $a0a0; end $a0a1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level02_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 "level02_sub5"; start $a0a2; end $a0a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level02_sub6"; start $a0a4; end $a0a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level02_sub_eol"; start $a0a6; end $a0a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -664,7 +668,7 @@ range { name "level03_map1"; start $a0d8; end $a0d9; type addrtable; comment "ma range { name "level03_map2"; start $a0da; end $a0db; type addrtable; comment "map data"; }; range { name "level03_unkn_table1"; start $a0dc; end $a0dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level03_offs_30"; start $a0de; end $a0df; type bytetable; comment "always $0000"; }; -range { name "level03_sub4"; start $a0e0; end $a0e1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level03_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 "level03_sub5"; start $a0e2; end $a0e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level03_sub6"; start $a0e4; end $a0e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level03_sub_eol"; start $a0e6; end $a0e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -693,7 +697,7 @@ range { name "level04_map1"; start $a118; end $a119; type addrtable; comment "ma range { name "level04_map2"; start $a11a; end $a11b; type addrtable; comment "map data"; }; range { name "level04_unkn_table1"; start $a11c; end $a11d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level04_offs_30"; start $a11e; end $a11f; type bytetable; comment "always $0000"; }; -range { name "level04_sub4"; start $a120; end $a121; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level04_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 "level04_sub5"; start $a122; end $a123; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level04_sub6"; start $a124; end $a125; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level04_sub_eol"; start $a126; end $a127; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -722,7 +726,7 @@ range { name "level05_map1"; start $a158; end $a159; type addrtable; comment "ma range { name "level05_map2"; start $a15a; end $a15b; type addrtable; comment "map data"; }; range { name "level05_unkn_table1"; start $a15c; end $a15d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level05_offs_30"; start $a15e; end $a15f; type bytetable; comment "always $0000"; }; -range { name "level05_sub4"; start $a160; end $a161; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level05_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 "level05_sub5"; start $a162; end $a163; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level05_sub6"; start $a164; end $a165; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level05_sub_eol"; start $a166; end $a167; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -751,7 +755,7 @@ range { name "level06_map1"; start $a198; end $a199; type addrtable; comment "ma range { name "level06_map2"; start $a19a; end $a19b; type addrtable; comment "map data"; }; range { name "level06_unkn_table1"; start $a19c; end $a19d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level06_offs_30"; start $a19e; end $a19f; type bytetable; comment "always $0000"; }; -range { name "level06_sub4"; start $a1a0; end $a1a1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level06_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 "level06_sub5"; start $a1a2; end $a1a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level06_sub6"; start $a1a4; end $a1a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level06_sub_eol"; start $a1a6; end $a1a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -780,7 +784,7 @@ range { name "level07_map1"; start $a1d8; end $a1d9; type addrtable; comment "ma range { name "level07_map2"; start $a1da; end $a1db; type addrtable; comment "map data"; }; range { name "level07_unkn_table1"; start $a1dc; end $a1dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level07_offs_30"; start $a1de; end $a1df; type bytetable; comment "always $0000"; }; -range { name "level07_sub4"; start $a1e0; end $a1e1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level07_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 "level07_sub5"; start $a1e2; end $a1e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level07_sub6"; start $a1e4; end $a1e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level07_sub_eol"; start $a1e6; end $a1e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -809,7 +813,7 @@ range { name "level08_map1"; start $a218; end $a219; type addrtable; comment "ma range { name "level08_map2"; start $a21a; end $a21b; type addrtable; comment "map data"; }; range { name "level08_unkn_table1"; start $a21c; end $a21d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level08_offs_30"; start $a21e; end $a21f; type bytetable; comment "always $0000"; }; -range { name "level08_sub4"; start $a220; end $a221; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level08_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 "level08_sub5"; start $a222; end $a223; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level08_sub6"; start $a224; end $a225; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level08_sub_eol"; start $a226; end $a227; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -838,7 +842,7 @@ range { name "level09_map1"; start $a258; end $a259; type addrtable; comment "ma range { name "level09_map2"; start $a25a; end $a25b; type addrtable; comment "map data"; }; range { name "level09_unkn_table1"; start $a25c; end $a25d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level09_offs_30"; start $a25e; end $a25f; type bytetable; comment "always $0000"; }; -range { name "level09_sub4"; start $a260; end $a261; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level09_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 "level09_sub5"; start $a262; end $a263; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level09_sub6"; start $a264; end $a265; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level09_sub_eol"; start $a266; end $a267; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -867,7 +871,7 @@ range { name "level10_map1"; start $a298; end $a299; type addrtable; comment "ma range { name "level10_map2"; start $a29a; end $a29b; type addrtable; comment "map data"; }; range { name "level10_unkn_table1"; start $a29c; end $a29d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level10_offs_30"; start $a29e; end $a29f; type bytetable; comment "always $0000"; }; -range { name "level10_sub4"; start $a2a0; end $a2a1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level10_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 "level10_sub5"; start $a2a2; end $a2a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level10_sub6"; start $a2a4; end $a2a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level10_sub_eol"; start $a2a6; end $a2a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -896,7 +900,7 @@ range { name "level11_map1"; start $a2d8; end $a2d9; type addrtable; comment "ma range { name "level11_map2"; start $a2da; end $a2db; type addrtable; comment "map data"; }; range { name "level11_unkn_table1"; start $a2dc; end $a2dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level11_offs_30"; start $a2de; end $a2df; type bytetable; comment "always $0000"; }; -range { name "level11_sub4"; start $a2e0; end $a2e1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level11_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 "level11_sub5"; start $a2e2; end $a2e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level11_sub6"; start $a2e4; end $a2e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level11_sub_eol"; start $a2e6; end $a2e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; diff --git a/leveldesc.info b/leveldesc.info index 47b7ebc..35b89a0 100644 --- a/leveldesc.info +++ b/leveldesc.info @@ -17,7 +17,7 @@ label { name "work_level_map1"; addr $0798; size 2; comment "map data"; }; label { name "work_level_map2"; addr $079a; size 2; comment "map data"; }; label { name "work_level_unkn_table1"; addr $079c; size 2; comment "unknown, pointer to a ROM table or $0000"; }; label { name "work_level_offs_30"; addr $079e; size 2; comment "always $0000"; }; -label { name "work_level_sub4"; addr $07a0; size 2; comment "$06E6 for most levels, or else a ROM subroutine"; }; +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_sub5"; addr $07a2; size 2; comment "$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 level07"; }; @@ -46,7 +46,7 @@ label { name "cur_level_map1"; addr $07d8; size 2; comment "map data"; }; label { name "cur_level_map2"; addr $07da; size 2; comment "map data"; }; label { name "cur_level_unkn_table1"; addr $07dc; size 2; comment "unknown, pointer to a ROM table or $0000"; }; label { name "cur_level_offs_30"; addr $07de; size 2; comment "always $0000"; }; -label { name "cur_level_sub4"; addr $07e0; size 2; comment "$06E6 for most levels, or else a ROM subroutine"; }; +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_sub5"; addr $07e2; size 2; comment "$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 level07"; }; @@ -75,7 +75,7 @@ range { name "level00_map1"; start $a018; end $a019; type addrtable; comment "ma range { name "level00_map2"; start $a01a; end $a01b; type addrtable; comment "map data"; }; range { name "level00_unkn_table1"; start $a01c; end $a01d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level00_offs_30"; start $a01e; end $a01f; type bytetable; comment "always $0000"; }; -range { name "level00_sub4"; start $a020; end $a021; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level00_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 "level00_sub5"; start $a022; end $a023; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level00_sub6"; start $a024; end $a025; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level00_sub_eol"; start $a026; end $a027; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -104,7 +104,7 @@ range { name "level01_map1"; start $a058; end $a059; type addrtable; comment "ma range { name "level01_map2"; start $a05a; end $a05b; type addrtable; comment "map data"; }; range { name "level01_unkn_table1"; start $a05c; end $a05d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level01_offs_30"; start $a05e; end $a05f; type bytetable; comment "always $0000"; }; -range { name "level01_sub4"; start $a060; end $a061; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level01_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 "level01_sub5"; start $a062; end $a063; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level01_sub6"; start $a064; end $a065; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level01_sub_eol"; start $a066; end $a067; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -133,7 +133,7 @@ range { name "level02_map1"; start $a098; end $a099; type addrtable; comment "ma range { name "level02_map2"; start $a09a; end $a09b; type addrtable; comment "map data"; }; range { name "level02_unkn_table1"; start $a09c; end $a09d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level02_offs_30"; start $a09e; end $a09f; type bytetable; comment "always $0000"; }; -range { name "level02_sub4"; start $a0a0; end $a0a1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level02_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 "level02_sub5"; start $a0a2; end $a0a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level02_sub6"; start $a0a4; end $a0a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level02_sub_eol"; start $a0a6; end $a0a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -162,7 +162,7 @@ range { name "level03_map1"; start $a0d8; end $a0d9; type addrtable; comment "ma range { name "level03_map2"; start $a0da; end $a0db; type addrtable; comment "map data"; }; range { name "level03_unkn_table1"; start $a0dc; end $a0dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level03_offs_30"; start $a0de; end $a0df; type bytetable; comment "always $0000"; }; -range { name "level03_sub4"; start $a0e0; end $a0e1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level03_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 "level03_sub5"; start $a0e2; end $a0e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level03_sub6"; start $a0e4; end $a0e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level03_sub_eol"; start $a0e6; end $a0e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -191,7 +191,7 @@ range { name "level04_map1"; start $a118; end $a119; type addrtable; comment "ma range { name "level04_map2"; start $a11a; end $a11b; type addrtable; comment "map data"; }; range { name "level04_unkn_table1"; start $a11c; end $a11d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level04_offs_30"; start $a11e; end $a11f; type bytetable; comment "always $0000"; }; -range { name "level04_sub4"; start $a120; end $a121; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level04_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 "level04_sub5"; start $a122; end $a123; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level04_sub6"; start $a124; end $a125; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level04_sub_eol"; start $a126; end $a127; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -220,7 +220,7 @@ range { name "level05_map1"; start $a158; end $a159; type addrtable; comment "ma range { name "level05_map2"; start $a15a; end $a15b; type addrtable; comment "map data"; }; range { name "level05_unkn_table1"; start $a15c; end $a15d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level05_offs_30"; start $a15e; end $a15f; type bytetable; comment "always $0000"; }; -range { name "level05_sub4"; start $a160; end $a161; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level05_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 "level05_sub5"; start $a162; end $a163; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level05_sub6"; start $a164; end $a165; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level05_sub_eol"; start $a166; end $a167; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -249,7 +249,7 @@ range { name "level06_map1"; start $a198; end $a199; type addrtable; comment "ma range { name "level06_map2"; start $a19a; end $a19b; type addrtable; comment "map data"; }; range { name "level06_unkn_table1"; start $a19c; end $a19d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level06_offs_30"; start $a19e; end $a19f; type bytetable; comment "always $0000"; }; -range { name "level06_sub4"; start $a1a0; end $a1a1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level06_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 "level06_sub5"; start $a1a2; end $a1a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level06_sub6"; start $a1a4; end $a1a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level06_sub_eol"; start $a1a6; end $a1a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -278,7 +278,7 @@ range { name "level07_map1"; start $a1d8; end $a1d9; type addrtable; comment "ma range { name "level07_map2"; start $a1da; end $a1db; type addrtable; comment "map data"; }; range { name "level07_unkn_table1"; start $a1dc; end $a1dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level07_offs_30"; start $a1de; end $a1df; type bytetable; comment "always $0000"; }; -range { name "level07_sub4"; start $a1e0; end $a1e1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level07_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 "level07_sub5"; start $a1e2; end $a1e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level07_sub6"; start $a1e4; end $a1e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level07_sub_eol"; start $a1e6; end $a1e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -307,7 +307,7 @@ range { name "level08_map1"; start $a218; end $a219; type addrtable; comment "ma range { name "level08_map2"; start $a21a; end $a21b; type addrtable; comment "map data"; }; range { name "level08_unkn_table1"; start $a21c; end $a21d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level08_offs_30"; start $a21e; end $a21f; type bytetable; comment "always $0000"; }; -range { name "level08_sub4"; start $a220; end $a221; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level08_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 "level08_sub5"; start $a222; end $a223; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level08_sub6"; start $a224; end $a225; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level08_sub_eol"; start $a226; end $a227; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -336,7 +336,7 @@ range { name "level09_map1"; start $a258; end $a259; type addrtable; comment "ma range { name "level09_map2"; start $a25a; end $a25b; type addrtable; comment "map data"; }; range { name "level09_unkn_table1"; start $a25c; end $a25d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level09_offs_30"; start $a25e; end $a25f; type bytetable; comment "always $0000"; }; -range { name "level09_sub4"; start $a260; end $a261; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level09_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 "level09_sub5"; start $a262; end $a263; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level09_sub6"; start $a264; end $a265; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level09_sub_eol"; start $a266; end $a267; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -365,7 +365,7 @@ range { name "level10_map1"; start $a298; end $a299; type addrtable; comment "ma range { name "level10_map2"; start $a29a; end $a29b; type addrtable; comment "map data"; }; range { name "level10_unkn_table1"; start $a29c; end $a29d; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level10_offs_30"; start $a29e; end $a29f; type bytetable; comment "always $0000"; }; -range { name "level10_sub4"; start $a2a0; end $a2a1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level10_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 "level10_sub5"; start $a2a2; end $a2a3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level10_sub6"; start $a2a4; end $a2a5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level10_sub_eol"; start $a2a6; end $a2a7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; @@ -394,7 +394,7 @@ range { name "level11_map1"; start $a2d8; end $a2d9; type addrtable; comment "ma range { name "level11_map2"; start $a2da; end $a2db; type addrtable; comment "map data"; }; range { name "level11_unkn_table1"; start $a2dc; end $a2dd; type addrtable; comment "unknown, pointer to a ROM table or $0000"; }; range { name "level11_offs_30"; start $a2de; end $a2df; type bytetable; comment "always $0000"; }; -range { name "level11_sub4"; start $a2e0; end $a2e1; type addrtable; comment "$06E6 for most levels, or else a ROM subroutine"; }; +range { name "level11_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 "level11_sub5"; start $a2e2; end $a2e3; type addrtable; comment "$06E6 for some levels, or else a ROM subroutine"; }; range { name "level11_sub6"; start $a2e4; end $a2e5; type addrtable; comment "always $9740 aka game_main_loop"; }; range { name "level11_sub_eol"; start $a2e6; end $a2e7; type addrtable; comment "called at end of level (all bombs picked up). $06E6 for all but level07"; }; diff --git a/main.info b/main.info index 543d4ff..eb90eb4 100644 --- a/main.info +++ b/main.info @@ -95,9 +95,12 @@ label { name "check_collisions_3"; addr $9832; size 1; comment "did player 0 or label { name "collision_save"; addr $06B0; size 16; comment "save_collisions copies GTIA collision regs $D000-$d00f here"; }; label { name "init_next_level"; addr $9BE8; size 1; comment "..."; }; label { name "show_get_ready_prompt"; addr $9624; size 1; comment "only in multiplayer games"; }; +label { name "check_bomb_coll"; addr $87A0; size 1; comment "check whether Jumpman just touched a bomb (RTS if not)"; }; +label { name "check_bomb_coll_jv"; addr $8033; size 1; comment "check whether Jumpman just touched a bomb (RTS if not)"; }; +label { name "bomb_pickup"; addr $87A8; size 1; comment "Jumpman just picked up a bomb, award points, play sfx_bomb_pickup, make the bomb disappear, do some other stuff I don't understand yet"; }; range { name "gr7_or_masks"; start $8143; end $8152; type bytetable; }; range { name "gr7_and_masks"; start $8153; end $8156; type bytetable; }; -range { name "data_8892"; start $8892; end $88A7; type bytetable; }; +range { name "sfx_bomb_pickup"; start $8892; end $88A7; type bytetable; comment "played when a bomb is picked up"; }; range { name "data_8dfa"; start $8DFA; end $8DFF; type bytetable; }; range { name "data_8f43"; start $8F43; end $8f72; type bytetable; }; @@ -223,7 +226,7 @@ range { name "data_table_86da"; start $86da; end $8713; type bytetable; }; range { name "level_name_hscrol_table"; start $BBF0; end $BBff; type bytetable; comment "used for centering level name on gameboard"; }; range { name "zero_filler_b8bf"; start $b8bf; end $b96a; type bytetable; comment "all zeroes, filler?"; }; range { name "zero_filler_baab"; start $baab; end $babb; type bytetable; comment "filler?"; }; -range { name "code_bccd"; start $bccd; end $bcd8; type code; comment "dunno, but referenced by code at $BC6A"; }; +range { name "code_bccd"; start $bccd; end $bcd8; type code; comment "dunno, but referenced by code at $BC6A (part of well_done_screen)"; }; range { name "well_done_map"; start $bcd9; end $bd51; type bytetable; comment "level map used for the WELL DONE screen, when you beat level 12"; }; range { name "well_done_shape"; start $bda0; end $bdc6; type bytetable; comment "used to draw the large WELL DONE banner"; }; range { name "total_score_msg"; start $bdd2; end $bdf1; type bytetable; comment "not sure what displays this, but it's screen codes"; }; diff --git a/mklevelinfo.pl b/mklevelinfo.pl index 56a8894..e94c6fa 100644 --- a/mklevelinfo.pl +++ b/mklevelinfo.pl @@ -20,7 +20,7 @@ 26 => [ 2, 'map2', 'map data' ], 28 => [ 2, 'unkn_table1', 'unknown, pointer to a ROM table or $0000' ], 30 => [ 2, 'offs', 'always $0000' ], - 32 => [ 2, 'sub4', '$06E6 for most levels, or else a ROM subroutine' ], + 32 => [ 2, 'sub_bomb', 'called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine' ], 34 => [ 2, 'sub5', '$06E6 for some levels, or else a ROM subroutine' ], 36 => [ 2, 'sub6', 'always $9740 aka game_main_loop' ], 38 => [ 2, 'sub_eol', 'called at end of level (all bombs picked up). $06E6 for all but level07' ], -- cgit v1.2.3