From f278aba1116375ea8bd19385b22fe2e6963d1751 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Fri, 17 Sep 2021 00:52:13 -0400 Subject: [PATCH] peasant: work on trogdor scenes --- games/peasant/Makefile | 4 +- games/peasant/sprites/trogdor_sprites.png | Bin 0 -> 9107 bytes games/peasant/trogdor.s | 180 ++++++++++++++++++++-- 3 files changed, 170 insertions(+), 14 deletions(-) create mode 100644 games/peasant/sprites/trogdor_sprites.png diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 5ac88145..83d56316 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -22,8 +22,8 @@ peasant.dsk: QBOOT QLOAD VID_LOGO TITLE INTRO COPY_CHECK \ $(DOS33_RAW) peasant.dsk 12 0 COPY_CHECK 0 0 $(DOS33_RAW) peasant.dsk 14 0 PEASANT1 0 0 # $(DOS33_RAW) peasant.dsk 19 0 PEASANT2 0 0 -# $(DOS33_RAW) peasant.dsk 19 0 TROGDOR 0 0 - $(DOS33_RAW) peasant.dsk 19 0 ENDING 0 0 + $(DOS33_RAW) peasant.dsk 19 0 TROGDOR 0 0 +# $(DOS33_RAW) peasant.dsk 19 0 ENDING 0 0 # $(DOS33_RAW) peasant.dsk 24 0 PEASANT3 0 0 $(DOS33_RAW) peasant.dsk 24 0 ENDING 0 0 $(DOS33_RAW) peasant.dsk 29 0 PEASANT4 0 0 diff --git a/games/peasant/sprites/trogdor_sprites.png b/games/peasant/sprites/trogdor_sprites.png new file mode 100644 index 0000000000000000000000000000000000000000..475de8190122524b68866958202d97c779725ba7 GIT binary patch literal 9107 zcmeHNc|6o>+b0^kkVwKmfvW^3}zU6qOxTdiIPf-qf)Y0O4i8I zVhJfr6iO&Uyg%xk=bZO>{yFb^p7Yn4&u3zvJ?^ABFM$X zC1P!5=D@|py%~Id$jbwM!YWDDTwJ1}!HzC$2NDPB5~+30cQLr{wa~leu)H}@o8W`^k8^ylg-$QM-W_)T&?mW) zjxWtOCg<+^4vrI7KHrjhYPav%6Ux)wB_eKfTYqtAo0NquEF1_do#d+z$(vhD+Jg>x za`m!AP)q)U0N15MnrWktD4JVzI*xjzjBfB6)Cj$N+UwZ4#IBmTuwUF-a*xbhvN$?5 z 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 literal 0 HcmV?d00001 diff --git a/games/peasant/trogdor.s b/games/peasant/trogdor.s index 32ec00e0..ddb8d40e 100644 --- a/games/peasant/trogdor.s +++ b/games/peasant/trogdor.s @@ -26,9 +26,6 @@ trogdor: jsr update_score - ; start music? - - trogdor_cave: lda #trogdor_string + sta OUTH + jsr hgr_text_box + + ;================================== + ; text to speech, where available! + + jsr wait_until_keypress + + 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 #$43 + sta SCORE_TENSONES + jsr update_score + +; jsr update_top + + + ;=========================== + ; weep-boom sound + + lda #32 + sta speaker_duration + lda #NOTE_E4 + sta speaker_frequency + jsr speaker_beep + lda #64 + sta speaker_duration + lda #NOTE_F4 + sta speaker_frequency + jsr speaker_beep + lda #128 + sta speaker_duration + lda #NOTE_F3 + sta speaker_frequency + jsr speaker_beep + trogdor_open: 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 mount + ; charred + ; smoke + + lda #trogdor_cave_lzsa + sta getsrc_smc+2 + lda #$40 jsr decompress_lzsa2_fast - jsr wait_until_keypress + jsr update_top + ; collapse with boom + + ;================== + ; message + + lda #trogdor_string3 + sta OUTH + jsr hgr_text_box + + jsr wait_until_keypress game_over: -; jsr game_over - jsr trogdor_cave + + + + ; FIXME + + lda #LOAD_PEASANT3 + sta WHICH_LOAD + + rts peasant_text: @@ -97,14 +225,18 @@ peasant_text: .include "decompress_fast_v2.s" .include "wait_keypress.s" -;.include "draw_peasant.s" + .include "hgr_font.s" .include "draw_box.s" .include "hgr_rectangle.s" -;.include "hgr_7x28_sprite_mask.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" @@ -120,22 +252,46 @@ peasant_text: .include "version.inc" +.include "speaker_beeps.s" + .include "graphics_trogdor/trogdor_graphics.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.",0 + .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_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: + ; put peasant text + + lda #peasant_text + sta OUTH + + jsr hgr_put_string + + ; put score + + jsr print_score + + rts