peasant: more work on ending

have music play again
also third part of trogdor speech
This commit is contained in:
Vince Weaver 2021-12-16 23:38:16 -05:00
parent de6d626990
commit ab923d0871
4 changed files with 341 additions and 11 deletions

View File

@ -29,26 +29,41 @@ ending:
;=====================
; re-start music
;=====================
; need to un-do any patching
; reset to beginning of song
; and start interrupts
; only if mockingboard enabled
lda SOUND_STATUS
and #SOUND_MOCKINGBOARD
beq skip_end_music
; re-load intro theme from disk
lda $C083
lda $C083
; actually load it
lda #LOAD_MUSIC
sta WHICH_LOAD
jsr load_file
lda #0
sta DONE_PLAYING
lda #1
sta LOOP
jsr mockingboard_init
jsr reset_ay_both
jsr mockingboard_setup_interrupt
lda #$09 ; don't end after 4
sta PT3_LOC+$C9+$4
; lda #$09 ; don't end after 4
; sta PT3_LOC+$C9+$4
; 2??
lda #$3 ; set LOOP to 2
sta PT3_LOC+$66
; lda #$3 ; set LOOP to 2
; sta PT3_LOC+$66
jsr pt3_init_song
@ -534,8 +549,18 @@ final_screen:
jsr wait_until_keypress
game_over:
; stop music
lda SOUND_STATUS
and #SOUND_MOCKINGBOARD
beq stuck_forever
jmp boat
sei
jsr clear_ay_both
stuck_forever:
jmp stuck_forever

View File

@ -17,7 +17,7 @@ parse_input_file_begin:
parse_input:
;===========================
; speacial case: pot on head
; special case: pot on head
lda GAME_STATE_1
and #POT_ON_HEAD

View File

@ -241,9 +241,9 @@ awake_talk_trogdor:
ldy #>trogdor_surprised_message
jsr finish_parse_message_nowait
lda #<trogdor_honestly
lda #<trogdor_surprised
sta SPEECH_PTRL
lda #>trogdor_honestly
lda #>trogdor_surprised
sta SPEECH_PTRH
jsr trogdor_talks
@ -438,6 +438,9 @@ game_over:
; go to end credits
lda #NEW_FROM_DISK
sta LEVEL_OVER
lda #LOAD_ENDING
sta WHICH_LOAD

View File

@ -338,3 +338,305 @@ trogdor_sup:
.byte PHONEME_PAUSE ; PA
.byte $FF
; "Yeah, I can't be killed."
; "I'm surprised nobody"
; "mentioned that to you. I'll"
; "admit though, you've"
; "gotten farther than"
; "anybody else ever has. I"
; "bet they'll make a statue"
; "or something in honor of"
; "you somewheres."
trogdor_surprised:
.byte PHONEME_Y ; Y Yeah,
.byte PHONEME_A ; AH
.byte PHONEME_UH ; EH
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA ,
.byte PHONEME_AH1 ; AH1 ; I
.byte PHONEME_Y ; Y
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_K ; K ; can't
.byte PHONEME_AE1 ; AE1
.byte PHONEME_EH1 ; EH3
.byte PHONEME_N ; N
.byte PHONEME_T ; T
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_B ; B ; be
.byte PHONEME_E1 ; E1
.byte PHONEME_Y ; Y
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_K ; K ; killed
.byte PHONEME_I ; I
.byte PHONEME_L ; L
.byte PHONEME_D ; D
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA .
.byte PHONEME_AH1 ; AH1 ; I'm
.byte PHONEME_Y ; Y
.byte PHONEME_Y ; M
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_S ; S surprised
.byte PHONEME_UH1 ; UH1
.byte PHONEME_UH2 ; UH2
.byte PHONEME_P ; P
.byte PHONEME_R ; R
.byte PHONEME_AH1 ; AH3
.byte PHONEME_EH1 ; EH3
.byte PHONEME_Z ; Z
.byte PHONEME_D ; D
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_N ; N nobody
.byte PHONEME_OO ; OO1
.byte PHONEME_OU ; O1
.byte PHONEME_B ; B
.byte PHONEME_UH1 ; UH1
.byte PHONEME_D ; D
.byte PHONEME_Y ; Y
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_M ; M mentioned
.byte PHONEME_EH ; EH1
.byte PHONEME_EH1 ; EH3
.byte PHONEME_N ; N
.byte PHONEME_SCH ; SCH
.byte PHONEME_UH1 ; UH1
.byte PHONEME_N ; N
.byte PHONEME_D ; D
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_THV ; THV ; that
.byte PHONEME_AE1 ; AE1
.byte PHONEME_EH ; EH3
.byte PHONEME_T ; T
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_T ; T ; to
.byte PHONEME_IU ; IU
.byte PHONEME_U1 ; U1
.byte PHONEME_U1 ; U1
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_Y ; Y ; you
.byte PHONEME_IU ; IU
.byte PHONEME_U1 ; U1
.byte PHONEME_U1 ; U1
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA ; .
.byte PHONEME_PAUSE ; PA ; .
.byte PHONEME_AH1 ; AH1 ; I'll
.byte PHONEME_Y ; Y
.byte PHONEME_UH ; UH
.byte PHONEME_L ; L
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_AE1 ; AE1 ; admit
.byte PHONEME_EH ; EH3
.byte PHONEME_D ; D
.byte PHONEME_M ; M
.byte PHONEME_I ; I
.byte PHONEME_T ; T
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_AE1 ; TH ; though
; .byte PHONEME_OO ; OO1
.byte PHONEME_OU ; O1
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA ; ,
.byte PHONEME_Y ; Y ; you've
.byte PHONEME_IU ; IU
.byte PHONEME_U1 ; U1
.byte PHONEME_U1 ; U1
.byte PHONEME_V ; V
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_KV ; KV ; gotten
.byte PHONEME_AH ; AH1
.byte PHONEME_T ; T
.byte PHONEME_EH ; EH
.byte PHONEME_N ; N
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_F ; F ; farther
.byte PHONEME_AH ; AH1
.byte PHONEME_UH3 ; UH3
.byte PHONEME_R ; R
.byte PHONEME_TH ; TH
.byte PHONEME_ER ; ER
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_TH ; TH ; than
.byte PHONEME_EH1 ; EH1
; .byte PHONEME_EH3 ; EH3
.byte PHONEME_N ; N
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_EH ; EH2 ; anybody
.byte PHONEME_EH ; EH2
.byte PHONEME_N ; N
.byte PHONEME_Y ; Y
.byte PHONEME_B ; B
.byte PHONEME_AH1 ; AH1
.byte PHONEME_D ; D
.byte PHONEME_Y ; Y
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_EH1 ; EH1 ; else
.byte PHONEME_EH ; EH2
.byte PHONEME_L ; L
.byte PHONEME_S ; S
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_EH1 ; EH1 ; ever
.byte PHONEME_V ; V
.byte PHONEME_EH1 ; EH1
.byte PHONEME_R ; R
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_HF ; H ; has
.byte PHONEME_AE1 ; AE1
.byte PHONEME_EH ; EH3
.byte PHONEME_Z ; Z
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA ; .
.byte PHONEME_AH1 ; AH1 ; I
.byte PHONEME_Y ; Y
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_B ; B ; bet
.byte PHONEME_EH1 ; EH1
.byte PHONEME_EH ; EH3
.byte PHONEME_T ; T
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_TH ; TH ; they'll
.byte PHONEME_AI ; AI
.byte PHONEME_Y ; Y
.byte PHONEME_L ; L
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_M ; M ; make
.byte PHONEME_AI ; AI
.byte PHONEME_K ; K
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_UH ; UH ; a
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_S ; S ; statue
.byte PHONEME_T ; T
.byte PHONEME_AE1 ; AE1
.byte PHONEME_T ; T
.byte PHONEME_SCH ; SCH
.byte PHONEME_IU ; IU
.byte PHONEME_U1 ; U1
.byte PHONEME_U1 ; U1
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_UH ; O1 ; or
.byte PHONEME_R ; R
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_S ; S ; something
.byte PHONEME_UH1 ; UH1
.byte PHONEME_UH2 ; UH2
.byte PHONEME_M ; M
.byte PHONEME_TH ; TH
.byte PHONEME_I ; I
.byte PHONEME_NG ; NG
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_I ; I1 ; in
.byte PHONEME_N ; N
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_AH ; AH ; honor
.byte PHONEME_N ; N
.byte PHONEME_UH ; O1
.byte PHONEME_R ; R
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_UH1 ; UH1 ; of
.byte PHONEME_UH3 ; UH3
.byte PHONEME_V ; V
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_Y ; Y ; you
.byte PHONEME_IU ; IU
.byte PHONEME_U1 ; U1
.byte PHONEME_U1 ; U1
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_S ; S ; somewheres
.byte PHONEME_UH1 ; UH1
.byte PHONEME_UH2 ; UH2
.byte PHONEME_M ; M
.byte PHONEME_W ; W
.byte PHONEME_EH ; EH3
.byte PHONEME_A ; A2
.byte PHONEME_EH ; EH3
.byte PHONEME_R ; R
.byte PHONEME_Z ; Z
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA
.byte PHONEME_PAUSE ; PA .
.byte $FF