diff --git a/megademo/Makefile b/megademo/Makefile index 664f31e7..9c46cf05 100644 --- a/megademo/Makefile +++ b/megademo/Makefile @@ -100,7 +100,7 @@ takeoff.img: takeoff_hgr.png #### sp_names.inc: sp_names.png - $(PNG_TO_RLE) asm ./deater.png sp_names > sp_names.inc + $(PNG_TO_RLE) asm ./sp_names.png sp_names > sp_names.inc #### diff --git a/megademo/SIZE b/megademo/SIZE index 9ba07a10..0c959cff 100644 --- a/megademo/SIZE +++ b/megademo/SIZE @@ -27,6 +27,9 @@ 28989 -- add timeouts to check-email, takeoff, and spacebars 28893 -- convert people names to tengwar 29166 -- add back english names + 29291 -- add starring people english wipe + 30636 -- add in susie scenes + 30380 -- messing with alignment a bit Graphics sizes: (LG lores=300B) diff --git a/megademo/c64_opener.s b/megademo/c64_opener.s index 84e4dcd3..8569cf0f 100644 --- a/megademo/c64_opener.s +++ b/megademo/c64_opener.s @@ -338,7 +338,6 @@ loopcoF:dex ; 2 dey ; 2 bne loopcoE ; 2nt/3 - lda KEYPRESS ; 4 bpl no_c64_keypress ; 3 jmp done_c64 @@ -413,7 +412,7 @@ loopc6b:dex ; 2 jmp c64_done_screen ; 3 -.align $100 +;.align $100 apple2_text: diff --git a/megademo/megademo.s b/megademo/megademo.s index 4fefa913..ea3ceb74 100644 --- a/megademo/megademo.s +++ b/megademo/megademo.s @@ -49,8 +49,8 @@ apple_iie: jsr starring_people jsr setup_people_deater jsr starring_people -; jsr setup_people_lg -; jsr starring_people + jsr setup_people_lg + jsr starring_people ; E-mail arriving jsr check_email @@ -79,16 +79,13 @@ apple_iie: ; Fireworks jsr fireworks + ;================== ; Game over + ;================== + ; we never get here game_over_man: jmp game_over_man - ;=================== - ; Loop Forever - ;=================== -loop_forever: - jmp loop_forever - .include "lz4_decode.s" .include "c64_opener.s" @@ -148,7 +145,8 @@ loop_forever: .include "starring2.inc" .include "fs.inc" .include "deater.inc" -;.include "lg.inc" +.include "lg.inc" +.include "sp_names.inc" ; e-mail .include "email_40_96.inc" @@ -182,9 +180,9 @@ fs_hgr_end: deater_hgr: .incbin "DEATER_HGRC.BIN.lz4",11 deater_hgr_end: -;lg_hgr: -;.incbin "LG_HGRC.BIN.lz4",11 -;lg_hgr_end: +lg_hgr: +.incbin "LG_HGRC.BIN.lz4",11 +lg_hgr_end: ; bird mountain katahdin: diff --git a/megademo/sp_names.png b/megademo/sp_names.png index 301d0ced..7c57f753 100644 Binary files a/megademo/sp_names.png and b/megademo/sp_names.png differ diff --git a/megademo/starring_people.s b/megademo/starring_people.s index 537e0b3d..3a3275e8 100644 --- a/megademo/starring_people.s +++ b/megademo/starring_people.s @@ -18,6 +18,9 @@ starring_people: sta FRAME sta FRAMEH + lda #40 + sta XPOS + ;============================= ; Load graphic hgr @@ -44,34 +47,24 @@ sp_smc4: ;============================= - ; Load graphic page0 + ; Load list of names to PAGE2 lda #$0c sta BASH lda #$00 - sta BASL ; load image to $c00 - - - ; Load overwrite version - lda #fs + lda #>sp_names sta GBASH jsr load_rle_gr lda #4 sta DRAW_PAGE - - jsr gr_copy_to_current ; copy to page1 - - ; GR part - bit PAGE1 - bit LORES ; 4 - bit SET_GR ; 4 - bit FULLGR ; 4 + jsr gr_copy_to_current ; then copy to PAGE2 ;============================= - ; Load graphic page1 + ; Load person image to PAGE1 lda #$0c sta BASH @@ -86,14 +79,9 @@ sp_smc6: sta GBASH jsr load_rle_gr - ;=================== - ; copy to page3 - lda #0 sta DRAW_PAGE - jsr gr_copy_to_current - ; GR part bit PAGE0 @@ -190,9 +178,72 @@ sp_outer_loop: ; -7 exit on timeout ; -10 keypress ; -2 ldy at top + ; -8 pause a bit + ; -32 draw yellow + ; -49 wipe ; =========== - ; 7365 + ; 7276 + lda FRAMEH ; 3 + cmp #15 ; 2 + bcs sp_name_wipe ; bge ; 3 + ; -1 + + lda #52 ; 2 + jsr delay_a ; 25+52 + jmp sp_done_copy ; 3 + +sp_name_wipe: + ;======================= + ; do the name wipe + ;======================= + ; 10 + 22 = 32 + + lda #$dd ; 2 + ldx XPOS ; 3 + dex ; 2 + bmi sp_no_yellow ; 3 + + ;-1 + sta $650,X ; 5 + sta $6d0,X ; 5 + sta $750,X ; 5 + sta $7d0,X ; 5 + jmp sp_done_yellow ; 3 +sp_no_yellow: + dec XPOS + inc XPOS + dec XPOS + inc XPOS + nop +sp_done_yellow: + + ;======================= + ; do the name wipe + ;======================= + ; 6 + 43 + ldx XPOS ; 3 + bmi sp_no_copy ; 3 + + ;-1 +sp_smc8: + lda $800,X ; 4 + sta $650,X ; 5 +sp_smc9: + lda $880,X ; 4 + sta $6d0,X ; 5 +sp_smc10: + lda $900,X ; 4 + sta $750,X ; 5 +sp_smc11: + lda $980,X ; 4 + sta $7d0,X ; 5 + dec XPOS ; 5 + jmp sp_done_copy ; 3 +sp_no_copy: + lda #16 ; 2 + jsr delay_a ; 25+16 +sp_done_copy: ;================ ; wrap counter @@ -221,15 +272,16 @@ sp_wrap_done: ; 7 cycles sp_timeout: lda FRAMEH ; 3 - cmp #80 ; 2 + cmp #75 ; 2 beq sp_done ; 3 ; -1 - ; Try X=18 Y=77 cycles=7393 R2 - ; Try X=104 Y=14 cycles=7365 - ldy #14 ; 2 -sploop1:ldx #104 ; 2 + ; Try X=17 Y=80 cycles=7281 R3 + ; Try X=57 Y=25 cycles=7276 + + ldy #25 ; 2 +sploop1:ldx #57 ; 2 sploop2:dex ; 2 bne sploop2 ; 2nt/3 dey ; 2 @@ -266,6 +318,14 @@ setup_people_fs: lda #>fs sta sp_smc6+1 + lda #$0 + sta sp_smc8+1 + sta sp_smc10+1 + + lda #$80 + sta sp_smc9+1 + sta sp_smc11+1 + rts setup_people_deater: @@ -286,9 +346,17 @@ setup_people_deater: lda #>deater sta sp_smc6+1 + + lda #$28 + sta sp_smc8+1 + sta sp_smc10+1 + + lda #$a8 + sta sp_smc9+1 + sta sp_smc11+1 + rts -.if 0 setup_people_lg: lda #lg sta sp_smc6+1 - rts -.endif + lda #$50 + sta sp_smc8+1 + sta sp_smc10+1 + lda #$d0 + sta sp_smc9+1 + sta sp_smc11+1 + + rts