From 1ebfddbfbc3d1942f374f0569bda765c6a1ecfa1 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 13 Dec 2021 01:07:16 -0500 Subject: [PATCH] peasant: make trogdor lair code closer to the other levels --- games/peasant/Makefile | 22 +- games/peasant/dialog_trogdor.s | 2 + games/peasant/graphics_trogdor/Makefile | 32 +- .../graphics_trogdor/trogdor_priority.png | Bin 0 -> 886 bytes .../graphics_trogdor/trogdor_sleep.png | Bin 0 -> 15886 bytes games/peasant/parse_input.s | 8 +- games/peasant/text/trogdor.inc | 3 + games/peasant/trogdor.s | 383 ++++++------------ games/peasant/trogdor_actions.s | 277 +++++++++++++ 9 files changed, 458 insertions(+), 269 deletions(-) create mode 100644 games/peasant/dialog_trogdor.s create mode 100644 games/peasant/graphics_trogdor/trogdor_priority.png create mode 100644 games/peasant/graphics_trogdor/trogdor_sleep.png create mode 100644 games/peasant/trogdor_actions.s diff --git a/games/peasant/Makefile b/games/peasant/Makefile index f18ec2f9..fd484ff5 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -393,12 +393,14 @@ TROGDOR: trogdor.o trogdor.o: trogdor.s zp.inc \ graphics_trogdor/trogdor_graphics.inc sprites/trogdor_sprites.inc \ sprites/inventory_sprites.inc \ + DIALOG_TROGDOR.LZSA dialog_trogdor.inc \ ssi263_simple_speech.s \ draw_box.s hgr_rectangle.s hgr_font.s hgr_input.s \ hgr_1x28_sprite_mask.s hgr_1x5_sprite.s hgr_save_restore.s \ wait_a_bit.s draw_peasant.s hgr_text_box.s \ keyboard.s new_map_location.s \ - peasant_move.s score.s inventory.s + peasant_move.s score.s inventory.s \ + trogdor_actions.s ca65 -o trogdor.o trogdor.s -l trogdor.lst @@ -501,6 +503,7 @@ parse_input.inc: generate_common parse_input ./generate_common -a 0xee00 -s load_custom_verb_table parse_input.lst >> parse_input.inc ./generate_common -a 0xee00 -s partial_message_step parse_input.lst >> parse_input.inc ./generate_common -a 0xee00 -s finish_parse_message parse_input.lst >> parse_input.inc + ./generate_common -a 0xee00 -s finish_parse_message_nowait parse_input.lst >> parse_input.inc ./generate_common -a 0xee00 -s parse_common_talk parse_input.lst >> parse_input.inc ./generate_common -a 0xee00 -s parse_common_haldo parse_input.lst >> parse_input.inc ./generate_common -a 0xee00 -s parse_common_give parse_input.lst >> parse_input.inc @@ -641,6 +644,23 @@ dialog_cliff.inc: generate_all_symbols dialog_cliff #### +DIALOG_TROGDOR.LZSA: dialog_trogdor + $(LZSA) -r -f2 dialog_trogdor DIALOG_TROGDOR.LZSA + +dialog_trogdor: dialog_trogdor.o + ld65 -o dialog_trogdor dialog_trogdor.o -C ../../linker_scripts/apple2_d000.inc + +dialog_trogdor.o: dialog_trogdor.s text/cliff.inc + ca65 -o dialog_trogdor.o dialog_trogdor.s -l dialog_trogdor.lst + +### + +dialog_trogdor.inc: generate_all_symbols dialog_trogdor + ./generate_all_symbols -a 0xd000 dialog_trogdor.lst > dialog_trogdor.inc + + +#### + dialog_test: dialog_test.o ld65 -o dialog_test dialog_test.o -C ../../linker_scripts/apple2_d000.inc diff --git a/games/peasant/dialog_trogdor.s b/games/peasant/dialog_trogdor.s new file mode 100644 index 00000000..c2f02d20 --- /dev/null +++ b/games/peasant/dialog_trogdor.s @@ -0,0 +1,2 @@ +.include "text/lookup.inc" +.include "text/trogdor.inc.lookup" diff --git a/games/peasant/graphics_trogdor/Makefile b/games/peasant/graphics_trogdor/Makefile index fca279c7..2b9575c8 100644 --- a/games/peasant/graphics_trogdor/Makefile +++ b/games/peasant/graphics_trogdor/Makefile @@ -5,18 +5,21 @@ PNG2HGR = ../../../utils/hgr-utils/png2hgr LZSA = ~/research/lzsa/lzsa/lzsa B2D = ../../../utils/bmp2dhr/b2d -all: trogdor_graphics.inc +all: trogdor_graphics.inc \ + priority_trogdor.inc trogdor_graphics.inc: \ trogdor_cave.lzsa \ trogdor_open.lzsa \ trogdor_flame1.lzsa \ - trogdor_flame2.lzsa + trogdor_flame2.lzsa \ + trogdor_sleep.lzsa echo "trogdor_cave_lzsa: .incbin \"trogdor_cave.lzsa\"" > trogdor_graphics.inc echo "trogdor_open_lzsa: .incbin \"trogdor_open.lzsa\"" >> trogdor_graphics.inc echo "trogdor_flame1_lzsa: .incbin \"trogdor_flame1.lzsa\"" >> trogdor_graphics.inc echo "trogdor_flame2_lzsa: .incbin \"trogdor_flame2.lzsa\"" >> trogdor_graphics.inc + echo "trogdor_sleep_lzsa: .incbin \"trogdor_sleep.lzsa\"" >> trogdor_graphics.inc ### @@ -50,10 +53,31 @@ trogdor_flame2.lzsa: trogdor_flame2.hgr trogdor_flame2.hgr: trogdor_flame2.png $(PNG2HGR) trogdor_flame2.png > trogdor_flame2.hgr - ### +trogdor_sleep.lzsa: trogdor_sleep.hgr + $(LZSA) -r -f2 trogdor_sleep.hgr trogdor_sleep.lzsa + +trogdor_sleep.hgr: trogdor_sleep.png + $(PNG2HGR) trogdor_sleep.png > trogdor_sleep.hgr + +#### + +priority_trogdor.inc: \ + trogdor_priority.lzsa + echo "trogdor_priority_lzsa: .incbin \"trogdor_priority.lzsa\"" > priority_trogdor.inc + +#### + +trogdor_priority.lzsa: trogdor_priority.gr + $(LZSA) -r -f2 trogdor_priority.gr trogdor_priority.lzsa + +trogdor_priority.gr: trogdor_priority.png + $(PNG2GR) trogdor_priority.png trogdor_priority.gr + +#### + clean: - rm -f *~ trogdor_graphics.inc *.lzsa *.gr *.hgr + rm -f *~ trogdor_graphics.inc priority_trogdor.inc *.lzsa *.gr *.hgr diff --git a/games/peasant/graphics_trogdor/trogdor_priority.png b/games/peasant/graphics_trogdor/trogdor_priority.png new file mode 100644 index 0000000000000000000000000000000000000000..e8b0f9e307169f0b7663063a1b8ca2bd41761db0 GIT binary patch literal 886 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 b?;Zn#N_GIC@h1OiEe9yds>#$znT7oygv!Sg literal 0 HcmV?d00001 diff --git a/games/peasant/parse_input.s b/games/peasant/parse_input.s index 0751e2ab..56e845fc 100644 --- a/games/peasant/parse_input.s +++ b/games/peasant/parse_input.s @@ -701,9 +701,11 @@ parse_common_why: - - - +finish_parse_message_nowait: + stx OUTL + sty OUTH + jsr print_text_message + rts finish_parse_message: stx OUTL diff --git a/games/peasant/text/trogdor.inc b/games/peasant/text/trogdor.inc index 74934242..be24ce1e 100644 --- a/games/peasant/text/trogdor.inc +++ b/games/peasant/text/trogdor.inc @@ -117,14 +117,17 @@ .byte "or something in honor of",13 .byte "you somewheres.",0 ; [sic] no end quote +trogdor_honestly_message: .byte 34,"I can honestly say it'll",13 .byte "be a pleasure and an honor",13 .byte "to burninate you, Rather",13 .byte "Dashing.",34,0 +trogdor_honestly_message2: .byte "Aw that sure was nice of",13 .byte "him!",0 +trogdor_honestly_message3: .byte "Congratulations! You've",13 .byte "won! No one can kill",13 .byte "Trogdor but you came closer",13 diff --git a/games/peasant/trogdor.s b/games/peasant/trogdor.s index 3f653fe5..08cccb5a 100644 --- a/games/peasant/trogdor.s +++ b/games/peasant/trogdor.s @@ -8,6 +8,10 @@ .include "zp.inc" .include "qload.inc" +.include "inventory.inc" +.include "parse_input.inc" + +LOCATION_BASE = LOCATION_TROGDOR_LAIR ; 23 trogdor: lda #0 @@ -15,270 +19,118 @@ trogdor: sta FRAME jsr hgr_make_tables ; needed? - jsr hgr2 ; needed? + ; decompress dialog to $D000 + + lda #trogdor_text_lzsa + sta getsrc_smc+2 + + lda #$d0 + jsr decompress_lzsa2_fast + ; update score jsr update_score -trogdor_cave: - lda #trogdor_cave_lzsa - sta getsrc_smc+2 + ;============================= + ;============================= + ; new screen location + ;============================= + ;============================= - lda #$40 +new_location: + lda #0 + sta LEVEL_OVER - jsr decompress_lzsa2_fast + ;========================== + ; load updated verb table - ;====================== - ; draw rather dashing + ; setup default verb table - lda #12 - sta CURSOR_X - lda #142 - sta CURSOR_Y + jsr setup_default_verb_table - lda #dashing0_sprite + lda verb_tables_hi,X sta INH - - jsr hgr_draw_sprite - - - jsr update_top - - jsr wait_until_keypress - - ;============================== - ;============================== - ; print honestly say message - ;============================== - ;============================== - - lda #trogdor_string - sta OUTH - jsr hgr_text_box - - ;================================== - ; text to speech, where available! - - lda SOUND_STATUS - and #SOUND_SSI263 - beq skip_speech - -speech_loop: - - ; trogdor - - lda #4 ; assume slot #4 for now - jsr ssi263_speech_init - - lda #trogdor_honestly - sta SPEECH_PTRH - - jsr ssi263_speak - -wait_for_speech: - lda speech_busy - bmi wait_for_speech - bpl done_speech - -skip_speech: - jsr wait_until_keypress - -done_speech: - jsr hgr_partial_restore - - - ;============================== - ;============================== - ; print nice of him message - ;============================== - ;============================== - - lda #trogdor_string2 - sta OUTH - jsr hgr_text_box - - jsr wait_until_keypress - - jsr hgr_partial_restore - - - ; UPDATE SCORE - - lda #$10 ; it's BCD - jsr score_points - -trogdor_open: - - lda #trogdor_open_lzsa - sta getsrc_smc+2 - - lda #$40 - - jsr decompress_lzsa2_fast - - ;====================== - ; draw rather dashing - - lda #12 - sta CURSOR_X - lda #142 - sta CURSOR_Y - - lda #dashing0_sprite - sta INH - - jsr hgr_draw_sprite - - jsr update_top - -; jsr wait_until_keypress - - -trogdor_flame1: - - lda #trogdor_flame1_lzsa - sta getsrc_smc+2 - - lda #$40 - - jsr decompress_lzsa2_fast - -trogdor_flame2: - - lda #trogdor_flame2_lzsa - sta getsrc_smc+2 - - lda #$20 - - jsr decompress_lzsa2_fast - - - ldx #32 - stx BABY_COUNT - -burninate_loop: - bit PAGE1 - - lda #16 - sta speaker_duration - lda #NOTE_C3 - sta speaker_frequency - jsr speaker_beep - -; jsr wait_until_keypress - - bit PAGE2 - - lda #16 - sta speaker_duration - lda #NOTE_D3 - sta speaker_frequency - jsr speaker_beep - -; jsr wait_until_keypress - - dec BABY_COUNT - bne burninate_loop - + jsr load_custom_verb_table ;===================== - ;===================== - ; stop fire - ; open mount - ; charred - ; smoke + ; load bg - lda #trogdor_cave_lzsa + lda map_backgrounds_hi,X sta getsrc_smc+2 lda #$40 jsr decompress_lzsa2_fast + ; load priority to $400 + ; indirectly as we can't trash screen holes + + lda MAP_LOCATION + sec + sbc #LOCATION_BASE + tax + + lda map_priority_low,X + sta getsrc_smc+1 + lda map_priority_hi,X + sta getsrc_smc+2 + + lda #$20 ; temporarily load to $2000 + + jsr decompress_lzsa2_fast + + ; copy to $400 + + jsr gr_copy_to_page1 + + ; update name/score + jsr update_top - ;====================== - ; draw rather dashing - lda #12 - sta CURSOR_X - lda #142 - sta CURSOR_Y +game_loop: +; jsr move_peasant - lda #1 - sta BABY_COUNT + inc FRAME -dashing_loop: + jsr check_keyboard - ldy BABY_COUNT - lda dashing_progress_l,Y - sta INL - lda dashing_progress_h,Y - sta INH + lda LEVEL_OVER + bmi oops_new_location + bne level_over - jsr hgr_draw_sprite + ; delay - lda #220 + lda #200 jsr wait - ldy BABY_COUNT - cpy #7 - bne no_boom - - lda #64 - sta speaker_duration - lda #NOTE_C3 - sta speaker_frequency - jsr speaker_beep - -no_boom: - - inc BABY_COUNT - lda BABY_COUNT - cmp #9 - bne dashing_loop - - - ; collapse with boom - - ;================== - ; message - - lda #trogdor_string3 - sta OUTH - jsr hgr_text_box - - jsr wait_until_keypress - -game_over: + jmp game_loop +oops_new_location: +level_over: ; go to end credits @@ -291,19 +143,13 @@ game_over: ;.include "decompress_fast_v2.s" ;.include "wait_keypress.s" - - - ;.include "hgr_font.s" ;.include "draw_box.s" ;.include "hgr_rectangle.s" - ;.include "hgr_1x5_sprite.s" - ;.include "draw_peasant.s" ;.include "hgr_7x28_sprite_mask.s" ;.include "hgr_save_restore.s" - ;.include "hgr_partial_save.s" ;.include "hgr_input.s" ;.include "hgr_tables.s" @@ -315,6 +161,7 @@ game_over: .include "gr_copy.s" +.include "keyboard.s" .include "wait.s" .include "wait_a_bit.s" @@ -329,30 +176,32 @@ game_over: .include "graphics_trogdor/trogdor_graphics.inc" +.include "graphics_trogdor/priority_trogdor.inc" + .include "sprites/trogdor_sprites.inc" -trogdor_string: - .byte 0,43,32, 0,253,82 - .byte 8,41 - .byte 34,"I can honestly say it'll",13 - .byte "be a pleasure and an honor",13 - .byte "to burninate you, Rather",13 - .byte "Dashing.",34,0 +;trogdor_string: +; .byte 0,43,32, 0,253,82 +; .byte 8,41 +; .byte 34,"I can honestly say it'll",13 +; .byte "be a pleasure and an honor",13 +; .byte "to burninate you, Rather",13 +; .byte "Dashing.",34,0 -trogdor_string2: - .byte 0,43,32, 0,253,66 - .byte 8,41 - .byte "Aw that sure was nice of",13 - .byte "him!",0 +;trogdor_string2: +; .byte 0,43,32, 0,253,66 +; .byte 8,41 +; .byte "Aw that sure was nice of",13 +; .byte "him!",0 -trogdor_string3: - .byte 0,43,32, 0,253,90 - .byte 8,41 - .byte "Congratulations! You've",13 - .byte "won! No one can kill",13 - .byte "Trogdor but you came closer",13 - .byte "than anybody ever! Way to",13 - .byte "go!",0 +;trogdor_string3: +; .byte 0,43,32, 0,253,90 +; .byte 8,41 +; .byte "Congratulations! You've",13 +; .byte "won! No one can kill",13 +; .byte "Trogdor but you came closer",13 +; .byte "than anybody ever! Way to",13 +; .byte "go!",0 update_top: @@ -372,14 +221,26 @@ update_top: rts -dashing_progress_l: - .byte dashing0_sprite,>dashing1_sprite,>dashing2_sprite - .byte >dashing3_sprite,>dashing4_sprite,>dashing5_sprite - .byte >dashing6_sprite,>dashing7_sprite,>dashing8_sprite +map_backgrounds_hi: + .byte >trogdor_sleep_lzsa + +map_priority_low: + .byte trogdor_priority_lzsa + +verb_tables_low: + .byte trogdor_inner_verb_table +trogdor_text_lzsa: +.incbin "DIALOG_TROGDOR.LZSA" + +.include "trogdor_actions.s" diff --git a/games/peasant/trogdor_actions.s b/games/peasant/trogdor_actions.s new file mode 100644 index 00000000..636d6e79 --- /dev/null +++ b/games/peasant/trogdor_actions.s @@ -0,0 +1,277 @@ + ;======================= + ;======================= + ;======================= + ; trogdor inner + ;======================= + ;======================= + ;======================= + +trogdor_inner_verb_table: +; .byte VERB_LOOK +; .word cliff_base_look-1 + .byte 0 + + + +trogdor_cave: + + lda #trogdor_cave_lzsa + sta getsrc_smc+2 + + lda #$40 + + jsr decompress_lzsa2_fast + + ;====================== + ; draw rather dashing + + lda #12 + sta CURSOR_X + lda #142 + sta CURSOR_Y + + lda #dashing0_sprite + sta INH + + jsr hgr_draw_sprite + + + jsr update_top + + jsr wait_until_keypress + + ;============================== + ;============================== + ; print honestly say message + ;============================== + ;============================== + + ldx #trogdor_honestly_message + jsr finish_parse_message_nowait + + ;================================== + ; text to speech, where available! + + lda SOUND_STATUS + and #SOUND_SSI263 + beq skip_speech + +speech_loop: + + ; trogdor + + lda #4 ; assume slot #4 for now + jsr ssi263_speech_init + + lda #trogdor_honestly + sta SPEECH_PTRH + + jsr ssi263_speak + +wait_for_speech: + lda speech_busy + bmi wait_for_speech + bpl done_speech + +skip_speech: + jsr wait_until_keypress + +done_speech: + jsr hgr_partial_restore + + + ;============================== + ;============================== + ; print nice of him message + ;============================== + ;============================== + + ldx #trogdor_honestly_message2 + jsr finish_parse_message + + + ; UPDATE SCORE + + lda #$10 ; it's BCD + jsr score_points + +trogdor_open: + + lda #trogdor_open_lzsa + sta getsrc_smc+2 + + lda #$40 + + jsr decompress_lzsa2_fast + + ;====================== + ; draw rather dashing + + lda #12 + sta CURSOR_X + lda #142 + sta CURSOR_Y + + lda #dashing0_sprite + sta INH + + jsr hgr_draw_sprite + + jsr update_top + +; jsr wait_until_keypress + + +trogdor_flame1: + + lda #trogdor_flame1_lzsa + sta getsrc_smc+2 + + lda #$40 + + jsr decompress_lzsa2_fast + +trogdor_flame2: + + lda #trogdor_flame2_lzsa + sta getsrc_smc+2 + + lda #$20 + + jsr decompress_lzsa2_fast + + + ldx #32 + stx BABY_COUNT + +burninate_loop: + bit PAGE1 + + lda #16 + sta speaker_duration + lda #NOTE_C3 + sta speaker_frequency + jsr speaker_beep + +; jsr wait_until_keypress + + bit PAGE2 + + lda #16 + sta speaker_duration + lda #NOTE_D3 + sta speaker_frequency + jsr speaker_beep + +; jsr wait_until_keypress + + dec BABY_COUNT + bne burninate_loop + + + ;===================== + ;===================== + ; stop fire + ; open mouth + ; charred + ; smoke + + lda #trogdor_cave_lzsa + sta getsrc_smc+2 + + lda #$40 + + jsr decompress_lzsa2_fast + + jsr update_top + + ;====================== + ; draw rather dashing + + lda #12 + sta CURSOR_X + lda #142 + sta CURSOR_Y + + lda #1 + sta BABY_COUNT + +dashing_loop: + + ldy BABY_COUNT + lda dashing_progress_l,Y + sta INL + lda dashing_progress_h,Y + sta INH + + jsr hgr_draw_sprite + + lda #220 + jsr wait + + ldy BABY_COUNT + cpy #7 + bne no_boom + + lda #64 + sta speaker_duration + lda #NOTE_C3 + sta speaker_frequency + jsr speaker_beep + +no_boom: + + inc BABY_COUNT + lda BABY_COUNT + cmp #9 + bne dashing_loop + + + ; collapse with boom + + ;================== + ; message + + ldx #trogdor_honestly_message3 + jsr finish_parse_message + +game_over: + + ; go to end credits + + lda #LOAD_ENDING + sta WHICH_LOAD + + rts + +dashing_progress_l: + .byte dashing0_sprite,>dashing1_sprite,>dashing2_sprite + .byte >dashing3_sprite,>dashing4_sprite,>dashing5_sprite + .byte >dashing6_sprite,>dashing7_sprite,>dashing8_sprite + + +.include "dialog_trogdor.inc"