From ba59a23daaa9544306fe6387661af8baf1bbfb7a Mon Sep 17 00:00:00 2001 From: RochesterX Date: Sat, 21 Feb 2026 16:40:26 -0500 Subject: [PATCH] Scroll input --- plat.nes | Bin 40976 -> 40976 bytes plat.s | 98 ++++++++++++++++++++++++++++++++++++++----------------- 2 files changed, 68 insertions(+), 30 deletions(-) diff --git a/plat.nes b/plat.nes index af23c2dea62806b6f46de5824cc89ce907b9e524..56e6e43aca13bac00d46a5ecea811d4da993cf07 100644 GIT binary patch delta 1274 zcma)*L1@!Z7{`+|P205CbaiQrTlaQwID|2oNT+k?VY0EP2Tw9(Jy=-X4&udw!?bm; z?TVFRJPd}H!W&K5pfV6V6z8GhJV@~(=%oh-+d-*UGT4E3hOK}>9(PA3?PNBO= z^fn1~%5YLiB?&LZn>DsKpwm)}t+AM`aD*G7F&9PO)2md|rElY)GM_}>jEL1~93;VB zVXxS4Ra-(qdrbGJKa#{d#MK>&H$?*7^eR>N>RWl1$@>_PU`a7~H$(Wyh8wq4Jj4qP zWu-GkyjUh}ku|o~)?`4Jhq$IsxtKB*K)Yq9nFx?}!B(RXP_;8m3;k3ZWDq^CjWeBe zRZB7_)F|fl1opwv__2Tkn1juD_0zZolwdSkq|i@ej~){6Byd3Cp8!(D0npzWx=^G^ z3-*Kf7Y9ffBlO;oTMc<++c;v#dFY*7gKiGMxv!ya2kibV@pr3QmqVsi?TRBfxM{q2 zjI^)PO}D;@1)z1H%`|Q&;mBHtd0;Lg7)XKmq?mwx07w96fcWuA?YZMTH#lQ1KRHHa zX9oGR=ye9&$tdG9@U%i_M(bmhtD-KTXK5)WmaCK5q7&Uum#d?>ybDzo<2g}YZwU1- zMJhL(KCJYbS$bW2wu6YnPlo zc8g=P|7~%v^e~HKv->RGwuP3P$$gR~P8|>}i*kPyZY}inG$aoj(@ghU4ztuw-7Ac~_d? zl2my;EyK681U+ChY>)>BAuvmaK(b&v_+gHRA9Sht3Y<9r!h!`}w7@nChNE4xs!RC_ zjku%8L^R0Iy2e*H7%v#DgJhd8JK3f5Wse4nM1-%O=d~`kz#3MUFSuVkT;>xT`Ugro B&9ndj delta 1198 zcma)*PiPZC6vlTan@zF}&8F!#yKU1d6#)AYr=t*)Zrne}FSVVoBq?(2*&cZPBy_w(pcIHib zAEozE{vtcOsBbe|wSv=M@YEXqv}#ThAL%w35+DP3Be9Dx4aiZJ1n^A_KTY7Pal8_T zb?RK)WaS7~qdXmx}t8ew#foiUOKvr9%64aROI zOvc5g5Q2_J!{1Ya)pepU{D_ias3J$5MA>w23i`srHjApzD!BX+!X6?LuX&zyg~J&J zKha7|%|*SgRpM3OSgB*g3p%lMF~ia>;sNmo@zMYZV%?IZOaS!xpVl!!(8V@_6}C1B zXLk@ZuGoey%-o|MIVutlY~aT@D={uuyE|!riLE)!Z$t#-0EncY20{k|#$#KM?KR%m zCU~?)J*3wVxW(R*hTkUf-6S4Ns%O@qZ%#{^af4GYNv4RGG&v&W3Zv^8J090^1&^L` z;DTuN%eiVrEWgVz`kZ#!Qg3}}m%-Z4UhdHaInrZsvZfuN+2=l;NQJSMsUSookfu&Z zO>w$Sv}EIseWcZ5aO1x%{$6^T#o)#Xi@0UlbTfKFYKmiRV%=hd9~$-Rb0#B4{IAPL z#J`-QeyF1`+?9WysriV1s}WtVN3+y#JmbUT3Ke#g3RC7ohj#UYCPz8>TH_-Ubwm9f zPqXzas^5^II^>vA)fA|e-FmIILMD=J5O_JKK-R&S@70z74YCy7X`Z;Dyu_U*_)!zw zV!?8BY&PalA3!4hZ)7T2WJp~U@;ni&!fhwF_-Z9P)UW>l_fQEQj39J3Yztuf4}5RM PdH=Ri7AE(ERUZEW!PTix diff --git a/plat.s b/plat.s index 9e65f34..e2b4ac2 100644 --- a/plat.s +++ b/plat.s @@ -355,6 +355,7 @@ player_status: .res 1 ; 76543210 | 0: facing (0 right, 1 left) ; | 2: nametable Y ; | 7: talking horizontal_speed: .res 1 +camera_speed: .res 1 cursor_x: .res 1 cursor_y: .res 1 @@ -413,17 +414,67 @@ main: jmp @loop move_camera: - lda #%1 + jmp @no + lda player_pos_x clc - adc scroll_x + adc #240 cmp scroll_x - sta scroll_x - bcs :+ - lda scroll_nmt - eor #%00000001 - sta scroll_nmt + bmi :++ + lda #1 + clc + adc scroll_x + cmp scroll_x + sta scroll_x + bcs :+ + lda scroll_nmt + eor #%00000001 + sta scroll_nmt + : : rts + @no: + + + jsr btn_select + cmp #0 + beq :+ + lda #%11111111 + sta camera_speed + jmp @end + : + + jsr btn_start + cmp #0 + beq :+ + lda #1 + sta camera_speed + : + @end: + + + lda camera_speed + bmi @left + clc + adc scroll_x + cmp scroll_x + sta scroll_x + bcs :+ + lda scroll_nmt + eor #%00000001 + sta scroll_nmt + : + rts + @left: + clc + adc scroll_x + cmp scroll_x + sta scroll_x + bcc :+ + lda scroll_nmt + eor #%00000001 + sta scroll_nmt + : + rts draw_player: lda player_pos_y @@ -595,38 +646,25 @@ draw_player: rts init_objects: - lda #0 - sta var_n - ldx #0 - : - lda var_n - clc - adc #8 - sta var_n - - sta player_pos_y, X ; Set Y position - sta player_pos_x, X ; Set X position - - txa - lsr - lsr - sta oam+1, X - - inx - inx - inx - inx - cpx #(8*4) - bne :- + lda #96 + sta player_pos_x ; Set X position + lda #128 + sta player_pos_y ; Set Y position lda #0 sta player_vel_x sta player_vel_y sta player_status + sta scroll_nmt + lda #1 + sta player_nmt_x lda #%00101000 sta horizontal_speed + lda #0 + sta camera_speed + rts draw: