mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-06-26 00:29:29 +00:00
second: add some scrolling to thumbnail credits
This commit is contained in:
parent
ca71d4aea3
commit
9cbb2f3c25
|
@ -242,6 +242,7 @@ music2.inc: generate_common MUSIC2
|
|||
./generate_common -a 0xd000 -s mockingboard_disable_interrupt music2.lst >> music2.inc
|
||||
./generate_common -a 0xd000 -s done_pt3_irq_handler music2.lst >> music2.inc
|
||||
./generate_common -a 0xd000 -s PT3_LOC music2.lst >> music2.inc
|
||||
./generate_common -a 0xd000 -s current_pattern_smc music2.lst >> music2.inc
|
||||
./generate_common -a 0xd000 -s copy_main_aux music2.lst >> music2.inc
|
||||
./generate_common -a 0xd000 -s copy_aux_main music2.lst >> music2.inc
|
||||
|
||||
|
|
|
@ -71,13 +71,18 @@ DISK II
|
|||
|
||||
- sprite animation of ship
|
||||
|
||||
+ credits
|
||||
+ credits (thumbnail)
|
||||
|
||||
- scroll logos in from right, then out to left
|
||||
- scroll the text in
|
||||
- smoother scroll the text in
|
||||
maybe skip ever other X to avoid palette shift
|
||||
properly come in from off screen
|
||||
use page flipping
|
||||
|
||||
- smoother scrolling. Only need to scroll middle 20 bytes or so?
|
||||
+ final credits
|
||||
- smoother scrolling
|
||||
wait on vblank?
|
||||
use page flipping, alternate scrolling by two?
|
||||
probably doable but don't have time
|
||||
|
||||
+ after-credits
|
||||
RR?
|
||||
|
|
|
@ -15,6 +15,7 @@ CREDITS: credits.o
|
|||
|
||||
credits.o: credits.s vertical_scroll.s ../zx02_optim.s \
|
||||
thumbnail_credits.s \
|
||||
horiz_scroll_simple.s \
|
||||
font_4am_1x8.s font_4am_1x10.s \
|
||||
graphics/summary1_invert.hgr.zx02 \
|
||||
../zp.inc ../hardware.inc ../qload.inc
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
.include "../zp.inc"
|
||||
.include "../hardware.inc"
|
||||
.include "../qload2.inc"
|
||||
.include "../music2.inc"
|
||||
|
||||
mod7_table = $1c00
|
||||
div7_table = $1d00
|
||||
|
@ -20,6 +21,8 @@ intro_start:
|
|||
; initializations
|
||||
;=====================
|
||||
|
||||
bit KEYRESET ; clear just in case
|
||||
|
||||
;===================
|
||||
; Load graphics
|
||||
;===================
|
||||
|
@ -139,6 +142,8 @@ no_update_message:
|
|||
|
||||
.include "thumbnail_credits.s"
|
||||
|
||||
.include "../irq_wait.s"
|
||||
|
||||
|
||||
summary1_data:
|
||||
.incbin "graphics/summary1_invert.hgr.zx02"
|
||||
|
|
142
demos/second/part20_credits/horiz_scroll_simple.s
Normal file
142
demos/second/part20_credits/horiz_scroll_simple.s
Normal file
|
@ -0,0 +1,142 @@
|
|||
;====================================
|
||||
; Note: just does top part of screen
|
||||
;====================================
|
||||
; 16 ... 80
|
||||
; just one step
|
||||
; always scrolls in black
|
||||
|
||||
horiz_scroll_left:
|
||||
|
||||
;scroll_left_loop:
|
||||
;
|
||||
; lda #0
|
||||
; sta COUNT
|
||||
|
||||
scroll_left_outer_outer_loop:
|
||||
|
||||
ldx #80 ; end is 80
|
||||
|
||||
scroll_left_outer_loop:
|
||||
|
||||
lda hposn_high,X
|
||||
clc
|
||||
adc DRAW_PAGE
|
||||
sta hsl_smc1+2
|
||||
sta hsl_smc2+2
|
||||
sta hsl_smc4+2
|
||||
; eor #$60
|
||||
; sta hsl_smc3+2
|
||||
|
||||
lda hposn_low,X
|
||||
sta hsl_smc2+1
|
||||
sta hsl_smc4+1
|
||||
|
||||
sta hsl_smc1+1
|
||||
inc hsl_smc1+1
|
||||
; clc
|
||||
; adc COUNT
|
||||
; sta hsl_smc3+1
|
||||
|
||||
|
||||
ldy #0
|
||||
scroll_left_inner_loop:
|
||||
|
||||
hsl_smc1:
|
||||
lda $2000+1,Y
|
||||
hsl_smc2:
|
||||
sta $2000,Y
|
||||
|
||||
iny
|
||||
cpy #39
|
||||
bne scroll_left_inner_loop
|
||||
|
||||
;hsl_smc3:
|
||||
; lda $4000
|
||||
|
||||
lda #$0 ; always scroll in black
|
||||
hsl_smc4:
|
||||
sta $2000,Y
|
||||
|
||||
dex
|
||||
cpx #15 ; end at 16
|
||||
|
||||
bne scroll_left_outer_loop
|
||||
|
||||
|
||||
; inc COUNT
|
||||
; lda COUNT
|
||||
; cmp #39
|
||||
; bne scroll_left_outer_outer_loop
|
||||
|
||||
rts
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;====================================
|
||||
; Note: just does top part of screen
|
||||
;====================================
|
||||
; 16 ... 80
|
||||
; just one step
|
||||
; always scrolls in black
|
||||
|
||||
horiz_scroll_right:
|
||||
|
||||
;scroll_right_loop:
|
||||
;
|
||||
; lda #0
|
||||
; sta COUNT
|
||||
|
||||
scroll_right_outer_outer_loop:
|
||||
|
||||
ldx #80 ; end is 80
|
||||
|
||||
scroll_right_outer_loop:
|
||||
|
||||
lda hposn_high,X
|
||||
clc
|
||||
adc DRAW_PAGE
|
||||
sta hsr_smc1+2
|
||||
sta hsr_smc2+2
|
||||
sta hsr_smc4+2
|
||||
|
||||
lda hposn_low,X
|
||||
sta hsr_smc1+1
|
||||
sta hsr_smc4+1
|
||||
|
||||
sta hsr_smc2+1
|
||||
inc hsr_smc2+1
|
||||
|
||||
|
||||
ldy #38
|
||||
scroll_right_inner_loop:
|
||||
|
||||
hsr_smc1:
|
||||
lda $2000,Y
|
||||
hsr_smc2:
|
||||
sta $2000+1,Y
|
||||
|
||||
dey
|
||||
bpl scroll_right_inner_loop
|
||||
|
||||
lda #$0 ; always scroll in black
|
||||
iny
|
||||
hsr_smc4:
|
||||
sta $2000,Y
|
||||
|
||||
dex
|
||||
cpx #15 ; end at 16
|
||||
|
||||
bne scroll_right_outer_loop
|
||||
|
||||
|
||||
; inc COUNT
|
||||
; lda COUNT
|
||||
; cmp #39
|
||||
; bne scroll_right_outer_outer_loop
|
||||
|
||||
rts
|
||||
|
|
@ -42,8 +42,8 @@ thumbnail_credits:
|
|||
|
||||
credits_logo_outer_outer:
|
||||
|
||||
lda #200 ; 4 seconds? actual is 5ish
|
||||
sta IRQ_COUNTDOWN
|
||||
; lda #200 ; 4 seconds? actual is 5ish
|
||||
; sta IRQ_COUNTDOWN
|
||||
|
||||
lda DRAW_PAGE
|
||||
and #$20
|
||||
|
@ -85,10 +85,12 @@ cloo_write_text:
|
|||
tax
|
||||
pla
|
||||
|
||||
;========================
|
||||
;========================
|
||||
; draw the thumbnail
|
||||
; TODO: scroll it in
|
||||
|
||||
;========================
|
||||
;========================
|
||||
|
||||
ldx COUNT ; patch the source offsets
|
||||
lda logo_x_offsets,X
|
||||
|
@ -101,15 +103,15 @@ credits_logo_outer:
|
|||
|
||||
; setup output pointer
|
||||
|
||||
lda hposn_low+16,X ; adjust X
|
||||
lda hposn_low+16,X ; adjust Y position
|
||||
clc
|
||||
adc #15 ; center on screen
|
||||
adc #0 ; (was 15 to center on screen)
|
||||
sta OUTL
|
||||
|
||||
; setup high
|
||||
|
||||
clc
|
||||
lda hposn_high+16,X
|
||||
lda hposn_high+16,X ; adjust Y position
|
||||
adc DRAW_PAGE
|
||||
sta OUTH
|
||||
|
||||
|
@ -159,15 +161,67 @@ cloo_disp_page1:
|
|||
|
||||
cloo_done_flip:
|
||||
|
||||
; done drawing...
|
||||
|
||||
;======================================
|
||||
; scroll it right
|
||||
;======================================
|
||||
|
||||
lda DRAW_PAGE
|
||||
eor #$20
|
||||
sta DRAW_PAGE ; do it on visible page
|
||||
|
||||
lda #0
|
||||
sta SCROLL_X
|
||||
|
||||
scroll_right_loop:
|
||||
jsr horiz_scroll_right
|
||||
|
||||
; sleep?
|
||||
|
||||
inc SCROLL_X
|
||||
lda SCROLL_X
|
||||
cmp #15
|
||||
bne scroll_right_loop
|
||||
|
||||
;======================================
|
||||
; pause a bit
|
||||
;======================================
|
||||
|
||||
lda #3
|
||||
jsr wait_seconds
|
||||
|
||||
;======================================
|
||||
; scroll it left
|
||||
;======================================
|
||||
|
||||
lda #0
|
||||
sta SCROLL_X
|
||||
scroll_left_loop:
|
||||
jsr horiz_scroll_left
|
||||
|
||||
; sleep?
|
||||
|
||||
inc SCROLL_X
|
||||
lda SCROLL_X
|
||||
cmp #25
|
||||
bne scroll_left_loop
|
||||
|
||||
|
||||
; flip back to off-screen
|
||||
lda DRAW_PAGE
|
||||
eor #$20
|
||||
sta DRAW_PAGE
|
||||
|
||||
;======================================
|
||||
; wait until IRQ countdown or keypress
|
||||
;======================================
|
||||
;cloo_check_again:
|
||||
; lda KEYPRESS
|
||||
; bmi cloo_check_done
|
||||
|
||||
cloo_check_again:
|
||||
lda KEYPRESS
|
||||
bmi cloo_check_done
|
||||
|
||||
lda IRQ_COUNTDOWN
|
||||
bne cloo_check_again
|
||||
; lda IRQ_COUNTDOWN
|
||||
; bne cloo_check_again
|
||||
|
||||
cloo_check_done:
|
||||
bit KEYRESET
|
||||
|
@ -198,6 +252,9 @@ done_credits_logo:
|
|||
rts
|
||||
|
||||
|
||||
.include "horiz_scroll_simple.s"
|
||||
|
||||
|
||||
logo_y_offsets:
|
||||
.byte 0,0,0,0
|
||||
.byte 64,64,64,64
|
||||
|
|
|
@ -184,6 +184,9 @@ SCALE_I = $F8
|
|||
SCALE_F = $F9
|
||||
ANGLE = $FA
|
||||
|
||||
; credits
|
||||
SCROLL_X = $F0
|
||||
|
||||
;==============================================
|
||||
; $FC-$FF we use for in/out pointers
|
||||
;==============================================
|
||||
|
|
Loading…
Reference in New Issue
Block a user