;============================================================================
; 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.
[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
[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
[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
[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
[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
[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
;============================================================================
[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
[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
;============================================================================
[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
;============================================================================
[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
;============================================================================
[856f]NOTE_LENGTH_CMP_LOWER_BOUNDS:
[856f]7f.byte $7f; If X >= 127:
[8570]NOTE_LENGTH_VALUES:
[8570]08.byte $08; Length = 8
[8571]BYTE_PRG5__8571:
[8571]60.byte $60; If X >= 96:
[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
;============================================================================
[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
;============================================================================
[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
;============================================================================
[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
[8626]Sound_ResetCurrentSound:
[8626]a9 00LDA #$00
[8628]8d 22 01STA a:SoundEffect_HandlerIndex
[862b]8d 21 01STA a:SoundEffect_Unused_PriorityID
[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
[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
[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
[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
[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
[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
[8800]SOUNDEFFECT_MAGIC_SQ2_VOL:
[8800]0f 0b 07 04 01 00.byte $0f,$0b,$07,$04,$01,$00; byte
[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
[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
[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
[8912]SOUNDEFFECT_ITEM_PICKED_UP_SQ2_VOLS:
[8912]0f 0c 09 05 02 00.byte $0f,$0c,$09,$05,$02,$00; byte
[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
[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
[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
[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]:
[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
[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
[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
[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
[8c01]SOUNDEFFECT_FILL_HP_OR_MP_SQ2_VOL:
[8c01]1f 5f 9f df.byte $1f,$5f,$9f,$df; byte
[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
[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
[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
[8e5f]SOUNDEFFECT_SPECIALITEM2_NOISE_VOL:
[8e5f]0f 0d 09 05 00.byte $0f,$0d,$09,$05,$00; byte
[8e64]SOUNDEFFECT_SPECIALITEM2_NOISE_LO:
[8e64]0c 07.byte $0c,$07; byte
[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
[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
[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
;============================================================================
[8efa]MSCRIPTS_LOOKUP:
[8efa]ff.byte $ff; byte
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[9ee0]MSCRIPT_FOREPAW_NOISE:
[9ee0]ff ff.byte $ff,$ff; byte
;============================================================================
; Music for Tower.
;
; 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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[a8f8]MSCRIPT_BOSS_NOISE:
[a8f8]ff ff.byte $ff,$ff; byte
;============================================================================
; TODO: Music 0x0B
;
; 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
[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
[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
[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]
;============================================================================
[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
[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
[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
[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]
;============================================================================
[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
[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
[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
[afaa]MSCRIPT_KINGS_ROOM_NOISE:
[afaa]ff ff.byte $ff,$ff; byte
;============================================================================
; Music for the temples.
;
; 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
[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
[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
[b073]MSCRIPT_TEMPLE_NOISE:
[b073]ff ff.byte $ff,$ff; byte
;============================================================================
; Music for the shops.
;
; 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
[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
[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
[b142]MSCRIPT_SHOP_NOISE:
[b142]ff ff.byte $ff,$ff; undefined
;============================================================================
; Music for the Evil Fortress.
;
; 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
[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
[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
[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