diff options
| -rw-r--r-- | jumpmanjr.dasm | 79 | ||||
| -rw-r--r-- | jumpmanjr.info | 36 | ||||
| -rw-r--r-- | leveldesc.info | 28 | ||||
| -rw-r--r-- | main.info | 7 | ||||
| -rw-r--r-- | 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"; }; @@ -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' ],  | 
