From 356aecb926b6c9eb409154ba81cc90dec766fe40 Mon Sep 17 00:00:00 2001 From: Natt Akuma Date: Sun, 23 Nov 2025 05:55:00 +0700 Subject: [PATCH] WIP sky scroller #2 --- assets/tileset_c64.png | Bin 6114 -> 6064 bytes loader/samples/minexample/minexample.s | 70 +++++++++++++++++++++-- loader/samples/minexample/sky_scroll.bin | Bin 2560 -> 2560 bytes 3 files changed, 65 insertions(+), 5 deletions(-) diff --git a/assets/tileset_c64.png b/assets/tileset_c64.png index d59833d1db5b147d82bf46febf5aee2ed240514e..8e7f525a126a5f69622c5716a5dea253e6ff11bd 100644 GIT binary patch delta 5756 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 lda #$70 @@ -566,8 +606,14 @@ part_9: bpl :- : - stx $d020 - inx + lda #2 + sta frame_delay + jsr wait_loop_2x + lda frame + and #7 + ora #$38 + sta $d011 + inc frame jmp :- jmp * @@ -717,13 +763,27 @@ init_2x: lda #$00 sta $d012 +: + bit $d011 + bpl :- +: + bit $d011 + bmi :- + lda #51 +: + cmp $d012 + bne :- + lda #0 sta $d01a + sta $dc0e lda #$63; <(985248/100) sta $dc04 - lda #$26;>(985248/100) + lda #$26; >(985248/100) sta $dc05 + lda #$11 + sta $dc0e lda $dc0d and #$81 diff --git a/loader/samples/minexample/sky_scroll.bin b/loader/samples/minexample/sky_scroll.bin index 6e9165853f24916e1490b64b28c66c1ea867bfeb..506efa73e3d3395e730b941d11a9bb6c68beedd4 100644 GIT binary patch delta 190 zcmV;v073tN6o3@4zydh%{Qmy<=%4^ZKmY&$5Hws>O*Ir$a8N+C90ULW00ALYMHE$6 z8CQP&wcYf^MO9TrG!+C9Rc5G@_yRlw6?OfSHv>5z@cjP%`sm=GJpcax{=TXxtFOPm z|NsC0mF1=7`TqWsj{_MH_5J?-xv8a9{r~^}|NgqElehyO3aV*SPk%puFA74F-~;ag s6qC>dV*y07GzIJd2@pUKKon4rR1mW%2QmQxDU)0X9|BWTvwaAI0RSpiVE_OC delta 190 zcmZn=X%N|PfXU*(haW#4ENEbGabRFz5HN`e^)(ddm04{2{e=ylFo0is2HfOe!2O07LXo$`KfB*mOTcxpj{r>&`fne&= zoqK=%`#-s#SyJG`pMU>$tXLQd692z%Rp#U!%yL}oGMV}9?d|os7$!epe$Oa6`2tHa pqr+ws);Elt3=RSgE&&rl7&dFN8!<8}PmbY`XL|g2b1g?RBLLzwQY!!e