diff --git a/ootw/TODO b/ootw/TODO index 6047ca1e..70074cc1 100644 --- a/ootw/TODO +++ b/ootw/TODO @@ -1,5 +1,8 @@ TODO: +general: ++ move gr_make_quake out of gr_copy + movement -- note these are hard due to limitations of the Apple II keyboard + ability to run + ability to jump diff --git a/ootw/gr_copy.s b/ootw/gr_copy.s index 391c5045..72e229b8 100644 --- a/ootw/gr_copy.s +++ b/ootw/gr_copy.s @@ -116,6 +116,47 @@ gr_copy_line_40: + ;========================================================= + ; gr_copy_to_current_40x40 + ;========================================================= + ; Take image in 0xc00 + ; Copy to DRAW_PAGE + ; Actually copy lines 0..39 + ; Don't over-write bottom 4 lines of text +gr_copy_to_current_40x40: + + ldx #0 +gc_40x40_loop: + lda gr_offsets,x + sta OUTL + sta INL + lda gr_offsets+1,x + clc + adc DRAW_PAGE + sta OUTH + + lda gr_offsets+1,x + clc + adc #$8 + sta INH + + ldy #39 +gc_40x40_inner: + lda (INL),Y + sta (OUTL),Y + + dey + bpl gc_40x40_inner + + inx + inx + + cpx #40 + bne gc_40x40_loop + + rts ; 6 + + ;========================================================= ; gr_make_quake ;========================================================= diff --git a/ootw/gr_overlay.s b/ootw/gr_overlay.s index 87393806..128fc941 100644 --- a/ootw/gr_overlay.s +++ b/ootw/gr_overlay.s @@ -1,3 +1,21 @@ + ;========================================================= + ; gr_overlay, 40x40 version + ;========================================================= + ; copy 0xc00 to DRAW_PAGE + ; then overlay with 0x1000, treating 0xa as transparent + +gr_overlay_40x40: + jsr gr_copy_to_current_40x40 + +gr_overlay_40x40_noload: + lda #40 + sta CH ; xsize is in CH ; 3 + lda #38 + sta CV ; ysize is in CV ; 3 + + jmp gr_overlay_custom + + ;========================================================= ; gr_overlay, 40x48 version ;========================================================= @@ -9,12 +27,16 @@ gr_overlay: gr_overlay_noload: - ldy #0 + lda #40 sta CH ; xsize is in CH ; 3 lda #46 sta CV ; ysize is in CV ; 3 +gr_overlay_custom: + + ldy #0 + gr_overlay_loop: ldy CV ; 3 @@ -101,15 +123,3 @@ gr_overlay_done_draw: rts ; return ; 6 - - - - - - - - - - - - diff --git a/ootw/intro.s b/ootw/intro.s index 65950e8f..b0964e6b 100644 --- a/ootw/intro.s +++ b/ootw/intro.s @@ -674,9 +674,11 @@ scanner: jsr clear_bottom bit TEXTGR ; split graphics/text - jsr gr_copy_to_current + jsr gr_copy_to_current_40x40 jsr page_flip + jsr clear_bottom + ; Identification (nothing) @@ -1202,7 +1204,7 @@ run_sequence_done: ;================================= ; Display a sequence of images - ; with static overlay + ; with /-|/ static overlay run_sequence_static: ldy #0 ; init @@ -1231,7 +1233,7 @@ static_loop: lda #$10 ; load to $1000 jsr load_rle_gr - jsr gr_overlay + jsr gr_overlay_40x40 ldy STATIC_LOOPER lda static_pattern,Y @@ -1242,10 +1244,10 @@ static_loop: lda #$10 ; load to $1000 jsr load_rle_gr - jsr gr_overlay_noload - + ; force 40x40 overlay + jsr gr_overlay_40x40_noload jsr page_flip