diff --git a/games/mist_hgr/Makefile b/games/mist_hgr/Makefile index f7468540..40cd9f0d 100644 --- a/games/mist_hgr/Makefile +++ b/games/mist_hgr/Makefile @@ -183,6 +183,7 @@ mist_title.o: mist_title.s \ gr_offsets.s end_level.s \ draw_pointer.s text_print.s gr_fast_clear.s decompress_fast_v2.s \ keyboard.s audio.s \ + ssi263_detect.s ssi263_simple_speech.s title_speech.s \ init_state.s wait_a_bit.s \ link_book_mist_dock.s common_sprites.inc leveldata_title.inc \ pt3_lib_core.s pt3_lib_init.s pt3_lib_mockingboard_detect.s \ diff --git a/games/mist_hgr/mist_title.s b/games/mist_hgr/mist_title.s index c6685bca..4cd48d6b 100644 --- a/games/mist_hgr/mist_title.s +++ b/games/mist_hgr/mist_title.s @@ -161,12 +161,32 @@ mockingboard_found: sta $7d0+31 ; 23,31 - jsr mockingboard_patch ; patch to work in slots other than 4? - lda SOUND_STATUS ora #SOUND_MOCKINGBOARD sta SOUND_STATUS + ;=========================== + ; detect SSI-263 too + ;=========================== +detect_ssi: + lda MB_ADDR_H + and #$87 ; slot + jsr detect_ssi263 + + lda irq_count + beq ssi_not_found + + lda #'Y'+$80 + sta $7d0+39 ; 23,39 + + lda #SOUND_SSI263 + ora SOUND_STATUS + sta SOUND_STATUS + +ssi_not_found: + + jsr mockingboard_patch ; patch to work in slots other than 4? + ;======================= ; Set up 50Hz interrupt ;======================== @@ -297,7 +317,8 @@ cyan_title_mb: lda #$FE jsr draw_and_wait - sei ; disable music + jsr mockingboard_disable_interrupt ; disable music + jsr clear_ay_both jmp cyan_title_done @@ -356,6 +377,22 @@ cyan_title_done: ; touch linking book as fissure pulses (says "Fissure") +fissure_speech: + lda SOUND_STATUS + and #SOUND_SSI263 + beq fissure_no_speech + + lda ssi263_slot + jsr ssi263_speech_init + + lda #myst_fissure + sta SPEECH_PTRH + + jsr ssi263_speak +fissure_no_speech: + ldx #fissure_stars_lzsa lda #10 @@ -398,6 +435,19 @@ cyan_title_done: ; "EXPANSE OF WHICH I HAD ONLY A",0 ; "FLEETING GLIMPSE.",0 +starry_speech: + lda SOUND_STATUS + and #SOUND_SSI263 + beq starry_no_speech + + lda #myst_starry + sta SPEECH_PTRH + + jsr ssi263_speak +starry_no_speech: + jsr clear_bottom ldx #myst_speculate + sta SPEECH_PTRH + + jsr ssi263_speak +speculate_no_speech: + jsr clear_bottom ldx #myst_unsettling + sta SPEECH_PTRH + + jsr ssi263_speak +unsettling_no_speech: + + jsr clear_bottom ldx #myst_allayed + sta SPEECH_PTRH + + jsr ssi263_speak +allayed_no_speech: + jsr clear_bottom @@ -534,6 +624,20 @@ cyan_title_done: ; BOOK_AIR : The ending... ;=================================== +written_speech: + lda SOUND_STATUS + and #SOUND_SSI263 + beq written_no_speech + + lda #myst_written + sta SPEECH_PTRH + + jsr ssi263_speak +written_no_speech: + + ldx #book_ground_stars_lzsa lda #1 @@ -652,7 +756,7 @@ game_loop: ; copy background to current page ;==================================== -; jsr gr_copy_to_current +; jsr gr_copyg_to_current ;==================================== ; handle special-case forground logic @@ -786,7 +890,11 @@ really_exit: .include "interrupt_handler.s" .include "pt3_lib_mockingboard_detect.s" - + ; ssi-263 code + .include "ssi263.inc" + .include "ssi263_simple_speech.s" + .include "ssi263_detect.s" + .include "title_speech.s" .include "wait_a_bit.s" @@ -858,6 +966,12 @@ get_mist_book: jsr decompress_lzsa2_fast + ; re-enable interrupts as SSI code probably broke things + + jsr mockingboard_init + jsr reset_ay_both + jsr mockingboard_setup_interrupt + jsr pt3_init_song cli diff --git a/games/mist_hgr/pt3_lib_mockingboard_setup.s b/games/mist_hgr/pt3_lib_mockingboard_setup.s index 2f00bc4a..89a4cac0 100644 --- a/games/mist_hgr/pt3_lib_mockingboard_setup.s +++ b/games/mist_hgr/pt3_lib_mockingboard_setup.s @@ -275,3 +275,22 @@ setup_irq_smc6: ; clear interrupt and start counting rts + + + + ;============================= + ; Disable Interrupt + ;============================= +mockingboard_disable_interrupt: + + sei ; disable interrupts just in case + + lda #$40 ; Continuous interrupts, don't touch PB7 +disable_irq_smc1: + sta MOCK_6522_ACR ; ACR register + lda #$7F ; clear all interrupt flags +disable_irq_smc2: + sta MOCK_6522_IER ; IER register (interrupt enable) + + rts + diff --git a/games/mist_hgr/ssi263.inc b/games/mist_hgr/ssi263.inc new file mode 100644 index 00000000..ca27f35c --- /dev/null +++ b/games/mist_hgr/ssi263.inc @@ -0,0 +1,100 @@ +;SPEECH_PTRL = $FE +;SPEECH_PTRH = $FF + +SSI263_BASE = $40 ; First speech chip +SSI263_DRP = SSI263_BASE+$00 ; Reg0, Duration/Phoneme +SSI263_I = SSI263_BASE+$01 ; Reg1, Inflection +SSI263_RI = SSI263_BASE+$02 ; Reg2, Rate/Inflection +SSI263_CAA = SSI263_BASE+$03 ; Reg3, Control/Articulation/Amplitude +SSI263_F = SSI263_BASE+$04 ; Reg4, Filter Frequency +VIA6522_DDRB1 = $02 ; 6522 Data direction port B register +VIA6522_DDRA1 = $03 ; 6522 Data direction port A register +VIA6522_PCR2 = $8C ; 6522 #2 Peripheral control register +VIA6522_IFR2 = $8D ; 6522 #2 Interrupt flag register +VIA6522_IER2 = $8E ; 6522 #2 Interrupt enable register + +VIA6522_IFR2_CA1 = $02 + +VIA6522_IER2_SET = $80 +VIA6522_IER2_CA1 = $02 + +VIA6522_PCR2_CA2_LOW = $0C +VIA6522_PCR2_CA2_HI = $0E + +VIA6522_PCR2_CA1_NEG = $00 +VIA6522_PCR2_CA1_POS = $01 + + +SSI263_CAA_CTL = $80 ; control bit + +SSI263_DRP_TRANSITIONED_INFLECTION = $C0 +SSI263_DRP_PHONEME_TIMING_IMMEDIATE_INFLECTION = $80 +SSI263_DRP_FRAME_TIMING_IMMEDIATE_INFLECTION = $40 +SSI263_DRP_DISABLE_AR = $00 + +DURATION_LONG = $00 + +PHONEME_PAUSE = $00 ; Pause +PHONEME_E = $01 ; mEEt +PHONEME_E1 = $02 ; bEnt +PHONEME_Y = $03 ; bEfore +PHONEME_YI = $04 ; Year +PHONEME_AY = $05 ; plEAse +PHONEME_IE = $06 ; anY +PHONEME_I = $07 ; sIx +PHONEME_A = $08 ; mAde +PHONEME_AI = $09 ; cAre +PHONEME_EH = $0A ; nEst +PHONEME_EH1 = $0B ; bElt +PHONEME_AE = $0C ; dAd +PHONEME_AE1 = $0D ; After +PHONEME_AH = $0E ; gOt +PHONEME_AH1 = $0F ; fAther +PHONEME_AW = $10 ; Office +PHONEME_O = $11 ; stOre +PHONEME_OU = $12 ; bOAt +PHONEME_OO = $13 ; lOOk +PHONEME_IU = $14 ; yOU +PHONEME_IU1 = $15 ; cOUld +PHONEME_U = $16 ; tUne +PHONEME_U1 = $17 ; cartOOn +PHONEME_UH = $18 ; wOnder +PHONEME_UH1 = $19 ; lOve +PHONEME_UH2 = $1A ; whAt +PHONEME_UH3 = $1B ; nUt +PHONEME_ER = $1C ; bIRd +PHONEME_R = $1D ; Roof +PHONEME_R1 = $1E ; Rug +PHONEME_R2 = $1F ; muetteR (German) +PHONEME_L = $20 ; Lift +PHONEME_L1 = $21 ; pLay +PHONEME_LF = $22 ; falL (final) +PHONEME_W = $23 ; Water +PHONEME_B = $24 ; Bag +PHONEME_D = $25 ; paiD +PHONEME_KV = $26 ; taG (glottal stop) +PHONEME_P = $27 ; Pen +PHONEME_T = $28 ; Tart +PHONEME_K = $29 ; Kit +PHONEME_HV = $2A ; (hold vocal) +PHONEME_HVC = $2B ; (hold vocal closure) +PHONEME_HF = $2C ; Heart +PHONEME_HFC = $2D ; (hold frictive closure) +PHONEME_HN = $2E ; (hold nasal) +PHONEME_Z = $2F ; Zero +PHONEME_S = $30 ; Same +PHONEME_J = $31 ; meaSure +PHONEME_SCH = $32 ; SHip +PHONEME_V = $33 ; Very +PHONEME_F = $34 ; Four +PHONEME_THV = $35 ; THere +PHONEME_TH = $36 ; wiTH +PHONEME_M = $37 ; More +PHONEME_N = $38 ; NiNe +PHONEME_NG = $39 ; raNG +PHONEME_CA = $3A ; mAerchen (German) +PHONEME_COH = $3B ; lOwe (French) +PHONEME_CU = $3C ; fUenf (German) +PHONEME_CUH = $3D ; menU (French) +PHONEME_E2 = $3E ; bittE (German) +PHONEME_LB = $3F ; Lube diff --git a/games/mist_hgr/ssi263_detect.s b/games/mist_hgr/ssi263_detect.s new file mode 100644 index 00000000..8cb0eae2 --- /dev/null +++ b/games/mist_hgr/ssi263_detect.s @@ -0,0 +1,137 @@ +; This code detects a SSI263 chip on a Mockingboard +; it does this by trying to enable the chip and waiting for +; the SSI-263 to signal an interrupt when done. +; If the interrupt never comes then assume no SSI-263 is present +; The code assumes the SSI-263 is hooked to VIA6522 #2 (?) + + ;============================= + ;============================= + ; detect SSI263 + ;============================= + ;============================= + ; A = slot of mockingboard + +detect_ssi263: + sta ssi263_slot ; store for later + + and #$7 + ora #$c0 ; turn slot number into address + sta ssid_wc_smc1+2 ; update the read/write routines + + sei ; disable IRQ + + lda $3fe ; backup the IRQ handler + sta irq1backup + lda $3ff + sta irq2backup + + lda #mb_irq + sta $3ff + + ; Set 6522#2 peripheral control register to recognize the signal + ; from the speech chip. + lda #(VIA6522_PCR2_CA2_LOW|VIA6522_PCR2_CA1_NEG) + ldx #VIA6522_PCR2 + jsr ssi263_d_write_chip + + ; Raise control bit in register 3 of SSI-263 + lda #SSI263_CAA_CTL + ldx #SSI263_CAA + jsr ssi263_d_write_chip + + ; Transitioned inflection (when CTL is toggled) + lda #SSI263_DRP_TRANSITIONED_INFLECTION + ldx #SSI263_DRP + jsr ssi263_d_write_chip + + ; Lower control bit in SSI-263 + lda #$70 ; CTL=0, T=6, AMP=0 + ldx #SSI263_CAA + jsr ssi263_d_write_chip + + ; Enable 6522 interrupt on input CA2 + lda #(VIA6522_IER2_SET|VIA6522_IER2_CA1) + ldx #VIA6522_IER2 + jsr ssi263_d_write_chip + + ldx #0 ; clear counts + ldy #0 + + cli ; enable interrupts + +wait_irq: + lda irq_count ; see if irq happened + + bne got_irq + + iny ; otherwise increase counts + bne wait_irq + inx ; + bne wait_irq + +got_irq: + sei ; disable interrupts + + rts + + + ;======================== + ; detection IRQ handler + ;======================== +mb_irq: + txa ; save X + pha + + ; Clear the 6522 interrupt flag + lda #VIA6522_IFR2_CA1 + ldx #VIA6522_IFR2 + jsr ssi263_d_write_chip + + ; disable speech + + ; Raise control bit in register 3 of SSI-263 + lda #SSI263_CAA_CTL + ldx #SSI263_CAA + jsr ssi263_d_write_chip + + ; Disable talking on SSI-263 (when CTL is toggled) + lda #SSI263_DRP_DISABLE_AR + ldx #SSI263_DRP + jsr ssi263_d_write_chip + + ; Lower control bit in SSI-263 + lda #$70 ; also T=7? + ldx #SSI263_CAA + jsr ssi263_d_write_chip + + ; increment our irq count + + inc irq_count + + ; Disable 6522 interrupts + lda #VIA6522_IER2_CA1 + ldx #VIA6522_IER2 + jsr ssi263_d_write_chip + + pla ; restore X + tax + + lda $45 ; restore accumulator + + rti ; return from interrupt + + + ;======================== + ; write_chip + ;======================== +ssi263_d_write_chip: +ssid_wc_smc1: + sta $C000,X + rts + +irq_count: .byte $00 +irq1backup: .byte $00 +irq2backup: .byte $00 +ssi263_slot: .byte $00 diff --git a/games/mist_hgr/ssi263_simple_speech.s b/games/mist_hgr/ssi263_simple_speech.s new file mode 100644 index 00000000..d1be0952 --- /dev/null +++ b/games/mist_hgr/ssi263_simple_speech.s @@ -0,0 +1,243 @@ + +;.include "ssi263.inc" + +; Simple speech routine for ssi-263 + +; to save space we only change the Phoneme/Delay each time, we don't +; mess with the other registers + + ;======================== + ; ssi263_write_chip + ;======================== +ssi263_write_chip: +wc_smc1: + sta $C000,X + rts + + ;======================== + ; read_chip + ;======================== +ssi263_read_chip: +rc_smc1: + lda $C000,X + rts + + + ;======================== + ; ssi263_speech_init + ;======================== + ; A = slot number of mockingboard +ssi263_speech_init: + sei ; disable interrupts + + and #$7 + ora #$c0 ; turn slot number into address + sta wc_smc1+2 ; update the read/write routines + sta rc_smc1+2 + + ; Set 6522#2 peripheral control register to recognize the signal + ; from the speech chip. + lda #(VIA6522_PCR2_CA2_LOW|VIA6522_PCR2_CA1_NEG) + ldx #VIA6522_PCR2 + jsr ssi263_write_chip + + + lda #ssi263_speech_irq + sta $3ff + + + ; set defaults + + ; filter frequency + lda #$E9 + ldx #SSI263_F + jsr ssi263_write_chip + + ; control / articulation/ amplitude + lda #$5C + ldx #SSI263_CAA + jsr ssi263_write_chip + + ; rate/inflection + lda #$A8 + ldx #SSI263_RI + jsr ssi263_write_chip + + ; inflection + lda #$50 + ldx #SSI263_I + jsr ssi263_write_chip + + + + cli ; enable interrupts + + rts + + + ;============================ + ; ssi263_speech_shutdown + ;============================ + +ssi263_speech_shutdown: + sei + + rts + + + + ;========================= + ; ssi263_speak + ;========================= + ; pointer to data in SPEECH_PTRL/H + +ssi263_speak: + + sei ; disable interrupts + + ; Set the busy flag + lda #$FF + sta speech_busy + + ; Set peripheral control register to recognize the signal from the + ; speech chip. + lda #(VIA6522_PCR2_CA2_LOW|VIA6522_PCR2_CA1_NEG) + ldx #VIA6522_PCR2 + jsr ssi263_write_chip + + ; Set transitioned inflection by setting value while toggling CTL + + lda #SSI263_CAA_CTL + ldx #SSI263_CAA + jsr ssi263_write_chip + + ; Set transitioned inflection mode in register 0 + lda #SSI263_DRP_TRANSITIONED_INFLECTION + ldx #SSI263_DRP + jsr ssi263_write_chip + + ; Lower control bit + lda #$70 ; also T=7 + ldx #SSI263_CAA + jsr ssi263_write_chip + + ; Enable 6522 interrupts + lda #(VIA6522_IER2_SET|VIA6522_IER2_CA1) + ldx #VIA6522_IER2 + jsr ssi263_write_chip + + cli ; re-enable interrupts + + rts + + + ;==================== + ; speech interrupt + ;==================== +ssi263_speech_irq: + + php ; save flags + cld + + pha ; save A + txa + pha ; save X + tya + pha ; save Y + + inc $0404 ; irq indicator on screen + + ; be sure it was a 6522#2 interrupt + ldx #VIA6522_IFR2 + jsr ssi263_read_chip + bmi have_interrupt + + ; wasn't us, return to caller + ; this assumes we can handle multiple interrupt sources + + jmp end_interrupt + +have_interrupt: + ; Clear the 6522#2 CA interrupt flag + lda #VIA6522_IFR2_CA1 + ldx #VIA6522_IFR2 + jsr ssi263_write_chip + + ; Check if done with speech + ldy #0 + lda (SPEECH_PTRL),Y + cmp #$ff + beq speech_end + +not_end: + + ; Set the speech playing flag + lda #$ff + sta speech_playing + + + ldy #$00 + ; Get the next data + lda (SPEECH_PTRL),Y + ldx #SSI263_DRP ; duration/phoneme + jsr ssi263_write_chip + + ; Next data (inc 16 bit) + inc SPEECH_PTRL + bne no_oflo + inc SPEECH_PTRH +no_oflo: + + ; Finish the interrupt handler + jmp end_interrupt + +speech_end: + + ; If at the end, turn everything off + + ; Toggle CTL while DR set to disable A/!R + + lda #SSI263_CAA_CTL + ldx #SSI263_CAA + jsr ssi263_write_chip + + lda #SSI263_DRP_DISABLE_AR + ldx #SSI263_DRP + jsr ssi263_write_chip + + ; Zero amplitude + lda #$70 + ldx #SSI263_CAA + jsr ssi263_write_chip + + ; Clear busy and playing flags + lda #$00 + sta speech_busy + sta speech_playing + + ; Disable interrupt in 6522 + lda #VIA6522_IER2_CA1 + ldx #VIA6522_IER2 + jsr ssi263_write_chip + +end_interrupt: + + pla + tay ; restore Y + pla + tax ; restore X + + pla ; restore A + +ssi_interrupt_smc: + lda $45 ; restore A (II+/IIe) + + plp ; restore flags + + rti ; return from interrupt + +speech_busy: .byte $00 +speech_playing: .byte $00 + diff --git a/games/mist_hgr/title_speech.s b/games/mist_hgr/title_speech.s new file mode 100644 index 00000000..2164bf7c --- /dev/null +++ b/games/mist_hgr/title_speech.s @@ -0,0 +1,815 @@ +; +; myst title speech +; +; Getting text-to-speech on a ssi-263 equipped mockigboard +; for Myst + + + + ; the document + ; "Phonetic Speech Dictionary for the SC-01 Speech Synthesizer" + ; sc01-dictionary.pdf + ; was very helpful here + +myst_fissure: + ; "I REALIZED, THE MOMENT I FELL INTO THE" + ; "FISSURE, THAT THE BOOK WOULD NOT BE" + ; "DESTROYED AS I HAD PLANNED." + .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_R ; R ; realized + .byte PHONEME_E1 ; E1 + .byte PHONEME_AY ; AY + .byte PHONEME_L ; L + .byte PHONEME_AH1 ; AH1 + .byte PHONEME_Y ; Y + .byte PHONEME_Z ; Z + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA ; , + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_THV ; THV ; the + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; moment + .byte PHONEME_O ; O1 + .byte PHONEME_M ; M + .byte PHONEME_EH1 ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_AH1 ; AH1 ; I + .byte PHONEME_Y ; Y + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_F ; F ; fell + .byte PHONEME_EH1 ; EH1 + .byte PHONEME_L ; L + .byte PHONEME_L ; L + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_I ; I1/I3 ; into + .byte PHONEME_N ; N + .byte PHONEME_T ; T + .byte PHONEME_IU ; IU + .byte PHONEME_IU ; UI/UI + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_THV ; THV ; the + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_F ; F ; fissure + .byte PHONEME_I ; I + .byte PHONEME_Z ; Z + .byte PHONEME_SCH ; SCH + .byte PHONEME_ER ; ER + .byte PHONEME_PAUSE ; PA ; , + .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_THV ; THV ; the + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_B ; B ; book + .byte PHONEME_OO ; OO1 + .byte PHONEME_OO ; OO1 + .byte PHONEME_K ; K + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_W ; W ; would + .byte PHONEME_IU1 ; IU1 + .byte PHONEME_L ; L + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_N ; N ; not + .byte PHONEME_AH1 ; AH1 + .byte PHONEME_UH3 ; UH3 + .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_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_B ; B ; burninated + .byte PHONEME_ER ; ER + .byte PHONEME_R ; R + .byte PHONEME_N ; N + .byte PHONEME_I ; I + .byte PHONEME_N ; N + .byte PHONEME_A ; A + .byte PHONEME_A ; A + .byte PHONEME_Y ; Y + .byte PHONEME_T ; T + .byte PHONEME_EH1 ; EH1 + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_AE1 ; AE1 ; as + .byte PHONEME_EH1 ; EH3 + .byte PHONEME_Z ; Z + .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_HF ; H ; had + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH1 ; EH3 + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_P ; P ; planned + .byte PHONEME_L ; L + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH1 ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_D ; D + + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + .byte $FF + + + ; "IT CONTINUED FALLING INTO THAT STARRY",0 + ; "EXPANSE OF WHICH I HAD ONLY A",0 + ; "FLEETING GLIMPSE.",0 +myst_starry: + .byte PHONEME_I ; I1 ; It +; .byte PHONEME_I3 ; I3 + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_K ; K ; continued + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_N ; N + .byte PHONEME_T ; T + .byte PHONEME_I ; I1 +; .byte PHONEME_I3 ; I3 + .byte PHONEME_N ; N +; .byte PHONEME_Y1 ; Y1 + .byte PHONEME_IU ; IU + .byte PHONEME_U1 ; U1 + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_F ; F ; falling + .byte PHONEME_AW ; AW + .byte PHONEME_L ; L + .byte PHONEME_I ; I + .byte PHONEME_NG ; NG + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_I ; I1/I3 ; into + .byte PHONEME_N ; N + .byte PHONEME_T ; T + .byte PHONEME_IU ; IU + .byte PHONEME_IU ; UI/UI + .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_S ; S ; starry + .byte PHONEME_T ; T + .byte PHONEME_AH1 ; AH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_R ; R + .byte PHONEME_E1 ; E1 + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_EH1 ; EH1 ; expanse + .byte PHONEME_EH ; EH3 + .byte PHONEME_K ; K + .byte PHONEME_PAUSE ; PA + .byte PHONEME_S ; S + .byte PHONEME_P ; P + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_N ; N + .byte PHONEME_Z ; Z + .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_W ; W ; which + .byte PHONEME_I ; I1 +; .byte PHONEME_I3 ; I3 + .byte PHONEME_T ; T + .byte PHONEME_SCH ; SCH + .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_HF ; H ; had + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH1 ; EH3 + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_O ; O1 ; only +; .byte PHONEME_O2 ; O2 + .byte PHONEME_N ; N + .byte PHONEME_L ; L + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_UH2 ; UH2 ; a + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_F ; F ; fleeting + .byte PHONEME_L ; L + .byte PHONEME_Y ; Y + .byte PHONEME_T ; T + .byte PHONEME_I ; I + .byte PHONEME_NG ; NG + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_KV ; G ; glimpse + .byte PHONEME_L ; L + .byte PHONEME_I ; I + .byte PHONEME_M ; M + .byte PHONEME_P ; P + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte $FF + + ; "I HAVE TRIED TO SPECULATE WHERE IT MIGHT" + ; "HAVE LANDED, BUT I MUST ADMIT," + ; "HOWEVER-- SUCH CONJECTURE IS FUTILE." +myst_speculate: + .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_HF ; H ; have + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH ; EH3 + .byte PHONEME_V ; V + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_T ; T ; tried + .byte PHONEME_R ; R + .byte PHONEME_AH1 ; AH1 + .byte PHONEME_EH ; EH3 + .byte PHONEME_I ; I + .byte PHONEME_Y ; Y + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_T ; T ; to + .byte PHONEME_IU ; IU + .byte PHONEME_IU ; UI/UI + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_S ; S ; speculate + .byte PHONEME_P ; P + .byte PHONEME_EH1 ; EH1 +; .byte PHONEME_EH3 ; EH3 + .byte PHONEME_K ; K + .byte PHONEME_K ; K +; .byte PHONEME_Y1 ; Y1 + .byte PHONEME_IU ; IU + .byte PHONEME_U1 ; U1 + .byte PHONEME_U1 ; U1 + .byte PHONEME_L ; L +; .byte PHONEME_A1 ; A1 + .byte PHONEME_AY ; AY + .byte PHONEME_Y ; Y + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_W ; W ; where + .byte PHONEME_EH ; EH3 + .byte PHONEME_AY ; A2 + .byte PHONEME_EH ; EH3 + .byte PHONEME_R ; R + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_I ; I ; it + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; might + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_AH ; AH2 + .byte PHONEME_Y ; Y + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_HF ; H ; have + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH ; EH3 + .byte PHONEME_V ; V + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_L ; L ; landed + .byte PHONEME_AH1 ; AE1 + .byte PHONEME_EH ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_D ; D + .byte PHONEME_EH ; EH3 + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_B ; B ; but + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH2 ; UH2 + .byte PHONEME_T ; T + .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_M ; M ; must + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH2 ; UH2 + .byte PHONEME_Z ; Z + .byte PHONEME_T ; T + .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_HF ; H ; however + .byte PHONEME_AH1 ; AH1 +; .byte PHONEME_O2 ; O2 + .byte PHONEME_U1 ; U1 + .byte PHONEME_EH1 ; EH1 + .byte PHONEME_V ; V + .byte PHONEME_R ; R + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_PAUSE ; PA ; -- + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_S ; S ; such + .byte PHONEME_UH1 ; UH1 +; .byte PHONEME_UH3 ; UH3 + .byte PHONEME_T ; T + .byte PHONEME_SCH ; SCH + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_K ; K ; conjecture + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_N ; N + .byte PHONEME_D ; D + .byte PHONEME_J ; J + .byte PHONEME_E1 ; E1 + .byte PHONEME_K ; K + .byte PHONEME_T ; T + .byte PHONEME_SCH ; SCH + .byte PHONEME_R ; R + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_I ; I ; is + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_F ; F ; futile. +; .byte PHONEME_Y1 ; Y1 + .byte PHONEME_IU ; IU +; .byte PHONEME_UI ; UI + .byte PHONEME_T ; T + .byte PHONEME_I ; I3 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_L ; L + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte $FF + + ; "STILL, THE QUESTION ABOUT WHOSE HANDS" + ; "MIGHT SOMEDAY HOLD MY MYST BOOK ARE" + ; "UNSETTLING TO ME." +myst_unsettling: + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_S ; S ; still + .byte PHONEME_T ; T + .byte PHONEME_I ; I + .byte PHONEME_L ; L + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_PAUSE ; PA ; , + + .byte PHONEME_THV ; THV ; the + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_K ; K ; question + .byte PHONEME_W ; W + .byte PHONEME_EH1 ; EH1 +; .byte PHONEME_EH3 ; EH3 + .byte PHONEME_S ; S + .byte PHONEME_T ; T + .byte PHONEME_SCH ; SCH + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_N ; N + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_UH1 ; UH1 ; about + .byte PHONEME_B ; B + .byte PHONEME_UH2 ; UH2 + .byte PHONEME_AH ; AH2 + .byte PHONEME_U1 ; U1 + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_HF ; H ; whose + .byte PHONEME_IU ; IU + .byte PHONEME_U1 ; U1 + .byte PHONEME_U1 ; U1 + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_HF ; HF ; hands + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_D ; D + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; might + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_AH ; AH2 + .byte PHONEME_Y ; Y + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_S ; S ; someday + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH2 ; UH2 + .byte PHONEME_M ; M + .byte PHONEME_D ; D + .byte PHONEME_AI ; A1 + .byte PHONEME_I ; I3 + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_HF ; HF ; hold + .byte PHONEME_O ; O2 + .byte PHONEME_O ; O2 + .byte PHONEME_L ; L + .byte PHONEME_L ; L + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; my + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_AH ; AH2 + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; MYST + .byte PHONEME_I ; I + .byte PHONEME_S ; S + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_B ; B ; book + .byte PHONEME_OO ; OO1 + .byte PHONEME_OO ; OO1 + .byte PHONEME_K ; K + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_AH1 ; AH1 ; are + .byte PHONEME_UH2 ; UH2 + .byte PHONEME_ER ; ER + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_UH1 ; UH1 ; unsettling + .byte PHONEME_N ; N + .byte PHONEME_S ; S + .byte PHONEME_EH1 ; EH1 + .byte PHONEME_T ; T + .byte PHONEME_L ; L + .byte PHONEME_I ; I + .byte PHONEME_NG ; NG + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + + .byte PHONEME_T ; T ; to + .byte PHONEME_IU ; IU + .byte PHONEME_IU ; UI/UI + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; me + .byte PHONEME_E1 ; E1 + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + .byte $FF + + ; "I KNOW THAT MY APPREHENSIONS MIGHT" + ; "NEVER BE ALLAYED, AND SO I CLOSE," + ; "REALIZING THAT PERHAPS," +myst_allayed: + .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_N ; AH1 ; know + .byte PHONEME_OO ; OO1 + .byte PHONEME_O ; O1 + .byte PHONEME_U1 ; U1 + .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_M ; M ; my + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_AH ; AH2 + .byte PHONEME_Y ; Y + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_AE1 ; AE1 ; apprehensions + .byte PHONEME_P ; P + .byte PHONEME_R ; R + .byte PHONEME_Y ; Y + .byte PHONEME_HF ; HF + .byte PHONEME_EH ; EH + .byte PHONEME_N ; N + .byte PHONEME_SCH ; SCH + .byte PHONEME_U1 ; U1 + .byte PHONEME_N ; N + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_M ; M ; might + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_AH ; AH2 + .byte PHONEME_Y ; Y + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_N ; N ; never + .byte PHONEME_EH1 ; EH + .byte PHONEME_V ; V + .byte PHONEME_R ; R + .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_UH1 ; UH1 ; allayed + .byte PHONEME_L ; L + .byte PHONEME_A ; A + .byte PHONEME_Y ; Y + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_PAUSE ; PA ; , + + .byte PHONEME_AE1 ; AE1 ; and + .byte PHONEME_EH ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_D ; D + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_S ; S ; so + .byte PHONEME_OO ; OO + .byte PHONEME_O ; O2 + .byte PHONEME_U1 ; U1 + .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 ; close + .byte PHONEME_L ; L + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_O ; O1 + .byte PHONEME_U1 ; U1 + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_PAUSE ; PA ; , + + .byte PHONEME_R ; R ; realizing + .byte PHONEME_E1 ; E1 + .byte PHONEME_AY ; AY + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_L ; L + .byte PHONEME_AH1 ; AH1 + .byte PHONEME_Y ; Y + .byte PHONEME_Z ; Z + .byte PHONEME_I ; I + .byte PHONEME_NG ; NG + .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_P ; P ; perhaps + .byte PHONEME_ER ; ER + .byte PHONEME_HF ; HF + .byte PHONEME_AE1 ; AE1 + .byte PHONEME_EH ; EH3 + .byte PHONEME_P ; P + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte $FF + + ; "THE ENDING HAS NOT YET BEEN WRITTEN." +myst_written: + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_THV ; THV ; the + .byte PHONEME_UH1 ; UH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_EH1 ; EH1 ; ending +; .byte PHONEME_EH3 ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_D ; D + .byte PHONEME_I ; I + .byte PHONEME_NG ; NG + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_HF ; H ; has + .byte PHONEME_AE1 ; AE1 +; .byte PHONEME_EH3 ; EH3 + .byte PHONEME_Z ; Z + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_N ; N ; not + .byte PHONEME_AH1 ; AH1 + .byte PHONEME_UH3 ; UH3 + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_YI ; YI ; yet + .byte PHONEME_EH1 ; EH1 +; .byte PHONEME_EH3 ; EH3 + .byte PHONEME_T ; T + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_B ; B ; been + .byte PHONEME_EH1 ; EH1 +; .byte PHONEME_EH3 ; EH3 + .byte PHONEME_N ; N + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_R ; R ; written + .byte PHONEME_I ; I + .byte PHONEME_T ; T + .byte PHONEME_N ; N + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + + .byte PHONEME_PAUSE ; PA + .byte PHONEME_PAUSE ; PA + .byte $FF diff --git a/games/mist_hgr/zp.inc b/games/mist_hgr/zp.inc index 6a5515d4..8e9c9e30 100644 --- a/games/mist_hgr/zp.inc +++ b/games/mist_hgr/zp.inc @@ -26,6 +26,8 @@ TEMP5 = $15 LAST_KEY = $16 +SPEECH_PTRL = $17 +SPEECH_PTRH = $18 HGR_SHAPE = $1A ; also used in BKGND0 HGR_SHAPE2 = $1B @@ -319,8 +321,9 @@ CURRENT_DISK = $DC JOYSTICK_ENABLED= $DD SOUND_STATUS = $DE SOUND_DISABLED = $80 - SOUND_IN_LC = $01 ; $01 sound effects in language card - SOUND_MOCKINGBOARD = $02 ; mockingboard detected + SOUND_IN_LC = $01 ; speaker effects in language card + SOUND_MOCKINGBOARD = $02 ; mockingboard detected + SOUND_SSI263 = $04 ; SSI-263 speech chip detected GRID_PAGE = $DF