From a38269cdf075cb1b96ccbf8189e50cbc0e209e62 Mon Sep 17 00:00:00 2001 From: Natt Akuma Date: Fri, 28 Nov 2025 04:15:00 +0700 Subject: [PATCH] Finish clouds transition --- loader/samples/minexample/minexample.s | 124 +++++++++++++++++++------ 1 file changed, 96 insertions(+), 28 deletions(-) diff --git a/loader/samples/minexample/minexample.s b/loader/samples/minexample/minexample.s index 079a5e9..0bae604 100644 --- a/loader/samples/minexample/minexample.s +++ b/loader/samples/minexample/minexample.s @@ -20,6 +20,7 @@ timer: .res 2 timer_limit: .res 2 timer_reached: .res 2 timer_mode: .res 1 +enable_music: .res 1 temp: .res 3 aart_lz_buffer := $fd00 @@ -99,11 +100,8 @@ code_start: lda #0 sta $d020 sta ZX0_dst+0 + sta enable_music jsr load_font - ; we don't have the music player here yet - ; so just put an rts instruction at $a003 - lda #$60 - sta $a003 jsr init_2x jsr clr_txt ldx #fake_kernal_irq sta $ffff + inc enable_music jsr run_nufli_bmp sei @@ -395,7 +394,6 @@ code_start: ldx #$10 ldy #$01 lda #8*11 - sta timer jsr txt_fade_out_offset ldx #$c4 @@ -777,7 +775,7 @@ init_2x: sta $d012 position_2x_to_display: - lda #51 + lda #50 position_2x: : bit $d011 @@ -850,7 +848,10 @@ irq_music: inc vbl ;inc $d020 + lda enable_music + beq :+ jsr $a003 +: ;dec $d020 lda timer_mode @@ -1389,7 +1390,7 @@ load_font: part_10: ; the sprite data is embedded into first few bitmap pixels ; which are hidden by black border attributes -@y = $60 +@y = 93 jsr clr_txt ldx #total_direct @@ -1426,6 +1427,8 @@ part_10: sta $d026 lda #@y+48 jsr position_2x + lda #0 + sta vbl ; draw top half @loop: bit $d011 @@ -1433,10 +1436,16 @@ part_10: ldx #0 ldy #0 lda frame - cmp #200 ; TODO - bcc :+ + bpl :+ jmp @finish : + cmp #$74 + bcc :+ + lda #$74 +: + pha +: + clc adc @sprxs,x sta $d000,y sta temp @@ -1467,7 +1476,7 @@ part_10: ldx #0 ldy #0 - lda frame + pla clc : adc @sprxs+8,x @@ -1485,15 +1494,18 @@ part_10: iny inx cpx #6 - nop bcc :- + lda vbl + and #15 + bne :+ inc frame +: jmp @loop @sprxs: - .byte 200, <-24, 24, 24, <-64, 24, 24, 24 - .byte 200-40, 24, 24, 24, <-44, 24 + .byte 48, <-24, 24, 24, <-64, 24, 24, 24 + .byte 48-40, 24, 24, 24, <-44, 24 @sprys: .byte @y-8, @y, @y, @y, @y+21, @y+21, @y+21, @y+21 @@ -1504,40 +1516,84 @@ part_10: .byte 2, 2, 2, 9, 2, 2 @finish: - jsr position_2x_to_display + lda #$0b + sta $d011 + lda #0 + sta $d015 + + jsr clr_txt + ldx #produced + jsr write_txt2 + ldx #$c0 + ldy #$01 + jsr init_timer + lda #1 + sta timer_mode +: + lda timer_reached + beq :- + + ldx #$48 + ldy #$01 + lda #8*11 + jsr txt_fade_out_offset part_11: + jsr clr_txt + ldx #presented + jsr write_txt1 + ldx #$c0 + ldy #$01 + jsr init_timer + lda #1 + sta timer_mode + + ; ldx #liliatalkname + ; jsr load_8000_zx02_2000 +: + lda timer_reached + beq :- + ; tell the music to end and wait : lda #1 jsr $a006 cmp #17 bne :- - ; load new music - sei - jsr set_irq_badguy + ldx #$00 + ldy #$01 + lda #8*11 + jsr txt_fade_out_offset +: + lda timer_reached + beq :- + + jmp * ; TEMP + + ; load new music + lda #0 + sta enable_music ldx #song1name lda #$a0 jsr load_8000_zx02 + + sei + jsr set_irq_badguy + inc enable_music cli jsr clr_txt ldx #turn_disk - jsr write_txt + jsr write_txt1 jmp end - .res ((*+$ff)&$ff00|2)-* -end: - ldx #fontname - jsr fileexists - bcc end - jmp code_start - clear_2bufs: ldy #$44 .byte $2c ; skip next instruction @@ -1682,7 +1738,11 @@ total_direct: .byte " total directed by " .byte " masaya hashimoto " -presented_by: +produced: +.byte " produced by " +.byte " masayuki katoh " + +presented: .byte " presented by falcom " turn_disk: @@ -1775,7 +1835,7 @@ write_txt2: ldx #>($400+13*40) jmp write_txt_to -write_txt: +write_txt1: stx text_ptr sty text_ptr+1 ldy #0 @@ -1814,4 +1874,12 @@ txt_fade_out_offset: beq :- rts + .res ((*+$ff)&$ff00|2)-* +end: + ldx #fontname + jsr fileexists + bcc end + jmp code_start + code_end: