;============================================================================ ; Faxanadu (U).nes ; ; PRG5 ($8000 - $bfff) ;============================================================================
.segment "PRG5" .reloc
;============================================================================ ; Initialize sound effect playback. ; ; This is a thunking function that wraps ; SoundEffects_Init. ; ; INPUTS: ; None. ; ; OUTPUTS: ; None. ; ; CALLS: ; SoundEffects_Init ; ; XREFS: ; Game_InitScreenAndMusic ;============================================================================
[8000]thunk_SoundEffects_Init: [8000]4c 81 86JMP SoundEffects_Init
;============================================================================ ; Handle sound effects on hardware interrupt. ; ; This is a thunking function that wraps ; SoundEffects_HandleOnInterrupt. ; ; INPUTS: ; None. ; ; OUTPUTS: ; None. ; ; CALLS: ; SoundEffects_HandleOnInterrupt ; ; XREFS: ; OnInterrupt ;============================================================================
[8003]thunk_SoundEffects_HandleOnInterrupt: [8003]4c 2f 86JMP SoundEffects_HandleOnInterrupt
;============================================================================ ; Initialize the playing state for music and sound effects. ; ; This is a thunking function that wraps ; Audio_InitPlayingState. ; ; INPUTS: ; None. ; ; OUTPUTS: ; None. ; ; CALLS: ; Audio_InitPlayingState ; ; XREFS: ; Game_InitScreenAndMusic ;============================================================================
[8006]thunk_Audio_InitPlayingState: [8006]4c 1b 80JMP Audio_InitPlayingState
;============================================================================ ; Handle music on interrupt. ; ; This is a thunking function that wraps ; Music_HandleOnInterrupt. ; ; INPUTS: ; None. ; ; OUTPUTS: ; None. ; ; CALLS: ; Music_HandleOnInterrupt ; ; XREFS: ; OnInterrupt ;============================================================================
[8009]thunk_Music_HandleOnInterrupt: [8009]4c 0d 80JMP Music_HandleOnInterrupt [800c]ff.byte $ff; Unused padding byte.
;============================================================================ ; Handle music on interrupt. ; ; If the game is paused, no music will play. ; ; If no music or sound effects are set, audio will be reset. ; ; If music is set but not playing, the music data will be ; loaded. ; ; If music is set and playing, the next actions or notes of ; the MScripts will be invoked, playing parts of the music. ; ; INPUTS: ; Game_PausedState: ; Whether the game is paused. ; ; Music_Current: ; The currently-set music. ; ; OUTPUTS: ; None. ; ; CALLS: ; Audio_HandlePaused ; Audio_ResetIfNothingSet ; Music_Load ; Music_PlayNext ; ; XREFS: ; thunk_Music_HandleOnInterrupt ;============================================================================
[800d]Music_HandleOnInterrupt: [800d]ad 20 01LDA a:Game_PausedState; Load the paused state. [8010]d0 1cBNE Audio_HandlePaused; If paused, then jump.
; ; The game is not paused. Music can be played. ;
[8012]a5 faLDA Music_Current; Load the current music to play. [8014]f0 22BEQ Audio_ResetIfNothingSet; If unset, jump to reset audio if nothing else is playing.
; ; There is music to play. ; ; If bit 0x80 is set, then it's already playing. We'll just ; continue to play it. ; ; If it's not set, load the new music. ;
[8016]10 61BPL Music_Load; Jump to load the music.
; ; Music is currently playing. Play the next piece of the ; music. ;
[8018]4c 06 81JMP Music_PlayNext; Jump to play the next part of the current music.
;============================================================================ ; Initialize the music and sound effects state. ; ; This will clear out the music and sound effects ; in preparation for loading a new part of the game. ; ; INPUTS: ; None. ; ; OUTPUTS: ; Game_PausedState: ; Music_Current: ; SoundEffect_HandlerIndex: ; SND_CHN: ; SoundEffect_Current: ; SoundEffect_Unused_PriorityID: ; Cleared. ; ; XREFS: ; thunk_Audio_InitPlayingState ;============================================================================
[801b]Audio_InitPlayingState: [801b]a9 00LDA #$00 [801d]85 faSTA Music_Current; Clear the current music. [801f]85 fbSTA SoundEffect_Current; Clear the next sound effect. [8021]8d 22 01STA a:SoundEffect_HandlerIndex [8024]8d 15 40STA a:SND_CHN; Clear the sound channel. [8027]8d 20 01STA a:Game_PausedState; Clear the paused flag. [802a]8d 21 01STA a:SoundEffect_Unused_PriorityID; Clear the ID of the highest-priority sound effect. [802d]60RTS
;============================================================================ ; Pause audio when the game is paused. ; ; This will mark the audio as paused in response to the game ; being paused. ; ; If there's no music set, and no sound effects set, then ; this will also trigger a full audio reset. ; ; INPUTS: ; N: ; The game/audio paused state. ; ; See Game_PausedState for documentation. ; ; Music_Current: ; The current music to check. ; ; SoundEffect_TicksRemaining: ; The list of sound effect slots to check. ; ; OUTPUTS: ; Game_PausedState: ; The updated paused state. ; ; CALLS: ; Audio_Reset ; Audio_ResetIfNothingSet ; ; XREFS: ; Music_HandleOnInterrupt ;============================================================================
[802e]Audio_HandlePaused:
; ; First, check if we've already handled an audio pause state. ;
[802e]30 08BMI Audio_ResetIfNothingSet; If the audio paused state is already set, then jump.
; ; The game is paused, but audio is not. Set that bit and ; reset audio. ;
[8030]09 80ORA #$80; Set bit 7 (audio paused). [8032]8d 20 01STA a:Game_PausedState; Store it. [8035]20 4a 80JSR Audio_Reset; Reset audio.
; ; v-- Fall through --v ;
;============================================================================ ; Reset the audio state if no music or sounds are set. ; ; If there's no music set, and no sound effects set, then ; this will trigger a full audio reset. ; ; INPUTS: ; Music_Current: ; The current music to check. ; ; SoundEffect_TicksRemaining: ; The list of sound effect slots to check. ; ; OUTPUTS: ; None. ; ; CALLS: ; Audio_Reset ; ; XREFS: ; Audio_HandlePaused ; Music_HandleOnInterrupt ;============================================================================
[8038]Audio_ResetIfNothingSet: [8038]a5 faLDA Music_Current; Load the current music. [803a]d0 0dBNE @_return; If it's set, return. Nothing to do.
; ; There's no music playing. Check if sound effects ; are playing. ;
[803c]a2 03LDX #$03; X = 3 (loop counter). [803e]@_checkSoundEffectLoop: [803e]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Load the sound effect at the current index. [8041]d0 06BNE @_return; If it's set, then return. [8043]caDEX; X-- (loop counter). [8044]10 f8BPL @_checkSoundEffectLoop; If >= 0, loop.
; ; This has looped through all sound effects, and none ; were set. Audio can now be reset. ;
[8046]4c 4a 80JMP Audio_Reset; Reset the audio. [8049]@_return: [8049]60RTS
;============================================================================ ; Reset all audio channels. ; ; This will enable constant volume for the Square Wave and ; Noise channels, and clear all other audio state. ; ; INPUTS: ; None. ; ; OUTPUTS: ; SQ1_VOL: ; SQ2_VOL: ; Set to Constant Volume, no length, no counter ; load, no duty. ; ; NOISE_VOL: ; Set to Constant Volume, no length, no counter ; load. ; ; NOISE_HI: ; NOISE_LO: ; SQ1_HI: ; SQ1_LO: ; SQ1_SWEEP: ; SQ2_HI: ; SQ2_LO: ; SQ2_SWEEP: ; TRI_HI: ; TRI_LINEAR: ; TRI_LO: ; Set to 0. ; ; XREFS: ; Audio_HandlePaused ; Audio_ResetIfNothingSet ; Music_Load ; SoundEffects_Init ;============================================================================
[804a]Audio_Reset:
; ; Enable the Constant Volume bit on Pulse 1/2 and Noise ; channels. ;
[804a]a9 10LDA #$10 [804c]8d 00 40STA a:SQ1_VOL; Enable the Constant Volume bit. [804f]8d 04 40STA a:SQ2_VOL; Enable the Constant Volume bit. [8052]8d 0c 40STA a:NOISE_VOL; Enable the Constant Volume bit.
; ; Clear all other channel state. ;
[8055]a9 00LDA #$00 [8057]8d 01 40STA a:SQ1_SWEEP; Set to 0. [805a]8d 02 40STA a:SQ1_LO; Set to 0. [805d]8d 03 40STA a:SQ1_HI; Set to 0. [8060]8d 05 40STA a:SQ2_SWEEP; Set to 0. [8063]8d 06 40STA a:SQ2_LO; Set to 0. [8066]8d 07 40STA a:SQ2_HI; Set to 0. [8069]8d 08 40STA a:TRI_LINEAR; Set to 0. [806c]8d 0a 40STA a:TRI_LO; Set to 0. [806f]8d 0b 40STA a:TRI_HI; Set to 0. [8072]8d 0e 40STA a:NOISE_LO; Set to 0. [8075]8d 0f 40STA a:NOISE_HI; Set to 0. [8078]60RTS
;============================================================================ ; Load channel and MScript state for music. ; ; This will take the index of the music to load and convert ; it into an address for processing. ; ; The initial state of the music engine (note durations, ; transpose, note lengths, etc.) will be reset for the ; song across all channels. ; ; XREFS: ; Music_HandleOnInterrupt ;============================================================================
[8079]Music_Load:
; ; Load the current music to play. ;
[8079]a5 faLDA Music_Current; Load the current music. [807b]09 80ORA #$80; Mark as currently playing. [807d]85 faSTA Music_Current; Store that.
; ; Convert to a lookup index for the table. ; ; This will be multiplied by 8, giving us word boundaries ; across 4 channels. ;
[807f]0aASL A; Convert to a word boundary. [8080]0aASL A; And multiply by 4 channels. [8081]0aASL A [8082]a8TAY; Y = result (Music lookup index).
; ; Begin loading the starting MScripts. ; ; This will load all 4 channels of MScripts for the selected ; piece of music, indexed from last channel to first. ; ; Bear in mind, the loop counter is looping over addresses, so ; it loops 8 times, or 2 bytes * 4 channels. Indexes will be ; based off the music ID, though, not the loop counter. ;
[8083]a2 07LDX #$07; X = 7 (loop counter). [8085]@_loadMusicLoop: [8085]b9 fa 8eLDA a:MSCRIPTS_LOOKUP,Y; Load the MScript channel address at Y. [8088]95 f2STA Music_CurrentScriptAddrs,X; Store it in the list of channel addresses.
; ; BUG: This tries to save the address for a return/repeat, but ; it always saves in the first channel slot, which is ; incorrect. ;
[808a]8d 50 01STA a:MScript_SavedAddr; Store it as the latest saved address as well, for push/pop purposes.
; ; Prepare for the next loop iteration and lookup. ;
[808d]88DEY; Y-- (lookup index). [808e]caDEX; X-- (loop counter). [808f]10 f4BPL @_loadMusicLoop; If X >= 0, loop.
; ; We're out of the loop. Clear a bunch of state. ;
[8091]e8INX; Set X back to 0 (-1 + 1 == 0). [8092]8e 60 01STX a:Music_Global_Transpose [8095]8e 61 01STX a:Music_Channel_Transpose [8098]8e 62 01STX a:Music_Channel_Transpose_1_ [809b]8e 63 01STX a:Music_Channel_Transpose_2_ [809e]8e 74 01STX a:Music_SQ_Fades [80a1]8e 75 01STX a:Music_SQ_Fades_1_ [80a4]8e 76 01STX a:Music_SQEnvelope_Mode [80a7]8e 77 01STX a:Music_SQEnvelope_Mode_1_ [80aa]8e 79 01STX a:Music_SQEnvelope_Phase [80ad]8e 7a 01STX a:Music_SQEnvelope_Phase_1_ [80b0]8e 7c 01STX a:Music_Current_SQ_Low [80b3]8e 7d 01STX a:Music_Current_SQ_Low_1_ [80b6]8e 6d 01STX a:Music_Note_Period_Low [80b9]8e 6e 01STX a:Music_Note_Period_High [80bc]8e 6f 01STX a:MScript_Unused_RawValue [80bf]8e 7e 01STX a:Music_Triangle_Remaining [80c2]8e 69 01STX a:Music_Noise_Remaining [80c5]8e 78 01STX a:Music_SQEffect_Delta [80c8]8e 6c 01STX a:Music_TempValue [80cb]8e 7f 01STX a:Music_SQPitchDelta_Mask [80ce]8e 80 01STX a:Music_SQPitchDelta_Mask_1_ [80d1]8e 81 01STX a:Music_SQ2_TimerLowBias
; ; Set the following to 1. ;
[80d4]e8INX; X = 1 [80d5]8e 30 01STX a:Music_ChannelTicksRemaining [80d8]8e 31 01STX a:Music_ChannelTicksRemaining_1_ [80db]8e 32 01STX a:Music_ChannelTicksRemaining_2_ [80de]8e 33 01STX a:Music_ChannelTicksRemaining_3_
; ; Set the durations for each channel to 1. ;
[80e1]8e 2c 01STX a:MScript_NoteDurations [80e4]8e 2d 01STX a:MScript_NoteDurations_1_ [80e7]8e 2e 01STX a:MScript_NoteDurations_2_ [80ea]8e 2f 01STX a:MScript_NoteDurations_3_
; ; Set the following to 8. ;
[80ed]a9 08LDA #$08; A = 8 [80ef]8d 64 01STA a:Music_SQ_Note_Lengths [80f2]8d 65 01STA a:Music_Note_Length_High [80f5]8d 66 01STA a:Music_Unused_0166 [80f8]8d 67 01STA a:Music_Unused_0166_1_
; ; Set the following to 144. ;
[80fb]a9 90LDA #$90; A = 144 [80fd]8d 72 01STA a:Music_SQ_ControlBits [8100]8d 73 01STA a:Music_SQ_ControlBits_1_
; ; Reset audio channels. ;
[8103]4c 4a 80JMP Audio_Reset; Reset the audio channels.
;============================================================================ ; Play the next op in each MScript channel. ; ; This will perform the next operation for each channel, ; unsetting the music if all are complete. ; ; If a channel has a repeat set, its repeat count will ; be reduced by 1 and the current note/value will be played. ; Otherwise, the next operation in the MScript will be ; invoked. ; ; Once all channels are marked completed, the music will be ; unset. ; ; INPUTS: ; Music_ChannelTicksRemaining: ; The repeat counters for each channel. ; ; OUTPUTS: ; Music_ChannelTicksRemaining: ; The updated repeat counters for each channel. ; ; Music_NumChannelsCompleted: ; The number of channels completed after this run. ; ; Music_Current: ; Unset, if all channels completed. ; ; MScript_CurrentChannel: ; Clobbered. ; ; CALLS: ; MScripts_InvokeNext ; Music_PlayForChannel ; ; XREFS: ; Music_HandleOnInterrupt ;============================================================================
[8106]Music_PlayNext:
; ; Set the initial state for tracking per-channel playback ; for this invocation. ;
[8106]a9 00LDA #$00 [8108]8d 6b 01STA a:Music_NumChannelsCompleted; Clear the number of completed channels. [810b]8d 6a 01STA a:MScript_CurrentChannel; Clear the current channel index.
; ; Loop through each of the channels. ; ; For each channel, the current value will be played and ; only advanced when the repeat count for the value hits 0. ;
[810e]@_loop: [810e]ae 6a 01LDX a:MScript_CurrentChannel; X = Current channel index [8111]de 30 01DEC a:Music_ChannelTicksRemaining,X [8114]d0 03BNE @_play [8116]20 3a 82JSR MScripts_InvokeNext [8119]@_play: [8119]20 32 81JSR Music_PlayForChannel; Play music on this channel. [811c]ee 6a 01INC a:MScript_CurrentChannel; Move to the next channel. [811f]ad 6a 01LDA a:MScript_CurrentChannel; Load that channel index. [8122]c9 04CMP #$04; Is it < 4? [8124]90 e8BCC @_loop; If so, loop.
; ; Check if all channels have finished. ;
[8126]ad 6b 01LDA a:Music_NumChannelsCompleted; Load the number of completed channels. [8129]c9 04CMP #$04; Is it 4? [812b]d0 04BNE @_return; If not, return.
; ; All channels have finished, so clear the current music. ;
[812d]a9 00LDA #$00 [812f]85 faSTA Music_Current; Unset the current music. [8131]@_return: [8131]60RTS
;============================================================================ ; Play a Square Wave or Triangle channel every tick. ; ; Noise is not handled here. Instead it's handled in ; Music_PlayNoise when ; Music_ChannelTicksRemaining ; reaches 0. ; ; ; ; XREFS: ; Music_PlayNext ;============================================================================
[8132]Music_PlayForChannel: [8132]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel index. [8135]f0 29BEQ @_isSquareWave; If it's Square Wave 1, jump. [8137]caDEX [8138]f0 26BEQ @_isSquareWave; If it's Square Wave 2, jump. [813a]caDEX [813b]f0 01BEQ @_isTriangleWave; If it's Triangle Wave, jump. [813d]60RTS; Else, return.
; ; This is the Triangle Wave channel. ;
[813e]@_isTriangleWave: [813e]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel index. [8141]ad 7e 01LDA a:Music_Triangle_Remaining [8144]f0 05BEQ @_checkSoundEffectOnTri [8146]ce 7e 01DEC a:Music_Triangle_Remaining [8149]a9 c0LDA #$c0 [814b]@_checkSoundEffectOnTri: [814b]8d 6c 01STA a:Music_TempValue
; ; Check if there's currently a sound effect playing ; on the Triangle Wave channel. ;
[814e]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Load the current sound effect on the Triangle Wave channel. [8151]d0 07BNE @_clearTriangleWave; If one is set, jump to clear it.
; ; No sound effect is playing on the Triangle Wave channel. ;
[8153]ad 6c 01LDA a:Music_TempValue; Load the value to play. [8156]8d 08 40STA a:TRI_LINEAR; Set it on the channel. [8159]60RTS; And return. [815a]@_clearTriangleWave: [815a]a9 00LDA #$00 [815c]8d 08 40STA a:TRI_LINEAR; Clear the Triangle Wave channel. [815f]60RTS; And return.
; ; This is a Square Wave channel. ;
[8160]@_isSquareWave: [8160]ae 6a 01LDX a:MScript_CurrentChannel [8163]bc 76 01LDY a:Music_SQEnvelope_Mode,X [8166]f0 07BEQ Music_PlaySQEnvelopeModeLinearTrailoff [8168]88DEY [8169]f0 27BEQ Music_PlaySQEnvelopeModeCurveButHeld [816b]88DEY [816c]f0 4eBEQ Music_PlaySQEnvelopeModePluck [816e]60RTS
;============================================================================ ; Play SQ envelope mode 0: Linear, trails off. ; ; This updates the Square Wave channel's volume level, ; optionally applying a square pitch effect. ; ; This is used to smoothly fade out the volume. ; ; INPUTS: ; MScript_CurrentChannel: ; The current MScript channel. ; ; Music_SQEnvelope_Value: ; The counter values for the mode, across ; SQ channels. ; ; SoundEffect_TicksRemaining: ; The currently-playing sound effects. ; ; OUTPUTS: ; Music_SQEnvelope_Value: ; The updated counter values. ; ; Music_TempValue: ; The updated volume. ; ; CALLS: ; Music_ApplySQPitchEffectToLO: ; Music_UpdateSQVolRegister ; ; XREFS: ; Music_PlayForChannel ;============================================================================
[816f]Music_PlaySQEnvelopeModeLinearTrailoff: [816f]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel.
; ; Check if the counter is 0. If so, it'll stay that way ; until playback finishes. ;
[8172]bd 70 01LDA a:Music_SQEnvelope_Value,X; Load the fade-out counter value for the mode. [8175]f0 06BEQ @LAB_PRG5__817d; If it's 0, jump.
; ; The counter is a non-zero value. Subtract 3 and store it. ;
[8177]38SEC [8178]e9 03SBC #$03; Subtract 3 from the counter. [817a]9d 70 01STA a:Music_SQEnvelope_Value,X; Store the new counter.
; ; Convert the value to a value between 0-15. ; ; This effectively shifts any value into the lower nibble. ;
[817d]@LAB_PRG5__817d: [817d]4aLSR A; Shift into the lower nibble. [817e]4aLSR A [817f]4aLSR A [8180]4aLSR A [8181]29 0fAND #$0f; Mask out the upper nibble. [8183]8d 6c 01STA a:Music_TempValue; Store as the new volume value for the Square Wave.
; ; Check if any special effects are playing on this channel. ;
[8186]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Load any current special effects on this channel. [8189]d0 06BNE @_return; If set, return. [818b]20 f1 81JSR Music_UpdateSQVolRegister; Update the volume and flags the SQ*_VOL register. [818e]20 0d 82JSR Music_ApplySQPitchEffectToLO; Apply the mode's pitch effect to the SQ*_LO register. [8191]@_return: [8191]60RTS
;============================================================================ ; TODO: Document Music_PlaySQEnvelopeModeCurveButHeld ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; Music_PlayForChannel ;============================================================================
[8192]Music_PlaySQEnvelopeModeCurveButHeld:
; ; This is SQ Mode 1: Curve but held ;
[8192]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel. [8195]bd 70 01LDA a:Music_SQEnvelope_Value,X; Load the envelopve value for the channel. [8198]29 0fAND #$0f; Keep the lower nibble (0-15). [819a]9d 70 01STA a:Music_SQEnvelope_Value,X; Store as the new value.
; ; Apply a cap on the envelope value. If it's >= 13, reduce ; it by 2 (capping at a max of 13). ;
[819d]c9 0dCMP #$0d; Is it < 13? [819f]90 06BCC @_applyMode; If so, jump.
; ; Cap this value to a max of 13. ; ; We can safely say it'll be capped here, because we've ; ensured a range of 0-15 above, and have checked if it's ; >= 13. ; ; A value of 15 will become 13. ; A value of 14 will become 12. ; A value of 13 will become 11. ;
[81a1]de 70 01DEC a:Music_SQEnvelope_Value,X; Decrement the envelope value by 2. [81a4]de 70 01DEC a:Music_SQEnvelope_Value,X
; ; Increment the phase. ;
[81a7]@_applyMode: [81a7]fe 79 01INC a:Music_SQEnvelope_Phase,X; Increment the phase by 1. [81aa]bd 70 01LDA a:Music_SQEnvelope_Value,X; Load the envelope value. [81ad]8d 6c 01STA a:Music_TempValue; Store it as the volume to set.
; ; Check if there are any sound effects currently playing. ; If so, give them priority. ;
[81b0]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Check if a sound effect is playing. [81b3]d0 06BNE @_return; If so, return.
; ; Apply a volume and pitch effect. ;
[81b5]20 f1 81JSR Music_UpdateSQVolRegister; Update the volume. [81b8]20 0d 82JSR Music_ApplySQPitchEffectToLO; Apply a pitch effect. [81bb]@_return: [81bb]60RTS
;============================================================================ ; TODO: Document Music_PlaySQEnvelopeModePluck ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; Music_PlayForChannel ;============================================================================
[81bc]Music_PlaySQEnvelopeModePluck:
; ; This is SQ Mode 2: Table-based envelope (pluck effect) ;
[81bc]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel. [81bf]bd 79 01LDA a:Music_SQEnvelope_Phase,X; Load the current phase. [81c2]4aLSR A; Divide by 4 and use the result as an index in the lookup table. [81c3]4aLSR A [81c4]a8TAY; Y = resulting index. [81c5]b9 dc 81LDA a:SQ_MODE_2_PLUCK_VALUES,Y; Load the pluck value from the table. [81c8]f0 03BEQ @_applyEffect; If it's 0 (end of table), jump to avoid incrementing the index within the table.
; ; The index is still within the range of the table. ; Increment the index for the next table value. ;
[81ca]fe 79 01INC a:Music_SQEnvelope_Phase,X; Increment the phase. [81cd]@_applyEffect: [81cd]8d 6c 01STA a:Music_TempValue; Store the table entry as the volume to apply.
; ; Check if there are any sound effects playing. If so, give ; them priority. ;
[81d0]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Check if any sound effects are playing. [81d3]d0 06BNE @_return; If so, return.
; ; Apply the volume and pitch effect. ;
[81d5]20 f1 81JSR Music_UpdateSQVolRegister; Update the volume. [81d8]20 0d 82JSR Music_ApplySQPitchEffectToLO; Apply the pitch effect. [81db]@_return: [81db]60RTS
; ; XREFS: ; Music_PlaySQEnvelopeModePluck ;
[81dc]SQ_MODE_2_PLUCK_VALUES: [81dc]07.byte $07; [0]: [81dd]0a.byte $0a; [1]: [81de]0d.byte $0d; [2]: [81df]0f.byte $0f; [3]: [81e0]0e.byte $0e; [4]: [81e1]0d.byte $0d; [5]: [81e2]0c.byte $0c; [6]: [81e3]0b.byte $0b; [7]: [81e4]0a.byte $0a; [8]: [81e5]09.byte $09; [9]: [81e6]08.byte $08; [10]: [81e7]07.byte $07; [11]: [81e8]06.byte $06; [12]: [81e9]05.byte $05; [13]: [81ea]04.byte $04; [14]: [81eb]03.byte $03; [15]: [81ec]02.byte $02; [16]: [81ed]02.byte $02; [17]: [81ee]01.byte $01; [18]: [81ef]01.byte $01; [19]: [81f0]00.byte $00; [20]:
;============================================================================ ; Update the Square Wave volume and control bits. ; ; This will load in the pending value for square wave volume ; and reduce it by any fade set by an MScript op. This will ; be the volume for the SQ1_VOL or ; SQ2_VOL channel. ; ; The control bits (duty cycle, length counter halt, ; constant volume/envelope flag) will then be applied to ; the register. ; ; See https://www.nesdev.org/wiki/APU_Pulse ; ; INPUTS: ; MScript_CurrentChannel: ; The current channel being processed (0 or 1). ; ; Music_TempValue: ; The current volume value to use as a base. ; ; Music_SQ_Fades: ; The fade values to subtract from the volume ; (indexed by channel). ; ; Music_SQ_ControlBits: ; The control bits to set for the register. ; ; OUTPUTS: ; SQ1_VOL: ; SQ2_VOL: ; The updated Square Wave register. ; ; XREFS: ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ;============================================================================
[81f1]Music_UpdateSQVolRegister:
; ; Compute the address for the Square Wave volume register. ;
[81f1]ae 6a 01LDX a:MScript_CurrentChannel; Load the MScript channel. [81f4]8aTXA; A = result. [81f5]0aASL A; Convert to a starting index in the set of Square Wave registers. [81f6]0aASL A [81f7]a8TAY; Y = resulting register index ($4000/$4004).
; ; Apply any fade set. ;
[81f8]ad 6c 01LDA a:Music_TempValue; Load the volume to set. [81fb]38SEC [81fc]fd 74 01SBC a:Music_SQ_Fades,X; Subtract any fade that was set. [81ff]b0 02BCS @_setVolume; If positive, jump.
; ; The volume went negative. Cap to 0. ;
[8201]a9 00LDA #$00; Set the volume to 0. [8203]@_setVolume: [8203]ae 6a 01LDX a:MScript_CurrentChannel; Load the current SQ channel as an index. [8206]1d 72 01ORA a:Music_SQ_ControlBits,X; Apply control bits to the value to set for the register. [8209]99 00 40STA a:SQ1_VOL,Y; And set the register. [820c]60RTS
;============================================================================ ; TODO: Document Music_ApplySQPitchEffectToLO ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; Music_PlaySQEnvelopeModeCurveButHeld ; Music_PlaySQEnvelopeModeLinearTrailoff ; Music_PlaySQEnvelopeModePluck ;============================================================================
[820d]Music_ApplySQPitchEffectToLO: [820d]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel.
; ; Make sure the phase counter reached 18 before we make any ; changes. This provides a delay. ;
[8210]bd 79 01LDA a:Music_SQEnvelope_Phase,X; Load the phase counter for the channel. [8213]c9 12CMP #$12; Is it < 18? [8215]90 22BCC @_return; If so, end.
; ; The counter hit 18, so we can begin updating state. ; ; First we'll divide the counter by 4, giving a quarter speed. ; Then we'll AND with the depth mask, defining the range (e.g., ; $04 == 0..4 repeating). ; ; The result is a delta used later. ;
[8217]4aLSR A; Divide by 4, giving quarter speed. [8218]4aLSR A [8219]3d 7f 01AND a:Music_SQPitchDelta_Mask,X; AND with our depth mask, defining the range. [821c]8d 78 01STA a:Music_SQEffect_Delta; Store as the delta.
; ; If any sound effects are playing on this channel, don't ; play. Give the sound effectws priority. ;
[821f]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Check for sound effects on this channel. [8222]d0 15BNE @_return; If any are set, skip playing on this channel.
; ; No sound effects are playing, so we can continue. ;
[8224]ad 6a 01LDA a:MScript_CurrentChannel; Load the current MScript channel. [8227]0aASL A; Convert to an index within the set of Square Wave registers [8228]0aASL A [8229]a8TAY; Y = resulting registers index ($4000/$4004).
; ; Don't apply the effect if the base is too small to subtract from. ;
[822a]bd 7c 01LDA a:Music_Current_SQ_Low,X; Load the low value . [822d]dd 7f 01CMP a:Music_SQPitchDelta_Mask,X; Is it less than the depth mask? [8230]90 07BCC @_return; If so, return.
; ; Subtract the delta and store it in the SQ*_LO register. ;
[8232]38SEC [8233]ed 78 01SBC a:Music_SQEffect_Delta; Subtract the delta calculated above. [8236]99 02 40STA a:SQ1_LO,Y; And store it in the register. [8239]@_return: [8239]60RTS
;============================================================================ ; TODO: Document MScripts_InvokeNext ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; MScript_Op_BeginLoop ; MScript_Op_EndLoop ; MScript_Op_JumpSubroutine ; MScript_Op_NextLoopIfNCompleted ; MScript_Op_NoOp ; MScript_Op_RestartChannel ; MScript_Op_RestoreAddr ; MScript_Op_Return ; MScript_Op_SaveAddr ; MScript_Op_SetChannelTranspose ; MScript_Op_SetControlBits ; MScript_Op_SetGlobalTranspose ; MScript_Op_SetSQ2Detune ; MScript_Op_SetSQEnvelopeMode ; MScript_Op_SetSQPitchEffectDepth ; MScript_Op_SetSQVol ; MScripts_SetNoteLengthFromValue ; Music_PlayNext ;============================================================================
[823a]MScripts_InvokeNext: [823a]ae 6a 01LDX a:MScript_CurrentChannel; X = Channel index being processed [823d]e0 03CPX #$03; Is this the noise channel? [823f]d0 08BNE @_loadNextValue; If not, jump.
; ; This is the Noise channel. See if there's noise to play. ;
[8241]ad 69 01LDA a:Music_Noise_Remaining; Is there noise to play? [8244]f0 03BEQ @_loadNextValue; If not, process the next value in the script.
; ; There is noise, so play it. ;
[8246]4c ff 82JMP Music_PlayNoise; Else, play the noise. [8249]@_loadNextValue: [8249]20 44 85JSR MScripts_GetNextValue; Get the next value from the MScript. [824c]8d 6c 01STA a:Music_TempValue; Store it. [824f]a8TAY; Y = Value [8250]30 03BMI @_handleScriptValue; If the script value is >= 0x80, jump to handle it. [8252]4c e3 82JMP Music_PlayOrRest; Play if there's a value, or finish if 0.
; ; Check if this is an MScript op (>= 0xEE) or a note length ; (>= 0x80, < 0xEE). ;
[8255]@_handleScriptValue: [8255]c9 eeCMP #$ee; Is this < 0xEE? [8257]90 35BCC MScripts_SetNoteLengthFromNext; If so, set the note length from the next value.
; ; Determine the op handler to invoke. ;
[8259]38SEC [825a]a9 ffLDA #$ff; A = 0xFF [825c]ed 6c 01SBC a:Music_TempValue; Subtract the opcode, giving an index into the lookup table. [825f]0aASL A; Normalize to a word boundary for the lookup table. [8260]a8TAY; Y = A [8261]b9 6b 82LDA a:MSCRIPT_OP_HANDLERS+1,Y; Load the address of the handler and push to the stack. [8264]48PHA [8265]b9 6a 82LDA a:MSCRIPT_OP_HANDLERS,Y [8268]48PHA [8269]60RTS; And call it.
;============================================================================ ; Lookup table of MScript operation handlers. ; ; XREFS: ; MScripts_InvokeNext ;============================================================================
; ; XREFS: ; MScripts_InvokeNext ;
[826a]MSCRIPT_OP_HANDLERS: [826a]07 84pointer MScript_Op_End-1; MScript_Op_End [826c]a4 84pointer MScript_Op_RestoreAddr-1; MScript_Op_RestoreAddr [826e]1e 84pointer MScript_Op_BeginLoop-1; MScript_Op_BeginLoop [8270]57 84pointer MScript_Op_EndLoop-1; MScript_Op_EndLoop [8272]3c 84pointer MScript_Op_NextLoopIfNCompleted-1; MScript_Op_NextLoopIfNCompleted [8274]7f 84pointer MScript_Op_NoOp-1; MScript_Op_NoOp [8276]8e 84pointer MScript_Op_SaveAddr-1; MScript_Op_SaveAddr [8278]cf 84pointer MScript_Op_JumpSubroutine-1; MScript_Op_JumpSubroutine [827a]0d 85pointer MScript_Op_SetGlobalTranspose-1; MScript_Op_SetGlobalTranspose [827c]01 85pointer MScript_Op_SetChannelTranspose-1; MScript_Op_SetChannelTranspose [827e]ef 84pointer MScript_Op_Return-1; MScript_Op_Return [8280]b6 84pointer MScript_Op_RestartChannel-1; MScript_Op_RestartChannel [8282]94 82pointer MScript_Op_RepeatValue-1; MScript_Op_RepeatValue [8284]82 84pointer MScript_Op_SetControlBits-1; MScript_Op_SetControlBits [8286]16 85pointer MScript_Op_SetSQVol-1; MScript_Op_SetSQVol [8288]22 85pointer MScript_Op_SetSQEnvelopeMode-1; MScript_Op_SetSQEnvelopeMode [828a]2e 85pointer MScript_Op_SetSQPitchEffectDepth-1; MScript_Op_SetSQPitchEffectDepth [828c]3a 85pointer MScript_Op_SetSQ2Detune-1; MScript_Op_SetSQ2Detune
;============================================================================ ; Set the note length from the next value read from the MScript. ; ; INPUTS: ; Music_TempValue: ; The value loaded from the script. ; ; OUTPUTS: ; None. ; ; CALLS: ; MScripts_SetNoteLengthFromValue ; ; XREFS: ; MScripts_InvokeNext ;============================================================================
[828e]MScripts_SetNoteLengthFromNext: [828e]ad 6c 01LDA a:Music_TempValue; Load the current script value. [8291]29 7fAND #$7f; Discard bit 7. [8293]10 03BPL MScripts_SetNoteLengthFromValue; Unconditionally jump (bit 7 will always be clear).
;============================================================================ ; TODO: Document MScript_Op_RepeatValue ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8295]MScript_Op_RepeatValue: [8295]20 44 85JSR MScripts_GetNextValue; Get the next value in the script.
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document MScripts_SetNoteLengthFromValue ; ; INPUTS: ; A ; ; OUTPUTS: ; TODO ; ; XREFS: ; MScripts_SetNoteLengthFromNext ;============================================================================
[8298]MScripts_SetNoteLengthFromValue: [8298]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel. [829b]9d 2c 01STA a:MScript_NoteDurations,X; Set the duration for the channel. [829e]8d 6c 01STA a:Music_TempValue; Store temporarily for later calculations. [82a1]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel index (again). [82a4]e0 02CPX #$02; Is it 2 (triangle)? [82a6]f0 92BEQ MScripts_InvokeNext; If so, run the next op from the script.
; ; This is not the Triangle channel. It's Square Wave/Pulse ; or Noise. ;
[82a8]ad 6c 01LDA a:Music_TempValue; Load the current value from the MScript. [82ab]48PHA; Push it to the stack. [82ac]4aLSR A; Divide by 8. [82ad]4aLSR A [82ae]4aLSR A [82af]8d 6c 01STA a:Music_TempValue; Store it back temporarily. [82b2]68PLA; Pop the value back from the stack. [82b3]38SEC [82b4]ed 6c 01SBC a:Music_TempValue; Subtract the result of our division. [82b7]c9 10CMP #$10; Is it >= 16? [82b9]b0 11BCS @_beginCheckOffsets; If so, jump. [82bb]0aASL A; Multiply by 16. [82bc]0aASL A [82bd]0aASL A [82be]0aASL A [82bf]09 08ORA #$08; OR with 8. [82c1]9d 64 01STA a:Music_SQ_Note_Lengths,X; Store as the note length. [82c4]c9 08CMP #$08; Is the value exactly 8? [82c6]d0 15BNE @_invokeNext; If not, jump. [82c8]a9 18LDA #$18; Else, set 24 as the note duration. [82ca]d0 0eBNE @_storeLength; Jump to set the length.
; ; Look for an entry in the table that is <= our calculated ; value. ; ; The loop counter seems to wrap from 0 on up through 0 ; (overflowing), but in reality the last entry in the table ; will always terminate the loop (as it's 0, and 0 <= all ; values). ;
[82cc]@_beginCheckOffsets: [82cc]a0 00LDY #$00; Y = 0 (loop counter). [82ce]@_checkOffsetLoop: [82ce]d9 6f 85CMP a:NOTE_LENGTH_CMP_LOWER_BOUNDS,Y; Is the value from the table <= our calculated value? [82d1]b0 04BCS @_loadLength; If so, break. [82d3]c8INY; Y += 2 (loop counter). [82d4]c8INY [82d5]d0 f7BNE @_checkOffsetLoop; If != 0, loop. [82d7]@_loadLength: [82d7]b9 70 85LDA a:NOTE_LENGTH_VALUES,Y; Load the value from the tabe. [82da]@_storeLength: [82da]9d 64 01STA a:Music_SQ_Note_Lengths,X [82dd]@_invokeNext: [82dd]4c 3a 82JMP MScripts_InvokeNext [82e0]4c 3a 82JMP MScripts_InvokeNext; Unreachable?
;============================================================================ ; Play a note, noise, or rest from the MScript. ; ; This takes the loaded value in both A and Y, and then ; checks if it's 0 (indicating a Rest) or non-0 (either a ; wave value or noise value, depending on the channel). ; ; INPUTS: ; A: ; Y: ; The value loaded from the MScript. ; ; OUTPUTS: ; None. ; ; CALLS: ; Music_PlayWaveOrNoise ; Music_ResetTicksRemaining ; ; XREFS: ; MScripts_InvokeNext ;============================================================================
[82e3]Music_PlayOrRest: [82e3]c9 00CMP #$00; Is the value > 0? [82e5]d0 03BNE Music_PlayWaveOrNoise; If so, play it on the channel.
; ; This is a Rest. Set the duration as the number of ticks ; remaining. ;
[82e7]4c ad 83JMP Music_ResetTicksRemaining; Set the duration as the number of ticks remaining.
;============================================================================ ; Play audio on the noise of wave channels. ; ; This will determine which channel is being played and ; then begin playing the current note value in the MScript ; on that channel. ; ; INPUTS: ; A: ; The byte loaded from the MScript. ; ; MScript_CurrentChannel: ; The current channel being processed. ; ; OUTPUTS: ; Music_Noise_Index: ; The loaded index within the noise register lookup table. ; ; Music_Noise_Remaining: ; The duration of the loaded noise. ; ; CALLS: ; Music_PlayNoise ; Music_SetupWave ; ; XREFS: ; Music_PlayOrRest ;============================================================================
[82ea]Music_PlayWaveOrNoise: [82ea]ae 6a 01LDX a:MScript_CurrentChannel; Load the current music channel. [82ed]e0 03CPX #$03; Is it the noise channel? [82ef]d0 35BNE Music_SetupWave; If not, play as a wave (square or triangle).
; ; This is the Noise channel. ;
[82f1]48PHA; Push the noise value to the stack. [82f2]29 0fAND #$0f; Keep the lower nibble. [82f4]8d 69 01STA a:Music_Noise_Remaining; Store as the noise ticks remaining. [82f7]68PLA; Pop the noise value from the stack. [82f8]4aLSR A; Shift the upper nibble into the lower. [82f9]4aLSR A [82fa]4aLSR A [82fb]4aLSR A [82fc]8d 68 01STA a:Music_Noise_Index; Store as the index into the noise table.
; ; v-- Fall through --v ;
;============================================================================ ; Play audio on the noise channel. ; ; If we're not already in the middle of playing noise, and ; there's a noise index loaded to play, this will write the ; corresponding noise from the MUSIC_NOISE_REGISTER_VALUES ; lookup table to the registers. ; ; If there are sound effects being played, this will not ; play noise. ; ; Whether the noise ends up being played or silenced in ; favor of a sound effect, the number of ticks remaining ; for the noise will be set based on its duration. ; ; INPUTS: ; Music_Noise_Remaining: ; The number of ticks of noise remaining. ; ; SoundEffect_TicksRemaining: ; Ticks remaining for any sound effects on the ; noise channel. ; ; If set, noise will not play. ; ; Music_Noise_Index: ; The index of the precomputed noise to play. ; ; MUSIC_NOISE_REGISTER_VALUES: ; The table of noise register values by noise index. ; ; OUTPUTS: ; NOISE_VOL: ; NOISE_HI: ; NOISE_LO: ; Register state for the played noise. ; ; CALLS: ; Music_ResetTicksRemaining ; ; XREFS: ; MScripts_InvokeNext ;============================================================================
[82ff]Music_PlayNoise: [82ff]ce 69 01DEC a:Music_Noise_Remaining; Decrement the number of noise ticks remaining.
; ; First check if any sound effects are playing on the ; noise channel. If so, we don't want to play music (give ; the sound effects priority). ;
[8302]ad 26 01LDA a:SoundEffect_TicksRemaining_3_; Check if any sound effects are playing on the noise channel. [8305]f0 03BEQ @_noNoiseSoundEffects; If not, jump to process noise.
; ; A sound effect is playing on the noise channel. Sync ; the number of ticks remaining to the note duration. ;
[8307]4c ad 83JMP Music_ResetTicksRemaining; Set the number of ticks for this noise based on its duration.
; ; There are no more ticks remaining. Check if the noise ; index for the values table is 0 (which means no noise ; to play, just a duration). If so, we'll simply sync the ; note duration again and return. ;
[830a]@_noNoiseSoundEffects: [830a]ad 68 01LDA a:Music_Noise_Index; Load the current noise table index. [830d]d0 03BNE @_hasNoiseIndex
; ; The noise index loaded in from the byte is 0. We won't ; be playing. Instead, sync the ticks remaining from the ; current noise duration. ;
[830f]4c ad 83JMP Music_ResetTicksRemaining; Set the number of ticks for this noise based on its duration.
; ; Generate an index into the noise register value table, and ; begin writing to the registers. ;
[8312]@_hasNoiseIndex: [8312]0aASL A; Convert the index to a 4-byte boundary. [8313]0aASL A [8314]aaTAX; X = resulting index. [8315]a0 00LDY #$00; Y = 0 (loop counter/write index). [8317]@_noiseLoop: [8317]bd 7f 85LDA a:MUSIC_NOISE_REGISTER_VALUES,X; Load the register value to write from the table index. [831a]99 0c 40STA a:NOISE_VOL,Y; Write it in the appropriate register. [831d]e8INX; X++ (table read index). [831e]c8INY; Y++ (loop/write index). [831f]c0 04CPY #$04; Is the counter < 4 (max number of registers)? [8321]90 f4BCC @_noiseLoop; If so, loop. [8323]4c ad 83JMP Music_ResetTicksRemaining; Set the number of ticks for this noise based on its duration.
;============================================================================ ; TODO: Document Music_SetupWave ; ; INPUTS: ; Y ; ; OUTPUTS: ; TODO ; ; XREFS: ; Music_PlayWaveOrNoise ;============================================================================
[8326]Music_SetupWave: [8326]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel. [8329]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Is there a sound effect playing on this channel? [832c]f0 03BEQ @_setNote; If not, jump to set the note.
; ; There's a sound effect playing on the channel. Set the ; duration but skip playing. ;
[832e]4c ad 83JMP Music_ResetTicksRemaining; Set the ticks remaining to the duration of the note. [8331]@_setNote: [8331]ae 6a 01LDX a:MScript_CurrentChannel [8334]f0 1fBEQ @_setSquareWave1 [8336]caDEX [8337]f0 3dBEQ @_setSquareWave2Sweep
; ; This is the Triangle Wave channel. ; ; Set a looped play with a reload value of 64, with ; provided timer value and max length. ;
[8339]a9 c0LDA #$c0; Set looped play, length 64. [833b]8d 08 40STA a:TRI_LINEAR; Set for the Triangle channel. [833e]20 cd 83JSR Music_SetNote; Set the note to play. [8341]ad 6d 01LDA a:Music_Note_Period_Low; Load the queued low bits of the period. [8344]8d 0a 40STA a:TRI_LO; Write to the triangle register. [8347]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel being played. [834a]ad 6e 01LDA a:Music_Note_Period_High; Load the note period to play. [834d]09 f8ORA #$f8; Set the full play length. [834f]8d 0b 40STA a:TRI_HI; And set as the Triangle High. [8352]4c b7 83JMP Music_SetupTriangleWave; Jump to play the note on the channel.
; ; This is the Square Wave 1 channel. ; ; This will play the queued period for the given ; length, with sweep disabled. ;
[8355]@_setSquareWave1: [8355]20 cd 83JSR Music_SetNote; Set the note to play. [8358]a9 00LDA #$00 [835a]8d 01 40STA a:SQ1_SWEEP; Disable sweep. [835d]ad 6d 01LDA a:Music_Note_Period_Low; Load the queued low bits of the period. [8360]8d 02 40STA a:SQ1_LO; Write to the Square Wave 1 register. [8363]8d 7c 01STA a:Music_Current_SQ_Low; Store for the current Square Wave channel for processing. [8366]ad 6e 01LDA a:Music_Note_Period_High; Load the queued high bits for the period. [8369]0d 64 01ORA a:Music_SQ_Note_Lengths; OR it with the stored note length for this channel, forming the register value. [836c]8d 03 40STA a:SQ1_HI; Write to the Square Wave register. [836f]a9 00LDA #$00 [8371]8d 79 01STA a:Music_SQEnvelope_Phase; Clear the envelope phase. [8374]f0 2bBEQ @_finish; Jump to finish.
; ; This is the Square Wave 2 channel. ;
[8376]@_setSquareWave2Sweep: [8376]20 cd 83JSR Music_SetNote [8379]a9 00LDA #$00 [837b]8d 05 40STA a:SQ2_SWEEP; Disable sweep. [837e]ac 6c 01LDY a:Music_TempValue; Load the value to play. [8381]ad 6d 01LDA a:Music_Note_Period_Low; Load the queued low bits for the period. [8384]cd 81 01CMP a:Music_SQ2_TimerLowBias; Is the period low < the timer low bias? [8387]90 04BCC @_setSQ2HiLo; If so, jump. [8389]38SEC [838a]ed 81 01SBC a:Music_SQ2_TimerLowBias; Else, subtract from the period low. [838d]@_setSQ2HiLo: [838d]8d 06 40STA a:SQ2_LO; Write the result to the register. [8390]8d 7d 01STA a:Music_Current_SQ_Low_1_; And store as the low bits for the current channel. [8393]ad 6e 01LDA a:Music_Note_Period_High; Load the queued high bits for the period. [8396]0d 65 01ORA a:Music_Note_Length_High; OR it with the length bits. [8399]8d 07 40STA a:SQ2_HI; Write it to the register. [839c]a9 00LDA #$00 [839e]8d 7a 01STA a:Music_SQEnvelope_Phase_1_; Clear the envelope phase for this channel. [83a1]@_finish: [83a1]ae 6a 01LDX a:MScript_CurrentChannel; Load the current channel. [83a4]a9 ffLDA #$ff [83a6]9d 70 01STA a:Music_SQEnvelope_Value,X; Set the channel's envelope value to 0xFF. [83a9]20 ad 83JSR Music_ResetTicksRemaining; Set the ticks remaining to the note duration. [83ac]60RTS
;============================================================================ ; Set the current per-channel repeat duration. ; ; MScripts maintain a per-channel "repeat count", which ; controls how many update ticks the current ; note/rest/noise value should be held before the script ; advances to the next byte. ; ; This copies MScript_NoteDurations (set by a script) into ; Music_ChannelTicksRemaining (used for play back) for the ; current channel, which is decremented by the main music ; update loop to delay script advancement. ; ; INPUTS: ; MScript_CurrentChannel: ; The current MScript channel. ; ; MScript_NoteDurations: ; The per-channel repeat counts set by the script. ; ; OUTPUTS: ; Music_ChannelTicksRemaining: ; The remaining tick counts for playback. ; ; XREFS: ; Music_PlayNoise ; Music_PlayOrRest ; Music_SetupTriangleWave ; Music_SetupWave ;============================================================================
[83ad]Music_ResetTicksRemaining: [83ad]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel. [83b0]bd 2c 01LDA a:MScript_NoteDurations,X; Load the repeat counts for this channel. [83b3]9d 30 01STA a:Music_ChannelTicksRemaining,X; Copy them over. [83b6]60RTS
;============================================================================ ; TODO: Document Music_SetupTriangleWave ; ; INPUTS: ; A ; ; OUTPUTS: ; TODO ; ; XREFS: ; Music_SetupWave ;============================================================================
[83b7]Music_SetupTriangleWave: [83b7]20 ad 83JSR Music_ResetTicksRemaining; Set the ticks remaining to the note duration. [83ba]8d 6c 01STA a:Music_TempValue; Store it temporarily for the next set of calculations.
; ; Shift 2 of the timer bits out of the value. ; ; NOTE: This leaves 1 timer bit. Is this right? This does not ; seem right. ;
[83bd]4aLSR A; Shift right twice, keeping 1 bit of timer and 5 of length. [83be]4aLSR A [83bf]8d 78 01STA a:Music_SQEffect_Delta; Store as the delta for the effect. [83c2]ad 6c 01LDA a:Music_TempValue; Load the original value passed in. [83c5]38SEC [83c6]ed 78 01SBC a:Music_SQEffect_Delta; Subtract the delta. [83c9]8d 7e 01STA a:Music_Triangle_Remaining; Store as the ticks remaining for the channel. [83cc]60RTS
;============================================================================ ; Set the note value to play. ; ; Note values are relative semitone indices, not absolute ; pitches. They are are converted into a playable frequency ; through several transformations. ; ; The final pitch depends on: ; ; 1. The channel base offset (MUSIC_CHANNEL_NOTE_OFFSETS) ; 2. The channel transposition (Music_Channel_Transpose) ; 3. The global transposition (Music_Global_Transpose) ; 4. An octave normalization loop (12 semitones per octave) ; ; A value of 0x00 represents a rest. Any other value is ; processed through the above steps. ; ; As a result, the same byte value in different MScripts ; (or on different channels) does not necessarily produce ; the same audible pitch. ; ; XREFS: ; Music_SetupWave ;============================================================================
[83cd]Music_SetNote: [83cd]ae 6a 01LDX a:MScript_CurrentChannel [83d0]ad 6c 01LDA a:Music_TempValue [83d3]18CLC [83d4]7d 6c 85ADC a:MUSIC_CHANNEL_NOTE_OFFSETS,X [83d7]18CLC [83d8]7d 61 01ADC a:Music_Channel_Transpose,X [83db]18CLC [83dc]6d 60 01ADC a:Music_Global_Transpose [83df]8c 6f 01STY a:MScript_Unused_RawValue
; ; Loop, subtracting 12 (number of notes in our lookup ; table) each iteration, until < 0. ; ; The number of loop iterations will be used later to ; normalize the resulting note for the right octave. ;
[83e2]a0 01LDY #$01 [83e4]38SEC [83e5]@_loop1: [83e5]e9 0cSBC #$0c [83e7]c8INY [83e8]b0 fbBCS @_loop1
; ; TODO: Out of the loop. ;
[83ea]88DEY [83eb]69 0dADC #$0d [83ed]0aASL A [83ee]aaTAX [83ef]bd 52 85LDA a:AUDIO_NOTES,X [83f2]8d 6d 01STA a:Music_Note_Period_Low [83f5]bd 53 85LDA a:AUDIO_NOTES+1,X [83f8]8d 6e 01STA a:Music_Note_Period_High
; ; Convert to the note in the right octave based on ; the starting value. ;
[83fb]@_octaveLoop: [83fb]88DEY [83fc]f0 09BEQ @_return [83fe]4e 6e 01LSR a:Music_Note_Period_High [8401]6e 6d 01ROR a:Music_Note_Period_Low [8404]4c fb 83JMP @_octaveLoop [8407]@_return: [8407]60RTS
;============================================================================ ; MScript Op 0xFF: End the channel's script. ; ; XREFS: ; MSCRIPT_OP_HANDLERS [$PRG5::826a] ;============================================================================
[8408]MScript_Op_End: [8408]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel.
; ; Repeat this every time it's called. ; ; This ensures that this channel stays on this ; instruction until every channel has completed. ;
[840b]a9 01LDA #$01 [840d]9d 30 01STA a:Music_ChannelTicksRemaining,X; Set this to repeat 1 more time (infinitely). [8410]8aTXA; A = MScript channel. [8411]0aASL A; Convert to a word boundary for an address index. [8412]aaTAX; X = result.
; ; Decrement the offset into the script to keep it on this ; 0xFF operation until all channels complete. ;
[8413]b5 f2LDA Music_CurrentScriptAddrs,X; Load the current script address for this channel. [8415]d0 02BNE @_setAddr; If lower byte is not 0, jump.
; ; Lower byte of the address is 0. We'll need to decrement ; the upper byte. ;
[8417]d6 f3DEC Music_CurrentScriptAddrs+1,X; Decrement the upper byte of the address. [8419]@_setAddr: [8419]d6 f2DEC Music_CurrentScriptAddrs,X; Decrement the lower byte of the address.
; ; Mark this channel as completed. ;
[841b]ee 6b 01INC a:Music_NumChannelsCompleted; Mark the channel as complete. [841e]60RTS
;============================================================================ ; MScript Op $FD: Begin Loop. ; ; Marks the start of a loop. This address will be used ; when looping. ; ; The loop will end when after it completes the specified ; number of loops, or when another operation breaks out ; of the loop. ; ; The initial loop counter is set to 1 internally. ; ; Loops cannot be nested. ; ; ARGS: ; 1. Number of iterations (1 byte) ;============================================================================
[841f]MScript_Op_BeginLoop:
; ; Read the number of iterations to loop from the script. ;
[841f]20 44 85JSR MScripts_GetNextValue; Load the next value from the script. [8422]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel. [8425]9d 48 01STA a:MScript_LoopLength,X; Store the length of this loop to the next value.
; ; Set the starting value for the loop counter (1). ;
[8428]a9 01LDA #$01 [842a]9d 4c 01STA a:MScript_LoopCounter,X; Set the starting loop counter to 1.
; ; Store the start address of the loop. ;
[842d]8aTXA; A = Loop length. [842e]0aASL A; Convert to a word boundary for an index. [842f]aaTAX; X = resulting index. [8430]b5 f2LDA Music_CurrentScriptAddrs,X; Load the lower byte of the current script address for the channel. [8432]9d 38 01STA a:MScript_LoopStartAddrs,X; Store as the lower byte of the starting address for the loop. [8435]b5 f3LDA Music_CurrentScriptAddrs+1,X; Load the upper byte. [8437]9d 39 01STA a:MScript_LoopStartAddrs+1,X; Store that.
; ; We're done. Invoke the next op in the script. ;
[843a]4c 3a 82JMP MScripts_InvokeNext; Invoke the next operation.
;============================================================================ ; MSCript Op $FE: Restart Loop If >= N Iterations ; ; If >= N iterations have been completed, restart the ; loop, advancing the loop iteration count. ; ; If < N iterations have been completed, proceed with ; the next operation in the script. ; ; ARGS: ; 1. Number of iterations to check (1 byte) ;============================================================================
[843d]MScript_Op_NextLoopIfNCompleted: [843d]20 44 85JSR MScripts_GetNextValue; Load the current MScript channel. [8440]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel. [8443]dd 4c 01CMP a:MScript_LoopCounter,X; Has the specified number of loops been completed? [8446]b0 0dBCS @_invokeNext; If so, invoke the next operation within this loop.
; ; The specified number of loops have not been completed. ; Restart the loop. ;
[8448]8aTXA; A = Current channel. [8449]0aASL A; Convert to a word boundary for lookup tables. [844a]aaTAX; X = result. [844b]bd 40 01LDA a:MScript_LoopEndAddrs,X; Load the lower byte of the loop end address. [844e]95 f2STA Music_CurrentScriptAddrs,X; Set as the lower byte of the next address. [8450]bd 41 01LDA a:MScript_LoopEndAddrs+1,X; Load the upper byte of the loop end address. [8453]95 f3STA Music_CurrentScriptAddrs+1,X; Set as the upper byte of the next address. [8455]@_invokeNext: [8455]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; MScript Op $FC: End Loop. ; ; Marks the end of the loop. ; ; If the loop counter has hit the loop length (and ; remember, the loop counter is 1-based), the loop will ; end. ; ; If it's under the loop length, the loop will restart. ;============================================================================
[8458]MScript_Op_EndLoop: [8458]ae 6a 01LDX a:MScript_CurrentChannel; Load the current MScript channel. [845b]bd 4c 01LDA a:MScript_LoopCounter,X; Load the current loop counter. [845e]dd 48 01CMP a:MScript_LoopLength,X; Is it >= the loop length? [8461]b0 1aBCS @_invokeNext; If so, invoke the next operation after the loop.
; ; The script can continue to loop. ;
[8463]fe 4c 01INC a:MScript_LoopCounter,X; Increment the loop counter. [8466]8aTXA; A = MScript channel. [8467]0aASL A; Convert to a word boundary for lookup tables. [8468]aaTAX; X = resulting index.
; ; Set the current script address as the end of the loop. ;
[8469]b5 f2LDA Music_CurrentScriptAddrs,X; Load the lower byte of the current script address. [846b]9d 40 01STA a:MScript_LoopEndAddrs,X; Set as the lower byte of the end of the loop. [846e]b5 f3LDA Music_CurrentScriptAddrs+1,X; Load the upper byte of the current script address. [8470]9d 41 01STA a:MScript_LoopEndAddrs+1,X; Set as the upper byte of the end of the loop.
; ; Set the start of the loop as the current script address. ;
[8473]bd 38 01LDA a:MScript_LoopStartAddrs,X; Load the lower byte of the address of the start of the loop. [8476]95 f2STA Music_CurrentScriptAddrs,X; Set as the lower byte of the current script address. [8478]bd 39 01LDA a:MScript_LoopStartAddrs+1,X; Load the upper byte of the address of the start of the loop. [847b]95 f3STA Music_CurrentScriptAddrs+1,X; Set as the upper byte of the current script address.
; ; We're done. Proceed with the script, either looping or ; moving on from the loop. ;
[847d]@_invokeNext: [847d]4c 3a 82JMP MScripts_InvokeNext; Invoke the next operation in the script.
;============================================================================ ; MScript Op $FA: No-Op ; ; Does nothing. Simply acts as padding to help keep ; scripts across channels in sync. ;============================================================================
[8480]MScript_Op_NoOp: [8480]4c 3a 82JMP MScripts_InvokeNext; Invoke the next operation in the script.
;============================================================================ ; TODO: Document MScript_Op_SetControlBits ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8483]MScript_Op_SetControlBits: [8483]20 44 85JSR MScripts_GetNextValue [8486]ae 6a 01LDX a:MScript_CurrentChannel [8489]9d 72 01STA a:Music_SQ_ControlBits,X [848c]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_SaveAddr ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[848f]MScript_Op_SaveAddr: [848f]20 95 84JSR MScript_Op_SaveAddr_Store [8492]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_SaveAddr_Store ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; MScript_Op_SaveAddr ;============================================================================
[8495]MScript_Op_SaveAddr_Store: [8495]ad 6a 01LDA a:MScript_CurrentChannel [8498]0aASL A [8499]aaTAX [849a]b5 f2LDA Music_CurrentScriptAddrs,X [849c]9d 50 01STA a:MScript_SavedAddr,X [849f]b5 f3LDA Music_CurrentScriptAddrs+1,X [84a1]9d 51 01STA a:MScript_SavedAddr+1,X [84a4]60RTS
;============================================================================ ; TODO: Document MScript_Op_RestoreAddr ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[84a5]MScript_Op_RestoreAddr: [84a5]ad 6a 01LDA a:MScript_CurrentChannel [84a8]0aASL A [84a9]aaTAX [84aa]bd 50 01LDA a:MScript_SavedAddr,X [84ad]95 f2STA Music_CurrentScriptAddrs,X [84af]bd 51 01LDA a:MScript_SavedAddr+1,X [84b2]95 f3STA Music_CurrentScriptAddrs+1,X [84b4]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_RestartChannel ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[84b7]MScript_Op_RestartChannel: [84b7]a5 faLDA Music_Current [84b9]0aASL A [84ba]0aASL A [84bb]38SEC [84bc]e9 04SBC #$04 [84be]0aASL A [84bf]a8TAY [84c0]a2 00LDX #$00 [84c2]@_loop: [84c2]b9 fb 8eLDA a:MSCRIPTS_TITLESCREEN,Y [84c5]95 f2STA Music_CurrentScriptAddrs,X [84c7]c8INY [84c8]e8INX [84c9]e0 08CPX #$08 [84cb]d0 f5BNE @_loop [84cd]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_JumpSubroutine ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[84d0]MScript_Op_JumpSubroutine: [84d0]20 44 85JSR MScripts_GetNextValue [84d3]48PHA [84d4]20 44 85JSR MScripts_GetNextValue [84d7]48PHA [84d8]ad 6a 01LDA a:MScript_CurrentChannel [84db]0aASL A [84dc]aaTAX [84dd]b5 f2LDA Music_CurrentScriptAddrs,X [84df]9d 58 01STA a:MScript_PushedAddrs,X [84e2]b5 f3LDA Music_CurrentScriptAddrs+1,X [84e4]9d 59 01STA a:MScript_PushedAddrs+1,X [84e7]68PLA [84e8]95 f3STA Music_CurrentScriptAddrs+1,X [84ea]68PLA [84eb]95 f2STA Music_CurrentScriptAddrs,X [84ed]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_Return ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[84f0]MScript_Op_Return: [84f0]ad 6a 01LDA a:MScript_CurrentChannel; Load the current channel. [84f3]0aASL A; Shift to a word boundary. [84f4]aaTAX; X = Result. [84f5]bd 58 01LDA a:MScript_PushedAddrs,X; Load the lower byte of the pushed address. [84f8]95 f2STA Music_CurrentScriptAddrs,X; Set for the script address. [84fa]bd 59 01LDA a:MScript_PushedAddrs+1,X; Load the upper byte. [84fd]95 f3STA Music_CurrentScriptAddrs+1,X; And set that. [84ff]4c 3a 82JMP MScripts_InvokeNext; Invoke the script there.
;============================================================================ ; TODO: Document MScript_Op_SetChannelTranspose ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8502]MScript_Op_SetChannelTranspose: [8502]20 44 85JSR MScripts_GetNextValue [8505]ae 6a 01LDX a:MScript_CurrentChannel [8508]9d 61 01STA a:Music_Channel_Transpose,X [850b]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_SetGlobalTranspose ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[850e]MScript_Op_SetGlobalTranspose: [850e]20 44 85JSR MScripts_GetNextValue [8511]8d 60 01STA a:Music_Global_Transpose [8514]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_SetSQVol ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8517]MScript_Op_SetSQVol: [8517]20 44 85JSR MScripts_GetNextValue [851a]ae 6a 01LDX a:MScript_CurrentChannel [851d]9d 74 01STA a:Music_SQ_Fades,X [8520]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; MScript Op $F0: Set the envelope mode for the Square Wave. ; ; This supports the following values: ; ; 0: Volume decay ; ; Ramps down the volume smoothly. ; ; 1: Curve but held ; ; Clamps the envelope into a range 0..15 and then slows ; the decay. ; ; 2: Pre-built attack/decay curve ; ; Pitches up and then down in a set pattern. ;============================================================================
[8523]MScript_Op_SetSQEnvelopeMode: [8523]20 44 85JSR MScripts_GetNextValue [8526]ae 6a 01LDX a:MScript_CurrentChannel [8529]9d 76 01STA a:Music_SQEnvelope_Mode,X [852c]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScript_Op_SetSQPitchEffectDepth ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[852f]MScript_Op_SetSQPitchEffectDepth: [852f]20 44 85JSR MScripts_GetNextValue [8532]ae 6a 01LDX a:MScript_CurrentChannel [8535]9d 7f 01STA a:Music_SQPitchDelta_Mask,X [8538]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; MScript Op $EE: Set the SQ2 pitch bias (detune). ; ; This operation applies a SQ2-only pitch adjustment by ; subtracting a small value from the low byte of the ; square wave timer period before writing to SQ2_LO. ; ; The value is compared against the computed timer low ; byte and clamped to avoid underflow. This produces a ; subtle upward pitch shift when non-zero. ; ; This is not related to note length or envelope timing. ; It is a pitch modification applied after note ; calculation, before writing to the APU. ; ; This may be used to provide a simple chorus/harmony ; effect. ; ; A value of 0 disables this effect. ;============================================================================
[853b]MScript_Op_SetSQ2Detune: [853b]20 44 85JSR MScripts_GetNextValue [853e]8d 81 01STA a:Music_SQ2_TimerLowBias [8541]4c 3a 82JMP MScripts_InvokeNext
;============================================================================ ; TODO: Document MScripts_GetNextValue ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ; ; XREFS: ; MScript_Op_BeginLoop ; MScript_Op_JumpSubroutine ; MScript_Op_NextLoopIfNCompleted ; MScript_Op_RepeatValue ; MScript_Op_SetChannelTranspose ; MScript_Op_SetControlBits ; MScript_Op_SetGlobalTranspose ; MScript_Op_SetSQ2Detune ; MScript_Op_SetSQEnvelopeMode ; MScript_Op_SetSQPitchEffectDepth ; MScript_Op_SetSQVol ; MScripts_InvokeNext ;============================================================================
[8544]MScripts_GetNextValue: [8544]ad 6a 01LDA a:MScript_CurrentChannel [8547]0aASL A [8548]aaTAX [8549]a1 f2LDA (Music_CurrentScriptAddrs,X) [854b]f6 f2INC Music_CurrentScriptAddrs,X [854d]d0 02BNE @_return [854f]f6 f3INC Music_CurrentScriptAddrs+1,X [8551]@_return: [8551]60RTS
;============================================================================ ; Base note lookup table for 12 semitones (C..B), used ; with octave normalization. ; ; XREFS: ; Music_SetNote ; SoundEffect_SetNote ;============================================================================
; ; XREFS: ; Music_SetNote ; SoundEffect_SetNote ;
[8552]AUDIO_NOTES: [8552]00 00.word $0000; [0]: Unused/padding [8554]ae 06.word $06ae; [1]: C2 [8556]4e 06.word $064e; [2]: C2#2 [8558]f3 05.word $05f3; [3]: D2 [855a]9f 05.word $059f; [4]: D2#2 [855c]4d 05.word $054d; [5]: E2 [855e]01 05.word $0501; [6]: F2 [8560]b9 04.word $04b9; [7]: F2#2 [8562]75 04.word $0475; [8]: G2 [8564]35 04.word $0435; [9]: G2#2 [8566]f8 03.word $03f8; [10]: A2 [8568]bf 03.word $03bf; [11]: A2#2 [856a]89 03.word $0389; [12]: B2
;============================================================================ ; Signed semitone offsets for pitched channels. ; ; Noise appears to be a sentinel. ; ; XREFS: ; Music_SetNote ;============================================================================
; ; XREFS: ; Music_SetNote ;
[856c]MUSIC_CHANNEL_NOTE_OFFSETS: [856c]f4.byte $f4; [0]: Square Wave 1 [856d]f4.byte $f4; [1]: Square Wave 2 [856e]0c.byte $0c; [2]: Triangle
;============================================================================ ; Pairs of a lower bound (for note length matching) and a resulting length. ; ; XREFS: ; MScripts_SetNoteLengthFromValue ;============================================================================
; ; XREFS: ; MScripts_SetNoteLengthFromValue ;
[856f]NOTE_LENGTH_CMP_LOWER_BOUNDS: [856f]7f.byte $7f; If X >= 127:
; ; XREFS: ; MScripts_SetNoteLengthFromValue ;
[8570]NOTE_LENGTH_VALUES: [8570]08.byte $08; Length = 8
; ; XREFS: ; MScripts_SetNoteLengthFromValue ;
[8571]BYTE_PRG5__8571: [8571]60.byte $60; If X >= 96:
; ; XREFS: ; MScripts_SetNoteLengthFromValue ;
[8572]BYTE_PRG5__8572: [8572]c0.byte $c0; Length = 192 [8573]50.byte $50; If X >= 80: [8574]40.byte $40; Length = 64 [8575]30.byte $30; If X >= 48: [8576]b0.byte $b0; Length = 176 [8577]28.byte $28; If X >= 40: [8578]30.byte $30; Length = 48 [8579]24.byte $24; If X >= 36: [857a]d0.byte $d0; Length = 208 [857b]1e.byte $1e; If X >= 30: [857c]50.byte $50; Length = 80 [857d]18.byte $18; If X >= 24: [857e]a0.byte $a0; Length = 160
;============================================================================ ; Lookup table of noise indexes to register state. ; ; NOTE: The data actually starts 4 bytes lower (at {@address 8583}). ; This label is actually placed within ; MUSIC_CHANNEL_NOTE_OFFSETS. The reason they're ; doing this is to save an operation. An index into ; this table will always start at 1 (an index of 0 ; has a special meaning), and they don't want to have ; to normalize the value before lookup. Hence starting ; it 4 bytes early. ; ; XREFS: ; Music_PlayNoise ;============================================================================
; ; XREFS: ; Music_PlayNoise ;
[857f]MUSIC_NOISE_REGISTER_VALUES: [857f]14.byte $14; If X >= 20: [8580]20.byte $20; Length = 32 [8581]00.byte $00; If X >= 0 (last possible value): [8582]f0.byte $f0; Length = 240
;============================================================================ ; This is the *actual* start of the noise register values. ;============================================================================
[8583]REAL_MUSIC_NOISE_REGISTER_VALUES: [8583]00.byte $00; [0]: Volume of 0. [8584]00.byte $00; [1]: Unused. [8585]0f.byte $0f; [2]: Noise mode 0, period 15. [8586]20.byte $20; [3]: Length 4. [8587]00.byte $00; [0]: Volume of 0. [8588]00.byte $00; [1]: Unused. [8589]0a.byte $0a; [2]: Noise mode 0, period 10. [858a]10.byte $10; [3]: Length 2. [858b]00.byte $00; [0]: Volume of 0. [858c]00.byte $00; [1]: Unused. [858d]05.byte $05; [2]: Noise mode 0, period 5. [858e]00.byte $00; [3]: Length 0. [858f]ff.byte $ff; byte
;============================================================================ ; Table of sound effects to handler table indexes. ; ; XREFS: ; SoundEffects_HandleOnInterrupt ;============================================================================
; ; XREFS: ; SoundEffects_HandleOnInterrupt ;
[8590]SOUND_EFFECT_HANDLER_INDEXES: [8590]00.byte $00; [0]: Set up sound effects [8591]2c.byte $2c; [1]: Message [8592]60.byte $60; [2]: Hit Enemy [8593]5c.byte $5c; [3]: Enemy died [8594]64.byte $64; [4]: Player hit [8595]70.byte $70; [5]: Magic [8596]38.byte $38; [6]: Open door [8597]40.byte $40; [7]: Typing [8598]4c.byte $4c; [8]: Item picked up [8599]50.byte $50; [9]: Coin touched [859a]68.byte $68; [10]: Magic hit by obstacle [859b]30.byte $30; [11]: Cursor moved [859c]58.byte $58; [12]: Shield hit by magic [859d]34.byte $34; [13]: Character inputted [859e]28.byte $28; [14]: Password character entered [859f]3c.byte $3c; [15]: Pushing block [85a0]54.byte $54; [16]: Coin dropped [85a1]48.byte $48; [17]: ?? Unused [85a2]44.byte $44; [18]: Pakukame [85a3]24.byte $24; [19]: Fill HP or MP [85a4]6c.byte $6c; [20]: Tilte magic spell [85a5]1c.byte $1c; [21]: Step sound [85a6]10.byte $10; [22]: Player died [85a7]14.byte $14; [23]: Ladder dropped [85a8]18.byte $18; [24]: Show player menu [85a9]20.byte $20; [25]: Changed gold amount [85aa]0c.byte $0c; [26]: Use special item 2 [85ab]08.byte $08; [27]: Bread touched [85ac]04.byte $04; [28]: Coin touched
;============================================================================ ; A jump table of sound effect handler functions. ; ; This table is in pairs of sound effect setup and on-tick ; handlers. The setup handler runs when loading a new sound ; effect, and the on-tick handler runs for any existing ; loaded sound effect. ; ; These may be separate functions, or two parts of ; essentially the same function. ; ; XREFS: ; SoundEffects_HandleOnInterrupt ;============================================================================
; ; XREFS: ; SoundEffects_HandleOnInterrupt ;
[85ad]SOUND_EFFECT_HANDLERS: [85ad]80 86pointer SoundEffects_Init-1; SoundEffects_Init [85af]7f 86pointer SoundEffect_NoOp-1; SoundEffect_NoOp [85b1]ca 8epointer SoundEffect_CoinTouched_Setup-1; 0x04 [85b3]cd 8epointer SoundEffect_CoinTouched_OnTick-1; SoundEffect_CoinTouched_OnTick [85b5]75 8epointer SoundEffect_BreadTouched_Setup-1; 0x08 [85b7]87 8epointer SoundEffect_BreadTouched_OnTick-1; SoundEffect_BreadTouched_OnTick [85b9]d7 8dpointer SoundEffect_Maybe_UseSpecialItem2_Setup-1; 0x0C [85bb]ea 8dpointer SoundEffect_Maybe_UseSpecialItem2_OnTick-1; SoundEffect_Maybe_UseSpecialItem2_OnTick [85bd]9b 8cpointer SoundEffect_PlayerDied_Setup-1; 0x10 [85bf]b3 8cpointer SoundEffect_PlayerDied_OnTick-1; SoundEffect_PlayerDied_OnTick [85c1]2b 8dpointer SoundEffect_LadderDropped_Setup-1; 0x14 [85c3]35 8dpointer SoundEffect_LadderDropped_OnTick-1; SoundEffect_LadderDropped_OnTick [85c5]5e 8dpointer SoundEffect_ShowPlayerMenu_Setup-1; 0x18 [85c7]70 8dpointer SoundEffect_ShowPlayerMenu_OnTick-1; SoundEffect_ShowPlayerMenu_OnTick [85c9]68 8cpointer SoundEffect_Maybe_Step_Setup-1; 0x1C [85cb]72 8cpointer SoundEffect_Maybe_Step_OnTick-1; SoundEffect_Maybe_Step_OnTick [85cd]b8 8dpointer SoundEffect_GoldAmountChanged_Setup-1; 0x20 [85cf]20 86pointer SoundEffects_DecrementCounter-1; SoundEffects_DecrementCounter [85d1]b2 8bpointer SoundEffect_FillHPOrMP_Setup-1; 0x24 [85d3]c4 8bpointer SoundEffect_FillHPOrMP_OnTick-1; SoundEffect_FillHPOrMP_OnTick [85d5]7d 8apointer SoundEffect_PasswordCharInput_Setup-1; 0x28 [85d7]20 86pointer SoundEffects_DecrementCounter-1; SoundEffects_DecrementCounter [85d9]9d 86pointer SoundEffect_Message_Setup-1; 0x2C [85db]a7 86pointer SoundEffect_Message_OnTick-1; SoundEffect_Message_OnTick [85dd]a7 89pointer SoundEffect_CursorMoved_Setup-1; 0x30 [85df]b1 89pointer SoundEffect_CursorMoved_OnTick-1; SoundEffect_CursorMoved_OnTick [85e1]3c 8apointer SoundEffect_CharacterInput_Setup-1; 0x34 [85e3]46 8apointer SoundEffect_CharacterInput_OnTick-1; SoundEffect_CharacterInput_OnTick [85e5]09 88pointer SoundEffect_OpenDoor_Setup-1; 0x38 [85e7]1e 88pointer SoundEffect_OpenDoor_OnTick-1; SoundEffect_OpenDoor_OnTick [85e9]9c 8apointer SoundEffect_PushBlock_Setup-1; 0x3C [85eb]a6 8apointer SoundEffect_PushBlock_OnTick-1; SoundEffect_PushBlock_OnTick [85ed]6c 88pointer SoundEffect_Maybe_Typing_Setup-1; 0x40 [85ef]76 88pointer SoundEffect_Maybe_Typing_OnTick-1; SoundEffect_Maybe_Typing_OnTick [85f1]64 8bpointer SoundEffect_Pakukame_Setup-1; 0x44 [85f3]6e 8bpointer SoundEffect_Pakukame_OnTick-1; SoundEffect_Pakukame_OnTick [85f5]07 8bpointer SoundEffect_0x48_Setup-1; 0x48 [85f7]1e 8bpointer SoundEffect_0x48_OnTick-1; SoundEffect_0x48_OnTick [85f9]c4 88pointer SoundEffect_ItemPickedUp_Setup-1; 0x4C [85fb]d1 88pointer SoundEffect_ItemPickedUp_OnTick-1; SoundEffect_ItemPickedUp_OnTick [85fd]1e 89pointer SoundEffect_CoinTouchedCommon_Setup-1; 0x50 [85ff]2d 89pointer SoundEffect_CoinTouchedCommon_OnTick-1; SoundEffect_CoinTouchedCommon_OnTick [8601]cf 8apointer SoundEffect_CoinDropped_Setup-1; 0x54 [8603]d9 8apointer SoundEffect_CoinDropped_OnTick-1; SoundEffect_CoinDropped_OnTick [8605]04 8apointer SoundEffect_ShieldHitByMagic_Setup-1; 0x58 [8607]0e 8apointer SoundEffect_ShieldHitByMagic_OnTick-1; SoundEffect_ShieldHitByMagic_OnTick [8609]33 87pointer SoundEffect_EnemyDied_Setup-1; 0x5C [860b]42 87pointer SoundEffect_EnemyDied_OnTick-1; SoundEffect_EnemyDied_OnTick [860d]d2 86pointer SoundEffect_HitEnemy_Setup-1; 0x60 [860f]df 86pointer SoundEffect_HitEnemy_OnTick-1; SoundEffect_HitEnemy_OnTick [8611]70 87pointer SoundEffect_HitPlayer_Setup-1; 0x64 [8613]7a 87pointer SoundEffect_HitPlayer_OnTick-1; SoundEffect_HitPlayer_OnTick [8615]72 89pointer SoundEffect_MagicHitObstacle_Setup-1; 0x68 [8617]81 89pointer SoundEffect_MagicHitObstacle_OnTick-1; SoundEffect_MagicHitObstacle_OnTick [8619]06 8cpointer SoundEffect_Tilte_Setup-1; 0x6C [861b]1d 8cpointer SoundEffect_Tilte_OnTick-1; SoundEffect_Tilte_OnTick [861d]b4 87pointer SoundEffect_Magic_Setup-1; 0x70 [861f]c1 87pointer SoundEffect_Magic_OnTick-1; SoundEffect_Magic_OnTick
;============================================================================ ; TODO: Document SoundEffects_DecrementCounter ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8621]SoundEffects_DecrementCounter: [8621]ce 27 01DEC a:SoundEffect_State_Counter [8624]d0 08BNE Sound_ResetCurrentSound_Return
;============================================================================ ; TODO: Document Sound_ResetCurrentSound ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; SoundEffect_0x48_OnTick ; SoundEffect_BreadTouched_OnTick ; SoundEffect_CharacterInput_OnTick ; SoundEffect_CoinDropped_OnTick ; SoundEffect_CoinTouchedCommon_OnTick ; SoundEffect_CursorMoved_OnTick ; SoundEffect_EnemyDied_OnTick ; SoundEffect_FillHPOrMP_OnTick ; SoundEffect_HitEnemy_OnTick ; SoundEffect_HitPlayer_OnTick ; SoundEffect_ItemPickedUp_OnTick ; SoundEffect_LadderDropped_OnTick ; SoundEffect_MagicHitObstacle_OnTick ; SoundEffect_Magic_OnTick ; SoundEffect_Maybe_Step_OnTick ; SoundEffect_Maybe_Typing_OnTick ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_Message_OnTick ; SoundEffect_OpenDoor_OnTick ; SoundEffect_Pakukame_OnTick ; SoundEffect_PlayerDied_OnTick ; SoundEffect_PushBlock_OnTick ; SoundEffect_ShieldHitByMagic_OnTick ; SoundEffect_ShowPlayerMenu_OnTick ; SoundEffect_Tilte_OnTick ; SoundEffects_HandleOnInterrupt ;============================================================================
[8626]Sound_ResetCurrentSound: [8626]a9 00LDA #$00 [8628]8d 22 01STA a:SoundEffect_HandlerIndex [862b]8d 21 01STA a:SoundEffect_Unused_PriorityID
; ; XREFS: ; SoundEffects_DecrementCounter ;
[862e]Sound_ResetCurrentSound_Return: [862e]60RTS
;============================================================================ ; TODO: Document SoundEffects_HandleOnInterrupt ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; thunk_SoundEffects_HandleOnInterrupt ;============================================================================
[862f]SoundEffects_HandleOnInterrupt:
; ; Loop through all channels, decrementing the sound effect ; tick count for each. ;
[862f]a2 03LDX #$03; X = 3 (channel loop counter). [8631]@_checkActiveEffectsLoop: [8631]bd 23 01LDA a:SoundEffect_TicksRemaining,X; Load the sound effect ticks remaining for this channel. [8634]f0 03BEQ @_prepareNextActiveEffectsLoopIter; If this channel is done, prepare for the next iteration. [8636]de 23 01DEC a:SoundEffect_TicksRemaining,X; Reduce the ticks remaining by 1. [8639]@_prepareNextActiveEffectsLoopIter: [8639]caDEX; X-- (loop counter). [863a]10 f5BPL @_checkActiveEffectsLoop; If >= 0, loop.
; ; Check if the current sound effect is playing or just set. ; ; Playing is indicated by bit 7 == 1. ;
[863c]a5 fbLDA SoundEffect_Current; Load the ID of the sound effect that's set. [863e]30 2fBMI @_runOnTickHandler; If the sound effect is playing (bit 7 is set), jump to load the current handler.
; ; The sound effect is set but not currently playing. ; Mark it as playing. ;
[8640]aaTAX; X = A (sound effect ID). [8641]09 80ORA #$80; Set the Playing state (bit 7). [8643]85 fbSTA SoundEffect_Current; Update the sound effect. [8645]e0 1dCPX #$1d; Is this sound ID in range? [8647]b0 26BCS @_runOnTickHandler; If so, load and run the on-tick handler.
; ; The sound effect ID is in range. Check if we have a ; computed sound effect handler for it. ;
[8649]ad 22 01LDA a:SoundEffect_HandlerIndex; Load the current sound effect handler index. [864c]f0 0aBEQ @_newHandler; If 0 (init sound), we're ready to jump to load a new handler.
; ; There's an existing sound effect handler being used. ; Check if it matches the sound effect to play, and then ; either use it or load a new handler. ;
[864e]bd 90 85LDA a:SOUND_EFFECT_HANDLER_INDEXES,X; Load the sound effect handler index for this sound effect. [8651]cd 22 01CMP a:SoundEffect_HandlerIndex; Does it match the existing handler? [8654]90 02BCC @_newHandler; If not, look for a new handler and reset for the sound. [8656]d0 17BNE @_runOnTickHandler; Else, it's a match, so just load the handler to run it.
; ; Reset the sound effect handler and state for a new sound ; effect. ;
[8658]@_newHandler: [8658]bd 90 85LDA a:SOUND_EFFECT_HANDLER_INDEXES,X; Load the sound effect handler index for this ID. [865b]8d 22 01STA a:SoundEffect_HandlerIndex; Store as the new index. [865e]aaTAX; X = A (index).
; ; Clear out the number of ticks remaining for the old sound ; effect. ;
[865f]a9 00LDA #$00 [8661]8d 23 01STA a:SoundEffect_TicksRemaining; SQ1 ticks remaining = 0 [8664]8d 24 01STA a:SoundEffect_TicksRemaining_1_; SQ2 ticks remaining = 0 [8667]8d 25 01STA a:SoundEffect_TicksRemaining_2_; TRI ticks remaining = 0 [866a]8d 26 01STA a:SoundEffect_TicksRemaining_3_; Noise ticks remaining = 0 [866d]f0 05BEQ @_checkAndRunHandler; Immediately jump to check and run the setup handler for the sound effect.
; ; Load the secondary, on-tick stage for the sound effect ; handler. ; ; Every sound effect handler has a setup stage and an ; on-tick stage. Pairs of each are in the sound effect ; handlers table. ;
[866f]@_runOnTickHandler: [866f]ae 22 01LDX a:SoundEffect_HandlerIndex; Load the index of the sound effect handler. [8672]e8INX; Advance to the next address for the on-tick handler. [8673]e8INX
; ; Check if the sound effect index is within bounds of the ; handlers table. ; ; Note that the last sound effect handler index is 0x70, but ; 0x72 would be the last on-tick handler. This is checking ; that this is < 0x74, with the idea being that 0x73 would ; never be set (unless there was a major programming flaw). ;
[8674]@_checkAndRunHandler: [8674]e0 74CPX #$74; Is this a valid sound effect within the handlers lookup table? [8676]b0 aeBCS Sound_ResetCurrentSound; If not, reset the current sound effect. [8678]bd ae 85LDA a:SOUND_EFFECT_HANDLERS+1,X; Load the upper byte of the handler address. [867b]48PHA; Push it to the stack. [867c]bd ad 85LDA a:SOUND_EFFECT_HANDLERS,X; Load the lower byte. [867f]48PHA; Push it to the stack.
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_NoOp ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8680]SoundEffect_NoOp: [8680]60RTS
;============================================================================ ; Initialize support for sound effects. ; ; This will clear out state, perform an audio reset, and ; then enable the SQ1, SQ2, TRI, and Noise channels. ; ; INPUTS: ; None. ; ; OUTPUTS: ; DMC_RAW: ; Set to 0. ; ; SND_CHN: ; Set to 0xF (SQ1/SQ2/TRI/Noise). ; ; SoundEffect_Unused_PriorityID: ; SoundEffect_TicksRemaining: ; SoundEffect_TicksRemaining+1: ; $0125: ; $0126: ; Set to 0. ; ; CALLS: ; Audio_Reset ; ; XREFS: ; SOUND_EFFECT_HANDLERS [$PRG5::85ad] ; thunk_SoundEffects_Init ;============================================================================
[8681]SoundEffects_Init: [8681]a9 00LDA #$00 [8683]8d 11 40STA a:DMC_RAW; Disable raw DMC.
; ; Clear the ticks remaining for all sound effect channels. ;
[8686]8d 23 01STA a:SoundEffect_TicksRemaining; Set SQ1 ticks remaining = 0. [8689]8d 24 01STA a:SoundEffect_TicksRemaining_1_; Set SQ2 ticks remaining = 0. [868c]8d 25 01STA a:SoundEffect_TicksRemaining_2_; Set TRI ticks remaining = 0. [868f]8d 26 01STA a:SoundEffect_TicksRemaining_3_; Set Noise ticks remaining = 0. [8692]8d 21 01STA a:SoundEffect_Unused_PriorityID; Set priority ID (unused) to 0.
; ; Perform an audio reset and then enable the SQ1/SQ2/TRI/Noise ; channels. ;
[8695]20 4a 80JSR Audio_Reset; Reset the audio. [8698]a9 0fLDA #$0f [869a]8d 15 40STA a:SND_CHN; Enable channels. [869d]60RTS
;============================================================================ ; TODO: Document SoundEffect_Message_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[869e]SoundEffect_Message_Setup: [869e]a9 06LDA #$06 [86a0]8d 26 01STA a:SoundEffect_TicksRemaining_3_; Set TRI ticks remaining to 6. [86a3]a9 00LDA #$00 [86a5]8d 27 01STA a:SoundEffect_State_Counter; Set state counter to 0.
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Message_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[86a8]SoundEffect_Message_OnTick: [86a8]a9 1fLDA #$1f [86aa]8d 0c 40STA a:NOISE_VOL; Set Noise volume to 31.
; ; Load a value from the lookup table for NOISE_LO. ; ; This switches sounds every 2 ticks, producing a typing ; sound. ; ; BUG: ; And this is fascinating. The loud clack-clack typing ; sound, reminiscent of an old typewriter, appears to ; be a bug. ; ; SOUNDEFFECT_MESSAGE_NOISE_LO defines the ; typing sounds, and produces a much softer sound, one ; that feels more appropriate considering other NES ; games. ; ; That's not what's used, though. The AND #$02 instruction ; produces an offset of 0 or 2, with 2 causing an ; out-of-bounds read, pulling #$A9 out of the following ; function (an LDA instruction). This is much sharper than ; #$01, producing that sound. ; ; My guess is they originally had an AND #$01, and wanted ; to reduce the sound change from every tick to every ; other tick, but didn't update the table with a padding ; byte, so it overflowed. ; ; Maybe they were aiming for this as a hack at this ; point, or maybe they messed up but nobody really noticed ; because the sound ended up sounding so good and thus ; passed QA. In any case, the shipped behavior does not ; match the original intent of this code. ;
[86ad]ad 27 01LDA a:SoundEffect_State_Counter; Load the sound effect counter. [86b0]29 02AND #$02; Keep bit 1 (on 2 ticks, off 2 ticks). [86b2]aaTAX; X = result. [86b3]bd d1 86LDA a:SOUNDEFFECT_MESSAGE_NOISE_LO,X; Load the NOISE_LO value for this state. [86b6]8d 0e 40STA a:NOISE_LO [86b9]a9 00LDA #$00 [86bb]8d 0f 40STA a:NOISE_HI [86be]ee 27 01INC a:SoundEffect_State_Counter [86c1]ad 27 01LDA a:SoundEffect_State_Counter [86c4]c9 04CMP #$04 [86c6]90 08BCC @_return [86c8]a9 10LDA #$10 [86ca]8d 0c 40STA a:NOISE_VOL [86cd]4c 26 86JMP Sound_ResetCurrentSound [86d0]@_return: [86d0]60RTS
; ; XREFS: ; SoundEffect_Message_OnTick ;
[86d1]SOUNDEFFECT_MESSAGE_NOISE_LO: [86d1]10.byte $10; [0]: [86d2]01.byte $01; [1]:
;============================================================================ ; TODO: Document SoundEffect_HitEnemy_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[86d3]SoundEffect_HitEnemy_Setup: [86d3]a9 14LDA #$14 [86d5]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [86d8]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [86db]a9 00LDA #$00 [86dd]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_HitEnemy_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[86e0]SoundEffect_HitEnemy_OnTick: [86e0]ae 27 01LDX a:SoundEffect_State_Counter [86e3]bd 24 87LDA a:SOUNDEFFECT_HIT_ENEMY_NOTES,X [86e6]c9 ffCMP #$ff [86e8]d0 0bBNE @_play [86ea]a9 10LDA #$10 [86ec]8d 04 40STA a:SQ2_VOL [86ef]8d 0c 40STA a:NOISE_VOL [86f2]4c 26 86JMP Sound_ResetCurrentSound [86f5]@_play: [86f5]20 d1 8eJSR SoundEffect_SetNote [86f8]a9 5fLDA #$5f [86fa]8d 04 40STA a:SQ2_VOL [86fd]8d 0c 40STA a:NOISE_VOL [8700]ad 27 01LDA a:SoundEffect_State_Counter [8703]49 0fEOR #$0f [8705]09 98ORA #$98 [8707]8d 05 40STA a:SQ2_SWEEP [870a]ad 2a 01LDA a:SoundEffect_Note_Low [870d]8d 06 40STA a:SQ2_LO [8710]29 07AND #$07 [8712]8d 0e 40STA a:NOISE_LO [8715]a9 00LDA #$00 [8717]8d 0f 40STA a:NOISE_HI [871a]ad 2b 01LDA a:SoundEffect_Note_High [871d]8d 07 40STA a:SQ2_HI [8720]ee 27 01INC a:SoundEffect_State_Counter [8723]60RTS
; ; XREFS: ; SoundEffect_HitEnemy_OnTick ;
[8724]SOUNDEFFECT_HIT_ENEMY_NOTES: [8724]62.byte $62; [0]: [8725]4e.byte $4e; [1]: [8726]3c.byte $3c; [2]: [8727]50.byte $50; [3]: [8728]48.byte $48; [4]: [8729]65.byte $65; [5]: [872a]51.byte $51; [6]: [872b]48.byte $48; [7]: [872c]56.byte $56; [8]: [872d]52.byte $52; [9]: [872e]5f.byte $5f; [10]: [872f]58.byte $58; [11]: [8730]65.byte $65; [12]: [8731]4d.byte $4d; [13]: [8732]55.byte $55; [14]: [8733]ff.byte $ff; [15]:
;============================================================================ ; TODO: Document SoundEffect_EnemyDied_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8734]SoundEffect_EnemyDied_Setup: [8734]a9 16LDA #$16 [8736]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8739]a9 14LDA #$14 [873b]8d 27 01STA a:SoundEffect_State_Counter [873e]a9 00LDA #$00 [8740]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_EnemyDied_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8743]SoundEffect_EnemyDied_OnTick: [8743]ce 27 01DEC a:SoundEffect_State_Counter [8746]d0 08BNE @_play [8748]a9 10LDA #$10 [874a]8d 0c 40STA a:NOISE_VOL [874d]4c 26 86JMP Sound_ResetCurrentSound [8750]@_play: [8750]ae 28 01LDX a:SoundEffect_State_0128 [8753]a9 1fLDA #$1f [8755]8d 0c 40STA a:NOISE_VOL [8758]bd 67 87LDA a:SOUNDEFFECT_ENEMY_DIED_NOISE_LO,X [875b]8d 0e 40STA a:NOISE_LO [875e]a9 00LDA #$00 [8760]8d 0f 40STA a:NOISE_HI [8763]ee 28 01INC a:SoundEffect_State_0128 [8766]60RTS
; ; XREFS: ; SoundEffect_EnemyDied_OnTick ;
[8767]SOUNDEFFECT_ENEMY_DIED_NOISE_LO: [8767]0f.byte $0f; [0]: [8768]0c.byte $0c; [1]: [8769]0e.byte $0e; [2]: [876a]0b.byte $0b; [3]: [876b]0d.byte $0d; [4]: [876c]09.byte $09; [5]: [876d]03.byte $03; [6]: [876e]02.byte $02; [7]: [876f]01.byte $01; [8]: [8770]00.byte $00; [9]:
;============================================================================ ; TODO: Document SoundEffect_HitPlayer_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8771]SoundEffect_HitPlayer_Setup: [8771]a9 0fLDA #$0f [8773]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8776]a9 00LDA #$00 [8778]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_HitPlayer_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[877b]SoundEffect_HitPlayer_OnTick: [877b]ae 27 01LDX a:SoundEffect_State_Counter [877e]bd aa 87LDA a:SOUNDEFFECT_HITPLAYER_NOTES,X [8781]c9 ffCMP #$ff [8783]d0 08BNE @_play [8785]a9 10LDA #$10 [8787]8d 04 40STA a:SQ2_VOL [878a]4c 26 86JMP Sound_ResetCurrentSound [878d]@_play: [878d]20 d1 8eJSR SoundEffect_SetNote [8790]a9 dfLDA #$df [8792]8d 04 40STA a:SQ2_VOL [8795]a9 00LDA #$00 [8797]8d 05 40STA a:SQ2_SWEEP [879a]ad 2a 01LDA a:SoundEffect_Note_Low [879d]8d 06 40STA a:SQ2_LO [87a0]ad 2b 01LDA a:SoundEffect_Note_High [87a3]8d 07 40STA a:SQ2_HI [87a6]ee 27 01INC a:SoundEffect_State_Counter [87a9]60RTS
; ; XREFS: ; SoundEffect_HitPlayer_OnTick ;
[87aa]SOUNDEFFECT_HITPLAYER_NOTES: [87aa]29.byte $29; [0]: [87ab]24.byte $24; [1]: [87ac]28.byte $28; [2]: [87ad]22.byte $22; [3]: [87ae]1f.byte $1f; [4]: [87af]29.byte $29; [5]: [87b0]2b.byte $2b; [6]: [87b1]2c.byte $2c; [7]: [87b2]2d.byte $2d; [8]: [87b3]2a.byte $2a; [9]: [87b4]ff.byte $ff; [10]:
;============================================================================ ; TODO: Document SoundEffect_Magic_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[87b5]SoundEffect_Magic_Setup: [87b5]a9 32LDA #$32 [87b7]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [87ba]a9 00LDA #$00 [87bc]8d 27 01STA a:SoundEffect_State_Counter [87bf]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Magic_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[87c2]SoundEffect_Magic_OnTick: [87c2]ae 28 01LDX a:SoundEffect_State_0128 [87c5]bd 00 88LDA a:SOUNDEFFECT_MAGIC_SQ2_VOL,X [87c8]d0 08BNE @_play [87ca]a9 10LDA #$10 [87cc]8d 04 40STA a:SQ2_VOL [87cf]4c 26 86JMP Sound_ResetCurrentSound [87d2]@_play: [87d2]09 50ORA #$50 [87d4]8d 04 40STA a:SQ2_VOL [87d7]a9 00LDA #$00 [87d9]8d 05 40STA a:SQ2_SWEEP [87dc]ad 27 01LDA a:SoundEffect_State_Counter [87df]29 03AND #$03 [87e1]aaTAX [87e2]bd 06 88LDA a:SOUNDEFFECT_MAGIC_SQ2_LO,X [87e5]8d 06 40STA a:SQ2_LO [87e8]a9 00LDA #$00 [87ea]8d 07 40STA a:SQ2_HI [87ed]ee 27 01INC a:SoundEffect_State_Counter [87f0]ad 27 01LDA a:SoundEffect_State_Counter [87f3]c9 08CMP #$08 [87f5]d0 08BNE @_return [87f7]a9 00LDA #$00 [87f9]8d 27 01STA a:SoundEffect_State_Counter [87fc]ee 28 01INC a:SoundEffect_State_0128 [87ff]@_return: [87ff]60RTS
; ; XREFS: ; SoundEffect_Magic_OnTick ;
[8800]SOUNDEFFECT_MAGIC_SQ2_VOL: [8800]0f 0b 07 04 01 00.byte $0f,$0b,$07,$04,$01,$00; byte
; ; XREFS: ; SoundEffect_Magic_OnTick ;
[8806]SOUNDEFFECT_MAGIC_SQ2_LO: [8806]b0 a0 a8 98.byte $b0,$a0,$a8,$98; byte
;============================================================================ ; TODO: Document SoundEffect_OpenDoor_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[880a]SoundEffect_OpenDoor_Setup: [880a]a9 3cLDA #$3c [880c]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [880f]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8812]a9 37LDA #$37 [8814]8d 29 01STA a:SoundEffect_State_0129 [8817]a9 00LDA #$00 [8819]8d 27 01STA a:SoundEffect_State_Counter [881c]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_OpenDoor_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[881f]SoundEffect_OpenDoor_OnTick: [881f]ce 29 01DEC a:SoundEffect_State_0129 [8822]d0 0bBNE @_play [8824]a9 10LDA #$10 [8826]8d 04 40STA a:SQ2_VOL [8829]8d 0c 40STA a:NOISE_VOL [882c]4c 26 86JMP Sound_ResetCurrentSound [882f]@_play: [882f]ad 27 01LDA a:SoundEffect_State_Counter [8832]4aLSR A [8833]4aLSR A [8834]49 ffEOR #$ff [8836]29 0fAND #$0f [8838]09 50ORA #$50 [883a]8d 0c 40STA a:NOISE_VOL [883d]8d 04 40STA a:SQ2_VOL [8840]a9 00LDA #$00 [8842]8d 05 40STA a:SQ2_SWEEP [8845]ad 27 01LDA a:SoundEffect_State_Counter [8848]29 07AND #$07 [884a]a8TAY [884b]a9 60LDA #$60 [884d]38SEC [884e]f9 65 88SBC a:SOUNDEFFECT_OPEN_DOOR_SQ2_NOISE_LO,Y [8851]8d 06 40STA a:SQ2_LO [8854]29 0fAND #$0f [8856]8d 0e 40STA a:NOISE_LO [8859]a9 00LDA #$00 [885b]8d 07 40STA a:SQ2_HI [885e]8d 0f 40STA a:NOISE_HI [8861]ee 27 01INC a:SoundEffect_State_Counter [8864]60RTS
; ; XREFS: ; SoundEffect_OpenDoor_OnTick ;
[8865]SOUNDEFFECT_OPEN_DOOR_SQ2_NOISE_LO: [8865]00 03 0a 15 25 15 0a 03.byte $00,$03,$0a,$15,$25,$15,$0a,$03; byte
;============================================================================ ; TODO: Document SoundEffect_Maybe_Typing_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[886d]SoundEffect_Maybe_Typing_Setup: [886d]a9 28LDA #$28 [886f]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8872]a9 00LDA #$00 [8874]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Maybe_Typing_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8877]SoundEffect_Maybe_Typing_OnTick: [8877]ad 24 01LDA a:SoundEffect_TicksRemaining_1_ [887a]29 01AND #$01 [887c]d0 35BNE @_return [887e]ae 27 01LDX a:SoundEffect_State_Counter [8881]bd b4 88LDA a:SOUNDEFFECT_MAYBE_TYPING_NOTES,X [8884]c9 ffCMP #$ff [8886]d0 08BNE @_play [8888]a9 10LDA #$10 [888a]8d 04 40STA a:SQ2_VOL [888d]4c 26 86JMP Sound_ResetCurrentSound [8890]@_play: [8890]20 d1 8eJSR SoundEffect_SetNote [8893]ee 27 01INC a:SoundEffect_State_Counter [8896]ad 27 01LDA a:SoundEffect_State_Counter [8899]49 ffEOR #$ff [889b]29 0fAND #$0f [889d]09 d4ORA #$d4 [889f]8d 04 40STA a:SQ2_VOL [88a2]a9 91LDA #$91 [88a4]8d 05 40STA a:SQ2_SWEEP [88a7]ad 2a 01LDA a:SoundEffect_Note_Low [88aa]8d 06 40STA a:SQ2_LO [88ad]ad 2b 01LDA a:SoundEffect_Note_High [88b0]8d 07 40STA a:SQ2_HI [88b3]@_return: [88b3]60RTS
; ; XREFS: ; SoundEffect_Maybe_Typing_OnTick ;
[88b4]SOUNDEFFECT_MAYBE_TYPING_NOTES: [88b4]2b 2d 2f 24 38 2a 37 39.byte $2b,$2d,$2f,$24,$38,$2a,$37,$39; byte [88bc]3b 24 38 42 2b 2d 2f 18.byte $3b,$24,$38,$42,$2b,$2d,$2f,$18; byte [88c4]ff.byte $ff; byte
;============================================================================ ; TODO: Document SoundEffect_ItemPickedUp_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[88c5]SoundEffect_ItemPickedUp_Setup: [88c5]a9 3cLDA #$3c [88c7]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [88ca]a9 00LDA #$00 [88cc]8d 27 01STA a:SoundEffect_State_Counter [88cf]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_ItemPickedUp_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[88d2]SoundEffect_ItemPickedUp_OnTick: [88d2]ae 27 01LDX a:SoundEffect_State_Counter [88d5]bd 18 89LDA a:SOUNDEFFECT_ITEM_PICKED_UP_NOTES,X [88d8]c9 ffCMP #$ff [88da]d0 09BNE @_playNote [88dc]ee 28 01INC a:SoundEffect_State_0128 [88df]a9 00LDA #$00 [88e1]8d 27 01STA a:SoundEffect_State_Counter [88e4]60RTS [88e5]@_playNote: [88e5]20 d1 8eJSR SoundEffect_SetNote [88e8]ae 28 01LDX a:SoundEffect_State_0128 [88eb]bd 12 89LDA a:SOUNDEFFECT_ITEM_PICKED_UP_SQ2_VOLS,X [88ee]d0 08BNE @_playSQ2 [88f0]a9 10LDA #$10 [88f2]8d 04 40STA a:SQ2_VOL [88f5]4c 26 86JMP Sound_ResetCurrentSound [88f8]@_playSQ2: [88f8]09 90ORA #$90 [88fa]8d 04 40STA a:SQ2_VOL [88fd]a9 00LDA #$00 [88ff]8d 05 40STA a:SQ2_SWEEP [8902]ad 2a 01LDA a:SoundEffect_Note_Low [8905]8d 06 40STA a:SQ2_LO [8908]ad 2b 01LDA a:SoundEffect_Note_High [890b]8d 07 40STA a:SQ2_HI [890e]ee 27 01INC a:SoundEffect_State_Counter [8911]60RTS
; ; XREFS: ; SoundEffect_ItemPickedUp_OnTick ;
[8912]SOUNDEFFECT_ITEM_PICKED_UP_SQ2_VOLS: [8912]0f 0c 09 05 02 00.byte $0f,$0c,$09,$05,$02,$00; byte
; ; XREFS: ; SoundEffect_ItemPickedUp_OnTick ;
[8918]SOUNDEFFECT_ITEM_PICKED_UP_NOTES: [8918]3f 43 4a 55 5b 60 ff.byte $3f,$43,$4a,$55,$5b,$60,$ff; byte
;============================================================================ ; TODO: Document SoundEffect_CoinTouchedCommon_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ; ; XREFS: ; SoundEffect_CoinTouched_Setup ;============================================================================
[891f]SoundEffect_CoinTouchedCommon_Setup: [891f]a9 1eLDA #$1e [8921]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8924]a9 50LDA #$50 [8926]8d 27 01STA a:SoundEffect_State_Counter [8929]a9 00LDA #$00 [892b]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_CoinTouchedCommon_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ; ; XREFS: ; SoundEffect_CoinTouched_OnTick ;============================================================================
[892e]SoundEffect_CoinTouchedCommon_OnTick: [892e]ae 28 01LDX a:SoundEffect_State_0128 [8931]bd 6d 89LDA a:SOUNDEFFECT_COIN_TOUCHED_SQ2_VOL,X [8934]d0 08BNE @_play [8936]a9 10LDA #$10 [8938]8d 04 40STA a:SQ2_VOL [893b]4c 26 86JMP Sound_ResetCurrentSound [893e]@_play: [893e]09 d0ORA #$d0 [8940]8d 04 40STA a:SQ2_VOL [8943]a9 00LDA #$00 [8945]8d 05 40STA a:SQ2_SWEEP [8948]ad 27 01LDA a:SoundEffect_State_Counter [894b]8d 06 40STA a:SQ2_LO [894e]18CLC [894f]69 04ADC #$04 [8951]8d 06 40STA a:SQ2_LO [8954]a9 00LDA #$00 [8956]8d 07 40STA a:SQ2_HI [8959]ad 27 01LDA a:SoundEffect_State_Counter [895c]38SEC [895d]e9 10SBC #$10 [895f]8d 27 01STA a:SoundEffect_State_Counter [8962]d0 08BNE @_return [8964]ee 28 01INC a:SoundEffect_State_0128 [8967]a9 50LDA #$50 [8969]8d 27 01STA a:SoundEffect_State_Counter [896c]@_return: [896c]60RTS
; ; XREFS: ; SoundEffect_CoinTouchedCommon_OnTick ;
[896d]SOUNDEFFECT_COIN_TOUCHED_SQ2_VOL: [896d]0f 0c 09 06 03 00.byte $0f,$0c,$09,$06,$03,$00; byte
;============================================================================ ; TODO: Document SoundEffect_MagicHitObstacle_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8973]SoundEffect_MagicHitObstacle_Setup: [8973]a9 1eLDA #$1e [8975]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8978]a9 20LDA #$20 [897a]8d 27 01STA a:SoundEffect_State_Counter [897d]a9 00LDA #$00 [897f]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_MagicHitObstacle_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8982]SoundEffect_MagicHitObstacle_OnTick: [8982]ce 27 01DEC a:SoundEffect_State_Counter [8985]d0 08BNE @_play [8987]a9 10LDA #$10 [8989]8d 0c 40STA a:NOISE_VOL [898c]4c 26 86JMP Sound_ResetCurrentSound [898f]@_play: [898f]ad 27 01LDA a:SoundEffect_State_Counter [8992]4aLSR A [8993]29 0fAND #$0f [8995]09 10ORA #$10 [8997]8d 0c 40STA a:NOISE_VOL [899a]ad 27 01LDA a:SoundEffect_State_Counter [899d]29 0fAND #$0f [899f]8d 0e 40STA a:NOISE_LO [89a2]a9 00LDA #$00 [89a4]8d 0f 40STA a:NOISE_HI [89a7]60RTS
;============================================================================ ; TODO: Document SoundEffect_CursorMoved_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[89a8]SoundEffect_CursorMoved_Setup: [89a8]a9 16LDA #$16 [89aa]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [89ad]a9 0fLDA #$0f [89af]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_CursorMoved_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[89b2]SoundEffect_CursorMoved_OnTick: [89b2]ad 27 01LDA a:SoundEffect_State_Counter [89b5]d0 08BNE @_play [89b7]a9 10LDA #$10 [89b9]8d 04 40STA a:SQ2_VOL [89bc]4c 26 86JMP Sound_ResetCurrentSound [89bf]@_play: [89bf]ad 27 01LDA a:SoundEffect_State_Counter [89c2]29 0fAND #$0f [89c4]09 50ORA #$50 [89c6]8d 04 40STA a:SQ2_VOL [89c9]a9 00LDA #$00 [89cb]8d 05 40STA a:SQ2_SWEEP [89ce]ad 27 01LDA a:SoundEffect_State_Counter [89d1]29 07AND #$07 [89d3]a8TAY [89d4]ad 27 01LDA a:SoundEffect_State_Counter [89d7]29 02AND #$02 [89d9]8d 28 01STA a:SoundEffect_State_0128 [89dc]ad 27 01LDA a:SoundEffect_State_Counter [89df]29 01AND #$01 [89e1]18CLC [89e2]6d 28 01ADC a:SoundEffect_State_0128 [89e5]aaTAX [89e6]bd f9 89LDA a:SOUNDEFFECT_CURSOR_MOVED_SQ2_LO,X [89e9]38SEC [89ea]f9 fd 89SBC a:SOUNDEFFECT_CURSORMOVED_SQ2_LO_DELTA,Y [89ed]8d 06 40STA a:SQ2_LO [89f0]a9 00LDA #$00 [89f2]8d 07 40STA a:SQ2_HI [89f5]ce 27 01DEC a:SoundEffect_State_Counter [89f8]60RTS [89f9]SOUNDEFFECT_CURSOR_MOVED_SQ2_LO: [89f9]51 34 b8.byte $51,$34,$b8; byte
; ; XREFS: ; SoundEffect_CursorMoved_OnTick ;
[89fc]BYTE_PRG5__89fc: [89fc]93.byte $93; byte [89fd]SOUNDEFFECT_CURSORMOVED_SQ2_LO_DELTA: [89fd]00 01 03 06 0a 06 03.byte $00,$01,$03,$06,$0a,$06,$03; byte
; ; XREFS: ; SoundEffect_CursorMoved_OnTick ;
[8a04]BYTE_PRG5__8a04: [8a04]01.byte $01; byte
;============================================================================ ; TODO: Document SoundEffect_ShieldHitByMagic_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8a05]SoundEffect_ShieldHitByMagic_Setup: [8a05]a9 14LDA #$14 [8a07]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8a0a]a9 10LDA #$10 [8a0c]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_ShieldHitByMagic_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8a0f]SoundEffect_ShieldHitByMagic_OnTick: [8a0f]ce 27 01DEC a:SoundEffect_State_Counter [8a12]d0 08BNE @_play [8a14]a9 10LDA #$10 [8a16]8d 04 40STA a:SQ2_VOL [8a19]4c 26 86JMP Sound_ResetCurrentSound [8a1c]@_play: [8a1c]ad 27 01LDA a:SoundEffect_State_Counter [8a1f]09 90ORA #$90 [8a21]8d 04 40STA a:SQ2_VOL [8a24]a9 00LDA #$00 [8a26]8d 05 40STA a:SQ2_SWEEP [8a29]ad 27 01LDA a:SoundEffect_State_Counter [8a2c]29 01AND #$01 [8a2e]aaTAX [8a2f]bd 3b 8aLDA a:SOUNDEFFECT_SHIELD_HIT_BY_MAGIC_SQ2_LO,X [8a32]8d 06 40STA a:SQ2_LO [8a35]a9 00LDA #$00 [8a37]8d 07 40STA a:SQ2_HI [8a3a]60RTS [8a3b]SOUNDEFFECT_SHIELD_HIT_BY_MAGIC_SQ2_LO: [8a3b]30.byte $30; [0]:
; ; XREFS: ; SoundEffect_ShieldHitByMagic_OnTick ;
[8a3c]SOUNDEFFECT_SHIELD_HIT_BY_MAGIC_SQ2_LO_1_: [8a3c]1a.byte $1a; [1]:
;============================================================================ ; TODO: Document SoundEffect_CharacterInput_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8a3d]SoundEffect_CharacterInput_Setup: [8a3d]a9 1eLDA #$1e [8a3f]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8a42]a9 00LDA #$00 [8a44]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_CharacterInput_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8a47]SoundEffect_CharacterInput_OnTick: [8a47]ee 27 01INC a:SoundEffect_State_Counter [8a4a]ad 27 01LDA a:SoundEffect_State_Counter [8a4d]4aLSR A [8a4e]4aLSR A [8a4f]aaTAX [8a50]bd 79 8aLDA a:SOUNDEFFECT_CHAR_INPUT_NOTES,X [8a53]c9 ffCMP #$ff [8a55]d0 08BNE @_play [8a57]a9 10LDA #$10 [8a59]8d 04 40STA a:SQ2_VOL [8a5c]4c 26 86JMP Sound_ResetCurrentSound [8a5f]@_play: [8a5f]20 d1 8eJSR SoundEffect_SetNote [8a62]a9 bfLDA #$bf [8a64]8d 04 40STA a:SQ2_VOL [8a67]a9 00LDA #$00 [8a69]8d 05 40STA a:SQ2_SWEEP [8a6c]ad 2a 01LDA a:SoundEffect_Note_Low [8a6f]8d 06 40STA a:SQ2_LO [8a72]ad 2b 01LDA a:SoundEffect_Note_High [8a75]8d 07 40STA a:SQ2_HI [8a78]60RTS
; ; XREFS: ; SoundEffect_CharacterInput_OnTick ;
[8a79]SOUNDEFFECT_CHAR_INPUT_NOTES: [8a79]37.byte $37; [0]: [8a7a]39.byte $39; [1]: [8a7b]32.byte $32; [2]: [8a7c]34.byte $34; [3]: [8a7d]ff.byte $ff; [4]:
;============================================================================ ; TODO: Document SoundEffect_PasswordCharInput_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8a7e]SoundEffect_PasswordCharInput_Setup: [8a7e]a9 0aLDA #$0a [8a80]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8a83]a9 02LDA #$02 [8a85]8d 27 01STA a:SoundEffect_State_Counter [8a88]a9 81LDA #$81 [8a8a]8d 04 40STA a:SQ2_VOL [8a8d]a9 00LDA #$00 [8a8f]8d 05 40STA a:SQ2_SWEEP [8a92]a9 8eLDA #$8e [8a94]8d 06 40STA a:SQ2_LO [8a97]a9 10LDA #$10 [8a99]8d 07 40STA a:SQ2_HI [8a9c]60RTS
;============================================================================ ; TODO: Document SoundEffect_PushBlock_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8a9d]SoundEffect_PushBlock_Setup: [8a9d]a9 20LDA #$20 [8a9f]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8aa2]a9 1eLDA #$1e [8aa4]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_PushBlock_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8aa7]SoundEffect_PushBlock_OnTick: [8aa7]ad 27 01LDA a:SoundEffect_State_Counter [8aaa]d0 08BNE @_play [8aac]a9 10LDA #$10 [8aae]8d 0c 40STA a:NOISE_VOL [8ab1]4c 26 86JMP Sound_ResetCurrentSound [8ab4]@_play: [8ab4]a9 1fLDA #$1f [8ab6]8d 0c 40STA a:NOISE_VOL [8ab9]ad 27 01LDA a:SoundEffect_State_Counter [8abc]29 01AND #$01 [8abe]aaTAX [8abf]bd ce 8aLDA a:SOUNDEFFECT_PUSH_BLOCK_NOISE_LO,X [8ac2]8d 0e 40STA a:NOISE_LO [8ac5]a9 00LDA #$00 [8ac7]8d 0f 40STA a:NOISE_HI [8aca]ce 27 01DEC a:SoundEffect_State_Counter [8acd]60RTS
; ; XREFS: ; SoundEffect_PushBlock_OnTick ;
[8ace]SOUNDEFFECT_PUSH_BLOCK_NOISE_LO: [8ace]0f 0b.byte $0f,$0b; byte
;============================================================================ ; TODO: Document SoundEffect_CoinDropped_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8ad0]SoundEffect_CoinDropped_Setup: [8ad0]a9 32LDA #$32 [8ad2]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8ad5]a9 08LDA #$08 [8ad7]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_CoinDropped_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8ada]SoundEffect_CoinDropped_OnTick: [8ada]a9 86LDA #$86 [8adc]8d 04 40STA a:SQ2_VOL [8adf]a9 00LDA #$00 [8ae1]8d 05 40STA a:SQ2_SWEEP [8ae4]ad 27 01LDA a:SoundEffect_State_Counter [8ae7]c9 05CMP #$05 [8ae9]d0 0aBNE @_checkUpdateCounter [8aeb]a9 35LDA #$35 [8aed]8d 06 40STA a:SQ2_LO [8af0]a9 20LDA #$20 [8af2]8d 07 40STA a:SQ2_HI [8af5]@_checkUpdateCounter: [8af5]ce 27 01DEC a:SoundEffect_State_Counter [8af8]d0 0dBNE @_return [8afa]a9 20LDA #$20 [8afc]8d 06 40STA a:SQ2_LO [8aff]a9 30LDA #$30 [8b01]8d 07 40STA a:SQ2_HI [8b04]4c 26 86JMP Sound_ResetCurrentSound [8b07]@_return: [8b07]60RTS
;============================================================================ ; TODO: Document SoundEffect_0x48_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8b08]SoundEffect_0x48_Setup: [8b08]a9 23LDA #$23 [8b0a]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8b0d]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8b10]a9 16LDA #$16 [8b12]8d 28 01STA a:SoundEffect_State_0128 [8b15]a9 00LDA #$00 [8b17]8d 27 01STA a:SoundEffect_State_Counter [8b1a]a9 1eLDA #$1e [8b1c]8d 29 01STA a:SoundEffect_State_0129
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_0x48_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8b1f]SoundEffect_0x48_OnTick: [8b1f]ce 29 01DEC a:SoundEffect_State_0129 [8b22]d0 0bBNE @_play [8b24]a9 10LDA #$10 [8b26]8d 04 40STA a:SQ2_VOL [8b29]8d 0c 40STA a:NOISE_VOL [8b2c]4c 26 86JMP Sound_ResetCurrentSound [8b2f]@_play: [8b2f]ad 24 01LDA a:SoundEffect_TicksRemaining_1_ [8b32]29 01AND #$01 [8b34]d0 2eBNE @_return [8b36]a9 dfLDA #$df [8b38]8d 04 40STA a:SQ2_VOL [8b3b]a9 16LDA #$16 [8b3d]8d 0c 40STA a:NOISE_VOL [8b40]a9 a3LDA #$a3 [8b42]8d 05 40STA a:SQ2_SWEEP [8b45]ad 27 01LDA a:SoundEffect_State_Counter [8b48]8d 06 40STA a:SQ2_LO [8b4b]18CLC [8b4c]69 10ADC #$10 [8b4e]8d 27 01STA a:SoundEffect_State_Counter [8b51]ce 28 01DEC a:SoundEffect_State_0128 [8b54]ad 28 01LDA a:SoundEffect_State_0128 [8b57]29 0fAND #$0f [8b59]8d 0e 40STA a:NOISE_LO [8b5c]a9 12LDA #$12 [8b5e]8d 07 40STA a:SQ2_HI [8b61]8d 0f 40STA a:NOISE_HI [8b64]@_return: [8b64]60RTS
;============================================================================ ; TODO: Document SoundEffect_Pakukame_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8b65]SoundEffect_Pakukame_Setup: [8b65]a9 46LDA #$46 [8b67]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8b6a]a9 00LDA #$00 [8b6c]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Pakukame_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8b6f]SoundEffect_Pakukame_OnTick: [8b6f]ad 24 01LDA a:SoundEffect_TicksRemaining_1_ [8b72]d0 08BNE @_play [8b74]a9 10LDA #$10 [8b76]8d 04 40STA a:SQ2_VOL [8b79]4c 26 86JMP Sound_ResetCurrentSound [8b7c]@_play: [8b7c]ad 27 01LDA a:SoundEffect_State_Counter [8b7f]29 3cAND #$3c [8b81]4aLSR A [8b82]4aLSR A [8b83]29 0fAND #$0f [8b85]09 f0ORA #$f0 [8b87]8d 04 40STA a:SQ2_VOL [8b8a]a9 00LDA #$00 [8b8c]8d 05 40STA a:SQ2_SWEEP [8b8f]a9 01LDA #$01 [8b91]8d 07 40STA a:SQ2_HI [8b94]ad 27 01LDA a:SoundEffect_State_Counter [8b97]29 07AND #$07 [8b99]aaTAX [8b9a]ad 27 01LDA a:SoundEffect_State_Counter [8b9d]18CLC [8b9e]69 32ADC #$32 [8ba0]38SEC [8ba1]fd ab 8bSBC a:SOUNDEFFECT_PAKUKAME_SQ2_LO,X [8ba4]8d 06 40STA a:SQ2_LO [8ba7]ee 27 01INC a:SoundEffect_State_Counter [8baa]60RTS
; ; XREFS: ; SoundEffect_Pakukame_OnTick ;
[8bab]SOUNDEFFECT_PAKUKAME_SQ2_LO: [8bab]00 08 14 20 2d 20 14 08.byte $00,$08,$14,$20,$2d,$20,$14,$08; byte
;============================================================================ ; TODO: Document SoundEffect_FillHPOrMP_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8bb3]SoundEffect_FillHPOrMP_Setup: [8bb3]a9 23LDA #$23 [8bb5]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8bb8]a9 00LDA #$00 [8bba]8d 27 01STA a:SoundEffect_State_Counter [8bbd]a9 19LDA #$19 [8bbf]8d 29 01STA a:SoundEffect_State_0129 [8bc2]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_FillHPOrMP_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8bc5]SoundEffect_FillHPOrMP_OnTick: [8bc5]ce 28 01DEC a:SoundEffect_State_0128 [8bc8]d0 08BNE @_play [8bca]a9 10LDA #$10 [8bcc]8d 04 40STA a:SQ2_VOL [8bcf]4c 26 86JMP Sound_ResetCurrentSound [8bd2]@_play: [8bd2]ad 27 01LDA a:SoundEffect_State_Counter [8bd5]29 03AND #$03 [8bd7]a8TAY [8bd8]b9 01 8cLDA a:SOUNDEFFECT_FILL_HP_OR_MP_SQ2_VOL,Y [8bdb]8d 04 40STA a:SQ2_VOL [8bde]a9 aaLDA #$aa [8be0]8d 05 40STA a:SQ2_SWEEP [8be3]ad 27 01LDA a:SoundEffect_State_Counter [8be6]29 01AND #$01 [8be8]aaTAX [8be9]bd 05 8cLDA a:SOUNDEFFECT_FILL_HP_OR_MP_SQ2_LO,X [8bec]0d 29 01ORA a:SoundEffect_State_0129 [8bef]ed 27 01SBC a:SoundEffect_State_Counter [8bf2]8d 29 01STA a:SoundEffect_State_0129 [8bf5]8d 06 40STA a:SQ2_LO [8bf8]a9 00LDA #$00 [8bfa]8d 07 40STA a:SQ2_HI [8bfd]ee 27 01INC a:SoundEffect_State_Counter [8c00]60RTS
; ; XREFS: ; SoundEffect_FillHPOrMP_OnTick ;
[8c01]SOUNDEFFECT_FILL_HP_OR_MP_SQ2_VOL: [8c01]1f 5f 9f df.byte $1f,$5f,$9f,$df; byte
; ; XREFS: ; SoundEffect_FillHPOrMP_OnTick ;
[8c05]SOUNDEFFECT_FILL_HP_OR_MP_SQ2_LO: [8c05]60 30.byte $60,$30; byte
;============================================================================ ; TODO: Document SoundEffect_Tilte_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8c07]SoundEffect_Tilte_Setup: [8c07]a9 1eLDA #$1e [8c09]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8c0c]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8c0f]a9 0fLDA #$0f [8c11]8d 29 01STA a:SoundEffect_State_0129 [8c14]a9 01LDA #$01 [8c16]8d 27 01STA a:SoundEffect_State_Counter [8c19]a9 07LDA #$07 [8c1b]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Tilte_OnTick ; ; INPUTS: ; A ; ; OUTPUTS: ; A ;============================================================================
[8c1e]SoundEffect_Tilte_OnTick: [8c1e]ce 27 01DEC a:SoundEffect_State_Counter [8c21]d0 45BNE @_return [8c23]ce 28 01DEC a:SoundEffect_State_0128 [8c26]ad 28 01LDA a:SoundEffect_State_0128 [8c29]8d 27 01STA a:SoundEffect_State_Counter [8c2c]d0 0bBNE @_play [8c2e]a9 10LDA #$10 [8c30]8d 04 40STA a:SQ2_VOL [8c33]8d 0c 40STA a:NOISE_VOL [8c36]4c 26 86JMP Sound_ResetCurrentSound [8c39]@_play: [8c39]a9 48LDA #$48 [8c3b]8d 04 40STA a:SQ2_VOL [8c3e]a9 00LDA #$00 [8c40]8d 05 40STA a:SQ2_SWEEP [8c43]ad 29 01LDA a:SoundEffect_State_0129 [8c46]09 10ORA #$10 [8c48]8d 0c 40STA a:NOISE_VOL [8c4b]ad 29 01LDA a:SoundEffect_State_0129 [8c4e]29 07AND #$07 [8c50]8d 0e 40STA a:NOISE_LO [8c53]a9 00LDA #$00 [8c55]8d 0f 40STA a:NOISE_HI [8c58]ad 29 01LDA a:SoundEffect_State_0129 [8c5b]09 18ORA #$18 [8c5d]8d 06 40STA a:SQ2_LO [8c60]a9 00LDA #$00 [8c62]8d 07 40STA a:SQ2_HI [8c65]ce 29 01DEC a:SoundEffect_State_0129 [8c68]@_return: [8c68]60RTS
;============================================================================ ; TODO: Document SoundEffect_Maybe_Step_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8c69]SoundEffect_Maybe_Step_Setup: [8c69]a9 05LDA #$05 [8c6b]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8c6e]a9 03LDA #$03 [8c70]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Maybe_Step_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8c73]SoundEffect_Maybe_Step_OnTick: [8c73]a9 01LDA #$01 [8c75]8d 0c 40STA a:NOISE_VOL [8c78]ad 27 01LDA a:SoundEffect_State_Counter [8c7b]c9 03CMP #$03 [8c7d]d0 0aBNE @_updateCheckCounter [8c7f]a9 0aLDA #$0a [8c81]8d 0e 40STA a:NOISE_LO [8c84]a9 00LDA #$00 [8c86]8d 0f 40STA a:NOISE_HI [8c89]@_updateCheckCounter: [8c89]ce 27 01DEC a:SoundEffect_State_Counter [8c8c]d0 0dBNE @_return [8c8e]a9 02LDA #$02 [8c90]8d 0e 40STA a:NOISE_LO [8c93]a9 10LDA #$10 [8c95]8d 0f 40STA a:NOISE_HI [8c98]4c 26 86JMP Sound_ResetCurrentSound [8c9b]@_return: [8c9b]60RTS
;============================================================================ ; TODO: Document SoundEffect_PlayerDied_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8c9c]SoundEffect_PlayerDied_Setup: [8c9c]a9 41LDA #$41 [8c9e]8d 23 01STA a:SoundEffect_TicksRemaining [8ca1]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8ca4]8d 25 01STA a:SoundEffect_TicksRemaining_2_ [8ca7]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8caa]a9 00LDA #$00 [8cac]8d 27 01STA a:SoundEffect_State_Counter [8caf]a9 3cLDA #$3c [8cb1]8d 28 01STA a:SoundEffect_State_0128
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_PlayerDied_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8cb4]SoundEffect_PlayerDied_OnTick: [8cb4]a9 00LDA #$00 [8cb6]8d 08 40STA a:TRI_LINEAR [8cb9]8d 0a 40STA a:TRI_LO [8cbc]8d 0a 40STA a:TRI_LO [8cbf]ce 28 01DEC a:SoundEffect_State_0128 [8cc2]d0 0eBNE @_play [8cc4]a9 10LDA #$10 [8cc6]8d 00 40STA a:SQ1_VOL [8cc9]8d 04 40STA a:SQ2_VOL [8ccc]8d 0c 40STA a:NOISE_VOL [8ccf]4c 26 86JMP Sound_ResetCurrentSound [8cd2]@_play: [8cd2]ad 27 01LDA a:SoundEffect_State_Counter [8cd5]49 ffEOR #$ff [8cd7]4aLSR A [8cd8]4aLSR A [8cd9]29 0fAND #$0f [8cdb]09 d0ORA #$d0 [8cdd]8d 04 40STA a:SQ2_VOL [8ce0]29 5fAND #$5f [8ce2]8d 00 40STA a:SQ1_VOL [8ce5]a9 1fLDA #$1f [8ce7]8d 0c 40STA a:NOISE_VOL [8cea]a9 00LDA #$00 [8cec]8d 05 40STA a:SQ2_SWEEP [8cef]8d 01 40STA a:SQ1_SWEEP [8cf2]ad 27 01LDA a:SoundEffect_State_Counter [8cf5]29 03AND #$03 [8cf7]aaTAX [8cf8]bd 28 8dLDA a:SOUNDEFFECT_PLAYER_DIED_NOTES,X [8cfb]20 d1 8eJSR SoundEffect_SetNote [8cfe]ad 2a 01LDA a:SoundEffect_Note_Low [8d01]18CLC [8d02]6d 27 01ADC a:SoundEffect_State_Counter [8d05]8d 06 40STA a:SQ2_LO [8d08]18CLC [8d09]69 10ADC #$10 [8d0b]8d 02 40STA a:SQ1_LO [8d0e]ad 2b 01LDA a:SoundEffect_Note_High [8d11]8d 07 40STA a:SQ2_HI [8d14]8d 03 40STA a:SQ1_HI [8d17]ad 27 01LDA a:SoundEffect_State_Counter [8d1a]29 03AND #$03 [8d1c]8d 0e 40STA a:NOISE_LO [8d1f]a9 00LDA #$00 [8d21]8d 0f 40STA a:NOISE_HI [8d24]ee 27 01INC a:SoundEffect_State_Counter [8d27]60RTS
; ; XREFS: ; SoundEffect_PlayerDied_OnTick ;
[8d28]SOUNDEFFECT_PLAYER_DIED_NOTES: [8d28]4f 32 4c 3c.byte $4f,$32,$4c,$3c; byte
;============================================================================ ; TODO: Document SoundEffect_LadderDropped_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8d2c]SoundEffect_LadderDropped_Setup: [8d2c]a9 0aLDA #$0a [8d2e]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8d31]a9 03LDA #$03 [8d33]8d 27 01STA a:SoundEffect_State_Counter
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_LadderDropped_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8d36]SoundEffect_LadderDropped_OnTick: [8d36]a9 07LDA #$07 [8d38]8d 0c 40STA a:NOISE_VOL [8d3b]ad 27 01LDA a:SoundEffect_State_Counter [8d3e]c9 03CMP #$03 [8d40]d0 0aBNE @_updateCheckCounter [8d42]a9 0fLDA #$0f [8d44]8d 0e 40STA a:NOISE_LO [8d47]a9 18LDA #$18 [8d49]8d 0f 40STA a:NOISE_HI [8d4c]@_updateCheckCounter: [8d4c]ce 27 01DEC a:SoundEffect_State_Counter [8d4f]d0 0dBNE @_return [8d51]a9 05LDA #$05 [8d53]8d 0e 40STA a:NOISE_LO [8d56]a9 18LDA #$18 [8d58]8d 0f 40STA a:NOISE_HI [8d5b]4c 26 86JMP Sound_ResetCurrentSound [8d5e]@_return: [8d5e]60RTS
;============================================================================ ; TODO: Document SoundEffect_ShowPlayerMenu_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8d5f]SoundEffect_ShowPlayerMenu_Setup: [8d5f]a9 23LDA #$23 [8d61]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8d64]a9 00LDA #$00 [8d66]8d 27 01STA a:SoundEffect_State_Counter [8d69]8d 28 01STA a:SoundEffect_State_0128 [8d6c]a9 20LDA #$20 [8d6e]8d 29 01STA a:SoundEffect_State_0129
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_ShowPlayerMenu_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8d71]SoundEffect_ShowPlayerMenu_OnTick: [8d71]ce 29 01DEC a:SoundEffect_State_0129 [8d74]ad 29 01LDA a:SoundEffect_State_0129 [8d77]4aLSR A [8d78]d0 08BNE @_play [8d7a]a9 10LDA #$10 [8d7c]8d 04 40STA a:SQ2_VOL [8d7f]4c 26 86JMP Sound_ResetCurrentSound [8d82]@_play: [8d82]09 d0ORA #$d0 [8d84]8d 04 40STA a:SQ2_VOL [8d87]a9 00LDA #$00 [8d89]8d 05 40STA a:SQ2_SWEEP [8d8c]ad 28 01LDA a:SoundEffect_State_0128 [8d8f]29 03AND #$03 [8d91]aaTAX [8d92]bd b5 8dLDA a:SOUNDEFFECT_SHOW_PLAYER_MENU_NOTES,X [8d95]20 d1 8eJSR SoundEffect_SetNote [8d98]ad 2a 01LDA a:SoundEffect_Note_Low [8d9b]38SEC [8d9c]ed 27 01SBC a:SoundEffect_State_Counter [8d9f]8d 06 40STA a:SQ2_LO [8da2]ad 2b 01LDA a:SoundEffect_Note_High [8da5]8d 07 40STA a:SQ2_HI [8da8]ee 27 01INC a:SoundEffect_State_Counter [8dab]ee 27 01INC a:SoundEffect_State_Counter [8dae]ee 27 01INC a:SoundEffect_State_Counter [8db1]ee 28 01INC a:SoundEffect_State_0128 [8db4]60RTS
; ; XREFS: ; SoundEffect_ShowPlayerMenu_OnTick ;
[8db5]SOUNDEFFECT_SHOW_PLAYER_MENU_NOTES: [8db5]5b 4f 43 37.byte $5b,$4f,$43,$37; byte
;============================================================================ ; TODO: Document SoundEffect_GoldAmountChanged_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8db9]SoundEffect_GoldAmountChanged_Setup: [8db9]a9 0aLDA #$0a [8dbb]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8dbe]a9 02LDA #$02 [8dc0]8d 27 01STA a:SoundEffect_State_Counter [8dc3]a9 82LDA #$82 [8dc5]8d 04 40STA a:SQ2_VOL [8dc8]a9 00LDA #$00 [8dca]8d 05 40STA a:SQ2_SWEEP [8dcd]a9 28LDA #$28 [8dcf]8d 06 40STA a:SQ2_LO [8dd2]a9 10LDA #$10 [8dd4]8d 07 40STA a:SQ2_HI [8dd7]60RTS
;============================================================================ ; TODO: Document SoundEffect_Maybe_UseSpecialItem2_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8dd8]SoundEffect_Maybe_UseSpecialItem2_Setup: [8dd8]a9 44LDA #$44 [8dda]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8ddd]8d 26 01STA a:SoundEffect_TicksRemaining_3_ [8de0]a9 00LDA #$00 [8de2]8d 27 01STA a:SoundEffect_State_Counter [8de5]8d 28 01STA a:SoundEffect_State_0128 [8de8]8d 29 01STA a:SoundEffect_State_0129
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_Maybe_UseSpecialItem2_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8deb]SoundEffect_Maybe_UseSpecialItem2_OnTick: [8deb]ad 29 01LDA a:SoundEffect_State_0129 [8dee]4aLSR A [8def]aaTAX [8df0]bd 5f 8eLDA a:SOUNDEFFECT_SPECIALITEM2_NOISE_VOL,X [8df3]d0 0bBNE @_hasNoise [8df5]a9 10LDA #$10 [8df7]8d 04 40STA a:SQ2_VOL [8dfa]8d 0c 40STA a:NOISE_VOL [8dfd]4c 26 86JMP Sound_ResetCurrentSound [8e00]@_hasNoise: [8e00]09 90ORA #$90 [8e02]8d 0c 40STA a:NOISE_VOL [8e05]8d 04 40STA a:SQ2_VOL [8e08]a9 00LDA #$00 [8e0a]8d 05 40STA a:SQ2_SWEEP [8e0d]ad 27 01LDA a:SoundEffect_State_Counter [8e10]0aASL A [8e11]8d 28 01STA a:SoundEffect_State_0128 [8e14]ae 27 01LDX a:SoundEffect_State_Counter [8e17]bd 66 8eLDA a:SOUNDEFFECT_SPECIALITEM2_NOTES,X [8e1a]c9 ffCMP #$ff [8e1c]f0 38BEQ @_hasNotes [8e1e]20 d1 8eJSR SoundEffect_SetNote [8e21]ad 2a 01LDA a:SoundEffect_Note_Low [8e24]18CLC [8e25]6d 28 01ADC a:SoundEffect_State_0128 [8e28]8d 06 40STA a:SQ2_LO [8e2b]ad 2b 01LDA a:SoundEffect_Note_High [8e2e]8d 07 40STA a:SQ2_HI [8e31]ad 27 01LDA a:SoundEffect_State_Counter [8e34]29 01AND #$01 [8e36]aaTAX [8e37]bd 64 8eLDA a:SOUNDEFFECT_SPECIALITEM2_NOISE_LO,X [8e3a]18CLC [8e3b]6d 27 01ADC a:SoundEffect_State_Counter [8e3e]29 0fAND #$0f [8e40]8d 0e 40STA a:NOISE_LO [8e43]a9 00LDA #$00 [8e45]8d 0f 40STA a:NOISE_HI [8e48]ee 27 01INC a:SoundEffect_State_Counter [8e4b]ad 27 01LDA a:SoundEffect_State_Counter [8e4e]29 07AND #$07 [8e50]d0 03BNE @_return [8e52]ee 29 01INC a:SoundEffect_State_0129 [8e55]@_return: [8e55]60RTS [8e56]@_hasNotes: [8e56]a9 00LDA #$00 [8e58]8d 27 01STA a:SoundEffect_State_Counter [8e5b]ee 29 01INC a:SoundEffect_State_0129 [8e5e]60RTS
; ; XREFS: ; SoundEffect_Maybe_UseSpecialItem2_OnTick ;
[8e5f]SOUNDEFFECT_SPECIALITEM2_NOISE_VOL: [8e5f]0f 0d 09 05 00.byte $0f,$0d,$09,$05,$00; byte
; ; XREFS: ; SoundEffect_Maybe_UseSpecialItem2_OnTick ;
[8e64]SOUNDEFFECT_SPECIALITEM2_NOISE_LO: [8e64]0c 07.byte $0c,$07; byte
; ; XREFS: ; SoundEffect_Maybe_UseSpecialItem2_OnTick ;
[8e66]SOUNDEFFECT_SPECIALITEM2_NOTES: [8e66]24 27 2b 30 48 4b 4f 54.byte $24,$27,$2b,$30,$48,$4b,$4f,$54; byte [8e6e]33 44 52 57 57 5c 62 ff.byte $33,$44,$52,$57,$57,$5c,$62,$ff; byte
;============================================================================ ; TODO: Document SoundEffect_BreadTouched_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8e76]SoundEffect_BreadTouched_Setup: [8e76]a9 18LDA #$18 [8e78]8d 24 01STA a:SoundEffect_TicksRemaining_1_ [8e7b]a9 ffLDA #$ff [8e7d]8d 27 01STA a:SoundEffect_State_Counter [8e80]a9 00LDA #$00 [8e82]8d 28 01STA a:SoundEffect_State_0128 [8e85]8d 29 01STA a:SoundEffect_State_0129
; ; v-- Fall through --v ;
;============================================================================ ; TODO: Document SoundEffect_BreadTouched_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8e88]SoundEffect_BreadTouched_OnTick: [8e88]ad 28 01LDA a:SoundEffect_State_0128 [8e8b]4aLSR A [8e8c]4aLSR A [8e8d]aaTAX [8e8e]bd c5 8eLDA a:SOUNDEFFECT_BREADTOUCHED_SQ2_HI,X [8e91]8d 29 01STA a:SoundEffect_State_0129 [8e94]d0 08BNE @_play [8e96]a9 10LDA #$10 [8e98]8d 04 40STA a:SQ2_VOL [8e9b]4c 26 86JMP Sound_ResetCurrentSound [8e9e]@_play: [8e9e]a9 dfLDA #$df [8ea0]8d 04 40STA a:SQ2_VOL [8ea3]a9 00LDA #$00 [8ea5]8d 05 40STA a:SQ2_SWEEP [8ea8]ad 27 01LDA a:SoundEffect_State_Counter [8eab]38SEC [8eac]ed 29 01SBC a:SoundEffect_State_0129 [8eaf]8d 27 01STA a:SoundEffect_State_Counter [8eb2]8d 06 40STA a:SQ2_LO [8eb5]8aTXA [8eb6]29 03AND #$03 [8eb8]aaTAX [8eb9]bd c5 8eLDA a:SOUNDEFFECT_BREADTOUCHED_SQ2_HI,X [8ebc]29 01AND #$01 [8ebe]8d 07 40STA a:SQ2_HI [8ec1]ee 28 01INC a:SoundEffect_State_0128 [8ec4]60RTS
; ; XREFS: ; SoundEffect_BreadTouched_OnTick ;
[8ec5]SOUNDEFFECT_BREADTOUCHED_SQ2_HI: [8ec5]1f 36 63 76 c8 00.byte $1f,$36,$63,$76,$c8,$00; byte
;============================================================================ ; TODO: Document SoundEffect_CoinTouched_Setup ; ; INPUTS: ; None. ; ; OUTPUTS: ; TODO ;============================================================================
[8ecb]SoundEffect_CoinTouched_Setup: [8ecb]4c 1f 89JMP SoundEffect_CoinTouchedCommon_Setup
;============================================================================ ; TODO: Document SoundEffect_CoinTouched_OnTick ; ; INPUTS: ; None. ; ; OUTPUTS: ; A ;============================================================================
[8ece]SoundEffect_CoinTouched_OnTick: [8ece]4c 2e 89JMP SoundEffect_CoinTouchedCommon_OnTick
;============================================================================ ; TODO: Document SoundEffect_SetNote ; ; INPUTS: ; A ; ; OUTPUTS: ; TODO ; ; XREFS: ; SoundEffect_CharacterInput_OnTick ; SoundEffect_HitEnemy_OnTick ; SoundEffect_HitPlayer_OnTick ; SoundEffect_ItemPickedUp_OnTick ; SoundEffect_Maybe_Typing_OnTick ; SoundEffect_Maybe_UseSpecialItem2_OnTick ; SoundEffect_PlayerDied_OnTick ; SoundEffect_ShowPlayerMenu_OnTick ;============================================================================
[8ed1]SoundEffect_SetNote: [8ed1]38SEC [8ed2]e9 18SBC #$18
; ; Loop, subtracting 12 (number of semitones in our lookup ; table) each iteration, until < 0. ; ; The number of loop iterations will be used later to ; normalize the resulting note for the right octave. ;
[8ed4]a0 01LDY #$01 [8ed6]38SEC [8ed7]@_loop: [8ed7]e9 0cSBC #$0c [8ed9]c8INY [8eda]b0 fbBCS @_loop [8edc]88DEY [8edd]69 0dADC #$0d [8edf]0aASL A [8ee0]aaTAX [8ee1]bd 52 85LDA a:AUDIO_NOTES,X [8ee4]8d 2a 01STA a:SoundEffect_Note_Low [8ee7]bd 53 85LDA a:AUDIO_NOTES+1,X [8eea]8d 2b 01STA a:SoundEffect_Note_High
; ; Convert to the note in the right octave based on ; the starting value. ;
[8eed]@_octaveLoop: [8eed]88DEY [8eee]f0 09BEQ @_return [8ef0]4e 2b 01LSR a:SoundEffect_Note_High [8ef3]6e 2a 01ROR a:SoundEffect_Note_Low [8ef6]4c ed 8eJMP @_octaveLoop [8ef9]@_return: [8ef9]60RTS
;============================================================================ ; Music lookup table. ; ; Entries are groups of 2-byte addresses containing the ; music data for each channel. ; ; XREFS: ; Music_Load ;============================================================================
; ; XREFS: ; Music_Load ;
[8efa]MSCRIPTS_LOOKUP: [8efa]ff.byte $ff; byte
; ; XREFS: ; MScript_Op_RestartChannel ;
[8efb]MSCRIPTS_TITLESCREEN: [8efb]7c 8fpointer MSCRIPT_TITLESCREEN_SQ1; [0]: [8efd]20 90pointer MSCRIPT_TITLESCREEN_SQ2; [1]: [8eff]61 91pointer MSCRIPT_TITLESCREEN_TRI; [2]: [8f01]8e 92pointer MSCRIPT_TITLESCREEN_NOISE; [3]: [8f03]MSCRIPTS_DAYBREAK: [8f03]b9 93pointer MSCRIPT_DAYBREAK_SQ1; [0]: [8f05]58 94pointer MSCRIPT_DAYBREAK_SQ2; [1]: [8f07]40 95pointer MSCRIPT_DAYBREAK_TRI; [2]: [8f09]60 96pointer MSCRIPT_DAYBREAK_NOISE; [3]: [8f0b]MSCRIPTS_APOLUNE: [8f0b]62 96pointer MSCRIPT_APOLUNE_SQ1; [0]: [8f0d]1c 97pointer MSCRIPT_APOLUNE_SQ2; [1]: [8f0f]7a 98pointer MSCRIPT_APOLUNE_TRI; [2]: [8f11]48 9apointer MSCRIPT_APOLUNE_NOISE; [3]: [8f13]MSCRIPTS_CONFLATE: [8f13]92 9apointer MSCRIPT_CONFLATE_SQ1; [0]: [8f15]15 9bpointer MSCRIPT_CONFLATE_SQ2; [1]: [8f17]bd 9bpointer MSCRIPT_CONFLATE_TRI; [2]: [8f19]5f 9cpointer MSCRIPT_CONFLATE_NOISE; [3]: [8f1b]MSCRIPTS_FOREPAW: [8f1b]38 9dpointer MSCRIPT_FOREPAW_SQ1; [0]: [8f1d]af 9dpointer MSCRIPT_FOREPAW_SQ2; [1]: [8f1f]73 9epointer MSCRIPT_FOREPAW_TRI; [2]: [8f21]e0 9epointer MSCRIPT_FOREPAW_NOISE; [3]: [8f23]MSCRIPTS_TOWER: [8f23]e2 9epointer MSCRIPT_TOWER_SQ1; [0]: [8f25]67 9fpointer MSCRIPT_TOWER_SQ2; [1]: [8f27]fa 9fpointer MSCRIPT_TOWER_TRI; [2]: [8f29]b1 a0pointer MSCRIPT_TOWER_NOISE; [3]: [8f2b]MSCRIPTS_EOLIS: [8f2b]63 a1pointer MSCRIPT_EOLIS_SQ1; [0]: [8f2d]1b a2pointer MSCRIPT_EOLIS_SQ2; [1]: [8f2f]d1 a2pointer MSCRIPT_EOLIS_TRI; [2]: [8f31]b8 a3pointer MSCRIPT_EOLIS_NOISE; [3]: [8f33]MSCRIPTS_MANTRA: [8f33]a1 a4pointer MSCRIPT_MANTRA_SQ1; [0]: [8f35]30 a5pointer MSCRIPT_MANTRA_SQ2; [1]: [8f37]bb a5pointer MSCRIPT_MANTRA_TRI; [2]: [8f39]5c a6pointer MSCRIPT_MANTRA_NOISE; [3]: [8f3b]MSCRIPTS_MASCON_VICTIM: [8f3b]5e a6pointer MSCRIPT_MASCON_VICTIM_SQ1; [0]: [8f3d]b0 a6pointer MSCRIPT_MASCON_VICTIM_SQ2; [1]: [8f3f]00 a7pointer MSCRIPT_MASCON_VICTIM_TRI; [2]: [8f41]8a a7pointer MSCRIPT_MASCON_VICTIM_NOISE; [3]: [8f43]MSCRIPTS_BOSS: [8f43]b9 a7pointer MSCRIPT_BOSS_SQ1; [0]: [8f45]16 a8pointer MSCRIPT_BOSS_SQ2; [1]: [8f47]74 a8pointer MSCRIPT_BOSS_TRI; [2]: [8f49]f8 a8pointer MSCRIPT_BOSS_NOISE; [3]: [8f4b]MSCRIPTS_HOURGLASS: [8f4b]fa a8pointer MSCRIPT_HOURGLASS_SQ1; [0]: [8f4d]3e a9pointer MSCRIPT_HOURGLASS_SQ2; [1]: [8f4f]82 a9pointer MSCRIPT_HOURGLASS_TRI; [2]: [8f51]1c aapointer MSCRIPT_HOURGLASS_NOISE; [3]: [8f53]MSCRIPTS_ENDING: [8f53]87 aapointer MSCRIPT_ENDING_SQ1; [0]: [8f55]47 abpointer MSCRIPT_ENDING_SQ2; [1]: [8f57]99 acpointer MSCRIPT_ENDING_TRI; [2]: [8f59]dd adpointer MSCRIPT_ENDING_NOISE; [3]: [8f5b]MSCRIPTS_KINGS_ROOM: [8f5b]20 afpointer MSCRIPT_KINGS_ROOM_SQ1; [0]: [8f5d]49 afpointer MSCRIPT_KINGS_ROOM_SQ2; [1]: [8f5f]72 afpointer MSCRIPT_KINGS_ROOM_TRI; [2]: [8f61]aa afpointer MSCRIPT_KINGS_ROOM_NOISE; [3]: [8f63]MSCRIPTS_TEMPLE: [8f63]ac afpointer MSCRIPT_TEMPLE_SQ1; [0]: [8f65]07 b0pointer MSCRIPT_TEMPLE_SQ2; [1]: [8f67]42 b0pointer MSCRIPT_TEMPLE_TRI; [2]: [8f69]73 b0pointer MSCRIPT_TEMPLE_NOISE; [3]: [8f6b]MSCRIPTS_SHOP: [8f6b]75 b0pointer MSCRIPT_SHOP_SQ1; [0]: [8f6d]b8 b0pointer MSCRIPT_SHOP_SQ2; [1]: [8f6f]fb b0pointer MSCRIPT_SHOP_TRI; [2]: [8f71]42 b1pointer MSCRIPT_SHOP_NOISE; [3]: [8f73]MSCRIPTS_EVIL_FORTRESS: [8f73]44 b1pointer MSCRIPT_EVIL_FORTRESS_SQ1; [0]: [8f75]cc b1pointer MSCRIPT_EVIL_FORTRESS_SQ2; [1]: [8f77]77 b2pointer MSCRIPT_EVIL_FORTRESS_TRI; [2]: [8f79]21 b3pointer MSCRIPT_EVIL_FORTRESS_NOISE; [3]: [8f7b]ff.byte $ff; byte
;============================================================================ ; Music for the start screen. ; ; XREFS: ; MSCRIPTS_TITLESCREEN [$PRG5::8efb] ;============================================================================
; ; XREFS: ; MSCRIPTS_TITLESCREEN [$PRG5::8efb] ;
[8f7c]MSCRIPT_TITLESCREEN_SQ1: [8f7c]f7.byte MSCRIPT_OP_SET_GLOBAL_TRANSPOSE; Op: Set global transpose [8f7d]ff.byte $ff; '- Down 1 semitone [8f7e]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [8f7f]00.byte $00; '- Reduce volume by 0 [8f80]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [8f81]d0.byte $d0; '- Duty cycle 3 Constant volume/envelope [8f82]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [8f83]00.byte $00; '- Mode 0: Linear decay [8f84]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [8f85]f4.byte $f4; '- Down 1 octave [8f86]86.byte $86; Note length: 6 [8f87]1f.byte $1f; F#2 [8f88]21.byte $21; G#2 [8f89]23.byte $23; A#2 [8f8a]24.byte $24; B2 [8f8b]26.byte $26; C#3 [8f8c]28.byte $28; D#3 [8f8d]29.byte $29; E3 [8f8e]2a.byte $2a; F3 [8f8f]2b.byte $2b; F#3 [8f90]2d.byte $2d; G#3 [8f91]2f.byte $2f; A#3 [8f92]30.byte $30; B3 [8f93]32.byte $32; C#4 [8f94]34.byte $34; D#4 [8f95]35.byte $35; E4 [8f96]36.byte $36; F4 [8f97]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [8f98]d0.byte $d0; '- Duty cycle 3 Constant volume/envelope [8f99]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [8f9a]02.byte $02; '- 2 iterations [8f9b]b0.byte $b0; Note length: 48 [8f9c]37.byte $37; F#4 [8f9d]3c.byte $3c; B4 [8f9e]3e.byte $3e; C#5 [8f9f]45.byte $45; G#5 [8fa0]c8.byte $c8; Note length: 72 [8fa1]43.byte $43; F#5 [8fa2]8c.byte $8c; Note length: 12 [8fa3]3c.byte $3c; B4 [8fa4]3e.byte $3e; C#5 [8fa5]3f.byte $3f; D5 [8fa6]3c.byte $3c; B4 [8fa7]3f.byte $3f; D5 [8fa8]3e.byte $3e; C#5 [8fa9]00.byte $00; Rest [8faa]3b.byte $3b; A#4 [8fab]98.byte $98; Note length: 24 [8fac]37.byte $37; F#4 [8fad]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [8fae]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [8faf]02.byte $02; '- 2 iterations [8fb0]a4.byte $a4; Note length: 36 [8fb1]43.byte $43; F#5 [8fb2]8c.byte $8c; Note length: 12 [8fb3]3c.byte $3c; B4 [8fb4]b0.byte $b0; Note length: 48 [8fb5]3c.byte $3c; B4 [8fb6]8c.byte $8c; Note length: 12 [8fb7]41.byte $41; E5 [8fb8]41.byte $41; E5 [8fb9]40.byte $40; D#5 [8fba]a4.byte $a4; Note length: 36 [8fbb]3c.byte $3c; B4 [8fbc]8c.byte $8c; Note length: 12 [8fbd]37.byte $37; F#4 [8fbe]39.byte $39; G#4 [8fbf]a4.byte $a4; Note length: 36 [8fc0]3a.byte $3a; A4 [8fc1]8c.byte $8c; Note length: 12 [8fc2]3a.byte $3a; A4 [8fc3]39.byte $39; G#4 [8fc4]3a.byte $3a; A4 [8fc5]39.byte $39; G#4 [8fc6]bc.byte $bc; Note length: 60 [8fc7]37.byte $37; F#4 [8fc8]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [8fc9]01.byte $01; '- 1 loops [8fca]86.byte $86; Note length: 6 [8fcb]37.byte $37; F#4 [8fcc]39.byte $39; G#4 [8fcd]3b.byte $3b; A#4 [8fce]3c.byte $3c; B4 [8fcf]3e.byte $3e; C#5 [8fd0]40.byte $40; D#5 [8fd1]41.byte $41; E5 [8fd2]42.byte $42; F5 [8fd3]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [8fd4]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [8fd5]02.byte $02; '- 2 loops [8fd6]86.byte $86; Note length: 6 [8fd7]3c.byte $3c; B4 [8fd8]3b.byte $3b; A#4 [8fd9]3c.byte $3c; B4 [8fda]3e.byte $3e; C#5 [8fdb]40.byte $40; D#5 [8fdc]41.byte $41; E5 [8fdd]42.byte $42; F5 [8fde]43.byte $43; F#5 [8fdf]b0.byte $b0; Note length: 48 [8fe0]44.byte $44; G5 [8fe1]46.byte $46; A5 [8fe2]c8.byte $c8; Note length: 72 [8fe3]43.byte $43; F#5 [8fe4]8c.byte $8c; Note length: 12 [8fe5]3c.byte $3c; B4 [8fe6]3e.byte $3e; C#5 [8fe7]3f.byte $3f; D5 [8fe8]3f.byte $3f; D5 [8fe9]41.byte $41; E5 [8fea]3e.byte $3e; C#5 [8feb]00.byte $00; Rest [8fec]3c.byte $3c; B4 [8fed]3a.byte $3a; A4 [8fee]98.byte $98; Note length: 24 [8fef]37.byte $37; F#4 [8ff0]86.byte $86; Note length: 6 [8ff1]38.byte $38; G4 [8ff2]37.byte $37; F#4 [8ff3]8c.byte $8c; Note length: 12 [8ff4]35.byte $35; E4 [8ff5]92.byte $92; Note length: 18 [8ff6]37.byte $37; F#4 [8ff7]86.byte $86; Note length: 6 [8ff8]30.byte $30; B3 [8ff9]33.byte $33; D4 [8ffa]37.byte $37; F#4 [8ffb]3c.byte $3c; B4 [8ffc]37.byte $37; F#4 [8ffd]3c.byte $3c; B4 [8ffe]3f.byte $3f; D5 [8fff]b0.byte $b0; Note length: 48 [9000]44.byte $44; G5 [9001]46.byte $46; A5 [9002]bc.byte $bc; Note length: 60 [9003]43.byte $43; F#5 [9004]8c.byte $8c; Note length: 12 [9005]3c.byte $3c; B4 [9006]3c.byte $3c; B4 [9007]3e.byte $3e; C#5 [9008]3f.byte $3f; D5 [9009]3f.byte $3f; D5 [900a]41.byte $41; E5 [900b]3e.byte $3e; C#5 [900c]00.byte $00; Rest [900d]3c.byte $3c; B4 [900e]98.byte $98; Note length: 24 [900f]3a.byte $3a; A4 [9010]8c.byte $8c; Note length: 12 [9011]3f.byte $3f; D5 [9012]3f.byte $3f; D5 [9013]41.byte $41; E5 [9014]3e.byte $3e; C#5 [9015]00.byte $00; Rest [9016]3c.byte $3c; B4 [9017]3a.byte $3a; A4 [9018]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [9019]cc.byte $cc; '- 204 ticks [901a]3c.byte $3c; B4 [901b]d4.byte $d4; Note length: 84 [901c]00.byte $00; Rest [901d]ec.byte $ec; Note length: 108 [901e]3c.byte $3c; B4 [901f]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TITLESCREEN [$PRG5::8efd] ;
[9020]MSCRIPT_TITLESCREEN_SQ2: [9020]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9021]03.byte $03; '- Reduce volume by 3 [9022]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9023]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9024]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9025]00.byte $00; '- Mode 0: Linear decay [9026]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9027]02.byte $02; '- 2 [9028]98.byte $98; Note length: 24 [9029]00.byte $00; Rest [902a]86.byte $86; Note length: 6 [902b]21.byte $21; A2 [902c]23.byte $23; B2 [902d]24.byte $24; C3 [902e]26.byte $26; D3 [902f]28.byte $28; E3 [9030]29.byte $29; F3 [9031]2b.byte $2b; G3 [9032]2d.byte $2d; A3 [9033]2f.byte $2f; B3 [9034]30.byte $30; C4 [9035]32.byte $32; D4 [9036]33.byte $33; D#4 [9037]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9038]00.byte $00; '- 0 [9039]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [903a]50.byte $50; '- Duty cycle 1 Constant volume/envelope [903b]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [903c]02.byte $02; '- 2 iterations [903d]86.byte $86; Note length: 6 [903e]34.byte $34; E4 [903f]34.byte $34; E4 [9040]34.byte $34; E4 [9041]00.byte $00; Rest [9042]3c.byte $3c; C5 [9043]2b.byte $2b; G3 [9044]34.byte $34; E4 [9045]34.byte $34; E4 [9046]34.byte $34; E4 [9047]34.byte $34; E4 [9048]34.byte $34; E4 [9049]00.byte $00; Rest [904a]3c.byte $3c; C5 [904b]2b.byte $2b; G3 [904c]34.byte $34; E4 [904d]34.byte $34; E4 [904e]35.byte $35; F4 [904f]35.byte $35; F4 [9050]35.byte $35; F4 [9051]00.byte $00; Rest [9052]3c.byte $3c; C5 [9053]2d.byte $2d; A3 [9054]35.byte $35; F4 [9055]35.byte $35; F4 [9056]35.byte $35; F4 [9057]35.byte $35; F4 [9058]35.byte $35; F4 [9059]00.byte $00; Rest [905a]3c.byte $3c; C5 [905b]2d.byte $2d; A3 [905c]35.byte $35; F4 [905d]35.byte $35; F4 [905e]34.byte $34; E4 [905f]34.byte $34; E4 [9060]34.byte $34; E4 [9061]00.byte $00; Rest [9062]3c.byte $3c; C5 [9063]2b.byte $2b; G3 [9064]34.byte $34; E4 [9065]34.byte $34; E4 [9066]34.byte $34; E4 [9067]30.byte $30; C4 [9068]2b.byte $2b; G3 [9069]30.byte $30; C4 [906a]34.byte $34; E4 [906b]34.byte $34; E4 [906c]37.byte $37; G4 [906d]37.byte $37; G4 [906e]2c.byte $2c; G#3 [906f]30.byte $30; C4 [9070]33.byte $33; D#4 [9071]38.byte $38; G#4 [9072]3c.byte $3c; C5 [9073]38.byte $38; G#4 [9074]2b.byte $2b; G3 [9075]00.byte $00; Rest [9076]00.byte $00; Rest [9077]00.byte $00; Rest [9078]22.byte $22; A#2 [9079]26.byte $26; D3 [907a]2b.byte $2b; G3 [907b]2f.byte $2f; B3 [907c]32.byte $32; D4 [907d]2f.byte $2f; B3 [907e]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [907f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9080]02.byte $02; '- 2 iterations [9081]86.byte $86; Note length: 6 [9082]34.byte $34; E4 [9083]37.byte $37; G4 [9084]2b.byte $2b; G3 [9085]30.byte $30; C4 [9086]34.byte $34; E4 [9087]37.byte $37; G4 [9088]2b.byte $2b; G3 [9089]30.byte $30; C4 [908a]34.byte $34; E4 [908b]37.byte $37; G4 [908c]2b.byte $2b; G3 [908d]30.byte $30; C4 [908e]34.byte $34; E4 [908f]37.byte $37; G4 [9090]2b.byte $2b; G3 [9091]30.byte $30; C4 [9092]35.byte $35; F4 [9093]37.byte $37; G4 [9094]2b.byte $2b; G3 [9095]30.byte $30; C4 [9096]34.byte $34; E4 [9097]37.byte $37; G4 [9098]2b.byte $2b; G3 [9099]30.byte $30; C4 [909a]34.byte $34; E4 [909b]37.byte $37; G4 [909c]2b.byte $2b; G3 [909d]30.byte $30; C4 [909e]34.byte $34; E4 [909f]37.byte $37; G4 [90a0]30.byte $30; C4 [90a1]34.byte $34; E4 [90a2]27.byte $27; D#3 [90a3]2b.byte $2b; G3 [90a4]2e.byte $2e; A#3 [90a5]33.byte $33; D#4 [90a6]37.byte $37; G4 [90a7]33.byte $33; D#4 [90a8]2e.byte $2e; A#3 [90a9]2b.byte $2b; G3 [90aa]29.byte $29; F3 [90ab]2d.byte $2d; A3 [90ac]30.byte $30; C4 [90ad]35.byte $35; F4 [90ae]30.byte $30; C4 [90af]2d.byte $2d; A3 [90b0]2b.byte $2b; G3 [90b1]26.byte $26; D3 [90b2]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [90b3]01.byte $01; '- 1 loops [90b4]86.byte $86; Note length: 6 [90b5]2b.byte $2b; G3 [90b6]30.byte $30; C4 [90b7]34.byte $34; E4 [90b8]30.byte $30; C4 [90b9]2b.byte $2b; G3 [90ba]30.byte $30; C4 [90bb]34.byte $34; E4 [90bc]30.byte $30; C4 [90bd]34.byte $34; E4 [90be]35.byte $35; F4 [90bf]37.byte $37; G4 [90c0]39.byte $39; A4 [90c1]3b.byte $3b; B4 [90c2]3c.byte $3c; C5 [90c3]3e.byte $3e; D5 [90c4]3f.byte $3f; D#5 [90c5]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [90c6]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [90c7]02.byte $02; '- 2 loops [90c8]86.byte $86; Note length: 6 [90c9]2b.byte $2b; G3 [90ca]30.byte $30; C4 [90cb]34.byte $34; E4 [90cc]30.byte $30; C4 [90cd]2b.byte $2b; G3 [90ce]30.byte $30; C4 [90cf]34.byte $34; E4 [90d0]30.byte $30; C4 [90d1]34.byte $34; E4 [90d2]33.byte $33; D#4 [90d3]34.byte $34; E4 [90d4]35.byte $35; F4 [90d5]37.byte $37; G4 [90d6]39.byte $39; A4 [90d7]3b.byte $3b; B4 [90d8]3c.byte $3c; C5 [90d9]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [90da]02.byte $02; '- 2 iterations [90db]86.byte $86; Note length: 6 [90dc]2c.byte $2c; G#3 [90dd]30.byte $30; C4 [90de]33.byte $33; D#4 [90df]38.byte $38; G#4 [90e0]3c.byte $3c; C5 [90e1]3f.byte $3f; D#5 [90e2]3c.byte $3c; C5 [90e3]38.byte $38; G#4 [90e4]2e.byte $2e; A#3 [90e5]32.byte $32; D4 [90e6]35.byte $35; F4 [90e7]3a.byte $3a; A#4 [90e8]3e.byte $3e; D5 [90e9]41.byte $41; F5 [90ea]3e.byte $3e; D5 [90eb]3a.byte $3a; A#4 [90ec]24.byte $24; C3 [90ed]28.byte $28; E3 [90ee]2b.byte $2b; G3 [90ef]30.byte $30; C4 [90f0]34.byte $34; E4 [90f1]37.byte $37; G4 [90f2]3c.byte $3c; C5 [90f3]40.byte $40; E5 [90f4]3c.byte $3c; C5 [90f5]37.byte $37; G4 [90f6]34.byte $34; E4 [90f7]30.byte $30; C4 [90f8]2b.byte $2b; G3 [90f9]28.byte $28; E3 [90fa]24.byte $24; C3 [90fb]28.byte $28; E3 [90fc]2c.byte $2c; G#3 [90fd]30.byte $30; C4 [90fe]33.byte $33; D#4 [90ff]38.byte $38; G#4 [9100]3c.byte $3c; C5 [9101]38.byte $38; G#4 [9102]35.byte $35; F4 [9103]32.byte $32; D4 [9104]2e.byte $2e; A#3 [9105]29.byte $29; F3 [9106]2e.byte $2e; A#3 [9107]32.byte $32; D4 [9108]35.byte $35; F4 [9109]32.byte $32; D4 [910a]2e.byte $2e; A#3 [910b]32.byte $32; D4 [910c]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [910d]01.byte $01; '- 1 loops [910e]8c.byte $8c; Note length: 12 [910f]33.byte $33; D#4 [9110]86.byte $86; Note length: 6 [9111]35.byte $35; F4 [9112]33.byte $33; D#4 [9113]8c.byte $8c; Note length: 12 [9114]30.byte $30; C4 [9115]30.byte $30; C4 [9116]86.byte $86; Note length: 6 [9117]24.byte $24; C3 [9118]27.byte $27; D#3 [9119]2b.byte $2b; G3 [911a]30.byte $30; C4 [911b]33.byte $33; D#4 [911c]30.byte $30; C4 [911d]2b.byte $2b; G3 [911e]27.byte $27; D#3 [911f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9120]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9121]02.byte $02; '- 2 loops [9122]86.byte $86; Note length: 6 [9123]33.byte $33; D#4 [9124]38.byte $38; G#4 [9125]3c.byte $3c; C5 [9126]38.byte $38; G#4 [9127]33.byte $33; D#4 [9128]38.byte $38; G#4 [9129]8c.byte $8c; Note length: 12 [912a]3a.byte $3a; A#4 [912b]00.byte $00; Rest [912c]35.byte $35; F4 [912d]37.byte $37; G4 [912e]92.byte $92; Note length: 18 [912f]34.byte $34; E4 [9130]86.byte $86; Note length: 6 [9131]30.byte $30; C4 [9132]2b.byte $2b; G3 [9133]30.byte $30; C4 [9134]28.byte $28; E3 [9135]2b.byte $2b; G3 [9136]24.byte $24; C3 [9137]28.byte $28; E3 [9138]34.byte $34; E4 [9139]30.byte $30; C4 [913a]2b.byte $2b; G3 [913b]30.byte $30; C4 [913c]28.byte $28; E3 [913d]2b.byte $2b; G3 [913e]24.byte $24; C3 [913f]28.byte $28; E3 [9140]32.byte $32; D4 [9141]2e.byte $2e; A#3 [9142]29.byte $29; F3 [9143]2e.byte $2e; A#3 [9144]26.byte $26; D3 [9145]29.byte $29; F3 [9146]22.byte $22; A#2 [9147]26.byte $26; D3 [9148]32.byte $32; D4 [9149]2e.byte $2e; A#3 [914a]29.byte $29; F3 [914b]2e.byte $2e; A#3 [914c]26.byte $26; D3 [914d]29.byte $29; F3 [914e]22.byte $22; A#2 [914f]26.byte $26; D3 [9150]30.byte $30; C4 [9151]2c.byte $2c; G#3 [9152]27.byte $27; D#3 [9153]2c.byte $2c; G#3 [9154]24.byte $24; C3 [9155]27.byte $27; D#3 [9156]20.byte $20; G#2 [9157]24.byte $24; C3 [9158]33.byte $33; D#4 [9159]30.byte $30; C4 [915a]2c.byte $2c; G#3 [915b]30.byte $30; C4 [915c]27.byte $27; D#3 [915d]2c.byte $2c; G#3 [915e]ec.byte $ec; Note length: 108 [915f]27.byte $27; D#3 [9160]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TITLESCREEN [$PRG5::8eff] ;
[9161]MSCRIPT_TITLESCREEN_TRI: [9161]b0.byte $b0; Note length: 48 [9162]00.byte $00; Rest [9163]86.byte $86; Note length: 6 [9164]23.byte $23; B4 [9165]24.byte $24; C5 [9166]26.byte $26; D5 [9167]28.byte $28; E5 [9168]29.byte $29; F5 [9169]2b.byte $2b; G5 [916a]2d.byte $2d; A5 [916b]2f.byte $2f; B5 [916c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [916d]02.byte $02; '- 2 iterations [916e]86.byte $86; Note length: 6 [916f]18.byte $18; C4 [9170]18.byte $18; C4 [9171]18.byte $18; C4 [9172]18.byte $18; C4 [9173]18.byte $18; C4 [9174]00.byte $00; Rest [9175]18.byte $18; C4 [9176]18.byte $18; C4 [9177]18.byte $18; C4 [9178]18.byte $18; C4 [9179]18.byte $18; C4 [917a]18.byte $18; C4 [917b]18.byte $18; C4 [917c]00.byte $00; Rest [917d]18.byte $18; C4 [917e]18.byte $18; C4 [917f]18.byte $18; C4 [9180]18.byte $18; C4 [9181]18.byte $18; C4 [9182]18.byte $18; C4 [9183]18.byte $18; C4 [9184]00.byte $00; Rest [9185]18.byte $18; C4 [9186]18.byte $18; C4 [9187]18.byte $18; C4 [9188]18.byte $18; C4 [9189]18.byte $18; C4 [918a]18.byte $18; C4 [918b]18.byte $18; C4 [918c]00.byte $00; Rest [918d]18.byte $18; C4 [918e]18.byte $18; C4 [918f]18.byte $18; C4 [9190]18.byte $18; C4 [9191]18.byte $18; C4 [9192]18.byte $18; C4 [9193]18.byte $18; C4 [9194]00.byte $00; Rest [9195]18.byte $18; C4 [9196]18.byte $18; C4 [9197]18.byte $18; C4 [9198]18.byte $18; C4 [9199]18.byte $18; C4 [919a]18.byte $18; C4 [919b]18.byte $18; C4 [919c]00.byte $00; Rest [919d]18.byte $18; C4 [919e]18.byte $18; C4 [919f]14.byte $14; G#3 [91a0]14.byte $14; G#3 [91a1]20.byte $20; G#4 [91a2]20.byte $20; G#4 [91a3]14.byte $14; G#3 [91a4]14.byte $14; G#3 [91a5]13.byte $13; G3 [91a6]00.byte $00; Rest [91a7]00.byte $00; Rest [91a8]00.byte $00; Rest [91a9]1f.byte $1f; G4 [91aa]1f.byte $1f; G4 [91ab]13.byte $13; G3 [91ac]13.byte $13; G3 [91ad]13.byte $13; G3 [91ae]13.byte $13; G3 [91af]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [91b0]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [91b1]02.byte $02; '- 2 iterations [91b2]86.byte $86; Note length: 6 [91b3]18.byte $18; C4 [91b4]18.byte $18; C4 [91b5]18.byte $18; C4 [91b6]18.byte $18; C4 [91b7]18.byte $18; C4 [91b8]00.byte $00; Rest [91b9]18.byte $18; C4 [91ba]18.byte $18; C4 [91bb]18.byte $18; C4 [91bc]18.byte $18; C4 [91bd]18.byte $18; C4 [91be]18.byte $18; C4 [91bf]18.byte $18; C4 [91c0]00.byte $00; Rest [91c1]18.byte $18; C4 [91c2]18.byte $18; C4 [91c3]18.byte $18; C4 [91c4]18.byte $18; C4 [91c5]18.byte $18; C4 [91c6]18.byte $18; C4 [91c7]18.byte $18; C4 [91c8]00.byte $00; Rest [91c9]18.byte $18; C4 [91ca]18.byte $18; C4 [91cb]18.byte $18; C4 [91cc]18.byte $18; C4 [91cd]18.byte $18; C4 [91ce]18.byte $18; C4 [91cf]18.byte $18; C4 [91d0]00.byte $00; Rest [91d1]18.byte $18; C4 [91d2]18.byte $18; C4 [91d3]1b.byte $1b; D#4 [91d4]1b.byte $1b; D#4 [91d5]1b.byte $1b; D#4 [91d6]1b.byte $1b; D#4 [91d7]1b.byte $1b; D#4 [91d8]00.byte $00; Rest [91d9]1b.byte $1b; D#4 [91da]1b.byte $1b; D#4 [91db]1d.byte $1d; F4 [91dc]1d.byte $1d; F4 [91dd]1d.byte $1d; F4 [91de]1d.byte $1d; F4 [91df]1d.byte $1d; F4 [91e0]00.byte $00; Rest [91e1]1d.byte $1d; F4 [91e2]1d.byte $1d; F4 [91e3]18.byte $18; C4 [91e4]18.byte $18; C4 [91e5]18.byte $18; C4 [91e6]18.byte $18; C4 [91e7]18.byte $18; C4 [91e8]00.byte $00; Rest [91e9]18.byte $18; C4 [91ea]18.byte $18; C4 [91eb]18.byte $18; C4 [91ec]18.byte $18; C4 [91ed]18.byte $18; C4 [91ee]18.byte $18; C4 [91ef]18.byte $18; C4 [91f0]00.byte $00; Rest [91f1]18.byte $18; C4 [91f2]18.byte $18; C4 [91f3]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [91f4]14.byte $14; G#3 [91f5]14.byte $14; G#3 [91f6]14.byte $14; G#3 [91f7]14.byte $14; G#3 [91f8]14.byte $14; G#3 [91f9]14.byte $14; G#3 [91fa]14.byte $14; G#3 [91fb]14.byte $14; G#3 [91fc]16.byte $16; A#3 [91fd]16.byte $16; A#3 [91fe]16.byte $16; A#3 [91ff]16.byte $16; A#3 [9200]16.byte $16; A#3 [9201]16.byte $16; A#3 [9202]16.byte $16; A#3 [9203]16.byte $16; A#3 [9204]18.byte $18; C4 [9205]18.byte $18; C4 [9206]18.byte $18; C4 [9207]18.byte $18; C4 [9208]18.byte $18; C4 [9209]00.byte $00; Rest [920a]18.byte $18; C4 [920b]18.byte $18; C4 [920c]18.byte $18; C4 [920d]18.byte $18; C4 [920e]18.byte $18; C4 [920f]18.byte $18; C4 [9210]18.byte $18; C4 [9211]00.byte $00; Rest [9212]18.byte $18; C4 [9213]18.byte $18; C4 [9214]14.byte $14; G#3 [9215]14.byte $14; G#3 [9216]14.byte $14; G#3 [9217]14.byte $14; G#3 [9218]14.byte $14; G#3 [9219]14.byte $14; G#3 [921a]16.byte $16; A#3 [921b]00.byte $00; Rest [921c]00.byte $00; Rest [921d]00.byte $00; Rest [921e]16.byte $16; A#3 [921f]16.byte $16; A#3 [9220]16.byte $16; A#3 [9221]16.byte $16; A#3 [9222]16.byte $16; A#3 [9223]16.byte $16; A#3 [9224]18.byte $18; C4 [9225]18.byte $18; C4 [9226]18.byte $18; C4 [9227]18.byte $18; C4 [9228]18.byte $18; C4 [9229]00.byte $00; Rest [922a]18.byte $18; C4 [922b]18.byte $18; C4 [922c]18.byte $18; C4 [922d]18.byte $18; C4 [922e]18.byte $18; C4 [922f]18.byte $18; C4 [9230]18.byte $18; C4 [9231]00.byte $00; Rest [9232]18.byte $18; C4 [9233]18.byte $18; C4 [9234]14.byte $14; G#3 [9235]14.byte $14; G#3 [9236]14.byte $14; G#3 [9237]14.byte $14; G#3 [9238]14.byte $14; G#3 [9239]14.byte $14; G#3 [923a]14.byte $14; G#3 [923b]14.byte $14; G#3 [923c]16.byte $16; A#3 [923d]16.byte $16; A#3 [923e]16.byte $16; A#3 [923f]16.byte $16; A#3 [9240]16.byte $16; A#3 [9241]16.byte $16; A#3 [9242]16.byte $16; A#3 [9243]16.byte $16; A#3 [9244]18.byte $18; C4 [9245]18.byte $18; C4 [9246]18.byte $18; C4 [9247]18.byte $18; C4 [9248]18.byte $18; C4 [9249]00.byte $00; Rest [924a]18.byte $18; C4 [924b]18.byte $18; C4 [924c]18.byte $18; C4 [924d]18.byte $18; C4 [924e]18.byte $18; C4 [924f]18.byte $18; C4 [9250]18.byte $18; C4 [9251]00.byte $00; Rest [9252]18.byte $18; C4 [9253]18.byte $18; C4 [9254]14.byte $14; G#3 [9255]14.byte $14; G#3 [9256]14.byte $14; G#3 [9257]14.byte $14; G#3 [9258]14.byte $14; G#3 [9259]14.byte $14; G#3 [925a]16.byte $16; A#3 [925b]00.byte $00; Rest [925c]00.byte $00; Rest [925d]00.byte $00; Rest [925e]16.byte $16; A#3 [925f]16.byte $16; A#3 [9260]16.byte $16; A#3 [9261]16.byte $16; A#3 [9262]16.byte $16; A#3 [9263]16.byte $16; A#3 [9264]14.byte $14; G#3 [9265]14.byte $14; G#3 [9266]14.byte $14; G#3 [9267]14.byte $14; G#3 [9268]14.byte $14; G#3 [9269]14.byte $14; G#3 [926a]16.byte $16; A#3 [926b]00.byte $00; Rest [926c]00.byte $00; Rest [926d]00.byte $00; Rest [926e]16.byte $16; A#3 [926f]16.byte $16; A#3 [9270]16.byte $16; A#3 [9271]16.byte $16; A#3 [9272]98.byte $98; Note length: 24 [9273]18.byte $18; C4 [9274]8c.byte $8c; Note length: 12 [9275]18.byte $18; C4 [9276]18.byte $18; C4 [9277]18.byte $18; C4 [9278]18.byte $18; C4 [9279]18.byte $18; C4 [927a]18.byte $18; C4 [927b]18.byte $18; C4 [927c]18.byte $18; C4 [927d]18.byte $18; C4 [927e]18.byte $18; C4 [927f]18.byte $18; C4 [9280]18.byte $18; C4 [9281]18.byte $18; C4 [9282]18.byte $18; C4 [9283]18.byte $18; C4 [9284]18.byte $18; C4 [9285]18.byte $18; C4 [9286]18.byte $18; C4 [9287]18.byte $18; C4 [9288]18.byte $18; C4 [9289]18.byte $18; C4 [928a]18.byte $18; C4 [928b]ec.byte $ec; Note length: 108 [928c]20.byte $20; G#4 [928d]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TITLESCREEN [$PRG5::8f01] ;
[928e]MSCRIPT_TITLESCREEN_NOISE: [928e]8c.byte $8c; Note length: 12 [928f]21.byte $21; A9 [9290]00.byte $00; Rest [9291]21.byte $21; A9 [9292]00.byte $00; Rest [9293]86.byte $86; Note length: 6 [9294]31.byte $31; A9 [9295]21.byte $21; A9 [9296]31.byte $31; A9 [9297]31.byte $31; A9 [9298]31.byte $31; A9 [9299]21.byte $21; A9 [929a]31.byte $31; A9 [929b]31.byte $31; A9 [929c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [929d]02.byte $02; '- 2 iterations [929e]86.byte $86; Note length: 6 [929f]31.byte $31; A9 [92a0]00.byte $00; Rest [92a1]31.byte $31; A9 [92a2]31.byte $31; A9 [92a3]8c.byte $8c; Note length: 12 [92a4]21.byte $21; A9 [92a5]86.byte $86; Note length: 6 [92a6]31.byte $31; A9 [92a7]31.byte $31; A9 [92a8]31.byte $31; A9 [92a9]00.byte $00; Rest [92aa]31.byte $31; A9 [92ab]31.byte $31; A9 [92ac]8c.byte $8c; Note length: 12 [92ad]21.byte $21; A9 [92ae]86.byte $86; Note length: 6 [92af]31.byte $31; A9 [92b0]31.byte $31; A9 [92b1]31.byte $31; A9 [92b2]00.byte $00; Rest [92b3]31.byte $31; A9 [92b4]31.byte $31; A9 [92b5]8c.byte $8c; Note length: 12 [92b6]21.byte $21; A9 [92b7]86.byte $86; Note length: 6 [92b8]31.byte $31; A9 [92b9]31.byte $31; A9 [92ba]31.byte $31; A9 [92bb]00.byte $00; Rest [92bc]31.byte $31; A9 [92bd]31.byte $31; A9 [92be]8c.byte $8c; Note length: 12 [92bf]21.byte $21; A9 [92c0]86.byte $86; Note length: 6 [92c1]31.byte $31; A9 [92c2]31.byte $31; A9 [92c3]31.byte $31; A9 [92c4]00.byte $00; Rest [92c5]31.byte $31; A9 [92c6]31.byte $31; A9 [92c7]8c.byte $8c; Note length: 12 [92c8]21.byte $21; A9 [92c9]86.byte $86; Note length: 6 [92ca]31.byte $31; A9 [92cb]31.byte $31; A9 [92cc]31.byte $31; A9 [92cd]00.byte $00; Rest [92ce]31.byte $31; A9 [92cf]31.byte $31; A9 [92d0]8c.byte $8c; Note length: 12 [92d1]21.byte $21; A9 [92d2]21.byte $21; A9 [92d3]21.byte $21; A9 [92d4]21.byte $21; A9 [92d5]21.byte $21; A9 [92d6]21.byte $21; A9 [92d7]86.byte $86; Note length: 6 [92d8]31.byte $31; A9 [92d9]00.byte $00; Rest [92da]8c.byte $8c; Note length: 12 [92db]21.byte $21; A9 [92dc]21.byte $21; A9 [92dd]86.byte $86; Note length: 6 [92de]21.byte $21; A9 [92df]21.byte $21; A9 [92e0]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [92e1]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [92e2]02.byte $02; '- 2 iterations [92e3]86.byte $86; Note length: 6 [92e4]31.byte $31; A9 [92e5]00.byte $00; Rest [92e6]31.byte $31; A9 [92e7]31.byte $31; A9 [92e8]8c.byte $8c; Note length: 12 [92e9]21.byte $21; A9 [92ea]86.byte $86; Note length: 6 [92eb]31.byte $31; A9 [92ec]31.byte $31; A9 [92ed]31.byte $31; A9 [92ee]00.byte $00; Rest [92ef]31.byte $31; A9 [92f0]31.byte $31; A9 [92f1]8c.byte $8c; Note length: 12 [92f2]21.byte $21; A9 [92f3]86.byte $86; Note length: 6 [92f4]31.byte $31; A9 [92f5]31.byte $31; A9 [92f6]31.byte $31; A9 [92f7]00.byte $00; Rest [92f8]31.byte $31; A9 [92f9]31.byte $31; A9 [92fa]8c.byte $8c; Note length: 12 [92fb]21.byte $21; A9 [92fc]86.byte $86; Note length: 6 [92fd]31.byte $31; A9 [92fe]31.byte $31; A9 [92ff]31.byte $31; A9 [9300]00.byte $00; Rest [9301]31.byte $31; A9 [9302]31.byte $31; A9 [9303]8c.byte $8c; Note length: 12 [9304]21.byte $21; A9 [9305]86.byte $86; Note length: 6 [9306]31.byte $31; A9 [9307]31.byte $31; A9 [9308]31.byte $31; A9 [9309]00.byte $00; Rest [930a]31.byte $31; A9 [930b]31.byte $31; A9 [930c]8c.byte $8c; Note length: 12 [930d]21.byte $21; A9 [930e]86.byte $86; Note length: 6 [930f]31.byte $31; A9 [9310]31.byte $31; A9 [9311]31.byte $31; A9 [9312]00.byte $00; Rest [9313]31.byte $31; A9 [9314]31.byte $31; A9 [9315]8c.byte $8c; Note length: 12 [9316]21.byte $21; A9 [9317]86.byte $86; Note length: 6 [9318]31.byte $31; A9 [9319]31.byte $31; A9 [931a]31.byte $31; A9 [931b]00.byte $00; Rest [931c]31.byte $31; A9 [931d]31.byte $31; A9 [931e]8c.byte $8c; Note length: 12 [931f]21.byte $21; A9 [9320]86.byte $86; Note length: 6 [9321]31.byte $31; A9 [9322]31.byte $31; A9 [9323]31.byte $31; A9 [9324]00.byte $00; Rest [9325]31.byte $31; A9 [9326]31.byte $31; A9 [9327]21.byte $21; A9 [9328]21.byte $21; A9 [9329]21.byte $21; A9 [932a]00.byte $00; Rest [932b]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [932c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [932d]02.byte $02; '- 2 iterations [932e]86.byte $86; Note length: 6 [932f]31.byte $31; A9 [9330]00.byte $00; Rest [9331]31.byte $31; A9 [9332]31.byte $31; A9 [9333]8c.byte $8c; Note length: 12 [9334]21.byte $21; A9 [9335]86.byte $86; Note length: 6 [9336]31.byte $31; A9 [9337]31.byte $31; A9 [9338]31.byte $31; A9 [9339]00.byte $00; Rest [933a]31.byte $31; A9 [933b]31.byte $31; A9 [933c]8c.byte $8c; Note length: 12 [933d]21.byte $21; A9 [933e]86.byte $86; Note length: 6 [933f]31.byte $31; A9 [9340]31.byte $31; A9 [9341]31.byte $31; A9 [9342]00.byte $00; Rest [9343]31.byte $31; A9 [9344]31.byte $31; A9 [9345]8c.byte $8c; Note length: 12 [9346]21.byte $21; A9 [9347]86.byte $86; Note length: 6 [9348]31.byte $31; A9 [9349]31.byte $31; A9 [934a]31.byte $31; A9 [934b]00.byte $00; Rest [934c]31.byte $31; A9 [934d]31.byte $31; A9 [934e]8c.byte $8c; Note length: 12 [934f]21.byte $21; A9 [9350]86.byte $86; Note length: 6 [9351]31.byte $31; A9 [9352]31.byte $31; A9 [9353]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9354]01.byte $01; '- 1 loop [9355]86.byte $86; Note length: 6 [9356]31.byte $31; A9 [9357]00.byte $00; Rest [9358]31.byte $31; A9 [9359]31.byte $31; A9 [935a]8c.byte $8c; Note length: 12 [935b]21.byte $21; A9 [935c]86.byte $86; Note length: 6 [935d]31.byte $31; A9 [935e]31.byte $31; A9 [935f]31.byte $31; A9 [9360]00.byte $00; Rest [9361]31.byte $31; A9 [9362]31.byte $31; A9 [9363]8c.byte $8c; Note length: 12 [9364]21.byte $21; A9 [9365]86.byte $86; Note length: 6 [9366]31.byte $31; A9 [9367]31.byte $31; A9 [9368]31.byte $31; A9 [9369]00.byte $00; Rest [936a]31.byte $31; A9 [936b]31.byte $31; A9 [936c]8c.byte $8c; Note length: 12 [936d]21.byte $21; A9 [936e]86.byte $86; Note length: 6 [936f]31.byte $31; A9 [9370]31.byte $31; A9 [9371]31.byte $31; A9 [9372]00.byte $00; Rest [9373]8c.byte $8c; Note length: 12 [9374]21.byte $21; A9 [9375]86.byte $86; Note length: 6 [9376]21.byte $21; A9 [9377]21.byte $21; A9 [9378]21.byte $21; A9 [9379]00.byte $00; Rest [937a]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [937b]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [937c]02.byte $02; '- 2 loops [937d]8c.byte $8c; Note length: 12 [937e]21.byte $21; A9 [937f]21.byte $21; A9 [9380]21.byte $21; A9 [9381]21.byte $21; A9 [9382]86.byte $86; Note length: 6 [9383]31.byte $31; A9 [9384]31.byte $31; A9 [9385]8c.byte $8c; Note length: 12 [9386]21.byte $21; A9 [9387]21.byte $21; A9 [9388]86.byte $86; Note length: 6 [9389]21.byte $21; A9 [938a]21.byte $21; A9 [938b]8c.byte $8c; Note length: 12 [938c]21.byte $21; A9 [938d]21.byte $21; A9 [938e]21.byte $21; A9 [938f]21.byte $21; A9 [9390]00.byte $00; Rest [9391]21.byte $21; A9 [9392]21.byte $21; A9 [9393]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9394]02.byte $02; '- 2 iterations [9395]86.byte $86; Note length: 6 [9396]31.byte $31; A9 [9397]00.byte $00; Rest [9398]31.byte $31; A9 [9399]31.byte $31; A9 [939a]31.byte $31; A9 [939b]00.byte $00; Rest [939c]31.byte $31; A9 [939d]31.byte $31; A9 [939e]31.byte $31; A9 [939f]00.byte $00; Rest [93a0]31.byte $31; A9 [93a1]31.byte $31; A9 [93a2]31.byte $31; A9 [93a3]00.byte $00; Rest [93a4]31.byte $31; A9 [93a5]31.byte $31; A9 [93a6]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [93a7]31.byte $31; A9 [93a8]00.byte $00; Rest [93a9]31.byte $31; A9 [93aa]31.byte $31; A9 [93ab]31.byte $31; A9 [93ac]00.byte $00; Rest [93ad]31.byte $31; A9 [93ae]31.byte $31; A9 [93af]31.byte $31; A9 [93b0]00.byte $00; Rest [93b1]31.byte $31; A9 [93b2]31.byte $31; A9 [93b3]31.byte $31; A9 [93b4]31.byte $31; A9 [93b5]ec.byte $ec; Note length: 108 [93b6]31.byte $31; A9 [93b7]ff.byte MSCRIPT_OP_END; Op: End [93b8]ff.byte $ff; byte
;============================================================================ ; Music for Daybreak. ; ; XREFS: ; MSCRIPTS_DAYBREAK [$PRG5::8f03] ;============================================================================
; ; XREFS: ; MSCRIPTS_DAYBREAK [$PRG5::8f03] ;
[93b9]MSCRIPT_DAYBREAK_SQ1: [93b9]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [93ba]01.byte $01; '- Reduce volume by 1 [93bb]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [93bc]90.byte $90; '- Duty cycle 2 Constant volume/envelope [93bd]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [93be]01.byte $01; '- Mode 1: Curve but held [93bf]ef.byte MSCRIPT_OP_SET_SQ_PITCH_EFFECT_DEPTH; Op: Set SQ2 envelope depth [93c0]02.byte $02; '- 2 [93c1]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [93c2]02.byte $02; '- 2 iterations [93c3]98.byte $98; Note length: 24 [93c4]2d.byte $2d; A3 [93c5]2f.byte $2f; B3 [93c6]30.byte $30; C4 [93c7]37.byte $37; G4 [93c8]c8.byte $c8; Note length: 72 [93c9]36.byte $36; F#4 [93ca]98.byte $98; Note length: 24 [93cb]32.byte $32; D4 [93cc]c8.byte $c8; Note length: 72 [93cd]35.byte $35; F4 [93ce]98.byte $98; Note length: 24 [93cf]2f.byte $2f; B3 [93d0]e0.byte $e0; Note length: 96 [93d1]34.byte $34; E4 [93d2]98.byte $98; Note length: 24 [93d3]2d.byte $2d; A3 [93d4]2f.byte $2f; B3 [93d5]30.byte $30; C4 [93d6]37.byte $37; G4 [93d7]c8.byte $c8; Note length: 72 [93d8]36.byte $36; F#4 [93d9]98.byte $98; Note length: 24 [93da]32.byte $32; D4 [93db]c8.byte $c8; Note length: 72 [93dc]35.byte $35; F4 [93dd]98.byte $98; Note length: 24 [93de]2f.byte $2f; B3 [93df]e0.byte $e0; Note length: 96 [93e0]2f.byte $2f; B3 [93e1]98.byte $98; Note length: 24 [93e2]32.byte $32; D4 [93e3]34.byte $34; E4 [93e4]35.byte $35; F4 [93e5]3c.byte $3c; C5 [93e6]c8.byte $c8; Note length: 72 [93e7]3b.byte $3b; B4 [93e8]98.byte $98; Note length: 24 [93e9]38.byte $38; G#4 [93ea]c8.byte $c8; Note length: 72 [93eb]39.byte $39; A4 [93ec]98.byte $98; Note length: 24 [93ed]34.byte $34; E4 [93ee]e0.byte $e0; Note length: 96 [93ef]30.byte $30; C4 [93f0]98.byte $98; Note length: 24 [93f1]30.byte $30; C4 [93f2]32.byte $32; D4 [93f3]34.byte $34; E4 [93f4]39.byte $39; A4 [93f5]33.byte $33; D#4 [93f6]34.byte $34; E4 [93f7]36.byte $36; F#4 [93f8]3b.byte $3b; B4 [93f9]e0.byte $e0; Note length: 96 [93fa]3b.byte $3b; B4 [93fb]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [93fc]01.byte $01; '- 1 loop [93fd]e0.byte $e0; Note length: 96 [93fe]34.byte $34; E4 [93ff]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9400]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9401]02.byte $02; '- 2 loops [9402]a4.byte $a4; Note length: 36 [9403]34.byte $34; E4 [9404]8c.byte $8c; Note length: 12 [9405]34.byte $34; E4 [9406]39.byte $39; A4 [9407]34.byte $34; E4 [9408]39.byte $39; A4 [9409]3c.byte $3c; C5 [940a]98.byte $98; Note length: 24 [940b]3f.byte $3f; D#5 [940c]3c.byte $3c; C5 [940d]3b.byte $3b; B4 [940e]38.byte $38; G#4 [940f]a4.byte $a4; Note length: 36 [9410]39.byte $39; A4 [9411]8c.byte $8c; Note length: 12 [9412]34.byte $34; E4 [9413]39.byte $39; A4 [9414]34.byte $34; E4 [9415]39.byte $39; A4 [9416]3c.byte $3c; C5 [9417]98.byte $98; Note length: 24 [9418]40.byte $40; E5 [9419]41.byte $41; F5 [941a]3c.byte $3c; C5 [941b]3e.byte $3e; D5 [941c]a4.byte $a4; Note length: 36 [941d]3a.byte $3a; A#4 [941e]8c.byte $8c; Note length: 12 [941f]41.byte $41; F5 [9420]40.byte $40; E5 [9421]3c.byte $3c; C5 [9422]3b.byte $3b; B4 [9423]38.byte $38; G#4 [9424]39.byte $39; A4 [9425]34.byte $34; E4 [9426]30.byte $30; C4 [9427]34.byte $34; E4 [9428]98.byte $98; Note length: 24 [9429]2d.byte $2d; A3 [942a]2c.byte $2c; G#3 [942b]8c.byte $8c; Note length: 12 [942c]2b.byte $2b; G3 [942d]00.byte $00; Rest [942e]00.byte $00; Rest [942f]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9430]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9431]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9432]00.byte $00; '- Mode 0: Linear decay [9433]34.byte $34; E4 [9434]35.byte $35; F4 [9435]36.byte $36; F#4 [9436]37.byte $37; G4 [9437]38.byte $38; G#4 [9438]e0.byte $e0; Note length: 96 [9439]00.byte $00; Rest [943a]a4.byte $a4; Note length: 36 [943b]00.byte $00; Rest [943c]8c.byte $8c; Note length: 12 [943d]38.byte $38; G#4 [943e]37.byte $37; G4 [943f]36.byte $36; F#4 [9440]35.byte $35; F4 [9441]34.byte $34; E4 [9442]e0.byte $e0; Note length: 96 [9443]00.byte $00; Rest [9444]a4.byte $a4; Note length: 36 [9445]00.byte $00; Rest [9446]8c.byte $8c; Note length: 12 [9447]34.byte $34; E4 [9448]35.byte $35; F4 [9449]36.byte $36; F#4 [944a]37.byte $37; G4 [944b]38.byte $38; G#4 [944c]e0.byte $e0; Note length: 96 [944d]00.byte $00; Rest [944e]a4.byte $a4; Note length: 36 [944f]00.byte $00; Rest [9450]8c.byte $8c; Note length: 12 [9451]38.byte $38; G#4 [9452]37.byte $37; G4 [9453]36.byte $36; F#4 [9454]35.byte $35; F4 [9455]34.byte $34; E4 [9456]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9457]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_DAYBREAK [$PRG5::8f05] ;
[9458]MSCRIPT_DAYBREAK_SQ2: [9458]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9459]05.byte $05; '- Reduce volume by 5 [945a]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [945b]13.byte $13; '- Duty cycle 0 Constant volume/envelope [945c]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [945d]01.byte $01; '- Mode 1: Curve but held [945e]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [945f]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9460]8c.byte $8c; Note length: 12 [9461]00.byte $00; Rest [9462]98.byte $98; Note length: 24 [9463]2d.byte $2d; A3 [9464]2f.byte $2f; B3 [9465]30.byte $30; C4 [9466]37.byte $37; G4 [9467]c8.byte $c8; Note length: 72 [9468]36.byte $36; F#4 [9469]98.byte $98; Note length: 24 [946a]32.byte $32; D4 [946b]c8.byte $c8; Note length: 72 [946c]35.byte $35; F4 [946d]98.byte $98; Note length: 24 [946e]2f.byte $2f; B3 [946f]e0.byte $e0; Note length: 96 [9470]34.byte $34; E4 [9471]98.byte $98; Note length: 24 [9472]2d.byte $2d; A3 [9473]2f.byte $2f; B3 [9474]30.byte $30; C4 [9475]37.byte $37; G4 [9476]c8.byte $c8; Note length: 72 [9477]36.byte $36; F#4 [9478]98.byte $98; Note length: 24 [9479]32.byte $32; D4 [947a]c8.byte $c8; Note length: 72 [947b]35.byte $35; F4 [947c]98.byte $98; Note length: 24 [947d]2f.byte $2f; B3 [947e]e0.byte $e0; Note length: 96 [947f]2f.byte $2f; B3 [9480]98.byte $98; Note length: 24 [9481]32.byte $32; D4 [9482]34.byte $34; E4 [9483]35.byte $35; F4 [9484]3c.byte $3c; C5 [9485]c8.byte $c8; Note length: 72 [9486]3b.byte $3b; B4 [9487]98.byte $98; Note length: 24 [9488]38.byte $38; G#4 [9489]c8.byte $c8; Note length: 72 [948a]39.byte $39; A4 [948b]98.byte $98; Note length: 24 [948c]34.byte $34; E4 [948d]e0.byte $e0; Note length: 96 [948e]30.byte $30; C4 [948f]98.byte $98; Note length: 24 [9490]30.byte $30; C4 [9491]32.byte $32; D4 [9492]34.byte $34; E4 [9493]39.byte $39; A4 [9494]33.byte $33; D#4 [9495]34.byte $34; E4 [9496]36.byte $36; F#4 [9497]3b.byte $3b; B4 [9498]e0.byte $e0; Note length: 96 [9499]3b.byte $3b; B4 [949a]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [949b]03.byte $03; '- Reduce volume by 3 [949c]8c.byte $8c; Note length: 12 [949d]34.byte $34; E4 [949e]32.byte $32; D4 [949f]2f.byte $2f; B3 [94a0]30.byte $30; C4 [94a1]2d.byte $2d; A3 [94a2]2f.byte $2f; B3 [94a3]2c.byte $2c; G#3 [94a4]b0.byte $b0; Note length: 48 [94a5]00.byte $00; Rest [94a6]98.byte $98; Note length: 24 [94a7]2d.byte $2d; A3 [94a8]2f.byte $2f; B3 [94a9]2d.byte $2d; A3 [94aa]2f.byte $2f; B3 [94ab]30.byte $30; C4 [94ac]2d.byte $2d; A3 [94ad]2f.byte $2f; B3 [94ae]30.byte $30; C4 [94af]2f.byte $2f; B3 [94b0]2d.byte $2d; A3 [94b1]2c.byte $2c; G#3 [94b2]29.byte $29; F3 [94b3]28.byte $28; E3 [94b4]26.byte $26; D3 [94b5]24.byte $24; C3 [94b6]28.byte $28; E3 [94b7]2d.byte $2d; A3 [94b8]2f.byte $2f; B3 [94b9]2d.byte $2d; A3 [94ba]2f.byte $2f; B3 [94bb]30.byte $30; C4 [94bc]2d.byte $2d; A3 [94bd]2f.byte $2f; B3 [94be]2d.byte $2d; A3 [94bf]29.byte $29; F3 [94c0]26.byte $26; D3 [94c1]28.byte $28; E3 [94c2]2f.byte $2f; B3 [94c3]2c.byte $2c; G#3 [94c4]28.byte $28; E3 [94c5]00.byte $00; Rest [94c6]00.byte $00; Rest [94c7]32.byte $32; D4 [94c8]30.byte $30; C4 [94c9]2f.byte $2f; B3 [94ca]2d.byte $2d; A3 [94cb]2c.byte $2c; G#3 [94cc]28.byte $28; E3 [94cd]00.byte $00; Rest [94ce]31.byte $31; C#4 [94cf]2d.byte $2d; A3 [94d0]31.byte $31; C#4 [94d1]2d.byte $2d; A3 [94d2]2a.byte $2a; F#3 [94d3]27.byte $27; D#3 [94d4]b0.byte $b0; Note length: 48 [94d5]24.byte $24; C3 [94d6]98.byte $98; Note length: 24 [94d7]28.byte $28; E3 [94d8]2d.byte $2d; A3 [94d9]30.byte $30; C4 [94da]2f.byte $2f; B3 [94db]30.byte $30; C4 [94dc]2f.byte $2f; B3 [94dd]33.byte $33; D#4 [94de]34.byte $34; E4 [94df]2d.byte $2d; A3 [94e0]2f.byte $2f; B3 [94e1]2c.byte $2c; G#3 [94e2]a4.byte $a4; Note length: 36 [94e3]30.byte $30; C4 [94e4]8c.byte $8c; Note length: 12 [94e5]30.byte $30; C4 [94e6]34.byte $34; E4 [94e7]30.byte $30; C4 [94e8]34.byte $34; E4 [94e9]39.byte $39; A4 [94ea]3c.byte $3c; C5 [94eb]3c.byte $3c; C5 [94ec]39.byte $39; A4 [94ed]39.byte $39; A4 [94ee]38.byte $38; G#4 [94ef]38.byte $38; G#4 [94f0]32.byte $32; D4 [94f1]32.byte $32; D4 [94f2]a4.byte $a4; Note length: 36 [94f3]30.byte $30; C4 [94f4]8c.byte $8c; Note length: 12 [94f5]30.byte $30; C4 [94f6]34.byte $34; E4 [94f7]30.byte $30; C4 [94f8]34.byte $34; E4 [94f9]39.byte $39; A4 [94fa]3c.byte $3c; C5 [94fb]3c.byte $3c; C5 [94fc]3e.byte $3e; D5 [94fd]3e.byte $3e; D5 [94fe]34.byte $34; E4 [94ff]34.byte $34; E4 [9500]3b.byte $3b; B4 [9501]3b.byte $3b; B4 [9502]a4.byte $a4; Note length: 36 [9503]35.byte $35; F4 [9504]8c.byte $8c; Note length: 12 [9505]3e.byte $3e; D5 [9506]3c.byte $3c; C5 [9507]39.byte $39; A4 [9508]38.byte $38; G#4 [9509]32.byte $32; D4 [950a]34.byte $34; E4 [950b]30.byte $30; C4 [950c]2d.byte $2d; A3 [950d]30.byte $30; C4 [950e]98.byte $98; Note length: 24 [950f]28.byte $28; E3 [9510]27.byte $27; D#3 [9511]8c.byte $8c; Note length: 12 [9512]26.byte $26; D3 [9513]00.byte $00; Rest [9514]00.byte $00; Rest [9515]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9516]03.byte $03; '- Reduce volume by 3 [9517]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9518]50.byte $50; '- Duty cycle 1 Constant volume/envelope [9519]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [951a]00.byte $00; '- Mode 0: Linear decay [951b]30.byte $30; C4 [951c]31.byte $31; C#4 [951d]32.byte $32; D4 [951e]33.byte $33; D#4 [951f]34.byte $34; E4 [9520]e0.byte $e0; Note length: 96 [9521]00.byte $00; Rest [9522]a4.byte $a4; Note length: 36 [9523]00.byte $00; Rest [9524]8c.byte $8c; Note length: 12 [9525]34.byte $34; E4 [9526]33.byte $33; D#4 [9527]32.byte $32; D4 [9528]31.byte $31; C#4 [9529]30.byte $30; C4 [952a]e0.byte $e0; Note length: 96 [952b]00.byte $00; Rest [952c]a4.byte $a4; Note length: 36 [952d]00.byte $00; Rest [952e]8c.byte $8c; Note length: 12 [952f]30.byte $30; C4 [9530]31.byte $31; C#4 [9531]32.byte $32; D4 [9532]33.byte $33; D#4 [9533]34.byte $34; E4 [9534]e0.byte $e0; Note length: 96 [9535]00.byte $00; Rest [9536]a4.byte $a4; Note length: 36 [9537]00.byte $00; Rest [9538]8c.byte $8c; Note length: 12 [9539]34.byte $34; E4 [953a]33.byte $33; D#4 [953b]32.byte $32; D4 [953c]31.byte $31; C#4 [953d]30.byte $30; C4 [953e]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [953f]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_DAYBREAK [$PRG5::8f07] ;
[9540]MSCRIPT_DAYBREAK_TRI: [9540]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9541]02.byte $02; '- 2 iterations [9542]8c.byte $8c; Note length: 12 [9543]15.byte $15; A3 [9544]21.byte $21; A4 [9545]1c.byte $1c; E4 [9546]21.byte $21; A4 [9547]00.byte $00; Rest [9548]21.byte $21; A4 [9549]1c.byte $1c; E4 [954a]21.byte $21; A4 [954b]18.byte $18; C4 [954c]21.byte $21; A4 [954d]1c.byte $1c; E4 [954e]21.byte $21; A4 [954f]00.byte $00; Rest [9550]21.byte $21; A4 [9551]1c.byte $1c; E4 [9552]21.byte $21; A4 [9553]17.byte $17; B3 [9554]21.byte $21; A4 [9555]1a.byte $1a; D4 [9556]21.byte $21; A4 [9557]00.byte $00; Rest [9558]21.byte $21; A4 [9559]1a.byte $1a; D4 [955a]21.byte $21; A4 [955b]10.byte $10; E3 [955c]1c.byte $1c; E4 [955d]17.byte $17; B3 [955e]1c.byte $1c; E4 [955f]00.byte $00; Rest [9560]1c.byte $1c; E4 [9561]17.byte $17; B3 [9562]1c.byte $1c; E4 [9563]15.byte $15; A3 [9564]21.byte $21; A4 [9565]1c.byte $1c; E4 [9566]21.byte $21; A4 [9567]00.byte $00; Rest [9568]21.byte $21; A4 [9569]1c.byte $1c; E4 [956a]21.byte $21; A4 [956b]18.byte $18; C4 [956c]21.byte $21; A4 [956d]1c.byte $1c; E4 [956e]21.byte $21; A4 [956f]00.byte $00; Rest [9570]21.byte $21; A4 [9571]1c.byte $1c; E4 [9572]21.byte $21; A4 [9573]17.byte $17; B3 [9574]21.byte $21; A4 [9575]1a.byte $1a; D4 [9576]21.byte $21; A4 [9577]00.byte $00; Rest [9578]21.byte $21; A4 [9579]1a.byte $1a; D4 [957a]21.byte $21; A4 [957b]10.byte $10; E3 [957c]1c.byte $1c; E4 [957d]17.byte $17; B3 [957e]1c.byte $1c; E4 [957f]00.byte $00; Rest [9580]1c.byte $1c; E4 [9581]17.byte $17; B3 [9582]1c.byte $1c; E4 [9583]1a.byte $1a; D4 [9584]26.byte $26; D5 [9585]21.byte $21; A4 [9586]26.byte $26; D5 [9587]00.byte $00; Rest [9588]26.byte $26; D5 [9589]21.byte $21; A4 [958a]26.byte $26; D5 [958b]10.byte $10; E3 [958c]1c.byte $1c; E4 [958d]17.byte $17; B3 [958e]1c.byte $1c; E4 [958f]00.byte $00; Rest [9590]1c.byte $1c; E4 [9591]17.byte $17; B3 [9592]1c.byte $1c; E4 [9593]15.byte $15; A3 [9594]21.byte $21; A4 [9595]1c.byte $1c; E4 [9596]21.byte $21; A4 [9597]00.byte $00; Rest [9598]21.byte $21; A4 [9599]1c.byte $1c; E4 [959a]21.byte $21; A4 [959b]18.byte $18; C4 [959c]21.byte $21; A4 [959d]1b.byte $1b; D#4 [959e]21.byte $21; A4 [959f]00.byte $00; Rest [95a0]21.byte $21; A4 [95a1]1b.byte $1b; D#4 [95a2]21.byte $21; A4 [95a3]13.byte $13; G3 [95a4]1c.byte $1c; E4 [95a5]18.byte $18; C4 [95a6]1c.byte $1c; E4 [95a7]00.byte $00; Rest [95a8]1c.byte $1c; E4 [95a9]18.byte $18; C4 [95aa]1c.byte $1c; E4 [95ab]17.byte $17; B3 [95ac]21.byte $21; A4 [95ad]1b.byte $1b; D#4 [95ae]21.byte $21; A4 [95af]00.byte $00; Rest [95b0]21.byte $21; A4 [95b1]1e.byte $1e; F#4 [95b2]21.byte $21; A4 [95b3]10.byte $10; E3 [95b4]1c.byte $1c; E4 [95b5]17.byte $17; B3 [95b6]1c.byte $1c; E4 [95b7]00.byte $00; Rest [95b8]1c.byte $1c; E4 [95b9]17.byte $17; B3 [95ba]1c.byte $1c; E4 [95bb]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [95bc]01.byte $01; '- 1 loop [95bd]8c.byte $8c; Note length: 12 [95be]10.byte $10; E3 [95bf]1c.byte $1c; E4 [95c0]1d.byte $1d; F4 [95c1]1a.byte $1a; D4 [95c2]1c.byte $1c; E4 [95c3]18.byte $18; C4 [95c4]1a.byte $1a; D4 [95c5]17.byte $17; B3 [95c6]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [95c7]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [95c8]02.byte $02; '- 2 loops [95c9]8c.byte $8c; Note length: 12 [95ca]10.byte $10; E3 [95cb]11.byte $11; F3 [95cc]10.byte $10; E3 [95cd]21.byte $21; A4 [95ce]1c.byte $1c; E4 [95cf]18.byte $18; C4 [95d0]15.byte $15; A3 [95d1]10.byte $10; E3 [95d2]10.byte $10; E3 [95d3]98.byte $98; Note length: 24 [95d4]10.byte $10; E3 [95d5]8c.byte $8c; Note length: 12 [95d6]10.byte $10; E3 [95d7]10.byte $10; E3 [95d8]98.byte $98; Note length: 24 [95d9]10.byte $10; E3 [95da]8c.byte $8c; Note length: 12 [95db]10.byte $10; E3 [95dc]21.byte $21; A4 [95dd]1c.byte $1c; E4 [95de]15.byte $15; A3 [95df]21.byte $21; A4 [95e0]1c.byte $1c; E4 [95e1]18.byte $18; C4 [95e2]15.byte $15; A3 [95e3]10.byte $10; E3 [95e4]10.byte $10; E3 [95e5]98.byte $98; Note length: 24 [95e6]10.byte $10; E3 [95e7]8c.byte $8c; Note length: 12 [95e8]10.byte $10; E3 [95e9]10.byte $10; E3 [95ea]98.byte $98; Note length: 24 [95eb]10.byte $10; E3 [95ec]8c.byte $8c; Note length: 12 [95ed]10.byte $10; E3 [95ee]16.byte $16; A#3 [95ef]16.byte $16; A#3 [95f0]1a.byte $1a; D4 [95f1]1a.byte $1a; D4 [95f2]1c.byte $1c; E4 [95f3]1c.byte $1c; E4 [95f4]10.byte $10; E3 [95f5]10.byte $10; E3 [95f6]15.byte $15; A3 [95f7]98.byte $98; Note length: 24 [95f8]15.byte $15; A3 [95f9]8c.byte $8c; Note length: 12 [95fa]15.byte $15; A3 [95fb]98.byte $98; Note length: 24 [95fc]18.byte $18; C4 [95fd]17.byte $17; B3 [95fe]8c.byte $8c; Note length: 12 [95ff]16.byte $16; A#3 [9600]16.byte $16; A#3 [9601]16.byte $16; A#3 [9602]16.byte $16; A#3 [9603]16.byte $16; A#3 [9604]17.byte $17; B3 [9605]18.byte $18; C4 [9606]19.byte $19; C#4 [9607]86.byte $86; Note length: 6 [9608]19.byte $19; C#4 [9609]25.byte $25; C#5 [960a]19.byte $19; C#4 [960b]25.byte $25; C#5 [960c]1c.byte $1c; E4 [960d]28.byte $28; E5 [960e]1c.byte $1c; E4 [960f]28.byte $28; E5 [9610]20.byte $20; G#4 [9611]2c.byte $2c; G#5 [9612]20.byte $20; G#4 [9613]2c.byte $2c; G#5 [9614]1c.byte $1c; E4 [9615]28.byte $28; E5 [9616]1c.byte $1c; E4 [9617]28.byte $28; E5 [9618]19.byte $19; C#4 [9619]25.byte $25; C#5 [961a]19.byte $19; C#4 [961b]25.byte $25; C#5 [961c]19.byte $19; C#4 [961d]25.byte $25; C#5 [961e]8c.byte $8c; Note length: 12 [961f]19.byte $19; C#4 [9620]18.byte $18; C4 [9621]17.byte $17; B3 [9622]16.byte $16; A#3 [9623]15.byte $15; A3 [9624]86.byte $86; Note length: 6 [9625]15.byte $15; A3 [9626]21.byte $21; A4 [9627]15.byte $15; A3 [9628]21.byte $21; A4 [9629]18.byte $18; C4 [962a]24.byte $24; C5 [962b]18.byte $18; C4 [962c]24.byte $24; C5 [962d]1c.byte $1c; E4 [962e]28.byte $28; E5 [962f]1c.byte $1c; E4 [9630]28.byte $28; E5 [9631]18.byte $18; C4 [9632]24.byte $24; C5 [9633]18.byte $18; C4 [9634]24.byte $24; C5 [9635]15.byte $15; A3 [9636]21.byte $21; A4 [9637]15.byte $15; A3 [9638]21.byte $21; A4 [9639]15.byte $15; A3 [963a]21.byte $21; A4 [963b]8c.byte $8c; Note length: 12 [963c]15.byte $15; A3 [963d]16.byte $16; A#3 [963e]17.byte $17; B3 [963f]18.byte $18; C4 [9640]19.byte $19; C#4 [9641]86.byte $86; Note length: 6 [9642]19.byte $19; C#4 [9643]25.byte $25; C#5 [9644]19.byte $19; C#4 [9645]25.byte $25; C#5 [9646]1c.byte $1c; E4 [9647]28.byte $28; E5 [9648]1c.byte $1c; E4 [9649]28.byte $28; E5 [964a]20.byte $20; G#4 [964b]2c.byte $2c; G#5 [964c]20.byte $20; G#4 [964d]2c.byte $2c; G#5 [964e]1c.byte $1c; E4 [964f]28.byte $28; E5 [9650]1c.byte $1c; E4 [9651]28.byte $28; E5 [9652]19.byte $19; C#4 [9653]25.byte $25; C#5 [9654]19.byte $19; C#4 [9655]25.byte $25; C#5 [9656]19.byte $19; C#4 [9657]25.byte $25; C#5 [9658]8c.byte $8c; Note length: 12 [9659]19.byte $19; C#4 [965a]18.byte $18; C4 [965b]17.byte $17; B3 [965c]16.byte $16; A#3 [965d]15.byte $15; A3 [965e]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [965f]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_DAYBREAK [$PRG5::8f09] ;
[9660]MSCRIPT_DAYBREAK_NOISE: [9660]ff.byte MSCRIPT_OP_END; Op: End [9661]ff.byte $ff; byte
;============================================================================ ; Music for Apolune. ; ; XREFS: ; MSCRIPTS_APOLUNE [$PRG5::8f0b] ;============================================================================
; ; XREFS: ; MSCRIPTS_APOLUNE [$PRG5::8f0b] ;
[9662]MSCRIPT_APOLUNE_SQ1: [9662]e0.byte $e0; Note length: 96 [9663]00.byte $00; Rest [9664]00.byte $00; Rest [9665]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [9666]c3 96pointer @_subroutine; '- $96C3 [9668]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [9669]c3 96pointer @_subroutine; '- $96C3 [966b]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [966c]00.byte $00; '- Reduce volume by 0 [966d]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [966e]90.byte $90; '- Duty cycle 2 Constant volume/envelope [966f]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9670]00.byte $00; '- Mode 0: Linear decay [9671]8c.byte $8c; Note length: 12 [9672]32.byte $32; D4 [9673]34.byte $34; E4 [9674]36.byte $36; F#4 [9675]37.byte $37; G4 [9676]86.byte $86; Note length: 6 [9677]39.byte $39; A4 [9678]00.byte $00; Rest [9679]98.byte $98; Note length: 24 [967a]3e.byte $3e; D5 [967b]8c.byte $8c; Note length: 12 [967c]39.byte $39; A4 [967d]98.byte $98; Note length: 24 [967e]3c.byte $3c; C5 [967f]8c.byte $8c; Note length: 12 [9680]39.byte $39; A4 [9681]98.byte $98; Note length: 24 [9682]35.byte $35; F4 [9683]8c.byte $8c; Note length: 12 [9684]37.byte $37; G4 [9685]98.byte $98; Note length: 24 [9686]39.byte $39; A4 [9687]40.byte $40; E5 [9688]8c.byte $8c; Note length: 12 [9689]3d.byte $3d; C#5 [968a]98.byte $98; Note length: 24 [968b]39.byte $39; A4 [968c]8c.byte $8c; Note length: 12 [968d]3b.byte $3b; B4 [968e]98.byte $98; Note length: 24 [968f]3d.byte $3d; C#5 [9690]3e.byte $3e; D5 [9691]8c.byte $8c; Note length: 12 [9692]3b.byte $3b; B4 [9693]98.byte $98; Note length: 24 [9694]37.byte $37; G4 [9695]8c.byte $8c; Note length: 12 [9696]39.byte $39; A4 [9697]98.byte $98; Note length: 24 [9698]3b.byte $3b; B4 [9699]8c.byte $8c; Note length: 12 [969a]32.byte $32; D4 [969b]34.byte $34; E4 [969c]36.byte $36; F#4 [969d]37.byte $37; G4 [969e]86.byte $86; Note length: 6 [969f]39.byte $39; A4 [96a0]00.byte $00; Rest [96a1]98.byte $98; Note length: 24 [96a2]3e.byte $3e; D5 [96a3]8c.byte $8c; Note length: 12 [96a4]39.byte $39; A4 [96a5]98.byte $98; Note length: 24 [96a6]3c.byte $3c; C5 [96a7]8c.byte $8c; Note length: 12 [96a8]39.byte $39; A4 [96a9]98.byte $98; Note length: 24 [96aa]35.byte $35; F4 [96ab]8c.byte $8c; Note length: 12 [96ac]37.byte $37; G4 [96ad]98.byte $98; Note length: 24 [96ae]39.byte $39; A4 [96af]40.byte $40; E5 [96b0]8c.byte $8c; Note length: 12 [96b1]3d.byte $3d; C#5 [96b2]98.byte $98; Note length: 24 [96b3]39.byte $39; A4 [96b4]8c.byte $8c; Note length: 12 [96b5]3b.byte $3b; B4 [96b6]98.byte $98; Note length: 24 [96b7]3d.byte $3d; C#5 [96b8]3e.byte $3e; D5 [96b9]8c.byte $8c; Note length: 12 [96ba]3b.byte $3b; B4 [96bb]98.byte $98; Note length: 24 [96bc]37.byte $37; G4 [96bd]8c.byte $8c; Note length: 12 [96be]39.byte $39; A4 [96bf]98.byte $98; Note length: 24 [96c0]3b.byte $3b; B4 [96c1]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [96c2]ff.byte MSCRIPT_OP_END; Op: End [96c3]@_subroutine: [96c3]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [96c4]02.byte $02; '- Reduce volume by 2 [96c5]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [96c6]d0.byte $d0; '- Duty cycle 3 Constant volume/envelope [96c7]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [96c8]01.byte $01; '- Mode 1: Curve but held [96c9]8c.byte $8c; Note length: 12 [96ca]39.byte $39; A4 [96cb]38.byte $38; G#4 [96cc]39.byte $39; A4 [96cd]b0.byte $b0; Note length: 48 [96ce]3c.byte $3c; C5 [96cf]8c.byte $8c; Note length: 12 [96d0]39.byte $39; A4 [96d1]98.byte $98; Note length: 24 [96d2]3a.byte $3a; A#4 [96d3]8c.byte $8c; Note length: 12 [96d4]3a.byte $3a; A#4 [96d5]bc.byte $bc; Note length: 60 [96d6]3e.byte $3e; D5 [96d7]98.byte $98; Note length: 24 [96d8]38.byte $38; G#4 [96d9]41.byte $41; F5 [96da]40.byte $40; E5 [96db]3e.byte $3e; D5 [96dc]8c.byte $8c; Note length: 12 [96dd]3e.byte $3e; D5 [96de]3d.byte $3d; C#5 [96df]00.byte $00; Rest [96e0]bc.byte $bc; Note length: 60 [96e1]40.byte $40; E5 [96e2]8c.byte $8c; Note length: 12 [96e3]39.byte $39; A4 [96e4]38.byte $38; G#4 [96e5]39.byte $39; A4 [96e6]b0.byte $b0; Note length: 48 [96e7]3c.byte $3c; C5 [96e8]8c.byte $8c; Note length: 12 [96e9]39.byte $39; A4 [96ea]98.byte $98; Note length: 24 [96eb]3a.byte $3a; A#4 [96ec]8c.byte $8c; Note length: 12 [96ed]3a.byte $3a; A#4 [96ee]bc.byte $bc; Note length: 60 [96ef]3e.byte $3e; D5 [96f0]98.byte $98; Note length: 24 [96f1]38.byte $38; G#4 [96f2]41.byte $41; F5 [96f3]40.byte $40; E5 [96f4]3e.byte $3e; D5 [96f5]8c.byte $8c; Note length: 12 [96f6]3e.byte $3e; D5 [96f7]3d.byte $3d; C#5 [96f8]00.byte $00; Rest [96f9]bc.byte $bc; Note length: 60 [96fa]40.byte $40; E5 [96fb]b0.byte $b0; Note length: 48 [96fc]41.byte $41; F5 [96fd]98.byte $98; Note length: 24 [96fe]40.byte $40; E5 [96ff]3e.byte $3e; D5 [9700]b0.byte $b0; Note length: 48 [9701]3c.byte $3c; C5 [9702]98.byte $98; Note length: 24 [9703]3b.byte $3b; B4 [9704]39.byte $39; A4 [9705]c8.byte $c8; Note length: 72 [9706]37.byte $37; G4 [9707]8c.byte $8c; Note length: 12 [9708]34.byte $34; E4 [9709]ec.byte $ec; Note length: 108 [970a]39.byte $39; A4 [970b]b0.byte $b0; Note length: 48 [970c]41.byte $41; F5 [970d]98.byte $98; Note length: 24 [970e]40.byte $40; E5 [970f]3e.byte $3e; D5 [9710]b0.byte $b0; Note length: 48 [9711]3c.byte $3c; C5 [9712]98.byte $98; Note length: 24 [9713]3b.byte $3b; B4 [9714]39.byte $39; A4 [9715]c8.byte $c8; Note length: 72 [9716]37.byte $37; G4 [9717]8c.byte $8c; Note length: 12 [9718]34.byte $34; E4 [9719]ec.byte $ec; Note length: 108 [971a]39.byte $39; A4 [971b]f5.byte $f5; Op: Return from subroutine
; ; XREFS: ; MSCRIPTS_APOLUNE [$PRG5::8f0d] ;
[971c]MSCRIPT_APOLUNE_SQ2: [971c]e0.byte $e0; Note length: 96 [971d]00.byte $00; Rest [971e]00.byte $00; Rest [971f]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [9720]a6 97pointer @_subroutine; '- $97A6 [9722]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [9723]a6 97pointer @_subroutine; '- $97A6 [9725]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9726]02.byte $02; '- Reduce volume by 2 [9727]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9728]50.byte $50; '- Duty cycle 1 Constant volume/envelope [9729]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [972a]00.byte $00; '- Mode 0: Linear decay [972b]86.byte $86; Note length: 6 [972c]00.byte $00; Rest [972d]8c.byte $8c; Note length: 12 [972e]32.byte $32; A9 [972f]34.byte $34; A9 [9730]36.byte $36; A9 [9731]86.byte $86; Note length: 6 [9732]37.byte $37; A9 [9733]36.byte $36; A9 [9734]00.byte $00; Rest [9735]98.byte $98; Note length: 24 [9736]39.byte $39; A9 [9737]8c.byte $8c; Note length: 12 [9738]36.byte $36; A9 [9739]86.byte $86; Note length: 6 [973a]39.byte $39; A9 [973b]39.byte $39; A9 [973c]39.byte $39; A9 [973d]00.byte $00; Rest [973e]8c.byte $8c; Note length: 12 [973f]35.byte $35; A9 [9740]98.byte $98; Note length: 24 [9741]2d.byte $2d; A9 [9742]8c.byte $8c; Note length: 12 [9743]30.byte $30; A9 [9744]86.byte $86; Note length: 6 [9745]35.byte $35; A9 [9746]34.byte $34; A9 [9747]8c.byte $8c; Note length: 12 [9748]35.byte $35; A9 [9749]86.byte $86; Note length: 6 [974a]3d.byte $3d; A9 [974b]31.byte $31; A9 [974c]3d.byte $3d; A9 [974d]00.byte $00; Rest [974e]8c.byte $8c; Note length: 12 [974f]39.byte $39; A9 [9750]98.byte $98; Note length: 24 [9751]31.byte $31; A9 [9752]8c.byte $8c; Note length: 12 [9753]34.byte $34; A9 [9754]86.byte $86; Note length: 6 [9755]39.byte $39; A9 [9756]34.byte $34; A9 [9757]31.byte $31; A9 [9758]2d.byte $2d; A9 [9759]3b.byte $3b; A9 [975a]2f.byte $2f; A9 [975b]3b.byte $3b; A9 [975c]00.byte $00; Rest [975d]37.byte $37; A9 [975e]00.byte $00; Rest [975f]98.byte $98; Note length: 24 [9760]2f.byte $2f; A9 [9761]8c.byte $8c; Note length: 12 [9762]32.byte $32; A9 [9763]86.byte $86; Note length: 6 [9764]37.byte $37; A9 [9765]32.byte $32; A9 [9766]2f.byte $2f; A9 [9767]2b.byte $2b; A9 [9768]00.byte $00; Rest [9769]8c.byte $8c; Note length: 12 [976a]32.byte $32; A9 [976b]34.byte $34; A9 [976c]36.byte $36; A9 [976d]86.byte $86; Note length: 6 [976e]37.byte $37; A9 [976f]36.byte $36; A9 [9770]00.byte $00; Rest [9771]98.byte $98; Note length: 24 [9772]39.byte $39; A9 [9773]8c.byte $8c; Note length: 12 [9774]36.byte $36; A9 [9775]86.byte $86; Note length: 6 [9776]39.byte $39; A9 [9777]39.byte $39; A9 [9778]39.byte $39; A9 [9779]00.byte $00; Rest [977a]8c.byte $8c; Note length: 12 [977b]35.byte $35; A9 [977c]98.byte $98; Note length: 24 [977d]2d.byte $2d; A9 [977e]8c.byte $8c; Note length: 12 [977f]30.byte $30; A9 [9780]86.byte $86; Note length: 6 [9781]35.byte $35; A9 [9782]34.byte $34; A9 [9783]8c.byte $8c; Note length: 12 [9784]35.byte $35; A9 [9785]86.byte $86; Note length: 6 [9786]3d.byte $3d; A9 [9787]31.byte $31; A9 [9788]3d.byte $3d; A9 [9789]00.byte $00; Rest [978a]8c.byte $8c; Note length: 12 [978b]39.byte $39; A9 [978c]98.byte $98; Note length: 24 [978d]31.byte $31; A9 [978e]8c.byte $8c; Note length: 12 [978f]34.byte $34; A9 [9790]86.byte $86; Note length: 6 [9791]39.byte $39; A9 [9792]34.byte $34; A9 [9793]31.byte $31; A9 [9794]2d.byte $2d; A9 [9795]3b.byte $3b; A9 [9796]2f.byte $2f; A9 [9797]3b.byte $3b; A9 [9798]00.byte $00; Rest [9799]37.byte $37; A9 [979a]00.byte $00; Rest [979b]98.byte $98; Note length: 24 [979c]2f.byte $2f; A9 [979d]8c.byte $8c; Note length: 12 [979e]32.byte $32; A9 [979f]86.byte $86; Note length: 6 [97a0]37.byte $37; A9 [97a1]32.byte $32; A9 [97a2]2f.byte $2f; A9 [97a3]2b.byte $2b; A9 [97a4]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [97a5]ff.byte MSCRIPT_OP_END; Op: End [97a6]@_subroutine: [97a6]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [97a7]04.byte $04; '- Reduce volume by 4 [97a8]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [97a9]90.byte $90; '- Duty cycle 2 Constant volume/envelope [97aa]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [97ab]01.byte $01; '- Mode 1: Curve but held [97ac]8c.byte $8c; Note length: 12 [97ad]30.byte $30; A9 [97ae]2f.byte $2f; A9 [97af]30.byte $30; A9 [97b0]b0.byte $b0; Note length: 48 [97b1]34.byte $34; A9 [97b2]8c.byte $8c; Note length: 12 [97b3]30.byte $30; A9 [97b4]98.byte $98; Note length: 24 [97b5]32.byte $32; A9 [97b6]8c.byte $8c; Note length: 12 [97b7]32.byte $32; A9 [97b8]98.byte $98; Note length: 24 [97b9]3a.byte $3a; A9 [97ba]8c.byte $8c; Note length: 12 [97bb]35.byte $35; A9 [97bc]32.byte $32; A9 [97bd]35.byte $35; A9 [97be]98.byte $98; Note length: 24 [97bf]34.byte $34; A9 [97c0]3e.byte $3e; A9 [97c1]3c.byte $3c; A9 [97c2]3b.byte $3b; A9 [97c3]8c.byte $8c; Note length: 12 [97c4]39.byte $39; A9 [97c5]39.byte $39; A9 [97c6]00.byte $00; Rest [97c7]34.byte $34; A9 [97c8]31.byte $31; A9 [97c9]86.byte $86; Note length: 6 [97ca]34.byte $34; A9 [97cb]00.byte $00; Rest [97cc]8c.byte $8c; Note length: 12 [97cd]31.byte $31; A9 [97ce]86.byte $86; Note length: 6 [97cf]34.byte $34; A9 [97d0]00.byte $00; Rest [97d1]8c.byte $8c; Note length: 12 [97d2]30.byte $30; A9 [97d3]2f.byte $2f; A9 [97d4]30.byte $30; A9 [97d5]b0.byte $b0; Note length: 48 [97d6]34.byte $34; A9 [97d7]8c.byte $8c; Note length: 12 [97d8]30.byte $30; A9 [97d9]98.byte $98; Note length: 24 [97da]32.byte $32; A9 [97db]8c.byte $8c; Note length: 12 [97dc]32.byte $32; A9 [97dd]98.byte $98; Note length: 24 [97de]3a.byte $3a; A9 [97df]8c.byte $8c; Note length: 12 [97e0]35.byte $35; A9 [97e1]32.byte $32; A9 [97e2]35.byte $35; A9 [97e3]98.byte $98; Note length: 24 [97e4]34.byte $34; A9 [97e5]3e.byte $3e; A9 [97e6]3c.byte $3c; A9 [97e7]3b.byte $3b; A9 [97e8]8c.byte $8c; Note length: 12 [97e9]39.byte $39; A9 [97ea]39.byte $39; A9 [97eb]00.byte $00; Rest [97ec]86.byte $86; Note length: 6 [97ed]31.byte $31; A9 [97ee]34.byte $34; A9 [97ef]39.byte $39; A9 [97f0]3d.byte $3d; A9 [97f1]40.byte $40; A9 [97f2]45.byte $45; A9 [97f3]40.byte $40; A9 [97f4]3d.byte $3d; A9 [97f5]39.byte $39; A9 [97f6]34.byte $34; A9 [97f7]29.byte $29; A9 [97f8]00.byte $00; Rest [97f9]2e.byte $2e; A9 [97fa]32.byte $32; A9 [97fb]29.byte $29; A9 [97fc]00.byte $00; Rest [97fd]2e.byte $2e; A9 [97fe]32.byte $32; A9 [97ff]28.byte $28; A9 [9800]2b.byte $2b; A9 [9801]2e.byte $2e; A9 [9802]32.byte $32; A9 [9803]26.byte $26; A9 [9804]00.byte $00; Rest [9805]2e.byte $2e; A9 [9806]32.byte $32; A9 [9807]24.byte $24; A9 [9808]00.byte $00; Rest [9809]2d.byte $2d; A9 [980a]30.byte $30; A9 [980b]24.byte $24; A9 [980c]00.byte $00; Rest [980d]2d.byte $2d; A9 [980e]30.byte $30; A9 [980f]23.byte $23; A9 [9810]2d.byte $2d; A9 [9811]30.byte $30; A9 [9812]34.byte $34; A9 [9813]21.byte $21; A9 [9814]29.byte $29; A9 [9815]2d.byte $2d; A9 [9816]30.byte $30; A9 [9817]1f.byte $1f; A9 [9818]28.byte $28; A9 [9819]2b.byte $2b; A9 [981a]2f.byte $2f; A9 [981b]00.byte $00; Rest [981c]28.byte $28; A9 [981d]2b.byte $2b; A9 [981e]2f.byte $2f; A9 [981f]1f.byte $1f; A9 [9820]28.byte $28; A9 [9821]2b.byte $2b; A9 [9822]2f.byte $2f; A9 [9823]28.byte $28; A9 [9824]00.byte $00; Rest [9825]8c.byte $8c; Note length: 12 [9826]25.byte $25; A9 [9827]86.byte $86; Note length: 6 [9828]21.byte $21; A9 [9829]00.byte $00; Rest [982a]26.byte $26; A9 [982b]2a.byte $2a; A9 [982c]36.byte $36; A9 [982d]32.byte $32; A9 [982e]2d.byte $2d; A9 [982f]2a.byte $2a; A9 [9830]21.byte $21; A9 [9831]00.byte $00; Rest [9832]26.byte $26; A9 [9833]2a.byte $2a; A9 [9834]36.byte $36; A9 [9835]32.byte $32; A9 [9836]2d.byte $2d; A9 [9837]2a.byte $2a; A9 [9838]29.byte $29; A9 [9839]2b.byte $2b; A9 [983a]2e.byte $2e; A9 [983b]32.byte $32; A9 [983c]29.byte $29; A9 [983d]2b.byte $2b; A9 [983e]2e.byte $2e; A9 [983f]32.byte $32; A9 [9840]00.byte $00; Rest [9841]2b.byte $2b; A9 [9842]2e.byte $2e; A9 [9843]32.byte $32; A9 [9844]26.byte $26; A9 [9845]2b.byte $2b; A9 [9846]2e.byte $2e; A9 [9847]32.byte $32; A9 [9848]24.byte $24; A9 [9849]2d.byte $2d; A9 [984a]30.byte $30; A9 [984b]34.byte $34; A9 [984c]24.byte $24; A9 [984d]2d.byte $2d; A9 [984e]30.byte $30; A9 [984f]34.byte $34; A9 [9850]00.byte $00; Rest [9851]29.byte $29; A9 [9852]2d.byte $2d; A9 [9853]30.byte $30; A9 [9854]21.byte $21; A9 [9855]29.byte $29; A9 [9856]2d.byte $2d; A9 [9857]30.byte $30; A9 [9858]1f.byte $1f; A9 [9859]28.byte $28; A9 [985a]2b.byte $2b; A9 [985b]2f.byte $2f; A9 [985c]1f.byte $1f; A9 [985d]28.byte $28; A9 [985e]2b.byte $2b; A9 [985f]2f.byte $2f; A9 [9860]1f.byte $1f; A9 [9861]28.byte $28; A9 [9862]2b.byte $2b; A9 [9863]2f.byte $2f; A9 [9864]28.byte $28; A9 [9865]00.byte $00; Rest [9866]8c.byte $8c; Note length: 12 [9867]25.byte $25; A9 [9868]86.byte $86; Note length: 6 [9869]21.byte $21; A9 [986a]26.byte $26; A9 [986b]2a.byte $2a; A9 [986c]2d.byte $2d; A9 [986d]32.byte $32; A9 [986e]2d.byte $2d; A9 [986f]2a.byte $2a; A9 [9870]2d.byte $2d; A9 [9871]21.byte $21; A9 [9872]26.byte $26; A9 [9873]2a.byte $2a; A9 [9874]2d.byte $2d; A9 [9875]32.byte $32; A9 [9876]2d.byte $2d; A9 [9877]8c.byte $8c; Note length: 12 [9878]26.byte $26; A9 [9879]f5.byte MSCRIPT_OP_RET; Op: Return from subroutine
; ; XREFS: ; MSCRIPTS_APOLUNE [$PRG5::8f0f] ;
[987a]MSCRIPT_APOLUNE_TRI: [987a]8c.byte $8c; Note length: 12 [987b]15.byte $15; A3 [987c]86.byte $86; Note length: 6 [987d]21.byte $21; A4 [987e]00.byte $00; Rest [987f]8c.byte $8c; Note length: 12 [9880]10.byte $10; E3 [9881]86.byte $86; Note length: 6 [9882]1c.byte $1c; E4 [9883]00.byte $00; Rest [9884]8c.byte $8c; Note length: 12 [9885]13.byte $13; G3 [9886]86.byte $86; Note length: 6 [9887]1f.byte $1f; G4 [9888]00.byte $00; Rest [9889]12.byte $12; F#3 [988a]12.byte $12; F#3 [988b]1e.byte $1e; F#4 [988c]00.byte $00; Rest [988d]8c.byte $8c; Note length: 12 [988e]15.byte $15; A3 [988f]86.byte $86; Note length: 6 [9890]21.byte $21; A4 [9891]00.byte $00; Rest [9892]8c.byte $8c; Note length: 12 [9893]10.byte $10; E3 [9894]86.byte $86; Note length: 6 [9895]1c.byte $1c; E4 [9896]00.byte $00; Rest [9897]13.byte $13; G3 [9898]13.byte $13; G3 [9899]1f.byte $1f; G4 [989a]1f.byte $1f; G4 [989b]12.byte $12; F#3 [989c]12.byte $12; F#3 [989d]1e.byte $1e; F#4 [989e]00.byte $00; Rest [989f]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [98a0]27 99pointer @_subroutine; '- $9927 [98a2]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [98a3]27 99pointer @_subroutine; '- $9927 [98a5]0e.byte $0e; F6 [98a6]00.byte $00; Rest [98a7]15.byte $15; C7 [98a8]00.byte $00; Rest [98a9]0e.byte $0e; F6 [98aa]00.byte $00; Rest [98ab]15.byte $15; C7 [98ac]00.byte $00; Rest [98ad]0e.byte $0e; F6 [98ae]0e.byte $0e; F6 [98af]15.byte $15; C7 [98b0]00.byte $00; Rest [98b1]0e.byte $0e; F6 [98b2]00.byte $00; Rest [98b3]15.byte $15; C7 [98b4]00.byte $00; Rest [98b5]11.byte $11; G#6 [98b6]00.byte $00; Rest [98b7]18.byte $18; D#7 [98b8]00.byte $00; Rest [98b9]11.byte $11; G#6 [98ba]00.byte $00; Rest [98bb]18.byte $18; D#7 [98bc]00.byte $00; Rest [98bd]11.byte $11; G#6 [98be]11.byte $11; G#6 [98bf]18.byte $18; D#7 [98c0]00.byte $00; Rest [98c1]11.byte $11; G#6 [98c2]00.byte $00; Rest [98c3]18.byte $18; D#7 [98c4]00.byte $00; Rest [98c5]15.byte $15; C7 [98c6]00.byte $00; Rest [98c7]21.byte $21; C8 [98c8]00.byte $00; Rest [98c9]15.byte $15; C7 [98ca]00.byte $00; Rest [98cb]1c.byte $1c; G7 [98cc]00.byte $00; Rest [98cd]15.byte $15; C7 [98ce]15.byte $15; C7 [98cf]1c.byte $1c; G7 [98d0]00.byte $00; Rest [98d1]15.byte $15; C7 [98d2]00.byte $00; Rest [98d3]1c.byte $1c; G7 [98d4]1c.byte $1c; G7 [98d5]13.byte $13; A#6 [98d6]00.byte $00; Rest [98d7]1a.byte $1a; F7 [98d8]00.byte $00; Rest [98d9]13.byte $13; A#6 [98da]00.byte $00; Rest [98db]1a.byte $1a; F7 [98dc]1f.byte $1f; A#7 [98dd]13.byte $13; A#6 [98de]13.byte $13; A#6 [98df]1f.byte $1f; A#7 [98e0]00.byte $00; Rest [98e1]13.byte $13; A#6 [98e2]00.byte $00; Rest [98e3]13.byte $13; A#6 [98e4]1f.byte $1f; A#7 [98e5]0e.byte $0e; F6 [98e6]00.byte $00; Rest [98e7]15.byte $15; C7 [98e8]00.byte $00; Rest [98e9]0e.byte $0e; F6 [98ea]00.byte $00; Rest [98eb]15.byte $15; C7 [98ec]00.byte $00; Rest [98ed]0e.byte $0e; F6 [98ee]0e.byte $0e; F6 [98ef]15.byte $15; C7 [98f0]00.byte $00; Rest [98f1]0e.byte $0e; F6 [98f2]00.byte $00; Rest [98f3]15.byte $15; C7 [98f4]00.byte $00; Rest [98f5]11.byte $11; G#6 [98f6]00.byte $00; Rest [98f7]18.byte $18; D#7 [98f8]00.byte $00; Rest [98f9]11.byte $11; G#6 [98fa]00.byte $00; Rest [98fb]18.byte $18; D#7 [98fc]00.byte $00; Rest [98fd]11.byte $11; G#6 [98fe]11.byte $11; G#6 [98ff]18.byte $18; D#7 [9900]00.byte $00; Rest [9901]11.byte $11; G#6 [9902]00.byte $00; Rest [9903]18.byte $18; D#7 [9904]00.byte $00; Rest [9905]15.byte $15; C7 [9906]00.byte $00; Rest [9907]21.byte $21; C8 [9908]00.byte $00; Rest [9909]15.byte $15; C7 [990a]00.byte $00; Rest [990b]1c.byte $1c; G7 [990c]00.byte $00; Rest [990d]15.byte $15; C7 [990e]15.byte $15; C7 [990f]1c.byte $1c; G7 [9910]00.byte $00; Rest [9911]15.byte $15; C7 [9912]00.byte $00; Rest [9913]1c.byte $1c; G7 [9914]1c.byte $1c; G7 [9915]13.byte $13; A#6 [9916]00.byte $00; Rest [9917]1a.byte $1a; F7 [9918]00.byte $00; Rest [9919]13.byte $13; A#6 [991a]00.byte $00; Rest [991b]1a.byte $1a; F7 [991c]1f.byte $1f; A#7 [991d]13.byte $13; A#6 [991e]13.byte $13; A#6 [991f]1f.byte $1f; A#7 [9920]00.byte $00; Rest [9921]13.byte $13; A#6 [9922]00.byte $00; Rest [9923]13.byte $13; A#6 [9924]1f.byte $1f; A#7 [9925]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9926]ff.byte MSCRIPT_OP_END; Op: End [9927]@_subroutine: [9927]8c.byte $8c; Note length: 12 [9928]15.byte $15; C7 [9929]86.byte $86; Note length: 6 [992a]21.byte $21; C8 [992b]00.byte $00; Rest [992c]8c.byte $8c; Note length: 12 [992d]15.byte $15; C7 [992e]86.byte $86; Note length: 6 [992f]21.byte $21; C8 [9930]00.byte $00; Rest [9931]8c.byte $8c; Note length: 12 [9932]15.byte $15; C7 [9933]86.byte $86; Note length: 6 [9934]21.byte $21; C8 [9935]00.byte $00; Rest [9936]8c.byte $8c; Note length: 12 [9937]15.byte $15; C7 [9938]86.byte $86; Note length: 6 [9939]21.byte $21; C8 [993a]00.byte $00; Rest [993b]8c.byte $8c; Note length: 12 [993c]16.byte $16; C#7 [993d]86.byte $86; Note length: 6 [993e]22.byte $22; C#8 [993f]00.byte $00; Rest [9940]8c.byte $8c; Note length: 12 [9941]16.byte $16; C#7 [9942]86.byte $86; Note length: 6 [9943]22.byte $22; C#8 [9944]00.byte $00; Rest [9945]8c.byte $8c; Note length: 12 [9946]16.byte $16; C#7 [9947]86.byte $86; Note length: 6 [9948]22.byte $22; C#8 [9949]00.byte $00; Rest [994a]8c.byte $8c; Note length: 12 [994b]16.byte $16; C#7 [994c]86.byte $86; Note length: 6 [994d]22.byte $22; C#8 [994e]00.byte $00; Rest [994f]8c.byte $8c; Note length: 12 [9950]14.byte $14; B6 [9951]86.byte $86; Note length: 6 [9952]20.byte $20; B7 [9953]00.byte $00; Rest [9954]8c.byte $8c; Note length: 12 [9955]14.byte $14; B6 [9956]86.byte $86; Note length: 6 [9957]20.byte $20; B7 [9958]00.byte $00; Rest [9959]8c.byte $8c; Note length: 12 [995a]10.byte $10; G6 [995b]86.byte $86; Note length: 6 [995c]1c.byte $1c; G7 [995d]00.byte $00; Rest [995e]8c.byte $8c; Note length: 12 [995f]10.byte $10; G6 [9960]86.byte $86; Note length: 6 [9961]1c.byte $1c; G7 [9962]00.byte $00; Rest [9963]8c.byte $8c; Note length: 12 [9964]15.byte $15; C7 [9965]86.byte $86; Note length: 6 [9966]21.byte $21; C8 [9967]00.byte $00; Rest [9968]8c.byte $8c; Note length: 12 [9969]15.byte $15; C7 [996a]86.byte $86; Note length: 6 [996b]21.byte $21; C8 [996c]00.byte $00; Rest [996d]8c.byte $8c; Note length: 12 [996e]15.byte $15; C7 [996f]86.byte $86; Note length: 6 [9970]21.byte $21; C8 [9971]00.byte $00; Rest [9972]8c.byte $8c; Note length: 12 [9973]15.byte $15; C7 [9974]86.byte $86; Note length: 6 [9975]21.byte $21; C8 [9976]00.byte $00; Rest [9977]8c.byte $8c; Note length: 12 [9978]15.byte $15; C7 [9979]86.byte $86; Note length: 6 [997a]21.byte $21; C8 [997b]00.byte $00; Rest [997c]8c.byte $8c; Note length: 12 [997d]15.byte $15; C7 [997e]86.byte $86; Note length: 6 [997f]21.byte $21; C8 [9980]00.byte $00; Rest [9981]8c.byte $8c; Note length: 12 [9982]15.byte $15; C7 [9983]86.byte $86; Note length: 6 [9984]21.byte $21; C8 [9985]00.byte $00; Rest [9986]8c.byte $8c; Note length: 12 [9987]15.byte $15; C7 [9988]86.byte $86; Note length: 6 [9989]21.byte $21; C8 [998a]00.byte $00; Rest [998b]8c.byte $8c; Note length: 12 [998c]16.byte $16; C#7 [998d]86.byte $86; Note length: 6 [998e]22.byte $22; C#8 [998f]00.byte $00; Rest [9990]8c.byte $8c; Note length: 12 [9991]16.byte $16; C#7 [9992]86.byte $86; Note length: 6 [9993]22.byte $22; C#8 [9994]00.byte $00; Rest [9995]8c.byte $8c; Note length: 12 [9996]16.byte $16; C#7 [9997]86.byte $86; Note length: 6 [9998]22.byte $22; C#8 [9999]00.byte $00; Rest [999a]8c.byte $8c; Note length: 12 [999b]16.byte $16; C#7 [999c]86.byte $86; Note length: 6 [999d]22.byte $22; C#8 [999e]00.byte $00; Rest [999f]8c.byte $8c; Note length: 12 [99a0]14.byte $14; B6 [99a1]86.byte $86; Note length: 6 [99a2]20.byte $20; B7 [99a3]00.byte $00; Rest [99a4]8c.byte $8c; Note length: 12 [99a5]14.byte $14; B6 [99a6]86.byte $86; Note length: 6 [99a7]20.byte $20; B7 [99a8]00.byte $00; Rest [99a9]8c.byte $8c; Note length: 12 [99aa]10.byte $10; G6 [99ab]86.byte $86; Note length: 6 [99ac]1c.byte $1c; G7 [99ad]00.byte $00; Rest [99ae]8c.byte $8c; Note length: 12 [99af]10.byte $10; G6 [99b0]86.byte $86; Note length: 6 [99b1]1c.byte $1c; G7 [99b2]00.byte $00; Rest [99b3]8c.byte $8c; Note length: 12 [99b4]15.byte $15; C7 [99b5]86.byte $86; Note length: 6 [99b6]21.byte $21; C8 [99b7]00.byte $00; Rest [99b8]8c.byte $8c; Note length: 12 [99b9]15.byte $15; C7 [99ba]86.byte $86; Note length: 6 [99bb]21.byte $21; C8 [99bc]00.byte $00; Rest [99bd]8c.byte $8c; Note length: 12 [99be]15.byte $15; C7 [99bf]86.byte $86; Note length: 6 [99c0]21.byte $21; C8 [99c1]00.byte $00; Rest [99c2]8c.byte $8c; Note length: 12 [99c3]15.byte $15; C7 [99c4]86.byte $86; Note length: 6 [99c5]21.byte $21; C8 [99c6]00.byte $00; Rest [99c7]13.byte $13; A#6 [99c8]13.byte $13; A#6 [99c9]13.byte $13; A#6 [99ca]13.byte $13; A#6 [99cb]13.byte $13; A#6 [99cc]13.byte $13; A#6 [99cd]13.byte $13; A#6 [99ce]13.byte $13; A#6 [99cf]13.byte $13; A#6 [99d0]13.byte $13; A#6 [99d1]13.byte $13; A#6 [99d2]13.byte $13; A#6 [99d3]13.byte $13; A#6 [99d4]13.byte $13; A#6 [99d5]13.byte $13; A#6 [99d6]13.byte $13; A#6 [99d7]11.byte $11; G#6 [99d8]11.byte $11; G#6 [99d9]11.byte $11; G#6 [99da]11.byte $11; G#6 [99db]11.byte $11; G#6 [99dc]11.byte $11; G#6 [99dd]11.byte $11; G#6 [99de]11.byte $11; G#6 [99df]11.byte $11; G#6 [99e0]11.byte $11; G#6 [99e1]11.byte $11; G#6 [99e2]11.byte $11; G#6 [99e3]11.byte $11; G#6 [99e4]11.byte $11; G#6 [99e5]11.byte $11; G#6 [99e6]11.byte $11; G#6 [99e7]10.byte $10; G6 [99e8]10.byte $10; G6 [99e9]10.byte $10; G6 [99ea]10.byte $10; G6 [99eb]10.byte $10; G6 [99ec]10.byte $10; G6 [99ed]10.byte $10; G6 [99ee]10.byte $10; G6 [99ef]10.byte $10; G6 [99f0]10.byte $10; G6 [99f1]10.byte $10; G6 [99f2]10.byte $10; G6 [99f3]10.byte $10; G6 [99f4]10.byte $10; G6 [99f5]10.byte $10; G6 [99f6]10.byte $10; G6 [99f7]0e.byte $0e; F6 [99f8]0e.byte $0e; F6 [99f9]0e.byte $0e; F6 [99fa]0e.byte $0e; F6 [99fb]0e.byte $0e; F6 [99fc]0e.byte $0e; F6 [99fd]0e.byte $0e; F6 [99fe]0e.byte $0e; F6 [99ff]0e.byte $0e; F6 [9a00]0e.byte $0e; F6 [9a01]0e.byte $0e; F6 [9a02]0e.byte $0e; F6 [9a03]0e.byte $0e; F6 [9a04]0e.byte $0e; F6 [9a05]0e.byte $0e; F6 [9a06]0e.byte $0e; F6 [9a07]13.byte $13; A#6 [9a08]13.byte $13; A#6 [9a09]13.byte $13; A#6 [9a0a]13.byte $13; A#6 [9a0b]13.byte $13; A#6 [9a0c]13.byte $13; A#6 [9a0d]13.byte $13; A#6 [9a0e]13.byte $13; A#6 [9a0f]13.byte $13; A#6 [9a10]13.byte $13; A#6 [9a11]13.byte $13; A#6 [9a12]13.byte $13; A#6 [9a13]13.byte $13; A#6 [9a14]13.byte $13; A#6 [9a15]13.byte $13; A#6 [9a16]13.byte $13; A#6 [9a17]11.byte $11; G#6 [9a18]11.byte $11; G#6 [9a19]11.byte $11; G#6 [9a1a]11.byte $11; G#6 [9a1b]11.byte $11; G#6 [9a1c]11.byte $11; G#6 [9a1d]11.byte $11; G#6 [9a1e]11.byte $11; G#6 [9a1f]11.byte $11; G#6 [9a20]11.byte $11; G#6 [9a21]11.byte $11; G#6 [9a22]11.byte $11; G#6 [9a23]11.byte $11; G#6 [9a24]11.byte $11; G#6 [9a25]11.byte $11; G#6 [9a26]11.byte $11; G#6 [9a27]10.byte $10; G6 [9a28]10.byte $10; G6 [9a29]10.byte $10; G6 [9a2a]10.byte $10; G6 [9a2b]10.byte $10; G6 [9a2c]10.byte $10; G6 [9a2d]10.byte $10; G6 [9a2e]10.byte $10; G6 [9a2f]10.byte $10; G6 [9a30]10.byte $10; G6 [9a31]10.byte $10; G6 [9a32]10.byte $10; G6 [9a33]10.byte $10; G6 [9a34]10.byte $10; G6 [9a35]10.byte $10; G6 [9a36]10.byte $10; G6 [9a37]0e.byte $0e; F6 [9a38]0e.byte $0e; F6 [9a39]0e.byte $0e; F6 [9a3a]0e.byte $0e; F6 [9a3b]0e.byte $0e; F6 [9a3c]0e.byte $0e; F6 [9a3d]0e.byte $0e; F6 [9a3e]0e.byte $0e; F6 [9a3f]0e.byte $0e; F6 [9a40]0e.byte $0e; F6 [9a41]0e.byte $0e; F6 [9a42]0e.byte $0e; F6 [9a43]0e.byte $0e; F6 [9a44]0e.byte $0e; F6 [9a45]0e.byte $0e; F6 [9a46]0e.byte $0e; F6 [9a47]f5.byte MSCRIPT_OP_RET; Op: Return from subroutine
; ; XREFS: ; MSCRIPTS_APOLUNE [$PRG5::8f11] ;
[9a48]MSCRIPT_APOLUNE_NOISE: [9a48]8c.byte $8c; Note length: 12 [9a49]00.byte $00; Rest [9a4a]31.byte $31; A9 [9a4b]00.byte $00; Rest [9a4c]31.byte $31; A9 [9a4d]00.byte $00; Rest [9a4e]31.byte $31; A9 [9a4f]00.byte $00; Rest [9a50]31.byte $31; A9 [9a51]00.byte $00; Rest [9a52]31.byte $31; A9 [9a53]00.byte $00; Rest [9a54]31.byte $31; A9 [9a55]00.byte $00; Rest [9a56]31.byte $31; A9 [9a57]86.byte $86; Note length: 6 [9a58]31.byte $31; A9 [9a59]31.byte $31; A9 [9a5a]8c.byte $8c; Note length: 12 [9a5b]31.byte $31; A9 [9a5c]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [9a5d]70 9apointer @_subroutine; '- $9A70 [9a5f]f8.byte MSCRIPT_OP_JSR; Op: Jump to subroutine [9a60]70 9apointer @_subroutine; '- $9A70 [9a62]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9a63]08.byte $08; '- 8 iterations [9a64]8c.byte $8c; Note length: 12 [9a65]00.byte $00; Rest [9a66]21.byte $21; A9 [9a67]00.byte $00; Rest [9a68]21.byte $21; A9 [9a69]00.byte $00; Rest [9a6a]21.byte $21; A9 [9a6b]00.byte $00; Rest [9a6c]21.byte $21; A9 [9a6d]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9a6e]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9a6f]ff.byte MSCRIPT_OP_END; Op: End [9a70]@_subroutine: [9a70]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9a71]08.byte $08; '- 8 iterations [9a72]8c.byte $8c; Note length: 12 [9a73]00.byte $00; Rest [9a74]21.byte $21; A9 [9a75]00.byte $00; Rest [9a76]21.byte $21; A9 [9a77]00.byte $00; Rest [9a78]21.byte $21; A9 [9a79]00.byte $00; Rest [9a7a]21.byte $21; A9 [9a7b]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9a7c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9a7d]08.byte $08; '- 8 iterations [9a7e]86.byte $86; Note length: 6 [9a7f]31.byte $31; A9 [9a80]00.byte $00; Rest [9a81]31.byte $31; A9 [9a82]31.byte $31; A9 [9a83]31.byte $31; A9 [9a84]00.byte $00; Rest [9a85]31.byte $31; A9 [9a86]31.byte $31; A9 [9a87]31.byte $31; A9 [9a88]00.byte $00; Rest [9a89]31.byte $31; A9 [9a8a]31.byte $31; A9 [9a8b]31.byte $31; A9 [9a8c]00.byte $00; Rest [9a8d]31.byte $31; A9 [9a8e]31.byte $31; A9 [9a8f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9a90]f5.byte MSCRIPT_OP_RET; Op: Return from subroutine [9a91]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for Conflate. ; ; XREFS: ; MSCRIPTS_CONFLATE [$PRG5::8f13] ;============================================================================
; ; XREFS: ; MSCRIPTS_CONFLATE [$PRG5::8f13] ;
[9a92]MSCRIPT_CONFLATE_SQ1: [9a92]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9a93]02.byte $02; '- Reduce volume by 2 [9a94]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9a95]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9a96]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9a97]01.byte $01; '- Mode 1: Curve but held [9a98]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9a99]02.byte $02; '- 2 iterations [9a9a]98.byte $98; Note length: 24 [9a9b]37.byte $37; G4 [9a9c]36.byte $36; F#4 [9a9d]a4.byte $a4; Note length: 36 [9a9e]33.byte $33; D#4 [9a9f]bc.byte $bc; Note length: 60 [9aa0]34.byte $34; E4 [9aa1]8c.byte $8c; Note length: 12 [9aa2]34.byte $34; E4 [9aa3]37.byte $37; G4 [9aa4]3b.byte $3b; B4 [9aa5]98.byte $98; Note length: 24 [9aa6]3e.byte $3e; D5 [9aa7]8c.byte $8c; Note length: 12 [9aa8]3b.byte $3b; B4 [9aa9]37.byte $37; G4 [9aaa]34.byte $34; E4 [9aab]98.byte $98; Note length: 24 [9aac]3d.byte $3d; C#5 [9aad]8c.byte $8c; Note length: 12 [9aae]35.byte $35; F4 [9aaf]bc.byte $bc; Note length: 60 [9ab0]3c.byte $3c; C5 [9ab1]8c.byte $8c; Note length: 12 [9ab2]39.byte $39; A4 [9ab3]3c.byte $3c; C5 [9ab4]40.byte $40; E5 [9ab5]98.byte $98; Note length: 24 [9ab6]43.byte $43; G5 [9ab7]8c.byte $8c; Note length: 12 [9ab8]40.byte $40; E5 [9ab9]3c.byte $3c; C5 [9aba]39.byte $39; A4 [9abb]a4.byte $a4; Note length: 36 [9abc]42.byte $42; F#5 [9abd]8c.byte $8c; Note length: 12 [9abe]3e.byte $3e; D5 [9abf]3a.byte $3a; A#4 [9ac0]37.byte $37; G4 [9ac1]00.byte $00; Rest [9ac2]32.byte $32; D4 [9ac3]b0.byte $b0; Note length: 48 [9ac4]35.byte $35; F4 [9ac5]a4.byte $a4; Note length: 36 [9ac6]33.byte $33; D#4 [9ac7]8c.byte $8c; Note length: 12 [9ac8]32.byte $32; D4 [9ac9]b0.byte $b0; Note length: 48 [9aca]00.byte $00; Rest [9acb]8c.byte $8c; Note length: 12 [9acc]2b.byte $2b; G3 [9acd]2e.byte $2e; A#3 [9ace]32.byte $32; D4 [9acf]36.byte $36; F#4 [9ad0]b0.byte $b0; Note length: 48 [9ad1]00.byte $00; Rest [9ad2]fc.byte $fc; Op: End loop [9ad3]00.byte $00; Rest [9ad4]98.byte $98; Note length: 24 [9ad5]3b.byte $3b; B4 [9ad6]8c.byte $8c; Note length: 12 [9ad7]3c.byte $3c; C5 [9ad8]3e.byte $3e; D5 [9ad9]00.byte $00; Rest [9ada]34.byte $34; E4 [9adb]00.byte $00; Rest [9adc]00.byte $00; Rest [9add]3b.byte $3b; B4 [9ade]3b.byte $3b; B4 [9adf]3c.byte $3c; C5 [9ae0]3e.byte $3e; D5 [9ae1]00.byte $00; Rest [9ae2]3b.byte $3b; B4 [9ae3]34.byte $34; E4 [9ae4]37.byte $37; G4 [9ae5]39.byte $39; A4 [9ae6]3f.byte $3f; D#5 [9ae7]00.byte $00; Rest [9ae8]b0.byte $b0; Note length: 48 [9ae9]3f.byte $3f; D#5 [9aea]8c.byte $8c; Note length: 12 [9aeb]39.byte $39; A4 [9aec]3f.byte $3f; D#5 [9aed]41.byte $41; F5 [9aee]3f.byte $3f; D#5 [9aef]2d.byte $2d; A3 [9af0]2d.byte $2d; A3 [9af1]33.byte $33; D#4 [9af2]00.byte $00; Rest [9af3]86.byte $86; Note length: 6 [9af4]3f.byte $3f; D#5 [9af5]40.byte $40; E5 [9af6]98.byte $98; Note length: 24 [9af7]41.byte $41; F5 [9af8]8c.byte $8c; Note length: 12 [9af9]3d.byte $3d; C#5 [9afa]3a.byte $3a; A#4 [9afb]00.byte $00; Rest [9afc]35.byte $35; F4 [9afd]3a.byte $3a; A#4 [9afe]3d.byte $3d; C#5 [9aff]41.byte $41; F5 [9b00]41.byte $41; F5 [9b01]3d.byte $3d; C#5 [9b02]3a.byte $3a; A#4 [9b03]00.byte $00; Rest [9b04]3a.byte $3a; A#4 [9b05]3d.byte $3d; C#5 [9b06]3a.byte $3a; A#4 [9b07]3e.byte $3e; D5 [9b08]3f.byte $3f; D#5 [9b09]3e.byte $3e; D5 [9b0a]3a.byte $3a; A#4 [9b0b]36.byte $36; F#4 [9b0c]33.byte $33; D#4 [9b0d]36.byte $36; F#4 [9b0e]33.byte $33; D#4 [9b0f]32.byte $32; D4 [9b10]32.byte $32; D4 [9b11]32.byte $32; D4 [9b12]00.byte $00; Rest [9b13]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9b14]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_CONFLATE [$PRG5::8f15] ;
[9b15]MSCRIPT_CONFLATE_SQ2: [9b15]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9b16]02.byte $02; '- Reduce volume by 2 [9b17]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9b18]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9b19]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9b1a]02.byte $02; '- 2 iterations [9b1b]98.byte $98; Note length: 24 [9b1c]2f.byte $2f; B3 [9b1d]2d.byte $2d; A3 [9b1e]a4.byte $a4; Note length: 36 [9b1f]2a.byte $2a; F#3 [9b20]8c.byte $8c; Note length: 12 [9b21]2b.byte $2b; G3 [9b22]00.byte $00; Rest [9b23]2b.byte $2b; G3 [9b24]22.byte $22; A#2 [9b25]23.byte $23; B2 [9b26]2b.byte $2b; G3 [9b27]2f.byte $2f; B3 [9b28]34.byte $34; E4 [9b29]98.byte $98; Note length: 24 [9b2a]37.byte $37; G4 [9b2b]8c.byte $8c; Note length: 12 [9b2c]34.byte $34; E4 [9b2d]2f.byte $2f; B3 [9b2e]2b.byte $2b; G3 [9b2f]98.byte $98; Note length: 24 [9b30]39.byte $39; A4 [9b31]8c.byte $8c; Note length: 12 [9b32]2d.byte $2d; A3 [9b33]39.byte $39; A4 [9b34]00.byte $00; Rest [9b35]39.byte $39; A4 [9b36]2c.byte $2c; G#3 [9b37]2d.byte $2d; A3 [9b38]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9b39]01.byte $01; '- 1 [9b3a]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9b3b]05.byte $05; '- Reduce volume by 5 [9b3c]86.byte $86; Note length: 6 [9b3d]00.byte $00; Rest [9b3e]8c.byte $8c; Note length: 12 [9b3f]39.byte $39; A4 [9b40]3c.byte $3c; C5 [9b41]40.byte $40; E5 [9b42]92.byte $92; Note length: 18 [9b43]43.byte $43; G5 [9b44]8c.byte $8c; Note length: 12 [9b45]3c.byte $3c; C5 [9b46]39.byte $39; A4 [9b47]34.byte $34; E4 [9b48]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9b49]00.byte $00; '- 0 [9b4a]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9b4b]02.byte $02; '- Reduce volume by 2 [9b4c]a4.byte $a4; Note length: 36 [9b4d]3e.byte $3e; D5 [9b4e]8c.byte $8c; Note length: 12 [9b4f]3a.byte $3a; A#4 [9b50]37.byte $37; G4 [9b51]32.byte $32; D4 [9b52]00.byte $00; Rest [9b53]2e.byte $2e; A#3 [9b54]86.byte $86; Note length: 6 [9b55]27.byte $27; D#3 [9b56]2b.byte $2b; G3 [9b57]2e.byte $2e; A#3 [9b58]32.byte $32; D4 [9b59]35.byte $35; F4 [9b5a]32.byte $32; D4 [9b5b]2e.byte $2e; A#3 [9b5c]2b.byte $2b; G3 [9b5d]25.byte $25; C#3 [9b5e]29.byte $29; F3 [9b5f]2c.byte $2c; G#3 [9b60]30.byte $30; C4 [9b61]33.byte $33; D#4 [9b62]30.byte $30; C4 [9b63]8c.byte $8c; Note length: 12 [9b64]2f.byte $2f; B3 [9b65]b0.byte $b0; Note length: 48 [9b66]00.byte $00; Rest [9b67]8c.byte $8c; Note length: 12 [9b68]32.byte $32; D4 [9b69]37.byte $37; G4 [9b6a]3a.byte $3a; A#4 [9b6b]3e.byte $3e; D5 [9b6c]b0.byte $b0; Note length: 48 [9b6d]00.byte $00; Rest [9b6e]fc.byte $fc; Op: End loop [9b6f]00.byte $00; Rest [9b70]98.byte $98; Note length: 24 [9b71]37.byte $37; G4 [9b72]8c.byte $8c; Note length: 12 [9b73]39.byte $39; A4 [9b74]3b.byte $3b; B4 [9b75]00.byte $00; Rest [9b76]28.byte $28; E3 [9b77]00.byte $00; Rest [9b78]00.byte $00; Rest [9b79]37.byte $37; G4 [9b7a]37.byte $37; G4 [9b7b]39.byte $39; A4 [9b7c]3b.byte $3b; B4 [9b7d]00.byte $00; Rest [9b7e]37.byte $37; G4 [9b7f]2b.byte $2b; G3 [9b80]2f.byte $2f; B3 [9b81]30.byte $30; C4 [9b82]39.byte $39; A4 [9b83]00.byte $00; Rest [9b84]98.byte $98; Note length: 24 [9b85]39.byte $39; A4 [9b86]8c.byte $8c; Note length: 12 [9b87]35.byte $35; F4 [9b88]30.byte $30; C4 [9b89]35.byte $35; F4 [9b8a]39.byte $39; A4 [9b8b]3c.byte $3c; C5 [9b8c]39.byte $39; A4 [9b8d]29.byte $29; F3 [9b8e]29.byte $29; F3 [9b8f]2d.byte $2d; A3 [9b90]00.byte $00; Rest [9b91]86.byte $86; Note length: 6 [9b92]3b.byte $3b; B4 [9b93]3c.byte $3c; C5 [9b94]98.byte $98; Note length: 24 [9b95]3d.byte $3d; C#5 [9b96]8c.byte $8c; Note length: 12 [9b97]3a.byte $3a; A#4 [9b98]35.byte $35; F4 [9b99]00.byte $00; Rest [9b9a]31.byte $31; C#4 [9b9b]35.byte $35; F4 [9b9c]3a.byte $3a; A#4 [9b9d]3d.byte $3d; C#5 [9b9e]3d.byte $3d; C#5 [9b9f]3a.byte $3a; A#4 [9ba0]35.byte $35; F4 [9ba1]00.byte $00; Rest [9ba2]31.byte $31; C#4 [9ba3]35.byte $35; F4 [9ba4]31.byte $31; C#4 [9ba5]86.byte $86; Note length: 6 [9ba6]3a.byte $3a; A#4 [9ba7]32.byte $32; D4 [9ba8]3a.byte $3a; A#4 [9ba9]33.byte $33; D#4 [9baa]3a.byte $3a; A#4 [9bab]32.byte $32; D4 [9bac]36.byte $36; F#4 [9bad]2e.byte $2e; A#3 [9bae]33.byte $33; D#4 [9baf]2a.byte $2a; F#3 [9bb0]2e.byte $2e; A#3 [9bb1]27.byte $27; D#3 [9bb2]2a.byte $2a; F#3 [9bb3]22.byte $22; A#2 [9bb4]2e.byte $2e; A#3 [9bb5]27.byte $27; D#3 [9bb6]8c.byte $8c; Note length: 12 [9bb7]2b.byte $2b; G3 [9bb8]2b.byte $2b; G3 [9bb9]2a.byte $2a; F#3 [9bba]00.byte $00; Rest [9bbb]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9bbc]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_CONFLATE [$PRG5::8f17] ;
[9bbd]MSCRIPT_CONFLATE_TRI: [9bbd]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9bbe]02.byte $02; '- 2 iterations [9bbf]b0.byte $b0; Note length: 48 [9bc0]00.byte $00; Rest [9bc1]8c.byte $8c; Note length: 12 [9bc2]10.byte $10; E3 [9bc3]10.byte $10; E3 [9bc4]13.byte $13; G3 [9bc5]10.byte $10; E3 [9bc6]17.byte $17; B3 [9bc7]17.byte $17; B3 [9bc8]10.byte $10; E3 [9bc9]86.byte $86; Note length: 6 [9bca]1c.byte $1c; E4 [9bcb]10.byte $10; E3 [9bcc]8c.byte $8c; Note length: 12 [9bcd]10.byte $10; E3 [9bce]10.byte $10; E3 [9bcf]13.byte $13; G3 [9bd0]10.byte $10; E3 [9bd1]17.byte $17; B3 [9bd2]17.byte $17; B3 [9bd3]10.byte $10; E3 [9bd4]86.byte $86; Note length: 6 [9bd5]1c.byte $1c; E4 [9bd6]10.byte $10; E3 [9bd7]8c.byte $8c; Note length: 12 [9bd8]11.byte $11; F3 [9bd9]11.byte $11; F3 [9bda]15.byte $15; A3 [9bdb]11.byte $11; F3 [9bdc]18.byte $18; C4 [9bdd]18.byte $18; C4 [9bde]11.byte $11; F3 [9bdf]86.byte $86; Note length: 6 [9be0]1d.byte $1d; F4 [9be1]11.byte $11; F3 [9be2]8c.byte $8c; Note length: 12 [9be3]15.byte $15; A3 [9be4]18.byte $18; C4 [9be5]1c.byte $1c; E4 [9be6]98.byte $98; Note length: 24 [9be7]1f.byte $1f; G4 [9be8]8c.byte $8c; Note length: 12 [9be9]1c.byte $1c; E4 [9bea]15.byte $15; A3 [9beb]86.byte $86; Note length: 6 [9bec]21.byte $21; A4 [9bed]15.byte $15; A3 [9bee]8c.byte $8c; Note length: 12 [9bef]13.byte $13; G3 [9bf0]13.byte $13; G3 [9bf1]16.byte $16; A#3 [9bf2]13.byte $13; G3 [9bf3]1a.byte $1a; D4 [9bf4]1a.byte $1a; D4 [9bf5]13.byte $13; G3 [9bf6]86.byte $86; Note length: 6 [9bf7]1f.byte $1f; G4 [9bf8]13.byte $13; G3 [9bf9]8c.byte $8c; Note length: 12 [9bfa]0f.byte $0f; D#3 [9bfb]0f.byte $0f; D#3 [9bfc]16.byte $16; A#3 [9bfd]86.byte $86; Note length: 6 [9bfe]1b.byte $1b; D#4 [9bff]0f.byte $0f; D#3 [9c00]8c.byte $8c; Note length: 12 [9c01]0d.byte $0d; C#3 [9c02]0d.byte $0d; C#3 [9c03]14.byte $14; G#3 [9c04]86.byte $86; Note length: 6 [9c05]19.byte $19; C#4 [9c06]0d.byte $0d; C#3 [9c07]a4.byte $a4; Note length: 36 [9c08]13.byte $13; G3 [9c09]86.byte $86; Note length: 6 [9c0a]14.byte $14; G#3 [9c0b]15.byte $15; A3 [9c0c]8c.byte $8c; Note length: 12 [9c0d]16.byte $16; A#3 [9c0e]1a.byte $1a; D4 [9c0f]1f.byte $1f; G4 [9c10]13.byte $13; G3 [9c11]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9c12]01.byte $01; '- 1 loop [9c13]b0.byte $b0; Note length: 48 [9c14]00.byte $00; Rest [9c15]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9c16]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9c17]02.byte $02; '- 2 loops [9c18]8c.byte $8c; Note length: 12 [9c19]00.byte $00; Rest [9c1a]1f.byte $1f; G4 [9c1b]1d.byte $1d; F4 [9c1c]1b.byte $1b; D#4 [9c1d]1a.byte $1a; D4 [9c1e]16.byte $16; A#3 [9c1f]13.byte $13; G3 [9c20]14.byte $14; G#3 [9c21]15.byte $15; A3 [9c22]1c.byte $1c; E4 [9c23]23.byte $23; B4 [9c24]1f.byte $1f; G4 [9c25]21.byte $21; A4 [9c26]1c.byte $1c; E4 [9c27]00.byte $00; Rest [9c28]13.byte $13; G3 [9c29]15.byte $15; A3 [9c2a]1c.byte $1c; E4 [9c2b]23.byte $23; B4 [9c2c]1f.byte $1f; G4 [9c2d]21.byte $21; A4 [9c2e]13.byte $13; G3 [9c2f]15.byte $15; A3 [9c30]10.byte $10; E3 [9c31]11.byte $11; F3 [9c32]18.byte $18; C4 [9c33]21.byte $21; A4 [9c34]1d.byte $1d; F4 [9c35]1f.byte $1f; G4 [9c36]1d.byte $1d; F4 [9c37]00.byte $00; Rest [9c38]0c.byte $0c; C3 [9c39]11.byte $11; F3 [9c3a]18.byte $18; C4 [9c3b]21.byte $21; A4 [9c3c]1f.byte $1f; G4 [9c3d]00.byte $00; Rest [9c3e]1d.byte $1d; F4 [9c3f]18.byte $18; C4 [9c40]11.byte $11; F3 [9c41]16.byte $16; A#3 [9c42]1d.byte $1d; F4 [9c43]22.byte $22; A#4 [9c44]1d.byte $1d; F4 [9c45]24.byte $24; C5 [9c46]22.byte $22; A#4 [9c47]00.byte $00; Rest [9c48]11.byte $11; F3 [9c49]16.byte $16; A#3 [9c4a]1d.byte $1d; F4 [9c4b]24.byte $24; C5 [9c4c]22.byte $22; A#4 [9c4d]00.byte $00; Rest [9c4e]1d.byte $1d; F4 [9c4f]16.byte $16; A#3 [9c50]11.byte $11; F3 [9c51]0f.byte $0f; D#3 [9c52]16.byte $16; A#3 [9c53]1b.byte $1b; D#4 [9c54]16.byte $16; A#3 [9c55]1d.byte $1d; F4 [9c56]1b.byte $1b; D#4 [9c57]16.byte $16; A#3 [9c58]0f.byte $0f; D#3 [9c59]0e.byte $0e; D3 [9c5a]0e.byte $0e; D3 [9c5b]0e.byte $0e; D3 [9c5c]00.byte $00; Rest [9c5d]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9c5e]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_CONFLATE [$PRG5::8f19] ;
[9c5f]MSCRIPT_CONFLATE_NOISE: [9c5f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9c60]02.byte $02; '- 2 iterations [9c61]86.byte $86; Note length: 6 [9c62]31.byte $31; A9 [9c63]00.byte $00; Rest [9c64]00.byte $00; Rest [9c65]00.byte $00; Rest [9c66]31.byte $31; A9 [9c67]00.byte $00; Rest [9c68]00.byte $00; Rest [9c69]00.byte $00; Rest [9c6a]86.byte $86; Note length: 6 [9c6b]31.byte $31; A9 [9c6c]00.byte $00; Rest [9c6d]31.byte $31; A9 [9c6e]00.byte $00; Rest [9c6f]8c.byte $8c; Note length: 12 [9c70]21.byte $21; A9 [9c71]21.byte $21; A9 [9c72]86.byte $86; Note length: 6 [9c73]31.byte $31; A9 [9c74]00.byte $00; Rest [9c75]31.byte $31; A9 [9c76]00.byte $00; Rest [9c77]8c.byte $8c; Note length: 12 [9c78]21.byte $21; A9 [9c79]86.byte $86; Note length: 6 [9c7a]31.byte $31; A9 [9c7b]00.byte $00; Rest [9c7c]31.byte $31; A9 [9c7d]00.byte $00; Rest [9c7e]31.byte $31; A9 [9c7f]00.byte $00; Rest [9c80]8c.byte $8c; Note length: 12 [9c81]21.byte $21; A9 [9c82]21.byte $21; A9 [9c83]86.byte $86; Note length: 6 [9c84]31.byte $31; A9 [9c85]00.byte $00; Rest [9c86]31.byte $31; A9 [9c87]00.byte $00; Rest [9c88]8c.byte $8c; Note length: 12 [9c89]21.byte $21; A9 [9c8a]86.byte $86; Note length: 6 [9c8b]31.byte $31; A9 [9c8c]00.byte $00; Rest [9c8d]31.byte $31; A9 [9c8e]00.byte $00; Rest [9c8f]31.byte $31; A9 [9c90]00.byte $00; Rest [9c91]8c.byte $8c; Note length: 12 [9c92]21.byte $21; A9 [9c93]21.byte $21; A9 [9c94]86.byte $86; Note length: 6 [9c95]31.byte $31; A9 [9c96]00.byte $00; Rest [9c97]31.byte $31; A9 [9c98]00.byte $00; Rest [9c99]8c.byte $8c; Note length: 12 [9c9a]21.byte $21; A9 [9c9b]21.byte $21; A9 [9c9c]86.byte $86; Note length: 6 [9c9d]31.byte $31; A9 [9c9e]00.byte $00; Rest [9c9f]31.byte $31; A9 [9ca0]00.byte $00; Rest [9ca1]31.byte $31; A9 [9ca2]00.byte $00; Rest [9ca3]31.byte $31; A9 [9ca4]00.byte $00; Rest [9ca5]31.byte $31; A9 [9ca6]00.byte $00; Rest [9ca7]8c.byte $8c; Note length: 12 [9ca8]21.byte $21; A9 [9ca9]21.byte $21; A9 [9caa]86.byte $86; Note length: 6 [9cab]21.byte $21; A9 [9cac]21.byte $21; A9 [9cad]31.byte $31; A9 [9cae]00.byte $00; Rest [9caf]31.byte $31; A9 [9cb0]00.byte $00; Rest [9cb1]8c.byte $8c; Note length: 12 [9cb2]21.byte $21; A9 [9cb3]21.byte $21; A9 [9cb4]86.byte $86; Note length: 6 [9cb5]31.byte $31; A9 [9cb6]00.byte $00; Rest [9cb7]31.byte $31; A9 [9cb8]00.byte $00; Rest [9cb9]8c.byte $8c; Note length: 12 [9cba]21.byte $21; A9 [9cbb]86.byte $86; Note length: 6 [9cbc]31.byte $31; A9 [9cbd]00.byte $00; Rest [9cbe]31.byte $31; A9 [9cbf]00.byte $00; Rest [9cc0]31.byte $31; A9 [9cc1]00.byte $00; Rest [9cc2]8c.byte $8c; Note length: 12 [9cc3]21.byte $21; A9 [9cc4]86.byte $86; Note length: 6 [9cc5]31.byte $31; A9 [9cc6]00.byte $00; Rest [9cc7]31.byte $31; A9 [9cc8]00.byte $00; Rest [9cc9]8c.byte $8c; Note length: 12 [9cca]21.byte $21; A9 [9ccb]86.byte $86; Note length: 6 [9ccc]31.byte $31; A9 [9ccd]00.byte $00; Rest [9cce]8c.byte $8c; Note length: 12 [9ccf]21.byte $21; A9 [9cd0]86.byte $86; Note length: 6 [9cd1]31.byte $31; A9 [9cd2]00.byte $00; Rest [9cd3]00.byte $00; Rest [9cd4]00.byte $00; Rest [9cd5]31.byte $31; A9 [9cd6]00.byte $00; Rest [9cd7]00.byte $00; Rest [9cd8]00.byte $00; Rest [9cd9]8c.byte $8c; Note length: 12 [9cda]21.byte $21; A9 [9cdb]21.byte $21; A9 [9cdc]21.byte $21; A9 [9cdd]21.byte $21; A9 [9cde]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9cdf]01.byte $01; '- 1 loop [9ce0]8c.byte $8c; Note length: 12 [9ce1]00.byte $00; Rest [9ce2]86.byte $86; Note length: 6 [9ce3]31.byte $31; A9 [9ce4]31.byte $31; A9 [9ce5]8c.byte $8c; Note length: 12 [9ce6]21.byte $21; A9 [9ce7]00.byte $00; Rest [9ce8]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9ce9]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [9cea]02.byte $02; '- 2 loops [9ceb]b0.byte $b0; Note length: 48 [9cec]00.byte $00; Rest [9ced]8c.byte $8c; Note length: 12 [9cee]00.byte $00; Rest [9cef]31.byte $31; A9 [9cf0]86.byte $86; Note length: 6 [9cf1]31.byte $31; A9 [9cf2]31.byte $31; A9 [9cf3]31.byte $31; A9 [9cf4]00.byte $00; Rest [9cf5]8c.byte $8c; Note length: 12 [9cf6]00.byte $00; Rest [9cf7]00.byte $00; Rest [9cf8]31.byte $31; A9 [9cf9]00.byte $00; Rest [9cfa]00.byte $00; Rest [9cfb]31.byte $31; A9 [9cfc]00.byte $00; Rest [9cfd]00.byte $00; Rest [9cfe]00.byte $00; Rest [9cff]00.byte $00; Rest [9d00]31.byte $31; A9 [9d01]00.byte $00; Rest [9d02]00.byte $00; Rest [9d03]31.byte $31; A9 [9d04]00.byte $00; Rest [9d05]00.byte $00; Rest [9d06]00.byte $00; Rest [9d07]00.byte $00; Rest [9d08]31.byte $31; A9 [9d09]00.byte $00; Rest [9d0a]00.byte $00; Rest [9d0b]31.byte $31; A9 [9d0c]00.byte $00; Rest [9d0d]00.byte $00; Rest [9d0e]00.byte $00; Rest [9d0f]00.byte $00; Rest [9d10]31.byte $31; A9 [9d11]00.byte $00; Rest [9d12]00.byte $00; Rest [9d13]31.byte $31; A9 [9d14]00.byte $00; Rest [9d15]86.byte $86; Note length: 6 [9d16]31.byte $31; A9 [9d17]31.byte $31; A9 [9d18]8c.byte $8c; Note length: 12 [9d19]00.byte $00; Rest [9d1a]00.byte $00; Rest [9d1b]31.byte $31; A9 [9d1c]00.byte $00; Rest [9d1d]00.byte $00; Rest [9d1e]31.byte $31; A9 [9d1f]00.byte $00; Rest [9d20]00.byte $00; Rest [9d21]00.byte $00; Rest [9d22]00.byte $00; Rest [9d23]31.byte $31; A9 [9d24]00.byte $00; Rest [9d25]00.byte $00; Rest [9d26]31.byte $31; A9 [9d27]00.byte $00; Rest [9d28]00.byte $00; Rest [9d29]00.byte $00; Rest [9d2a]00.byte $00; Rest [9d2b]31.byte $31; A9 [9d2c]00.byte $00; Rest [9d2d]00.byte $00; Rest [9d2e]31.byte $31; A9 [9d2f]31.byte $31; A9 [9d30]00.byte $00; Rest [9d31]31.byte $31; A9 [9d32]31.byte $31; A9 [9d33]31.byte $31; A9 [9d34]00.byte $00; Rest [9d35]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9d36]ff.byte MSCRIPT_OP_END; Op: End [9d37]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for Forepaw. ; ; XREFS: ; MSCRIPTS_FOREPAW [$PRG5::8f1b] ;============================================================================
; ; XREFS: ; MSCRIPTS_FOREPAW [$PRG5::8f1b] ;
[9d38]MSCRIPT_FOREPAW_SQ1: [9d38]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9d39]03.byte $03; '- Reduce volume by 3 [9d3a]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9d3b]50.byte $50; '- Duty cycle 1 Constant volume/envelope [9d3c]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9d3d]00.byte $00; '- Mode 0: Linear decay [9d3e]90.byte $90; Note length: 16 [9d3f]1f.byte $1f; G2 [9d40]22.byte $22; A#2 [9d41]2a.byte $2a; F#3 [9d42]26.byte $26; D3 [9d43]1f.byte $1f; G2 [9d44]22.byte $22; A#2 [9d45]2a.byte $2a; F#3 [9d46]26.byte $26; D3 [9d47]1f.byte $1f; G2 [9d48]22.byte $22; A#2 [9d49]2a.byte $2a; F#3 [9d4a]26.byte $26; D3 [9d4b]1f.byte $1f; G2 [9d4c]22.byte $22; A#2 [9d4d]2a.byte $2a; F#3 [9d4e]26.byte $26; D3 [9d4f]f9.byte MSCRIPT_OP_PUSH_ADDR; Op: Save address [9d50]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9d51]02.byte $02; '- 2 iterations [9d52]90.byte $90; Note length: 16 [9d53]1f.byte $1f; G2 [9d54]22.byte $22; A#2 [9d55]2a.byte $2a; F#3 [9d56]26.byte $26; D3 [9d57]1f.byte $1f; G2 [9d58]22.byte $22; A#2 [9d59]2a.byte $2a; F#3 [9d5a]26.byte $26; D3 [9d5b]1f.byte $1f; G2 [9d5c]22.byte $22; A#2 [9d5d]2a.byte $2a; F#3 [9d5e]26.byte $26; D3 [9d5f]1f.byte $1f; G2 [9d60]22.byte $22; A#2 [9d61]2a.byte $2a; F#3 [9d62]26.byte $26; D3 [9d63]1f.byte $1f; G2 [9d64]22.byte $22; A#2 [9d65]2a.byte $2a; F#3 [9d66]26.byte $26; D3 [9d67]1f.byte $1f; G2 [9d68]22.byte $22; A#2 [9d69]2a.byte $2a; F#3 [9d6a]26.byte $26; D3 [9d6b]1f.byte $1f; G2 [9d6c]22.byte $22; A#2 [9d6d]2a.byte $2a; F#3 [9d6e]26.byte $26; D3 [9d6f]1f.byte $1f; G2 [9d70]22.byte $22; A#2 [9d71]2a.byte $2a; F#3 [9d72]26.byte $26; D3 [9d73]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9d74]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9d75]02.byte $02; '- 2 iterations [9d76]a0.byte $a0; Note length: 32 [9d77]32.byte $32; D4 [9d78]33.byte $33; D#4 [9d79]c0.byte $c0; Note length: 64 [9d7a]38.byte $38; G#4 [9d7b]a0.byte $a0; Note length: 32 [9d7c]36.byte $36; F#4 [9d7d]37.byte $37; G4 [9d7e]c0.byte $c0; Note length: 64 [9d7f]3e.byte $3e; D5 [9d80]a0.byte $a0; Note length: 32 [9d81]3d.byte $3d; C#5 [9d82]39.byte $39; A4 [9d83]3c.byte $3c; C5 [9d84]3b.byte $3b; B4 [9d85]c0.byte $c0; Note length: 64 [9d86]37.byte $37; G4 [9d87]32.byte $32; D4 [9d88]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9d89]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9d8a]02.byte $02; '- 2 iterations [9d8b]90.byte $90; Note length: 16 [9d8c]26.byte $26; D3 [9d8d]29.byte $29; F3 [9d8e]2c.byte $2c; G#3 [9d8f]34.byte $34; E4 [9d90]2c.byte $2c; G#3 [9d91]29.byte $29; F3 [9d92]26.byte $26; D3 [9d93]29.byte $29; F3 [9d94]26.byte $26; D3 [9d95]29.byte $29; F3 [9d96]2c.byte $2c; G#3 [9d97]34.byte $34; E4 [9d98]2c.byte $2c; G#3 [9d99]29.byte $29; F3 [9d9a]26.byte $26; D3 [9d9b]29.byte $29; F3 [9d9c]2b.byte $2b; G3 [9d9d]2e.byte $2e; A#3 [9d9e]31.byte $31; C#4 [9d9f]39.byte $39; A4 [9da0]31.byte $31; C#4 [9da1]2e.byte $2e; A#3 [9da2]2b.byte $2b; G3 [9da3]2e.byte $2e; A#3 [9da4]2b.byte $2b; G3 [9da5]2e.byte $2e; A#3 [9da6]31.byte $31; C#4 [9da7]39.byte $39; A4 [9da8]31.byte $31; C#4 [9da9]2e.byte $2e; A#3 [9daa]2b.byte $2b; G3 [9dab]25.byte $25; C#3 [9dac]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9dad]fe.byte MSCRIPT_OP_POP_ADDR; Op: Jump to saved address [9dae]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_FOREPAW [$PRG5::8f1d] ;
[9daf]MSCRIPT_FOREPAW_SQ2: [9daf]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9db0]05.byte $05; '- Reduce volume by 5 [9db1]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9db2]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9db3]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9db4]00.byte $00; '- Mode 0: Linear decay [9db5]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9db6]02.byte $02; '- 2 [9db7]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9db8]11.byte $11; '- Duty cycle 0 Constant volume/envelope [9db9]88.byte $88; Note length: 8 [9dba]00.byte $00; Rest [9dbb]90.byte $90; Note length: 16 [9dbc]1f.byte $1f; G2 [9dbd]22.byte $22; A#2 [9dbe]2a.byte $2a; F#3 [9dbf]26.byte $26; D3 [9dc0]1f.byte $1f; G2 [9dc1]22.byte $22; A#2 [9dc2]2a.byte $2a; F#3 [9dc3]90.byte $90; Note length: 16 [9dc4]26.byte $26; D3 [9dc5]90.byte $90; Note length: 16 [9dc6]1f.byte $1f; G2 [9dc7]22.byte $22; A#2 [9dc8]2a.byte $2a; F#3 [9dc9]26.byte $26; D3 [9dca]1f.byte $1f; G2 [9dcb]22.byte $22; A#2 [9dcc]2a.byte $2a; F#3 [9dcd]88.byte $88; Note length: 8 [9dce]26.byte $26; D3 [9dcf]f9.byte MSCRIPT_OP_PUSH_ADDR; Op: Save address [9dd0]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9dd1]02.byte $02; '- 2 iterations [9dd2]88.byte $88; Note length: 8 [9dd3]00.byte $00; Rest [9dd4]90.byte $90; Note length: 16 [9dd5]1f.byte $1f; G2 [9dd6]22.byte $22; A#2 [9dd7]2a.byte $2a; F#3 [9dd8]26.byte $26; D3 [9dd9]1f.byte $1f; G2 [9dda]22.byte $22; A#2 [9ddb]2a.byte $2a; F#3 [9ddc]90.byte $90; Note length: 16 [9ddd]26.byte $26; D3 [9dde]90.byte $90; Note length: 16 [9ddf]1f.byte $1f; G2 [9de0]22.byte $22; A#2 [9de1]2a.byte $2a; F#3 [9de2]26.byte $26; D3 [9de3]1f.byte $1f; G2 [9de4]22.byte $22; A#2 [9de5]2a.byte $2a; F#3 [9de6]90.byte $90; Note length: 16 [9de7]26.byte $26; D3 [9de8]90.byte $90; Note length: 16 [9de9]1f.byte $1f; G2 [9dea]22.byte $22; A#2 [9deb]2a.byte $2a; F#3 [9dec]26.byte $26; D3 [9ded]1f.byte $1f; G2 [9dee]22.byte $22; A#2 [9def]2a.byte $2a; F#3 [9df0]90.byte $90; Note length: 16 [9df1]26.byte $26; D3 [9df2]90.byte $90; Note length: 16 [9df3]1f.byte $1f; G2 [9df4]22.byte $22; A#2 [9df5]2a.byte $2a; F#3 [9df6]26.byte $26; D3 [9df7]1f.byte $1f; G2 [9df8]22.byte $22; A#2 [9df9]2a.byte $2a; F#3 [9dfa]88.byte $88; Note length: 8 [9dfb]26.byte $26; D3 [9dfc]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9dfd]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9dfe]02.byte $02; '- 2 iterations [9dff]88.byte $88; Note length: 8 [9e00]00.byte $00; Rest [9e01]32.byte $32; D4 [9e02]2d.byte $2d; A3 [9e03]2a.byte $2a; F#3 [9e04]28.byte $28; E3 [9e05]33.byte $33; D#4 [9e06]2d.byte $2d; A3 [9e07]2a.byte $2a; F#3 [9e08]28.byte $28; E3 [9e09]38.byte $38; G#4 [9e0a]32.byte $32; D4 [9e0b]2d.byte $2d; A3 [9e0c]2a.byte $2a; F#3 [9e0d]28.byte $28; E3 [9e0e]26.byte $26; D3 [9e0f]21.byte $21; A2 [9e10]1f.byte $1f; G2 [9e11]36.byte $36; F#4 [9e12]32.byte $32; D4 [9e13]2d.byte $2d; A3 [9e14]2a.byte $2a; F#3 [9e15]37.byte $37; G4 [9e16]32.byte $32; D4 [9e17]2c.byte $2c; G#3 [9e18]28.byte $28; E3 [9e19]3e.byte $3e; D5 [9e1a]3b.byte $3b; B4 [9e1b]34.byte $34; E4 [9e1c]2f.byte $2f; B3 [9e1d]2a.byte $2a; F#3 [9e1e]27.byte $27; D#3 [9e1f]26.byte $26; D3 [9e20]26.byte $26; D3 [9e21]3d.byte $3d; C#5 [9e22]39.byte $39; A4 [9e23]36.byte $36; F#4 [9e24]32.byte $32; D4 [9e25]39.byte $39; A4 [9e26]36.byte $36; F#4 [9e27]32.byte $32; D4 [9e28]2d.byte $2d; A3 [9e29]3c.byte $3c; C5 [9e2a]39.byte $39; A4 [9e2b]34.byte $34; E4 [9e2c]2d.byte $2d; A3 [9e2d]3b.byte $3b; B4 [9e2e]36.byte $36; F#4 [9e2f]34.byte $34; E4 [9e30]2f.byte $2f; B3 [9e31]37.byte $37; G4 [9e32]32.byte $32; D4 [9e33]2f.byte $2f; B3 [9e34]2b.byte $2b; G3 [9e35]2a.byte $2a; F#3 [9e36]26.byte $26; D3 [9e37]23.byte $23; B2 [9e38]1f.byte $1f; G2 [9e39]32.byte $32; D4 [9e3a]2f.byte $2f; B3 [9e3b]2b.byte $2b; G3 [9e3c]28.byte $28; E3 [9e3d]26.byte $26; D3 [9e3e]23.byte $23; B2 [9e3f]1f.byte $1f; G2 [9e40]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9e41]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9e42]02.byte $02; '- Reduce volume by 2 [9e43]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9e44]02.byte $02; '- 2 iterations [9e45]88.byte $88; Note length: 8 [9e46]00.byte $00; Rest [9e47]90.byte $90; Note length: 16 [9e48]26.byte $26; D3 [9e49]29.byte $29; F3 [9e4a]2c.byte $2c; G#3 [9e4b]34.byte $34; E4 [9e4c]2c.byte $2c; G#3 [9e4d]29.byte $29; F3 [9e4e]26.byte $26; D3 [9e4f]88.byte $88; Note length: 8 [9e50]29.byte $29; F3 [9e51]29.byte $29; F3 [9e52]90.byte $90; Note length: 16 [9e53]26.byte $26; D3 [9e54]29.byte $29; F3 [9e55]2c.byte $2c; G#3 [9e56]34.byte $34; E4 [9e57]2c.byte $2c; G#3 [9e58]29.byte $29; F3 [9e59]26.byte $26; D3 [9e5a]90.byte $90; Note length: 16 [9e5b]29.byte $29; F3 [9e5c]90.byte $90; Note length: 16 [9e5d]2b.byte $2b; G3 [9e5e]2e.byte $2e; A#3 [9e5f]31.byte $31; C#4 [9e60]39.byte $39; A4 [9e61]31.byte $31; C#4 [9e62]2e.byte $2e; A#3 [9e63]2b.byte $2b; G3 [9e64]90.byte $90; Note length: 16 [9e65]2e.byte $2e; A#3 [9e66]90.byte $90; Note length: 16 [9e67]2b.byte $2b; G3 [9e68]2e.byte $2e; A#3 [9e69]31.byte $31; C#4 [9e6a]39.byte $39; A4 [9e6b]31.byte $31; C#4 [9e6c]2e.byte $2e; A#3 [9e6d]2b.byte $2b; G3 [9e6e]88.byte $88; Note length: 8 [9e6f]25.byte $25; C#3 [9e70]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9e71]fe.byte MSCRIPT_OP_POP_ADDR; Op: Jump to saved address [9e72]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_FOREPAW [$PRG5::8f1f] ;
[9e73]MSCRIPT_FOREPAW_TRI: [9e73]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [9e74]80.byte $80; '- 128 ticks [9e75]00.byte $00; Rest [9e76]00.byte $00; Rest [9e77]f9.byte MSCRIPT_OP_PUSH_ADDR; Op: Save address [9e78]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9e79]02.byte $02; '- 2 iterations [9e7a]90.byte $90; Note length: 16 [9e7b]36.byte $36; F#6 [9e7c]37.byte $37; G6 [9e7d]c0.byte $c0; Note length: 64 [9e7e]39.byte $39; A6 [9e7f]90.byte $90; Note length: 16 [9e80]36.byte $36; F#6 [9e81]37.byte $37; G6 [9e82]c0.byte $c0; Note length: 64 [9e83]34.byte $34; E6 [9e84]2d.byte $2d; A5 [9e85]90.byte $90; Note length: 16 [9e86]36.byte $36; F#6 [9e87]37.byte $37; G6 [9e88]c0.byte $c0; Note length: 64 [9e89]39.byte $39; A6 [9e8a]90.byte $90; Note length: 16 [9e8b]36.byte $36; F#6 [9e8c]37.byte $37; G6 [9e8d]34.byte $34; E6 [9e8e]33.byte $33; D#6 [9e8f]32.byte $32; D6 [9e90]d0.byte $d0; Note length: 80 [9e91]2d.byte $2d; A5 [9e92]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9e93]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9e94]04.byte $04; '- 4 iterations [9e95]88.byte $88; Note length: 8 [9e96]1a.byte $1a; D4 [9e97]00.byte $00; Rest [9e98]a0.byte $a0; Note length: 32 [9e99]1a.byte $1a; D4 [9e9a]88.byte $88; Note length: 8 [9e9b]1a.byte $1a; D4 [9e9c]1a.byte $1a; D4 [9e9d]1a.byte $1a; D4 [9e9e]00.byte $00; Rest [9e9f]a0.byte $a0; Note length: 32 [9ea0]1a.byte $1a; D4 [9ea1]88.byte $88; Note length: 8 [9ea2]1a.byte $1a; D4 [9ea3]1a.byte $1a; D4 [9ea4]1a.byte $1a; D4 [9ea5]00.byte $00; Rest [9ea6]a0.byte $a0; Note length: 32 [9ea7]1a.byte $1a; D4 [9ea8]88.byte $88; Note length: 8 [9ea9]1a.byte $1a; D4 [9eaa]1a.byte $1a; D4 [9eab]1a.byte $1a; D4 [9eac]00.byte $00; Rest [9ead]a0.byte $a0; Note length: 32 [9eae]1a.byte $1a; D4 [9eaf]88.byte $88; Note length: 8 [9eb0]1a.byte $1a; D4 [9eb1]1a.byte $1a; D4 [9eb2]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9eb3]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9eb4]02.byte $02; '- 2 iterations [9eb5]b0.byte $b0; Note length: 48 [9eb6]00.byte $00; Rest [9eb7]88.byte $88; Note length: 8 [9eb8]28.byte $28; E5 [9eb9]20.byte $20; G#4 [9eba]90.byte $90; Note length: 16 [9ebb]1a.byte $1a; D4 [9ebc]1d.byte $1d; F4 [9ebd]a0.byte $a0; Note length: 32 [9ebe]00.byte $00; Rest [9ebf]b0.byte $b0; Note length: 48 [9ec0]00.byte $00; Rest [9ec1]88.byte $88; Note length: 8 [9ec2]28.byte $28; E5 [9ec3]20.byte $20; G#4 [9ec4]90.byte $90; Note length: 16 [9ec5]1a.byte $1a; D4 [9ec6]1d.byte $1d; F4 [9ec7]a0.byte $a0; Note length: 32 [9ec8]00.byte $00; Rest [9ec9]b0.byte $b0; Note length: 48 [9eca]00.byte $00; Rest [9ecb]88.byte $88; Note length: 8 [9ecc]2d.byte $2d; A5 [9ecd]25.byte $25; C#5 [9ece]90.byte $90; Note length: 16 [9ecf]1f.byte $1f; G4 [9ed0]22.byte $22; A#4 [9ed1]a0.byte $a0; Note length: 32 [9ed2]00.byte $00; Rest [9ed3]b0.byte $b0; Note length: 48 [9ed4]00.byte $00; Rest [9ed5]88.byte $88; Note length: 8 [9ed6]2d.byte $2d; A5 [9ed7]25.byte $25; C#5 [9ed8]90.byte $90; Note length: 16 [9ed9]1f.byte $1f; G4 [9eda]22.byte $22; A#4 [9edb]a0.byte $a0; Note length: 32 [9edc]19.byte $19; C#4 [9edd]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9ede]fe.byte MSCRIPT_OP_POP_ADDR; Op: Jump to saved address [9edf]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_FOREPAW [$PRG5::8f21] ;
[9ee0]MSCRIPT_FOREPAW_NOISE: [9ee0]ff ff.byte $ff,$ff; byte
;============================================================================ ; Music for Tower. ; ; XREFS: ; MSCRIPTS_TOWER [$PRG5::8f23] ;============================================================================
; ; XREFS: ; MSCRIPTS_TOWER [$PRG5::8f23] ;
[9ee2]MSCRIPT_TOWER_SQ1: [9ee2]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9ee3]02.byte $02; '- Reduce volume by 2 [9ee4]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9ee5]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9ee6]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9ee7]00.byte $00; '- Mode 0: Linear decay [9ee8]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9ee9]02.byte $02; '- 2 iterations [9eea]88.byte $88; Note length: 8 [9eeb]00.byte $00; Rest [9eec]3c.byte $3c; C5 [9eed]3b.byte $3b; B4 [9eee]37.byte $37; G4 [9eef]00.byte $00; Rest [9ef0]00.byte $00; Rest [9ef1]00.byte $00; Rest [9ef2]00.byte $00; Rest [9ef3]00.byte $00; Rest [9ef4]3a.byte $3a; A#4 [9ef5]39.byte $39; A4 [9ef6]35.byte $35; F4 [9ef7]38.byte $38; G#4 [9ef8]00.byte $00; Rest [9ef9]00.byte $00; Rest [9efa]00.byte $00; Rest [9efb]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9efc]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9efd]02.byte $02; '- 2 iterations [9efe]88.byte $88; Note length: 8 [9eff]00.byte $00; Rest [9f00]3c.byte $3c; C5 [9f01]3b.byte $3b; B4 [9f02]98.byte $98; Note length: 24 [9f03]37.byte $37; G4 [9f04]88.byte $88; Note length: 8 [9f05]38.byte $38; G#4 [9f06]37.byte $37; G4 [9f07]00.byte $00; Rest [9f08]3a.byte $3a; A#4 [9f09]39.byte $39; A4 [9f0a]35.byte $35; F4 [9f0b]38.byte $38; G#4 [9f0c]39.byte $39; A4 [9f0d]38.byte $38; G#4 [9f0e]00.byte $00; Rest [9f0f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9f10]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9f11]02.byte $02; '- 2 iterations [9f12]88.byte $88; Note length: 8 [9f13]35.byte $35; F4 [9f14]35.byte $35; F4 [9f15]35.byte $35; F4 [9f16]35.byte $35; F4 [9f17]90.byte $90; Note length: 16 [9f18]34.byte $34; E4 [9f19]00.byte $00; Rest [9f1a]b0.byte $b0; Note length: 48 [9f1b]00.byte $00; Rest [9f1c]88.byte $88; Note length: 8 [9f1d]35.byte $35; F4 [9f1e]35.byte $35; F4 [9f1f]35.byte $35; F4 [9f20]35.byte $35; F4 [9f21]90.byte $90; Note length: 16 [9f22]34.byte $34; E4 [9f23]c0.byte $c0; Note length: 64 [9f24]00.byte $00; Rest [9f25]90.byte $90; Note length: 16 [9f26]35.byte $35; F4 [9f27]37.byte $37; G4 [9f28]37.byte $37; G4 [9f29]38.byte $38; G#4 [9f2a]38.byte $38; G#4 [9f2b]3a.byte $3a; A#4 [9f2c]3a.byte $3a; A#4 [9f2d]3c.byte $3c; C5 [9f2e]3c.byte $3c; C5 [9f2f]3d.byte $3d; C#5 [9f30]a0.byte $a0; Note length: 32 [9f31]35.byte $35; F4 [9f32]34.byte $34; E4 [9f33]00.byte $00; Rest [9f34]30.byte $30; C4 [9f35]88.byte $88; Note length: 8 [9f36]35.byte $35; F4 [9f37]37.byte $37; G4 [9f38]00.byte $00; Rest [9f39]37.byte $37; G4 [9f3a]00.byte $00; Rest [9f3b]37.byte $37; G4 [9f3c]35.byte $35; F4 [9f3d]30.byte $30; C4 [9f3e]37.byte $37; G4 [9f3f]37.byte $37; G4 [9f40]35.byte $35; F4 [9f41]00.byte $00; Rest [9f42]37.byte $37; G4 [9f43]00.byte $00; Rest [9f44]38.byte $38; G#4 [9f45]37.byte $37; G4 [9f46]e0.byte $e0; Note length: 96 [9f47]00.byte $00; Rest [9f48]88.byte $88; Note length: 8 [9f49]30.byte $30; C4 [9f4a]31.byte $31; C#4 [9f4b]30.byte $30; C4 [9f4c]00.byte $00; Rest [9f4d]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9f4e]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9f4f]02.byte $02; '- 2 iterations [9f50]98.byte $98; Note length: 24 [9f51]31.byte $31; C#4 [9f52]30.byte $30; C4 [9f53]90.byte $90; Note length: 16 [9f54]35.byte $35; F4 [9f55]a0.byte $a0; Note length: 32 [9f56]34.byte $34; E4 [9f57]35.byte $35; F4 [9f58]98.byte $98; Note length: 24 [9f59]37.byte $37; G4 [9f5a]34.byte $34; E4 [9f5b]90.byte $90; Note length: 16 [9f5c]35.byte $35; F4 [9f5d]a0.byte $a0; Note length: 32 [9f5e]3d.byte $3d; C#5 [9f5f]88.byte $88; Note length: 8 [9f60]37.byte $37; G4 [9f61]35.byte $35; F4 [9f62]34.byte $34; E4 [9f63]33.byte $33; D#4 [9f64]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9f65]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9f66]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TOWER [$PRG5::8f25] ;
[9f67]MSCRIPT_TOWER_SQ2: [9f67]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9f68]02.byte $02; '- Reduce volume by 2 [9f69]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [9f6a]90.byte $90; '- Duty cycle 2 Constant volume/envelope [9f6b]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [9f6c]00.byte $00; '- Mode 0: Linear decay [9f6d]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9f6e]04.byte $04; '- 4 [9f6f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9f70]02.byte $02; '- 2 iterations [9f71]88.byte $88; Note length: 8 [9f72]00.byte $00; Rest [9f73]30.byte $30; C4 [9f74]2f.byte $2f; B3 [9f75]2b.byte $2b; G3 [9f76]00.byte $00; Rest [9f77]00.byte $00; Rest [9f78]00.byte $00; Rest [9f79]00.byte $00; Rest [9f7a]00.byte $00; Rest [9f7b]2e.byte $2e; A#3 [9f7c]2d.byte $2d; A3 [9f7d]29.byte $29; F3 [9f7e]2c.byte $2c; G#3 [9f7f]00.byte $00; Rest [9f80]00.byte $00; Rest [9f81]00.byte $00; Rest [9f82]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9f83]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9f84]00.byte $00; '- 0 [9f85]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9f86]02.byte $02; '- 2 iterations [9f87]88.byte $88; Note length: 8 [9f88]00.byte $00; Rest [9f89]37.byte $37; G4 [9f8a]36.byte $36; F#4 [9f8b]98.byte $98; Note length: 24 [9f8c]32.byte $32; D4 [9f8d]88.byte $88; Note length: 8 [9f8e]33.byte $33; D#4 [9f8f]32.byte $32; D4 [9f90]00.byte $00; Rest [9f91]35.byte $35; F4 [9f92]34.byte $34; E4 [9f93]30.byte $30; C4 [9f94]33.byte $33; D#4 [9f95]34.byte $34; E4 [9f96]33.byte $33; D#4 [9f97]00.byte $00; Rest [9f98]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9f99]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9f9a]02.byte $02; '- 2 iterations [9f9b]88.byte $88; Note length: 8 [9f9c]30.byte $30; C4 [9f9d]30.byte $30; C4 [9f9e]30.byte $30; C4 [9f9f]30.byte $30; C4 [9fa0]90.byte $90; Note length: 16 [9fa1]2f.byte $2f; B3 [9fa2]00.byte $00; Rest [9fa3]b0.byte $b0; Note length: 48 [9fa4]00.byte $00; Rest [9fa5]88.byte $88; Note length: 8 [9fa6]00.byte $00; Rest [9fa7]00.byte $00; Rest [9fa8]30.byte $30; C4 [9fa9]30.byte $30; C4 [9faa]90.byte $90; Note length: 16 [9fab]2f.byte $2f; B3 [9fac]c0.byte $c0; Note length: 64 [9fad]00.byte $00; Rest [9fae]90.byte $90; Note length: 16 [9faf]2c.byte $2c; G#3 [9fb0]30.byte $30; C4 [9fb1]30.byte $30; C4 [9fb2]35.byte $35; F4 [9fb3]35.byte $35; F4 [9fb4]37.byte $37; G4 [9fb5]37.byte $37; G4 [9fb6]38.byte $38; G#4 [9fb7]38.byte $38; G#4 [9fb8]3a.byte $3a; A#4 [9fb9]a0.byte $a0; Note length: 32 [9fba]30.byte $30; C4 [9fbb]2f.byte $2f; B3 [9fbc]00.byte $00; Rest [9fbd]2e.byte $2e; A#3 [9fbe]88.byte $88; Note length: 8 [9fbf]30.byte $30; C4 [9fc0]34.byte $34; E4 [9fc1]00.byte $00; Rest [9fc2]34.byte $34; E4 [9fc3]00.byte $00; Rest [9fc4]34.byte $34; E4 [9fc5]30.byte $30; C4 [9fc6]2c.byte $2c; G#3 [9fc7]34.byte $34; E4 [9fc8]34.byte $34; E4 [9fc9]32.byte $32; D4 [9fca]00.byte $00; Rest [9fcb]34.byte $34; E4 [9fcc]00.byte $00; Rest [9fcd]35.byte $35; F4 [9fce]34.byte $34; E4 [9fcf]e0.byte $e0; Note length: 96 [9fd0]00.byte $00; Rest [9fd1]88.byte $88; Note length: 8 [9fd2]30.byte $30; C4 [9fd3]2f.byte $2f; B3 [9fd4]2e.byte $2e; A#3 [9fd5]00.byte $00; Rest [9fd6]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9fd7]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9fd8]07.byte $07; '- Reduce volume by 7 [9fd9]ee.byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias [9fda]01.byte $01; '- 1 [9fdb]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9fdc]02.byte $02; '- 2 iterations [9fdd]88.byte $88; Note length: 8 [9fde]00.byte $00; Rest [9fdf]98.byte $98; Note length: 24 [9fe0]31.byte $31; C#4 [9fe1]30.byte $30; C4 [9fe2]90.byte $90; Note length: 16 [9fe3]35.byte $35; F4 [9fe4]a0.byte $a0; Note length: 32 [9fe5]34.byte $34; E4 [9fe6]a0.byte $a0; Note length: 32 [9fe7]35.byte $35; F4 [9fe8]98.byte $98; Note length: 24 [9fe9]37.byte $37; G4 [9fea]34.byte $34; E4 [9feb]90.byte $90; Note length: 16 [9fec]35.byte $35; F4 [9fed]9c.byte $9c; Note length: 28 [9fee]3d.byte $3d; C#5 [9fef]88.byte $88; Note length: 8 [9ff0]37.byte $37; G4 [9ff1]35.byte $35; F4 [9ff2]34.byte $34; E4 [9ff3]84.byte $84; Note length: 4 [9ff4]33.byte $33; D#4 [9ff5]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [9ff6]04.byte $04; '- Reduce volume by 4 [9ff7]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [9ff8]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [9ff9]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TOWER [$PRG5::8f27] ;
[9ffa]MSCRIPT_TOWER_TRI: [9ffa]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [9ffb]02.byte $02; '- 2 iterations [9ffc]88.byte $88; Note length: 8 [9ffd]18.byte $18; C4 [9ffe]00.byte $00; Rest [9fff]00.byte $00; Rest [a000]18.byte $18; C4 [a001]00.byte $00; Rest [a002]00.byte $00; Rest [a003]18.byte $18; C4 [a004]00.byte $00; Rest [a005]18.byte $18; C4 [a006]00.byte $00; Rest [a007]00.byte $00; Rest [a008]18.byte $18; C4 [a009]00.byte $00; Rest [a00a]00.byte $00; Rest [a00b]18.byte $18; C4 [a00c]18.byte $18; C4 [a00d]90.byte $90; Note length: 16 [a00e]18.byte $18; C4 [a00f]88.byte $88; Note length: 8 [a010]00.byte $00; Rest [a011]18.byte $18; C4 [a012]00.byte $00; Rest [a013]00.byte $00; Rest [a014]90.byte $90; Note length: 16 [a015]18.byte $18; C4 [a016]18.byte $18; C4 [a017]88.byte $88; Note length: 8 [a018]00.byte $00; Rest [a019]18.byte $18; C4 [a01a]00.byte $00; Rest [a01b]0c.byte $0c; C3 [a01c]18.byte $18; C4 [a01d]0c.byte $0c; C3 [a01e]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a01f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a020]02.byte $02; '- 2 iterations [a021]88.byte $88; Note length: 8 [a022]14.byte $14; G#3 [a023]14.byte $14; G#3 [a024]14.byte $14; G#3 [a025]14.byte $14; G#3 [a026]90.byte $90; Note length: 16 [a027]13.byte $13; G3 [a028]88.byte $88; Note length: 8 [a029]18.byte $18; C4 [a02a]19.byte $19; C#4 [a02b]00.byte $00; Rest [a02c]19.byte $19; C#4 [a02d]18.byte $18; C4 [a02e]13.byte $13; G3 [a02f]90.byte $90; Note length: 16 [a030]0c.byte $0c; C3 [a031]88.byte $88; Note length: 8 [a032]00.byte $00; Rest [a033]00.byte $00; Rest [a034]14.byte $14; G#3 [a035]14.byte $14; G#3 [a036]90.byte $90; Note length: 16 [a037]13.byte $13; G3 [a038]00.byte $00; Rest [a039]88.byte $88; Note length: 8 [a03a]17.byte $17; B3 [a03b]18.byte $18; C4 [a03c]0c.byte $0c; C3 [a03d]0d.byte $0d; C#3 [a03e]0e.byte $0e; D3 [a03f]00.byte $00; Rest [a040]90.byte $90; Note length: 16 [a041]00.byte $00; Rest [a042]88.byte $88; Note length: 8 [a043]20.byte $20; G#4 [a044]18.byte $18; C4 [a045]11.byte $11; F3 [a046]11.byte $11; F3 [a047]00.byte $00; Rest [a048]11.byte $11; F3 [a049]1d.byte $1d; F4 [a04a]1d.byte $1d; F4 [a04b]1c.byte $1c; E4 [a04c]18.byte $18; C4 [a04d]11.byte $11; F3 [a04e]11.byte $11; F3 [a04f]00.byte $00; Rest [a050]11.byte $11; F3 [a051]1d.byte $1d; F4 [a052]1d.byte $1d; F4 [a053]1c.byte $1c; E4 [a054]18.byte $18; C4 [a055]a0.byte $a0; Note length: 32 [a056]14.byte $14; G#3 [a057]90.byte $90; Note length: 16 [a058]13.byte $13; G3 [a059]88.byte $88; Note length: 8 [a05a]1f.byte $1f; G4 [a05b]13.byte $13; G3 [a05c]a0.byte $a0; Note length: 32 [a05d]00.byte $00; Rest [a05e]98.byte $98; Note length: 24 [a05f]1f.byte $1f; G4 [a060]88.byte $88; Note length: 8 [a061]18.byte $18; C4 [a062]90.byte $90; Note length: 16 [a063]0c.byte $0c; C3 [a064]88.byte $88; Note length: 8 [a065]00.byte $00; Rest [a066]18.byte $18; C4 [a067]00.byte $00; Rest [a068]18.byte $18; C4 [a069]0c.byte $0c; C3 [a06a]0c.byte $0c; C3 [a06b]90.byte $90; Note length: 16 [a06c]0c.byte $0c; C3 [a06d]88.byte $88; Note length: 8 [a06e]00.byte $00; Rest [a06f]18.byte $18; C4 [a070]00.byte $00; Rest [a071]18.byte $18; C4 [a072]0c.byte $0c; C3 [a073]0c.byte $0c; C3 [a074]00.byte $00; Rest [a075]00.byte $00; Rest [a076]1f.byte $1f; G4 [a077]24.byte $24; C5 [a078]1e.byte $1e; F#4 [a079]1d.byte $1d; F4 [a07a]1c.byte $1c; E4 [a07b]14.byte $14; G#3 [a07c]a0.byte $a0; Note length: 32 [a07d]13.byte $13; G3 [a07e]88.byte $88; Note length: 8 [a07f]18.byte $18; C4 [a080]17.byte $17; B3 [a081]18.byte $18; C4 [a082]00.byte $00; Rest [a083]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a084]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a085]02.byte $02; '- 2 iterations [a086]90.byte $90; Note length: 16 [a087]13.byte $13; G3 [a088]88.byte $88; Note length: 8 [a089]00.byte $00; Rest [a08a]90.byte $90; Note length: 16 [a08b]13.byte $13; G3 [a08c]88.byte $88; Note length: 8 [a08d]00.byte $00; Rest [a08e]13.byte $13; G3 [a08f]00.byte $00; Rest [a090]13.byte $13; G3 [a091]00.byte $00; Rest [a092]00.byte $00; Rest [a093]13.byte $13; G3 [a094]00.byte $00; Rest [a095]00.byte $00; Rest [a096]13.byte $13; G3 [a097]13.byte $13; G3 [a098]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a099]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a09a]02.byte $02; '- 2 iterations [a09b]90.byte $90; Note length: 16 [a09c]13.byte $13; G3 [a09d]88.byte $88; Note length: 8 [a09e]1f.byte $1f; G4 [a09f]90.byte $90; Note length: 16 [a0a0]13.byte $13; G3 [a0a1]88.byte $88; Note length: 8 [a0a2]1f.byte $1f; G4 [a0a3]13.byte $13; G3 [a0a4]1f.byte $1f; G4 [a0a5]13.byte $13; G3 [a0a6]13.byte $13; G3 [a0a7]1f.byte $1f; G4 [a0a8]90.byte $90; Note length: 16 [a0a9]13.byte $13; G3 [a0aa]88.byte $88; Note length: 8 [a0ab]1f.byte $1f; G4 [a0ac]13.byte $13; G3 [a0ad]1f.byte $1f; G4 [a0ae]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a0af]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a0b0]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TOWER [$PRG5::8f29] ;
[a0b1]MSCRIPT_TOWER_NOISE: [a0b1]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a0b2]04.byte $04; '- 4 iterations [a0b3]88.byte $88; Note length: 8 [a0b4]21.byte $21; A9 [a0b5]31.byte $31; A9 [a0b6]31.byte $31; A9 [a0b7]21.byte $21; A9 [a0b8]31.byte $31; A9 [a0b9]31.byte $31; A9 [a0ba]21.byte $21; A9 [a0bb]31.byte $31; A9 [a0bc]21.byte $21; A9 [a0bd]31.byte $31; A9 [a0be]31.byte $31; A9 [a0bf]21.byte $21; A9 [a0c0]31.byte $31; A9 [a0c1]31.byte $31; A9 [a0c2]21.byte $21; A9 [a0c3]31.byte $31; A9 [a0c4]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a0c5]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a0c6]02.byte $02; '- 2 iterations [a0c7]88.byte $88; Note length: 8 [a0c8]21.byte $21; A9 [a0c9]21.byte $21; A9 [a0ca]21.byte $21; A9 [a0cb]21.byte $21; A9 [a0cc]21.byte $21; A9 [a0cd]00.byte $00; Rest [a0ce]31.byte $31; A9 [a0cf]31.byte $31; A9 [a0d0]31.byte $31; A9 [a0d1]31.byte $31; A9 [a0d2]31.byte $31; A9 [a0d3]31.byte $31; A9 [a0d4]21.byte $21; A9 [a0d5]00.byte $00; Rest [a0d6]00.byte $00; Rest [a0d7]21.byte $21; A9 [a0d8]11.byte $11; A9 [a0d9]11.byte $11; A9 [a0da]11.byte $11; A9 [a0db]00.byte $00; Rest [a0dc]85.byte $85; Note length: 5 [a0dd]31.byte $31; A9 [a0de]31.byte $31; A9 [a0df]86.byte $86; Note length: 6 [a0e0]31.byte $31; A9 [a0e1]88.byte $88; Note length: 8 [a0e2]31.byte $31; A9 [a0e3]31.byte $31; A9 [a0e4]31.byte $31; A9 [a0e5]31.byte $31; A9 [a0e6]21.byte $21; A9 [a0e7]00.byte $00; Rest [a0e8]21.byte $21; A9 [a0e9]00.byte $00; Rest [a0ea]21.byte $21; A9 [a0eb]21.byte $21; A9 [a0ec]31.byte $31; A9 [a0ed]00.byte $00; Rest [a0ee]31.byte $31; A9 [a0ef]00.byte $00; Rest [a0f0]31.byte $31; A9 [a0f1]31.byte $31; A9 [a0f2]21.byte $21; A9 [a0f3]00.byte $00; Rest [a0f4]31.byte $31; A9 [a0f5]00.byte $00; Rest [a0f6]31.byte $31; A9 [a0f7]31.byte $31; A9 [a0f8]31.byte $31; A9 [a0f9]31.byte $31; A9 [a0fa]21.byte $21; A9 [a0fb]21.byte $21; A9 [a0fc]31.byte $31; A9 [a0fd]00.byte $00; Rest [a0fe]31.byte $31; A9 [a0ff]00.byte $00; Rest [a100]31.byte $31; A9 [a101]00.byte $00; Rest [a102]31.byte $31; A9 [a103]00.byte $00; Rest [a104]85.byte $85; Note length: 5 [a105]31.byte $31; A9 [a106]31.byte $31; A9 [a107]86.byte $86; Note length: 6 [a108]31.byte $31; A9 [a109]88.byte $88; Note length: 8 [a10a]31.byte $31; A9 [a10b]31.byte $31; A9 [a10c]21.byte $21; A9 [a10d]21.byte $21; A9 [a10e]31.byte $31; A9 [a10f]00.byte $00; Rest [a110]31.byte $31; A9 [a111]31.byte $31; A9 [a112]31.byte $31; A9 [a113]31.byte $31; A9 [a114]21.byte $21; A9 [a115]31.byte $31; A9 [a116]31.byte $31; A9 [a117]31.byte $31; A9 [a118]31.byte $31; A9 [a119]31.byte $31; A9 [a11a]31.byte $31; A9 [a11b]31.byte $31; A9 [a11c]21.byte $21; A9 [a11d]31.byte $31; A9 [a11e]31.byte $31; A9 [a11f]31.byte $31; A9 [a120]a0.byte $a0; Note length: 32 [a121]00.byte $00; Rest [a122]88.byte $88; Note length: 8 [a123]21.byte $21; A9 [a124]21.byte $21; A9 [a125]21.byte $21; A9 [a126]21.byte $21; A9 [a127]85.byte $85; Note length: 5 [a128]31.byte $31; A9 [a129]31.byte $31; A9 [a12a]86.byte $86; Note length: 6 [a12b]31.byte $31; A9 [a12c]88.byte $88; Note length: 8 [a12d]31.byte $31; A9 [a12e]31.byte $31; A9 [a12f]85.byte $85; Note length: 5 [a130]31.byte $31; A9 [a131]31.byte $31; A9 [a132]86.byte $86; Note length: 6 [a133]31.byte $31; A9 [a134]88.byte $88; Note length: 8 [a135]21.byte $21; A9 [a136]21.byte $21; A9 [a137]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a138]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a139]02.byte $02; '- 2 iterations [a13a]88.byte $88; Note length: 8 [a13b]31.byte $31; A9 [a13c]00.byte $00; Rest [a13d]00.byte $00; Rest [a13e]31.byte $31; A9 [a13f]00.byte $00; Rest [a140]00.byte $00; Rest [a141]31.byte $31; A9 [a142]00.byte $00; Rest [a143]31.byte $31; A9 [a144]00.byte $00; Rest [a145]00.byte $00; Rest [a146]31.byte $31; A9 [a147]00.byte $00; Rest [a148]00.byte $00; Rest [a149]31.byte $31; A9 [a14a]31.byte $31; A9 [a14b]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a14c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a14d]02.byte $02; '- 2 iterations [a14e]88.byte $88; Note length: 8 [a14f]31.byte $31; A9 [a150]11.byte $11; A9 [a151]11.byte $11; A9 [a152]31.byte $31; A9 [a153]11.byte $11; A9 [a154]11.byte $11; A9 [a155]31.byte $31; A9 [a156]11.byte $11; A9 [a157]31.byte $31; A9 [a158]11.byte $11; A9 [a159]11.byte $11; A9 [a15a]31.byte $31; A9 [a15b]11.byte $11; A9 [a15c]11.byte $11; A9 [a15d]31.byte $31; A9 [a15e]31.byte $31; A9 [a15f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a160]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a161]ff.byte MSCRIPT_OP_END; Op: End [a162]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for Eolis. ; ; XREFS: ; MSCRIPTS_EOLIS [$PRG5::8f2b] ;============================================================================
; ; XREFS: ; MSCRIPTS_EOLIS [$PRG5::8f2b] ;
[a163]MSCRIPT_EOLIS_SQ1: [a163]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a164]02.byte $02; '- Reduce volume by 2 [a165]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a166]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a167]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [a168]01.byte $01; '- Mode 1: Curve but held [a169]e0.byte $e0; Note length: 96 [a16a]00.byte $00; Rest [a16b]00.byte $00; Rest [a16c]00.byte $00; Rest [a16d]b0.byte $b0; Note length: 48 [a16e]00.byte $00; Rest [a16f]8c.byte $8c; Note length: 12 [a170]00.byte $00; Rest [a171]34.byte $34; E4 [a172]36.byte $36; F#4 [a173]38.byte $38; G#4 [a174]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a175]02.byte $02; '- 2 iterations [a176]98.byte $98; Note length: 24 [a177]39.byte $39; A4 [a178]8c.byte $8c; Note length: 12 [a179]38.byte $38; G#4 [a17a]3b.byte $3b; B4 [a17b]39.byte $39; A4 [a17c]3b.byte $3b; B4 [a17d]3c.byte $3c; C5 [a17e]3e.byte $3e; D5 [a17f]40.byte $40; E5 [a180]41.byte $41; F5 [a181]3f.byte $3f; D#5 [a182]40.byte $40; E5 [a183]b0.byte $b0; Note length: 48 [a184]00.byte $00; Rest [a185]98.byte $98; Note length: 24 [a186]37.byte $37; G4 [a187]8c.byte $8c; Note length: 12 [a188]36.byte $36; F#4 [a189]39.byte $39; A4 [a18a]37.byte $37; G4 [a18b]39.byte $39; A4 [a18c]3a.byte $3a; A#4 [a18d]3c.byte $3c; C5 [a18e]3e.byte $3e; D5 [a18f]3f.byte $3f; D#5 [a190]3d.byte $3d; C#5 [a191]3e.byte $3e; D5 [a192]b0.byte $b0; Note length: 48 [a193]00.byte $00; Rest [a194]a4.byte $a4; Note length: 36 [a195]3f.byte $3f; D#5 [a196]8c.byte $8c; Note length: 12 [a197]43.byte $43; G5 [a198]41.byte $41; F5 [a199]3c.byte $3c; C5 [a19a]00.byte $00; Rest [a19b]3e.byte $3e; D5 [a19c]00.byte $00; Rest [a19d]3e.byte $3e; D5 [a19e]41.byte $41; F5 [a19f]3f.byte $3f; D#5 [a1a0]00.byte $00; Rest [a1a1]3a.byte $3a; A#4 [a1a2]37.byte $37; G4 [a1a3]00.byte $00; Rest [a1a4]38.byte $38; G#4 [a1a5]3c.byte $3c; C5 [a1a6]38.byte $38; G#4 [a1a7]3f.byte $3f; D#5 [a1a8]00.byte $00; Rest [a1a9]3f.byte $3f; D#5 [a1aa]00.byte $00; Rest [a1ab]38.byte $38; G#4 [a1ac]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a1ad]01.byte $01; '- 1 loop [a1ae]8c.byte $8c; Note length: 12 [a1af]3c.byte $3c; C5 [a1b0]38.byte $38; G#4 [a1b1]3f.byte $3f; D#5 [a1b2]00.byte $00; Rest [a1b3]00.byte $00; Rest [a1b4]34.byte $34; E4 [a1b5]36.byte $36; F#4 [a1b6]38.byte $38; G#4 [a1b7]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a1b8]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a1b9]02.byte $02; '- 2 loops [a1ba]8c.byte $8c; Note length: 12 [a1bb]3c.byte $3c; C5 [a1bc]38.byte $38; G#4 [a1bd]3f.byte $3f; D#5 [a1be]00.byte $00; Rest [a1bf]3f.byte $3f; D#5 [a1c0]34.byte $34; E4 [a1c1]2f.byte $2f; B3 [a1c2]2c.byte $2c; G#3 [a1c3]2d.byte $2d; A3 [a1c4]34.byte $34; E4 [a1c5]2d.byte $2d; A3 [a1c6]32.byte $32; D4 [a1c7]00.byte $00; Rest [a1c8]2f.byte $2f; B3 [a1c9]2b.byte $2b; G3 [a1ca]00.byte $00; Rest [a1cb]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a1cc]02.byte $02; '- 2 iterations [a1cd]b0.byte $b0; Note length: 48 [a1ce]40.byte $40; E5 [a1cf]98.byte $98; Note length: 24 [a1d0]39.byte $39; A4 [a1d1]40.byte $40; E5 [a1d2]3f.byte $3f; D#5 [a1d3]8c.byte $8c; Note length: 12 [a1d4]41.byte $41; F5 [a1d5]98.byte $98; Note length: 24 [a1d6]40.byte $40; E5 [a1d7]8c.byte $8c; Note length: 12 [a1d8]3c.byte $3c; C5 [a1d9]39.byte $39; A4 [a1da]34.byte $34; E4 [a1db]38.byte $38; G#4 [a1dc]38.byte $38; G#4 [a1dd]3b.byte $3b; B4 [a1de]39.byte $39; A4 [a1df]b0.byte $b0; Note length: 48 [a1e0]00.byte $00; Rest [a1e1]98.byte $98; Note length: 24 [a1e2]32.byte $32; D4 [a1e3]8c.byte $8c; Note length: 12 [a1e4]34.byte $34; E4 [a1e5]30.byte $30; C4 [a1e6]b0.byte $b0; Note length: 48 [a1e7]00.byte $00; Rest [a1e8]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a1e9]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a1ea]02.byte $02; '- 2 iterations [a1eb]b0.byte $b0; Note length: 48 [a1ec]00.byte $00; Rest [a1ed]8c.byte $8c; Note length: 12 [a1ee]00.byte $00; Rest [a1ef]2d.byte $2d; A3 [a1f0]98.byte $98; Note length: 24 [a1f1]00.byte $00; Rest [a1f2]00.byte $00; Rest [a1f3]8c.byte $8c; Note length: 12 [a1f4]00.byte $00; Rest [a1f5]28.byte $28; E3 [a1f6]2d.byte $2d; A3 [a1f7]2c.byte $2c; G#3 [a1f8]29.byte $29; F3 [a1f9]26.byte $26; D3 [a1fa]b0.byte $b0; Note length: 48 [a1fb]00.byte $00; Rest [a1fc]8c.byte $8c; Note length: 12 [a1fd]00.byte $00; Rest [a1fe]2d.byte $2d; A3 [a1ff]98.byte $98; Note length: 24 [a200]00.byte $00; Rest [a201]8c.byte $8c; Note length: 12 [a202]00.byte $00; Rest [a203]34.byte $34; E4 [a204]33.byte $33; D#4 [a205]2f.byte $2f; B3 [a206]32.byte $32; D4 [a207]31.byte $31; C#4 [a208]2d.byte $2d; A3 [a209]30.byte $30; C4 [a20a]fc.byte $fc; Op: End loop [a20b]2d.byte $2d; A3 [a20c]00.byte $00; Rest [a20d]c8.byte $c8; Note length: 72 [a20e]00.byte $00; Rest [a20f]e0.byte $e0; Note length: 96 [a210]00.byte $00; Rest [a211]00.byte $00; Rest [a212]b0.byte $b0; Note length: 48 [a213]00.byte $00; Rest [a214]8c.byte $8c; Note length: 12 [a215]00.byte $00; Rest [a216]2b.byte $2b; G3 [a217]2a.byte $2a; F#3 [a218]29.byte $29; F3 [a219]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a21a]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_EOLIS [$PRG5::8f2d] ;
[a21b]MSCRIPT_EOLIS_SQ2: [a21b]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a21c]02.byte $02; '- Reduce volume by 2 [a21d]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a21e]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a21f]e0.byte $e0; Note length: 96 [a220]00.byte $00; Rest [a221]00.byte $00; Rest [a222]00.byte $00; Rest [a223]b0.byte $b0; Note length: 48 [a224]00.byte $00; Rest [a225]8c.byte $8c; Note length: 12 [a226]00.byte $00; Rest [a227]28.byte $28; E3 [a228]33.byte $33; D#4 [a229]32.byte $32; D4 [a22a]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a22b]02.byte $02; '- 2 iterations [a22c]98.byte $98; Note length: 24 [a22d]30.byte $30; C4 [a22e]8c.byte $8c; Note length: 12 [a22f]2f.byte $2f; B3 [a230]32.byte $32; D4 [a231]30.byte $30; C4 [a232]34.byte $34; E4 [a233]39.byte $39; A4 [a234]3b.byte $3b; B4 [a235]3c.byte $3c; C5 [a236]3e.byte $3e; D5 [a237]3b.byte $3b; B4 [a238]3c.byte $3c; C5 [a239]b0.byte $b0; Note length: 48 [a23a]00.byte $00; Rest [a23b]98.byte $98; Note length: 24 [a23c]2e.byte $2e; A#3 [a23d]8c.byte $8c; Note length: 12 [a23e]2d.byte $2d; A3 [a23f]30.byte $30; C4 [a240]2e.byte $2e; A#3 [a241]32.byte $32; D4 [a242]37.byte $37; G4 [a243]39.byte $39; A4 [a244]3a.byte $3a; A#4 [a245]3c.byte $3c; C5 [a246]39.byte $39; A4 [a247]3a.byte $3a; A#4 [a248]b0.byte $b0; Note length: 48 [a249]00.byte $00; Rest [a24a]a4.byte $a4; Note length: 36 [a24b]3c.byte $3c; C5 [a24c]8c.byte $8c; Note length: 12 [a24d]3f.byte $3f; D#5 [a24e]3e.byte $3e; D5 [a24f]39.byte $39; A4 [a250]00.byte $00; Rest [a251]3a.byte $3a; A#4 [a252]00.byte $00; Rest [a253]3a.byte $3a; A#4 [a254]3e.byte $3e; D5 [a255]3c.byte $3c; C5 [a256]00.byte $00; Rest [a257]33.byte $33; D#4 [a258]30.byte $30; C4 [a259]00.byte $00; Rest [a25a]30.byte $30; C4 [a25b]33.byte $33; D#4 [a25c]30.byte $30; C4 [a25d]37.byte $37; G4 [a25e]00.byte $00; Rest [a25f]37.byte $37; G4 [a260]00.byte $00; Rest [a261]30.byte $30; C4 [a262]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a263]01.byte $01; '- 1 loop [a264]8c.byte $8c; Note length: 12 [a265]33.byte $33; D#4 [a266]30.byte $30; C4 [a267]37.byte $37; G4 [a268]00.byte $00; Rest [a269]00.byte $00; Rest [a26a]00.byte $00; Rest [a26b]33.byte $33; D#4 [a26c]32.byte $32; D4 [a26d]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a26e]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a26f]02.byte $02; '- 2 loops [a270]8c.byte $8c; Note length: 12 [a271]33.byte $33; D#4 [a272]30.byte $30; C4 [a273]37.byte $37; G4 [a274]00.byte $00; Rest [a275]37.byte $37; G4 [a276]2f.byte $2f; B3 [a277]2c.byte $2c; G#3 [a278]28.byte $28; E3 [a279]24.byte $24; C3 [a27a]2d.byte $2d; A3 [a27b]24.byte $24; C3 [a27c]2f.byte $2f; B3 [a27d]00.byte $00; Rest [a27e]2b.byte $2b; G3 [a27f]26.byte $26; D3 [a280]00.byte $00; Rest [a281]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a282]02.byte $02; '- 2 iterations [a283]b0.byte $b0; Note length: 48 [a284]3c.byte $3c; C5 [a285]98.byte $98; Note length: 24 [a286]34.byte $34; E4 [a287]3c.byte $3c; C5 [a288]3b.byte $3b; B4 [a289]8c.byte $8c; Note length: 12 [a28a]3e.byte $3e; D5 [a28b]98.byte $98; Note length: 24 [a28c]3c.byte $3c; C5 [a28d]8c.byte $8c; Note length: 12 [a28e]39.byte $39; A4 [a28f]34.byte $34; E4 [a290]30.byte $30; C4 [a291]32.byte $32; D4 [a292]32.byte $32; D4 [a293]34.byte $34; E4 [a294]30.byte $30; C4 [a295]b0.byte $b0; Note length: 48 [a296]00.byte $00; Rest [a297]98.byte $98; Note length: 24 [a298]2f.byte $2f; B3 [a299]8c.byte $8c; Note length: 12 [a29a]30.byte $30; C4 [a29b]2d.byte $2d; A3 [a29c]b0.byte $b0; Note length: 48 [a29d]00.byte $00; Rest [a29e]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a29f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a2a0]02.byte $02; '- 2 iterations [a2a1]b0.byte $b0; Note length: 48 [a2a2]00.byte $00; Rest [a2a3]8c.byte $8c; Note length: 12 [a2a4]00.byte $00; Rest [a2a5]23.byte $23; B2 [a2a6]98.byte $98; Note length: 24 [a2a7]00.byte $00; Rest [a2a8]00.byte $00; Rest [a2a9]8c.byte $8c; Note length: 12 [a2aa]00.byte $00; Rest [a2ab]23.byte $23; B2 [a2ac]28.byte $28; E3 [a2ad]27.byte $27; D#3 [a2ae]24.byte $24; C3 [a2af]21.byte $21; A2 [a2b0]b0.byte $b0; Note length: 48 [a2b1]00.byte $00; Rest [a2b2]8c.byte $8c; Note length: 12 [a2b3]00.byte $00; Rest [a2b4]23.byte $23; B2 [a2b5]98.byte $98; Note length: 24 [a2b6]00.byte $00; Rest [a2b7]8c.byte $8c; Note length: 12 [a2b8]00.byte $00; Rest [a2b9]2f.byte $2f; B3 [a2ba]2e.byte $2e; A#3 [a2bb]2a.byte $2a; F#3 [a2bc]2d.byte $2d; A3 [a2bd]2c.byte $2c; G#3 [a2be]28.byte $28; E3 [a2bf]2b.byte $2b; G3 [a2c0]fc.byte $fc; Op: End loop [a2c1]2a.byte $2a; F#3 [a2c2]00.byte $00; Rest [a2c3]c8.byte $c8; Note length: 72 [a2c4]00.byte $00; Rest [a2c5]e0.byte $e0; Note length: 96 [a2c6]00.byte $00; Rest [a2c7]00.byte $00; Rest [a2c8]b0.byte $b0; Note length: 48 [a2c9]00.byte $00; Rest [a2ca]8c.byte $8c; Note length: 12 [a2cb]00.byte $00; Rest [a2cc]26.byte $26; D3 [a2cd]25.byte $25; C#3 [a2ce]24.byte $24; C3 [a2cf]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a2d0]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_EOLIS [$PRG5::8f2f] ;
[a2d1]MSCRIPT_EOLIS_TRI: [a2d1]8c.byte $8c; Note length: 12 [a2d2]15.byte $15; A3 [a2d3]00.byte $00; Rest [a2d4]21.byte $21; A4 [a2d5]15.byte $15; A3 [a2d6]1a.byte $1a; D4 [a2d7]1c.byte $1c; E4 [a2d8]00.byte $00; Rest [a2d9]10.byte $10; E3 [a2da]13.byte $13; G3 [a2db]15.byte $15; A3 [a2dc]21.byte $21; A4 [a2dd]15.byte $15; A3 [a2de]1a.byte $1a; D4 [a2df]1c.byte $1c; E4 [a2e0]00.byte $00; Rest [a2e1]10.byte $10; E3 [a2e2]15.byte $15; A3 [a2e3]00.byte $00; Rest [a2e4]21.byte $21; A4 [a2e5]15.byte $15; A3 [a2e6]1a.byte $1a; D4 [a2e7]1c.byte $1c; E4 [a2e8]10.byte $10; E3 [a2e9]13.byte $13; G3 [a2ea]15.byte $15; A3 [a2eb]17.byte $17; B3 [a2ec]18.byte $18; C4 [a2ed]1a.byte $1a; D4 [a2ee]00.byte $00; Rest [a2ef]1c.byte $1c; E4 [a2f0]17.byte $17; B3 [a2f1]10.byte $10; E3 [a2f2]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a2f3]02.byte $02; '- 2 iterations [a2f4]98.byte $98; Note length: 24 [a2f5]15.byte $15; A3 [a2f6]8c.byte $8c; Note length: 12 [a2f7]21.byte $21; A4 [a2f8]1c.byte $1c; E4 [a2f9]10.byte $10; E3 [a2fa]1c.byte $1c; E4 [a2fb]00.byte $00; Rest [a2fc]10.byte $10; E3 [a2fd]15.byte $15; A3 [a2fe]1f.byte $1f; G4 [a2ff]21.byte $21; A4 [a300]1c.byte $1c; E4 [a301]00.byte $00; Rest [a302]18.byte $18; C4 [a303]15.byte $15; A3 [a304]10.byte $10; E3 [a305]98.byte $98; Note length: 24 [a306]13.byte $13; G3 [a307]8c.byte $8c; Note length: 12 [a308]1f.byte $1f; G4 [a309]1a.byte $1a; D4 [a30a]0e.byte $0e; D3 [a30b]1a.byte $1a; D4 [a30c]00.byte $00; Rest [a30d]0e.byte $0e; D3 [a30e]13.byte $13; G3 [a30f]1d.byte $1d; F4 [a310]1f.byte $1f; G4 [a311]1a.byte $1a; D4 [a312]00.byte $00; Rest [a313]16.byte $16; A#3 [a314]13.byte $13; G3 [a315]0e.byte $0e; D3 [a316]0c.byte $0c; C3 [a317]0c.byte $0c; C3 [a318]18.byte $18; C4 [a319]0c.byte $0c; C3 [a31a]11.byte $11; F3 [a31b]1d.byte $1d; F4 [a31c]00.byte $00; Rest [a31d]11.byte $11; F3 [a31e]16.byte $16; A#3 [a31f]00.byte $00; Rest [a320]22.byte $22; A#4 [a321]0f.byte $0f; D#3 [a322]00.byte $00; Rest [a323]1b.byte $1b; D#4 [a324]16.byte $16; A#3 [a325]0f.byte $0f; D#3 [a326]14.byte $14; G#3 [a327]1a.byte $1a; D4 [a328]14.byte $14; G#3 [a329]1b.byte $1b; D#4 [a32a]00.byte $00; Rest [a32b]1b.byte $1b; D#4 [a32c]00.byte $00; Rest [a32d]0f.byte $0f; D#3 [a32e]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a32f]01.byte $01; '- 1 loop [a330]8c.byte $8c; Note length: 12 [a331]14.byte $14; G#3 [a332]20.byte $20; G#4 [a333]14.byte $14; G#3 [a334]11.byte $11; F3 [a335]10.byte $10; E3 [a336]10.byte $10; E3 [a337]12.byte $12; F#3 [a338]14.byte $14; G#3 [a339]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a33a]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a33b]02.byte $02; '- 2 loops [a33c]8c.byte $8c; Note length: 12 [a33d]14.byte $14; G#3 [a33e]20.byte $20; G#4 [a33f]14.byte $14; G#3 [a340]00.byte $00; Rest [a341]10.byte $10; E3 [a342]10.byte $10; E3 [a343]12.byte $12; F#3 [a344]14.byte $14; G#3 [a345]15.byte $15; A3 [a346]1c.byte $1c; E4 [a347]15.byte $15; A3 [a348]1a.byte $1a; D4 [a349]00.byte $00; Rest [a34a]17.byte $17; B3 [a34b]13.byte $13; G3 [a34c]00.byte $00; Rest [a34d]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a34e]02.byte $02; '- 2 iterations [a34f]8c.byte $8c; Note length: 12 [a350]15.byte $15; A3 [a351]00.byte $00; Rest [a352]21.byte $21; A4 [a353]10.byte $10; E3 [a354]13.byte $13; G3 [a355]15.byte $15; A3 [a356]00.byte $00; Rest [a357]10.byte $10; E3 [a358]14.byte $14; G#3 [a359]17.byte $17; B3 [a35a]10.byte $10; E3 [a35b]15.byte $15; A3 [a35c]00.byte $00; Rest [a35d]21.byte $21; A4 [a35e]1c.byte $1c; E4 [a35f]15.byte $15; A3 [a360]98.byte $98; Note length: 24 [a361]10.byte $10; E3 [a362]8c.byte $8c; Note length: 12 [a363]1c.byte $1c; E4 [a364]15.byte $15; A3 [a365]00.byte $00; Rest [a366]20.byte $20; G#4 [a367]21.byte $21; A4 [a368]1c.byte $1c; E4 [a369]10.byte $10; E3 [a36a]12.byte $12; F#3 [a36b]14.byte $14; G#3 [a36c]15.byte $15; A3 [a36d]00.byte $00; Rest [a36e]1c.byte $1c; E4 [a36f]1b.byte $1b; D#4 [a370]1a.byte $1a; D4 [a371]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a372]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a373]02.byte $02; '- 2 iterations [a374]8c.byte $8c; Note length: 12 [a375]1c.byte $1c; E4 [a376]10.byte $10; E3 [a377]11.byte $11; F3 [a378]10.byte $10; E3 [a379]00.byte $00; Rest [a37a]11.byte $11; F3 [a37b]00.byte $00; Rest [a37c]10.byte $10; E3 [a37d]1c.byte $1c; E4 [a37e]10.byte $10; E3 [a37f]11.byte $11; F3 [a380]10.byte $10; E3 [a381]00.byte $00; Rest [a382]1c.byte $1c; E4 [a383]1b.byte $1b; D#4 [a384]17.byte $17; B3 [a385]10.byte $10; E3 [a386]10.byte $10; E3 [a387]11.byte $11; F3 [a388]10.byte $10; E3 [a389]00.byte $00; Rest [a38a]11.byte $11; F3 [a38b]00.byte $00; Rest [a38c]10.byte $10; E3 [a38d]00.byte $00; Rest [a38e]10.byte $10; E3 [a38f]11.byte $11; F3 [a390]10.byte $10; E3 [a391]00.byte $00; Rest [a392]12.byte $12; F#3 [a393]11.byte $11; F3 [a394]10.byte $10; E3 [a395]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a396]15.byte $15; A3 [a397]00.byte $00; Rest [a398]21.byte $21; A4 [a399]15.byte $15; A3 [a39a]1a.byte $1a; D4 [a39b]1c.byte $1c; E4 [a39c]00.byte $00; Rest [a39d]10.byte $10; E3 [a39e]13.byte $13; G3 [a39f]15.byte $15; A3 [a3a0]21.byte $21; A4 [a3a1]15.byte $15; A3 [a3a2]1a.byte $1a; D4 [a3a3]1c.byte $1c; E4 [a3a4]10.byte $10; E3 [a3a5]13.byte $13; G3 [a3a6]15.byte $15; A3 [a3a7]00.byte $00; Rest [a3a8]21.byte $21; A4 [a3a9]15.byte $15; A3 [a3aa]1a.byte $1a; D4 [a3ab]1c.byte $1c; E4 [a3ac]00.byte $00; Rest [a3ad]10.byte $10; E3 [a3ae]13.byte $13; G3 [a3af]15.byte $15; A3 [a3b0]21.byte $21; A4 [a3b1]20.byte $20; G#4 [a3b2]00.byte $00; Rest [a3b3]15.byte $15; A3 [a3b4]14.byte $14; G#3 [a3b5]13.byte $13; G3 [a3b6]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a3b7]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_EOLIS [$PRG5::8f31] ;
[a3b8]MSCRIPT_EOLIS_NOISE: [a3b8]8c.byte $8c; Note length: 12 [a3b9]3c.byte $3c; A9 [a3ba]3c.byte $3c; A9 [a3bb]30.byte $30; A9 [a3bc]3c.byte $3c; A9 [a3bd]3c.byte $3c; A9 [a3be]30.byte $30; A9 [a3bf]3c.byte $3c; A9 [a3c0]3c.byte $3c; A9 [a3c1]3c.byte $3c; A9 [a3c2]3c.byte $3c; A9 [a3c3]30.byte $30; A9 [a3c4]3c.byte $3c; A9 [a3c5]3c.byte $3c; A9 [a3c6]30.byte $30; A9 [a3c7]3c.byte $3c; A9 [a3c8]3c.byte $3c; A9 [a3c9]3c.byte $3c; A9 [a3ca]3c.byte $3c; A9 [a3cb]30.byte $30; A9 [a3cc]3c.byte $3c; A9 [a3cd]3c.byte $3c; A9 [a3ce]30.byte $30; A9 [a3cf]3c.byte $3c; A9 [a3d0]3c.byte $3c; A9 [a3d1]30.byte $30; A9 [a3d2]30.byte $30; A9 [a3d3]30.byte $30; A9 [a3d4]30.byte $30; A9 [a3d5]00.byte $00; Rest [a3d6]3c.byte $3c; A9 [a3d7]3c.byte $3c; A9 [a3d8]3c.byte $3c; A9 [a3d9]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a3da]02.byte $02; '- 2 iterations [a3db]8c.byte $8c; Note length: 12 [a3dc]3c.byte $3c; A9 [a3dd]3c.byte $3c; A9 [a3de]30.byte $30; A9 [a3df]3c.byte $3c; A9 [a3e0]3c.byte $3c; A9 [a3e1]3c.byte $3c; A9 [a3e2]30.byte $30; A9 [a3e3]3c.byte $3c; A9 [a3e4]3c.byte $3c; A9 [a3e5]3c.byte $3c; A9 [a3e6]30.byte $30; A9 [a3e7]3c.byte $3c; A9 [a3e8]3c.byte $3c; A9 [a3e9]3c.byte $3c; A9 [a3ea]30.byte $30; A9 [a3eb]3c.byte $3c; A9 [a3ec]3c.byte $3c; A9 [a3ed]3c.byte $3c; A9 [a3ee]30.byte $30; A9 [a3ef]3c.byte $3c; A9 [a3f0]3c.byte $3c; A9 [a3f1]3c.byte $3c; A9 [a3f2]30.byte $30; A9 [a3f3]3c.byte $3c; A9 [a3f4]3c.byte $3c; A9 [a3f5]3c.byte $3c; A9 [a3f6]30.byte $30; A9 [a3f7]3c.byte $3c; A9 [a3f8]3c.byte $3c; A9 [a3f9]3c.byte $3c; A9 [a3fa]30.byte $30; A9 [a3fb]3c.byte $3c; A9 [a3fc]3c.byte $3c; A9 [a3fd]3c.byte $3c; A9 [a3fe]30.byte $30; A9 [a3ff]3c.byte $3c; A9 [a400]3c.byte $3c; A9 [a401]3c.byte $3c; A9 [a402]30.byte $30; A9 [a403]3c.byte $3c; A9 [a404]3c.byte $3c; A9 [a405]3c.byte $3c; A9 [a406]30.byte $30; A9 [a407]3c.byte $3c; A9 [a408]3c.byte $3c; A9 [a409]30.byte $30; A9 [a40a]30.byte $30; A9 [a40b]30.byte $30; A9 [a40c]3c.byte $3c; A9 [a40d]3c.byte $3c; A9 [a40e]30.byte $30; A9 [a40f]3c.byte $3c; A9 [a410]3c.byte $3c; A9 [a411]30.byte $30; A9 [a412]3c.byte $3c; A9 [a413]3c.byte $3c; A9 [a414]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a415]01.byte $01; '- 1 loop [a416]8c.byte $8c; Note length: 12 [a417]3c.byte $3c; A9 [a418]3c.byte $3c; A9 [a419]30.byte $30; A9 [a41a]3c.byte $3c; A9 [a41b]3c.byte $3c; A9 [a41c]30.byte $30; A9 [a41d]3c.byte $3c; A9 [a41e]3c.byte $3c; A9 [a41f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a420]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a421]02.byte $02; '- 2 loops [a422]8c.byte $8c; Note length: 12 [a423]3c.byte $3c; A9 [a424]3c.byte $3c; A9 [a425]30.byte $30; A9 [a426]3c.byte $3c; A9 [a427]30.byte $30; A9 [a428]3c.byte $3c; A9 [a429]3c.byte $3c; A9 [a42a]3c.byte $3c; A9 [a42b]30.byte $30; A9 [a42c]30.byte $30; A9 [a42d]30.byte $30; A9 [a42e]30.byte $30; A9 [a42f]00.byte $00; Rest [a430]30.byte $30; A9 [a431]30.byte $30; A9 [a432]00.byte $00; Rest [a433]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a434]02.byte $02; '- 2 iterations [a435]8c.byte $8c; Note length: 12 [a436]3c.byte $3c; A9 [a437]3c.byte $3c; A9 [a438]30.byte $30; A9 [a439]3c.byte $3c; A9 [a43a]3c.byte $3c; A9 [a43b]30.byte $30; A9 [a43c]00.byte $00; Rest [a43d]3c.byte $3c; A9 [a43e]3c.byte $3c; A9 [a43f]3c.byte $3c; A9 [a440]30.byte $30; A9 [a441]3c.byte $3c; A9 [a442]3c.byte $3c; A9 [a443]30.byte $30; A9 [a444]00.byte $00; Rest [a445]3c.byte $3c; A9 [a446]3c.byte $3c; A9 [a447]3c.byte $3c; A9 [a448]30.byte $30; A9 [a449]3c.byte $3c; A9 [a44a]3c.byte $3c; A9 [a44b]30.byte $30; A9 [a44c]00.byte $00; Rest [a44d]3c.byte $3c; A9 [a44e]3c.byte $3c; A9 [a44f]3c.byte $3c; A9 [a450]30.byte $30; A9 [a451]3c.byte $3c; A9 [a452]3c.byte $3c; A9 [a453]30.byte $30; A9 [a454]30.byte $30; A9 [a455]30.byte $30; A9 [a456]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a457]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a458]02.byte $02; '- 2 iterations [a459]8c.byte $8c; Note length: 12 [a45a]3c.byte $3c; A9 [a45b]3c.byte $3c; A9 [a45c]3c.byte $3c; A9 [a45d]3c.byte $3c; A9 [a45e]3c.byte $3c; A9 [a45f]30.byte $30; A9 [a460]3c.byte $3c; A9 [a461]3c.byte $3c; A9 [a462]3c.byte $3c; A9 [a463]3c.byte $3c; A9 [a464]3c.byte $3c; A9 [a465]3c.byte $3c; A9 [a466]3c.byte $3c; A9 [a467]30.byte $30; A9 [a468]30.byte $30; A9 [a469]30.byte $30; A9 [a46a]3c.byte $3c; A9 [a46b]3c.byte $3c; A9 [a46c]3c.byte $3c; A9 [a46d]3c.byte $3c; A9 [a46e]3c.byte $3c; A9 [a46f]30.byte $30; A9 [a470]3c.byte $3c; A9 [a471]3c.byte $3c; A9 [a472]3c.byte $3c; A9 [a473]30.byte $30; A9 [a474]3c.byte $3c; A9 [a475]3c.byte $3c; A9 [a476]3c.byte $3c; A9 [a477]3c.byte $3c; A9 [a478]86.byte $86; Note length: 6 [a479]3c.byte $3c; A9 [a47a]3c.byte $3c; A9 [a47b]8c.byte $8c; Note length: 12 [a47c]30.byte $30; A9 [a47d]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a47e]3c.byte $3c; A9 [a47f]00.byte $00; Rest [a480]30.byte $30; A9 [a481]3c.byte $3c; A9 [a482]3c.byte $3c; A9 [a483]30.byte $30; A9 [a484]3c.byte $3c; A9 [a485]3c.byte $3c; A9 [a486]3c.byte $3c; A9 [a487]00.byte $00; Rest [a488]30.byte $30; A9 [a489]3c.byte $3c; A9 [a48a]3c.byte $3c; A9 [a48b]30.byte $30; A9 [a48c]3c.byte $3c; A9 [a48d]3c.byte $3c; A9 [a48e]3c.byte $3c; A9 [a48f]00.byte $00; Rest [a490]30.byte $30; A9 [a491]3c.byte $3c; A9 [a492]3c.byte $3c; A9 [a493]30.byte $30; A9 [a494]3c.byte $3c; A9 [a495]3c.byte $3c; A9 [a496]3c.byte $3c; A9 [a497]3c.byte $3c; A9 [a498]30.byte $30; A9 [a499]3c.byte $3c; A9 [a49a]3c.byte $3c; A9 [a49b]30.byte $30; A9 [a49c]30.byte $30; A9 [a49d]30.byte $30; A9 [a49e]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a49f]ff.byte MSCRIPT_OP_END; Op: End [a4a0]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for the death screen. ; ; XREFS: ; MSCRIPTS_MANTRA [$PRG5::8f33] ;============================================================================
; ; XREFS: ; MSCRIPTS_MANTRA [$PRG5::8f33] ;
[a4a1]MSCRIPT_MANTRA_SQ1: [a4a1]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a4a2]04.byte $04; '- Reduce volume by 4 [a4a3]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a4a4]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a4a5]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [a4a6]02.byte $02; '- Mode 2: Pluck [a4a7]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a4a8]02.byte $02; '- 2 iterations [a4a9]a0.byte $a0; Note length: 32 [a4aa]34.byte $34; E4 [a4ab]90.byte $90; Note length: 16 [a4ac]33.byte $33; D#4 [a4ad]34.byte $34; E4 [a4ae]a0.byte $a0; Note length: 32 [a4af]36.byte $36; F#4 [a4b0]90.byte $90; Note length: 16 [a4b1]3b.byte $3b; B4 [a4b2]b0.byte $b0; Note length: 48 [a4b3]37.byte $37; G4 [a4b4]90.byte $90; Note length: 16 [a4b5]36.byte $36; F#4 [a4b6]37.byte $37; G4 [a4b7]a0.byte $a0; Note length: 32 [a4b8]39.byte $39; A4 [a4b9]90.byte $90; Note length: 16 [a4ba]3e.byte $3e; D5 [a4bb]c0.byte $c0; Note length: 64 [a4bc]3b.byte $3b; B4 [a4bd]90.byte $90; Note length: 16 [a4be]37.byte $37; G4 [a4bf]3c.byte $3c; C5 [a4c0]3b.byte $3b; B4 [a4c1]39.byte $39; A4 [a4c2]37.byte $37; G4 [a4c3]b0.byte $b0; Note length: 48 [a4c4]39.byte $39; A4 [a4c5]90.byte $90; Note length: 16 [a4c6]36.byte $36; F#4 [a4c7]3b.byte $3b; B4 [a4c8]39.byte $39; A4 [a4c9]37.byte $37; G4 [a4ca]36.byte $36; F#4 [a4cb]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a4cc]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a4cd]02.byte $02; '- 2 iterations [a4ce]a0.byte $a0; Note length: 32 [a4cf]34.byte $34; E4 [a4d0]90.byte $90; Note length: 16 [a4d1]33.byte $33; D#4 [a4d2]34.byte $34; E4 [a4d3]a0.byte $a0; Note length: 32 [a4d4]36.byte $36; F#4 [a4d5]90.byte $90; Note length: 16 [a4d6]3b.byte $3b; B4 [a4d7]b0.byte $b0; Note length: 48 [a4d8]37.byte $37; G4 [a4d9]90.byte $90; Note length: 16 [a4da]36.byte $36; F#4 [a4db]37.byte $37; G4 [a4dc]a0.byte $a0; Note length: 32 [a4dd]39.byte $39; A4 [a4de]90.byte $90; Note length: 16 [a4df]3e.byte $3e; D5 [a4e0]c0.byte $c0; Note length: 64 [a4e1]3b.byte $3b; B4 [a4e2]90.byte $90; Note length: 16 [a4e3]37.byte $37; G4 [a4e4]3c.byte $3c; C5 [a4e5]3b.byte $3b; B4 [a4e6]39.byte $39; A4 [a4e7]37.byte $37; G4 [a4e8]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a4e9]01.byte $01; '- 1 loop [a4ea]b0.byte $b0; Note length: 48 [a4eb]39.byte $39; A4 [a4ec]90.byte $90; Note length: 16 [a4ed]36.byte $36; F#4 [a4ee]3b.byte $3b; B4 [a4ef]39.byte $39; A4 [a4f0]37.byte $37; G4 [a4f1]36.byte $36; F#4 [a4f2]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a4f3]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a4f4]02.byte $02; '- 2 loops [a4f5]90.byte $90; Note length: 16 [a4f6]39.byte $39; A4 [a4f7]37.byte $37; G4 [a4f8]36.byte $36; F#4 [a4f9]b0.byte $b0; Note length: 48 [a4fa]3b.byte $3b; B4 [a4fb]a0.byte $a0; Note length: 32 [a4fc]2f.byte $2f; B3 [a4fd]90.byte $90; Note length: 16 [a4fe]3b.byte $3b; B4 [a4ff]3b.byte $3b; B4 [a500]3b.byte $3b; B4 [a501]3b.byte $3b; B4 [a502]a0.byte $a0; Note length: 32 [a503]3b.byte $3b; B4 [a504]90.byte $90; Note length: 16 [a505]3e.byte $3e; D5 [a506]d0.byte $d0; Note length: 80 [a507]3c.byte $3c; C5 [a508]90.byte $90; Note length: 16 [a509]3c.byte $3c; C5 [a50a]3b.byte $3b; B4 [a50b]39.byte $39; A4 [a50c]37.byte $37; G4 [a50d]a0.byte $a0; Note length: 32 [a50e]36.byte $36; F#4 [a50f]40.byte $40; E5 [a510]3e.byte $3e; D5 [a511]39.byte $39; A4 [a512]b0.byte $b0; Note length: 48 [a513]3c.byte $3c; C5 [a514]a0.byte $a0; Note length: 32 [a515]3b.byte $3b; B4 [a516]90.byte $90; Note length: 16 [a517]3b.byte $3b; B4 [a518]3c.byte $3c; C5 [a519]3e.byte $3e; D5 [a51a]b0.byte $b0; Note length: 48 [a51b]40.byte $40; E5 [a51c]90.byte $90; Note length: 16 [a51d]37.byte $37; G4 [a51e]c0.byte $c0; Note length: 64 [a51f]37.byte $37; G4 [a520]a0.byte $a0; Note length: 32 [a521]3e.byte $3e; D5 [a522]3c.byte $3c; C5 [a523]37.byte $37; G4 [a524]39.byte $39; A4 [a525]d6.byte $d6; Note length: 86 [a526]3b.byte $3b; B4 [a527]95.byte $95; Note length: 21 [a528]39.byte $39; A4 [a529]37.byte $37; G4 [a52a]a0.byte $a0; Note length: 32 [a52b]36.byte $36; F#4 [a52c]e0.byte $e0; Note length: 96 [a52d]00.byte $00; Rest [a52e]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a52f]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_MANTRA [$PRG5::8f35] ;
[a530]MSCRIPT_MANTRA_SQ2: [a530]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a531]06.byte $06; '- Reduce volume by 6 [a532]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a533]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a534]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [a535]02.byte $02; '- Mode 2: Pluck [a536]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [a537]80.byte $80; '- 128 ticks [a538]00.byte $00; Rest [a539]00.byte $00; Rest [a53a]00.byte $00; Rest [a53b]00.byte $00; Rest [a53c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a53d]02.byte $02; '- 2 iterations [a53e]a0.byte $a0; Note length: 32 [a53f]2b.byte $2b; G3 [a540]90.byte $90; Note length: 16 [a541]2a.byte $2a; F#3 [a542]2b.byte $2b; G3 [a543]a0.byte $a0; Note length: 32 [a544]2d.byte $2d; A3 [a545]90.byte $90; Note length: 16 [a546]2a.byte $2a; F#3 [a547]b0.byte $b0; Note length: 48 [a548]2f.byte $2f; B3 [a549]90.byte $90; Note length: 16 [a54a]2d.byte $2d; A3 [a54b]2f.byte $2f; B3 [a54c]a0.byte $a0; Note length: 32 [a54d]30.byte $30; C4 [a54e]90.byte $90; Note length: 16 [a54f]36.byte $36; F#4 [a550]c0.byte $c0; Note length: 64 [a551]32.byte $32; D4 [a552]90.byte $90; Note length: 16 [a553]2f.byte $2f; B3 [a554]34.byte $34; E4 [a555]32.byte $32; D4 [a556]30.byte $30; C4 [a557]2f.byte $2f; B3 [a558]b0.byte $b0; Note length: 48 [a559]34.byte $34; E4 [a55a]90.byte $90; Note length: 16 [a55b]31.byte $31; C#4 [a55c]33.byte $33; D#4 [a55d]31.byte $31; C#4 [a55e]2f.byte $2f; B3 [a55f]2d.byte $2d; A3 [a560]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a561]2b.byte $2b; G3 [a562]28.byte $28; E3 [a563]2a.byte $2a; F#3 [a564]2b.byte $2b; G3 [a565]2d.byte $2d; A3 [a566]2a.byte $2a; F#3 [a567]2d.byte $2d; A3 [a568]2f.byte $2f; B3 [a569]26.byte $26; D3 [a56a]2b.byte $2b; G3 [a56b]2d.byte $2d; A3 [a56c]2f.byte $2f; B3 [a56d]30.byte $30; C4 [a56e]2d.byte $2d; A3 [a56f]36.byte $36; F#4 [a570]32.byte $32; D4 [a571]2b.byte $2b; G3 [a572]2f.byte $2f; B3 [a573]2b.byte $2b; G3 [a574]2f.byte $2f; B3 [a575]34.byte $34; E4 [a576]32.byte $32; D4 [a577]30.byte $30; C4 [a578]2f.byte $2f; B3 [a579]31.byte $31; C#4 [a57a]34.byte $34; E4 [a57b]31.byte $31; C#4 [a57c]a0.byte $a0; Note length: 32 [a57d]33.byte $33; D#4 [a57e]90.byte $90; Note length: 16 [a57f]2b.byte $2b; G3 [a580]a0.byte $a0; Note length: 32 [a581]2a.byte $2a; F#3 [a582]90.byte $90; Note length: 16 [a583]38.byte $38; G#4 [a584]38.byte $38; G#4 [a585]38.byte $38; G#4 [a586]38.byte $38; G#4 [a587]a0.byte $a0; Note length: 32 [a588]38.byte $38; G#4 [a589]90.byte $90; Note length: 16 [a58a]3b.byte $3b; B4 [a58b]d0.byte $d0; Note length: 80 [a58c]39.byte $39; A4 [a58d]90.byte $90; Note length: 16 [a58e]39.byte $39; A4 [a58f]37.byte $37; G4 [a590]36.byte $36; F#4 [a591]34.byte $34; E4 [a592]a0.byte $a0; Note length: 32 [a593]32.byte $32; D4 [a594]3c.byte $3c; C5 [a595]39.byte $39; A4 [a596]36.byte $36; F#4 [a597]b0.byte $b0; Note length: 48 [a598]38.byte $38; G#4 [a599]a0.byte $a0; Note length: 32 [a59a]37.byte $37; G4 [a59b]90.byte $90; Note length: 16 [a59c]37.byte $37; G4 [a59d]39.byte $39; A4 [a59e]3b.byte $3b; B4 [a59f]b0.byte $b0; Note length: 48 [a5a0]3c.byte $3c; C5 [a5a1]90.byte $90; Note length: 16 [a5a2]34.byte $34; E4 [a5a3]a0.byte $a0; Note length: 32 [a5a4]34.byte $34; E4 [a5a5]90.byte $90; Note length: 16 [a5a6]30.byte $30; C4 [a5a7]34.byte $34; E4 [a5a8]39.byte $39; A4 [a5a9]32.byte $32; D4 [a5aa]39.byte $39; A4 [a5ab]30.byte $30; C4 [a5ac]34.byte $34; E4 [a5ad]2b.byte $2b; G3 [a5ae]34.byte $34; E4 [a5af]2d.byte $2d; A3 [a5b0]d6.byte $d6; Note length: 86 [a5b1]34.byte $34; E4 [a5b2]95.byte $95; Note length: 21 [a5b3]36.byte $36; F#4 [a5b4]34.byte $34; E4 [a5b5]a0.byte $a0; Note length: 32 [a5b6]33.byte $33; D#4 [a5b7]e0.byte $e0; Note length: 96 [a5b8]00.byte $00; Rest [a5b9]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a5ba]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_MANTRA [$PRG5::8f37] ;
[a5bb]MSCRIPT_MANTRA_TRI: [a5bb]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a5bc]02.byte $02; '- 2 iterations [a5bd]90.byte $90; Note length: 16 [a5be]1c.byte $1c; E4 [a5bf]28.byte $28; E5 [a5c0]23.byte $23; B4 [a5c1]1c.byte $1c; E4 [a5c2]1e.byte $1e; F#4 [a5c3]28.byte $28; E5 [a5c4]27.byte $27; D#5 [a5c5]23.byte $23; B4 [a5c6]1f.byte $1f; G4 [a5c7]28.byte $28; E5 [a5c8]23.byte $23; B4 [a5c9]1c.byte $1c; E4 [a5ca]21.byte $21; A4 [a5cb]2b.byte $2b; G5 [a5cc]28.byte $28; E5 [a5cd]1e.byte $1e; F#4 [a5ce]1f.byte $1f; G4 [a5cf]2b.byte $2b; G5 [a5d0]26.byte $26; D5 [a5d1]1f.byte $1f; G4 [a5d2]18.byte $18; C4 [a5d3]24.byte $24; C5 [a5d4]1f.byte $1f; G4 [a5d5]18.byte $18; C4 [a5d6]1e.byte $1e; F#4 [a5d7]2a.byte $2a; F#5 [a5d8]25.byte $25; C#5 [a5d9]1e.byte $1e; F#4 [a5da]23.byte $23; B4 [a5db]27.byte $27; D#5 [a5dc]2a.byte $2a; F#5 [a5dd]23.byte $23; B4 [a5de]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a5df]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a5e0]02.byte $02; '- 2 iterations [a5e1]90.byte $90; Note length: 16 [a5e2]10.byte $10; E3 [a5e3]1c.byte $1c; E4 [a5e4]17.byte $17; B3 [a5e5]10.byte $10; E3 [a5e6]12.byte $12; F#3 [a5e7]1c.byte $1c; E4 [a5e8]1b.byte $1b; D#4 [a5e9]17.byte $17; B3 [a5ea]13.byte $13; G3 [a5eb]1c.byte $1c; E4 [a5ec]17.byte $17; B3 [a5ed]10.byte $10; E3 [a5ee]15.byte $15; A3 [a5ef]1f.byte $1f; G4 [a5f0]1c.byte $1c; E4 [a5f1]12.byte $12; F#3 [a5f2]13.byte $13; G3 [a5f3]1f.byte $1f; G4 [a5f4]1a.byte $1a; D4 [a5f5]13.byte $13; G3 [a5f6]0c.byte $0c; C3 [a5f7]18.byte $18; C4 [a5f8]13.byte $13; G3 [a5f9]0c.byte $0c; C3 [a5fa]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a5fb]01.byte $01; '- 1 loop [a5fc]90.byte $90; Note length: 16 [a5fd]12.byte $12; F#3 [a5fe]1e.byte $1e; F#4 [a5ff]19.byte $19; C#4 [a600]12.byte $12; F#3 [a601]17.byte $17; B3 [a602]23.byte $23; B4 [a603]1e.byte $1e; F#4 [a604]17.byte $17; B3 [a605]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a606]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [a607]02.byte $02; '- 2 loops [a608]90.byte $90; Note length: 16 [a609]12.byte $12; F#3 [a60a]19.byte $19; C#4 [a60b]1c.byte $1c; E4 [a60c]a0.byte $a0; Note length: 32 [a60d]17.byte $17; B3 [a60e]90.byte $90; Note length: 16 [a60f]17.byte $17; B3 [a610]18.byte $18; C4 [a611]17.byte $17; B3 [a612]1c.byte $1c; E4 [a613]23.byte $23; B4 [a614]28.byte $28; E5 [a615]23.byte $23; B4 [a616]1c.byte $1c; E4 [a617]20.byte $20; G#4 [a618]23.byte $23; B4 [a619]1c.byte $1c; E4 [a61a]15.byte $15; A3 [a61b]18.byte $18; C4 [a61c]21.byte $21; A4 [a61d]1c.byte $1c; E4 [a61e]15.byte $15; A3 [a61f]18.byte $18; C4 [a620]1c.byte $1c; E4 [a621]21.byte $21; A4 [a622]0e.byte $0e; D3 [a623]15.byte $15; A3 [a624]1a.byte $1a; D4 [a625]15.byte $15; A3 [a626]0e.byte $0e; D3 [a627]12.byte $12; F#3 [a628]15.byte $15; A3 [a629]1a.byte $1a; D4 [a62a]1b.byte $1b; D#4 [a62b]18.byte $18; C4 [a62c]14.byte $14; G#3 [a62d]a0.byte $a0; Note length: 32 [a62e]13.byte $13; G3 [a62f]90.byte $90; Note length: 16 [a630]1a.byte $1a; D4 [a631]1f.byte $1f; G4 [a632]1a.byte $1a; D4 [a633]18.byte $18; C4 [a634]1c.byte $1c; E4 [a635]1f.byte $1f; G4 [a636]24.byte $24; C5 [a637]1f.byte $1f; G4 [a638]1c.byte $1c; E4 [a639]18.byte $18; C4 [a63a]13.byte $13; G3 [a63b]15.byte $15; A3 [a63c]18.byte $18; C4 [a63d]1c.byte $1c; E4 [a63e]21.byte $21; A4 [a63f]21.byte $21; A4 [a640]1c.byte $1c; E4 [a641]18.byte $18; C4 [a642]15.byte $15; A3 [a643]12.byte $12; F#3 [a644]15.byte $15; A3 [a645]18.byte $18; C4 [a646]1c.byte $1c; E4 [a647]96.byte $96; Note length: 22 [a648]1e.byte $1e; F#4 [a649]95.byte $95; Note length: 21 [a64a]1c.byte $1c; E4 [a64b]18.byte $18; C4 [a64c]90.byte $90; Note length: 16 [a64d]17.byte $17; B3 [a64e]00.byte $00; Rest [a64f]84.byte $84; Note length: 4 [a650]23.byte $23; B4 [a651]24.byte $24; C5 [a652]88.byte $88; Note length: 8 [a653]23.byte $23; B4 [a654]a0.byte $a0; Note length: 32 [a655]23.byte $23; B4 [a656]90.byte $90; Note length: 16 [a657]21.byte $21; A4 [a658]1f.byte $1f; G4 [a659]1e.byte $1e; F#4 [a65a]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a65b]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_MANTRA [$PRG5::8f39] ;
[a65c]MSCRIPT_MANTRA_NOISE: [a65c]ff.byte MSCRIPT_OP_END; MScriptOp [a65d]ff.byte MSCRIPT_OP_END; MScriptOp
;============================================================================ ; Music for Macon/Victim. ; ; XREFS: ; MSCRIPTS_MASCON_VICTIM [$PRG5::8f3b] ;============================================================================
; ; XREFS: ; MSCRIPTS_MASCON_VICTIM [$PRG5::8f3b] ;
[a65e]MSCRIPT_MASCON_VICTIM_SQ1: [a65e]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a65f]02.byte $02; '- Reduce volume by 2 [a660]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a661]50.byte $50; '- Duty cycle 1 Constant volume/envelope [a662]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [a663]00.byte $00; '- Mode 0: Linear decay [a664]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [a665]a0.byte $a0; '- 160 ticks [a666]00.byte $00; Rest [a667]00.byte $00; Rest [a668]00.byte $00; Rest [a669]00.byte $00; Rest [a66a]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a66b]03.byte $03; '- 3 iterations [a66c]8a.byte $8a; Note length: 10 [a66d]00.byte $00; Rest [a66e]00.byte $00; Rest [a66f]2d.byte $2d; A3 [a670]00.byte $00; Rest [a671]00.byte $00; Rest [a672]2f.byte $2f; B3 [a673]00.byte $00; Rest [a674]00.byte $00; Rest [a675]30.byte $30; C4 [a676]00.byte $00; Rest [a677]00.byte $00; Rest [a678]2f.byte $2f; B3 [a679]00.byte $00; Rest [a67a]00.byte $00; Rest [a67b]00.byte $00; Rest [a67c]2d.byte $2d; A3 [a67d]00.byte $00; Rest [a67e]2d.byte $2d; A3 [a67f]2c.byte $2c; G#3 [a680]2d.byte $2d; A3 [a681]2f.byte $2f; B3 [a682]00.byte $00; Rest [a683]2f.byte $2f; B3 [a684]00.byte $00; Rest [a685]30.byte $30; C4 [a686]00.byte $00; Rest [a687]30.byte $30; C4 [a688]2f.byte $2f; B3 [a689]00.byte $00; Rest [a68a]00.byte $00; Rest [a68b]00.byte $00; Rest [a68c]00.byte $00; Rest [a68d]00.byte $00; Rest [a68e]00.byte $00; Rest [a68f]2b.byte $2b; G3 [a690]00.byte $00; Rest [a691]00.byte $00; Rest [a692]2d.byte $2d; A3 [a693]00.byte $00; Rest [a694]00.byte $00; Rest [a695]2e.byte $2e; A#3 [a696]00.byte $00; Rest [a697]00.byte $00; Rest [a698]2d.byte $2d; A3 [a699]00.byte $00; Rest [a69a]00.byte $00; Rest [a69b]00.byte $00; Rest [a69c]2b.byte $2b; G3 [a69d]00.byte $00; Rest [a69e]2b.byte $2b; G3 [a69f]2a.byte $2a; F#3 [a6a0]2b.byte $2b; G3 [a6a1]2d.byte $2d; A3 [a6a2]00.byte $00; Rest [a6a3]2d.byte $2d; A3 [a6a4]00.byte $00; Rest [a6a5]2e.byte $2e; A#3 [a6a6]00.byte $00; Rest [a6a7]2e.byte $2e; A#3 [a6a8]2d.byte $2d; A3 [a6a9]00.byte $00; Rest [a6aa]00.byte $00; Rest [a6ab]00.byte $00; Rest [a6ac]00.byte $00; Rest [a6ad]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a6ae]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a6af]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_MASCON_VICTIM [$PRG5::8f3d] ;
[a6b0]MSCRIPT_MASCON_VICTIM_SQ2: [a6b0]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a6b1]02.byte $02; '- Reduce volume by 2 [a6b2]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a6b3]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a6b4]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [a6b5]a0.byte $a0; '- 160 ticks [a6b6]00.byte $00; Rest [a6b7]00.byte $00; Rest [a6b8]00.byte $00; Rest [a6b9]00.byte $00; Rest [a6ba]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a6bb]03.byte $03; '- 3 iterations [a6bc]8a.byte $8a; Note length: 10 [a6bd]00.byte $00; Rest [a6be]00.byte $00; Rest [a6bf]29.byte $29; F3 [a6c0]00.byte $00; Rest [a6c1]00.byte $00; Rest [a6c2]2b.byte $2b; G3 [a6c3]00.byte $00; Rest [a6c4]00.byte $00; Rest [a6c5]2d.byte $2d; A3 [a6c6]00.byte $00; Rest [a6c7]00.byte $00; Rest [a6c8]2b.byte $2b; G3 [a6c9]00.byte $00; Rest [a6ca]00.byte $00; Rest [a6cb]00.byte $00; Rest [a6cc]29.byte $29; F3 [a6cd]00.byte $00; Rest [a6ce]29.byte $29; F3 [a6cf]28.byte $28; E3 [a6d0]29.byte $29; F3 [a6d1]2b.byte $2b; G3 [a6d2]00.byte $00; Rest [a6d3]2b.byte $2b; G3 [a6d4]00.byte $00; Rest [a6d5]2d.byte $2d; A3 [a6d6]00.byte $00; Rest [a6d7]2d.byte $2d; A3 [a6d8]2b.byte $2b; G3 [a6d9]00.byte $00; Rest [a6da]00.byte $00; Rest [a6db]00.byte $00; Rest [a6dc]00.byte $00; Rest [a6dd]00.byte $00; Rest [a6de]00.byte $00; Rest [a6df]27.byte $27; D#3 [a6e0]00.byte $00; Rest [a6e1]00.byte $00; Rest [a6e2]29.byte $29; F3 [a6e3]00.byte $00; Rest [a6e4]00.byte $00; Rest [a6e5]2b.byte $2b; G3 [a6e6]00.byte $00; Rest [a6e7]00.byte $00; Rest [a6e8]29.byte $29; F3 [a6e9]00.byte $00; Rest [a6ea]00.byte $00; Rest [a6eb]00.byte $00; Rest [a6ec]27.byte $27; D#3 [a6ed]00.byte $00; Rest [a6ee]27.byte $27; D#3 [a6ef]26.byte $26; D3 [a6f0]27.byte $27; D#3 [a6f1]29.byte $29; F3 [a6f2]00.byte $00; Rest [a6f3]29.byte $29; F3 [a6f4]00.byte $00; Rest [a6f5]2b.byte $2b; G3 [a6f6]00.byte $00; Rest [a6f7]2b.byte $2b; G3 [a6f8]29.byte $29; F3 [a6f9]00.byte $00; Rest [a6fa]00.byte $00; Rest [a6fb]00.byte $00; Rest [a6fc]00.byte $00; Rest [a6fd]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a6fe]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a6ff]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_MASCON_VICTIM [$PRG5::8f3f] ;
[a700]MSCRIPT_MASCON_VICTIM_TRI: [a700]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a701]02.byte $02; '- 2 iterations [a702]8a.byte $8a; Note length: 10 [a703]1f.byte $1f; G4 [a704]00.byte $00; Rest [a705]00.byte $00; Rest [a706]00.byte $00; Rest [a707]1f.byte $1f; G4 [a708]00.byte $00; Rest [a709]00.byte $00; Rest [a70a]1f.byte $1f; G4 [a70b]1f.byte $1f; G4 [a70c]00.byte $00; Rest [a70d]1f.byte $1f; G4 [a70e]00.byte $00; Rest [a70f]00.byte $00; Rest [a710]00.byte $00; Rest [a711]00.byte $00; Rest [a712]00.byte $00; Rest [a713]1f.byte $1f; G4 [a714]00.byte $00; Rest [a715]1e.byte $1e; F#4 [a716]1f.byte $1f; G4 [a717]00.byte $00; Rest [a718]1f.byte $1f; G4 [a719]00.byte $00; Rest [a71a]1f.byte $1f; G4 [a71b]1f.byte $1f; G4 [a71c]00.byte $00; Rest [a71d]1f.byte $1f; G4 [a71e]00.byte $00; Rest [a71f]00.byte $00; Rest [a720]00.byte $00; Rest [a721]1a.byte $1a; D4 [a722]18.byte $18; C4 [a723]1d.byte $1d; F4 [a724]00.byte $00; Rest [a725]00.byte $00; Rest [a726]00.byte $00; Rest [a727]1d.byte $1d; F4 [a728]00.byte $00; Rest [a729]00.byte $00; Rest [a72a]1d.byte $1d; F4 [a72b]1d.byte $1d; F4 [a72c]00.byte $00; Rest [a72d]1d.byte $1d; F4 [a72e]00.byte $00; Rest [a72f]00.byte $00; Rest [a730]00.byte $00; Rest [a731]00.byte $00; Rest [a732]00.byte $00; Rest [a733]1d.byte $1d; F4 [a734]00.byte $00; Rest [a735]1c.byte $1c; E4 [a736]1d.byte $1d; F4 [a737]00.byte $00; Rest [a738]1d.byte $1d; F4 [a739]00.byte $00; Rest [a73a]1d.byte $1d; F4 [a73b]1d.byte $1d; F4 [a73c]00.byte $00; Rest [a73d]1d.byte $1d; F4 [a73e]00.byte $00; Rest [a73f]00.byte $00; Rest [a740]00.byte $00; Rest [a741]1d.byte $1d; F4 [a742]1e.byte $1e; F#4 [a743]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a744]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a745]02.byte $02; '- 2 iterations [a746]8a.byte $8a; Note length: 10 [a747]13.byte $13; G3 [a748]1f.byte $1f; G4 [a749]1f.byte $1f; G4 [a74a]13.byte $13; G3 [a74b]13.byte $13; G3 [a74c]1f.byte $1f; G4 [a74d]1f.byte $1f; G4 [a74e]13.byte $13; G3 [a74f]13.byte $13; G3 [a750]1f.byte $1f; G4 [a751]13.byte $13; G3 [a752]1f.byte $1f; G4 [a753]1f.byte $1f; G4 [a754]13.byte $13; G3 [a755]1f.byte $1f; G4 [a756]1f.byte $1f; G4 [a757]13.byte $13; G3 [a758]1f.byte $1f; G4 [a759]12.byte $12; F#3 [a75a]13.byte $13; G3 [a75b]1f.byte $1f; G4 [a75c]13.byte $13; G3 [a75d]1f.byte $1f; G4 [a75e]13.byte $13; G3 [a75f]13.byte $13; G3 [a760]1f.byte $1f; G4 [a761]13.byte $13; G3 [a762]13.byte $13; G3 [a763]1f.byte $1f; G4 [a764]13.byte $13; G3 [a765]0e.byte $0e; D3 [a766]0c.byte $0c; C3 [a767]11.byte $11; F3 [a768]11.byte $11; F3 [a769]1d.byte $1d; F4 [a76a]1d.byte $1d; F4 [a76b]11.byte $11; F3 [a76c]1d.byte $1d; F4 [a76d]1d.byte $1d; F4 [a76e]11.byte $11; F3 [a76f]11.byte $11; F3 [a770]1d.byte $1d; F4 [a771]11.byte $11; F3 [a772]1d.byte $1d; F4 [a773]1d.byte $1d; F4 [a774]11.byte $11; F3 [a775]1d.byte $1d; F4 [a776]1d.byte $1d; F4 [a777]11.byte $11; F3 [a778]1d.byte $1d; F4 [a779]10.byte $10; E3 [a77a]11.byte $11; F3 [a77b]1d.byte $1d; F4 [a77c]11.byte $11; F3 [a77d]1d.byte $1d; F4 [a77e]1d.byte $1d; F4 [a77f]11.byte $11; F3 [a780]1d.byte $1d; F4 [a781]11.byte $11; F3 [a782]11.byte $11; F3 [a783]1d.byte $1d; F4 [a784]11.byte $11; F3 [a785]11.byte $11; F3 [a786]12.byte $12; F#3 [a787]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a788]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a789]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_MASCON_VICTIM [$PRG5::8f41] ;
[a78a]MSCRIPT_MASCON_VICTIM_NOISE: [a78a]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a78b]08.byte $08; '- 8 iterations [a78c]8a.byte $8a; Note length: 10 [a78d]31.byte $31; A9 [a78e]31.byte $31; A9 [a78f]31.byte $31; A9 [a790]31.byte $31; A9 [a791]31.byte $31; A9 [a792]31.byte $31; A9 [a793]31.byte $31; A9 [a794]31.byte $31; A9 [a795]31.byte $31; A9 [a796]31.byte $31; A9 [a797]31.byte $31; A9 [a798]31.byte $31; A9 [a799]31.byte $31; A9 [a79a]31.byte $31; A9 [a79b]85.byte $85; Note length: 5 [a79c]31.byte $31; A9 [a79d]31.byte $31; A9 [a79e]31.byte $31; A9 [a79f]31.byte $31; A9 [a7a0]8a.byte $8a; Note length: 10 [a7a1]31.byte $31; A9 [a7a2]31.byte $31; A9 [a7a3]31.byte $31; A9 [a7a4]31.byte $31; A9 [a7a5]31.byte $31; A9 [a7a6]31.byte $31; A9 [a7a7]31.byte $31; A9 [a7a8]31.byte $31; A9 [a7a9]31.byte $31; A9 [a7aa]31.byte $31; A9 [a7ab]31.byte $31; A9 [a7ac]31.byte $31; A9 [a7ad]85.byte $85; Note length: 5 [a7ae]31.byte $31; A9 [a7af]31.byte $31; A9 [a7b0]31.byte $31; A9 [a7b1]31.byte $31; A9 [a7b2]8a.byte $8a; Note length: 10 [a7b3]31.byte $31; A9 [a7b4]31.byte $31; A9 [a7b5]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a7b6]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a7b7]ff.byte MSCRIPT_OP_END; Op: End [a7b8]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for boss battles. ; ; XREFS: ; MSCRIPTS_BOSS [$PRG5::8f43] ;============================================================================
; ; XREFS: ; MSCRIPTS_BOSS [$PRG5::8f43] ;
[a7b9]MSCRIPT_BOSS_SQ1: [a7b9]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a7ba]02.byte $02; '- Reduce volume by 2 [a7bb]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a7bc]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a7bd]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [a7be]01.byte $01; '- Mode 1: Curve but held [a7bf]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a7c0]02.byte $02; '- 2 iterations [a7c1]8f.byte $8f; Note length: 15 [a7c2]34.byte $34; E4 [a7c3]28.byte $28; E3 [a7c4]33.byte $33; D#4 [a7c5]27.byte $27; D#3 [a7c6]2f.byte $2f; B3 [a7c7]23.byte $23; B2 [a7c8]2e.byte $2e; A#3 [a7c9]22.byte $22; A#2 [a7ca]34.byte $34; E4 [a7cb]28.byte $28; E3 [a7cc]33.byte $33; D#4 [a7cd]27.byte $27; D#3 [a7ce]2f.byte $2f; B3 [a7cf]23.byte $23; B2 [a7d0]2e.byte $2e; A#3 [a7d1]22.byte $22; A#2 [a7d2]35.byte $35; F4 [a7d3]29.byte $29; F3 [a7d4]34.byte $34; E4 [a7d5]28.byte $28; E3 [a7d6]30.byte $30; C4 [a7d7]24.byte $24; C3 [a7d8]2f.byte $2f; B3 [a7d9]23.byte $23; B2 [a7da]35.byte $35; F4 [a7db]29.byte $29; F3 [a7dc]34.byte $34; E4 [a7dd]28.byte $28; E3 [a7de]30.byte $30; C4 [a7df]24.byte $24; C3 [a7e0]2f.byte $2f; B3 [a7e1]23.byte $23; B2 [a7e2]38.byte $38; G#4 [a7e3]37.byte $37; G4 [a7e4]2c.byte $2c; G#3 [a7e5]2d.byte $2d; A3 [a7e6]38.byte $38; G#4 [a7e7]37.byte $37; G4 [a7e8]2c.byte $2c; G#3 [a7e9]2d.byte $2d; A3 [a7ea]97.byte $97; Note length: 23 [a7eb]3a.byte $3a; A#4 [a7ec]87.byte $87; Note length: 7 [a7ed]39.byte $39; A4 [a7ee]97.byte $97; Note length: 23 [a7ef]2d.byte $2d; A3 [a7f0]87.byte $87; Note length: 7 [a7f1]2e.byte $2e; A#3 [a7f2]97.byte $97; Note length: 23 [a7f3]3d.byte $3d; C#5 [a7f4]87.byte $87; Note length: 7 [a7f5]3c.byte $3c; C5 [a7f6]97.byte $97; Note length: 23 [a7f7]30.byte $30; C4 [a7f8]87.byte $87; Note length: 7 [a7f9]31.byte $31; C#4 [a7fa]85.byte $85; Note length: 5 [a7fb]43.byte $43; G5 [a7fc]42.byte $42; F#5 [a7fd]41.byte $41; F5 [a7fe]3c.byte $3c; C5 [a7ff]3b.byte $3b; B4 [a800]3a.byte $3a; A#4 [a801]37.byte $37; G4 [a802]36.byte $36; F#4 [a803]35.byte $35; F4 [a804]30.byte $30; C4 [a805]2f.byte $2f; B3 [a806]2c.byte $2c; G#3 [a807]2b.byte $2b; G3 [a808]2a.byte $2a; F#3 [a809]29.byte $29; F3 [a80a]24.byte $24; C3 [a80b]23.byte $23; B2 [a80c]22.byte $22; A#2 [a80d]18.byte $18; C2 [a80e]19.byte $19; C#2 [a80f]1a.byte $1a; D2 [a810]1b.byte $1b; D#2 [a811]1c.byte $1c; E2 [a812]1d.byte $1d; F2 [a813]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a814]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a815]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_BOSS [$PRG5::8f45] ;
[a816]MSCRIPT_BOSS_SQ2: [a816]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a817]04.byte $04; '- Reduce volume by 4 [a818]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a819]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a81a]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a81b]17.byte $17; '- Duty cycle 0 Constant volume/envelope [a81c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a81d]02.byte $02; '- 2 iterations [a81e]88.byte $88; Note length: 8 [a81f]00.byte $00; Rest [a820]8f.byte $8f; Note length: 15 [a821]34.byte $34; E4 [a822]28.byte $28; E3 [a823]33.byte $33; D#4 [a824]27.byte $27; D#3 [a825]2f.byte $2f; B3 [a826]23.byte $23; B2 [a827]2e.byte $2e; A#3 [a828]22.byte $22; A#2 [a829]34.byte $34; E4 [a82a]28.byte $28; E3 [a82b]33.byte $33; D#4 [a82c]27.byte $27; D#3 [a82d]2f.byte $2f; B3 [a82e]23.byte $23; B2 [a82f]2e.byte $2e; A#3 [a830]22.byte $22; A#2 [a831]35.byte $35; F4 [a832]29.byte $29; F3 [a833]34.byte $34; E4 [a834]28.byte $28; E3 [a835]30.byte $30; C4 [a836]24.byte $24; C3 [a837]2f.byte $2f; B3 [a838]23.byte $23; B2 [a839]35.byte $35; F4 [a83a]29.byte $29; F3 [a83b]34.byte $34; E4 [a83c]28.byte $28; E3 [a83d]30.byte $30; C4 [a83e]24.byte $24; C3 [a83f]2f.byte $2f; B3 [a840]23.byte $23; B2 [a841]38.byte $38; G#4 [a842]37.byte $37; G4 [a843]2c.byte $2c; G#3 [a844]2d.byte $2d; A3 [a845]38.byte $38; G#4 [a846]37.byte $37; G4 [a847]2c.byte $2c; G#3 [a848]2d.byte $2d; A3 [a849]97.byte $97; Note length: 23 [a84a]3a.byte $3a; A#4 [a84b]87.byte $87; Note length: 7 [a84c]39.byte $39; A4 [a84d]97.byte $97; Note length: 23 [a84e]2d.byte $2d; A3 [a84f]87.byte $87; Note length: 7 [a850]2e.byte $2e; A#3 [a851]97.byte $97; Note length: 23 [a852]3d.byte $3d; C#5 [a853]87.byte $87; Note length: 7 [a854]3c.byte $3c; C5 [a855]97.byte $97; Note length: 23 [a856]30.byte $30; C4 [a857]87.byte $87; Note length: 7 [a858]31.byte $31; C#4 [a859]85.byte $85; Note length: 5 [a85a]43.byte $43; G5 [a85b]42.byte $42; F#5 [a85c]41.byte $41; F5 [a85d]3c.byte $3c; C5 [a85e]3b.byte $3b; B4 [a85f]3a.byte $3a; A#4 [a860]37.byte $37; G4 [a861]36.byte $36; F#4 [a862]35.byte $35; F4 [a863]30.byte $30; C4 [a864]2f.byte $2f; B3 [a865]2c.byte $2c; G#3 [a866]2b.byte $2b; G3 [a867]2a.byte $2a; F#3 [a868]29.byte $29; F3 [a869]24.byte $24; C3 [a86a]23.byte $23; B2 [a86b]22.byte $22; A#2 [a86c]18.byte $18; C2 [a86d]19.byte $19; C#2 [a86e]1a.byte $1a; D2 [a86f]87.byte $87; Note length: 7 [a870]1b.byte $1b; D#2 [a871]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a872]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a873]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_BOSS [$PRG5::8f47] ;
[a874]MSCRIPT_BOSS_TRI: [a874]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a875]02.byte $02; '- 2 iterations [a876]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [a877]fd.byte $fd; '- Down 3 semitones [a878]8a.byte $8a; Note length: 10 [a879]13.byte $13; G3 [a87a]14.byte $14; G#3 [a87b]13.byte $13; G3 [a87c]14.byte $14; G#3 [a87d]13.byte $13; G3 [a87e]14.byte $14; G#3 [a87f]15.byte $15; A3 [a880]14.byte $14; G#3 [a881]15.byte $15; A3 [a882]14.byte $14; G#3 [a883]15.byte $15; A3 [a884]14.byte $14; G#3 [a885]13.byte $13; G3 [a886]14.byte $14; G#3 [a887]13.byte $13; G3 [a888]14.byte $14; G#3 [a889]13.byte $13; G3 [a88a]14.byte $14; G#3 [a88b]15.byte $15; A3 [a88c]14.byte $14; G#3 [a88d]15.byte $15; A3 [a88e]14.byte $14; G#3 [a88f]15.byte $15; A3 [a890]14.byte $14; G#3 [a891]14.byte $14; G#3 [a892]15.byte $15; A3 [a893]14.byte $14; G#3 [a894]15.byte $15; A3 [a895]14.byte $14; G#3 [a896]15.byte $15; A3 [a897]16.byte $16; A#3 [a898]15.byte $15; A3 [a899]16.byte $16; A#3 [a89a]15.byte $15; A3 [a89b]16.byte $16; A#3 [a89c]15.byte $15; A3 [a89d]14.byte $14; G#3 [a89e]15.byte $15; A3 [a89f]14.byte $14; G#3 [a8a0]15.byte $15; A3 [a8a1]14.byte $14; G#3 [a8a2]15.byte $15; A3 [a8a3]16.byte $16; A#3 [a8a4]15.byte $15; A3 [a8a5]16.byte $16; A#3 [a8a6]15.byte $15; A3 [a8a7]16.byte $16; A#3 [a8a8]15.byte $15; A3 [a8a9]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [a8aa]00.byte $00; '- Reset [a8ab]88.byte $88; Note length: 8 [a8ac]0f.byte $0f; D#3 [a8ad]87.byte $87; Note length: 7 [a8ae]1b.byte $1b; D#4 [a8af]88.byte $88; Note length: 8 [a8b0]27.byte $27; D#5 [a8b1]87.byte $87; Note length: 7 [a8b2]1b.byte $1b; D#4 [a8b3]88.byte $88; Note length: 8 [a8b4]0f.byte $0f; D#3 [a8b5]87.byte $87; Note length: 7 [a8b6]1b.byte $1b; D#4 [a8b7]88.byte $88; Note length: 8 [a8b8]27.byte $27; D#5 [a8b9]87.byte $87; Note length: 7 [a8ba]1b.byte $1b; D#4 [a8bb]88.byte $88; Note length: 8 [a8bc]0f.byte $0f; D#3 [a8bd]87.byte $87; Note length: 7 [a8be]1b.byte $1b; D#4 [a8bf]88.byte $88; Note length: 8 [a8c0]27.byte $27; D#5 [a8c1]87.byte $87; Note length: 7 [a8c2]1b.byte $1b; D#4 [a8c3]88.byte $88; Note length: 8 [a8c4]0f.byte $0f; D#3 [a8c5]87.byte $87; Note length: 7 [a8c6]1b.byte $1b; D#4 [a8c7]88.byte $88; Note length: 8 [a8c8]27.byte $27; D#5 [a8c9]87.byte $87; Note length: 7 [a8ca]1b.byte $1b; D#4 [a8cb]88.byte $88; Note length: 8 [a8cc]11.byte $11; F3 [a8cd]87.byte $87; Note length: 7 [a8ce]1d.byte $1d; F4 [a8cf]88.byte $88; Note length: 8 [a8d0]29.byte $29; F5 [a8d1]87.byte $87; Note length: 7 [a8d2]1d.byte $1d; F4 [a8d3]88.byte $88; Note length: 8 [a8d4]11.byte $11; F3 [a8d5]87.byte $87; Note length: 7 [a8d6]1d.byte $1d; F4 [a8d7]88.byte $88; Note length: 8 [a8d8]29.byte $29; F5 [a8d9]87.byte $87; Note length: 7 [a8da]1d.byte $1d; F4 [a8db]88.byte $88; Note length: 8 [a8dc]14.byte $14; G#3 [a8dd]87.byte $87; Note length: 7 [a8de]20.byte $20; G#4 [a8df]88.byte $88; Note length: 8 [a8e0]2c.byte $2c; G#5 [a8e1]87.byte $87; Note length: 7 [a8e2]20.byte $20; G#4 [a8e3]88.byte $88; Note length: 8 [a8e4]14.byte $14; G#3 [a8e5]87.byte $87; Note length: 7 [a8e6]20.byte $20; G#4 [a8e7]88.byte $88; Note length: 8 [a8e8]2c.byte $2c; G#5 [a8e9]87.byte $87; Note length: 7 [a8ea]20.byte $20; G#4 [a8eb]94.byte $94; Note length: 20 [a8ec]37.byte $37; G6 [a8ed]38.byte $38; G#6 [a8ee]2f.byte $2f; B5 [a8ef]23.byte $23; B4 [a8f0]8a.byte $8a; Note length: 10 [a8f1]29.byte $29; F5 [a8f2]2a.byte $2a; F#5 [a8f3]23.byte $23; B4 [a8f4]24.byte $24; C5 [a8f5]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a8f6]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a8f7]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_BOSS [$PRG5::8f49] ;
[a8f8]MSCRIPT_BOSS_NOISE: [a8f8]ff ff.byte $ff,$ff; byte
;============================================================================ ; TODO: Music 0x0B ; ; XREFS: ; MSCRIPTS_HOURGLASS [$PRG5::8f4b] ;============================================================================
; ; XREFS: ; MSCRIPTS_HOURGLASS [$PRG5::8f4b] ;
[a8fa]MSCRIPT_HOURGLASS_SQ1: [a8fa]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a8fb]02.byte $02; '- Reduce volume by 2 [a8fc]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a8fd]50.byte $50; '- Duty cycle 1 Constant volume/envelope [a8fe]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [a8ff]01.byte $01; '- Mode 1: Curve but held [a900]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a901]02.byte $02; '- 2 iterations [a902]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [a903]80.byte $80; '- 128 ticks [a904]00.byte $00; Rest [a905]c0.byte $c0; Note length: 64 [a906]00.byte $00; Rest [a907]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a908]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a909]03.byte $03; '- 3 iterations [a90a]84.byte $84; Note length: 4 [a90b]1f.byte $1f; G2 [a90c]24.byte $24; C3 [a90d]1f.byte $1f; G2 [a90e]00.byte $00; Rest [a90f]00.byte $00; Rest [a910]00.byte $00; Rest [a911]00.byte $00; Rest [a912]00.byte $00; Rest [a913]2b.byte $2b; G3 [a914]30.byte $30; C4 [a915]2b.byte $2b; G3 [a916]00.byte $00; Rest [a917]00.byte $00; Rest [a918]00.byte $00; Rest [a919]00.byte $00; Rest [a91a]00.byte $00; Rest [a91b]24.byte $24; C3 [a91c]29.byte $29; F3 [a91d]24.byte $24; C3 [a91e]00.byte $00; Rest [a91f]00.byte $00; Rest [a920]00.byte $00; Rest [a921]00.byte $00; Rest [a922]00.byte $00; Rest [a923]30.byte $30; C4 [a924]35.byte $35; F4 [a925]30.byte $30; C4 [a926]00.byte $00; Rest [a927]00.byte $00; Rest [a928]00.byte $00; Rest [a929]00.byte $00; Rest [a92a]00.byte $00; Rest [a92b]29.byte $29; F3 [a92c]2e.byte $2e; A#3 [a92d]29.byte $29; F3 [a92e]00.byte $00; Rest [a92f]00.byte $00; Rest [a930]00.byte $00; Rest [a931]00.byte $00; Rest [a932]00.byte $00; Rest [a933]35.byte $35; F4 [a934]3a.byte $3a; A#4 [a935]35.byte $35; F4 [a936]00.byte $00; Rest [a937]00.byte $00; Rest [a938]00.byte $00; Rest [a939]00.byte $00; Rest [a93a]00.byte $00; Rest [a93b]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a93c]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a93d]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_HOURGLASS [$PRG5::8f4d] ;
[a93e]MSCRIPT_HOURGLASS_SQ2: [a93e]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [a93f]02.byte $02; '- Reduce volume by 2 [a940]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a941]90.byte $90; '- Duty cycle 2 Constant volume/envelope [a942]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [a943]13.byte $13; '- Duty cycle 0 Constant volume/envelope [a944]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a945]02.byte $02; '- 2 iterations [a946]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [a947]80.byte $80; '- 128 ticks [a948]00.byte $00; Rest [a949]c0.byte $c0; Note length: 64 [a94a]00.byte $00; Rest [a94b]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a94c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a94d]03.byte $03; '- 3 iterations [a94e]84.byte $84; Note length: 4 [a94f]00.byte $00; Rest [a950]1f.byte $1f; G2 [a951]24.byte $24; C3 [a952]1f.byte $1f; G2 [a953]00.byte $00; Rest [a954]00.byte $00; Rest [a955]00.byte $00; Rest [a956]00.byte $00; Rest [a957]00.byte $00; Rest [a958]2b.byte $2b; G3 [a959]30.byte $30; C4 [a95a]2b.byte $2b; G3 [a95b]00.byte $00; Rest [a95c]00.byte $00; Rest [a95d]00.byte $00; Rest [a95e]00.byte $00; Rest [a95f]00.byte $00; Rest [a960]24.byte $24; C3 [a961]29.byte $29; F3 [a962]24.byte $24; C3 [a963]00.byte $00; Rest [a964]00.byte $00; Rest [a965]00.byte $00; Rest [a966]00.byte $00; Rest [a967]00.byte $00; Rest [a968]30.byte $30; C4 [a969]35.byte $35; F4 [a96a]30.byte $30; C4 [a96b]00.byte $00; Rest [a96c]00.byte $00; Rest [a96d]00.byte $00; Rest [a96e]00.byte $00; Rest [a96f]00.byte $00; Rest [a970]29.byte $29; F3 [a971]2e.byte $2e; A#3 [a972]29.byte $29; F3 [a973]00.byte $00; Rest [a974]00.byte $00; Rest [a975]00.byte $00; Rest [a976]00.byte $00; Rest [a977]00.byte $00; Rest [a978]35.byte $35; F4 [a979]3a.byte $3a; A#4 [a97a]35.byte $35; F4 [a97b]00.byte $00; Rest [a97c]00.byte $00; Rest [a97d]00.byte $00; Rest [a97e]00.byte $00; Rest [a97f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a980]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [a981]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_HOURGLASS [$PRG5::8f4f] ;
[a982]MSCRIPT_HOURGLASS_TRI: [a982]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a983]02.byte $02; '- 2 iterations [a984]84.byte $84; Note length: 4 [a985]0e.byte $0e; D3 [a986]00.byte $00; Rest [a987]00.byte $00; Rest [a988]00.byte $00; Rest [a989]0e.byte $0e; D3 [a98a]00.byte $00; Rest [a98b]00.byte $00; Rest [a98c]00.byte $00; Rest [a98d]1a.byte $1a; D4 [a98e]00.byte $00; Rest [a98f]00.byte $00; Rest [a990]00.byte $00; Rest [a991]1a.byte $1a; D4 [a992]00.byte $00; Rest [a993]00.byte $00; Rest [a994]00.byte $00; Rest [a995]13.byte $13; G3 [a996]00.byte $00; Rest [a997]00.byte $00; Rest [a998]00.byte $00; Rest [a999]13.byte $13; G3 [a99a]00.byte $00; Rest [a99b]00.byte $00; Rest [a99c]00.byte $00; Rest [a99d]1f.byte $1f; G4 [a99e]00.byte $00; Rest [a99f]00.byte $00; Rest [a9a0]00.byte $00; Rest [a9a1]1f.byte $1f; G4 [a9a2]00.byte $00; Rest [a9a3]00.byte $00; Rest [a9a4]00.byte $00; Rest [a9a5]18.byte $18; C4 [a9a6]00.byte $00; Rest [a9a7]00.byte $00; Rest [a9a8]00.byte $00; Rest [a9a9]18.byte $18; C4 [a9aa]00.byte $00; Rest [a9ab]00.byte $00; Rest [a9ac]00.byte $00; Rest [a9ad]24.byte $24; C5 [a9ae]00.byte $00; Rest [a9af]00.byte $00; Rest [a9b0]00.byte $00; Rest [a9b1]24.byte $24; C5 [a9b2]00.byte $00; Rest [a9b3]00.byte $00; Rest [a9b4]00.byte $00; Rest [a9b5]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a9b6]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [a9b7]02.byte $02; '- 2 iterations [a9b8]84.byte $84; Note length: 4 [a9b9]0e.byte $0e; D3 [a9ba]00.byte $00; Rest [a9bb]00.byte $00; Rest [a9bc]00.byte $00; Rest [a9bd]0e.byte $0e; D3 [a9be]00.byte $00; Rest [a9bf]00.byte $00; Rest [a9c0]00.byte $00; Rest [a9c1]1a.byte $1a; D4 [a9c2]00.byte $00; Rest [a9c3]00.byte $00; Rest [a9c4]00.byte $00; Rest [a9c5]1a.byte $1a; D4 [a9c6]00.byte $00; Rest [a9c7]00.byte $00; Rest [a9c8]00.byte $00; Rest [a9c9]13.byte $13; G3 [a9ca]00.byte $00; Rest [a9cb]00.byte $00; Rest [a9cc]00.byte $00; Rest [a9cd]13.byte $13; G3 [a9ce]00.byte $00; Rest [a9cf]00.byte $00; Rest [a9d0]00.byte $00; Rest [a9d1]1f.byte $1f; G4 [a9d2]00.byte $00; Rest [a9d3]00.byte $00; Rest [a9d4]00.byte $00; Rest [a9d5]1f.byte $1f; G4 [a9d6]00.byte $00; Rest [a9d7]00.byte $00; Rest [a9d8]00.byte $00; Rest [a9d9]18.byte $18; C4 [a9da]00.byte $00; Rest [a9db]00.byte $00; Rest [a9dc]00.byte $00; Rest [a9dd]18.byte $18; C4 [a9de]00.byte $00; Rest [a9df]00.byte $00; Rest [a9e0]00.byte $00; Rest [a9e1]24.byte $24; C5 [a9e2]00.byte $00; Rest [a9e3]00.byte $00; Rest [a9e4]00.byte $00; Rest [a9e5]24.byte $24; C5 [a9e6]00.byte $00; Rest [a9e7]00.byte $00; Rest [a9e8]00.byte $00; Rest [a9e9]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [a9ea]0e.byte $0e; D3 [a9eb]00.byte $00; Rest [a9ec]0e.byte $0e; D3 [a9ed]00.byte $00; Rest [a9ee]0e.byte $0e; D3 [a9ef]00.byte $00; Rest [a9f0]0e.byte $0e; D3 [a9f1]00.byte $00; Rest [a9f2]1a.byte $1a; D4 [a9f3]00.byte $00; Rest [a9f4]1a.byte $1a; D4 [a9f5]00.byte $00; Rest [a9f6]1a.byte $1a; D4 [a9f7]00.byte $00; Rest [a9f8]1a.byte $1a; D4 [a9f9]00.byte $00; Rest [a9fa]13.byte $13; G3 [a9fb]00.byte $00; Rest [a9fc]13.byte $13; G3 [a9fd]00.byte $00; Rest [a9fe]13.byte $13; G3 [a9ff]00.byte $00; Rest [aa00]13.byte $13; G3 [aa01]00.byte $00; Rest [aa02]1f.byte $1f; G4 [aa03]00.byte $00; Rest [aa04]1f.byte $1f; G4 [aa05]00.byte $00; Rest [aa06]1f.byte $1f; G4 [aa07]00.byte $00; Rest [aa08]1f.byte $1f; G4 [aa09]00.byte $00; Rest [aa0a]18.byte $18; C4 [aa0b]00.byte $00; Rest [aa0c]18.byte $18; C4 [aa0d]00.byte $00; Rest [aa0e]18.byte $18; C4 [aa0f]00.byte $00; Rest [aa10]18.byte $18; C4 [aa11]00.byte $00; Rest [aa12]24.byte $24; C5 [aa13]00.byte $00; Rest [aa14]24.byte $24; C5 [aa15]00.byte $00; Rest [aa16]24.byte $24; C5 [aa17]00.byte $00; Rest [aa18]24.byte $24; C5 [aa19]00.byte $00; Rest [aa1a]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [aa1b]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_HOURGLASS [$PRG5::8f51] ;
[aa1c]MSCRIPT_HOURGLASS_NOISE: [aa1c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aa1d]03.byte $03; '- 3 iterations [aa1e]84.byte $84; Note length: 4 [aa1f]31.byte $31; A9 [aa20]00.byte $00; Rest [aa21]00.byte $00; Rest [aa22]00.byte $00; Rest [aa23]31.byte $31; A9 [aa24]00.byte $00; Rest [aa25]00.byte $00; Rest [aa26]00.byte $00; Rest [aa27]31.byte $31; A9 [aa28]00.byte $00; Rest [aa29]00.byte $00; Rest [aa2a]00.byte $00; Rest [aa2b]31.byte $31; A9 [aa2c]00.byte $00; Rest [aa2d]00.byte $00; Rest [aa2e]00.byte $00; Rest [aa2f]31.byte $31; A9 [aa30]00.byte $00; Rest [aa31]00.byte $00; Rest [aa32]00.byte $00; Rest [aa33]31.byte $31; A9 [aa34]00.byte $00; Rest [aa35]00.byte $00; Rest [aa36]00.byte $00; Rest [aa37]31.byte $31; A9 [aa38]00.byte $00; Rest [aa39]00.byte $00; Rest [aa3a]00.byte $00; Rest [aa3b]31.byte $31; A9 [aa3c]00.byte $00; Rest [aa3d]00.byte $00; Rest [aa3e]00.byte $00; Rest [aa3f]31.byte $31; A9 [aa40]00.byte $00; Rest [aa41]00.byte $00; Rest [aa42]00.byte $00; Rest [aa43]31.byte $31; A9 [aa44]00.byte $00; Rest [aa45]00.byte $00; Rest [aa46]00.byte $00; Rest [aa47]31.byte $31; A9 [aa48]00.byte $00; Rest [aa49]00.byte $00; Rest [aa4a]00.byte $00; Rest [aa4b]31.byte $31; A9 [aa4c]00.byte $00; Rest [aa4d]00.byte $00; Rest [aa4e]00.byte $00; Rest [aa4f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [aa50]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aa51]02.byte $02; '- 2 iterations [aa52]84.byte $84; Note length: 4 [aa53]31.byte $31; A9 [aa54]00.byte $00; Rest [aa55]31.byte $31; A9 [aa56]00.byte $00; Rest [aa57]31.byte $31; A9 [aa58]00.byte $00; Rest [aa59]31.byte $31; A9 [aa5a]00.byte $00; Rest [aa5b]31.byte $31; A9 [aa5c]00.byte $00; Rest [aa5d]31.byte $31; A9 [aa5e]00.byte $00; Rest [aa5f]31.byte $31; A9 [aa60]00.byte $00; Rest [aa61]31.byte $31; A9 [aa62]00.byte $00; Rest [aa63]31.byte $31; A9 [aa64]00.byte $00; Rest [aa65]31.byte $31; A9 [aa66]00.byte $00; Rest [aa67]31.byte $31; A9 [aa68]00.byte $00; Rest [aa69]31.byte $31; A9 [aa6a]00.byte $00; Rest [aa6b]31.byte $31; A9 [aa6c]00.byte $00; Rest [aa6d]31.byte $31; A9 [aa6e]00.byte $00; Rest [aa6f]31.byte $31; A9 [aa70]00.byte $00; Rest [aa71]31.byte $31; A9 [aa72]00.byte $00; Rest [aa73]31.byte $31; A9 [aa74]00.byte $00; Rest [aa75]31.byte $31; A9 [aa76]00.byte $00; Rest [aa77]31.byte $31; A9 [aa78]00.byte $00; Rest [aa79]31.byte $31; A9 [aa7a]00.byte $00; Rest [aa7b]31.byte $31; A9 [aa7c]00.byte $00; Rest [aa7d]31.byte $31; A9 [aa7e]00.byte $00; Rest [aa7f]31.byte $31; A9 [aa80]00.byte $00; Rest [aa81]31.byte $31; A9 [aa82]00.byte $00; Rest [aa83]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [aa84]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [aa85]ff.byte MSCRIPT_OP_END; Op: End [aa86]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for the ending outro sequence. ; ; XREFS: ; MSCRIPTS_ENDING [$PRG5::8f53] ;============================================================================
; ; XREFS: ; MSCRIPTS_ENDING [$PRG5::8f53] ;
[aa87]MSCRIPT_ENDING_SQ1: [aa87]f7.byte MSCRIPT_OP_SET_GLOBAL_TRANSPOSE; Op: Set global transpose [aa88]ff.byte $ff; '- Down 1 semitone [aa89]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [aa8a]00.byte $00; '- Reduce volume by 0 [aa8b]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [aa8c]d0.byte $d0; '- Duty cycle 3 Constant volume/envelope [aa8d]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [aa8e]01.byte $01; '- Mode 1: Curve but held [aa8f]ef.byte MSCRIPT_OP_SET_SQ_PITCH_EFFECT_DEPTH; Op: Set SQ2 envelope depth [aa90]02.byte $02; '- 2 [aa91]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [aa92]f4.byte $f4; '- Down 1 octave [aa93]86.byte $86; Note length: 6 [aa94]1f.byte $1f; F#2 [aa95]21.byte $21; G#2 [aa96]23.byte $23; A#2 [aa97]24.byte $24; B2 [aa98]26.byte $26; C#3 [aa99]28.byte $28; D#3 [aa9a]29.byte $29; E3 [aa9b]2a.byte $2a; F3 [aa9c]2b.byte $2b; F#3 [aa9d]2d.byte $2d; G#3 [aa9e]2f.byte $2f; A#3 [aa9f]30.byte $30; B3 [aaa0]32.byte $32; C#4 [aaa1]34.byte $34; D#4 [aaa2]35.byte $35; E4 [aaa3]36.byte $36; F4 [aaa4]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [aaa5]90.byte $90; '- Duty cycle 2 Constant volume/envelope [aaa6]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aaa7]02.byte $02; '- 2 iterations [aaa8]b0.byte $b0; Note length: 48 [aaa9]37.byte $37; F#4 [aaaa]3c.byte $3c; B4 [aaab]3e.byte $3e; C#5 [aaac]45.byte $45; G#5 [aaad]c8.byte $c8; Note length: 72 [aaae]43.byte $43; F#5 [aaaf]8c.byte $8c; Note length: 12 [aab0]3c.byte $3c; B4 [aab1]3e.byte $3e; C#5 [aab2]3f.byte $3f; D5 [aab3]3c.byte $3c; B4 [aab4]3f.byte $3f; D5 [aab5]3e.byte $3e; C#5 [aab6]00.byte $00; Rest [aab7]3b.byte $3b; A#4 [aab8]98.byte $98; Note length: 24 [aab9]37.byte $37; F#4 [aaba]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [aabb]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aabc]02.byte $02; '- 2 iterations [aabd]a4.byte $a4; Note length: 36 [aabe]43.byte $43; F#5 [aabf]8c.byte $8c; Note length: 12 [aac0]3c.byte $3c; B4 [aac1]b0.byte $b0; Note length: 48 [aac2]3c.byte $3c; B4 [aac3]8c.byte $8c; Note length: 12 [aac4]41.byte $41; E5 [aac5]41.byte $41; E5 [aac6]40.byte $40; D#5 [aac7]a4.byte $a4; Note length: 36 [aac8]3c.byte $3c; B4 [aac9]8c.byte $8c; Note length: 12 [aaca]37.byte $37; F#4 [aacb]39.byte $39; G#4 [aacc]a4.byte $a4; Note length: 36 [aacd]3a.byte $3a; A4 [aace]8c.byte $8c; Note length: 12 [aacf]3a.byte $3a; A4 [aad0]39.byte $39; G#4 [aad1]3a.byte $3a; A4 [aad2]39.byte $39; G#4 [aad3]bc.byte $bc; Note length: 60 [aad4]37.byte $37; F#4 [aad5]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [aad6]01.byte $01; '- 1 loop [aad7]86.byte $86; Note length: 6 [aad8]37.byte $37; F#4 [aad9]39.byte $39; G#4 [aada]3b.byte $3b; A#4 [aadb]3c.byte $3c; B4 [aadc]3e.byte $3e; C#5 [aadd]40.byte $40; D#5 [aade]41.byte $41; E5 [aadf]42.byte $42; F5 [aae0]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [aae1]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [aae2]02.byte $02; '- 2 loops [aae3]86.byte $86; Note length: 6 [aae4]3c.byte $3c; B4 [aae5]3b.byte $3b; A#4 [aae6]3c.byte $3c; B4 [aae7]3e.byte $3e; C#5 [aae8]40.byte $40; D#5 [aae9]41.byte $41; E5 [aaea]42.byte $42; F5 [aaeb]43.byte $43; F#5 [aaec]b0.byte $b0; Note length: 48 [aaed]44.byte $44; G5 [aaee]46.byte $46; A5 [aaef]c8.byte $c8; Note length: 72 [aaf0]43.byte $43; F#5 [aaf1]8c.byte $8c; Note length: 12 [aaf2]3c.byte $3c; B4 [aaf3]3e.byte $3e; C#5 [aaf4]3f.byte $3f; D5 [aaf5]3f.byte $3f; D5 [aaf6]41.byte $41; E5 [aaf7]3e.byte $3e; C#5 [aaf8]00.byte $00; Rest [aaf9]3c.byte $3c; B4 [aafa]3a.byte $3a; A4 [aafb]98.byte $98; Note length: 24 [aafc]37.byte $37; F#4 [aafd]86.byte $86; Note length: 6 [aafe]38.byte $38; G4 [aaff]37.byte $37; F#4 [ab00]8c.byte $8c; Note length: 12 [ab01]35.byte $35; E4 [ab02]92.byte $92; Note length: 18 [ab03]37.byte $37; F#4 [ab04]86.byte $86; Note length: 6 [ab05]30.byte $30; B3 [ab06]33.byte $33; D4 [ab07]37.byte $37; F#4 [ab08]3c.byte $3c; B4 [ab09]37.byte $37; F#4 [ab0a]3c.byte $3c; B4 [ab0b]3f.byte $3f; D5 [ab0c]b0.byte $b0; Note length: 48 [ab0d]44.byte $44; G5 [ab0e]46.byte $46; A5 [ab0f]bc.byte $bc; Note length: 60 [ab10]43.byte $43; F#5 [ab11]8c.byte $8c; Note length: 12 [ab12]3c.byte $3c; B4 [ab13]3c.byte $3c; B4 [ab14]3e.byte $3e; C#5 [ab15]3f.byte $3f; D5 [ab16]3f.byte $3f; D5 [ab17]41.byte $41; E5 [ab18]3e.byte $3e; C#5 [ab19]00.byte $00; Rest [ab1a]3c.byte $3c; B4 [ab1b]98.byte $98; Note length: 24 [ab1c]3a.byte $3a; A4 [ab1d]8c.byte $8c; Note length: 12 [ab1e]3f.byte $3f; D5 [ab1f]3f.byte $3f; D5 [ab20]41.byte $41; E5 [ab21]3e.byte $3e; C#5 [ab22]00.byte $00; Rest [ab23]3c.byte $3c; B4 [ab24]3a.byte $3a; A4 [ab25]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [ab26]cc.byte $cc; '- 204 ticks [ab27]3c.byte $3c; B4 [ab28]86.byte $86; Note length: 6 [ab29]3f.byte $3f; D5 [ab2a]00.byte $00; Rest [ab2b]3c.byte $3c; B4 [ab2c]3f.byte $3f; D5 [ab2d]44.byte $44; G5 [ab2e]00.byte $00; Rest [ab2f]3f.byte $3f; D5 [ab30]44.byte $44; G5 [ab31]46.byte $46; A5 [ab32]41.byte $41; E5 [ab33]3e.byte $3e; C#5 [ab34]3a.byte $3a; A4 [ab35]3c.byte $3c; B4 [ab36]00.byte $00; Rest [ab37]3c.byte $3c; B4 [ab38]3c.byte $3c; B4 [ab39]88.byte $88; Note length: 8 [ab3a]3c.byte $3c; B4 [ab3b]00.byte $00; Rest [ab3c]00.byte $00; Rest [ab3d]00.byte $00; Rest [ab3e]3c.byte $3c; B4 [ab3f]37.byte $37; F#4 [ab40]3c.byte $3c; B4 [ab41]40.byte $40; D#5 [ab42]98.byte $98; Note length: 24 [ab43]3c.byte $3c; B4 [ab44]88.byte $88; Note length: 8 [ab45]00.byte $00; Rest [ab46]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_ENDING [$PRG5::8f55] ;
[ab47]MSCRIPT_ENDING_SQ2: [ab47]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [ab48]04.byte $04; '- Reduce volume by 4 [ab49]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [ab4a]d0.byte $d0; '- Duty cycle 3 Constant volume/envelope [ab4b]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [ab4c]00.byte $00; '- Mode 0: Linear decay [ab4d]ef.byte MSCRIPT_OP_SET_SQ_PITCH_EFFECT_DEPTH; Op: Set SQ2 envelope depth [ab4e]00.byte $00; '- 0 [ab4f]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [ab50]f4.byte $f4; '- Down 1 octave [ab51]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [ab52]13.byte $13; '- Duty cycle 0 Constant volume/envelope [ab53]98.byte $98; Note length: 24 [ab54]00.byte $00; Rest [ab55]86.byte $86; Note length: 6 [ab56]2d.byte $2d; A3 [ab57]2f.byte $2f; B3 [ab58]30.byte $30; C4 [ab59]32.byte $32; D4 [ab5a]34.byte $34; E4 [ab5b]35.byte $35; F4 [ab5c]37.byte $37; G4 [ab5d]39.byte $39; A4 [ab5e]3b.byte $3b; B4 [ab5f]3c.byte $3c; C5 [ab60]3e.byte $3e; D5 [ab61]3f.byte $3f; D#5 [ab62]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [ab63]50.byte $50; '- Duty cycle 1 Constant volume/envelope [ab64]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [ab65]01.byte $01; '- Mode 1: Curve but held [ab66]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [ab67]02.byte $02; '- 2 iterations [ab68]86.byte $86; Note length: 6 [ab69]40.byte $40; E5 [ab6a]40.byte $40; E5 [ab6b]40.byte $40; E5 [ab6c]00.byte $00; Rest [ab6d]48.byte $48; C6 [ab6e]37.byte $37; G4 [ab6f]40.byte $40; E5 [ab70]40.byte $40; E5 [ab71]40.byte $40; E5 [ab72]40.byte $40; E5 [ab73]40.byte $40; E5 [ab74]00.byte $00; Rest [ab75]48.byte $48; C6 [ab76]37.byte $37; G4 [ab77]40.byte $40; E5 [ab78]40.byte $40; E5 [ab79]41.byte $41; F5 [ab7a]41.byte $41; F5 [ab7b]41.byte $41; F5 [ab7c]00.byte $00; Rest [ab7d]48.byte $48; C6 [ab7e]39.byte $39; A4 [ab7f]41.byte $41; F5 [ab80]41.byte $41; F5 [ab81]41.byte $41; F5 [ab82]41.byte $41; F5 [ab83]41.byte $41; F5 [ab84]00.byte $00; Rest [ab85]48.byte $48; C6 [ab86]39.byte $39; A4 [ab87]41.byte $41; F5 [ab88]41.byte $41; F5 [ab89]40.byte $40; E5 [ab8a]40.byte $40; E5 [ab8b]40.byte $40; E5 [ab8c]00.byte $00; Rest [ab8d]48.byte $48; C6 [ab8e]37.byte $37; G4 [ab8f]40.byte $40; E5 [ab90]40.byte $40; E5 [ab91]40.byte $40; E5 [ab92]3c.byte $3c; C5 [ab93]37.byte $37; G4 [ab94]3c.byte $3c; C5 [ab95]40.byte $40; E5 [ab96]40.byte $40; E5 [ab97]43.byte $43; G5 [ab98]43.byte $43; G5 [ab99]38.byte $38; G#4 [ab9a]3c.byte $3c; C5 [ab9b]3f.byte $3f; D#5 [ab9c]44.byte $44; G#5 [ab9d]48.byte $48; C6 [ab9e]44.byte $44; G#5 [ab9f]37.byte $37; G4 [aba0]00.byte $00; Rest [aba1]00.byte $00; Rest [aba2]00.byte $00; Rest [aba3]2e.byte $2e; A#3 [aba4]32.byte $32; D4 [aba5]37.byte $37; G4 [aba6]3b.byte $3b; B4 [aba7]3e.byte $3e; D5 [aba8]3b.byte $3b; B4 [aba9]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [abaa]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [abab]02.byte $02; '- 2 iterations [abac]86.byte $86; Note length: 6 [abad]40.byte $40; E5 [abae]43.byte $43; G5 [abaf]37.byte $37; G4 [abb0]3c.byte $3c; C5 [abb1]40.byte $40; E5 [abb2]43.byte $43; G5 [abb3]37.byte $37; G4 [abb4]3c.byte $3c; C5 [abb5]40.byte $40; E5 [abb6]43.byte $43; G5 [abb7]37.byte $37; G4 [abb8]3c.byte $3c; C5 [abb9]40.byte $40; E5 [abba]43.byte $43; G5 [abbb]37.byte $37; G4 [abbc]3c.byte $3c; C5 [abbd]41.byte $41; F5 [abbe]43.byte $43; G5 [abbf]37.byte $37; G4 [abc0]3c.byte $3c; C5 [abc1]40.byte $40; E5 [abc2]43.byte $43; G5 [abc3]37.byte $37; G4 [abc4]3c.byte $3c; C5 [abc5]40.byte $40; E5 [abc6]43.byte $43; G5 [abc7]37.byte $37; G4 [abc8]3c.byte $3c; C5 [abc9]40.byte $40; E5 [abca]43.byte $43; G5 [abcb]3c.byte $3c; C5 [abcc]40.byte $40; E5 [abcd]33.byte $33; D#4 [abce]37.byte $37; G4 [abcf]3a.byte $3a; A#4 [abd0]3f.byte $3f; D#5 [abd1]43.byte $43; G5 [abd2]3f.byte $3f; D#5 [abd3]3a.byte $3a; A#4 [abd4]37.byte $37; G4 [abd5]35.byte $35; F4 [abd6]39.byte $39; A4 [abd7]3c.byte $3c; C5 [abd8]41.byte $41; F5 [abd9]3c.byte $3c; C5 [abda]39.byte $39; A4 [abdb]37.byte $37; G4 [abdc]32.byte $32; D4 [abdd]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [abde]01.byte $01; '- 1 loop [abdf]86.byte $86; Note length: 6 [abe0]37.byte $37; G4 [abe1]3c.byte $3c; C5 [abe2]40.byte $40; E5 [abe3]3c.byte $3c; C5 [abe4]37.byte $37; G4 [abe5]3c.byte $3c; C5 [abe6]40.byte $40; E5 [abe7]3c.byte $3c; C5 [abe8]40.byte $40; E5 [abe9]41.byte $41; F5 [abea]43.byte $43; G5 [abeb]45.byte $45; A5 [abec]47.byte $47; B5 [abed]48.byte $48; C6 [abee]4a.byte $4a; D6 [abef]4b.byte $4b; D#6 [abf0]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [abf1]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [abf2]02.byte $02; '- 2 loops [abf3]86.byte $86; Note length: 6 [abf4]37.byte $37; G4 [abf5]3c.byte $3c; C5 [abf6]40.byte $40; E5 [abf7]3c.byte $3c; C5 [abf8]37.byte $37; G4 [abf9]3c.byte $3c; C5 [abfa]40.byte $40; E5 [abfb]3c.byte $3c; C5 [abfc]40.byte $40; E5 [abfd]3f.byte $3f; D#5 [abfe]40.byte $40; E5 [abff]41.byte $41; F5 [ac00]43.byte $43; G5 [ac01]45.byte $45; A5 [ac02]47.byte $47; B5 [ac03]48.byte $48; C6 [ac04]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [ac05]02.byte $02; '- 2 iterations [ac06]86.byte $86; Note length: 6 [ac07]38.byte $38; G#4 [ac08]3c.byte $3c; C5 [ac09]3f.byte $3f; D#5 [ac0a]44.byte $44; G#5 [ac0b]48.byte $48; C6 [ac0c]4b.byte $4b; D#6 [ac0d]48.byte $48; C6 [ac0e]44.byte $44; G#5 [ac0f]3a.byte $3a; A#4 [ac10]3e.byte $3e; D5 [ac11]41.byte $41; F5 [ac12]46.byte $46; A#5 [ac13]4a.byte $4a; D6 [ac14]4d.byte $4d; F6 [ac15]4a.byte $4a; D6 [ac16]46.byte $46; A#5 [ac17]30.byte $30; C4 [ac18]34.byte $34; E4 [ac19]37.byte $37; G4 [ac1a]3c.byte $3c; C5 [ac1b]40.byte $40; E5 [ac1c]43.byte $43; G5 [ac1d]48.byte $48; C6 [ac1e]4c.byte $4c; E6 [ac1f]48.byte $48; C6 [ac20]43.byte $43; G5 [ac21]40.byte $40; E5 [ac22]3c.byte $3c; C5 [ac23]37.byte $37; G4 [ac24]34.byte $34; E4 [ac25]30.byte $30; C4 [ac26]34.byte $34; E4 [ac27]38.byte $38; G#4 [ac28]3c.byte $3c; C5 [ac29]3f.byte $3f; D#5 [ac2a]44.byte $44; G#5 [ac2b]48.byte $48; C6 [ac2c]44.byte $44; G#5 [ac2d]41.byte $41; F5 [ac2e]3e.byte $3e; D5 [ac2f]3a.byte $3a; A#4 [ac30]35.byte $35; F4 [ac31]3a.byte $3a; A#4 [ac32]3e.byte $3e; D5 [ac33]41.byte $41; F5 [ac34]3e.byte $3e; D5 [ac35]3a.byte $3a; A#4 [ac36]3e.byte $3e; D5 [ac37]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [ac38]01.byte $01; '- 1 loop [ac39]8c.byte $8c; Note length: 12 [ac3a]3f.byte $3f; D#5 [ac3b]86.byte $86; Note length: 6 [ac3c]41.byte $41; F5 [ac3d]3f.byte $3f; D#5 [ac3e]8c.byte $8c; Note length: 12 [ac3f]3c.byte $3c; C5 [ac40]3c.byte $3c; C5 [ac41]86.byte $86; Note length: 6 [ac42]30.byte $30; C4 [ac43]33.byte $33; D#4 [ac44]37.byte $37; G4 [ac45]3c.byte $3c; C5 [ac46]3f.byte $3f; D#5 [ac47]3c.byte $3c; C5 [ac48]37.byte $37; G4 [ac49]33.byte $33; D#4 [ac4a]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [ac4b]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [ac4c]02.byte $02; '- 2 loops [ac4d]86.byte $86; Note length: 6 [ac4e]3f.byte $3f; D#5 [ac4f]44.byte $44; G#5 [ac50]48.byte $48; C6 [ac51]44.byte $44; G#5 [ac52]3f.byte $3f; D#5 [ac53]44.byte $44; G#5 [ac54]8c.byte $8c; Note length: 12 [ac55]46.byte $46; A#5 [ac56]00.byte $00; Rest [ac57]41.byte $41; F5 [ac58]43.byte $43; G5 [ac59]92.byte $92; Note length: 18 [ac5a]40.byte $40; E5 [ac5b]86.byte $86; Note length: 6 [ac5c]3c.byte $3c; C5 [ac5d]37.byte $37; G4 [ac5e]3c.byte $3c; C5 [ac5f]34.byte $34; E4 [ac60]37.byte $37; G4 [ac61]30.byte $30; C4 [ac62]34.byte $34; E4 [ac63]40.byte $40; E5 [ac64]3c.byte $3c; C5 [ac65]37.byte $37; G4 [ac66]3c.byte $3c; C5 [ac67]34.byte $34; E4 [ac68]37.byte $37; G4 [ac69]30.byte $30; C4 [ac6a]34.byte $34; E4 [ac6b]3e.byte $3e; D5 [ac6c]3a.byte $3a; A#4 [ac6d]35.byte $35; F4 [ac6e]3a.byte $3a; A#4 [ac6f]32.byte $32; D4 [ac70]35.byte $35; F4 [ac71]2e.byte $2e; A#3 [ac72]32.byte $32; D4 [ac73]3e.byte $3e; D5 [ac74]3a.byte $3a; A#4 [ac75]35.byte $35; F4 [ac76]3a.byte $3a; A#4 [ac77]32.byte $32; D4 [ac78]35.byte $35; F4 [ac79]2e.byte $2e; A#3 [ac7a]32.byte $32; D4 [ac7b]3c.byte $3c; C5 [ac7c]38.byte $38; G#4 [ac7d]33.byte $33; D#4 [ac7e]38.byte $38; G#4 [ac7f]30.byte $30; C4 [ac80]33.byte $33; D#4 [ac81]2c.byte $2c; G#3 [ac82]30.byte $30; C4 [ac83]41.byte $41; F5 [ac84]3e.byte $3e; D5 [ac85]3a.byte $3a; A#4 [ac86]35.byte $35; F4 [ac87]3e.byte $3e; D5 [ac88]00.byte $00; Rest [ac89]3e.byte $3e; D5 [ac8a]3e.byte $3e; D5 [ac8b]88.byte $88; Note length: 8 [ac8c]34.byte $34; E4 [ac8d]00.byte $00; Rest [ac8e]00.byte $00; Rest [ac8f]00.byte $00; Rest [ac90]34.byte $34; E4 [ac91]30.byte $30; C4 [ac92]34.byte $34; E4 [ac93]37.byte $37; G4 [ac94]98.byte $98; Note length: 24 [ac95]34.byte $34; E4 [ac96]88.byte $88; Note length: 8 [ac97]00.byte $00; Rest [ac98]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_ENDING [$PRG5::8f57] ;
[ac99]MSCRIPT_ENDING_TRI: [ac99]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [ac9a]e8.byte $e8; '- Down 2 octaves [ac9b]b0.byte $b0; Note length: 48 [ac9c]00.byte $00; Rest [ac9d]86.byte $86; Note length: 6 [ac9e]3b.byte $3b; B6 [ac9f]3c.byte $3c; C7 [aca0]3e.byte $3e; D7 [aca1]40.byte $40; E7 [aca2]41.byte $41; F7 [aca3]43.byte $43; G7 [aca4]45.byte $45; A7 [aca5]47.byte $47; B7 [aca6]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aca7]02.byte $02; '- 2 iterations [aca8]86.byte $86; Note length: 6 [aca9]30.byte $30; C6 [acaa]30.byte $30; C6 [acab]30.byte $30; C6 [acac]30.byte $30; C6 [acad]30.byte $30; C6 [acae]00.byte $00; Rest [acaf]30.byte $30; C6 [acb0]30.byte $30; C6 [acb1]30.byte $30; C6 [acb2]30.byte $30; C6 [acb3]30.byte $30; C6 [acb4]30.byte $30; C6 [acb5]30.byte $30; C6 [acb6]00.byte $00; Rest [acb7]30.byte $30; C6 [acb8]30.byte $30; C6 [acb9]30.byte $30; C6 [acba]30.byte $30; C6 [acbb]30.byte $30; C6 [acbc]30.byte $30; C6 [acbd]30.byte $30; C6 [acbe]00.byte $00; Rest [acbf]30.byte $30; C6 [acc0]30.byte $30; C6 [acc1]30.byte $30; C6 [acc2]30.byte $30; C6 [acc3]30.byte $30; C6 [acc4]30.byte $30; C6 [acc5]30.byte $30; C6 [acc6]00.byte $00; Rest [acc7]30.byte $30; C6 [acc8]30.byte $30; C6 [acc9]30.byte $30; C6 [acca]30.byte $30; C6 [accb]30.byte $30; C6 [accc]30.byte $30; C6 [accd]30.byte $30; C6 [acce]00.byte $00; Rest [accf]30.byte $30; C6 [acd0]30.byte $30; C6 [acd1]30.byte $30; C6 [acd2]30.byte $30; C6 [acd3]30.byte $30; C6 [acd4]30.byte $30; C6 [acd5]30.byte $30; C6 [acd6]00.byte $00; Rest [acd7]30.byte $30; C6 [acd8]30.byte $30; C6 [acd9]2c.byte $2c; G#5 [acda]2c.byte $2c; G#5 [acdb]38.byte $38; G#6 [acdc]38.byte $38; G#6 [acdd]2c.byte $2c; G#5 [acde]2c.byte $2c; G#5 [acdf]2b.byte $2b; G5 [ace0]00.byte $00; Rest [ace1]00.byte $00; Rest [ace2]00.byte $00; Rest [ace3]37.byte $37; G6 [ace4]37.byte $37; G6 [ace5]2b.byte $2b; G5 [ace6]2b.byte $2b; G5 [ace7]2b.byte $2b; G5 [ace8]2b.byte $2b; G5 [ace9]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [acea]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aceb]02.byte $02; '- 2 iterations [acec]86.byte $86; Note length: 6 [aced]30.byte $30; C6 [acee]30.byte $30; C6 [acef]30.byte $30; C6 [acf0]30.byte $30; C6 [acf1]30.byte $30; C6 [acf2]00.byte $00; Rest [acf3]30.byte $30; C6 [acf4]30.byte $30; C6 [acf5]30.byte $30; C6 [acf6]30.byte $30; C6 [acf7]30.byte $30; C6 [acf8]30.byte $30; C6 [acf9]30.byte $30; C6 [acfa]00.byte $00; Rest [acfb]30.byte $30; C6 [acfc]30.byte $30; C6 [acfd]30.byte $30; C6 [acfe]30.byte $30; C6 [acff]30.byte $30; C6 [ad00]30.byte $30; C6 [ad01]30.byte $30; C6 [ad02]00.byte $00; Rest [ad03]30.byte $30; C6 [ad04]30.byte $30; C6 [ad05]30.byte $30; C6 [ad06]30.byte $30; C6 [ad07]30.byte $30; C6 [ad08]30.byte $30; C6 [ad09]30.byte $30; C6 [ad0a]00.byte $00; Rest [ad0b]30.byte $30; C6 [ad0c]30.byte $30; C6 [ad0d]33.byte $33; D#6 [ad0e]33.byte $33; D#6 [ad0f]33.byte $33; D#6 [ad10]33.byte $33; D#6 [ad11]33.byte $33; D#6 [ad12]00.byte $00; Rest [ad13]33.byte $33; D#6 [ad14]33.byte $33; D#6 [ad15]35.byte $35; F6 [ad16]35.byte $35; F6 [ad17]35.byte $35; F6 [ad18]35.byte $35; F6 [ad19]35.byte $35; F6 [ad1a]00.byte $00; Rest [ad1b]35.byte $35; F6 [ad1c]35.byte $35; F6 [ad1d]30.byte $30; C6 [ad1e]30.byte $30; C6 [ad1f]30.byte $30; C6 [ad20]30.byte $30; C6 [ad21]30.byte $30; C6 [ad22]00.byte $00; Rest [ad23]30.byte $30; C6 [ad24]30.byte $30; C6 [ad25]30.byte $30; C6 [ad26]30.byte $30; C6 [ad27]30.byte $30; C6 [ad28]30.byte $30; C6 [ad29]30.byte $30; C6 [ad2a]00.byte $00; Rest [ad2b]30.byte $30; C6 [ad2c]30.byte $30; C6 [ad2d]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [ad2e]2c.byte $2c; G#5 [ad2f]2c.byte $2c; G#5 [ad30]2c.byte $2c; G#5 [ad31]2c.byte $2c; G#5 [ad32]2c.byte $2c; G#5 [ad33]2c.byte $2c; G#5 [ad34]2c.byte $2c; G#5 [ad35]2c.byte $2c; G#5 [ad36]2e.byte $2e; A#5 [ad37]2e.byte $2e; A#5 [ad38]2e.byte $2e; A#5 [ad39]2e.byte $2e; A#5 [ad3a]2e.byte $2e; A#5 [ad3b]2e.byte $2e; A#5 [ad3c]2e.byte $2e; A#5 [ad3d]2e.byte $2e; A#5 [ad3e]30.byte $30; C6 [ad3f]30.byte $30; C6 [ad40]30.byte $30; C6 [ad41]30.byte $30; C6 [ad42]30.byte $30; C6 [ad43]00.byte $00; Rest [ad44]30.byte $30; C6 [ad45]30.byte $30; C6 [ad46]30.byte $30; C6 [ad47]30.byte $30; C6 [ad48]30.byte $30; C6 [ad49]30.byte $30; C6 [ad4a]30.byte $30; C6 [ad4b]00.byte $00; Rest [ad4c]30.byte $30; C6 [ad4d]30.byte $30; C6 [ad4e]2c.byte $2c; G#5 [ad4f]2c.byte $2c; G#5 [ad50]2c.byte $2c; G#5 [ad51]2c.byte $2c; G#5 [ad52]2c.byte $2c; G#5 [ad53]2c.byte $2c; G#5 [ad54]2e.byte $2e; A#5 [ad55]00.byte $00; Rest [ad56]00.byte $00; Rest [ad57]00.byte $00; Rest [ad58]2e.byte $2e; A#5 [ad59]2e.byte $2e; A#5 [ad5a]2e.byte $2e; A#5 [ad5b]2e.byte $2e; A#5 [ad5c]2e.byte $2e; A#5 [ad5d]2e.byte $2e; A#5 [ad5e]30.byte $30; C6 [ad5f]30.byte $30; C6 [ad60]30.byte $30; C6 [ad61]30.byte $30; C6 [ad62]30.byte $30; C6 [ad63]00.byte $00; Rest [ad64]30.byte $30; C6 [ad65]30.byte $30; C6 [ad66]30.byte $30; C6 [ad67]30.byte $30; C6 [ad68]30.byte $30; C6 [ad69]30.byte $30; C6 [ad6a]30.byte $30; C6 [ad6b]00.byte $00; Rest [ad6c]30.byte $30; C6 [ad6d]30.byte $30; C6 [ad6e]2c.byte $2c; G#5 [ad6f]2c.byte $2c; G#5 [ad70]2c.byte $2c; G#5 [ad71]2c.byte $2c; G#5 [ad72]2c.byte $2c; G#5 [ad73]2c.byte $2c; G#5 [ad74]2c.byte $2c; G#5 [ad75]2c.byte $2c; G#5 [ad76]2e.byte $2e; A#5 [ad77]2e.byte $2e; A#5 [ad78]2e.byte $2e; A#5 [ad79]2e.byte $2e; A#5 [ad7a]2e.byte $2e; A#5 [ad7b]2e.byte $2e; A#5 [ad7c]2e.byte $2e; A#5 [ad7d]2e.byte $2e; A#5 [ad7e]30.byte $30; C6 [ad7f]30.byte $30; C6 [ad80]30.byte $30; C6 [ad81]30.byte $30; C6 [ad82]30.byte $30; C6 [ad83]00.byte $00; Rest [ad84]30.byte $30; C6 [ad85]30.byte $30; C6 [ad86]30.byte $30; C6 [ad87]30.byte $30; C6 [ad88]30.byte $30; C6 [ad89]30.byte $30; C6 [ad8a]30.byte $30; C6 [ad8b]00.byte $00; Rest [ad8c]30.byte $30; C6 [ad8d]30.byte $30; C6 [ad8e]2c.byte $2c; G#5 [ad8f]2c.byte $2c; G#5 [ad90]2c.byte $2c; G#5 [ad91]2c.byte $2c; G#5 [ad92]2c.byte $2c; G#5 [ad93]2c.byte $2c; G#5 [ad94]2e.byte $2e; A#5 [ad95]00.byte $00; Rest [ad96]00.byte $00; Rest [ad97]00.byte $00; Rest [ad98]2e.byte $2e; A#5 [ad99]2e.byte $2e; A#5 [ad9a]2e.byte $2e; A#5 [ad9b]2e.byte $2e; A#5 [ad9c]2e.byte $2e; A#5 [ad9d]2e.byte $2e; A#5 [ad9e]2c.byte $2c; G#5 [ad9f]2c.byte $2c; G#5 [ada0]2c.byte $2c; G#5 [ada1]2c.byte $2c; G#5 [ada2]2c.byte $2c; G#5 [ada3]2c.byte $2c; G#5 [ada4]2e.byte $2e; A#5 [ada5]00.byte $00; Rest [ada6]00.byte $00; Rest [ada7]00.byte $00; Rest [ada8]2e.byte $2e; A#5 [ada9]2e.byte $2e; A#5 [adaa]2e.byte $2e; A#5 [adab]2e.byte $2e; A#5 [adac]8c.byte $8c; Note length: 12 [adad]30.byte $30; C6 [adae]86.byte $86; Note length: 6 [adaf]30.byte $30; C6 [adb0]30.byte $30; C6 [adb1]30.byte $30; C6 [adb2]30.byte $30; C6 [adb3]30.byte $30; C6 [adb4]30.byte $30; C6 [adb5]30.byte $30; C6 [adb6]30.byte $30; C6 [adb7]30.byte $30; C6 [adb8]30.byte $30; C6 [adb9]30.byte $30; C6 [adba]30.byte $30; C6 [adbb]30.byte $30; C6 [adbc]30.byte $30; C6 [adbd]30.byte $30; C6 [adbe]86.byte $86; Note length: 6 [adbf]2c.byte $2c; G#5 [adc0]2c.byte $2c; G#5 [adc1]2c.byte $2c; G#5 [adc2]2c.byte $2c; G#5 [adc3]2c.byte $2c; G#5 [adc4]2c.byte $2c; G#5 [adc5]2c.byte $2c; G#5 [adc6]2c.byte $2c; G#5 [adc7]2e.byte $2e; A#5 [adc8]2e.byte $2e; A#5 [adc9]2e.byte $2e; A#5 [adca]2e.byte $2e; A#5 [adcb]2e.byte $2e; A#5 [adcc]00.byte $00; Rest [adcd]2e.byte $2e; A#5 [adce]2e.byte $2e; A#5 [adcf]88.byte $88; Note length: 8 [add0]30.byte $30; C6 [add1]00.byte $00; Rest [add2]00.byte $00; Rest [add3]00.byte $00; Rest [add4]30.byte $30; C6 [add5]34.byte $34; E6 [add6]30.byte $30; C6 [add7]30.byte $30; C6 [add8]98.byte $98; Note length: 24 [add9]30.byte $30; C6 [adda]88.byte $88; Note length: 8 [addb]00.byte $00; Rest [addc]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_ENDING [$PRG5::8f59] ;
[addd]MSCRIPT_ENDING_NOISE: [addd]8c.byte $8c; Note length: 12 [adde]21.byte $21; A9 [addf]86.byte $86; Note length: 6 [ade0]31.byte $31; A9 [ade1]31.byte $31; A9 [ade2]8c.byte $8c; Note length: 12 [ade3]21.byte $21; A9 [ade4]86.byte $86; Note length: 6 [ade5]31.byte $31; A9 [ade6]31.byte $31; A9 [ade7]21.byte $21; A9 [ade8]21.byte $21; A9 [ade9]21.byte $21; A9 [adea]21.byte $21; A9 [adeb]21.byte $21; A9 [adec]21.byte $21; A9 [aded]21.byte $21; A9 [adee]21.byte $21; A9 [adef]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [adf0]02.byte $02; '- 2 iterations [adf1]86.byte $86; Note length: 6 [adf2]31.byte $31; A9 [adf3]00.byte $00; Rest [adf4]31.byte $31; A9 [adf5]31.byte $31; A9 [adf6]8c.byte $8c; Note length: 12 [adf7]21.byte $21; A9 [adf8]86.byte $86; Note length: 6 [adf9]31.byte $31; A9 [adfa]31.byte $31; A9 [adfb]31.byte $31; A9 [adfc]00.byte $00; Rest [adfd]31.byte $31; A9 [adfe]31.byte $31; A9 [adff]8c.byte $8c; Note length: 12 [ae00]21.byte $21; A9 [ae01]86.byte $86; Note length: 6 [ae02]31.byte $31; A9 [ae03]31.byte $31; A9 [ae04]31.byte $31; A9 [ae05]00.byte $00; Rest [ae06]31.byte $31; A9 [ae07]31.byte $31; A9 [ae08]8c.byte $8c; Note length: 12 [ae09]21.byte $21; A9 [ae0a]86.byte $86; Note length: 6 [ae0b]31.byte $31; A9 [ae0c]31.byte $31; A9 [ae0d]31.byte $31; A9 [ae0e]00.byte $00; Rest [ae0f]31.byte $31; A9 [ae10]31.byte $31; A9 [ae11]8c.byte $8c; Note length: 12 [ae12]21.byte $21; A9 [ae13]86.byte $86; Note length: 6 [ae14]31.byte $31; A9 [ae15]31.byte $31; A9 [ae16]31.byte $31; A9 [ae17]00.byte $00; Rest [ae18]31.byte $31; A9 [ae19]31.byte $31; A9 [ae1a]8c.byte $8c; Note length: 12 [ae1b]21.byte $21; A9 [ae1c]86.byte $86; Note length: 6 [ae1d]31.byte $31; A9 [ae1e]31.byte $31; A9 [ae1f]31.byte $31; A9 [ae20]00.byte $00; Rest [ae21]31.byte $31; A9 [ae22]31.byte $31; A9 [ae23]8c.byte $8c; Note length: 12 [ae24]21.byte $21; A9 [ae25]21.byte $21; A9 [ae26]21.byte $21; A9 [ae27]21.byte $21; A9 [ae28]21.byte $21; A9 [ae29]21.byte $21; A9 [ae2a]86.byte $86; Note length: 6 [ae2b]31.byte $31; A9 [ae2c]00.byte $00; Rest [ae2d]8c.byte $8c; Note length: 12 [ae2e]21.byte $21; A9 [ae2f]21.byte $21; A9 [ae30]86.byte $86; Note length: 6 [ae31]21.byte $21; A9 [ae32]21.byte $21; A9 [ae33]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [ae34]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [ae35]02.byte $02; '- 2 iterations [ae36]86.byte $86; Note length: 6 [ae37]31.byte $31; A9 [ae38]00.byte $00; Rest [ae39]31.byte $31; A9 [ae3a]31.byte $31; A9 [ae3b]8c.byte $8c; Note length: 12 [ae3c]21.byte $21; A9 [ae3d]86.byte $86; Note length: 6 [ae3e]31.byte $31; A9 [ae3f]31.byte $31; A9 [ae40]31.byte $31; A9 [ae41]00.byte $00; Rest [ae42]31.byte $31; A9 [ae43]31.byte $31; A9 [ae44]8c.byte $8c; Note length: 12 [ae45]21.byte $21; A9 [ae46]86.byte $86; Note length: 6 [ae47]31.byte $31; A9 [ae48]31.byte $31; A9 [ae49]31.byte $31; A9 [ae4a]00.byte $00; Rest [ae4b]31.byte $31; A9 [ae4c]31.byte $31; A9 [ae4d]8c.byte $8c; Note length: 12 [ae4e]21.byte $21; A9 [ae4f]86.byte $86; Note length: 6 [ae50]31.byte $31; A9 [ae51]31.byte $31; A9 [ae52]31.byte $31; A9 [ae53]00.byte $00; Rest [ae54]31.byte $31; A9 [ae55]31.byte $31; A9 [ae56]8c.byte $8c; Note length: 12 [ae57]21.byte $21; A9 [ae58]86.byte $86; Note length: 6 [ae59]31.byte $31; A9 [ae5a]31.byte $31; A9 [ae5b]31.byte $31; A9 [ae5c]00.byte $00; Rest [ae5d]31.byte $31; A9 [ae5e]31.byte $31; A9 [ae5f]8c.byte $8c; Note length: 12 [ae60]21.byte $21; A9 [ae61]86.byte $86; Note length: 6 [ae62]31.byte $31; A9 [ae63]31.byte $31; A9 [ae64]31.byte $31; A9 [ae65]00.byte $00; Rest [ae66]31.byte $31; A9 [ae67]31.byte $31; A9 [ae68]8c.byte $8c; Note length: 12 [ae69]21.byte $21; A9 [ae6a]86.byte $86; Note length: 6 [ae6b]31.byte $31; A9 [ae6c]31.byte $31; A9 [ae6d]31.byte $31; A9 [ae6e]00.byte $00; Rest [ae6f]31.byte $31; A9 [ae70]31.byte $31; A9 [ae71]8c.byte $8c; Note length: 12 [ae72]21.byte $21; A9 [ae73]86.byte $86; Note length: 6 [ae74]31.byte $31; A9 [ae75]31.byte $31; A9 [ae76]31.byte $31; A9 [ae77]00.byte $00; Rest [ae78]31.byte $31; A9 [ae79]31.byte $31; A9 [ae7a]21.byte $21; A9 [ae7b]21.byte $21; A9 [ae7c]21.byte $21; A9 [ae7d]31.byte $31; A9 [ae7e]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [ae7f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [ae80]02.byte $02; '- 2 iterations [ae81]86.byte $86; Note length: 6 [ae82]31.byte $31; A9 [ae83]00.byte $00; Rest [ae84]31.byte $31; A9 [ae85]31.byte $31; A9 [ae86]8c.byte $8c; Note length: 12 [ae87]21.byte $21; A9 [ae88]86.byte $86; Note length: 6 [ae89]31.byte $31; A9 [ae8a]31.byte $31; A9 [ae8b]31.byte $31; A9 [ae8c]00.byte $00; Rest [ae8d]31.byte $31; A9 [ae8e]31.byte $31; A9 [ae8f]8c.byte $8c; Note length: 12 [ae90]21.byte $21; A9 [ae91]86.byte $86; Note length: 6 [ae92]31.byte $31; A9 [ae93]31.byte $31; A9 [ae94]31.byte $31; A9 [ae95]00.byte $00; Rest [ae96]31.byte $31; A9 [ae97]31.byte $31; A9 [ae98]8c.byte $8c; Note length: 12 [ae99]21.byte $21; A9 [ae9a]86.byte $86; Note length: 6 [ae9b]31.byte $31; A9 [ae9c]31.byte $31; A9 [ae9d]31.byte $31; A9 [ae9e]00.byte $00; Rest [ae9f]31.byte $31; A9 [aea0]31.byte $31; A9 [aea1]8c.byte $8c; Note length: 12 [aea2]21.byte $21; A9 [aea3]86.byte $86; Note length: 6 [aea4]31.byte $31; A9 [aea5]31.byte $31; A9 [aea6]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [aea7]01.byte $01; '- 1 loop [aea8]86.byte $86; Note length: 6 [aea9]31.byte $31; A9 [aeaa]00.byte $00; Rest [aeab]31.byte $31; A9 [aeac]31.byte $31; A9 [aead]8c.byte $8c; Note length: 12 [aeae]21.byte $21; A9 [aeaf]86.byte $86; Note length: 6 [aeb0]31.byte $31; A9 [aeb1]31.byte $31; A9 [aeb2]31.byte $31; A9 [aeb3]00.byte $00; Rest [aeb4]31.byte $31; A9 [aeb5]31.byte $31; A9 [aeb6]8c.byte $8c; Note length: 12 [aeb7]21.byte $21; A9 [aeb8]86.byte $86; Note length: 6 [aeb9]31.byte $31; A9 [aeba]31.byte $31; A9 [aebb]31.byte $31; A9 [aebc]00.byte $00; Rest [aebd]31.byte $31; A9 [aebe]31.byte $31; A9 [aebf]8c.byte $8c; Note length: 12 [aec0]21.byte $21; A9 [aec1]86.byte $86; Note length: 6 [aec2]31.byte $31; A9 [aec3]31.byte $31; A9 [aec4]31.byte $31; A9 [aec5]00.byte $00; Rest [aec6]8c.byte $8c; Note length: 12 [aec7]21.byte $21; A9 [aec8]86.byte $86; Note length: 6 [aec9]21.byte $21; A9 [aeca]21.byte $21; A9 [aecb]21.byte $21; A9 [aecc]31.byte $31; A9 [aecd]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [aece]fb.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times [aecf]02.byte $02; '- 2 loops [aed0]8c.byte $8c; Note length: 12 [aed1]21.byte $21; A9 [aed2]21.byte $21; A9 [aed3]21.byte $21; A9 [aed4]21.byte $21; A9 [aed5]86.byte $86; Note length: 6 [aed6]31.byte $31; A9 [aed7]00.byte $00; Rest [aed8]8c.byte $8c; Note length: 12 [aed9]21.byte $21; A9 [aeda]21.byte $21; A9 [aedb]86.byte $86; Note length: 6 [aedc]21.byte $21; A9 [aedd]21.byte $21; A9 [aede]8c.byte $8c; Note length: 12 [aedf]21.byte $21; A9 [aee0]21.byte $21; A9 [aee1]21.byte $21; A9 [aee2]21.byte $21; A9 [aee3]00.byte $00; Rest [aee4]21.byte $21; A9 [aee5]21.byte $21; A9 [aee6]21.byte $21; A9 [aee7]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [aee8]02.byte $02; '- 2 iterations [aee9]86.byte $86; Note length: 6 [aeea]31.byte $31; A9 [aeeb]00.byte $00; Rest [aeec]31.byte $31; A9 [aeed]31.byte $31; A9 [aeee]31.byte $31; A9 [aeef]00.byte $00; Rest [aef0]31.byte $31; A9 [aef1]31.byte $31; A9 [aef2]31.byte $31; A9 [aef3]00.byte $00; Rest [aef4]31.byte $31; A9 [aef5]31.byte $31; A9 [aef6]31.byte $31; A9 [aef7]00.byte $00; Rest [aef8]31.byte $31; A9 [aef9]31.byte $31; A9 [aefa]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [aefb]86.byte $86; Note length: 6 [aefc]31.byte $31; A9 [aefd]00.byte $00; Rest [aefe]31.byte $31; A9 [aeff]31.byte $31; A9 [af00]31.byte $31; A9 [af01]00.byte $00; Rest [af02]31.byte $31; A9 [af03]31.byte $31; A9 [af04]31.byte $31; A9 [af05]00.byte $00; Rest [af06]31.byte $31; A9 [af07]31.byte $31; A9 [af08]86.byte $86; Note length: 6 [af09]21.byte $21; A9 [af0a]00.byte $00; Rest [af0b]21.byte $21; A9 [af0c]21.byte $21; A9 [af0d]88.byte $88; Note length: 8 [af0e]21.byte $21; A9 [af0f]00.byte $00; Rest [af10]84.byte $84; Note length: 4 [af11]21.byte $21; A9 [af12]21.byte $21; A9 [af13]21.byte $21; A9 [af14]21.byte $21; A9 [af15]88.byte $88; Note length: 8 [af16]21.byte $21; A9 [af17]21.byte $21; A9 [af18]21.byte $21; A9 [af19]21.byte $21; A9 [af1a]98.byte $98; Note length: 24 [af1b]21.byte $21; A9 [af1c]88.byte $88; Note length: 8 [af1d]00.byte $00; Rest [af1e]ff.byte MSCRIPT_OP_END; Op: End [af1f]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Music for the King's room. ; ; XREFS: ; MSCRIPTS_KINGS_ROOM [$PRG5::8f5b] ;============================================================================
; ; XREFS: ; MSCRIPTS_KINGS_ROOM [$PRG5::8f5b] ;
[af20]MSCRIPT_KINGS_ROOM_SQ1: [af20]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [af21]00.byte $00; '- Reduce volume by 0 [af22]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [af23]b0.byte $b0; '- Duty cycle 2 Constant volume/envelope [af24]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [af25]01.byte $01; '- Mode 1: Curve but held [af26]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [af27]f4.byte $f4; '- Down 1 octave [af28]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [af29]02.byte $02; '- 2 iterations [af2a]b0.byte $b0; Note length: 48 [af2b]30.byte $30; C4 [af2c]2b.byte $2b; G3 [af2d]30.byte $30; C4 [af2e]37.byte $37; G4 [af2f]c0.byte $c0; Note length: 64 [af30]37.byte $37; G4 [af31]90.byte $90; Note length: 16 [af32]35.byte $35; F4 [af33]34.byte $34; E4 [af34]e0.byte $e0; Note length: 96 [af35]35.byte $35; F4 [af36]c0.byte $c0; Note length: 64 [af37]35.byte $35; F4 [af38]90.byte $90; Note length: 16 [af39]34.byte $34; E4 [af3a]32.byte $32; D4 [af3b]b0.byte $b0; Note length: 48 [af3c]34.byte $34; E4 [af3d]30.byte $30; C4 [af3e]c0.byte $c0; Note length: 64 [af3f]34.byte $34; E4 [af40]90.byte $90; Note length: 16 [af41]2d.byte $2d; A3 [af42]30.byte $30; C4 [af43]b0.byte $b0; Note length: 48 [af44]30.byte $30; C4 [af45]2f.byte $2f; B3 [af46]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [af47]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [af48]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_KINGS_ROOM [$PRG5::8f5d] ;
[af49]MSCRIPT_KINGS_ROOM_SQ2: [af49]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [af4a]02.byte $02; '- Reduce volume by 2 [af4b]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [af4c]b0.byte $b0; '- Duty cycle 2 Constant volume/envelope [af4d]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [af4e]f4.byte $f4; '- Down 1 octave [af4f]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [af50]01.byte $01; '- Mode 1: Curve but held [af51]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [af52]02.byte $02; '- 2 iterations [af53]b0.byte $b0; Note length: 48 [af54]28.byte $28; E3 [af55]28.byte $28; E3 [af56]28.byte $28; E3 [af57]34.byte $34; E4 [af58]c0.byte $c0; Note length: 64 [af59]2e.byte $2e; A#3 [af5a]90.byte $90; Note length: 16 [af5b]30.byte $30; C4 [af5c]2e.byte $2e; A#3 [af5d]e0.byte $e0; Note length: 96 [af5e]2d.byte $2d; A3 [af5f]c0.byte $c0; Note length: 64 [af60]2c.byte $2c; G#3 [af61]90.byte $90; Note length: 16 [af62]30.byte $30; C4 [af63]2c.byte $2c; G#3 [af64]b0.byte $b0; Note length: 48 [af65]2b.byte $2b; G3 [af66]28.byte $28; E3 [af67]c0.byte $c0; Note length: 64 [af68]2a.byte $2a; F#3 [af69]90.byte $90; Note length: 16 [af6a]26.byte $26; D3 [af6b]2a.byte $2a; F#3 [af6c]b0.byte $b0; Note length: 48 [af6d]29.byte $29; F3 [af6e]26.byte $26; D3 [af6f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [af70]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [af71]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_KINGS_ROOM [$PRG5::8f5f] ;
[af72]MSCRIPT_KINGS_ROOM_TRI: [af72]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [af73]f4.byte $f4; '- Down 1 octave [af74]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [af75]02.byte $02; '- 2 iterations [af76]90.byte $90; Note length: 16 [af77]18.byte $18; C4 [af78]18.byte $18; C4 [af79]18.byte $18; C4 [af7a]18.byte $18; C4 [af7b]18.byte $18; C4 [af7c]18.byte $18; C4 [af7d]18.byte $18; C4 [af7e]18.byte $18; C4 [af7f]18.byte $18; C4 [af80]18.byte $18; C4 [af81]18.byte $18; C4 [af82]18.byte $18; C4 [af83]18.byte $18; C4 [af84]18.byte $18; C4 [af85]18.byte $18; C4 [af86]24.byte $24; C5 [af87]18.byte $18; C4 [af88]18.byte $18; C4 [af89]18.byte $18; C4 [af8a]18.byte $18; C4 [af8b]18.byte $18; C4 [af8c]24.byte $24; C5 [af8d]18.byte $18; C4 [af8e]18.byte $18; C4 [af8f]1d.byte $1d; F4 [af90]1d.byte $1d; F4 [af91]1d.byte $1d; F4 [af92]1d.byte $1d; F4 [af93]1d.byte $1d; F4 [af94]1d.byte $1d; F4 [af95]18.byte $18; C4 [af96]18.byte $18; C4 [af97]18.byte $18; C4 [af98]18.byte $18; C4 [af99]18.byte $18; C4 [af9a]18.byte $18; C4 [af9b]1a.byte $1a; D4 [af9c]1a.byte $1a; D4 [af9d]1a.byte $1a; D4 [af9e]1a.byte $1a; D4 [af9f]1a.byte $1a; D4 [afa0]1a.byte $1a; D4 [afa1]1f.byte $1f; G4 [afa2]1f.byte $1f; G4 [afa3]1f.byte $1f; G4 [afa4]1f.byte $1f; G4 [afa5]1f.byte $1f; G4 [afa6]1f.byte $1f; G4 [afa7]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [afa8]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [afa9]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_KINGS_ROOM [$PRG5::8f61] ;
[afaa]MSCRIPT_KINGS_ROOM_NOISE: [afaa]ff ff.byte $ff,$ff; byte
;============================================================================ ; Music for the temples. ; ; XREFS: ; MSCRIPTS_TEMPLE [$PRG5::8f63] ;============================================================================
; ; XREFS: ; MSCRIPTS_TEMPLE [$PRG5::8f63] ;
[afac]MSCRIPT_TEMPLE_SQ1: [afac]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [afad]02.byte $02; '- Reduce volume by 2 [afae]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [afaf]b0.byte $b0; '- Duty cycle 2 Constant volume/envelope [afb0]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [afb1]01.byte $01; '- Mode 1: Curve but held [afb2]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [afb3]f4.byte $f4; '- Down 1 octave [afb4]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [afb5]02.byte $02; '- 2 iterations [afb6]ac.byte $ac; Note length: 44 [afb7]00.byte $00; Rest [afb8]32.byte $32; D4 [afb9]d8.byte $d8; Note length: 88 [afba]37.byte $37; G4 [afbb]c2.byte $c2; Note length: 66 [afbc]37.byte $37; G4 [afbd]8b.byte $8b; Note length: 11 [afbe]36.byte $36; F#4 [afbf]34.byte $34; E4 [afc0]d8.byte $d8; Note length: 88 [afc1]36.byte $36; F#4 [afc2]ac.byte $ac; Note length: 44 [afc3]00.byte $00; Rest [afc4]37.byte $37; G4 [afc5]d8.byte $d8; Note length: 88 [afc6]3e.byte $3e; D5 [afc7]c2.byte $c2; Note length: 66 [afc8]3e.byte $3e; D5 [afc9]8b.byte $8b; Note length: 11 [afca]3c.byte $3c; C5 [afcb]3b.byte $3b; B4 [afcc]ac.byte $ac; Note length: 44 [afcd]39.byte $39; A4 [afce]37.byte $37; G4 [afcf]c2.byte $c2; Note length: 66 [afd0]37.byte $37; G4 [afd1]96.byte $96; Note length: 22 [afd2]36.byte $36; F#4 [afd3]d8.byte $d8; Note length: 88 [afd4]36.byte $36; F#4 [afd5]ac.byte $ac; Note length: 44 [afd6]00.byte $00; Rest [afd7]32.byte $32; D4 [afd8]d8.byte $d8; Note length: 88 [afd9]37.byte $37; G4 [afda]c2.byte $c2; Note length: 66 [afdb]37.byte $37; G4 [afdc]8b.byte $8b; Note length: 11 [afdd]36.byte $36; F#4 [afde]34.byte $34; E4 [afdf]d8.byte $d8; Note length: 88 [afe0]36.byte $36; F#4 [afe1]ac.byte $ac; Note length: 44 [afe2]00.byte $00; Rest [afe3]32.byte $32; D4 [afe4]37.byte $37; G4 [afe5]3b.byte $3b; B4 [afe6]c2.byte $c2; Note length: 66 [afe7]3e.byte $3e; D5 [afe8]96.byte $96; Note length: 22 [afe9]40.byte $40; E5 [afea]c2.byte $c2; Note length: 66 [afeb]34.byte $34; E4 [afec]96.byte $96; Note length: 22 [afed]39.byte $39; A4 [afee]ac.byte $ac; Note length: 44 [afef]37.byte $37; G4 [aff0]96.byte $96; Note length: 22 [aff1]36.byte $36; F#4 [aff2]34.byte $34; E4 [aff3]8b.byte $8b; Note length: 11 [aff4]36.byte $36; F#4 [aff5]37.byte $37; G4 [aff6]36.byte $36; F#4 [aff7]37.byte $37; G4 [aff8]88.byte $88; Note length: 8 [aff9]36.byte $36; F#4 [affa]87.byte $87; Note length: 7 [affb]37.byte $37; G4 [affc]87.byte $87; Note length: 7 [affd]36.byte $36; F#4 [affe]8b.byte $8b; Note length: 11 [afff]34.byte $34; E4 [b000]36.byte $36; F#4 [b001]d8.byte $d8; Note length: 88 [b002]37.byte $37; G4 [b003]36.byte $36; F#4 [b004]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b005]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b006]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TEMPLE [$PRG5::8f65] ;
[b007]MSCRIPT_TEMPLE_SQ2: [b007]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [b008]02.byte $02; '- Reduce volume by 2 [b009]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [b00a]b0.byte $b0; '- Duty cycle 2 Constant volume/envelope [b00b]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [b00c]01.byte $01; '- Mode 1: Curve but held [b00d]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [b00e]f4.byte $f4; '- Down 1 octave [b00f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b010]02.byte $02; '- 2 iterations [b011]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b012]b0.byte $b0; '- 176 ticks [b013]2f.byte $2f; B3 [b014]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b015]84.byte $84; '- 132 ticks [b016]30.byte $30; C4 [b017]ac.byte $ac; Note length: 44 [b018]30.byte $30; C4 [b019]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b01a]b0.byte $b0; '- 176 ticks [b01b]32.byte $32; D4 [b01c]d8.byte $d8; Note length: 88 [b01d]34.byte $34; E4 [b01e]34.byte $34; E4 [b01f]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b020]84.byte $84; '- 132 ticks [b021]30.byte $30; C4 [b022]96.byte $96; Note length: 22 [b023]32.byte $32; D4 [b024]30.byte $30; C4 [b025]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b026]b0.byte $b0; '- 176 ticks [b027]2f.byte $2f; B3 [b028]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b029]84.byte $84; '- 132 ticks [b02a]30.byte $30; C4 [b02b]ac.byte $ac; Note length: 44 [b02c]30.byte $30; C4 [b02d]d8.byte $d8; Note length: 88 [b02e]2f.byte $2f; B3 [b02f]ac.byte $ac; Note length: 44 [b030]32.byte $32; D4 [b031]37.byte $37; G4 [b032]c2.byte $c2; Note length: 66 [b033]37.byte $37; G4 [b034]96.byte $96; Note length: 22 [b035]3c.byte $3c; C5 [b036]c2.byte $c2; Note length: 66 [b037]30.byte $30; C4 [b038]96.byte $96; Note length: 22 [b039]34.byte $34; E4 [b03a]d8.byte $d8; Note length: 88 [b03b]30.byte $30; C4 [b03c]30.byte $30; C4 [b03d]2f.byte $2f; B3 [b03e]30.byte $30; C4 [b03f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b040]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b041]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TEMPLE [$PRG5::8f67] ;
[b042]MSCRIPT_TEMPLE_TRI: [b042]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [b043]e8.byte $e8; '- Down 2 octaves [b044]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b045]02.byte $02; '- 2 iterations [b046]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b047]84.byte $84; '- 132 ticks [b048]1f.byte $1f; G4 [b049]ac.byte $ac; Note length: 44 [b04a]1f.byte $1f; G4 [b04b]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b04c]b0.byte $b0; '- 176 ticks [b04d]21.byte $21; A4 [b04e]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b04f]84.byte $84; '- 132 ticks [b050]23.byte $23; B4 [b051]ac.byte $ac; Note length: 44 [b052]23.byte $23; B4 [b053]d8.byte $d8; Note length: 88 [b054]24.byte $24; C5 [b055]25.byte $25; C#5 [b056]26.byte $26; D5 [b057]26.byte $26; D5 [b058]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b059]84.byte $84; '- 132 ticks [b05a]1f.byte $1f; G4 [b05b]ac.byte $ac; Note length: 44 [b05c]1f.byte $1f; G4 [b05d]f3.byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration [b05e]b0.byte $b0; '- 176 ticks [b05f]21.byte $21; A4 [b060]d8.byte $d8; Note length: 88 [b061]23.byte $23; B4 [b062]23.byte $23; B4 [b063]c2.byte $c2; Note length: 66 [b064]34.byte $34; E6 [b065]96.byte $96; Note length: 22 [b066]37.byte $37; G6 [b067]c2.byte $c2; Note length: 66 [b068]2d.byte $2d; A5 [b069]96.byte $96; Note length: 22 [b06a]30.byte $30; C6 [b06b]d8.byte $d8; Note length: 88 [b06c]26.byte $26; D5 [b06d]26.byte $26; D5 [b06e]1f.byte $1f; G4 [b06f]26.byte $26; D5 [b070]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b071]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b072]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_TEMPLE [$PRG5::8f69] ;
[b073]MSCRIPT_TEMPLE_NOISE: [b073]ff ff.byte $ff,$ff; byte
;============================================================================ ; Music for the shops. ; ; XREFS: ; MSCRIPTS_SHOP [$PRG5::8f6b] ;============================================================================
; ; XREFS: ; MSCRIPTS_SHOP [$PRG5::8f6b] ;
[b075]MSCRIPT_SHOP_SQ1: [b075]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [b076]02.byte $02; '- Reduce volume by 2 [b077]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [b078]90.byte $90; '- Duty cycle 2 Constant volume/envelope [b079]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [b07a]01.byte $01; '- Mode 1: Curve but held [b07b]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b07c]02.byte $02; '- 2 iterations [b07d]8e.byte $8e; Note length: 14 [b07e]26.byte $26; D3 [b07f]00.byte $00; Rest [b080]00.byte $00; Rest [b081]00.byte $00; Rest [b082]26.byte $26; D3 [b083]00.byte $00; Rest [b084]00.byte $00; Rest [b085]00.byte $00; Rest [b086]26.byte $26; D3 [b087]00.byte $00; Rest [b088]00.byte $00; Rest [b089]00.byte $00; Rest [b08a]26.byte $26; D3 [b08b]00.byte $00; Rest [b08c]00.byte $00; Rest [b08d]00.byte $00; Rest [b08e]26.byte $26; D3 [b08f]00.byte $00; Rest [b090]00.byte $00; Rest [b091]00.byte $00; Rest [b092]26.byte $26; D3 [b093]00.byte $00; Rest [b094]00.byte $00; Rest [b095]00.byte $00; Rest [b096]00.byte $00; Rest [b097]24.byte $24; C3 [b098]25.byte $25; C#3 [b099]26.byte $26; D3 [b09a]1f.byte $1f; G2 [b09b]20.byte $20; G#2 [b09c]21.byte $21; A2 [b09d]00.byte $00; Rest [b09e]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b09f]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b0a0]02.byte $02; '- 2 iterations [b0a1]8e.byte $8e; Note length: 14 [b0a2]2b.byte $2b; G3 [b0a3]00.byte $00; Rest [b0a4]2b.byte $2b; G3 [b0a5]2d.byte $2d; A3 [b0a6]00.byte $00; Rest [b0a7]00.byte $00; Rest [b0a8]00.byte $00; Rest [b0a9]87.byte $87; Note length: 7 [b0aa]30.byte $30; C4 [b0ab]2f.byte $2f; B3 [b0ac]8e.byte $8e; Note length: 14 [b0ad]2b.byte $2b; G3 [b0ae]00.byte $00; Rest [b0af]2b.byte $2b; G3 [b0b0]2d.byte $2d; A3 [b0b1]00.byte $00; Rest [b0b2]00.byte $00; Rest [b0b3]00.byte $00; Rest [b0b4]00.byte $00; Rest [b0b5]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b0b6]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b0b7]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_SHOP [$PRG5::8f6d] ;
[b0b8]MSCRIPT_SHOP_SQ2: [b0b8]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [b0b9]02.byte $02; '- Reduce volume by 2 [b0ba]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [b0bb]90.byte $90; '- Duty cycle 2 Constant volume/envelope [b0bc]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [b0bd]01.byte $01; '- Mode 1: Curve but held [b0be]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b0bf]02.byte $02; '- 2 iterations [b0c0]8e.byte $8e; Note length: 14 [b0c1]1f.byte $1f; G2 [b0c2]00.byte $00; Rest [b0c3]00.byte $00; Rest [b0c4]00.byte $00; Rest [b0c5]1f.byte $1f; G2 [b0c6]00.byte $00; Rest [b0c7]00.byte $00; Rest [b0c8]00.byte $00; Rest [b0c9]1f.byte $1f; G2 [b0ca]00.byte $00; Rest [b0cb]00.byte $00; Rest [b0cc]00.byte $00; Rest [b0cd]1f.byte $1f; G2 [b0ce]00.byte $00; Rest [b0cf]00.byte $00; Rest [b0d0]00.byte $00; Rest [b0d1]1f.byte $1f; G2 [b0d2]00.byte $00; Rest [b0d3]00.byte $00; Rest [b0d4]00.byte $00; Rest [b0d5]1f.byte $1f; G2 [b0d6]00.byte $00; Rest [b0d7]00.byte $00; Rest [b0d8]00.byte $00; Rest [b0d9]00.byte $00; Rest [b0da]18.byte $18; C2 [b0db]19.byte $19; C#2 [b0dc]1a.byte $1a; D2 [b0dd]13.byte $13; A9 [b0de]14.byte $14; A9 [b0df]15.byte $15; A9 [b0e0]00.byte $00; Rest [b0e1]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b0e2]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b0e3]02.byte $02; '- 2 iterations [b0e4]8e.byte $8e; Note length: 14 [b0e5]24.byte $24; C3 [b0e6]00.byte $00; Rest [b0e7]24.byte $24; C3 [b0e8]26.byte $26; D3 [b0e9]00.byte $00; Rest [b0ea]00.byte $00; Rest [b0eb]00.byte $00; Rest [b0ec]87.byte $87; Note length: 7 [b0ed]2b.byte $2b; G3 [b0ee]2a.byte $2a; F#3 [b0ef]8e.byte $8e; Note length: 14 [b0f0]24.byte $24; C3 [b0f1]00.byte $00; Rest [b0f2]24.byte $24; C3 [b0f3]26.byte $26; D3 [b0f4]00.byte $00; Rest [b0f5]00.byte $00; Rest [b0f6]00.byte $00; Rest [b0f7]00.byte $00; Rest [b0f8]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b0f9]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b0fa]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_SHOP [$PRG5::8f6f] ;
[b0fb]MSCRIPT_SHOP_TRI: [b0fb]f6.byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose [b0fc]f4.byte $f4; '- Down 1 octave [b0fd]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b0fe]02.byte $02; '- 2 iterations [b0ff]8e.byte $8e; Note length: 14 [b100]35.byte $35; F6 [b101]00.byte $00; Rest [b102]32.byte $32; D6 [b103]37.byte $37; G6 [b104]3c.byte $3c; C7 [b105]00.byte $00; Rest [b106]3b.byte $3b; B6 [b107]32.byte $32; D6 [b108]00.byte $00; Rest [b109]35.byte $35; F6 [b10a]32.byte $32; D6 [b10b]37.byte $37; G6 [b10c]3c.byte $3c; C7 [b10d]3b.byte $3b; B6 [b10e]32.byte $32; D6 [b10f]00.byte $00; Rest [b110]35.byte $35; F6 [b111]00.byte $00; Rest [b112]32.byte $32; D6 [b113]37.byte $37; G6 [b114]3c.byte $3c; C7 [b115]00.byte $00; Rest [b116]3b.byte $3b; B6 [b117]32.byte $32; D6 [b118]00.byte $00; Rest [b119]30.byte $30; C6 [b11a]31.byte $31; C#6 [b11b]32.byte $32; D6 [b11c]2b.byte $2b; G5 [b11d]2c.byte $2c; G#5 [b11e]2d.byte $2d; A5 [b11f]00.byte $00; Rest [b120]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b121]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b122]02.byte $02; '- 2 iterations [b123]8e.byte $8e; Note length: 14 [b124]26.byte $26; D5 [b125]00.byte $00; Rest [b126]26.byte $26; D5 [b127]26.byte $26; D5 [b128]87.byte $87; Note length: 7 [b129]1a.byte $1a; D4 [b12a]00.byte $00; Rest [b12b]1a.byte $1a; D4 [b12c]00.byte $00; Rest [b12d]1a.byte $1a; D4 [b12e]00.byte $00; Rest [b12f]1a.byte $1a; D4 [b130]1a.byte $1a; D4 [b131]8e.byte $8e; Note length: 14 [b132]26.byte $26; D5 [b133]00.byte $00; Rest [b134]26.byte $26; D5 [b135]26.byte $26; D5 [b136]87.byte $87; Note length: 7 [b137]1a.byte $1a; D4 [b138]00.byte $00; Rest [b139]1a.byte $1a; D4 [b13a]00.byte $00; Rest [b13b]1a.byte $1a; D4 [b13c]00.byte $00; Rest [b13d]1a.byte $1a; D4 [b13e]1a.byte $1a; D4 [b13f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b140]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b141]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_SHOP [$PRG5::8f71] ;
[b142]MSCRIPT_SHOP_NOISE: [b142]ff ff.byte $ff,$ff; undefined
;============================================================================ ; Music for the Evil Fortress. ; ; XREFS: ; MSCRIPTS_EVIL_FORTRESS [$PRG5::8f73] ;============================================================================
; ; XREFS: ; MSCRIPTS_EVIL_FORTRESS [$PRG5::8f73] ;
[b144]MSCRIPT_EVIL_FORTRESS_SQ1: [b144]f7.byte MSCRIPT_OP_SET_GLOBAL_TRANSPOSE; Op: Set global transpose [b145]f4.byte $f4; '- Down 1 octave [b146]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [b147]02.byte $02; '- Reduce volume by 2 [b148]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [b149]00.byte $00; '- Mode 0: Linear decay [b14a]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [b14b]d0.byte $d0; '- Duty cycle 3 Constant volume/envelope [b14c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b14d]02.byte $02; '- 2 iterations [b14e]88.byte $88; Note length: 8 [b14f]00.byte $00; Rest [b150]3c.byte $3c; C4 [b151]37.byte $37; G3 [b152]32.byte $32; D3 [b153]00.byte $00; Rest [b154]00.byte $00; Rest [b155]00.byte $00; Rest [b156]00.byte $00; Rest [b157]00.byte $00; Rest [b158]3a.byte $3a; A#3 [b159]35.byte $35; F3 [b15a]30.byte $30; C3 [b15b]2b.byte $2b; G2 [b15c]00.byte $00; Rest [b15d]00.byte $00; Rest [b15e]00.byte $00; Rest [b15f]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b160]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b161]02.byte $02; '- 2 iterations [b162]88.byte $88; Note length: 8 [b163]00.byte $00; Rest [b164]3c.byte $3c; C4 [b165]37.byte $37; G3 [b166]98.byte $98; Note length: 24 [b167]32.byte $32; D3 [b168]88.byte $88; Note length: 8 [b169]37.byte $37; G3 [b16a]32.byte $32; D3 [b16b]00.byte $00; Rest [b16c]3a.byte $3a; A#3 [b16d]35.byte $35; F3 [b16e]90.byte $90; Note length: 16 [b16f]30.byte $30; C3 [b170]88.byte $88; Note length: 8 [b171]35.byte $35; F3 [b172]30.byte $30; C3 [b173]00.byte $00; Rest [b174]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b175]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b176]02.byte $02; '- 2 iterations [b177]88.byte $88; Note length: 8 [b178]39.byte $39; A3 [b179]39.byte $39; A3 [b17a]39.byte $39; A3 [b17b]39.byte $39; A3 [b17c]90.byte $90; Note length: 16 [b17d]37.byte $37; G3 [b17e]00.byte $00; Rest [b17f]b0.byte $b0; Note length: 48 [b180]00.byte $00; Rest [b181]88.byte $88; Note length: 8 [b182]39.byte $39; A3 [b183]39.byte $39; A3 [b184]39.byte $39; A3 [b185]39.byte $39; A3 [b186]90.byte $90; Note length: 16 [b187]37.byte $37; G3 [b188]c0.byte $c0; Note length: 64 [b189]00.byte $00; Rest [b18a]90.byte $90; Note length: 16 [b18b]32.byte $32; D3 [b18c]37.byte $37; G3 [b18d]37.byte $37; G3 [b18e]3c.byte $3c; C4 [b18f]3c.byte $3c; C4 [b190]41.byte $41; F4 [b191]41.byte $41; F4 [b192]3c.byte $3c; C4 [b193]3c.byte $3c; C4 [b194]37.byte $37; G3 [b195]a0.byte $a0; Note length: 32 [b196]39.byte $39; A3 [b197]37.byte $37; G3 [b198]00.byte $00; Rest [b199]90.byte $90; Note length: 16 [b19a]2c.byte $2c; G#2 [b19b]2e.byte $2e; A#2 [b19c]88.byte $88; Note length: 8 [b19d]37.byte $37; G3 [b19e]37.byte $37; G3 [b19f]37.byte $37; G3 [b1a0]38.byte $38; G#3 [b1a1]00.byte $00; Rest [b1a2]38.byte $38; G#3 [b1a3]00.byte $00; Rest [b1a4]38.byte $38; G#3 [b1a5]3a.byte $3a; A#3 [b1a6]3a.byte $3a; A#3 [b1a7]3a.byte $3a; A#3 [b1a8]38.byte $38; G#3 [b1a9]00.byte $00; Rest [b1aa]38.byte $38; G#3 [b1ab]00.byte $00; Rest [b1ac]38.byte $38; G#3 [b1ad]a0.byte $a0; Note length: 32 [b1ae]37.byte $37; G3 [b1af]35.byte $35; F3 [b1b0]c0.byte $c0; Note length: 64 [b1b1]00.byte $00; Rest [b1b2]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b1b3]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b1b4]02.byte $02; '- 2 iterations [b1b5]98.byte $98; Note length: 24 [b1b6]35.byte $35; F3 [b1b7]39.byte $39; A3 [b1b8]90.byte $90; Note length: 16 [b1b9]3c.byte $3c; C4 [b1ba]a0.byte $a0; Note length: 32 [b1bb]3b.byte $3b; B3 [b1bc]39.byte $39; A3 [b1bd]98.byte $98; Note length: 24 [b1be]3c.byte $3c; C4 [b1bf]40.byte $40; E4 [b1c0]90.byte $90; Note length: 16 [b1c1]39.byte $39; A3 [b1c2]a0.byte $a0; Note length: 32 [b1c3]3e.byte $3e; D4 [b1c4]88.byte $88; Note length: 8 [b1c5]3b.byte $3b; B3 [b1c6]39.byte $39; A3 [b1c7]37.byte $37; G3 [b1c8]36.byte $36; F#3 [b1c9]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b1ca]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b1cb]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_EVIL_FORTRESS [$PRG5::8f75] ;
[b1cc]MSCRIPT_EVIL_FORTRESS_SQ2: [b1cc]f1.byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade [b1cd]04.byte $04; '- Reduce volume by 4 [b1ce]f0.byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode [b1cf]00.byte $00; '- Mode 0: Linear decay [b1d0]f2.byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits [b1d1]90.byte $90; '- Duty cycle 2 Constant volume/envelope [b1d2]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b1d3]02.byte $02; '- 2 iterations [b1d4]88.byte $88; Note length: 8 [b1d5]00.byte $00; Rest [b1d6]37.byte $37; G4 [b1d7]32.byte $32; D4 [b1d8]2d.byte $2d; A3 [b1d9]00.byte $00; Rest [b1da]00.byte $00; Rest [b1db]00.byte $00; Rest [b1dc]00.byte $00; Rest [b1dd]00.byte $00; Rest [b1de]35.byte $35; F4 [b1df]30.byte $30; C4 [b1e0]2b.byte $2b; G3 [b1e1]26.byte $26; D3 [b1e2]00.byte $00; Rest [b1e3]00.byte $00; Rest [b1e4]00.byte $00; Rest [b1e5]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b1e6]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b1e7]02.byte $02; '- 2 iterations [b1e8]88.byte $88; Note length: 8 [b1e9]00.byte $00; Rest [b1ea]37.byte $37; G4 [b1eb]32.byte $32; D4 [b1ec]98.byte $98; Note length: 24 [b1ed]2d.byte $2d; A3 [b1ee]88.byte $88; Note length: 8 [b1ef]32.byte $32; D4 [b1f0]2d.byte $2d; A3 [b1f1]00.byte $00; Rest [b1f2]35.byte $35; F4 [b1f3]30.byte $30; C4 [b1f4]90.byte $90; Note length: 16 [b1f5]2b.byte $2b; G3 [b1f6]88.byte $88; Note length: 8 [b1f7]30.byte $30; C4 [b1f8]2b.byte $2b; G3 [b1f9]00.byte $00; Rest [b1fa]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b1fb]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b1fc]02.byte $02; '- 2 iterations [b1fd]88.byte $88; Note length: 8 [b1fe]35.byte $35; F4 [b1ff]35.byte $35; F4 [b200]35.byte $35; F4 [b201]35.byte $35; F4 [b202]90.byte $90; Note length: 16 [b203]32.byte $32; D4 [b204]00.byte $00; Rest [b205]b0.byte $b0; Note length: 48 [b206]00.byte $00; Rest [b207]88.byte $88; Note length: 8 [b208]00.byte $00; Rest [b209]00.byte $00; Rest [b20a]35.byte $35; F4 [b20b]35.byte $35; F4 [b20c]90.byte $90; Note length: 16 [b20d]32.byte $32; D4 [b20e]c0.byte $c0; Note length: 64 [b20f]00.byte $00; Rest [b210]90.byte $90; Note length: 16 [b211]2d.byte $2d; A3 [b212]32.byte $32; D4 [b213]32.byte $32; D4 [b214]37.byte $37; G4 [b215]37.byte $37; G4 [b216]3c.byte $3c; C5 [b217]3c.byte $3c; C5 [b218]37.byte $37; G4 [b219]37.byte $37; G4 [b21a]32.byte $32; D4 [b21b]a0.byte $a0; Note length: 32 [b21c]35.byte $35; F4 [b21d]33.byte $33; D#4 [b21e]00.byte $00; Rest [b21f]90.byte $90; Note length: 16 [b220]29.byte $29; F3 [b221]2c.byte $2c; G#3 [b222]88.byte $88; Note length: 8 [b223]33.byte $33; D#4 [b224]33.byte $33; D#4 [b225]33.byte $33; D#4 [b226]35.byte $35; F4 [b227]00.byte $00; Rest [b228]35.byte $35; F4 [b229]00.byte $00; Rest [b22a]35.byte $35; F4 [b22b]37.byte $37; G4 [b22c]37.byte $37; G4 [b22d]37.byte $37; G4 [b22e]35.byte $35; F4 [b22f]00.byte $00; Rest [b230]35.byte $35; F4 [b231]00.byte $00; Rest [b232]35.byte $35; F4 [b233]a0.byte $a0; Note length: 32 [b234]33.byte $33; D#4 [b235]31.byte $31; C#4 [b236]c0.byte $c0; Note length: 64 [b237]00.byte $00; Rest [b238]fc.byte $fc; Op: End loop [b239]88.byte $88; Note length: 8 [b23a]00.byte $00; Rest [b23b]98.byte $98; Note length: 24 [b23c]35.byte $35; F4 [b23d]39.byte $39; A4 [b23e]90.byte $90; Note length: 16 [b23f]3c.byte $3c; C5 [b240]a0.byte $a0; Note length: 32 [b241]3b.byte $3b; B4 [b242]a0.byte $a0; Note length: 32 [b243]39.byte $39; A4 [b244]98.byte $98; Note length: 24 [b245]3c.byte $3c; C5 [b246]40.byte $40; E5 [b247]90.byte $90; Note length: 16 [b248]39.byte $39; A4 [b249]9c.byte $9c; Note length: 28 [b24a]3e.byte $3e; D5 [b24b]88.byte $88; Note length: 8 [b24c]3b.byte $3b; B4 [b24d]39.byte $39; A4 [b24e]37.byte $37; G4 [b24f]84.byte $84; Note length: 4 [b250]36.byte $36; F#4 [b251]88.byte $88; Note length: 8 [b252]32.byte $32; D4 [b253]35.byte $35; F4 [b254]32.byte $32; D4 [b255]35.byte $35; F4 [b256]39.byte $39; A4 [b257]35.byte $35; F4 [b258]39.byte $39; A4 [b259]3c.byte $3c; C5 [b25a]37.byte $37; G4 [b25b]3b.byte $3b; B4 [b25c]37.byte $37; G4 [b25d]35.byte $35; F4 [b25e]39.byte $39; A4 [b25f]35.byte $35; F4 [b260]32.byte $32; D4 [b261]35.byte $35; F4 [b262]39.byte $39; A4 [b263]3c.byte $3c; C5 [b264]39.byte $39; A4 [b265]3c.byte $3c; C5 [b266]40.byte $40; E5 [b267]3c.byte $3c; C5 [b268]35.byte $35; F4 [b269]39.byte $39; A4 [b26a]3b.byte $3b; B4 [b26b]3e.byte $3e; D5 [b26c]3b.byte $3b; B4 [b26d]8c.byte $8c; Note length: 12 [b26e]37.byte $37; G4 [b26f]88.byte $88; Note length: 8 [b270]3b.byte $3b; B4 [b271]39.byte $39; A4 [b272]37.byte $37; G4 [b273]84.byte $84; Note length: 4 [b274]36.byte $36; F#4 [b275]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b276]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_EVIL_FORTRESS [$PRG5::8f77] ;
[b277]MSCRIPT_EVIL_FORTRESS_TRI: [b277]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b278]02.byte $02; '- 2 iterations [b279]88.byte $88; Note length: 8 [b27a]18.byte $18; C4 [b27b]00.byte $00; Rest [b27c]00.byte $00; Rest [b27d]18.byte $18; C4 [b27e]00.byte $00; Rest [b27f]00.byte $00; Rest [b280]18.byte $18; C4 [b281]00.byte $00; Rest [b282]18.byte $18; C4 [b283]00.byte $00; Rest [b284]00.byte $00; Rest [b285]18.byte $18; C4 [b286]00.byte $00; Rest [b287]00.byte $00; Rest [b288]18.byte $18; C4 [b289]18.byte $18; C4 [b28a]90.byte $90; Note length: 16 [b28b]18.byte $18; C4 [b28c]88.byte $88; Note length: 8 [b28d]00.byte $00; Rest [b28e]18.byte $18; C4 [b28f]00.byte $00; Rest [b290]00.byte $00; Rest [b291]90.byte $90; Note length: 16 [b292]18.byte $18; C4 [b293]18.byte $18; C4 [b294]88.byte $88; Note length: 8 [b295]00.byte $00; Rest [b296]18.byte $18; C4 [b297]00.byte $00; Rest [b298]0c.byte $0c; C3 [b299]18.byte $18; C4 [b29a]0c.byte $0c; C3 [b29b]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b29c]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b29d]02.byte $02; '- 2 iterations [b29e]88.byte $88; Note length: 8 [b29f]13.byte $13; G3 [b2a0]13.byte $13; G3 [b2a1]13.byte $13; G3 [b2a2]13.byte $13; G3 [b2a3]90.byte $90; Note length: 16 [b2a4]13.byte $13; G3 [b2a5]88.byte $88; Note length: 8 [b2a6]1d.byte $1d; F4 [b2a7]1f.byte $1f; G4 [b2a8]00.byte $00; Rest [b2a9]1f.byte $1f; G4 [b2aa]1d.byte $1d; F4 [b2ab]1a.byte $1a; D4 [b2ac]90.byte $90; Note length: 16 [b2ad]13.byte $13; G3 [b2ae]88.byte $88; Note length: 8 [b2af]00.byte $00; Rest [b2b0]00.byte $00; Rest [b2b1]13.byte $13; G3 [b2b2]13.byte $13; G3 [b2b3]90.byte $90; Note length: 16 [b2b4]13.byte $13; G3 [b2b5]00.byte $00; Rest [b2b6]88.byte $88; Note length: 8 [b2b7]1d.byte $1d; F4 [b2b8]1f.byte $1f; G4 [b2b9]11.byte $11; F3 [b2ba]12.byte $12; F#3 [b2bb]13.byte $13; G3 [b2bc]00.byte $00; Rest [b2bd]90.byte $90; Note length: 16 [b2be]00.byte $00; Rest [b2bf]88.byte $88; Note length: 8 [b2c0]11.byte $11; F3 [b2c1]13.byte $13; G3 [b2c2]90.byte $90; Note length: 16 [b2c3]21.byte $21; A4 [b2c4]26.byte $26; D5 [b2c5]26.byte $26; D5 [b2c6]2b.byte $2b; G5 [b2c7]2b.byte $2b; G5 [b2c8]26.byte $26; D5 [b2c9]26.byte $26; D5 [b2ca]21.byte $21; A4 [b2cb]a0.byte $a0; Note length: 32 [b2cc]13.byte $13; G3 [b2cd]90.byte $90; Note length: 16 [b2ce]11.byte $11; F3 [b2cf]88.byte $88; Note length: 8 [b2d0]1d.byte $1d; F4 [b2d1]11.byte $11; F3 [b2d2]a0.byte $a0; Note length: 32 [b2d3]00.byte $00; Rest [b2d4]98.byte $98; Note length: 24 [b2d5]22.byte $22; A#4 [b2d6]88.byte $88; Note length: 8 [b2d7]16.byte $16; A#3 [b2d8]22.byte $22; A#4 [b2d9]16.byte $16; A#3 [b2da]22.byte $22; A#4 [b2db]22.byte $22; A#4 [b2dc]00.byte $00; Rest [b2dd]22.byte $22; A#4 [b2de]16.byte $16; A#3 [b2df]22.byte $22; A#4 [b2e0]22.byte $22; A#4 [b2e1]16.byte $16; A#3 [b2e2]22.byte $22; A#4 [b2e3]22.byte $22; A#4 [b2e4]00.byte $00; Rest [b2e5]22.byte $22; A#4 [b2e6]16.byte $16; A#3 [b2e7]22.byte $22; A#4 [b2e8]a0.byte $a0; Note length: 32 [b2e9]16.byte $16; A#3 [b2ea]16.byte $16; A#3 [b2eb]98.byte $98; Note length: 24 [b2ec]00.byte $00; Rest [b2ed]88.byte $88; Note length: 8 [b2ee]16.byte $16; A#3 [b2ef]16.byte $16; A#3 [b2f0]15.byte $15; A3 [b2f1]14.byte $14; G#3 [b2f2]12.byte $12; F#3 [b2f3]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b2f4]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b2f5]02.byte $02; '- 2 iterations [b2f6]90.byte $90; Note length: 16 [b2f7]13.byte $13; G3 [b2f8]88.byte $88; Note length: 8 [b2f9]00.byte $00; Rest [b2fa]90.byte $90; Note length: 16 [b2fb]13.byte $13; G3 [b2fc]88.byte $88; Note length: 8 [b2fd]00.byte $00; Rest [b2fe]13.byte $13; G3 [b2ff]00.byte $00; Rest [b300]13.byte $13; G3 [b301]00.byte $00; Rest [b302]00.byte $00; Rest [b303]13.byte $13; G3 [b304]00.byte $00; Rest [b305]00.byte $00; Rest [b306]13.byte $13; G3 [b307]13.byte $13; G3 [b308]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b309]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b30a]02.byte $02; '- 2 iterations [b30b]90.byte $90; Note length: 16 [b30c]13.byte $13; G3 [b30d]88.byte $88; Note length: 8 [b30e]1f.byte $1f; G4 [b30f]90.byte $90; Note length: 16 [b310]13.byte $13; G3 [b311]88.byte $88; Note length: 8 [b312]1f.byte $1f; G4 [b313]13.byte $13; G3 [b314]1f.byte $1f; G4 [b315]13.byte $13; G3 [b316]13.byte $13; G3 [b317]1f.byte $1f; G4 [b318]90.byte $90; Note length: 16 [b319]13.byte $13; G3 [b31a]88.byte $88; Note length: 8 [b31b]1f.byte $1f; G4 [b31c]13.byte $13; G3 [b31d]1f.byte $1f; G4 [b31e]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b31f]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b320]ff.byte MSCRIPT_OP_END; Op: End
; ; XREFS: ; MSCRIPTS_EVIL_FORTRESS [$PRG5::8f79] ;
[b321]MSCRIPT_EVIL_FORTRESS_NOISE: [b321]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b322]04.byte $04; '- 4 iterations [b323]88.byte $88; Note length: 8 [b324]21.byte $21; A9 [b325]31.byte $31; A9 [b326]31.byte $31; A9 [b327]21.byte $21; A9 [b328]31.byte $31; A9 [b329]31.byte $31; A9 [b32a]21.byte $21; A9 [b32b]31.byte $31; A9 [b32c]21.byte $21; A9 [b32d]31.byte $31; A9 [b32e]31.byte $31; A9 [b32f]21.byte $21; A9 [b330]31.byte $31; A9 [b331]31.byte $31; A9 [b332]21.byte $21; A9 [b333]31.byte $31; A9 [b334]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b335]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b336]02.byte $02; '- 2 iterations [b337]88.byte $88; Note length: 8 [b338]21.byte $21; A9 [b339]21.byte $21; A9 [b33a]21.byte $21; A9 [b33b]21.byte $21; A9 [b33c]21.byte $21; A9 [b33d]00.byte $00; Rest [b33e]31.byte $31; A9 [b33f]31.byte $31; A9 [b340]31.byte $31; A9 [b341]31.byte $31; A9 [b342]31.byte $31; A9 [b343]31.byte $31; A9 [b344]21.byte $21; A9 [b345]00.byte $00; Rest [b346]00.byte $00; Rest [b347]21.byte $21; A9 [b348]11.byte $11; A9 [b349]11.byte $11; A9 [b34a]11.byte $11; A9 [b34b]00.byte $00; Rest [b34c]85.byte $85; Note length: 5 [b34d]31.byte $31; A9 [b34e]31.byte $31; A9 [b34f]86.byte $86; Note length: 6 [b350]31.byte $31; A9 [b351]88.byte $88; Note length: 8 [b352]31.byte $31; A9 [b353]31.byte $31; A9 [b354]31.byte $31; A9 [b355]31.byte $31; A9 [b356]21.byte $21; A9 [b357]00.byte $00; Rest [b358]21.byte $21; A9 [b359]00.byte $00; Rest [b35a]21.byte $21; A9 [b35b]21.byte $21; A9 [b35c]31.byte $31; A9 [b35d]00.byte $00; Rest [b35e]31.byte $31; A9 [b35f]00.byte $00; Rest [b360]31.byte $31; A9 [b361]31.byte $31; A9 [b362]21.byte $21; A9 [b363]00.byte $00; Rest [b364]31.byte $31; A9 [b365]00.byte $00; Rest [b366]31.byte $31; A9 [b367]31.byte $31; A9 [b368]31.byte $31; A9 [b369]31.byte $31; A9 [b36a]21.byte $21; A9 [b36b]21.byte $21; A9 [b36c]31.byte $31; A9 [b36d]00.byte $00; Rest [b36e]31.byte $31; A9 [b36f]00.byte $00; Rest [b370]31.byte $31; A9 [b371]00.byte $00; Rest [b372]31.byte $31; A9 [b373]00.byte $00; Rest [b374]85.byte $85; Note length: 5 [b375]31.byte $31; A9 [b376]31.byte $31; A9 [b377]86.byte $86; Note length: 6 [b378]31.byte $31; A9 [b379]88.byte $88; Note length: 8 [b37a]31.byte $31; A9 [b37b]31.byte $31; A9 [b37c]21.byte $21; A9 [b37d]21.byte $21; A9 [b37e]31.byte $31; A9 [b37f]00.byte $00; Rest [b380]31.byte $31; A9 [b381]31.byte $31; A9 [b382]31.byte $31; A9 [b383]31.byte $31; A9 [b384]21.byte $21; A9 [b385]31.byte $31; A9 [b386]31.byte $31; A9 [b387]31.byte $31; A9 [b388]31.byte $31; A9 [b389]31.byte $31; A9 [b38a]31.byte $31; A9 [b38b]31.byte $31; A9 [b38c]21.byte $21; A9 [b38d]31.byte $31; A9 [b38e]31.byte $31; A9 [b38f]31.byte $31; A9 [b390]a0.byte $a0; Note length: 32 [b391]00.byte $00; Rest [b392]88.byte $88; Note length: 8 [b393]21.byte $21; A9 [b394]21.byte $21; A9 [b395]21.byte $21; A9 [b396]21.byte $21; A9 [b397]85.byte $85; Note length: 5 [b398]31.byte $31; A9 [b399]31.byte $31; A9 [b39a]86.byte $86; Note length: 6 [b39b]31.byte $31; A9 [b39c]88.byte $88; Note length: 8 [b39d]31.byte $31; A9 [b39e]31.byte $31; A9 [b39f]85.byte $85; Note length: 5 [b3a0]31.byte $31; A9 [b3a1]31.byte $31; A9 [b3a2]86.byte $86; Note length: 6 [b3a3]31.byte $31; A9 [b3a4]88.byte $88; Note length: 8 [b3a5]21.byte $21; A9 [b3a6]21.byte $21; A9 [b3a7]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b3a8]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b3a9]02.byte $02; '- 2 iterations [b3aa]88.byte $88; Note length: 8 [b3ab]31.byte $31; A9 [b3ac]00.byte $00; Rest [b3ad]00.byte $00; Rest [b3ae]31.byte $31; A9 [b3af]00.byte $00; Rest [b3b0]00.byte $00; Rest [b3b1]31.byte $31; A9 [b3b2]00.byte $00; Rest [b3b3]31.byte $31; A9 [b3b4]00.byte $00; Rest [b3b5]00.byte $00; Rest [b3b6]31.byte $31; A9 [b3b7]00.byte $00; Rest [b3b8]00.byte $00; Rest [b3b9]31.byte $31; A9 [b3ba]31.byte $31; A9 [b3bb]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b3bc]fd.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop [b3bd]02.byte $02; '- 2 iterations [b3be]88.byte $88; Note length: 8 [b3bf]31.byte $31; A9 [b3c0]11.byte $11; A9 [b3c1]11.byte $11; A9 [b3c2]31.byte $31; A9 [b3c3]11.byte $11; A9 [b3c4]11.byte $11; A9 [b3c5]31.byte $31; A9 [b3c6]11.byte $11; A9 [b3c7]31.byte $31; A9 [b3c8]11.byte $11; A9 [b3c9]11.byte $11; A9 [b3ca]31.byte $31; A9 [b3cb]11.byte $11; A9 [b3cc]11.byte $11; A9 [b3cd]31.byte $31; A9 [b3ce]31.byte $31; A9 [b3cf]fc.byte MSCRIPT_OP_END_LOOP; Op: End loop [b3d0]f4.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel [b3d1]ff.byte MSCRIPT_OP_END; Op: End
;============================================================================ ; Post-MScript data. ; ; At first glance, this appears to be structured data. ; 4 words in a sequence, each with 0xFF00 as the trailing ; value. ; ; There are exceptions to this, though: ; ; Address | Value ; --------+------ ; $B878 | F700 ; $B8D0 | F700 ; $BAE0 | DF00 ; $BBF8 | FF20 ; $BD10 | FF01 ; $BE10 | 7F00 ; $BF08 | EF00 ; ; If we do assume group of 4 words, though, there are a ; few observations: ; ; 1. Words 1, 2, and 4 usually start with 0xFF. ; 2. Word 3 may be anything. ; 3. 0xFF00 is usually the 4th byte, but as shown above, ; not always. ; ; I've checked the music engines for various Hudson Soft ; games during, shortly before, and shortly after this ; era, and couldn't find anything matching this. The music ; engines generally match the MScripts here (though ; Faxanadu's is more complex). ; ; It's possible this was floating point data or something ; for SQ envelope curves, but left out. ; ; In any case, this data seems unused by the shipped game. ;============================================================================
[b3d2]a7 ff 75 ff 57 61 00 ff.word $ffa7,$ff75,$6157,$ff00; ushort [b3da]e9 ff f8 ff ad fe 00 ff.word $ffe9,$fff8,$fead,$ff00; ushort [b3e2]23 ff fd ff 29 ed 00 ff.word $ff23,$fffd,$ed29,$ff00; ushort [b3ea]7c ff 3a ff ba 4c 00 ff.word $ff7c,$ff3a,$4cba,$ff00; ushort [b3f2]37 ff 7b ff 4c 32 00 ff.word $ff37,$ff7b,$324c,$ff00; ushort [b3fa]48 ff be ff 3a d6 00 ff.word $ff48,$ffbe,$d63a,$ff00; ushort [b402]82 ff 53 ff 4e fb 00 ff.word $ff82,$ff53,$fb4e,$ff00; ushort [b40a]84 ff f8 ff d8 eb 00 ff.word $ff84,$fff8,$ebd8,$ff00; ushort [b412]74 ff ef ff bd db 00 ff.word $ff74,$ffef,$dbbd,$ff00; ushort [b41a]39 ff ff ff ee 97 00 ff.word $ff39,$ffff,$97ee,$ff00; ushort [b422]0a ff c6 ff c5 ff 00 ff.word $ff0a,$ffc6,$ffc5,$ff00; ushort [b42a]02 ff 7d ff 74 f1 00 ff.word $ff02,$ff7d,$f174,$ff00; ushort [b432]3e ff 93 ff b1 7b 00 ff.word $ff3e,$ff93,$7bb1,$ff00; ushort [b43a]c6 ff 5d ff ff 73 00 ff.word $ffc6,$ff5d,$73ff,$ff00; ushort [b442]84 ff 11 ff e4 bf 00 ff.word $ff84,$ff11,$bfe4,$ff00; ushort [b44a]3c ff b3 ff 3f 7d 00 ff.word $ff3c,$ffb3,$7d3f,$ff00; ushort [b452]8a ff 5e ff c3 7f 00 ff.word $ff8a,$ff5e,$7fc3,$ff00; ushort [b45a]cc ff de ff 3f f8 00 ff.word $ffcc,$ffde,$f83f,$ff00; ushort [b462]45 ff d3 ff ee 77 00 ff.word $ff45,$ffd3,$77ee,$ff00; ushort [b46a]80 ff 85 ff 79 7e 00 ff.word $ff80,$ff85,$7e79,$ff00; ushort [b472]95 ff 62 ff 73 2f 00 ff.word $ff95,$ff62,$2f73,$ff00; ushort [b47a]f3 ff ff ff 0c ff 00 ff.word $fff3,$ffff,$ff0c,$ff00; ushort [b482]95 ff 82 ff ab 7f 00 ff.word $ff95,$ff82,$7fab,$ff00; ushort [b48a]c0 ff 5a ff 01 97 00 ff.word $ffc0,$ff5a,$9701,$ff00; ushort [b492]12 ff 5d ff aa f3 00 ff.word $ff12,$ff5d,$f3aa,$ff00; ushort [b49a]f0 ff 18 ff f3 f9 00 ff.word $fff0,$ff18,$f9f3,$ff00; ushort [b4a2]00 ff 3e ff 6a cb 00 ff.word $ff00,$ff3e,$cb6a,$ff00; ushort [b4aa]57 ff bb ff 78 fe 00 ff.word $ff57,$ffbb,$fe78,$ff00; ushort [b4b2]a7 ff 23 ff d2 80 00 ff.word $ffa7,$ff23,$80d2,$ff00; ushort [b4ba]a5 ff 6e ff 2f b6 00 ff.word $ffa5,$ff6e,$b62f,$ff00; ushort [b4c2]50 ff 66 ff 20 75 00 ff.word $ff50,$ff66,$7520,$ff00; ushort [b4ca]55 ff f7 ff 5b ed 00 ff.word $ff55,$fff7,$ed5b,$ff00; ushort [b4d2]60 ff e8 ff 78 9e 00 ff.word $ff60,$ffe8,$9e78,$ff00; ushort [b4da]d9 ff 13 ff bd ff 00 ff.word $ffd9,$ff13,$ffbd,$ff00; ushort [b4e2]ec ff 0b ff 26 fd 00 ff.word $ffec,$ff0b,$fd26,$ff00; ushort [b4ea]e2 ff 58 ff 36 77 00 ff.word $ffe2,$ff58,$7736,$ff00; ushort [b4f2]40 ff b6 ff 02 ff 00 ff.word $ff40,$ffb6,$ff02,$ff00; ushort [b4fa]f9 ff df ff b0 58 00 ff.word $fff9,$ffdf,$58b0,$ff00; ushort [b502]b4 ff 9e ff aa fb 00 ff.word $ffb4,$ff9e,$fbaa,$ff00; ushort [b50a]84 ff 9a ff 9f ff 00 ff.word $ff84,$ff9a,$ff9f,$ff00; ushort [b512]34 ff d3 ff 32 9f 00 ff.word $ff34,$ffd3,$9f32,$ff00; ushort [b51a]4a ff 57 ff 6f 6d 00 ff.word $ff4a,$ff57,$6d6f,$ff00; ushort [b522]2a ff 64 ff fe dd 00 ff.word $ff2a,$ff64,$ddfe,$ff00; ushort [b52a]94 ff d1 ff bb ef 00 ff.word $ff94,$ffd1,$efbb,$ff00; ushort [b532]2c ff 5f ff cb bf 00 ff.word $ff2c,$ff5f,$bfcb,$ff00; ushort [b53a]e7 ff 7c ff f3 7d 00 ff.word $ffe7,$ff7c,$7df3,$ff00; ushort [b542]90 ff 51 ff 33 ec 00 ff.word $ff90,$ff51,$ec33,$ff00; ushort [b54a]59 ff a4 ff 72 7f 00 ff.word $ff59,$ffa4,$7f72,$ff00; ushort [b552]1a ff 0f ff c5 af 00 ff.word $ff1a,$ff0f,$afc5,$ff00; ushort [b55a]2f ff e9 ff 15 30 00 ff.word $ff2f,$ffe9,$3015,$ff00; ushort [b562]03 ff 06 ff 13 bf 00 ff.word $ff03,$ff06,$bf13,$ff00; ushort [b56a]0b ff fb ff e2 fe 00 ff.word $ff0b,$fffb,$fee2,$ff00; ushort [b572]d5 ff c7 ff 69 9f 00 ff.word $ffd5,$ffc7,$9f69,$ff00; ushort [b57a]32 ff 76 ff fc 06 00 ff.word $ff32,$ff76,$06fc,$ff00; ushort [b582]14 ff 3c ff 6f 0f 00 ff.word $ff14,$ff3c,$0f6f,$ff00; ushort [b58a]ad ff ea ff db af 00 ff.word $ffad,$ffea,$afdb,$ff00; ushort [b592]27 ff ee ff f9 4c 00 ff.word $ff27,$ffee,$4cf9,$ff00; ushort [b59a]23 ff 5d ff 57 fe 00 ff.word $ff23,$ff5d,$fe57,$ff00; ushort [b5a2]04 ff b1 ff e2 f7 00 ff.word $ff04,$ffb1,$f7e2,$ff00; ushort [b5aa]a4 ff 53 ff fa ff 00 ff.word $ffa4,$ff53,$fffa,$ff00; ushort [b5b2]2c ff 5f ff fd 8c 00 ff.word $ff2c,$ff5f,$8cfd,$ff00; ushort [b5ba]7d ff 77 ff e8 52 00 ff.word $ff7d,$ff77,$52e8,$ff00; ushort [b5c2]00 ff 83 ff 35 bf 00 ff.word $ff00,$ff83,$bf35,$ff00; ushort [b5ca]58 ff d7 ff ef d7 00 ff.word $ff58,$ffd7,$d7ef,$ff00; ushort [b5d2]60 ff f8 ff d1 de 00 ff.word $ff60,$fff8,$ded1,$ff00; ushort [b5da]94 ff f3 ff ea cf 00 ff.word $ff94,$fff3,$cfea,$ff00; ushort [b5e2]08 ff 48 ff 7b fb 00 ff.word $ff08,$ff48,$fb7b,$ff00; ushort [b5ea]33 ff d6 ff 7f 83 00 ff.word $ff33,$ffd6,$837f,$ff00; ushort [b5f2]71 ff 4e ff 45 ff 00 ff.word $ff71,$ff4e,$ff45,$ff00; ushort [b5fa]fc ff 97 ef f6 3e 00 ff.word $fffc,$ef97,$3ef6,$ff00; ushort [b602]40 ff 05 ff 4b ff 00 ff.word $ff40,$ff05,$ff4b,$ff00; ushort [b60a]04 ff 72 ff 69 ff 00 ff.word $ff04,$ff72,$ff69,$ff00; ushort [b612]12 ff c8 ff e9 ef 00 ff.word $ff12,$ffc8,$efe9,$ff00; ushort [b61a]d8 ff df ff af 03 00 ff.word $ffd8,$ffdf,$03af,$ff00; ushort [b622]27 ff 2c ff 11 ff 00 ff.word $ff27,$ff2c,$ff11,$ff00; ushort [b62a]94 ff 22 ff f2 ff 00 ff.word $ff94,$ff22,$fff2,$ff00; ushort [b632]e4 ff bd ff f7 92 00 ff.word $ffe4,$ffbd,$92f7,$ff00; ushort [b63a]26 ff ff ff a7 65 00 ff.word $ff26,$ffff,$65a7,$ff00; ushort [b642]61 ff a8 ff b0 be 00 ff.word $ff61,$ffa8,$beb0,$ff00; ushort [b64a]0d ff a2 ff 51 a3 00 ff.word $ff0d,$ffa2,$a351,$ff00; ushort [b652]f0 ff c4 ff 04 ae 00 ff.word $fff0,$ffc4,$ae04,$ff00; ushort [b65a]3b ff 7f ff 3b cf 00 ff.word $ff3b,$ff7f,$cf3b,$ff00; ushort [b662]01 ff 56 ff 61 ff 00 ff.word $ff01,$ff56,$ff61,$ff00; ushort [b66a]8d ff fb ff 81 f7 00 ff.word $ff8d,$fffb,$f781,$ff00; ushort [b672]12 ff cb ff 73 df 00 ff.word $ff12,$ffcb,$df73,$ff00; ushort [b67a]71 ff d9 ff b7 bf 00 ff.word $ff71,$ffd9,$bfb7,$ff00; ushort [b682]00 ff 59 ff 79 97 00 ff.word $ff00,$ff59,$9779,$ff00; ushort [b68a]42 ff 7d ff b9 ea 00 ff.word $ff42,$ff7d,$eab9,$ff00; ushort [b692]70 ff db ff fd 30 00 ff.word $ff70,$ffdb,$30fd,$ff00; ushort [b69a]08 ff 67 ff 9f 8e 00 ff.word $ff08,$ff67,$8e9f,$ff00; ushort [b6a2]01 ff 1f ff 27 7f 00 ff.word $ff01,$ff1f,$7f27,$ff00; ushort [b6aa]c0 ff 27 ff 50 6f 00 ff.word $ffc0,$ff27,$6f50,$ff00; ushort [b6b2]63 ff be ff 40 cf 00 ff.word $ff63,$ffbe,$cf40,$ff00; ushort [b6ba]c5 ff da ff 1f 9f 00 ff.word $ffc5,$ffda,$9f1f,$ff00; ushort [b6c2]28 ff e5 ff a3 b7 00 ff.word $ff28,$ffe5,$b7a3,$ff00; ushort [b6ca]c2 ff 19 ff 8b 9f 00 ff.word $ffc2,$ff19,$9f8b,$ff00; ushort [b6d2]44 ff f7 ff d5 ef 00 ff.word $ff44,$fff7,$efd5,$ff00; ushort [b6da]2d ff ad ff d5 7f 00 ff.word $ff2d,$ffad,$7fd5,$ff00; ushort [b6e2]22 ff 3e ff 75 5f 00 ff.word $ff22,$ff3e,$5f75,$ff00; ushort [b6ea]01 ff ed ff 14 df 00 ff.word $ff01,$ffed,$df14,$ff00; ushort [b6f2]38 ff 7d ff fa d3 00 ff.word $ff38,$ff7d,$d3fa,$ff00; ushort [b6fa]7c ff bd ff de ce 00 ff.word $ff7c,$ffbd,$cede,$ff00; ushort [b702]3e ff e7 ff e1 e6 00 ff.word $ff3e,$ffe7,$e6e1,$ff00; ushort [b70a]38 ff 3a ff 59 f5 00 ff.word $ff38,$ff3a,$f559,$ff00; ushort [b712]05 ff 17 ef 75 5e 00 ff.word $ff05,$ef17,$5e75,$ff00; ushort [b71a]6b ff fd ff de 34 00 ff.word $ff6b,$fffd,$34de,$ff00; ushort [b722]32 ff 5b ff 00 f3 00 ff.word $ff32,$ff5b,$f300,$ff00; ushort [b72a]20 ff da ff 5e ff 00 ff.word $ff20,$ffda,$ff5e,$ff00; ushort [b732]04 ff e0 ff c1 f3 00 ff.word $ff04,$ffe0,$f3c1,$ff00; ushort [b73a]49 ff b7 ff 9e ee 00 ff.word $ff49,$ffb7,$ee9e,$ff00; ushort [b742]72 ff 34 ff 76 d5 00 ff.word $ff72,$ff34,$d576,$ff00; ushort [b74a]01 ff 69 ff 0d fe 00 ff.word $ff01,$ff69,$fe0d,$ff00; ushort [b752]bb ff 20 ff e4 7e 00 ff.word $ffbb,$ff20,$7ee4,$ff00; ushort [b75a]43 ff b7 ff 7b 18 00 ff.word $ff43,$ffb7,$187b,$ff00; ushort [b762]61 ff 03 ff e0 ff 00 ff.word $ff61,$ff03,$ffe0,$ff00; ushort [b76a]89 ff f5 ff 66 8f 00 ff.word $ff89,$fff5,$8f66,$ff00; ushort [b772]fe ff c7 ff fd bf 00 ff.word $fffe,$ffc7,$bffd,$ff00; ushort [b77a]28 ff eb ff af eb 00 ff.word $ff28,$ffeb,$ebaf,$ff00; ushort [b782]04 ff 0a ff c1 bf 00 ff.word $ff04,$ff0a,$bfc1,$ff00; ushort [b78a]50 ff 21 df f4 db 00 ff.word $ff50,$df21,$dbf4,$ff00; ushort [b792]dc ff 9e ff ff bd 00 ff.word $ffdc,$ff9e,$bdff,$ff00; ushort [b79a]8b ff be ff cd b5 00 ff.word $ff8b,$ffbe,$b5cd,$ff00; ushort [b7a2]00 ff 39 ff 1c ff 00 ff.word $ff00,$ff39,$ff1c,$ff00; ushort [b7aa]08 ff 11 ff b7 bf 00 ff.word $ff08,$ff11,$bfb7,$ff00; ushort [b7b2]f2 ff 77 ff f4 f7 00 ff.word $fff2,$ff77,$f7f4,$ff00; ushort [b7ba]64 ff 53 ff ff b3 00 ff.word $ff64,$ff53,$b3ff,$ff00; ushort [b7c2]81 ff 55 ff cd 97 00 ff.word $ff81,$ff55,$97cd,$ff00; ushort [b7ca]1e ff 39 ff 68 fb 00 ff.word $ff1e,$ff39,$fb68,$ff00; ushort [b7d2]a0 ff fd ff ca ee 00 ff.word $ffa0,$fffd,$eeca,$ff00; ushort [b7da]ae df f4 fb 7f 6b 00 ff.word $dfae,$fbf4,$6b7f,$ff00; ushort [b7e2]44 ff 93 ff f5 7c 00 ff.word $ff44,$ff93,$7cf5,$ff00; ushort [b7ea]46 ff 04 ff fd 7f 00 ff.word $ff46,$ff04,$7ffd,$ff00; ushort [b7f2]e0 ff 34 df 7b fe 00 ff.word $ffe0,$df34,$fe7b,$ff00; ushort [b7fa]5a ff eb ff 19 c1 00 ff.word $ff5a,$ffeb,$c119,$ff00; ushort [b802]31 ff a4 ff 26 3d 00 ff.word $ff31,$ffa4,$3d26,$ff00; ushort [b80a]e0 ff b0 ff e3 ff 00 ff.word $ffe0,$ffb0,$ffe3,$ff00; ushort [b812]fa ff 71 ff f9 fe 00 ff.word $fffa,$ff71,$fef9,$ff00; ushort [b81a]3b ff fe ff cf de 00 ff.word $ff3b,$fffe,$decf,$ff00; ushort [b822]16 ff e5 ff bc 1d 00 ff.word $ff16,$ffe5,$1dbc,$ff00; ushort [b82a]05 ff 9e ff bb fb 00 ff.word $ff05,$ff9e,$fbbb,$ff00; ushort [b832]b0 ff bb ff 9e e7 00 ff.word $ffb0,$ffbb,$e79e,$ff00; ushort [b83a]50 ff bc ff cd a6 00 ff.word $ff50,$ffbc,$a6cd,$ff00; ushort [b842]3a ff 02 ff e2 de 00 ff.word $ff3a,$ff02,$dee2,$ff00; ushort [b84a]42 ff 3a ff c5 33 00 ff.word $ff42,$ff3a,$33c5,$ff00; ushort [b852]d2 ff 67 ff 5b 7d 00 ff.word $ffd2,$ff67,$7d5b,$ff00; ushort [b85a]6e ff d9 ff fd 59 00 ff.word $ff6e,$ffd9,$59fd,$ff00; ushort [b862]80 ff 0c ff 02 df 00 ff.word $ff80,$ff0c,$df02,$ff00; ushort [b86a]a4 ff 9a ff 93 ff 00 ff.word $ffa4,$ff9a,$ff93,$ff00; ushort [b872]06 ff a7 ff 7e df 00 f7.word $ff06,$ffa7,$df7e,$f700; ushort [b87a]3d ff 71 ff ee 4f 00 ff.word $ff3d,$ff71,$4fee,$ff00; ushort [b882]04 ff 10 ff c8 bb 00 ff.word $ff04,$ff10,$bbc8,$ff00; ushort [b88a]12 ff 2f ff f5 74 00 ff.word $ff12,$ff2f,$74f5,$ff00; ushort [b892]30 ff f3 ff 5e 55 00 ff.word $ff30,$fff3,$555e,$ff00; ushort [b89a]c2 ff de ff b6 b4 00 ff.word $ffc2,$ffde,$b4b6,$ff00; ushort [b8a2]81 ff 6a ff f7 fd 00 ff.word $ff81,$ff6a,$fdf7,$ff00; ushort [b8aa]93 ff 24 ff 47 b6 00 ff.word $ff93,$ff24,$b647,$ff00; ushort [b8b2]45 ff 6b ff 17 37 00 ff.word $ff45,$ff6b,$3717,$ff00; ushort [b8ba]88 ff 76 ff 7f 2f 00 ff.word $ff88,$ff76,$2f7f,$ff00; ushort [b8c2]00 ff be ff 9a fd 00 ff.word $ff00,$ffbe,$fd9a,$ff00; ushort [b8ca]b2 ff db ff dc af 00 f7.word $ffb2,$ffdb,$afdc,$f700; ushort [b8d2]aa ff 7e ff ed df 00 ff.word $ffaa,$ff7e,$dfed,$ff00; ushort [b8da]68 ff ed ff bb 7c 00 ff.word $ff68,$ffed,$7cbb,$ff00; ushort [b8e2]20 ff 12 ff 39 8b 00 ff.word $ff20,$ff12,$8b39,$ff00; ushort [b8ea]70 ff e0 ff 1c 9d 00 ff.word $ff70,$ffe0,$9d1c,$ff00; ushort [b8f2]67 ff 83 fd f4 93 00 ff.word $ff67,$fd83,$93f4,$ff00; ushort [b8fa]19 ff 79 ff bf 7f 00 ff.word $ff19,$ff79,$7fbf,$ff00; ushort [b902]a1 ff 3a ff 8a f7 00 ff.word $ffa1,$ff3a,$f78a,$ff00; ushort [b90a]84 ff 5e ff b5 6b 00 ff.word $ff84,$ff5e,$6bb5,$ff00; ushort [b912]b0 ff 65 ff d6 f9 00 ff.word $ffb0,$ff65,$f9d6,$ff00; ushort [b91a]72 ff 7b ff 74 8d 00 ff.word $ff72,$ff7b,$8d74,$ff00; ushort [b922]08 ff 0d ff 5d bd 00 ff.word $ff08,$ff0d,$bd5d,$ff00; ushort [b92a]00 ff 82 ff 7a 3f 00 ff.word $ff00,$ff82,$3f7a,$ff00; ushort [b932]e2 ff b2 ff a4 7e 00 ff.word $ffe2,$ffb2,$7ea4,$ff00; ushort [b93a]e7 ff 95 fe b5 af 00 ff.word $ffe7,$fe95,$afb5,$ff00; ushort [b942]80 ff 10 ff 31 f8 00 ff.word $ff80,$ff10,$f831,$ff00; ushort [b94a]40 ff 6a ff 7e ff 00 ff.word $ff40,$ff6a,$ff7e,$ff00; ushort [b952]45 ff 5d ff 21 67 00 ff.word $ff45,$ff5d,$6721,$ff00; ushort [b95a]c0 ff af ff 85 e3 00 ff.word $ffc0,$ffaf,$e385,$ff00; ushort [b962]00 ff 12 ff 97 cf 00 ff.word $ff00,$ff12,$cf97,$ff00; ushort [b96a]b0 ff 63 ff b8 ce 00 ff.word $ffb0,$ff63,$ceb8,$ff00; ushort [b972]fa ff 3b ff a3 e5 00 ff.word $fffa,$ff3b,$e5a3,$ff00; ushort [b97a]60 ff 5b ff 89 76 00 ff.word $ff60,$ff5b,$7689,$ff00; ushort [b982]80 ff 52 ff 52 7e 00 ff.word $ff80,$ff52,$7e52,$ff00; ushort [b98a]a0 ff 1f ff 66 d7 00 ff.word $ffa0,$ff1f,$d766,$ff00; ushort [b992]76 ff 9d ff f9 14 00 ff.word $ff76,$ff9d,$14f9,$ff00; ushort [b99a]ff ff 2f ff f7 52 00 ff.word $ffff,$ff2f,$52f7,$ff00; ushort [b9a2]9c ff 04 ff 76 ff 00 ff.word $ff9c,$ff04,$ff76,$ff00; ushort [b9aa]94 ff 72 ff 7f 4e 00 ff.word $ff94,$ff72,$4e7f,$ff00; ushort [b9b2]a7 ff c7 ff 66 6d 00 ff.word $ffa7,$ffc7,$6d66,$ff00; ushort [b9ba]9d ff 7f ff 7c 26 00 ff.word $ff9d,$ff7f,$267c,$ff00; ushort [b9c2]26 ff c7 ff 72 ff 00 ff.word $ff26,$ffc7,$ff72,$ff00; ushort [b9ca]31 ff b7 ff 7e e9 00 ff.word $ff31,$ffb7,$e97e,$ff00; ushort [b9d2]bc ff de ff e7 e4 00 ff.word $ffbc,$ffde,$e4e7,$ff00; ushort [b9da]7b ff f2 fe f3 eb 00 ff.word $ff7b,$fef2,$ebf3,$ff00; ushort [b9e2]e8 ff 32 ff 9d f7 00 ff.word $ffe8,$ff32,$f79d,$ff00; ushort [b9ea]80 ff 36 ff 9c ff 00 ff.word $ff80,$ff36,$ff9c,$ff00; ushort [b9f2]88 ff eb ff eb a7 00 ff.word $ff88,$ffeb,$a7eb,$ff00; ushort [b9fa]8f ff 77 ff df 79 00 ff.word $ff8f,$ff77,$79df,$ff00; ushort [ba02]fa ff a6 ff cd ff 00 ff.word $fffa,$ffa6,$ffcd,$ff00; ushort [ba0a]a0 ff b4 ff 52 eb 00 ff.word $ffa0,$ffb4,$eb52,$ff00; ushort [ba12]dc ff be ff c5 6d 00 ff.word $ffdc,$ffbe,$6dc5,$ff00; ushort [ba1a]63 ff fd ff a2 42 00 ff.word $ff63,$fffd,$42a2,$ff00; ushort [ba22]a4 ff c1 ff 88 fd 00 ff.word $ffa4,$ffc1,$fd88,$ff00; ushort [ba2a]30 ff 6a ff 92 7d 00 ff.word $ff30,$ff6a,$7d92,$ff00; ushort [ba32]70 ff bb ff 76 ff 00 ff.word $ff70,$ffbb,$ff76,$ff00; ushort [ba3a]b4 ff f5 ff fe dc 00 ff.word $ffb4,$fff5,$dcfe,$ff00; ushort [ba42]80 ff 37 ff a4 e7 00 ff.word $ff80,$ff37,$e7a4,$ff00; ushort [ba4a]40 ff 43 ff 7d f7 00 ff.word $ff40,$ff43,$f77d,$ff00; ushort [ba52]12 ff f1 ff 57 df 00 ff.word $ff12,$fff1,$df57,$ff00; ushort [ba5a]d7 ff c5 ff 3b e7 00 ff.word $ffd7,$ffc5,$e73b,$ff00; ushort [ba62]6c ff de ff 98 5a 00 ff.word $ff6c,$ffde,$5a98,$ff00; ushort [ba6a]82 ff 8e ff 23 5e 00 ff.word $ff82,$ff8e,$5e23,$ff00; ushort [ba72]06 ff bd ff a7 6f 00 ff.word $ff06,$ffbd,$6fa7,$ff00; ushort [ba7a]bc ff eb ff 55 0b 00 ff.word $ffbc,$ffeb,$0b55,$ff00; ushort [ba82]a1 ff cd ff 15 d7 00 ff.word $ffa1,$ffcd,$d715,$ff00; ushort [ba8a]a2 ff ca ff 2b 8f 00 ff.word $ffa2,$ffca,$8f2b,$ff00; ushort [ba92]6f ff fe ff db 68 00 ff.word $ff6f,$fffe,$68db,$ff00; ushort [ba9a]b8 ff d7 ff df 55 00 ff.word $ffb8,$ffd7,$55df,$ff00; ushort [baa2]b4 ff 06 ff cd bf 00 ff.word $ffb4,$ff06,$bfcd,$ff00; ushort [baaa]d0 ff 78 ff e6 ed 00 ff.word $ffd0,$ff78,$ede6,$ff00; ushort [bab2]e4 ff dd ff ba ce 00 ff.word $ffe4,$ffdd,$ceba,$ff00; ushort [baba]4d ff df ff c5 95 00 ff.word $ff4d,$ffdf,$95c5,$ff00; ushort [bac2]2a ff ed ff 36 fe 00 ff.word $ff2a,$ffed,$fe36,$ff00; ushort [baca]00 ff c3 ff 7f df 00 ff.word $ff00,$ffc3,$df7f,$ff00; ushort [bad2]40 ff f5 fb b1 ec 00 ff.word $ff40,$fbf5,$ecb1,$ff00; ushort [bada]d8 ff df ff 7d bf 00 df.word $ffd8,$ffdf,$bf7d,$df00; ushort [bae2]04 ff b5 ff e7 af 00 ff.word $ff04,$ffb5,$afe7,$ff00; ushort [baea]00 ff 51 ff ff d3 00 ff.word $ff00,$ff51,$d3ff,$ff00; ushort [baf2]95 ff 74 ff e4 8f 00 ff.word $ff95,$ff74,$8fe4,$ff00; ushort [bafa]c1 ff 7f ff 7f 54 00 ff.word $ffc1,$ff7f,$547f,$ff00; ushort [bb02]40 ff 0f ff d9 3f 00 ff.word $ff40,$ff0f,$3fd9,$ff00; ushort [bb0a]44 ff 4d ff bf cf 00 ff.word $ff44,$ff4d,$cfbf,$ff00; ushort [bb12]32 ff f9 ff ab f7 00 ff.word $ff32,$fff9,$f7ab,$ff00; ushort [bb1a]f1 ff df af 7f 02 00 ff.word $fff1,$afdf,$027f,$ff00; ushort [bb22]54 ff 23 ff 59 9f 00 ff.word $ff54,$ff23,$9f59,$ff00; ushort [bb2a]07 ff b1 ff a4 ef 00 ff.word $ff07,$ffb1,$efa4,$ff00; ushort [bb32]30 ff 66 ff 6e de 00 ff.word $ff30,$ff66,$de6e,$ff00; ushort [bb3a]e2 ff 6f ff fb bd 00 ff.word $ffe2,$ff6f,$bdfb,$ff00; ushort [bb42]85 ff 27 ff 13 fb 00 ff.word $ff85,$ff27,$fb13,$ff00; ushort [bb4a]08 ff 52 ff de bd 00 ff.word $ff08,$ff52,$bdde,$ff00; ushort [bb52]be ff bb ff ee b7 00 ff.word $ffbe,$ffbb,$b7ee,$ff00; ushort [bb5a]23 ff f7 ff 7f ae 00 ff.word $ff23,$fff7,$ae7f,$ff00; ushort [bb62]00 ff 8b ff 31 ef 00 ff.word $ff00,$ff8b,$ef31,$ff00; ushort [bb6a]c1 ff 80 ff 9b 7f 00 ff.word $ffc1,$ff80,$7f9b,$ff00; ushort [bb72]76 ff b0 ff 3f b3 00 ff.word $ff76,$ffb0,$b33f,$ff00; ushort [bb7a]55 ff bf ff 79 aa 00 ff.word $ff55,$ffbf,$aa79,$ff00; ushort [bb82]11 ff c4 ff 38 8f 00 ff.word $ff11,$ffc4,$8f38,$ff00; ushort [bb8a]53 ff e0 ff 0a e1 00 ff.word $ff53,$ffe0,$e10a,$ff00; ushort [bb92]03 ff 7e ff 5e f7 00 ff.word $ff03,$ff7e,$f75e,$ff00; ushort [bb9a]62 ff f3 ff 5e 35 00 ff.word $ff62,$fff3,$355e,$ff00; ushort [bba2]54 ff 41 ff 2e df 00 ff.word $ff54,$ff41,$df2e,$ff00; ushort [bbaa]03 ff 6c ff b5 5f 00 ff.word $ff03,$ff6c,$5fb5,$ff00; ushort [bbb2]c4 ff e2 ff 5e df 00 ff.word $ffc4,$ffe2,$df5e,$ff00; ushort [bbba]f6 ff 5f ff a5 0f 00 ff.word $fff6,$ff5f,$0fa5,$ff00; ushort [bbc2]c1 ff 21 ff 4f 43 00 ff.word $ffc1,$ff21,$434f,$ff00; ushort [bbca]48 ff 15 ff e0 df 00 ff.word $ff48,$ff15,$dfe0,$ff00; ushort [bbd2]64 ff 34 ff b1 7d 00 ff.word $ff64,$ff34,$7db1,$ff00; ushort [bbda]f8 ff ff ff bc 2d 00 ff.word $fff8,$ffff,$2dbc,$ff00; ushort [bbe2]09 ff e6 ff 4d f6 00 ff.word $ff09,$ffe6,$f64d,$ff00; ushort [bbea]60 ff 81 ff 15 af 00 ff.word $ff60,$ff81,$af15,$ff00; ushort [bbf2]30 ff a3 ff ba 3a 20 ff.word $ff30,$ffa3,$3aba,$ff20; ushort [bbfa]53 ff 15 ff ed ae 00 ff.word $ff53,$ff15,$aeed,$ff00; ushort [bc02]21 ff 95 ff b3 fe 00 ff.word $ff21,$ff95,$feb3,$ff00; ushort [bc0a]cc ff c5 ff 63 2f 00 ff.word $ffcc,$ffc5,$2f63,$ff00; ushort [bc12]68 ff 3a ff 7e ee 00 ff.word $ff68,$ff3a,$ee7e,$ff00; ushort [bc1a]b4 ff 5b ff 6e 31 00 ff.word $ffb4,$ff5b,$316e,$ff00; ushort [bc22]10 ff cf ff 98 e7 00 ff.word $ff10,$ffcf,$e798,$ff00; ushort [bc2a]60 ff a7 ff 21 3f 00 ff.word $ff60,$ffa7,$3f21,$ff00; ushort [bc32]10 ff ef ff cd eb 00 ff.word $ff10,$ffef,$ebcd,$ff00; ushort [bc3a]2e ff ff ff c0 5e 00 ff.word $ff2e,$ffff,$5ec0,$ff00; ushort [bc42]00 ff be ff 31 ff 00 ff.word $ff00,$ffbe,$ff31,$ff00; ushort [bc4a]02 ff de ff 8a ff 00 ff.word $ff02,$ffde,$ff8a,$ff00; ushort [bc52]42 ff be ff b8 9c 00 ff.word $ff42,$ffbe,$9cb8,$ff00; ushort [bc5a]95 ff ed ff fc 2e 00 ff.word $ff95,$ffed,$2efc,$ff00; ushort [bc62]04 ff f5 ff 15 cf 00 ff.word $ff04,$fff5,$cf15,$ff00; ushort [bc6a]4e ff ee ff 28 dc 00 ff.word $ff4e,$ffee,$dc28,$ff00; ushort [bc72]0a ff f1 ff 5d 76 00 ff.word $ff0a,$fff1,$765d,$ff00; ushort [bc7a]b1 ff 97 ff 6b 7a 00 ff.word $ffb1,$ff97,$7a6b,$ff00; ushort [bc82]85 ff 39 ff 15 cf 00 ff.word $ff85,$ff39,$cf15,$ff00; ushort [bc8a]c6 ff cb ff fb 77 00 ff.word $ffc6,$ffcb,$77fb,$ff00; ushort [bc92]1f ff d7 ff ac e1 00 ff.word $ff1f,$ffd7,$e1ac,$ff00; ushort [bc9a]1a ff c8 ef 55 e8 00 ff.word $ff1a,$efc8,$e855,$ff00; ushort [bca2]8a ff ea ff f4 bd 00 ff.word $ff8a,$ffea,$bdf4,$ff00; ushort [bcaa]80 ff 2f ff d7 ef 00 ff.word $ff80,$ff2f,$efd7,$ff00; ushort [bcb2]72 ff 45 ff f3 fd 00 ff.word $ff72,$ff45,$fdf3,$ff00; ushort [bcba]ef ff ef ff 8d 23 00 ff.word $ffef,$ffef,$238d,$ff00; ushort [bcc2]20 ff 91 ff 9c ed 00 ff.word $ff20,$ff91,$ed9c,$ff00; ushort [bcca]45 ff aa ff 93 ee 00 ff.word $ff45,$ffaa,$ee93,$ff00; ushort [bcd2]06 ff 4f ff a3 9f 00 ff.word $ff06,$ff4f,$9fa3,$ff00; ushort [bcda]dd ff ff ff fb 0d 00 ff.word $ffdd,$ffff,$0dfb,$ff00; ushort [bce2]28 ff 05 ff 2b 6d 00 ff.word $ff28,$ff05,$6d2b,$ff00; ushort [bcea]d2 ff 51 ff bc fd 00 ff.word $ffd2,$ff51,$fdbc,$ff00; ushort [bcf2]45 ff 86 ff a0 fa 00 ff.word $ff45,$ff86,$faa0,$ff00; ushort [bcfa]b2 ff af ff 71 14 00 ff.word $ffb2,$ffaf,$1471,$ff00; ushort [bd02]20 ff 53 ff 57 ff 00 ff.word $ff20,$ff53,$ff57,$ff00; ushort [bd0a]f5 ff bf ff 35 fd 01 ff.word $fff5,$ffbf,$fd35,$ff01; ushort [bd12]93 ff e6 ff bd e8 00 ff.word $ff93,$ffe6,$e8bd,$ff00; ushort [bd1a]5f ff b9 ff b8 ff 00 ff.word $ff5f,$ffb9,$ffb8,$ff00; ushort [bd22]70 ff 73 ff c6 df 00 ff.word $ff70,$ff73,$dfc6,$ff00; ushort [bd2a]03 ff 71 ff 89 af 00 ff.word $ff03,$ff71,$af89,$ff00; ushort [bd32]01 ff ab ff 6d e7 00 ff.word $ff01,$ffab,$e76d,$ff00; ushort [bd3a]d7 ff 62 ff 36 47 00 ff.word $ffd7,$ff62,$4736,$ff00; ushort [bd42]40 ff 34 ff 41 ef 00 ff.word $ff40,$ff34,$ef41,$ff00; ushort [bd4a]b9 ff 39 ff 3e 6e 00 ff.word $ffb9,$ff39,$6e3e,$ff00; ushort [bd52]af ff 17 ff 3e ff 00 ff.word $ffaf,$ff17,$ff3e,$ff00; ushort [bd5a]69 ff 5d ff 67 23 00 ff.word $ff69,$ff5d,$2367,$ff00; ushort [bd62]a2 ff 1a ff f4 db 00 ff.word $ffa2,$ff1a,$dbf4,$ff00; ushort [bd6a]87 ff b3 ff 68 ae 00 ff.word $ff87,$ffb3,$ae68,$ff00; ushort [bd72]63 ff 6b ff 65 fd 00 ff.word $ff63,$ff6b,$fd65,$ff00; ushort [bd7a]09 ff fd ff ef 4c 00 ff.word $ff09,$fffd,$4cef,$ff00; ushort [bd82]01 ff 65 ff 18 ea 00 ff.word $ff01,$ff65,$ea18,$ff00; ushort [bd8a]30 ff a3 ff b6 7f 00 ff.word $ff30,$ffa3,$7fb6,$ff00; ushort [bd92]9f ff ea fe 7f be 00 ff.word $ff9f,$feea,$be7f,$ff00; ushort [bd9a]de ff 25 ff df 1e 00 ff.word $ffde,$ff25,$1edf,$ff00; ushort [bda2]11 ff 50 ff 6b 7e 00 ff.word $ff11,$ff50,$7e6b,$ff00; ushort [bdaa]86 ff f4 ff b5 af 00 ff.word $ff86,$fff4,$afb5,$ff00; ushort [bdb2]d0 ff e3 ff 3d df 00 ff.word $ffd0,$ffe3,$df3d,$ff00; ushort [bdba]cd ff ff ff 75 59 00 ff.word $ffcd,$ffff,$5975,$ff00; ushort [bdc2]19 ff 33 ff 74 bb 00 ff.word $ff19,$ff33,$bb74,$ff00; ushort [bdca]30 ff ee ff 7e fb 00 ff.word $ff30,$ffee,$fb7e,$ff00; ushort [bdd2]1a ff f9 ff ed df 00 ff.word $ff1a,$fff9,$dfed,$ff00; ushort [bdda]1d ff dd ff cf 39 00 ff.word $ff1d,$ffdd,$39cf,$ff00; ushort [bde2]00 ff de ff c4 97 00 ff.word $ff00,$ffde,$97c4,$ff00; ushort [bdea]b4 ff d3 ff 99 ff 00 ff.word $ffb4,$ffd3,$ff99,$ff00; ushort [bdf2]a2 ff e6 7e b7 f7 00 ff.word $ffa2,$7ee6,$f7b7,$ff00; ushort [bdfa]5c ff b7 ff 5f 34 00 ff.word $ff5c,$ffb7,$345f,$ff00; ushort [be02]0a ff c4 ff c2 ff 00 ff.word $ff0a,$ffc4,$ffc2,$ff00; ushort [be0a]40 ff 75 ff 56 be 00 7f.word $ff40,$ff75,$be56,$7f00; ushort [be12]2c ff 99 ff 9b 7f 00 ff.word $ff2c,$ff99,$7f9b,$ff00; ushort [be1a]cd ff ff fe dd 29 00 ff.word $ffcd,$feff,$29dd,$ff00; ushort [be22]02 ff 15 ff 33 df 00 ff.word $ff02,$ff15,$df33,$ff00; ushort [be2a]04 ff 75 ff 5e a6 00 ff.word $ff04,$ff75,$a65e,$ff00; ushort [be32]2d ff 23 ff 9f 97 00 ff.word $ff2d,$ff23,$979f,$ff00; ushort [be3a]5f ff f7 ff 92 03 00 ff.word $ff5f,$fff7,$0392,$ff00; ushort [be42]68 ff 46 ff 48 fe 00 ff.word $ff68,$ff46,$fe48,$ff00; ushort [be4a]08 ff 9a ff ed ff 00 ff.word $ff08,$ff9a,$ffed,$ff00; ushort [be52]24 ff 7f ff 63 f7 00 ff.word $ff24,$ff7f,$f763,$ff00; ushort [be5a]28 ff 7d ff 5a dd 00 ff.word $ff28,$ff7d,$dd5a,$ff00; ushort [be62]15 ff 02 ff 0a fd 00 ff.word $ff15,$ff02,$fd0a,$ff00; ushort [be6a]06 ff 7c ff d2 38 00 ff.word $ff06,$ff7c,$38d2,$ff00; ushort [be72]33 ff 7b ff 6f c2 00 ff.word $ff33,$ff7b,$c26f,$ff00; ushort [be7a]a9 ff a8 ff db dd 00 ff.word $ffa9,$ffa8,$dddb,$ff00; ushort [be82]c0 ff bb ff fc 6b 00 ff.word $ffc0,$ffbb,$6bfc,$ff00; ushort [be8a]70 ff b1 ff 49 bf 00 ff.word $ff70,$ffb1,$bf49,$ff00; ushort [be92]56 ff bc ff e5 a6 00 ff.word $ff56,$ffbc,$a6e5,$ff00; ushort [be9a]0c ff 73 ff ed e7 00 ff.word $ff0c,$ff73,$e7ed,$ff00; ushort [bea2]aa ff 27 ff 41 5b 00 ff.word $ffaa,$ff27,$5b41,$ff00; ushort [beaa]09 ff 7c fb ee ef 00 ff.word $ff09,$fb7c,$efee,$ff00; ushort [beb2]68 ff f8 ff 53 6c 00 ff.word $ff68,$fff8,$6c53,$ff00; ushort [beba]39 ff ff ff 7b b8 00 ff.word $ff39,$ffff,$b87b,$ff00; ushort [bec2]80 ff 66 ff 65 7c 00 ff.word $ff80,$ff66,$7c65,$ff00; ushort [beca]dd ff ff ff 9b 83 00 ff.word $ffdd,$ffff,$839b,$ff00; ushort [bed2]61 ef c7 df 70 f5 00 ff.word $ef61,$dfc7,$f570,$ff00; ushort [beda]ed ff fa ff b3 4c 00 ff.word $ffed,$fffa,$4cb3,$ff00; ushort [bee2]08 ff 6b ff 10 97 00 ff.word $ff08,$ff6b,$9710,$ff00; ushort [beea]a0 ff 62 ff cd ee 00 ff.word $ffa0,$ff62,$eecd,$ff00; ushort [bef2]50 ff fd ff 75 ef 00 ff.word $ff50,$fffd,$ef75,$ff00; ushort [befa]20 ff 1f ff d9 7b 00 ff.word $ff20,$ff1f,$7bd9,$ff00; ushort [bf02]ae ff 9d ff e3 ff 00 ef.word $ffae,$ff9d,$ffe3,$ef00; ushort [bf0a]82 ff 95 ff 9e ff 00 ff.word $ff82,$ff95,$ff9e,$ff00; ushort [bf12]c3 ff e7 ff ed 6f 00 ff.word $ffc3,$ffe7,$6fed,$ff00; ushort [bf1a]c0 ff 37 ff ff fe 00 ff.word $ffc0,$ff37,$feff,$ff00; ushort [bf22]11 ff 64 ff c3 df 00 ff.word $ff11,$ff64,$dfc3,$ff00; ushort [bf2a]76 ff 2e ff 9b cb 00 ff.word $ff76,$ff2e,$cb9b,$ff00; ushort [bf32]1a ff ed ff 45 b9 00 ff.word $ff1a,$ffed,$b945,$ff00; ushort [bf3a]cf ff eb ff 15 c7 00 ff.word $ffcf,$ffeb,$c715,$ff00; ushort [bf42]5e ff 21 ff 23 ef 00 ff.word $ff5e,$ff21,$ef23,$ff00; ushort [bf4a]31 ff f0 ff b7 75 00 ff.word $ff31,$fff0,$75b7,$ff00; ushort [bf52]12 ff 3e ff de de 00 ff.word $ff12,$ff3e,$dede,$ff00; ushort [bf5a]45 ff f8 ff eb 9f 00 ff.word $ff45,$fff8,$9feb,$ff00; ushort [bf62]b9 ff 17 ff 3f fe 00 ff.word $ffb9,$ff17,$fe3f,$ff00; ushort [bf6a]24 ff fc ff e9 bd 00 ff.word $ff24,$fffc,$bde9,$ff00; ushort [bf72]fc ff f1 ff 54 bb 00 ff.word $fffc,$fff1,$bb54,$ff00; ushort [bf7a]c4 ff aa ff 53 7b 00 ff.word $ffc4,$ffaa,$7b53,$ff00; ushort [bf82]d0 ff 12 ff b6 ef 00 ff.word $ffd0,$ff12,$efb6,$ff00; ushort [bf8a]a1 ff 48 ff ca b6 00 ff.word $ffa1,$ff48,$b6ca,$ff00; ushort [bf92]79 ff 51 ff 72 3f 00 ff.word $ff79,$ff51,$3f72,$ff00; ushort [bf9a]7a ff 73 ff f2 99 00 ff.word $ff7a,$ff73,$99f2,$ff00; ushort [bfa2]41 ff d4 ff 19 ff 00 ff.word $ff41,$ffd4,$ff19,$ff00; ushort [bfaa]c0 ff 5c ff 98 c7 00 ff.word $ffc0,$ff5c,$c798,$ff00; ushort [bfb2]6a ff 7a ff 9c be 00 ff.word $ff6a,$ff7a,$be9c,$ff00; ushort [bfba]7d ff fd ff a6 8e 00 ff.word $ff7d,$fffd,$8ea6,$ff00; ushort [bfc2]29 ff db ff 83 91 00 ff.word $ff29,$ffdb,$9183,$ff00; ushort [bfca]81 ff b5 ff aa 79 00 ff.word $ff81,$ffb5,$79aa,$ff00; ushort [bfd2]0c ff fe ff bf e3 00 ff.word $ff0c,$fffe,$e3bf,$ff00; ushort [bfda]a6 ff da ff fa fa 00 ff.word $ffa6,$ffda,$fafa,$ff00; ushort [bfe2]46 ff 65 ff e2 7d 00 ff.word $ff46,$ff65,$7de2,$ff00; ushort [bfea]fa ff f5 ff 98 d6 00 ff.word $fffa,$fff5,$d698,$ff00; ushort [bff2]22 ff f5 ff f6 b3 00 ff.word $ff22,$fff5,$b3f6,$ff00; ushort [bffa]a2 ff f7 ff fe bf.word $ffa2,$fff7,$bffe; ushort