Mirrored left run

This commit is contained in:
Pecusx
2024-08-12 19:03:50 +02:00
parent 964ab26543
commit 73f00a27f2
2 changed files with 89 additions and 17 deletions
+88 -16
View File
@@ -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
@@ -385,6 +398,14 @@ noInsert
sta score+1
inc score
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
lda #>status_line_l
sta status_line_addr+1
rts
.endp
;---------------------------------------------------
.proc SetStatusToR
lda #<status_line_r
sta status_line_addr
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
BIN
View File
Binary file not shown.