diff options
-rw-r--r-- | jumpmanjr.dasm | 91 | ||||
-rw-r--r-- | jumpmanjr.info | 27 | ||||
-rw-r--r-- | main.info | 27 |
3 files changed, 92 insertions, 53 deletions
diff --git a/jumpmanjr.dasm b/jumpmanjr.dasm index 683790d..df9807d 100644 --- a/jumpmanjr.dasm +++ b/jumpmanjr.dasm @@ -1,5 +1,5 @@ ; da65 V2.15 - Git 104f898 -; Created: 2016-09-02 03:47:10 +; Created: 2016-09-02 05:02:31 ; Input file: jumpmanjr.rom ; Page: 1 @@ -4028,7 +4028,7 @@ sh_ladder: .byte $02,$02,$02,$02,$02,$02,$02,$02 ; 9C77 02 02 02 02 02 02 02 02 ........ .byte $00,$03,$02,$02,$02,$06,$03,$02 ; 9C7F 00 03 02 02 02 06 03 02 ........ .byte $02,$FF ; 9C87 02 FF .. -; dunno what this is yet +; dunno, solid black shape sh_9c89:.byte $02,$00,$00,$00,$00,$02,$06,$00 ; 9C89 02 00 00 00 00 02 06 00 ........ .byte $00,$00,$02,$00,$01,$00,$00,$02 ; 9C91 00 00 02 00 01 00 00 02 ........ .byte $06,$01,$00,$00,$08,$00,$02,$00 ; 9C99 06 01 00 00 08 00 02 00 ........ @@ -4046,7 +4046,7 @@ sh_down_rope: .byte $01,$00,$00,$02,$01,$00,$01,$02 ; 9CDA 01 00 00 02 01 00 01 02 ........ .byte $01,$01,$02,$02,$01,$01,$03,$02 ; 9CE2 01 01 02 02 01 01 03 02 ........ .byte $FF ; 9CEA FF . -; dunno what this is yet +; dunno, solid black shape sh_9ceb:.byte $02,$00,$00,$00,$00,$02,$00,$01 ; 9CEB 02 00 00 00 00 02 00 01 ........ .byte $00,$00,$02,$00,$02,$00,$00,$02 ; 9CF3 00 00 02 00 02 00 00 02 ........ .byte $00,$03,$00,$00,$FF ; 9CFB 00 03 00 00 FF ..... @@ -4708,16 +4708,16 @@ level06_desc: ; ---------------------------------------------------------------------------- ; a subroutine level06_sub0: - .addr LAA3A ; A142 3A AA :. + .addr walls_sub0 ; A142 3A AA :. ; a subroutine level06_sub1: - .addr LAA35 ; A144 35 AA 5. + .addr walls_sub1 ; A144 35 AA 5. ; a subroutine level06_sub2: - .addr LAA55 ; A146 55 AA U. + .addr walls_sub2 ; A146 55 AA U. ; a subroutine level06_sub3: - .addr LAABC ; A148 BC AA .. + .addr walls_sub3 ; A148 BC AA .. ; ---------------------------------------------------------------------------- ; number of bombs to pick up on this level level06_num_bombs: @@ -4771,10 +4771,10 @@ level06_indirect_subs: ; ---------------------------------------------------------------------------- ; called when a bomb is picked up. $06E6 for most levels (just an RTS), or else a ROM subroutine level06_sub_bomb: - .addr LAA73 ; A160 73 AA s. + .addr walls_bomb_sub ; A160 73 AA s. ; called at start of level, $06E6 for some levels, or else a ROM subroutine level06_sub_start: - .addr LA9C6 ; A162 C6 A9 .. + .addr walls_init ; A162 C6 A9 .. ; always $9740 aka game_main_loop level06_sub6: .addr game_main_loop ; A164 40 97 @. @@ -5949,7 +5949,7 @@ LA8EF: tya ; A8EF 98 jmp LA845 ; A8FA 4C 45 A8 LE. ; ---------------------------------------------------------------------------- -; dunno, referenced by routine at $A8D4 +; dunno, referenced hellstones_sub0 data_table_a8fd: .byte $00,$02,$02,$02,$02,$02,$02,$00 ; A8FD 00 02 02 02 02 02 02 00 ........ LA905: .byte $FE,$FE,$FE,$00,$00,$02,$02,$02 ; A905 FE FE FE 00 00 02 02 02 ........ @@ -5984,7 +5984,8 @@ l06_bombs: l06_bombs_term: .byte $FF ; A9C5 FF . ; ---------------------------------------------------------------------------- -LA9C6: jsr L8036 ; A9C6 20 36 80 6. +walls_init: + jsr L8036 ; A9C6 20 36 80 6. lda #$02 ; A9C9 A9 02 .. sta $0770 ; A9CB 8D 70 07 .p. sta $0772 ; A9CE 8D 72 07 .r. @@ -6042,14 +6043,16 @@ LAA2D: tax ; AA2D AA rts ; AA34 60 ` ; ---------------------------------------------------------------------------- -LAA35: lda $0622 ; AA35 AD 22 06 .". +walls_sub1: + lda $0622 ; AA35 AD 22 06 .". bne LAA3B ; AA38 D0 01 .. -LAA3A: rts ; AA3A 60 ` +walls_sub0: + rts ; AA3A 60 ` ; ---------------------------------------------------------------------------- LAA3B: ldx #$05 ; AA3B A2 05 .. LAA3D: dex ; AA3D CA . - beq LAA3A ; AA3E F0 FA .. + beq walls_sub0 ; AA3E F0 FA .. lda $0773,x ; AA40 BD 73 07 .s. beq LAA3D ; AA43 F0 F8 .. lda $0777,x ; AA45 BD 77 07 .w. @@ -6060,11 +6063,12 @@ LAA3D: dex ; AA3D CA jmp LAA3D ; AA52 4C 3D AA L=. ; ---------------------------------------------------------------------------- -LAA55: lda $0622 ; AA55 AD 22 06 .". - beq LAA3A ; AA58 F0 E0 .. +walls_sub2: + lda $0622 ; AA55 AD 22 06 .". + beq walls_sub0 ; AA58 F0 E0 .. ldx #$05 ; AA5A A2 05 .. LAA5C: dex ; AA5C CA . - beq LAA3A ; AA5D F0 DB .. + beq walls_sub0 ; AA5D F0 DB .. lda collision_save+7,x ; AA5F BD B7 06 ... and #$01 ; AA62 29 01 ). beq LAA5C ; AA64 F0 F6 .. @@ -6075,7 +6079,9 @@ LAA5C: dex ; AA5C CA jmp LAA5C ; AA70 4C 5C AA L\. ; ---------------------------------------------------------------------------- -LAA73: inc $0764 ; AA73 EE 64 07 .d. +; toggles the center rope between up and down ropes +walls_bomb_sub: + inc $0764 ; AA73 EE 64 07 .d. lda $0764 ; AA76 AD 64 07 .d. and #$01 ; AA79 29 01 ). beq LAA82 ; AA7B F0 05 .. @@ -6091,18 +6097,19 @@ LAA84: sta dm_progctr ; AA84 85 C0 jmp LAA25 ; AA8D 4C 25 AA L%. ; ---------------------------------------------------------------------------- -; dunno what this is for yet -map_aa90: +; map data for center down-rope, referenced by walls_bomb_sub +walls_down_rope: .byte $FE,$EB,$9C,$FD,$00,$04,$50,$00 ; AA90 FE EB 9C FD 00 04 50 00 ......P. .byte $0C,$FE,$33,$9C,$4E,$05,$01,$FE ; AA98 0C FE 33 9C 4E 05 01 FE ..3.N... .byte $DA,$9C,$50,$00,$0C,$FF ; AAA0 DA 9C 50 00 0C FF ..P... -; referenced by routine at $AA82 -map_aaa6: +; map data for center up-rope, referenced walls_bomb_sub +walls_up_rope: .byte $FE,$EB,$9C,$FD,$00,$04,$50,$00 ; AAA6 FE EB 9C FD 00 04 50 00 ......P. .byte $0C,$FE,$33,$9C,$4E,$05,$01,$FE ; AAAE 0C FE 33 9C 4E 05 01 FE ..3.N... .byte $C9,$9C,$50,$08,$0A,$FF ; AAB6 C9 9C 50 08 0A FF ..P... ; ---------------------------------------------------------------------------- -LAABC: lda $062A ; AABC AD 2A 06 .*. +walls_sub3: + lda $062A ; AABC AD 2A 06 .*. sta COLOR3 ; AABF 8D C7 02 ... rts ; AAC2 60 ` @@ -6112,8 +6119,8 @@ LAABC: lda $062A ; AABC AD 2A 06 rts ; AAC7 60 ` ; ---------------------------------------------------------------------------- -; dunno what this is for yet -map_aac8: +; non-map data, dunno what for. grouped with the level 5 stuff, but doesn't seem to be used by level 5 +data_aac8: .byte $00,$09,$40,$45,$02,$58,$45,$02 ; AAC8 00 09 40 45 02 58 45 02 ..@E.XE. ; level map data starts here l05_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; AAD0 FE 33 9C FD 04 00 04 05 .3...... @@ -6685,22 +6692,32 @@ LB292: inc bullet_y_delta+3 ; B292 EE 61 07 lda bullet_y_delta+3 ; B295 AD 61 07 .a. and #$07 ; B298 29 07 ). tax ; B29A AA . - lda LB2D0,x ; B29B BD D0 B2 ... + lda portal_x,x ; B29B BD D0 B2 ... sta $0680 ; B29E 8D 80 06 ... - lda LB2D8,x ; B2A1 BD D8 B2 ... + lda portal_y,x ; B2A1 BD D8 B2 ... sta $0685 ; B2A4 8D 85 06 ... rts ; B2A7 60 ` ; ---------------------------------------------------------------------------- -; dunno what this is for yet -data_table_b2a8: +; portal animation frames +herethere_sprite0: .byte $00,$00,$00,$18,$18,$18,$18,$00 ; B2A8 00 00 00 18 18 18 18 00 ........ - .byte $00,$00,$00,$00,$3C,$24,$24,$24 ; B2B0 00 00 00 00 3C 24 24 24 ....<$$$ - .byte $24,$3C,$00,$00,$00,$7E,$42,$42 ; B2B8 24 3C 00 00 00 7E 42 42 $<...~BB - .byte $42,$42,$42,$42,$7E,$00,$FF,$81 ; B2C0 42 42 42 42 7E 00 FF 81 BBBB~... - .byte $81,$81,$81,$81,$81,$81,$81,$FF ; B2C8 81 81 81 81 81 81 81 FF ........ -LB2D0: .byte $A4,$4C,$52,$70,$86,$86,$A4,$82 ; B2D0 A4 4C 52 70 86 86 A4 82 .LRp.... -LB2D8: .byte $20,$20,$98,$C0,$B4,$80,$68,$40 ; B2D8 20 20 98 C0 B4 80 68 40 ....h@ + .byte $00,$00 ; B2B0 00 00 .. +herethere_sprite1: + .byte $00,$00,$3C,$24,$24,$24,$24,$3C ; B2B2 00 00 3C 24 24 24 24 3C ..<$$$$< + .byte $00,$00 ; B2BA 00 00 .. +herethere_sprite2: + .byte $00,$7E,$42,$42,$42,$42,$42,$42 ; B2BC 00 7E 42 42 42 42 42 42 .~BBBBBB + .byte $7E,$00 ; B2C4 7E 00 ~. +herethere_sprite3: + .byte $FF,$81,$81,$81,$81,$81,$81,$81 ; B2C6 FF 81 81 81 81 81 81 81 ........ + .byte $81,$FF ; B2CE 81 FF .. +; herethere portal X positions +portal_x: + .byte $A4,$4C,$52,$70,$86,$86,$A4,$82 ; B2D0 A4 4C 52 70 86 86 A4 82 .LRp.... +; herethere portal Y positions +portal_y: + .byte $20,$20,$98,$C0,$B4,$80,$68,$40 ; B2D8 20 20 98 C0 B4 80 68 40 ....h@ ; ---------------------------------------------------------------------------- herethere_sub3: lda $0619 ; B2E0 AD 19 06 ... @@ -6730,8 +6747,8 @@ herethere_bomb_sub: rts ; B318 60 ` ; ---------------------------------------------------------------------------- -; referenced by routine at $B2FD -sxf_b319: +; referenced by herethere_bomb_sub +sxf_teleport: .byte $01,$86,$00,$0A,$20,$00,$00 ; B319 01 86 00 0A 20 00 00 .... .. l11_map:.byte $FE,$33,$9C,$FD,$04,$00,$04,$05 ; B320 FE 33 9C FD 04 00 04 05 .3...... .byte $08,$2C,$07,$15,$84,$05,$06,$1C ; B328 08 2C 07 15 84 05 06 1C .,...... diff --git a/jumpmanjr.info b/jumpmanjr.info index da90ca8..3410567 100644 --- a/jumpmanjr.info +++ b/jumpmanjr.info @@ -344,11 +344,17 @@ range { name "l05_bombs"; start $ab6d; end $ab88; type bytetable; }; range { name "l05_bombs_term"; start $ab89; end $ab89; type bytetable; }; range { name "l05_map_changes"; start $ab8a; end $ac5f; type bytetable; }; -range { name "data_table_a8fd"; start $a8fd; end $a91f; type bytetable; comment "dunno, referenced by routine at $A8D4"; }; +range { name "data_table_a8fd"; start $a8fd; end $a91f; type bytetable; comment "dunno, referenced hellstones_sub0"; }; range { name "l06_map"; start $a920; end $a973; type bytetable; }; range { name "l06_map_bombs"; start $a974; end $a9a4; type bytetable; }; range { name "l06_bombs"; start $a9a5; end $a9c4; type bytetable; }; range { name "l06_bombs_term"; start $a9c5; end $a9c5; type bytetable; }; +label { name "walls_bomb_sub"; addr $AA73; comment "toggles the center rope between up and down ropes"; }; +label { name "walls_init"; addr $A9C6; }; +label { name "walls_sub0"; addr $AA3A; }; +label { name "walls_sub1"; addr $AA35; }; +label { name "walls_sub2"; addr $AA55; }; +label { name "walls_sub3"; addr $AABC; }; range { name "l07_map"; start $ac60; end $acb9; type bytetable; }; range { name "l07_map_bombs"; start $acba; end $ace4; type bytetable; }; @@ -406,9 +412,9 @@ range { name "l12_bombs_term"; start $b619; end $b619; type bytetable; }; range { name "l12_map_changes"; start $b61a; end $b657; type bytetable; }; range { name "l12_unkn0"; start $b658; end $b690; type bytetable; }; -range { name "map_aa90"; start $aa90; end $aabb; type bytetable; comment "dunno what this is for yet"; }; -range { name "map_aac8"; start $aac8; end $aacf; type bytetable; comment "dunno what this is for yet"; }; -label { name "map_aaa6"; addr $aaa6; comment "referenced by routine at $AA82"; }; +range { name "walls_down_rope"; start $aa90; end $aabb; type bytetable; comment "map data for center down-rope, referenced by walls_bomb_sub"; }; +range { name "data_aac8"; start $aac8; end $aacf; type bytetable; comment "non-map data, dunno what for. grouped with the level 5 stuff, but doesn't seem to be used by level 5"; }; +label { name "walls_up_rope"; addr $aaa6; comment "map data for center up-rope, referenced walls_bomb_sub"; }; range { name "data_table_aea4"; start $aea4; end $af0f; type bytetable; comment "dunno"; }; range { name "sfx_letter_bonus"; start $AFCB; end $afff; type bytetable; comment "played once per correct letter at end of level08 (spellbound)"; }; label { name "cue_letter_sfx"; addr $AFB9; comment "play sfx_letter_bonus"; }; @@ -432,14 +438,19 @@ range { name "level_gfx"; start $9C21; end $9cff; type bytetable; comment "defin label { name "sh_girder"; addr $9C33; comment "3 rows of pixels. 1st: 04 = 4 pixels wide, 00 00 = no X/Y offset, 01 01 01 01 = actual pixel data (4 color0 pixels). see level_maps.txt"; }; label { name "sh_blank_4x4"; addr $9C49; }; label { name "sh_ladder"; addr $9C5F; }; -label { name "sh_9c89"; addr $9c89; comment "dunno what this is yet"; }; +label { name "sh_9c89"; addr $9c89; comment "dunno, solid black shape"; }; label { name "sh_bomb"; addr $9cb3; }; label { name "sh_up_rope"; addr $9cc9; }; label { name "sh_down_rope"; addr $9cda; }; -label { name "sh_9ceb"; addr $9ceb; comment "dunno what this is yet"; }; +label { name "sh_9ceb"; addr $9ceb; comment "dunno, solid black shape"; }; range { name "sprite_table"; start $9d00; end $9dff; type bytetable; comment "jumpman's animation frames and other sprites, seem to be 10 bytes per sprite"; }; -range { name "sxf_b319"; start $b319; end $b31f; type bytetable; comment "referenced by routine at $B2FD"; }; -range { name "data_table_b2a8"; start $b2a8; end $B2df; type bytetable; comment "dunno what this is for yet"; }; +range { name "sxf_teleport"; start $b319; end $b31f; type bytetable; comment "referenced by herethere_bomb_sub"; }; +range { name "herethere_sprite0"; start $b2a8; end $B2b1; type bytetable; comment "portal animation frames"; }; +range { name "herethere_sprite1"; start $b2b2; end $b2bb; type bytetable; }; +range { name "herethere_sprite2"; start $b2bc; end $b2c5; type bytetable; }; +range { name "herethere_sprite3"; start $b2c6; end $B2cf; type bytetable; }; +range { name "portal_x"; start $B2D0; end $B2d7; type bytetable; comment "herethere portal X positions"; }; +range { name "portal_y"; start $B2D8; end $B2df; type bytetable; comment "herethere portal Y positions"; }; range { name "hatch_table_b50b"; start $b50b; end $B57b; type bytetable; comment "dunno what this is for yet"; }; range { name "scores_screen_dlist"; start $8C52; end $8C67; type bytetable; comment "a GR.2-ish DL, with DLIs, screen mem at $3000, for player scores screen"; }; label { name "reyalp_msg_minus_one"; addr $8c67; }; @@ -342,11 +342,17 @@ range { name "l05_bombs"; start $ab6d; end $ab88; type bytetable; }; range { name "l05_bombs_term"; start $ab89; end $ab89; type bytetable; }; range { name "l05_map_changes"; start $ab8a; end $ac5f; type bytetable; }; -range { name "data_table_a8fd"; start $a8fd; end $a91f; type bytetable; comment "dunno, referenced by routine at $A8D4"; }; +range { name "data_table_a8fd"; start $a8fd; end $a91f; type bytetable; comment "dunno, referenced hellstones_sub0"; }; range { name "l06_map"; start $a920; end $a973; type bytetable; }; range { name "l06_map_bombs"; start $a974; end $a9a4; type bytetable; }; range { name "l06_bombs"; start $a9a5; end $a9c4; type bytetable; }; range { name "l06_bombs_term"; start $a9c5; end $a9c5; type bytetable; }; +label { name "walls_bomb_sub"; addr $AA73; comment "toggles the center rope between up and down ropes"; }; +label { name "walls_init"; addr $A9C6; }; +label { name "walls_sub0"; addr $AA3A; }; +label { name "walls_sub1"; addr $AA35; }; +label { name "walls_sub2"; addr $AA55; }; +label { name "walls_sub3"; addr $AABC; }; range { name "l07_map"; start $ac60; end $acb9; type bytetable; }; range { name "l07_map_bombs"; start $acba; end $ace4; type bytetable; }; @@ -404,9 +410,9 @@ range { name "l12_bombs_term"; start $b619; end $b619; type bytetable; }; range { name "l12_map_changes"; start $b61a; end $b657; type bytetable; }; range { name "l12_unkn0"; start $b658; end $b690; type bytetable; }; -range { name "map_aa90"; start $aa90; end $aabb; type bytetable; comment "dunno what this is for yet"; }; -range { name "map_aac8"; start $aac8; end $aacf; type bytetable; comment "dunno what this is for yet"; }; -label { name "map_aaa6"; addr $aaa6; comment "referenced by routine at $AA82"; }; +range { name "walls_down_rope"; start $aa90; end $aabb; type bytetable; comment "map data for center down-rope, referenced by walls_bomb_sub"; }; +range { name "data_aac8"; start $aac8; end $aacf; type bytetable; comment "non-map data, dunno what for. grouped with the level 5 stuff, but doesn't seem to be used by level 5"; }; +label { name "walls_up_rope"; addr $aaa6; comment "map data for center up-rope, referenced walls_bomb_sub"; }; range { name "data_table_aea4"; start $aea4; end $af0f; type bytetable; comment "dunno"; }; range { name "sfx_letter_bonus"; start $AFCB; end $afff; type bytetable; comment "played once per correct letter at end of level08 (spellbound)"; }; label { name "cue_letter_sfx"; addr $AFB9; comment "play sfx_letter_bonus"; }; @@ -430,14 +436,19 @@ range { name "level_gfx"; start $9C21; end $9cff; type bytetable; comment "defin label { name "sh_girder"; addr $9C33; comment "3 rows of pixels. 1st: 04 = 4 pixels wide, 00 00 = no X/Y offset, 01 01 01 01 = actual pixel data (4 color0 pixels). see level_maps.txt"; }; label { name "sh_blank_4x4"; addr $9C49; }; label { name "sh_ladder"; addr $9C5F; }; -label { name "sh_9c89"; addr $9c89; comment "dunno what this is yet"; }; +label { name "sh_9c89"; addr $9c89; comment "dunno, solid black shape"; }; label { name "sh_bomb"; addr $9cb3; }; label { name "sh_up_rope"; addr $9cc9; }; label { name "sh_down_rope"; addr $9cda; }; -label { name "sh_9ceb"; addr $9ceb; comment "dunno what this is yet"; }; +label { name "sh_9ceb"; addr $9ceb; comment "dunno, solid black shape"; }; range { name "sprite_table"; start $9d00; end $9dff; type bytetable; comment "jumpman's animation frames and other sprites, seem to be 10 bytes per sprite"; }; -range { name "sxf_b319"; start $b319; end $b31f; type bytetable; comment "referenced by routine at $B2FD"; }; -range { name "data_table_b2a8"; start $b2a8; end $B2df; type bytetable; comment "dunno what this is for yet"; }; +range { name "sxf_teleport"; start $b319; end $b31f; type bytetable; comment "referenced by herethere_bomb_sub"; }; +range { name "herethere_sprite0"; start $b2a8; end $B2b1; type bytetable; comment "portal animation frames"; }; +range { name "herethere_sprite1"; start $b2b2; end $b2bb; type bytetable; }; +range { name "herethere_sprite2"; start $b2bc; end $b2c5; type bytetable; }; +range { name "herethere_sprite3"; start $b2c6; end $B2cf; type bytetable; }; +range { name "portal_x"; start $B2D0; end $B2d7; type bytetable; comment "herethere portal X positions"; }; +range { name "portal_y"; start $B2D8; end $B2df; type bytetable; comment "herethere portal Y positions"; }; range { name "hatch_table_b50b"; start $b50b; end $B57b; type bytetable; comment "dunno what this is for yet"; }; range { name "scores_screen_dlist"; start $8C52; end $8C67; type bytetable; comment "a GR.2-ish DL, with DLIs, screen mem at $3000, for player scores screen"; }; label { name "reyalp_msg_minus_one"; addr $8c67; }; |