diff --git a/assets/05_field_will_loop.csv b/assets/05_field_will_loop.csv new file mode 100644 index 0000000..09f99b7 --- /dev/null +++ b/assets/05_field_will_loop.csv @@ -0,0 +1,43 @@ +3,ys2/05_field/koala/png/01.png +3,ys2/05_field/koala/png/02.png +3,ys2/05_field/koala/png/03.png +3,ys2/05_field/koala/png/04.png +3,ys2/05_field/koala/png/05.png +3,ys2/05_field/koala/png/06.png +3,ys2/05_field/koala/png/07.png +3,ys2/05_field/koala/png/08.png + +3,ys2/05_field/koala/png/01.png +3,ys2/05_field/koala/png/02.png +3,ys2/05_field/koala/png/03.png +3,ys2/05_field/koala/png/04.png +3,ys2/05_field/koala/png/05.png +3,ys2/05_field/koala/png/06.png +3,ys2/05_field/koala/png/07.png +3,ys2/05_field/koala/png/08.png + +3,ys2/05_field/koala/png/09.png +3,ys2/05_field/koala/png/10.png +3,ys2/05_field/koala/png/11.png +3,ys2/05_field/koala/png/12.png +3,ys2/05_field/koala/png/13.png +3,ys2/05_field/koala/png/14.png +3,ys2/05_field/koala/png/15.png +3,ys2/05_field/koala/png/16.png +3,ys2/05_field/koala/png/17.png +3,ys2/05_field/koala/png/18.png +3,ys2/05_field/koala/png/19.png +3,ys2/05_field/koala/png/20.png +3,ys2/05_field/koala/png/21.png +3,ys2/05_field/koala/png/22.png +3,ys2/05_field/koala/png/23.png +3,ys2/05_field/koala/png/24.png +3,ys2/05_field/koala/png/25.png +3,ys2/05_field/koala/png/26.png +3,ys2/05_field/koala/png/27.png +3,ys2/05_field/koala/png/28.png +3,ys2/05_field/koala/png/29.png +3,ys2/05_field/koala/png/30.png +3,ys2/05_field/koala/png/31.png + + diff --git a/assets/ys2/05_field/koala/png/31.png b/assets/ys2/05_field/koala/png/31.png new file mode 100644 index 0000000..e7a99b6 Binary files /dev/null and b/assets/ys2/05_field/koala/png/31.png differ diff --git a/loader/samples/minexample/Makefile b/loader/samples/minexample/Makefile index b1140a9..1f82186 100644 --- a/loader/samples/minexample/Makefile +++ b/loader/samples/minexample/Makefile @@ -169,6 +169,7 @@ $(DISKIMAGE): $(ASSEMBLE) $(CC1541) -f "intrbmp" -w title_320-prepared.zx0.prg \ -f "tower" -w tower.zx0.prg \ -f "towerbm" -w tower_beam.zx0.prg \ + -f "field" -w field.zx0.prg \ $@ diff --git a/loader/samples/minexample/conv_zx0.sh b/loader/samples/minexample/conv_zx0.sh index c3f41f8..eb6b93a 100644 --- a/loader/samples/minexample/conv_zx0.sh +++ b/loader/samples/minexample/conv_zx0.sh @@ -10,4 +10,7 @@ printf "\x00\x80" > tower.zx0.prg cat tower.zx0 >> tower.zx0.prg zx02/zx02 tower_beam.bin tower_beam.zx0 printf "\x00\x80" > tower_beam.zx0.prg -cat tower_beam.zx0 >> tower_beam.zx0.prg \ No newline at end of file +cat tower_beam.zx0 >> tower_beam.zx0.prg +zx02/zx02 field.bin field.zx0 +printf "\x00\x80" > field.zx0.prg +cat field.zx0 >> field.zx0.prg \ No newline at end of file diff --git a/loader/samples/minexample/field.bin b/loader/samples/minexample/field.bin new file mode 100644 index 0000000..a4c130e Binary files /dev/null and b/loader/samples/minexample/field.bin differ diff --git a/loader/samples/minexample/field.zx0 b/loader/samples/minexample/field.zx0 new file mode 100644 index 0000000..1af5fd0 Binary files /dev/null and b/loader/samples/minexample/field.zx0 differ diff --git a/loader/samples/minexample/field.zx0.prg b/loader/samples/minexample/field.zx0.prg new file mode 100644 index 0000000..ccc510b Binary files /dev/null and b/loader/samples/minexample/field.zx0.prg differ diff --git a/loader/samples/minexample/minexample.s b/loader/samples/minexample/minexample.s index fc34fe0..33334c5 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 +temp: .res 3 aart_lz_buffer := $fd00 .include "lz_zp.asm" @@ -312,10 +313,112 @@ code_start: lda #0 sta vbl - lda #$1f + lda #$0d sta frame_until jsr wait_frame_until_2x + lda bmp_addr + sta temp + lda bmp_addr+1 + sta temp+1 + lda cur_frame + sta temp+2 + ldx #17 +: + txa + pha + lda temp+2 + sta cur_frame + lda temp + sta bmp_addr + lda temp+1 + sta bmp_addr+1 + lda #$0d+3 + sta frame_until + jsr wait_frame_until_2x + pla + tax + dex + bpl :- + + lda #$0b + sta $d011 + + jsr clr_txt + ldx #prog_writ + jsr write_txt2 + ldx #$a8 + ldy #$01 + jsr init_timer + lda #1 + sta timer_mode + + ldx #fieldname + jsr loadraw + lda #0 + sta ZX0_src + lda #$80 + sta ZX0_src+1 + lda #0 + sta ZX0_dst + lda #$20 + jsr zx02 + +: + lda timer_reached + beq :- + + ldx #$48 + ldy #$01 + jsr init_timer + lda #2 + sta timer_mode + +: + lda timer_reached + beq :- + + jsr init_bmp + + lda #0 + sta vbl + + lda #$08 + sta frame_until + jsr wait_frame_until_2x + lda bmp_addr + sta temp + lda bmp_addr+1 + sta temp+1 + lda cur_frame + sta temp+2 + + ldx #2 +: + txa + pha + lda temp+2 + sta cur_frame + lda temp + sta bmp_addr + lda temp+1 + sta bmp_addr+1 + lda #$08+8 + sta frame_until + jsr wait_frame_until_2x + pla + tax + dex + bpl :- + + + lda #0 + sta vbl + lda #$27 + sta frame_until + jsr wait_frame_until_2x jmp * @@ -416,6 +519,14 @@ scenario_writ: .byte " tomoyoshi miyazaki" .res (40-24)/2, ' ' +prog_writ: +.res (40-22)/2, ' ' +.byte " programmed by " +.res (40-22)/2, ' ' +.res (40-22)/2, ' ' +.byte " masaya hashimoto" +.res (40-22)/2, ' ' + clr_txt: lda #$80 ldx #0 @@ -897,6 +1008,7 @@ sidname: .byte "sid", 0 introname: .byte "intrbmp", 0 towername: .byte "tower", 0 towerbeamname: .byte "towerbm", 0 +fieldname: .byte "field", 0 darmtower_txt: .res (40-26)/2, ' '