From 4b1674a49288e41219da53b4339b534d009d99fd Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Sun, 15 Aug 2021 00:02:13 -0400 Subject: [PATCH] peasant: have ESCAPE quit the intro --- games/peasant/Makefile | 2 +- games/peasant/intro.s | 25 ++++++++++++++++++++++--- games/peasant/intro_cottage.s | 3 +++ games/peasant/intro_knight.s | 3 +++ games/peasant/intro_lake_e.s | 3 +++ games/peasant/intro_lake_w.s | 3 +++ games/peasant/intro_river.s | 3 +++ games/peasant/wait_a_bit.s | 10 ++++++++++ games/peasant/zp.inc | 3 +-- 9 files changed, 49 insertions(+), 6 deletions(-) diff --git a/games/peasant/Makefile b/games/peasant/Makefile index 2702e6a7..7a64e61a 100644 --- a/games/peasant/Makefile +++ b/games/peasant/Makefile @@ -90,7 +90,7 @@ peasant.o: peasant.s graphics/graphics.inc sprites/peasant_sprite.inc \ title.s directions.s \ intro_cottage.s intro_lake_w.s intro_lake_e.s \ intro_river.s intro_knight.s - ca65 -o peasant.o peasant.s -l intro.lst + ca65 -o peasant.o peasant.s -l peasant.lst ### diff --git a/games/peasant/intro.s b/games/peasant/intro.s index 22ab745b..e2e49ad2 100644 --- a/games/peasant/intro.s +++ b/games/peasant/intro.s @@ -13,6 +13,9 @@ peasant_quest_intro: + lda #0 + sta ESC_PRESSED + jsr hgr_make_tables jsr HGR2 ; Hi-res graphics, no text at bottom @@ -41,24 +44,36 @@ peasant_quest_intro: jsr cottage + lda ESC_PRESSED + bne escape_handler + ;************************ ; Lake West ;************************ jsr lake_west + lda ESC_PRESSED + bne escape_handler + ;************************ ; Lake East ;************************ jsr lake_east + lda ESC_PRESSED + bne escape_handler + ;************************ ; River ;************************ jsr river + lda ESC_PRESSED + bne escape_handler + ;************************ ; Knight ;************************ @@ -69,15 +84,19 @@ peasant_quest_intro: ; Start actual game ;************************ + ; wait a bit + + lda #10 + jsr wait_a_bit + +escape_handler: + sei ; turn off music jsr clear_ay_both ; clear AY state jsr draw_peasant - ; wait a bit - lda #10 - jsr wait_a_bit ; start game diff --git a/games/peasant/intro_cottage.s b/games/peasant/intro_cottage.s index aad32285..7e38c619 100644 --- a/games/peasant/intro_cottage.s +++ b/games/peasant/intro_cottage.s @@ -140,6 +140,9 @@ regular_wait: now_wait: jsr wait_a_bit + lda ESC_PRESSED + bne done_cottage + inc FRAME jmp cottage_walk_loop diff --git a/games/peasant/intro_knight.s b/games/peasant/intro_knight.s index dca97cf7..d366fdcf 100644 --- a/games/peasant/intro_knight.s +++ b/games/peasant/intro_knight.s @@ -116,6 +116,9 @@ done_knight_action: lda #3 jsr wait_a_bit + lda ESC_PRESSED + bne done_knight + inc FRAME jmp knight_walk_loop diff --git a/games/peasant/intro_lake_e.s b/games/peasant/intro_lake_e.s index 6d25e7e8..13058ad9 100644 --- a/games/peasant/intro_lake_e.s +++ b/games/peasant/intro_lake_e.s @@ -103,6 +103,9 @@ done_lake_e_action: lda #3 jsr wait_a_bit + lda ESC_PRESSED + bne done_lake_e + inc FRAME jmp lake_e_walk_loop diff --git a/games/peasant/intro_lake_w.s b/games/peasant/intro_lake_w.s index 3fdb232f..d884c138 100644 --- a/games/peasant/intro_lake_w.s +++ b/games/peasant/intro_lake_w.s @@ -104,6 +104,9 @@ done_lake_w_action: lda #3 jsr wait_a_bit + lda ESC_PRESSED + bne done_lake_w + inc FRAME jmp lake_w_walk_loop diff --git a/games/peasant/intro_river.s b/games/peasant/intro_river.s index b59847b5..6e81e2f9 100644 --- a/games/peasant/intro_river.s +++ b/games/peasant/intro_river.s @@ -107,6 +107,9 @@ done_river_action: lda #3 jsr wait_a_bit + lda ESC_PRESSED + bne done_river + inc FRAME jmp river_walk_loop diff --git a/games/peasant/wait_a_bit.s b/games/peasant/wait_a_bit.s index a2fabae2..0e2e394a 100644 --- a/games/peasant/wait_a_bit.s +++ b/games/peasant/wait_a_bit.s @@ -17,9 +17,19 @@ keyloop: dex bne keyloop + beq no_escape done_keyloop: + and #$7f + cmp #27 + bne no_escape + + lda #1 + sta ESC_PRESSED + +no_escape: + bit KEYRESET rts diff --git a/games/peasant/zp.inc b/games/peasant/zp.inc index 64ec5ffe..a944cd50 100644 --- a/games/peasant/zp.inc +++ b/games/peasant/zp.inc @@ -62,8 +62,7 @@ MB_ADDR_H = $89 DONE_PLAYING = $8A DONE_SONG = $8B APPLEII_MODEL = $8C - - +ESC_PRESSED = $8D ; D0-D? used by HGR?