diff --git a/megademo/SIZE b/megademo/SIZE index 0a724d70..8dfde03e 100644 --- a/megademo/SIZE +++ b/megademo/SIZE @@ -34,6 +34,7 @@ 30633 -- with all the music added in 31323 -- finish takeoff 31607 -- space-bars auto-driving + 32038 -- align letters, few extra thanks Further ideas to reduce: + Optimize all the .align calls diff --git a/megademo/TODO b/megademo/TODO index fcc397dc..9eb7cefb 100644 --- a/megademo/TODO +++ b/megademo/TODO @@ -1,7 +1,5 @@ TODO TODO: + Get timing right - + Fix qkumbas seek code - + Fix one-line glitch + Add play_music call in slow vapor_lock code? THANKS: @@ -10,13 +8,12 @@ THANKS: * Fireworks: FOZZTEX * DISK+LZ4: QKUMBA * BMP2DHR: BILL BUCKELS - VOYAGER - TALBOT 0101B + * VOYAGER 2 + * TALBOT 0101B * UTOPIA BBS * VMW PRODUCTION Overall: - fix off-by-one line vaporlock Trim the last 8 bytes off of all the lz4 files Music: diff --git a/megademo/letters.s b/megademo/letters.s index 19e814fc..819754d3 100644 --- a/megademo/letters.s +++ b/megademo/letters.s @@ -1,28 +1,7 @@ ; The various strings printed by the sliding letters code ; Kept in one place to try to allow for better alignment opportunities -letters_bm: - ;.byte 1,12 - .byte "CYCLE",128 - .byte 2,16,"COUNTING",128 -; .byte 3,12,"M E G A D E M O",150 - .byte 3,16,"MEGADEMO",150 - .byte 1,16," ",128 - .byte 2,16," ",128 - .byte 3,16," ",128 - .byte 1,19,"BY",128 - .byte 3,17,"DEATER",150 - .byte 1,19," ",128 - .byte 3,17," ",128 - .byte 1,17,"MUSIC",128 - .byte 3,17,"DASCON",150 - .byte 1,17," ",128 - .byte 3,17," ",128 - .byte 1,16,"LZ4+DISK",128 - .byte 3,17,"QKUMBA",150 - .byte 1,16," ",128 - .byte 3,17," " - .byte 255 +.align $100 fw_letters: ; .byte 22,28, @@ -56,6 +35,12 @@ fw_letters: .byte 23,26, " ",128 .byte 23+128,26," ",128 + .byte 22,26, "VOYAGER 2",128 + .byte 22+128,26,"VOYAGER 2",198 + + .byte 22,26, " ",128 + .byte 22+128,26," ",128 + .byte 22,26, "UTOPIA",128 .byte 22+128,26,"UTOPIA",128 @@ -68,6 +53,19 @@ fw_letters: .byte 23,26, " ",128 .byte 23+128,26," ",128 + .byte 22,26, "TALBOT",128 + .byte 22+128,26,"TALBOT",128 + + .byte 23,26, "0101",128 + .byte 23+128,26,"0101",198 + + .byte 22,26, " ",128 + .byte 22+128,26," ",128 + + .byte 23,26, " ",128 + .byte 23+128,26," ",128 + + .byte 22,26,"A VMW",128 .byte 22+128,26,"A VMW",128 @@ -75,3 +73,28 @@ fw_letters: .byte 23+128,26,"PRODUCTION" .byte 255 + + +letters_bm: + ;.byte 1,12 + .byte "CYCLE",128 + .byte 2,16,"COUNTING",128 +; .byte 3,12,"M E G A D E M O",150 + .byte 3,16,"MEGADEMO",150 + .byte 1,16," ",128 + .byte 2,16," ",128 + .byte 3,16," ",128 + .byte 1,19,"BY",128 + .byte 3,17,"DEATER",150 + .byte 1,19," ",128 + .byte 3,17," ",128 + .byte 1,17,"MUSIC",128 + .byte 3,17,"DASCON",150 + .byte 1,17," ",128 + .byte 3,17," ",128 + .byte 1,16,"LZ4+DISK",128 + .byte 3,17,"QKUMBA",150 + .byte 1,16," ",128 + .byte 3,17," " + .byte 255 + diff --git a/megademo/space_bars.s b/megademo/space_bars.s index 2a3f4c5a..28eca642 100644 --- a/megademo/space_bars.s +++ b/megademo/space_bars.s @@ -67,7 +67,7 @@ space_bars: lda #8 sta DRAW_PAGE - lda #$44 + lda #$00 jsr clear_gr diff --git a/megademo/vapor_lock.s b/megademo/vapor_lock.s index b6bba96a..dfaf8247 100644 --- a/megademo/vapor_lock.s +++ b/megademo/vapor_lock.s @@ -48,15 +48,15 @@ vapor_lock: lda #$dd ldy #40 - jsr clear_page_loop ; make top half grey2 $aa + jsr clear_page_loop ; make bottom half yellow $dd lda #$aa ldy #24 - jsr clear_page_loop ; make top half grey2 $aa + jsr clear_page_loop ; make middle grey2 $aa lda #$ee ldy #10 - jsr clear_page_loop ; make top half grey2 $aa + jsr clear_page_loop ; make top half aqua $ee ; set up a rainbow to aid in exact lock @@ -149,6 +149,11 @@ qloop: ; 6 17 28 39, clock at 40 + + +;btt: +; jmp btt + ; In theory near end of line 104 ; now skip ahead 8 lines and read from the rainbow pattern we set @@ -158,15 +163,32 @@ qloop: ; we back off a few to make sure we're not in the horiz blank ; try to delay 510 - lda #230 ; 2 - jsr delay_a ; delay 25+230 = 255 + ; *NOTE* sometimes we end up going one (or rarely, two??) lines too far + ; so instead try going 7 lines ahead, and if still dd then one more - lda #226 ; 2 - jsr delay_a ; delay 25+226 = 251 + ; so single step until we get a rainbow color + + ; go to next line, -10 + lda #28 ; 2 + jsr delay_a ; delay 25+28 = 53 + ; total delay = 55 + +vl_try_again: + lda #29 ; 2 + jsr delay_a ; delay 25+29 = 54 + ; total delay = 56 + + + + lda $C051 ; 4 + cmp #$dd ; 2 + beq vl_try_again ; 3 + ; -1 ; now near end of line 112 - + ;lda $0 ; nop to match old code ; 3 +; nop ; nop to match old code ; 2 lda $C051 ; 4 ;kbb: diff --git a/space_bars/game.s b/space_bars/game.s index 1776a284..3c8bd771 100644 --- a/space_bars/game.s +++ b/space_bars/game.s @@ -96,7 +96,7 @@ game: lda #8 sta DRAW_PAGE - lda #$44 + lda #$00 jsr clear_gr