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

View File

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