diff --git a/megademo/Makefile b/megademo/Makefile index abf441af..2d9de413 100644 --- a/megademo/Makefile +++ b/megademo/Makefile @@ -32,7 +32,7 @@ megademo.o: megademo.s \ starring.s starring1.inc starring2.inc starring3.img.lz4\ starring_people.s fs.inc FS_HGRC.BIN.lz4 deater.inc DEATER_HGRC.BIN.lz4\ check_email.s email_40_96.inc \ - leaving.s leaving.inc \ + leaving.s leaving.inc tfv_sprites.inc \ bird_mountain.s \ waterfall.s gr_unrolled_copy.s waterfall_page1.inc waterfall_page2.inc \ takeoff.s takeoff.inc takeoff.img.lz4 \ diff --git a/megademo/leaving.png b/megademo/leaving.png index 01cd9ce4..9cb48a91 100644 Binary files a/megademo/leaving.png and b/megademo/leaving.png differ diff --git a/megademo/leaving.s b/megademo/leaving.s index c4fba8e5..168448ae 100644 --- a/megademo/leaving.s +++ b/megademo/leaving.s @@ -96,8 +96,11 @@ lvloopB:dex ; 2 ; Vertical blank = 4550 cycles (70 scan lines) ; Total of 17030 cycles to get back to where was - ; want 12*4 = 48 lines of HIRES = 3120-4=3116 - ; want 192-48=144 lines of LORES = 9360-4=9356 + ; want 12*4 = 48 lines of TEXT = 3120-4=3116 + ; want 136-48 = 88 lines of undisturbed LORES = 5720 - 4 = 5716 + ; lores lines 20-33 (80 - 135) are changing + ; so don't do much then + ; want 192-136=56 lines of LORES = 3640 @@ -118,17 +121,26 @@ lvloop9:dex ; 2 bit SET_GR ; 4 - ; Try X=10 Y=167 cycles=9353 R3 + ; Try X=75 Y=15 cycles=5716 - lda $0 - - ldy #167 ; 2 -lvloop6:ldx #10 ; 2 + ldy #15 ; 2 +lvloop6:ldx #75 ; 2 lvloop7:dex ; 2 bne lvloop7 ; 2nt/3 dey ; 2 bne lvloop6 ; 2nt/3 + ; Try X=120 Y=6 cycles=3637 R3 + + lda $0 + + ldy #6 ; 2 +lvloopQ:ldx #120 ; 2 +lvloopR:dex ; 2 + bne lvloopR ; 2nt/3 + dey ; 2 + bne lvloopQ ; 2nt/3 + ;====================================================== ; We have 4550 cycles in the vblank, use them wisely @@ -163,3 +175,23 @@ lv_start_over: + ; 1209 cycles + ; 4+ 30*[35 + 5 ] + 5 = 1209 +erase_yard: + + lda #$44 ; green ; 2 + ldx #30 ; 9 - 40 ; 2 +yard_loop: + sta $528+9,X ; 20 ; 5 + sta $5a8+9,X ; 22 ; 5 + sta $628+9,X ; 24 ; 5 + sta $6a8+9,X ; 26 ; 5 + sta $728+9,X ; 28 ; 5 + sta $7a8+9,X ; 30 ; 5 + sta $450+9,X ; 32 ; 5 + + dex ; 2 + bpl yard_loop ; 3 + ; -1 + rts ; 6 + diff --git a/megademo/megademo.dsk b/megademo/megademo.dsk index 058e016c..98ff0363 100644 Binary files a/megademo/megademo.dsk and b/megademo/megademo.dsk differ diff --git a/megademo/tfv_sprites.inc b/megademo/tfv_sprites.inc index 80c14893..e4bd6b13 100644 --- a/megademo/tfv_sprites.inc +++ b/megademo/tfv_sprites.inc @@ -74,3 +74,86 @@ bird_rider_walk_left: ; = 33 + 7*52 + 30*22 + 64*3 + 69*1 + 54*16 - 7 ; = 2175 + +tfv_stand_right: + .byte $4,$6 + .byte $00,$DD,$BD,$00 ; 00=2 0x=0 x0=0 xx=2 + .byte $00,$DD,$DB,$0B ; 00=1 0x=1 x0=0 xx=2 + .byte $00,$22,$00,$00 ; 00=3 0x=0 x0=0 xx=1 + .byte $00,$22,$02,$0B ; 00=1 0x=2 x0=0 xx=1 + .byte $00,$22,$00,$00 ; 00=3 0x=0 x0=0 xx=1 + .byte $00,$82,$80,$00 ; 00=2 0x=0 x0=1 xx=1 + ;===================== + ; 00=12 0x=3 x0=1 xx=8 + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 6*52 + 30*12 + 64*3 + 69*1 + 54*8 - 6 + ; = 1392 + + +tfv_walk_right: + .byte $4,$6 + .byte $00,$DD,$BD,$00 ; 00=2 0x=0 x0=0 xx=2 + .byte $00,$DD,$DB,$0B ; 00=1 0x=1 x0=0 xx=2 + .byte $00,$22,$00,$00 ; 00=3 0x=0 x0=0 xx=1 + .byte $00,$22,$02,$B0 ; 00=1 0x=1 x0=1 xx=1 + .byte $22,$02,$20,$00 ; 00=1 0x=1 x0=1 xx=1 + .byte $82,$00,$82,$00 ; 00=2 0x=0 x0=0 xx=2 + ;====================== + ; 00=10 0x=3 x0=2 xx=9 + + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 6*52 + 30*10 + 64*3 + 69*2 + 54*9 - 6 + ; = 1455 + +tfg_stand_left: + .byte $4,$6 + .byte $00,$b8,$88,$00 + .byte $0B,$bb,$88,$00 + .byte $00,$00,$11,$88 + .byte $0B,$01,$11,$00 + .byte $00,$11,$11,$10 + .byte $00,$81,$81,$01 + +tfg_walk_left: + .byte $4,$6 + .byte $00,$b8,$88,$00 + .byte $0b,$bb,$88,$00 + .byte $00,$00,$11,$88 + .byte $b0,$01,$11,$00 + .byte $00,$10,$11,$11 + .byte $00,$81,$01,$81 + +bird_stand_right_sprite: + .byte $6,$7 + .byte $00,$00,$00,$00,$00,$00 ; 00=6 0x=0 x0=0 xx=0 + .byte $00,$00,$00,$00,$dd,$90 ; 00=4 0x=0 x0=1 xx=1 + .byte $00,$00,$00,$00,$dd,$00 ; 00=5 0x=0 x0=0 xx=1 + .byte $0d,$dd,$dd,$dd,$dd,$00 ; 00=1 0x=1 x0=0 xx=4 + .byte $00,$00,$0d,$dd,$0d,$00 ; 00=3 0x=2 x0=0 xx=1 + .byte $00,$00,$00,$99,$00,$00 ; 00=5 0x=0 x0=0 xx=1 + .byte $00,$00,$00,$99,$90,$00 ; 00=4 0x=0 x0=1 xx=1 + ;===================== + ; 00=28 0x=3 x0=2 xx=9 + ; = 33 + Y*(52)+ [30A + 64B + 69C + 54D]-Y + ; = 33 + 7*52 + 30*28 + 64*3 + 69*2 + 54*9 - 7 + ; = 2046 + +;bird_stand_left_sprite: +; .byte $6,$7 +; .byte $00,$00,$00,$00,$00,$00 +; .byte $90,$dd,$00,$00,$00,$00 +; .byte $00,$dd,$00,$00,$00,$00 +; .byte $00,$dd,$dd,$dd,$dd,$0d +; .byte $00,$0d,$dd,$0d,$00,$00 +; .byte $00,$00,$99,$00,$00,$00 +; .byte $00,$90,$99,$00,$00,$00 + +bird_walk_left_sprite: + .byte $6,$7 + .byte $00,$00,$00,$00,$00,$00 + .byte $90,$dd,$00,$00,$00,$00 + .byte $00,$dd,$00,$00,$00,$00 + .byte $00,$dd,$dd,$dd,$dd,$0d + .byte $00,$0d,$dd,$0d,$00,$00 + .byte $00,$00,$99,$00,$00,$00 + .byte $00,$99,$00,$99,$00,$00