From 73f00a27f29c2c042fe9a3e56b0a2e2b2c73d99c Mon Sep 17 00:00:00 2001 From: Pecusx Date: Mon, 12 Aug 2024 19:03:50 +0200 Subject: [PATCH] Mirrored left run --- dino.asm | 106 ++++++++++++++++++++++++++++++++++++++++++++++--------- dino.xex | Bin 6694 -> 6862 bytes 2 files changed, 89 insertions(+), 17 deletions(-) diff --git a/dino.asm b/dino.asm index 060d256..7de5bf3 100644 --- a/dino.asm +++ b/dino.asm @@ -59,7 +59,8 @@ GameDL :13 .byte SKIP8 ; empty lines .byte MODE2+LMS ; gr.8+LMS - .word status_line +status_line_addr + .word status_line_r .byte SKIP8 ; empty lines @@ -70,11 +71,16 @@ line:1_addr .endr .byte JVB .word GameDL -status_line +status_line_r dta d" l-hi 00000 r-hi 00000 00000 " -score=status_line+33 -rhiscore=status_line+19 -lhiscore=status_line+7 +status_line_l + dta d" 00000 00000 ih-r 00000 ih-l " +score=status_line_r+33 +rhiscore=status_line_r+19 +lhiscore=status_line_r+7 +scorel=status_line_l+2 +rhiscorel=status_line_l+16 +lhiscorel=status_line_l+28 ;--------------------------------------------------- ; World table without dino WorldTable @@ -83,12 +89,14 @@ WorldTable FirstSTART jsr GenerateCharsets jsr SetGameScreen - jsr FadeColors + jsr FadeColorsIN NewGame + jsr SetStatusToR jsr SetStart jsr GameR key jsr HiScoreR + jsr SetStatusToL jsr SetStart jsr GameL key @@ -189,7 +197,7 @@ CopyLoop sta font2l+$300,y sta font3l+$300,y sta font4l+$300,y - ; dino characters - only to 'left' charsets + ; swap bits to make 'left' charsets lda font1+$100,y sta font1l+$100,y lda font2+$100,y @@ -229,22 +237,27 @@ SwapLoop tax lda swap_table,x sta font4l+$100,y + lda font1,y + tax + lda swap_table,x + sta font1l,y + sta font2l,y + sta font3l,y + sta font4l,y lda font1+$200,y tax lda swap_table,x sta font1l+$200,y - lda font2+$200,y - tax - lda swap_table,x sta font2l+$200,y - lda font3+$200,y - tax - lda swap_table,x sta font3l+$200,y - lda font4+$200,y + sta font4l+$200,y + lda font1+$300,y tax lda swap_table,x - sta font4l+$200,y + sta font1l+$300,y + sta font2l+$300,y + sta font3l+$300,y + sta font4l+$300,y iny bne SwapLoop rts @@ -384,7 +397,15 @@ noInsert lda #$10 ; 0 character code sta score+1 inc score -ScoreReady +ScoreReady + ; move to second (left) score + ldy #4 + ldx #0 +@ lda score,x + sta scorel,y + inx + dey + bpl @- rts .endp ;----------------------------------------------- @@ -423,6 +444,22 @@ EndJump NoJump rts .endp +;--------------------------------------------------- +.proc SetStatusToL + lda #status_line_l + sta status_line_addr+1 + rts +.endp +;--------------------------------------------------- +.proc SetStatusToR + lda #status_line_r + sta status_line_addr+1 + rts +.endp ;----------------------------------------------- ; Show Object on screen ; X - y position @@ -913,6 +950,11 @@ Down sta score+2 sta score+3 sta score+4 + sta scorel + sta scorel+1 + sta scorel+2 + sta scorel+3 + sta scorel+4 rts .endp ;----------------------------------------------- @@ -953,6 +995,14 @@ higher4 higher5 lda score+4 sta rhiscore+4 + ; move score to 'left' status line + ldy #4 + ldx #0 +@ lda rhiscore,x + sta rhiscorel,y + inx + dey + bpl @- rts .endp ;----------------------------------------------- @@ -993,10 +1043,18 @@ higher4 higher5 lda score+4 sta lhiscore+4 + ; move score to 'left' status line + ldy #4 + ldx #0 +@ lda lhiscore,x + sta lhiscorel,y + inx + dey + bpl @- rts .endp ;----------------------------------------------- -.proc FadeColors +.proc FadeColorsIN ldy #0 sty COLOR1 FadeColor @@ -1012,6 +1070,20 @@ FadeColor rts .endp ;----------------------------------------------- +.proc FadeColorsOUT + ldy #$0f +FadeColor + sty COLOR2 + sty COLOR4 + waitRTC + dey + bpl FadeColor + lda #$00 + sta COLOR2 + sta COLOR4 + rts +.endp +;----------------------------------------------- .proc SetGameScreen mwa #GameDL dlptrs lda #%00111110 ; normal screen width, DL on, P/M on diff --git a/dino.xex b/dino.xex index ca44b93dc42f20eceb555f0280d56e47435c0598..33aea41f45321975e6055a3686e45bdd107bb875 100644 GIT binary patch delta 824 zcmZWnUr19?7(e&!Zrc2_J2yn3hhqw*Nl2PXSzF-4*>=_KB4*OVEfyN|AQnAM(z!cF zc#3wOjwB3evMZ&6^{{Nv%f$5%mk1()vKNsAn_z)p)ZN|8qTkE;&hO86&UZL-EpN^& zo#5GrB5C0J>i8VM0rI;WLuDfX{Hbq}asE6RV~iqPbis%Z_V}RcfqpM!TstT++KyL9BMGM6@PQDYR0Vj_OU%}q)?aR=5%02bd)l7eR~XE_gHewH z4=GNg1jZ%7Pi}av`yhJNT60{BcKqwhMVk((TsNVgDAwl};d~01C}^Ufg@SepI+Ea6 zo;poID+OmMxR3<3d8(O$HVV#B;8;^1Nil~4Xn@?Ws2xbSXF)ia3ZNz~0Y7>+f^)%j zr}|BTc|mEACvu`GF*gBQh1H3IVM~IYo)}1uA{szzuN><4Tt~DJ6%}Xu&!9M;3Xl?8 zwfO})GKN>sc2p#%Y)&c0&4N@HqJ3yH!vBzB&SU`1*Wb;WGsR1$doD(65#hJuAr~Wu z;&O&lE%9)sC~MdVOA3&~vMedRxEv`6Tacu^@5DfWrPQatIAidkM2O! zua8cqtGs!t8PVZ9^|cDxVwR~@c51Egc_RFd0*Ik{u=L5w>kl(CJ{{yv^{{hyci+w( vEv;*8>F5-CuV{k!7wonQD{m<;D=je}DK0V@i8w7XtbyYUEVIsjVPB%(S|dU8 delta 678 zcmX?Sy3AyQh5*ycz{y$yVUxEC7*1|rW#^i+5dpl~oifiXbgvWLf7{!5xHAAW+V z3qLay6u}Z&o){8^0X}m*5)|6J6m)!+wqNj3IN?9pLQv7{fY(Z$-Y-l`MUIMm__LC+ zm*t9rtM^I;gb)i*$mcRp>wGVT|GqG-{ep_>K&>{Y>Ofiz5JDi+e6%KC7u;%~v}!K{ z+e`+doeXLamf21QEeOkMCxae@Wq0Dj+Jpu6D;Z{nOg<~5T%YN+h@q`%Z-|Eh%L;`G z?`KWRnjSb@c%PsEkyxqK+6wC;$@oD8NS$Qc@H3O6cajHZL+@mdcdr5y-c8OI zwi8KM;IK2qW0hw82dPEMi^S%G$DGrvpfx+vMXS>0++~PcnTdImvv1*{8(!Bnyx_;Jbif@*Yv+$-Bkm zCr=ao#|BkBODq+lx(KY=(I2e3+kXKIO!ek;aScY{MeLV^PPe7ro|T$~*2Y^<*XKLs)}F|)8RGci73ddM`z0|0jO6dM2l