From 05a7ad5c1e633a551108cbed3bb9f641aaca3f68 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 15 Apr 2024 01:30:30 -0400 Subject: [PATCH] keen: can get oracle message --- games/keen/hello.bas | 2 +- games/keen/level1.s | 1 + games/keen/level1_items.s | 34 +++++++++++++++++++++++++++++ games/keen/level2.s | 7 ++++++ games/keen/maps/level2_map.png | Bin 6782 -> 6785 bytes games/keen/release/keen1_lores.dsk | Bin 0 -> 143360 bytes games/keen/zp.inc | 1 + 7 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 games/keen/release/keen1_lores.dsk diff --git a/games/keen/hello.bas b/games/keen/hello.bas index 36ef72c3..dd7c2782 100644 --- a/games/keen/hello.bas +++ b/games/keen/hello.bas @@ -1,5 +1,5 @@ 5 HOME -10 PRINT "LOADING KEEN V0.04" +10 PRINT "LOADING KEEN V0.06" 20 PRINT " KEEN1 PROOF-OF-CONCEPT DEMAKE" 30 PRINT:PRINT 70 PRINT "BASED ON KEEN1 BY ID" diff --git a/games/keen/level1.s b/games/keen/level1.s index 5edb74f9..996caf01 100644 --- a/games/keen/level1.s +++ b/games/keen/level1.s @@ -277,3 +277,4 @@ level1_levelover: level1_data_zx02: .incbin "maps/level1_map.zx02" +oracle_message: diff --git a/games/keen/level1_items.s b/games/keen/level1_items.s index c20aedfb..9c4683b1 100644 --- a/games/keen/level1_items.s +++ b/games/keen/level1_items.s @@ -123,6 +123,9 @@ check_item: lda (INL),Y do_check_item: + cmp #26 + beq was_oracle + cmp #27 bcc done_check_item ; not an item cmp #32 @@ -197,6 +200,37 @@ at_door: done_check_door: rts +was_oracle: + lda ORACLE_SPOKEN + bne done_oracle + + inc ORACLE_SPOKEN + + bit TEXTGR + + jsr clear_bottom + + lda #oracle_message + sta OUTH + + jsr move_and_print + jsr move_and_print + jsr move_and_print + + jsr page_flip + +wait_oracle: + lda KEYPRESS + bpl wait_oracle + bit KEYRESET + + bit FULLGR + +done_oracle: + + rts ;============================= diff --git a/games/keen/level2.s b/games/keen/level2.s index 791c0b93..5b9082f3 100644 --- a/games/keen/level2.s +++ b/games/keen/level2.s @@ -39,6 +39,7 @@ level2_start: sta KEEN_FALLING sta KEEN_SHOOTING sta KEYCARDS + sta ORACLE_SPOKEN ; debug @@ -278,3 +279,9 @@ level1_levelover: level1_data_zx02: .incbin "maps/level2_map.zx02" + +oracle_message: + ; 012345678901234567890123456789012345678 + .byte 2,21,"YOU HEAR IN YOUR MIND:",0 + .byte 2,22,"IT IS TOO BAD THAT YOU CANNOT READ",0 + .byte 2,23,"THE STANDARD GALACTIC ALPHABET, HUMAN",0 diff --git a/games/keen/maps/level2_map.png b/games/keen/maps/level2_map.png index 6595222382967b6b22a93754d816282ed33cb807..3145c7a986a2f1a3f56a9f63dbc2335e52f6f0c8 100644 GIT binary patch delta 1562 zcmZvbX;e~q7{)cV%^J+C%t|XEFO#Ui1;n&+;n1bhLDR-E4B|powi@Gd=(bK|;|8>l znt897Q<}#m&2byc#w62ITBwCgGg(=Zoaa6N=Xc)c!#fThqov}_ z@1_x)kf*cncuXG?Cng^?Ut`}8W&87@m@&Z#HU14$b0;;!+_NTYF3&<~iPwge+JUmf z;PNZkSWqCKaM_f)JmJ1SZ<(r?n22lrRGufJ(9bjUZv>=%F{w=T03=U;VG$blIK z|J`xF9qxZqKfixpko9|u;fQejG-jTzXu!$RnJJ=>X+kE6#tn>@%~WQG?RR0yZyzp^Frsi{_Yx+hgg z7c!_Mh6fWSfdWqoNx;MHj6h~)rtjYg^XeH^h_D;9#HfwfJ%$^sC z;H>80cu8?3W@eVdP=N2I*iM5kNpgu}ca+;^)4IV{KM`&HC@N;g_367em>=bvt8kU18$uzS{UsAe~=6-kSF|tNJ=RHZrpA0llZ>(=+zS(9pS>+S-s3 zX{SMQC`j||-Al8AH1G3n2o!Yh9_ybdyY;)0Z}k~Qkt0tMqR($;hfBjS1e>*_=6HHJ zl3fR>{)n6x`uci5B!c%TH~Lo&8{ZCz3TGD$LaJ$@JA+SYm5-Nbl|gi(dsK5sS@gAR zYOZw_cI5q%aDCjUxCRf}z^m3|jk-S`#xaRcK~~hLAKLpQQ;g-uxv|(CJcli`&L~yT z(NDWdZ3RWZ=84jdOhk3=@DF7*ycA_S+ss~xQODnbkZM|NFt=q}m@OgXO~qj6 zg^r598s#WDR=qDo*<=S#^e&3mKbNK#=g0tD-%~pRLSgWDSS9>_Y>1FrUoIp%TKwpHSz3;xS-C!DbA1=>1YpalJllq$kCa?%u&-RHu zM~S@JJJHURkT7gmHs`dH!`iNF*Y`Wp8hf<;TXQR1V0+`j2|V z$>H*OiNjfTM}bRA!Ab*tX1Wp;)&T?Yl>1soxKW2Tg-|B$iQCW@$y~=m=Yjf|>95RJ zsDW@mlO5SsTUI)7YlqS}x3&4t8{C)Ln=r&z1S?(V!#ww{hyzk@NJpp_a$i~uv;(-7 zc0LMJ?oM+~9&t$tY*)LkCXON)NIcV1;|sSK6X? z;0)la{4CiSKy~xR1KjwbAE#i0UW^rlSp0mkekmtl1{$E8l#~T(?H!^Ur?CIK?Mj4) zYsi_L+Yr!`2e{*^i`zJ!n#c9M!6qcDv5G|xI0H>4ZIT|jt^J(;f0@Sk5Gyd?hTrz%e*@O2*C_x1 delta 1562 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