New method of handling DLI

Prepare for clouds
This commit is contained in:
Pecusx
2025-03-18 10:26:43 +01:00
parent e4d09c6d46
commit 3db7732cc1
2 changed files with 37 additions and 34 deletions
+37 -34
View File
@@ -37,7 +37,6 @@ display = $a000
.zpvar LowCharsetBase .byte .zpvar LowCharsetBase .byte
.zpvar displayposition .word .zpvar displayposition .word
.zpvar LastKey .byte ; $ff if no key pressed or last key released .zpvar LastKey .byte ; $ff if no key pressed or last key released
.zpvar DLI_A DLI_X dliCount .byte
.zpvar RMT_blocked noSfx SFX_EFFECT .byte .zpvar RMT_blocked noSfx SFX_EFFECT .byte
.zpvar AutoPlay .byte ; Auto Play flag ($80 - auto) .zpvar AutoPlay .byte ; Auto Play flag ($80 - auto)
.zpvar birdsHpos .byte ; 0 - no birds on screen .zpvar birdsHpos .byte ; 0 - no birds on screen
@@ -102,18 +101,22 @@ dl_level
.by $10 .by $10
.by $44 .by $44
.wo power_bar ; power indicator .wo power_bar ; power indicator
.by $84 ; DLI1 .by $04
.by $44 .by $44
.wo gamescreen_middle ; branches .wo gamescreen_middle ; branches
:16 .by $04 :2 .by $04
.by $84 ; DLI2 .by $84 ; DLI1 - color change (power bar - letters) and second clouds
:5 .by $04
.by $84 ; DLI2 - last clouds
:7 .by $04
.by $84 ; DLI3
.by $44 .by $44
animation_addr animation_addr
.wo gamescreen_r_ph1p1 .wo gamescreen_r_ph1p1
.by $84 ; DLI3
:3 .by $04
.by $84 ; DLI4 .by $84 ; DLI4
:3 .by $04
.by $84 ; DLI5 .by $84 ; DLI5
.by $84 ; DLI6
.by $04 .by $04
.by $44 .by $44
lastline_addr lastline_addr
@@ -144,7 +147,7 @@ screen_level = gamescreen_middle+9*32+13
.proc vint .proc vint
;-------------------------------------------------- ;--------------------------------------------------
mva #0 dliCount vdli IngameDLI1
; over horizon ; over horizon
; PMG horizontal coordinates and sizes ; PMG horizontal coordinates and sizes
@@ -253,21 +256,23 @@ key_released
.proc IngameDLI1 .proc IngameDLI1
;-------------------------------------------------- ;--------------------------------------------------
pha pha
lda dliCount
bne DLI2
inc dliCount
mva #$0c COLPF2 ; white (numbers and letters) mva #$0c COLPF2 ; white (numbers and letters)
mwa #IngameDLI1.DLI2 VDSLST
pla pla
rti rti
DLI2 DLI2
cmp #1 pha
bne DLI3 mwa #IngameDLI1.DLI3 VDSLST
inc dliCount pla
rti
DLI3
pha
sta WSYNC
mva LowCharsetBase CHBASE mva LowCharsetBase CHBASE
mva #$f6 COLPF3 ; light brown mva #$f6 COLPF3 ; light brown
nop ;nop
nop ;nop
nop ;nop
mva #$B4 COLBAK ; thin line mva #$B4 COLBAK ; thin line
sta WSYNC sta WSYNC
mva #$DA COLBAK ; additional lines mva #$DA COLBAK ; additional lines
@@ -286,33 +291,32 @@ DLI2
pla pla
tax tax
inc SyncByte inc SyncByte
pla mwa #IngameDLI1.DLI4 VDSLST
rti
DLI3
cmp #2
bne DLI4
mva #$82 COLPF2 ; hat
:5 STA WSYNC
mva #$0c COLPF2
inc dliCount
pla pla
rti rti
DLI4 DLI4
cmp #3 pha
bne DLI5
sta WSYNC sta WSYNC
mva #>font_game_upper CHBASE mva #$82 COLPF2 ; hat
mva #$ea COLPF2 ; button and buckle :4 STA WSYNC
inc dliCount mva #$0c COLPF2
mwa #IngameDLI1.DLI5 VDSLST
pla pla
rti rti
DLI5 DLI5
pha
sta WSYNC
mva #$ea COLPF2 ; button and buckle
mva #>font_game_upper CHBASE
mwa #IngameDLI1.DLI6 VDSLST
pla
rti
DLI6
pha
sta WSYNC sta WSYNC
sta WSYNC sta WSYNC
sta WSYNC sta WSYNC
;sta WSYNC
mva #$94 COLPF2 ; blue pants mva #$94 COLPF2 ; blue pants
inc dliCount
pla pla
rti rti
.endp .endp
@@ -707,8 +711,7 @@ no_branch_l
mva #>PMmemory PMBASE mva #>PMmemory PMBASE
jsr HidePM jsr HidePM
mva #%00100100 GPRIOR mva #%00100100 GPRIOR
mva #0 dliCount mva #0 RMT_blocked
sta RMT_blocked
lda #$ff lda #$ff
sta sfx_effect sta sfx_effect
BIN
View File
Binary file not shown.