From 9c5472339d88f22bc8e4d9cfc982cdbd1b3f5619 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Mon, 22 Apr 2024 00:52:08 -0400 Subject: [PATCH] keen: update maps/items you can now collect keycards and pogo but can't do anything with them --- games/keen/Makefile | 18 +--- games/keen/engine.s | 5 +- games/keen/{level1_items.s => engine_items.s} | 88 +++++++++++++++--- games/keen/hello.bas | 2 +- games/keen/level1.s | 6 +- games/keen/level15.s | 6 +- games/keen/level1_sfx.s | 12 +-- games/keen/level2.s | 4 +- games/keen/level3.s | 6 +- games/keen/level4.s | 41 ++++---- games/keen/level5.s | 27 +++--- games/keen/maps/level1_map.png | Bin 10611 -> 10897 bytes games/keen/maps/level2_map.png | Bin 6785 -> 9096 bytes games/keen/maps/level3_map.png | Bin 13939 -> 14146 bytes games/keen/maps/level4_map.png | Bin 10912 -> 10885 bytes games/keen/maps/level5_map.png | Bin 9312 -> 9594 bytes games/keen/zp.inc | 2 + 17 files changed, 132 insertions(+), 85 deletions(-) rename games/keen/{level1_items.s => engine_items.s} (75%) diff --git a/games/keen/Makefile b/games/keen/Makefile index 4d0dcb3b..71de8659 100644 --- a/games/keen/Makefile +++ b/games/keen/Makefile @@ -226,7 +226,7 @@ ENGINE: engine.o engine.o: engine.s zp.inc hardware.inc \ text_help.s gr_fast_clear.s text_quit_yn.s text_drawbox.s \ - level1_enemies.s level1_items.s \ + level1_enemies.s engine_items.s \ graphics/keen_graphics.inc sprites/keen_sprites.inc \ status_bar.s draw_keen.s move_keen.s gr_putsprite_crop.s \ draw_tilemap.s tilemap_lookup.s \ @@ -235,22 +235,6 @@ engine.o: engine.s zp.inc hardware.inc \ ca65 -o engine.o engine.s -l engine.lst -#### - -#LEVEL2: level2.o -# ld65 -o LEVEL2 level2.o -C ../../linker_scripts/apple2_2000.inc -# -#level2.o: level2.s zp.inc hardware.inc \ -# text_help.s gr_fast_clear.s text_quit_yn.s text_drawbox.s \ -# level1_enemies.s level1_items.s \ -# graphics/keen_graphics.inc sprites/keen_sprites.inc \ -# maps/level2_map.zx02 \ -# status_bar.s draw_keen.s move_keen.s gr_putsprite_crop.s \ -# draw_tilemap.s tilemap_lookup.s \ -# level1_sfx.s longer_sound.s level2_data.inc \ -# keyboard.s handle_laser.s -# ca65 -o level2.o level2.s -l level2.lst - #### graphics/keen1_title.hgr.zx02: diff --git a/games/keen/engine.s b/games/keen/engine.s index 96be6578..7f43c160 100644 --- a/games/keen/engine.s +++ b/games/keen/engine.s @@ -9,8 +9,6 @@ .include "enemies.inc" -; .include "level1_data.inc" - level_data = $6000 max_tile_x = level_data+0 max_tile_y = level_data+1 @@ -97,6 +95,7 @@ level_start: sta KEEN_FALLING sta KEEN_SHOOTING sta KEYCARDS + sta ORACLE_SPOKEN ; debug @@ -324,7 +323,7 @@ level1_levelover: .include "handle_laser.s" .include "draw_tilemap.s" .include "level1_enemies.s" - .include "level1_items.s" + .include "engine_items.s" .include "level1_sfx.s" .include "longer_sound.s" diff --git a/games/keen/level1_items.s b/games/keen/engine_items.s similarity index 75% rename from games/keen/level1_items.s rename to games/keen/engine_items.s index 3e813229..88eb9ada 100644 --- a/games/keen/level1_items.s +++ b/games/keen/engine_items.s @@ -1,3 +1,26 @@ +ITEMS_START = 24 ; pogo is first? +ITEMS_MAX = 35 ; green keycard is last + +ITEM_DOOR = 11 +ITEM_POGO = 24 +ITEM_SPECIAL = 25 + +ITEM_KEYCARD = 32 + +; POGO= 24 +; SPECIAL = 25 (ship part or oracle) +; GUN = 26 +; LOLLIPOP = 27 +; SODA = 28 +; PIZZA = 29 +; BOOK = 30 +; BEAR = 31 +; YELLOW KEYCARD = 32 +; RED KEYCARD = 33 +; BLUE KEYCARD = 34 +; GREEN KEYCARD = 35 + + ;====================== ; check touching things ;====================== @@ -123,25 +146,33 @@ check_item: lda (INL),Y do_check_item: - cmp #26 - beq was_oracle - cmp #27 + cmp #ITEMS_START bcc done_check_item ; not an item - cmp #32 + cmp #(ITEMS_MAX+1) bcs done_check_item ; not an item + cmp #ITEM_POGO + beq was_pogo ; if pogo, then pogo + + cmp #ITEM_SPECIAL ; if oracle/ship part skip ahead + beq was_special + sec - sbc #27 ; subtract off to get index + sbc #ITEMS_START ; subtract off to get index ; 0 = laser gun ; 1 = lollipop 100 pts - ; 2 = book 1000 pts + ; 2 = carbonated beverage 200 pts ; 3 = pizza 500 pts - ; 4 = carbonated beverage 200 pts - ; ? = bear 5000 pts + ; 4 = book 1000 pts + ; 5 = bear 5000 pts + ; 6...9 = keycards - beq get_laser_gun + beq get_laser_gun ; if laser gun skip ahead + + cmp #6 + bcs get_keycard ; otherwise look up points and add it @@ -163,6 +194,9 @@ get_laser_gun: ; keycards go here too... get_keycard: + ; TODO + + done_item_pickup: ; erase big tilemap @@ -186,7 +220,7 @@ done_check_item: check_door: ldy #0 lda (INL),Y - cmp #11 ; door tile + cmp #ITEM_DOOR ; door tile bne done_check_door at_door: @@ -200,10 +234,31 @@ at_door: done_check_door: rts + ;================================== + ; item pogo + ;================================== +was_pogo: + lda #$FF + sta POGO ; pick up pogo + bne done_item_pickup ; bra + + ;================================== + ; item special + ;================================== + ; if oracle text, then oracle + ; otherwise is ship part + +was_special: + lda oracle_message + cmp #$ff + beq was_ship_part + was_oracle: lda ORACLE_SPOKEN bne done_oracle + bit KEYRESET + inc ORACLE_SPOKEN bit TEXTGR @@ -232,6 +287,13 @@ done_oracle: rts +was_ship_part: + ; TODO + + ; play sound effect + + jmp done_item_pickup + ;============================= ; check if touching enemy @@ -318,8 +380,8 @@ score_lookup: .byte $00,$01,$10,$05,$02,$50 ; BCD ; 0 = laser gun ; 1 = lollipop 100 pts - ; 2 = book 1000 pts + ; 2 = carbonated beverage 200 pts ; 3 = pizza 500 pts - ; 4 = carbonated beverage 200 pts - ; ? = bear 5000 pts + ; 4 = book 1000 pts + ; 5 = bear 5000 pts diff --git a/games/keen/hello.bas b/games/keen/hello.bas index dd7c2782..a3eabf84 100644 --- a/games/keen/hello.bas +++ b/games/keen/hello.bas @@ -1,5 +1,5 @@ 5 HOME -10 PRINT "LOADING KEEN V0.06" +10 PRINT "LOADING KEEN V0.07" 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 6ee1df51..13dd682c 100644 --- a/games/keen/level1.s +++ b/games/keen/level1.s @@ -16,8 +16,8 @@ level1_data: .byte 8 ;NUM_ENEMIES = 8 -.byte 32 ;HARDTOP_TILES = 32 ; start at 32 -.byte 40 ;ALLHARD_TILES = 40 ; start at 40 +.byte 40 ;HARDTOP_TILES = 40 +.byte 48 ;ALLHARD_TILES = 48 .align $100 @@ -40,7 +40,7 @@ enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8 ; at $6200 oracle_message: -.byte $0 +.byte $FF ; no message .align $100 diff --git a/games/keen/level15.s b/games/keen/level15.s index ef7d1624..d874a8cc 100644 --- a/games/keen/level15.s +++ b/games/keen/level15.s @@ -29,9 +29,9 @@ enemy_data: ; at $6200 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 + .byte 2,21,"A YORPY MIND-THOUGHT BELLOWS:",0 + .byte 2,22,"YOU CANNOT KILL THE",0 + .byte 2,23,"VORTICON COMMANDER DIRECTLY.",0 .align $100 diff --git a/games/keen/level1_sfx.s b/games/keen/level1_sfx.s index 0c4e7c3e..4f54605b 100644 --- a/games/keen/level1_sfx.s +++ b/games/keen/level1_sfx.s @@ -14,30 +14,30 @@ SFX_YORPBOPSND = 8 play_sfx: lda sounds_low,Y - sta INL + sta SOUNDL lda sounds_high,Y - sta INH + sta SOUNDH ldy #0 sty SOUND_OFFSET play_sfx_loop: ldy SOUND_OFFSET - lda (INL),Y + lda (SOUNDL),Y sta speaker_frequency iny - lda (INL),Y + lda (SOUNDL),Y cmp #$FF beq play_done asl ; clc -; adc (INL),Y +; adc (SOUNDL),Y sta speaker_duration iny bne no_wrap - inc INH + inc SOUNDH no_wrap: sty SOUND_OFFSET diff --git a/games/keen/level2.s b/games/keen/level2.s index e6076665..10804345 100644 --- a/games/keen/level2.s +++ b/games/keen/level2.s @@ -14,8 +14,8 @@ level2_data: .byte 0 ;NUM_ENEMIES = 8 -.byte 32 ;HARDTOP_TILES = 32 ; start at 32 -.byte 40 ;ALLHARD_TILES = 40 ; start at 40 +.byte 40 ;HARDTOP_TILES = 40 +.byte 48 ;ALLHARD_TILES = 48 .align $100 diff --git a/games/keen/level3.s b/games/keen/level3.s index 07113f1d..7fc0c0fc 100644 --- a/games/keen/level3.s +++ b/games/keen/level3.s @@ -16,8 +16,8 @@ level3_data: .byte 8 ;NUM_ENEMIES = 8 -.byte 32 ;HARDTOP_TILES = 32 ; start at 32 -.byte 40 ;ALLHARD_TILES = 40 ; start at 40 +.byte 40 ;HARDTOP_TILES = 40 +.byte 48 ;ALLHARD_TILES = 48 .align $100 @@ -56,7 +56,7 @@ enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8 ; at $6200 oracle_message: -.byte $0 +.byte $FF ; no message .align $100 diff --git a/games/keen/level4.s b/games/keen/level4.s index 89995e33..01d9c23c 100644 --- a/games/keen/level4.s +++ b/games/keen/level4.s @@ -14,10 +14,10 @@ level4_data: .byte 0 ;START_TILEMAP_X = 0 .byte 8 ;START_TILEMAP_Y = 8 -.byte 0 ;NUM_ENEMIES = 8 +.byte 8 ;NUM_ENEMIES = 8 -.byte 32 ;HARDTOP_TILES = 32 ; start at 32 -.byte 40 ;ALLHARD_TILES = 40 ; start at 40 +.byte 40 ;HARDTOP_TILES = 40 +.byte 48 ;ALLHARD_TILES = 48 .align $100 @@ -28,38 +28,37 @@ enemy_data: enemy_data_out: .byte 1, 0, 0, 0, 0, 0, 0, 0 enemy_data_exploding: .byte 0, 0, 0, 0, 0, 0, 0, 0 enemy_data_type: .byte YORP, YORP, YORP, YORP, YORP, YORP,YORP,YORP -enemy_data_direction: .byte RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT,LEFT,LEFT -enemy_data_tilex: .byte 16, 19, 23, 14, 14, 16, 42, 70 -enemy_data_tiley: .byte 9, 9, 9, 45, 38, 43, 44, 34 +enemy_data_direction: .byte LEFT, LEFT, LEFT, LEFT, RIGHT, RIGHT,RIGHT,RIGHT +enemy_data_tilex: .byte 18, 31, 18, 43, 17, 32, 105, 103 +enemy_data_tiley: .byte 3, 3, 7, 7 , 16, 16, 11, 16 enemy_data_x: .byte 0, 0, 0, 0, 0, 0, 0, 0 enemy_data_y: .byte 0, 0, 0, 0, 0, 0, 0, 0 enemy_data_state: .byte 0, 0, 0, 0, 0, 0, 0, 0 enemy_data_count: .byte 8, 8, 8, 8, 8, 8, 8, 8 -; FIXME: this is not correct -; enemy1: yorp @16,9, right -; enemy2: yorp @19,9 left -; enemy3: yorp @23,9 left -; enemy4: yorp @14,45 right -; enemy5: yorp @14,38 left -; enemy6: yorp @16,43 right -; enemy7: yorp @42,44 left -; enemy8: yorp @70,34 left -; enemy9: garg @50,31 right -; enemy10: garg @63,45 right +; enemy1: yorp @18,3, leftt +; enemy2: yorp @31,3 left +; enemy3: yorp @18,7 left +; enemy4: yorp @43,7 left +; enemy5: yorp @17,16 right +; enemy6: yorp @32,16 right +; enemy7: yorp @105,11 right +; enemy8: yorp @103,16 right -; enemy?: butler robot@27,7 left -; enemy?: vorticon @53,8 right +; enemy9: garg @63,16 right + + +; enemy?: vorticon @97,4 right .align $100 ; at $6200 oracle_message: -.byte $0 +.byte $FF ; no message .align $100 ; at $6300 -level1_data_zx02: +level4_data_zx02: .incbin "maps/level4_map.zx02" diff --git a/games/keen/level5.s b/games/keen/level5.s index 7f1c702b..085bf38a 100644 --- a/games/keen/level5.s +++ b/games/keen/level5.s @@ -2,20 +2,20 @@ ; at $6000 -level2_data: -.byte 20 ;MAX_TILE_X = 116 ; 116 wide -.byte 26 ;MAX_TILE_Y = 16 ; 16 tall +level5_data: +.byte 24 ;MAX_TILE_X +.byte 37 ;MAX_TILE_Y -.byte 1 ;START_KEEN_TILEX = 1 -.byte 13 ;START_KEEN_TILEY = 13 +.byte 1 ;START_KEEN_TILEX +.byte 29 ;START_KEEN_TILEY -.byte 0 ;START_TILEMAP_X = 0 -.byte 5 ;START_TILEMAP_Y = 5 +.byte 0 ;START_TILEMAP_X +.byte 21 ;START_TILEMAP_Y -.byte 0 ;NUM_ENEMIES = 8 +.byte 0 ;NUM_ENEMIES -.byte 32 ;HARDTOP_TILES = 32 ; start at 32 -.byte 40 ;ALLHARD_TILES = 40 ; start at 40 +.byte 40 ;HARDTOP_TILES +.byte 48 ;ALLHARD_TILES .align $100 @@ -24,14 +24,15 @@ level2_data: enemy_data: .byte $0 +; enemy0: garg at 7,7, right + + .align $100 ; at $6200 oracle_message: +.byte $FF ; no 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 .align $100 diff --git a/games/keen/maps/level1_map.png b/games/keen/maps/level1_map.png index a7849758502a6a04a2ae498af4d0f77e76eadf9a..c2071a854c1fa67ef2392c399b2596fa308885c4 100644 GIT binary patch delta 5501 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 delta 5392 zcmZ9NXHXMRx3v)|Qbc+aln$W?gb)Z_nsh=ZND-w-M^H)v1nCM=B%p{ADWOU49Vr3^ zB$3{OAVEr`gY=Jg?)T2zxo6M$v7gzq*33F*W~W*0nWqX}Q%n=Si-ZLUwlZm7R?|vf z(-27e8X%Li%o}pt0V~+ITR+4{T-55P>9Bu^5Qx0^R_$?@X9_H!DYa)1sjELgSgiU_jqjV-rMfd zO#e&W!|s0ce%!oz;8OWdZr*#u)ll&JhCU+g%)=1gKzbJI-q<&+{LI5dGP7x=5&bLJ zuW9m0_S^oNb|f�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ⅈOk>8d{|G!iIE#;mH}} ztaSgf@6lm{V}D5mLQ#i=s^3L5lMa`K=8>(WilU(pp9yHp5Ur~ju>($Q6gWEPNThRR z8&D*fHq7=EdF9TLJg;uh%9`v-=MusF27y2r96iU5E)Op6Oa)^kv28|fHrP#bhu>B+ zn+EFNq3k-UsAtI2UsV^Z)n~j|ixHEI0~@hK{Lt!R3# z1dAmuscb}q>gU>5Dxd`t4xqk`($Z$4J(l9GR>d{qRzaq)q$!Jg#pZ?L&4fzp5^`() zH(9|U$V#`rYvw}}!L2DNH(cJSx;Dr79VMhVjg16TkdSrww$~T_^#-{~|9rrJk3~^O zj-UDoU!ZZt9}KgK@2HnRD>}l%%B%q>9j08P3>nQ(l|COc<7L)dqZAf{lr4VLX{E;B zASP_7Is3N_ul)=wOwz3Rx1`U7l%G;kW;R=0V7fP5B^~;^jVR=XrMIds8|=RA2F-1S zgoVBm-bE$^9PlSgVh3_nq@%MLbG_kmjpDBM7m&JM^Q&)dc`&gdHeJ2QeBS%Z&|;0z$X#sExH>{h&)7MIy;8C}WIP~=eeD8Ox69Ag0S7a9cmc&GJlw$4Dy z?MCy>OHs8B4qSwalhkfGv3(75nGMYU1^jD-Em2$HF9!mZwnW!<~H_N+;!Z7c11-CrtUTdgk#My9}!|3 z{YiFVn6i`X!M)t5w+z+zBY-;UNyoeQA?mjr8=9VBJz@iz^oX$mLr2V`zk|g%KqjGF z*mXi+XvI~0`Bqp@<<7yqUz(7QfOgy&^j?#BGJmGP#!Vzaswb6B>8KCMFOA-^*4v<5 zDiL2%%vIrusiC#u`B89uykVh-;Za0|A609`)hMYw<;X1~l$tZ}U^`By__eYazKj}+ z`QbXOu}84hr-Q;a*!}AngwFiE zz|Jj1+>OCP;sl}P&uHP_G@R0^0qhb$a5@bq$o0nPZ6E<7YZHVI7aeWT!iYL!Q>8rv z*sT@ZdB@hLn1FxIpBq%yhOS;M-&}2X`MxG(zuW$lB*js`|B2xi{_pb*bU>4g_T3kL z1M4$T9P#zZHopAS2$N!OfH}LGX&CWBwA4=&W|z+B2$xBh3`?U(rvu-tu@54I4<^(x zC%kCnI%pDVox&-BO4(0KEJw{BpvDP%a2&s8=*FIvQ+xHvdgtH9+G2yy3+U<-8i&?7 zkaN+9g(@?)V_~m;Lo19Jdw|jpmtU?QRM(ouF^$C)qrwkfPF5U^Ke*RnPU{-H(Ri0c zb2;;%6s0*0KR?W`{M0JlVvr?!7U*{-(}?VB3A+GSPFh{gj#)4?Cr8L;)Z8iV*E|li zZ6Bn~v;at>JGWlLwkWgV*op>BSg8RlB^^q90{|bO9DEFqEi=r;T5nr;uLI&Yz0fV@ z4RzAVpsoU1izdd`K6z3NgyFlkL7bm=kQ90vX5qSC9ic|CDeNB zz)#hcn-&pnj4oI5D@`|6M<9c@IMaPn?uWJ#RBlbm|Hp=D5oUwkJ(E*f$uW_C^Nzt| zIQOihDeqnWPVzI$C7B}w07?^rfks^Zeh;O^{HF_5KtCQUKRP0TO*8>0ma84rt1lL7 zF7}QUOCG}x@FB378UBZkKvZfFpk$pE~o3dmG*&b^edz4I; zB3Xx!?As7BmS4|vzQ1#x?>XQ5pVztWbG`3#z5lqc^L`4CHB7w%Fs%pQvEkqQ z#t|`fnl{ne=22ahX0+VC$7$FJJ#G6{MSUkaR(#i ztmmXB9W16kvJse+*pn$CU=T&W1ZbyXQH9ae$O2?LYgJ$6@t+AMDLSM#iga8fTa{tno-6=fS|8P#tje*O;4%Jix z6)CsU*0fXQ=eH<|H{!~;CQit(dS3snK1%8w#7>sS>-EG)!0wPo)--W%x|02qm7Hmf z+kJB1hdTqEA0tZ`l@jH5Wa@6bb$hNttw-=uY#;XCzi#c+7=2eZ8F=jfYvZSDNfIuQ zTs!#UxXO|I-eNB8qn9q2d{k(^`p zs5=c^nVI!Xr%Ck6NLOqKRLwTn^xV+YbNUY}^m);vH3=q787SNSkJ!%4r-kVp{NLJM z167bzU@uv%=e}+5IXN@4oVVFsG0azdBOzz9z&n|6uH&a~oBa?$ZVpp-%KO#t5*yzR zI8q$)xCQI0py@D>$Fd(3$cI{uq7frnjbkfYmevuS?_>nbh&M!KnWIGaZTB5Sh>m=z z;ipMI;lp}s_yAR?Z@==BbyY&U0!#FUi&J4R(^u!)$S@2-k^!X~6eZY3Ak zXOf7cWgv)Ui+9B5xylU>kHHjCv?sU6tyE2qi4xp+`Tp9T9=2ArgE}p66XoMH3H#Et za@(*v=MG)&%jOY0`(a+2J`G2Qri9&VQy+<-i~GtCL-aph72p}tefA`I-D3fODGZuW zI&9x}?!@-wAfnZNOzV&o1BZ(l6c-!SdHVaN-^9rORpFmB(c`|lXB#3x2(e70b&wu{ z&^a2)|1vaWQaqhIYqWnmVb-H= zXylraRG=V7Z`zY@yNm(_UaW$Ev-s%UEd)bbK-N#o22OL0UpWH<7=L{ptCuOgVhiFf zMcHxvIh^eQbebV5T#Z6IYt7K#@qoSAC1>$SgYtTf#rCsnn)GDL!h^$Gwt~UkjvopZ zZ=AjV$o1!lZEiDJ9`==dS3!N>Zu9Y)TIaJMePsnsJq44(GW-Px18$Wjpmu;p@vxEd zaW*xsN#k7XUJwsX8ZD?C97&OMFsV^6`rjmn+HbfyKk0uS;KZ9(h zJlkfxchm1Ue?`)skskXH%RqN0E9-ShgQSafR%MWW{I9Kx!gZTZ^9ygY4Zj?^@TyU6 zEOO?Y9{+L;CvqIU_wMP2=+Zs!irV$3F@}cZF5gO2nQO|YWx>ZyuK=1Vgmh2*M8X%8 zh~%)sRLTCm`o5Zc{wJw|SO(|(_hR)}FnYKRrXi0%@rLPXIaXrGb;&S==x!~T6 zCucRi`_W%CeRKqv8Jy!*`j;iArAXhS40ns;eI(B=2Ox{}D+`~eh6;BK9$dI!DbO^s z9KLaD&MOL{A(rgEqQ;m0^BBJez7;UKX{b4WvT*z>Mz|pDbq8S0d(AM|SpxjyRtM%j zKI>9e?d-Q#iN;ix)!e}E(caVbkFVQD)pNwIGnUJASQbh$`QV%OQRW@Q$GKYKyXRWM zO(SQM)mr{OBnU2i1}l2obm4ERBcaIF>;zs{i_5+*qnwqDyjBCY z#D(%@7T?Vyk}?5CZ9;9|^;0ONI%NrA#B{V|?gm{**&jnL%Vt0eB)Wy!T^S|t^L0Hx zw2@`PC8}N${X?00J5=Dqe@#6Yi!qQ~U~CI*vM5ob#6$!fPNE$#2+4mTdhSJmPbsb)(+9Y^~F& zIAn_hj{z>#`!V@sfzN#)(3wbgU0riyUETkWLVp6#i_kQ6qb@DM_fDEcqCA`lvC4X- zHv&#ooV1`9PEpYHS|*_VC z<)AsH8uPU~ZzFAc&Erbq2=T8`ZJMjK?}8HQ?8<7sssCo_3i86_tST6$c8g|;=m6n~ z{G`$jokXi7ZZ7u;v&RQ9LhVM^avU&neli8jJn8d{r;#&cd{mjSlGF1!Y;Euw4#DQbUVg+ z+Bg3sXL6DsUW+>%^_64T^Zd-I7mFRg5FgMaay1V&e8Uwv@mY41{$<(g$eX#uy}*(E zlK@ltH^#25*&;f{7_k#VIv1m54^y&m{zG}Mx3dk`E|SYfei z#vXP{@APEEh2R-YJ~Sg#0eb_4z9$7KDJfq)u^Q!rq0gM0oR+CnRrq8H`GL}}q6&+O z-mN0mloe@3_bzN(hotJdeLrj?gnBSI7+l>?Q6Q}YjY_1II(|XS((=`&ASyfm3!K!+ zEmTySG#~V89ZHdHJwI=Bwg0xjTt8|+L8@7s2Y+)Gj)BkP{hYBB{7+?!fQAdPHuU(1 zYHeN+6`X&5CC=~nX=$U=_ag3MNn!p4NIusm%2!n8mho1E2g$w!2symB#2D+DAQ?hf z8vwk|agOt%_6){zX9PuSAuI{Cp$OlRdntd>I)AMhDbA2GL{*)*M>4%Q=rzc(m-soF zTqq`hq0Y^Im#Hh^@>}hmaxH!lUl1!cd=CrdvwDC?4Kcx)T=rjqXN?#4pp8+eliP2k zkmB)BP3qw#)wTzgncSQU+Yg@?qUR(ZH3K^(JHsUhdyB&?v6$W>RN&@PO09a3Eb`KY zg}{(cV2ec*={$-ejcTmsAp2>TNe11)y>U#xhBQImRwA(^n4+LL$86+>o3^A4HOxt9 z)>s2;vfmQEHgu*~m;;Z~{f3*ox@K2cH&j$~WISHQ(o78_HIs9*)DAUFdb_>?T;M3Z zARDvWcGeSK+=^2Ay|je2Z`j<8DS}K6g!BLzs7btX9|d*Am8^bz;1bNdcvievGRPbk z+Ah`JSih4kPde)U12}2pp_i@2SP?gvJ)zcKcG}T5RK?g4+D<*HD3r ziWp;OtOZU@j1)5HNJ{S|wCu+^;M7D&A!hp@)8G9uAvLE}A`4t^=0=H%dOOH&ZZxS3|TK_jlHVJ^8a1eykJX@)@pS(#cysOis2C!$;uvY0dz z)X`GAZmGFlORq^LXWCE-u_;qivNXxvi*x6kJAd5wpXWT^^M0Q5ea?Ab4(@_eju`;z zN(w&6BvHAd`zWOY5e- zJ$dm8CEg-ZWj$uumNk-+;axt#ZmwHfm6T#i=f@1#dU^L_VI>*Yuh$})yWka>@`X0l z;#aR!4&?eX|gRV_5t}ypA(7yK0Ecf({L&-Q0MDfRb;ri7N$%N0%@f4 zOg6%S1F($1mt4{=Jvt;|1F2v_xHGF>8(RiBo)K#7PoCG>ACU{&g6pUs8j?_7cXWk^ zX@z+~7Bv!B@g(MT=%k-Eih4diar;Q?nZ`+vy~jdtoyzzl?NmSARghED6jJ_U^N#d# z-)p;i?>+B1t=%?0Zlckq=wj!sw0efM=QY3qNDk*i1zpx@)aiJel{xKE{glA{`FwyI zg>-#)HlFQT6?Dc6ecpX~9R#es1>SW}pkK&M!Wxin6>(sB(Z~3=d@Jb6iot zA~MSHw#Zyi5_#Lm(M_ZBbrHJVa~`bxHya`6*H>N3YL{u!J@IkOx>0?*f9gg?o(Pj>)1O5+u6I?ySUn;d0aiSzx&!oy)El& zYc?O*pg9cc+sZREi2}gu^ugrJ#99zYQ-$~S3TDfc@=VsR1XvpJ738HqRIw7P^CE`1 zaXB7@lP6cQ%5r z7%n^|R0N1N8Mj@$-2fDI;01p~Z4Mc|KZU2$;`sZ0npI2VGxP_#)!*>~t&n4+3@QJ$ zv6LU^jI@pE3wjuPugI}fr%;so)i_*{xWH&LM?+|PJPQ|WU#q|vO!X z(#<(}6_0__6z`WJuE!>J_<2hUTCkxvLrbk;G=*z5phOVpoSMng-fAyFi}h3Pioz;aN4U?|t~za9Z;APs4|b14Mia;l~i+#FvBZ{_64Y*@oh) zP+qPybE=oB4yFTsICu69hp68sR{Ak4lt{F#x%8wb>x)*pN0LwLh$zZam6gGI-hdp^ErPT2I4McqG2HA&qQ1 z7@3gbhL>A(MiW1+o$g0~CH)j3qWQ#iv#eRG?126fYY*fCAVMRrjJ0{uBuhL|Usn24 zG;!HObcP+4gFu>#6$@6ho)oa+0v<`AyZ`==1+>sw@NFXb-9RluU@xvt?8$ws-bH{C zR~y~&FgnFJJ%R`z-8B7!;6y+mY`}QXglV*NdBl_;@VrjuPH)JSG3BDVJ zzWi0m-cllcg0vw#m^yHT50Js##jA6Og)lvVxGcDJn6O*?x^sf0j>Pt~V4Z!h;8#gV z<_nv>fAW9D2sPEeT21{|Y!8V5cU|7!7V-Ljm($tT@BH3T{6BPuIzrw4B4V|LTK;OW rBea;ov_q~sp1xTW&(ur{&Sn7`<|nAi!H!SvAoamx1AMEzk6io@0Pl-J diff --git a/games/keen/maps/level3_map.png b/games/keen/maps/level3_map.png index 63ee9bf8a75038db6cbbbc4b1a9e1cf4190ec59c..3c2b882daeefb913f85383af723309f910e7452c 100644 GIT binary patch delta 8777 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 U`oqNwf|E#B3#3`A{_N%d01LxM-T(jq delta 8741 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 diff --git a/games/keen/maps/level4_map.png b/games/keen/maps/level4_map.png index 4ae4b906a559a075b34c9a91ba7be8af644919a1..aafb69f2bdf3093c9140b2aa72bb32ccaa9184b5 100644 GIT binary patch delta 6914 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 JR4Q4${vW>{XCD9n delta 6973 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 diff --git a/games/keen/maps/level5_map.png b/games/keen/maps/level5_map.png index 315b608805bdd7b6e38137198f559e6b74c65d5f..cef65783da285961bb2906324a4b5f20cc2ab852 100644 GIT binary patch delta 4023 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 U$9KzI{ix0jYHSIqHoP16AODS>y#N3J delta 3930 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 diff --git a/games/keen/zp.inc b/games/keen/zp.inc index bd4384d4..bab38cdf 100644 --- a/games/keen/zp.inc +++ b/games/keen/zp.inc @@ -155,6 +155,8 @@ MAX_TILE_Y = $AA NUM_ENEMIES = $AF HARDTOP_TILES = $B0 ALLHARD_TILES = $B1 +SOUNDL = $B2 +SOUNDH = $B3 WHICH_SLOT = $DA JS_BUTTON_STATE = $DB