ootw: credits: working a bit better

This commit is contained in:
Vince Weaver 2021-04-18 14:48:26 -04:00
parent 9b1be9508c
commit 283784c94a
2 changed files with 99 additions and 65 deletions

View File

@ -7,12 +7,6 @@ end_credits:
lda KEYRESET
bit SET_TEXT ; switch to text mode
; 0@24
; 0@23,1@24
; 0@22,1@23,2@24...
; 0@0...
; clear to space
lda #$a0
@ -21,17 +15,37 @@ end_credits:
; X is starting YPOS to print at
ldx #46
ldx #48
stx YPOS
scroll_loop:
; jsr HOME
jsr clear_all ; trashes A,Y
ldy #0
stx XPOS ; X is YPOS to print at
ldy #0 ; credit offset
ldx YPOS
print_loop:
cpx #48
bcs after_print
cpy #48
bcs after_print
; write next line
;============================
; set BASL/BASH to offset w Y
lda gr_offsets,X
sta BASL
lda gr_offsets+1,X
clc
adc DRAW_PAGE
sta BASH
; get credit line
lda credit_list,Y
sta OUTL
lda credit_list+1,Y
@ -40,60 +54,46 @@ print_loop:
tya
pha
ldy XPOS ; YPOS on screen
;============================
; set BASL/BASH to offset w Y
lda gr_offsets,Y
sta BASL
lda gr_offsets+1,Y
clc
adc DRAW_PAGE
sta BASH
;============================
; print the string
jsr print_string
jsr print_string ; trashes Y
pla
tay
iny ; move to next line
after_print:
inx
inx
iny
iny
inc XPOS
inc XPOS
lda XPOS
cmp #48 ; if off screen, don't print
cpx #48 ; if off screen, don't print
bne print_loop
;====================
; done printing
jsr page_flip ; flip to page
jsr page_flip ; flip page
;====================
; delay a bit
;====================
; 400ms normally
; if credits on screen, wait much longer
txa
pha
ldx YPOS
cpx #0
beq credits_long_pause
credits_short_pause:
ldx #40 ; time to sleep (X*10ms)
jsr long_wait ; trashes A,X
pla
tax
jmp credits_done_pause
;===================
; scroll
dex
dex
bpl scroll_loop
;============================================
credits_long_pause:
; actual games pauses 10s, then scrolls again
;============================================
; delay 6s?
ldx #200
@ -105,15 +105,43 @@ print_loop:
ldx #200
jsr long_wait
jsr HOME
credits_done_pause:
bit KEYRESET
;===================
; scroll
dec YPOS
dec YPOS
lda YPOS
cmp #256-48 ; scroll until all off screen
bne scroll_loop
;============================================
; actual games pauses 10s, then scrolls again
;============================================
; delay 6s?
; ldx #200
; jsr long_wait
; ldx #200
; jsr long_wait
; ldx #200
; jsr long_wait
; jsr HOME
bit KEYRESET
;======================
; print end message
; print final message
;======================
lda #0
sta DRAW_PAGE
jsr clear_all
lda #<end_message
sta OUTL
@ -122,6 +150,8 @@ print_loop:
jsr move_and_print
jsr page_flip
rts
@ -143,18 +173,18 @@ print_loop:
credits0:.byte "",0
credits1:.byte " DESIGNED BY ..... ERIC CHAHI",0
credits2:.byte "",0
;credits2:.byte "",0
credits3:.byte " ARTWORK ......... ERIC CHAHI",0
credits4:.byte "",0
;credits4:.byte "",0
credits5:.byte " MUSIC BY ........ JEAN-FRANCOIS FREITAS",0
credits6:.byte "",0
;credits6:.byte "",0
credits7:.byte " SOUND EFFECTS",0
credits8:.byte " JEAN-FRANCOIS FREITAS",0
credits9:.byte " ERIC CHAHI",0
credits10:.byte "",0
;credits10:.byte "",0
credits11:.byte " APPLE II+ PORT",0
credits12:.byte " VINCE WEAVER",0
credits13:.byte "",0
credits12:.byte " VINCE 'DEATER' WEAVER",0
;credits13:.byte "",0
credits14:.byte " APPLE ][ FOREVER",0
credit_list:
@ -162,28 +192,27 @@ credit_list:
.word credits0 ; 1
.word credits0 ; 2
.word credits1 ; 3
.word credits2 ; 4
.word credits0 ; 4
.word credits3 ; 5
.word credits4 ; 6
.word credits0 ; 6
.word credits5 ; 7
.word credits6 ; 8
.word credits0 ; 8
.word credits0 ; 9
.word credits7 ; 10
.word credits8 ; 11
.word credits9 ; 12
.word credits10 ; 13
.word credits0 ; 13
.word credits11 ; 14
.word credits12 ; 16
.word credits0 ; 15
.word credits0 ; 18
.word credits13 ; 17
.word credits0 ; 17
.word credits14 ; 19
.word credits0 ; 20
.word credits0 ; 21
.word credits0 ; 22
.word credits0 ; 23
end_message:
.byte 6,10,"NOW GO BACK TO ANOTHER EARTH",0

View File

@ -10,6 +10,15 @@
ending:
; temporary debug
lda #4
sta DRAW_PAGE
lda #0
sta DISP_PAGE
jmp handle_credits
;=========================
; set up sound
;=========================
@ -132,10 +141,7 @@ cli_smc:
; credits
;===========================
;quit_level:
; jsr TEXT
; jsr HOME
; lda KEYRESET ; clear strobe
handle_credits:
;======================
; scroll credits
@ -167,7 +173,6 @@ sei_smc:
; jmp repeat_ending
;======================
; wait until keypressed
;======================