From 74ed7d7e9df5b34737e6212c64b2afa6c7b18787 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Thu, 30 Sep 2021 00:57:00 -0400 Subject: [PATCH] peasant: fix to work on machines w/o mockingboard wasn't properly wrapping all cases --- games/peasant/TODO | 13 +++++++++---- games/peasant/intro.s | 13 +++++++++++++ games/peasant/peasant1.s | 35 ++++++++++++++++++----------------- games/peasant/title.s | 8 ++++++++ 4 files changed, 48 insertions(+), 21 deletions(-) diff --git a/games/peasant/TODO b/games/peasant/TODO index 5122d916..31237426 100644 --- a/games/peasant/TODO +++ b/games/peasant/TODO @@ -4,10 +4,10 @@ General: - More frames in peasant sprites - Hook up text parser - When load game, stop walking -- Load the names of saves from disk - Let disk 2 live in the 2nd drive? LDA $C08A,X to select first drive LDA $C08B,X to select second drive +- Implement game over screen Videlectrix Title: - Can we make it faster? @@ -15,10 +15,15 @@ Videlectrix Title: Intro: - Speaker music for title if no Mockingboard +Map: +- implement map + Peasantry: -- Better animation of River +- animation for the boat +- animation of River +- animation of waterfall - Priorities for all rooms -- Hook up hidden glen, inside of cottage and inn +- Hook up hidden glen, inside of cottages and inn - Archery minigame Tower: @@ -27,7 +32,7 @@ Tower: Trogdor: - All the rest - Rest of Trogdor's speech -- Properly disable speech if SSI-263 is available +- Fix speech generation Ending: - Smoother baby animation? Use page-flipping? diff --git a/games/peasant/intro.s b/games/peasant/intro.s index 1ea57a92..837cb442 100644 --- a/games/peasant/intro.s +++ b/games/peasant/intro.s @@ -24,6 +24,10 @@ peasant_quest_intro: ; restart music, only drum loop ;****************************** + lda SOUND_STATUS + and #SOUND_MOCKINGBOARD + beq mockingboard_notfound + ; hack! modify the PT3 file to ignore the latter half lda #$ff ; end after 4 patterns @@ -35,6 +39,7 @@ peasant_quest_intro: jsr pt3_init_song cli +mockingboard_notfound: ;************************ ; Cottage @@ -91,10 +96,18 @@ peasant_quest_intro: escape_handler: + ;========================== + ; disable music + + lda SOUND_STATUS + and #SOUND_MOCKINGBOARD + beq mockingboard_notfound2 + sei ; turn off music jsr clear_ay_both ; clear AY state jsr mockingboard_disable_interrupt +mockingboard_notfound2: ;============================= ; start new game diff --git a/games/peasant/peasant1.s b/games/peasant/peasant1.s index 83cab8e2..2605a635 100644 --- a/games/peasant/peasant1.s +++ b/games/peasant/peasant1.s @@ -18,6 +18,7 @@ WHICH_PEASANTRY = 0 peasant_quest: lda #0 sta GAME_OVER + sta FRAME jsr hgr_make_tables @@ -25,9 +26,6 @@ peasant_quest: ; Y=0, A=0 after this called - lda #0 - sta FRAME - ; update map location jsr update_map_location @@ -144,23 +142,10 @@ game_over: rts -;.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 "hgr_partial_save.s" -;.include "hgr_input.s" -;.include "hgr_tables.s" -;.include "hgr_text_box.s" -;.include "clear_bottom.s" -;.include "hgr_hgr2.s" - .include "gr_copy.s" .include "new_map_location.s" @@ -178,10 +163,26 @@ game_over: .include "wait.s" .include "wait_a_bit.s" - .include "version.inc" .include "loadsave_menu.s" + +; Moved to qload +;.include "decompress_fast_v2.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 "hgr_partial_save.s" +;.include "hgr_input.s" +;.include "hgr_tables.s" +;.include "hgr_text_box.s" +;.include "clear_bottom.s" +;.include "hgr_hgr2.s" + + + help_message: .byte 0,43,24, 0,253,82 .byte 8,41,"I don't understand. Type",13 diff --git a/games/peasant/title.s b/games/peasant/title.s index d4e72447..844d2ecb 100644 --- a/games/peasant/title.s +++ b/games/peasant/title.s @@ -221,9 +221,17 @@ altfire_good: bit PAGE2 ; return to viewing PAGE2 + ;============================== + ; disable music, if applicable + + lda SOUND_STATUS + and #SOUND_MOCKINGBOARD + beq mockingboard_notfound2 + sei ; disable music jsr clear_ay_both +mockingboard_notfound2: ;************************ ; Tips