From bf0b18169a6bc4d1ca65425195474448c213481d Mon Sep 17 00:00:00 2001 From: Pecusx Date: Sun, 1 Jun 2025 12:45:57 +0200 Subject: [PATCH] More game controls --- lumber.asm | 66 +++++++++++++++++++++++++++++++---------------------- lumber.xex | Bin 33246 -> 33284 bytes 2 files changed, 39 insertions(+), 27 deletions(-) diff --git a/lumber.asm b/lumber.asm index 18e3905..e9e314a 100644 --- a/lumber.asm +++ b/lumber.asm @@ -1404,9 +1404,9 @@ wait_for_key pause 1 StartLoop jsr GetKey - cmp #@kbcode._left + cmp #@kbcode._left ; left, Select beq leftkey - cmp #@kbcode._right + cmp #@kbcode._right ; right , Option bne notdirectionskeys leftkey lda Difficulty @@ -1414,6 +1414,10 @@ leftkey sta Difficulty jmp difficulty_display notdirectionskeys + cmp #@kbcode._space ; space, Start + beq EndOfStartScreen + cmp #@kbcode._tab ; TAB, 1st joy button + bne StartLoop EndOfStartScreen rts .endp @@ -1492,9 +1496,12 @@ training_mode beq training_mode2 jsr EnterPlayerName ; enter name only in normal game mode and if there are new score training_mode2 + mva #5 NewHiScorePosition ; prevent highlighting of result OverLoop jsr GetKey - cmp #@kbcode._space + cmp #@kbcode._space ; space, Start + beq EndOfOverScreen + cmp #@kbcode._tab ; TAB, Joy 1st button bne OverLoop EndOfOverScreen rts @@ -1523,17 +1530,16 @@ loop bne No_keys key_released_before jsr GetKeyFast - cmp #@kbcode._left + cmp #@kbcode._left ; left, Select beq left_pressed - cmp #@kbcode._right + cmp #@kbcode._tab ; TAB, 1st button + beq left_pressed + cmp #@kbcode._right ; right, Option + beq right_pressed + cmp #@kbcode._ret ; Return beq right_pressed ; other keys or no key - cmp #@kbcode._up - bne NoNextLevel - ; next level if joy UP sta LastKey - ;jsr LevelUp -NoNextLevel No_keys lda PowerValue jeq LevelDeath @@ -1614,8 +1620,11 @@ LevelDeath RMTsong song_game_over @ jsr GetKey - cmp #@kbcode._space + cmp #@kbcode._space ; space, Start + beq restart + cmp #@kbcode._tab ; TAB, 1st joy button bne @- +restart ; restart game rts go_loop @@ -1921,13 +1930,15 @@ input_name_loop jeq end_of_name pause 1 jsr GetKey - cmp #@kbcode._left + cmp #@kbcode._left ; left, Select beq leftkey - cmp #@kbcode._right + cmp #@kbcode._right ; right, Option beq rightkey - cmp #@kbcode._space - bne input_name_loop + cmp #@kbcode._space ; space, Start beq next_char + cmp #@kbcode._tab ; TAB, 1st joy buttom + beq next_char + bne input_name_loop leftkey ldx CharCode dex @@ -3439,18 +3450,26 @@ checkSelectKey lda CONSOL and #%00000100 ; Option beq OptionPressed + lda CONSOL + and #%00000001 ; Start + beq StartPressed .ENDIF lda #@kbcode._none bne getkeyend OptionPressed - lda #@kbcode._atari ; Option key + lda #@kbcode._right ; Option key = right key bne getkeyend SecondButton + lda #@kbcode._ret ; 2nd joy button = Return key + bne getkeyend SelectPressed - lda #@kbcode._tab ; Select key + lda #@kbcode._left ; Select key = left key + bne getkeyend +StartPressed + lda #@kbcode._space ; Start key = space key bne getkeyend JoyButton - lda #@kbcode._ret ; Return key + lda #@kbcode._tab ; 1st joy button = TAB key getkeyend rts ; ---- @@ -3490,8 +3509,8 @@ StillWait and #%00000100 ; any key beq StillWait lda CONSOL - and #%00000110 ; Select and Option only - cmp #%00000110 + and #%00000111 ; Start, Select and Option + cmp #%00000111 bne StillWait .ELIF TARGET = 5200 lda SkStatSimulator @@ -3502,13 +3521,6 @@ KeyReleased rts .endp ;-------------------------------------------------- -.proc CheckStartKey -;-------------------------------------------------- - lda CONSOL ; turbo mode - and #%00000001 ; START KEY - rts -.endp -;-------------------------------------------------- .proc InitBranches ;-------------------------------------------------- ldy #5 diff --git a/lumber.xex b/lumber.xex index a8629e6a3da54dd224d220dcac25eeb6a29cc05b..c65bcb7e3104934cb33d45185c93a660d4b71d53 100644 GIT binary patch delta 4278 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 delta 4236 zcma)9c~BH*7N6-kfKg;L$Rb8Ca6Aapoiva!lclLN1#veOEZb0tAq-yan963YsF)=PsMw1U0TK3nJqS*+f9%xM zH{W}|-}}Ayo!yh2OBVmk5^5NJC-k9V9OfH{N?Hx*%oy4s8MuBJ~XfTo4XgP zZ-I7yvqg(SD@!SHME_NlnE%!oTvN~HbaJ@jHO*hC+vHdYRZ2VU(@J6<))7;tChq z5E2U2u$CCJ^cpBqLkiZAHdKR)iQW)i{?nn*;ToPNcKAH3A+GQmRuWgZ&?;RBsy9yA z5MJCS9T=JU9mEbFWjb+%XV^?!;X+$A*;aXNes?hUbVYJj0X36+VWi zLPDW=TuO}pdo5oIg$~c-He!d5ayxN_*RYYe!bi!3ghDl}BgV*DlC606yM$~q6Q1Q% zwwPQh-+BB+c!2DZH?-EpPWmFa4jqto58LO!Uv#n^v`3LQ5zi@haL|Q*=7v6Pwv@YIvXC^lH|_GX?R!dZH`jS-p0aArovF0 z;WM1)y;@{j%M7(!qZ#E(uSOMSDp$O%nJU$qh22;_HS(^}nt{%}3>}+`>H2}bltcIB z_-ynWIi39=_v1yRUSXtX*bIqh_o8jXPyE&lHlu)qxusS%Q+kul8bT1tWHS-UBGsc@ zUrt4=WGKwsZ@)dP*TG0;f?dj~Fw`C7&tz!P1@`KGXiAOt^n?9!W4&3u9Ab0&O}H*# z))wk9r}_Z_j7;-qv|HKCQU1N{1~v=b^d;Eza-6##PTm2vahQ=&LpAKJh^Z6#!i@d) z9#Yi+Ud`Mf$af%AM7%#E-4Ys)WT-F`-ffJ($BmWR0ICN;;k|_!J`2th z3gIM~TnF=fMwtInoSR&TR?UW2aV%cm2ekyGH{oM6#WM)5OSx#ZH9OQUpHc0U2O%&+ zO$twk2~h4*u1r$w&l?~?ffO|wYaay3f^&k7&H<1I$Ya8Sda7S{Gx+R@2}1tX*~Sx~ zY<&pZpSM1}q=l1cF5+9{B7DiwwkIXLkk8wa_>3gJIB9>AU1NL^{`ce4 zBP*57Flz@LS(Z;9%O~$U&+aI9Un<}Y$;#qFJ|kKA5ZgqI=wR^d{6@K^Lr?0EJOWV& z_3F?%9jY6FObA&DiQrZp`g#O1BQ#crUe}>BA!r#%W2EIf2L-C>MKDxwz@(MzG@l{tw_kvKX@5sJjTp;@pg-xi5VqSB0QvU0Tu z9(nac3g1e8c(vbcD6ZvkT~nOW>zu3tQWXj!1Vy5Eb}5kS?xszle1!l z!&s%P_aal-=tU~i*$Hwd1QOI#$HxfVB2z?jVmC>3qZ^OgerZ8KmdJLkJQ zKzp!CvZP(>&~Hs!We&MKZRtIDnJ!8kxVTFWLJD8&4FT~_FMOPbe?I2$Ut_|c?;4Xvw6L75{w*dDOXgDKU4Edj7)FSnt zs`pE9(~WYKojqX^Hf{ z(t>!^AWu;p6iVWc8Px|>n>0hUO0!f-8qLVNC`bMB`mcc{8Nj`ZjW>Ve8<`4A z-DWS}0wC|27Cp@?e!qllAKxN{I&^W@=SI_9;SYy|KP6MfS~&XVrtzQhwcm)J@sdG2 z%u7b`C@*D*L0ItT`R=2a{4_%$bxD9`!G8|3)P5y?$Frv! z@%J3hsyL9zLS^k~ah%YI?T=XKX|YvrDM5_Woip{eldp(Gteaq!b&CYCkFT(yV}O4E zC!&kTvDw59UOdHDqIZmtZV)f<(rD49%UcD8URQBy4&?u3qWc`Lb+IQDtmF8R3;Ilv zp`0O2u+e+|N4~(OMWSd2ue9>0g7XkFse!MoGkn0F^`CK!sjQnTuqXXzC!`AEbV2Fn z^}nzQ$|*j6&j25Pq>q2=F##*7TT9Axy;FXnn?Eu}sE;m~r^E?v`*iPlo1jK2;{+^E zH4WGVQp{t1!+-b?aBB(r+6_*Xi7D?BFkm>OdS_pO{D*c0UGf+I$|Pfilz|2SFTrV4nPQiPl+bCo=iz%xQ{GQv{?ZW@6d2vZpE xvy*@27%3WpC?gt!a