diff --git a/art/anim_exported.asm b/art/anim_exported.asm index 1483ae5..0d20a3e 100644 --- a/art/anim_exported.asm +++ b/art/anim_exported.asm @@ -25,6 +25,8 @@ last_line_r dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$27,$50,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$51,$29,$01,$6F,$70,$01,$01,$71,$72,$01,$01,$01 last_line_l dta $01,$01,$01,$7F,$7E,$01,$01,$7D,$7C,$01,$27,$D0,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$D1,$29,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01 +last_line_RIP + dta $01,$01,$01,$01,$01,$01,$01,$01,$01,$01,$27,$D0,$9E,$9F,$A0,$A1,$A2,$A3,$A4,$A5,$D1,$29,$01,$01,$01,$01,$01,$01,$01,$01,$01,$01 .align $100 ; Right animation diff --git a/art/lumberjack_export.py b/art/lumberjack_export.py index b8999c2..614ea8e 100644 --- a/art/lumberjack_export.py +++ b/art/lumberjack_export.py @@ -1,19 +1,8 @@ import json -color_labels_used = set() - def load_atrview(filename: str, page: int = 1) -> list[str]: with open(filename, 'rb') as f: - full_json = json.loads(f.read().decode('utf-8-sig')) - dta = full_json['Pages'][page-1]['View'] - # very unpythonic side effect - printing colors consts - const_name = filename.replace('.atrview', '') - cols = full_json['Colors'] - for i,val in enumerate([cols[i:i+2] for i in range(0, len(cols), 2)]): - color_label = const_name + 'p' + str(page) + 'c' + str(i) - if color_label not in color_labels_used: - print( color_label + ' = $' + val) - color_labels_used.add(color_label) + dta = json.loads(f.read().decode('utf-8-sig'))['Pages'][page-1]['View'] return [dta[i*80:(i+1)*80][:64] for i in range(len(dta)//80)] def print_lines(dta, line_from: int, line_to:int): @@ -31,8 +20,8 @@ print("branch1") print_lines(dta, 7,12) print("branch2") print_lines(dta, 12,17) -print("branch3") -print_lines(dta, 17,22) +#print("branch3") +#print_lines(dta, 17,22) print() print('last_line_r') @@ -45,54 +34,115 @@ dta = load_atrview('phase1l.atrview') d = dta[-1] print(f' dta '+','.join([f'${d[i:i+2]}' for i in range(0, len(d), 2)])) +print('last_line_RIP') +dta = load_atrview('rip.atrview') +d = dta[-1] +print(f' dta '+','.join([f'${d[i:i+2]}' for i in range(0, len(d), 2)])) + print(""" .align $100 ; Right animation -gamescreen_lower1r ; phase 1 page 1""") +gamescreen_r_ph1p1 ; phase 1 page 1""") dta = load_atrview('phase1r.atrview') for l, d in enumerate(dta[-9:-1], 1): print(f' dta '+','.join([f'${d[i:i+2]}' for i in range(0, len(d), 2)])) -print("gamescreen_lower2r ; phase 2 page 1") +print('gamescreen_r_ph1p2 ; phase 1 page 2') +dta = load_atrview('phase1r.atrview', page=2) +print_lines(dta, -9, -1) + +print("gamescreen_r_ph2p1 ; phase 2 page 1") dta = load_atrview('phase2r.atrview') for l, d in enumerate(dta[-9:-1], 1): print(f' dta '+','.join([f'${d[i:i+2]}' for i in range(0, len(d), 2)])) -print('gamescreen_lower3r ; phase 2 page 2') +print('gamescreen_r_ph2p2 ; phase 2 page 2') dta = load_atrview('phase2r.atrview', page=2) print_lines(dta, -9, -1) -print('gamescreen_lower4r ; phase 2 page 3') +print('gamescreen_r_ph2p3 ; phase 2 page 3') dta = load_atrview('phase2r.atrview', page=3) print_lines(dta, -9, -1) -print('gamescreen_lower5r ; phase 2 page 4') +print('gamescreen_r_ph2p4 ; phase 2 page 4') dta = load_atrview('phase2r.atrview', page=4) print_lines(dta, -9, -1) -print('gamescreen_lower6r ; phase 3 page 1') +print('gamescreen_r_ph2p5 ; phase 2 page 5') +dta = load_atrview('phase2r.atrview', page=5) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph2p6 ; phase 2 page 6') +dta = load_atrview('phase2r.atrview', page=6) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph2p7 ; phase 2 page 7') +dta = load_atrview('phase2r.atrview', page=7) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph2p8 ; phase 2 page 8') +dta = load_atrview('phase2r.atrview', page=8) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p1 ; phase 3 page 1') dta = load_atrview('phase3r.atrview', page=1) print_lines(dta, -9, -1) -print('gamescreen_lower7r ; phase 3 page 2') +print('gamescreen_r_ph3p2 ; phase 3 page 2') dta = load_atrview('phase3r.atrview', page=2) print_lines(dta, -9, -1) -print('gamescreen_lower8r ; phase 3 page 3') +print('gamescreen_r_ph3p3 ; phase 3 page 3') dta = load_atrview('phase3r.atrview', page=3) print_lines(dta, -9, -1) -print('gamescreen_lower9r ; phase 3 page 4') +print('gamescreen_r_ph3p4 ; phase 3 page 4') dta = load_atrview('phase3r.atrview', page=4) print_lines(dta, -9, -1) -print('gamescreen_lower10r ; phase 3 page 5') +print('gamescreen_r_ph3p5 ; phase 3 page 5') dta = load_atrview('phase3r.atrview', page=5) print_lines(dta, -9, -1) +print('gamescreen_r_ph3p6 ; phase 3 page 6') +dta = load_atrview('phase3r.atrview', page=6) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p7 ; phase 3 page 7') +dta = load_atrview('phase3r.atrview', page=7) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p8 ; phase 3 page 8') +dta = load_atrview('phase3r.atrview', page=8) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p9 ; phase 3 page 9') +dta = load_atrview('phase3r.atrview', page=9) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p10 ; phase 3 page 10') +dta = load_atrview('phase3r.atrview', page=10) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p11 ; phase 3 page 11') +dta = load_atrview('phase3r.atrview', page=11) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p12 ; phase 3 page 12') +dta = load_atrview('phase3r.atrview', page=12) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p13 ; phase 3 page 13') +dta = load_atrview('phase3r.atrview', page=13) +print_lines(dta, -9, -1) + +print('gamescreen_r_ph3p14 ; phase 3 page 14') +dta = load_atrview('phase3r.atrview', page=14) +print_lines(dta, -9, -1) + print(""" ; left animation -gamescreen_lower1l ; phase 1 page 1""") +gamescreen_l_ph1p1 ; phase 1 page 1""") # pj = load_atrview('phase1l.atrview') # print_lines(dta, -9, -1) with open('phase1l.atrview', 'rb') as f: @@ -102,38 +152,116 @@ dta = [dta[i*80:(i+1)*80][:64] for i in range(len(dta)//80)] for l, d in enumerate(dta[-9:-1], 1): print(f' dta '+','.join([f'${d[i:i+2]}' for i in range(0, len(d), 2)])) -print('gamescreen_lower2l ; phase 2 page 1') +print('gamescreen_l_ph1p2 ; phase 1 page 2') +dta = load_atrview('phase1l.atrview', page=2) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph2p1 ; phase 2 page 1') dta = load_atrview('phase2l.atrview', page=1) print_lines(dta, -9, -1) -print('gamescreen_lower3l ; phase 2 page 2') +print('gamescreen_l_ph2p2 ; phase 2 page 2') dta = load_atrview('phase2l.atrview', page=2) print_lines(dta, -9, -1) -print('gamescreen_lower4l ; phase 2 page 3') +print('gamescreen_l_ph2p3 ; phase 2 page 3') dta = load_atrview('phase2l.atrview', page=3) print_lines(dta, -9, -1) -print('gamescreen_lower5l ; phase 2 page 4') +print('gamescreen_l_ph2p4 ; phase 2 page 4') dta = load_atrview('phase2l.atrview', page=4) print_lines(dta, -9, -1) -print('gamescreen_lower6l ; phase 3 page 1') +print('gamescreen_l_ph2p5 ; phase 2 page 5') +dta = load_atrview('phase2l.atrview', page=5) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph2p6 ; phase 2 page 6') +dta = load_atrview('phase2l.atrview', page=6) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph2p7 ; phase 2 page 7') +dta = load_atrview('phase2l.atrview', page=7) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph2p8 ; phase 2 page 8') +dta = load_atrview('phase2l.atrview', page=8) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p1 ; phase 3 page 1') dta = load_atrview('phase3l.atrview', page=1) print_lines(dta, -9, -1) -print('gamescreen_lower7l ; phase 3 page 2') +print('gamescreen_l_ph3p2 ; phase 3 page 2') dta = load_atrview('phase3l.atrview', page=2) print_lines(dta, -9, -1) -print('gamescreen_lower8l ; phase 3 page 3') +print('gamescreen_l_ph3p3 ; phase 3 page 3') dta = load_atrview('phase3l.atrview', page=3) print_lines(dta, -9, -1) -print('gamescreen_lower9l ; phase 3 page 4') +print('gamescreen_l_ph3p4 ; phase 3 page 4') dta = load_atrview('phase3l.atrview', page=4) print_lines(dta, -9, -1) -print('gamescreen_lower10l ; phase 3 page 5') +print('gamescreen_l_ph3p5 ; phase 3 page 5') dta = load_atrview('phase3l.atrview', page=5) print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p6 ; phase 3 page 6') +dta = load_atrview('phase3l.atrview', page=6) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p7 ; phase 3 page 7') +dta = load_atrview('phase3l.atrview', page=7) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p8 ; phase 3 page 8') +dta = load_atrview('phase3l.atrview', page=8) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p9 ; phase 3 page 9') +dta = load_atrview('phase3l.atrview', page=9) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p10 ; phase 3 page 10') +dta = load_atrview('phase3l.atrview', page=10) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p11 ; phase 3 page 11') +dta = load_atrview('phase3l.atrview', page=11) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p12 ; phase 3 page 12') +dta = load_atrview('phase3l.atrview', page=12) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p13 ; phase 3 page 13') +dta = load_atrview('phase3l.atrview', page=13) +print_lines(dta, -9, -1) + +print('gamescreen_l_ph3p14 ; phase 3 page 14') +dta = load_atrview('phase3l.atrview', page=14) +print_lines(dta, -9, -1) + +print(""" +; RIP screens +RIPscreen_l_nobranch ; page 1""") +with open('rip.atrview', 'rb') as f: + pj=json.loads(f.read().decode('utf-8-sig')) +dta = pj['Pages'][0]['View'] +dta = [dta[i*80:(i+1)*80][:64] for i in range(len(dta)//80)] +for l, d in enumerate(dta[-9:-1], 1): + print(f' dta '+','.join([f'${d[i:i+2]}' for i in range(0, len(d), 2)])) + +print('RIPscreen_r_nobranch ; page 2') +dta = load_atrview('rip.atrview', page=2) +print_lines(dta, -9, -1) + +print('RIPscreen_l_branch ; page 3') +dta = load_atrview('rip.atrview', page=3) +print_lines(dta, -9, -1) + +print('RIPscreen_r_branch ; page 4') +dta = load_atrview('rip.atrview', page=4) +print_lines(dta, -9, -1) diff --git a/lumber.asm b/lumber.asm index 4f599a1..c028a80 100644 --- a/lumber.asm +++ b/lumber.asm @@ -174,7 +174,12 @@ DLI2 nop nop nop - mva #$c6 COLBAK ; green + mva #$84 COLBAK ; thin line + sta WSYNC + mva #$DA COLBAK ; additional lines + sta WSYNC + sta WSYNC + mva #$c8 COLBAK ; green inc SyncByte pla rti @@ -191,7 +196,7 @@ DLI4 sta WSYNC sta WSYNC ;sta WSYNC - mva #$86 COLPF2 ; blue pants + mva #$92 COLPF2 ; blue pants inc dliCount pla rti @@ -418,14 +423,16 @@ no_2branch_l LevelDeath jsr SetRIPscreen mva #2 StateFlag -@ mva RANDOM COLBAK - jsr GetKeyFast +@ + ;mva RANDOM COLBAK + jsr GetKey cmp #@kbcode._space bne @- ; restart game jsr ScoreClear jsr InitBranches jsr draw_branches + jsr SetLumberjackPosition jsr LevelReset mva #24 PowerValue ; half power jsr draw_PowerBar @@ -447,6 +454,7 @@ LevelOver ;-------------------------------------------------- :5 WaitForSync mva #>font_game_rip LowCharsetBase + mwa #last_line_RIP lastline_addr lda LumberjackDir ; branch and Lumerjack ? cmp branches_list+5 beq BranchDeath @@ -470,6 +478,24 @@ leftbranch rts .endp ;-------------------------------------------------- +.proc SetLumberjackPosition +;-------------------------------------------------- + WaitForSync + lda LumberjackDir + cmp #1 + beq right_side +left_side + mva #>font_game_lower_left LowCharsetBase + mwa #last_line_l lastline_addr + mwa #gamescreen_l_ph1p1 animation_addr + rts +right_side + mva #>font_game_lower_right LowCharsetBase + mwa #last_line_r lastline_addr + mwa #gamescreen_r_ph1p1 animation_addr + rts +.endp +;-------------------------------------------------- .proc AudioInit ;-------------------------------------------------- ; pokeys init diff --git a/lumber.xex b/lumber.xex index 7befd0f..4a50c15 100644 Binary files a/lumber.xex and b/lumber.xex differ