;============================================================================
; Faxanadu (U).nes
;
; PRG5 ($8000 - $bfff)
;============================================================================
.segment "PRG5"
.ORG $8000
;============================================================================
; 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]
[8000]JMP 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]
[8003]JMP 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]
[8006]JMP 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]
[8009]JMP Music_HandleOnInterrupt
[800c].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]
[800d]LDA a:Game_PausedState; Load the paused state.
[8010]BNE Audio_HandlePaused; If paused, then jump.
;
; The game is not paused. Music can be played.
;
[8012]LDA Music_Current; Load the current music to play.
[8014]BEQ 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]BPL Music_Load; Jump to load the music.
;
; Music is currently playing. Play the next piece of the
; music.
;
[8018]JMP Music_PlayNext; Jump to play the next part of the current music.
[801b]Audio_InitPlayingState:; [$801b]
[801b]LDA #$00
[801d]STA Music_Current; Clear the current music.
[801f]STA SoundEffect_Current; Clear the next sound effect.
[8021]STA a:SoundEffect_HandlerIndex
[8024]STA a:SND_CHN; Clear the sound channel.
[8027]STA a:Game_PausedState; Clear the paused flag.
[802a]STA a:SoundEffect_Unused_PriorityID; Clear the ID of the highest-priority sound effect.
[802d]RTS
;============================================================================
; 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:; [$802e]
;
; First, check if we've already handled an audio pause state.
;
[802e]BMI 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]ORA #$80; Set bit 7 (audio paused).
[8032]STA a:Game_PausedState; Store it.
[8035]JSR 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]
[8038]LDA Music_Current; Load the current music.
[803a]BNE @_return; If it's set, return. Nothing to do.
;
; There's no music playing. Check if sound effects
; are playing.
;
[803c]LDX #$03; X = 3 (loop counter).
[803e]@_checkSoundEffectLoop:; [$803e]
[803e]LDA SoundEffect_TicksRemaining,X; Load the sound effect at the current index.
[8041]BNE @_return; If it's set, then return.
[8043]DEX; X-- (loop counter).
[8044]BPL @_checkSoundEffectLoop; If >= 0, loop.
;
; This has looped through all sound effects, and none
; were set. Audio can now be reset.
;
[8046]JMP Audio_Reset; Reset the audio.
[8049]@_return:; [$8049]
[8049]RTS
[804a]Audio_Reset:; [$804a]
[804a]LDA #$10
[804c]STA a:SQ1_VOL; Set to 16.
[804f]STA a:SQ2_VOL; Set to 16.
[8052]STA a:NOISE_VOL; Set to 16.
[8055]LDA #$00
[8057]STA a:SQ1_SWEEP; Set to 0.
[805a]STA a:SQ1_LO; Set to 0.
[805d]STA a:SQ1_HI; Set to 0.
[8060]STA a:SQ2_SWEEP; Set to 0.
[8063]STA a:SQ2_LO; Set to 0.
[8066]STA a:SQ2_HI; Set to 0.
[8069]STA a:TRI_LINEAR; Set to 0.
[806c]STA a:TRI_LO; Set to 0.
[806f]STA a:TRI_HI; Set to 0.
[8072]STA a:NOISE_LO; Set to 0.
[8075]STA a:NOISE_HI; Set to 0.
[8078]RTS
;============================================================================
; Load channel and MScript state for music.
;
; XREFS:
;
Music_HandleOnInterrupt
;============================================================================
[8079]Music_Load:; [$8079]
;
; Load the current music to play.
;
[8079]LDA Music_Current; Load the current music.
[807b]ORA #$80; Mark as currently playing.
[807d]STA 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]ASL A; Convert to a word boundary.
[8080]ASL A; And multiply by 4 channels.
[8081]ASL A
[8082]TAY; 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]LDX #$07; X = 7 (loop counter).
[8085]@_loadMusicLoop:; [$8085]
[8085]LDA MSCRIPTS_LOOKUP,Y; Load the MScript channel address at Y.
[8088]STA 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]STA 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]DEY; Y-- (lookup index).
[808e]DEX; X-- (loop counter).
[808f]BPL @_loadMusicLoop; If X >= 0, loop.
;
; We're out of the loop. Clear a bunch of state.
;
[8091]INX; Set X back to 0 (-1 + 1 == 0).
[8092]STX a:Music_Global_Transpose
[8095]STX a:Music_Channel_Transpose
[8098]STX a:Music_Channel_Transpose_1_
[809b]STX a:Music_Channel_Transpose_2_
[809e]STX a:Music_SQ_Fades
[80a1]STX a:Music_SQ_Fades_1_
[80a4]STX a:Music_SQEnvelope_Mode
[80a7]STX a:Music_SQEnvelope_Mode_1_
[80aa]STX a:Music_SQEnvelope_Phase
[80ad]STX a:Music_SQEnvelope_Phase_1_
[80b0]STX a:Music_Current_SQ_Low
[80b3]STX a:Music_Current_SQ_Low_1_
[80b6]STX a:Music_Note_Period_Low
[80b9]STX a:Music_Note_Period_High
[80bc]STX a:MScript_Unused_RawValue
[80bf]STX a:Something_Music_Triangle_017e
[80c2]STX a:Music_Noise_Remaining
[80c5]STX a:Music_SQEffect_Delta
[80c8]STX a:MScript_CurValue
[80cb]STX a:Music_SQPitchDelta_Mask
[80ce]STX a:Music_SQPitchDelta_Mask_1_
[80d1]STX a:Music_SQ2_TimerLowBias
;
; Set the following to 1.
;
[80d4]INX; X = 1
[80d5]STX a:Music_NoteTicksRemaining
[80d8]STX a:Music_NoteTicksRemaining_1_
[80db]STX a:Music_NoteTicksRemaining_2_
[80de]STX a:Music_NoteTicksRemaining_3_
;
; Clear the repeat counts for each channel.
;
[80e1]STX a:MScript_NoteDurations
[80e4]STX a:MScript_NoteDurations_1_
[80e7]STX a:MScript_NoteDurations_2_
[80ea]STX a:MScript_NoteDurations_3_
;
; Set the following to 8.
;
[80ed]LDA #$08; A = 8
[80ef]STA a:Music_SQ_Note_Lengths
[80f2]STA a:Music_Note_Length_High
[80f5]STA a:Music_Unused_0166
[80f8]STA a:Music_Unused_0166_1_
;
; Set the following to 144.
;
[80fb]LDA #$90; A = 144
[80fd]STA a:Music_SQ_ControlBits
[8100]STA a:Music_SQ_ControlBits_1_
;
; Reset audio channels.
;
[8103]JMP 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_NoteTicksRemaining:
; The repeat counters for each channel.
;
; OUTPUTS:
;
Music_NoteTicksRemaining:
; 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:; [$8106]
;
; Set the initial state for tracking per-channel playback
; for this invocation.
;
[8106]LDA #$00
[8108]STA a:Music_NumChannelsCompleted; Clear the number of completed channels.
[810b]STA 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]
[810e]LDX a:MScript_CurrentChannel; X = Current channel index
[8111]DEC Music_NoteTicksRemaining,X
[8114]BNE @_play
[8116]JSR MScripts_InvokeNext
[8119]@_play:; [$8119]
[8119]JSR Music_PlayForChannel; Play music on this channel.
[811c]INC a:MScript_CurrentChannel; Move to the next channel.
[811f]LDA a:MScript_CurrentChannel; Load that channel index.
[8122]CMP #$04; Is it < 4?
[8124]BCC @_loop; If so, loop.
;
; Check if all channels have finished.
;
[8126]LDA a:Music_NumChannelsCompleted; Load the number of completed channels.
[8129]CMP #$04; Is it 4?
[812b]BNE @_return; If not, return.
;
; All channels have finished, so clear the current music.
;
[812d]LDA #$00
[812f]STA Music_Current; Unset the current music.
[8131]@_return:; [$8131]
[8131]RTS
;============================================================================
; TODO: Document Music_PlayForChannel
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
Music_PlayNext
;============================================================================
[8132]Music_PlayForChannel:; [$8132]
[8132]LDX a:MScript_CurrentChannel; Load the current channel index.
[8135]BEQ @_isSquareWave; If it's Square Wave 1, jump.
[8137]DEX
[8138]BEQ @_isSquareWave; If it's Square Wave 2, jump.
[813a]DEX
[813b]BEQ @_isTriangleWave; If it's Triangle Wave, jump.
[813d]RTS; Else, return.
;
; This is the Triangle Wave channel.
;
[813e]@_isTriangleWave:; [$813e]
[813e]LDX a:MScript_CurrentChannel; Load the current channel index.
[8141]LDA a:Something_Music_Triangle_017e
[8144]BEQ @_checkSoundEffectOnTri
[8146]DEC a:Something_Music_Triangle_017e
[8149]LDA #$c0
[814b]@_checkSoundEffectOnTri:; [$814b]
[814b]STA a:MScript_CurValue
;
; Check if there's currently a sound effect playing
; on the Triangle Wave channel.
;
[814e]LDA SoundEffect_TicksRemaining,X; Load the current sound effect on the Triangle Wave channel.
[8151]BNE @_clearTriangleWave; If one is set, jump to clear it.
;
; No sound effect is playing on the Triangle Wave channel.
;
[8153]LDA a:MScript_CurValue; Load the value to play.
[8156]STA a:TRI_LINEAR; Set it on the channel.
[8159]RTS; And return.
[815a]@_clearTriangleWave:; [$815a]
[815a]LDA #$00
[815c]STA a:TRI_LINEAR; Clear the Triangle Wave channel.
[815f]RTS; And return.
;
; This is a Square Wave channel.
;
[8160]@_isSquareWave:; [$8160]
[8160]LDX a:MScript_CurrentChannel
[8163]LDY Music_SQEnvelope_Mode,X
[8166]BEQ Music_PlaySQEnvelopeModeLinearTrailoff
[8168]DEY
[8169]BEQ Music_PlaySQEnvelopeModeCurveButHeld
[816b]DEY
[816c]BEQ Music_PlaySQEnvelopeModePluck
[816e]RTS
[816f]Music_PlaySQEnvelopeModeLinearTrailoff:; [$816f]
[816f]LDX 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]LDA Music_SQEnvelope_Value,X; Load the fade-out counter value for the mode.
[8175]BEQ @LAB_PRG5__817d; If it's 0, jump.
;
; The counter is a positive value. Subtract 3 and store it.
;
[8177]SEC
[8178]SBC #$03; Subtract 3 from the counter.
[817a]STA 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]
[817d]LSR A; Shift into the lower nibble.
[817e]LSR A
[817f]LSR A
[8180]LSR A
[8181]AND #$0f; Mask out the upper nibble.
[8183]STA a:MScript_CurValue; Store as the new volume value for the Square Wave.
;
; Check if any special effects are playing on this channel.
;
[8186]LDA SoundEffect_TicksRemaining,X; Load any current special effects on this channel.
[8189]BNE @_return; If set, return.
[818b]JSR Music_UpdateSQVolRegister; Update the volume and flags the SQ*_VOL register.
[818e]JSR Music_ApplySQPitchEffectToLO; Apply the mode's pitch effect to the SQ*_LO register.
[8191]@_return:; [$8191]
[8191]RTS
;============================================================================
; TODO: Document Music_PlaySQEnvelopeModeCurveButHeld
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
Music_PlayForChannel
;============================================================================
[8192]Music_PlaySQEnvelopeModeCurveButHeld:; [$8192]
;
; This is SQ Mode 1: Curve but held
;
[8192]LDX a:MScript_CurrentChannel; Load the current MScript channel.
[8195]LDA Music_SQEnvelope_Value,X
[8198]AND #$0f
[819a]STA Music_SQEnvelope_Value,X
[819d]CMP #$0d
[819f]BCC @LAB_PRG5__81a7
[81a1]DEC Music_SQEnvelope_Value,X
[81a4]DEC Music_SQEnvelope_Value,X
[81a7]@LAB_PRG5__81a7:; [$81a7]
[81a7]INC Music_SQEnvelope_Phase,X
[81aa]LDA Music_SQEnvelope_Value,X
[81ad]STA a:MScript_CurValue
[81b0]LDA SoundEffect_TicksRemaining,X
[81b3]BNE @_return
[81b5]JSR Music_UpdateSQVolRegister
[81b8]JSR Music_ApplySQPitchEffectToLO
[81bb]@_return:; [$81bb]
[81bb]RTS
;============================================================================
; TODO: Document Music_PlaySQEnvelopeModePluck
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
Music_PlayForChannel
;============================================================================
[81bc]Music_PlaySQEnvelopeModePluck:; [$81bc]
;
; This is SQ Mode 2: Table-based envelope (pluck effect)
;
[81bc]LDX a:MScript_CurrentChannel; Load the current MScript channel.
[81bf]LDA Music_SQEnvelope_Phase,X
[81c2]LSR A
[81c3]LSR A
[81c4]TAY
[81c5]LDA SQ_MODE_2_PLUCK_VALUES,Y
[81c8]BEQ @LAB_PRG5__81cd
[81ca]INC Music_SQEnvelope_Phase,X
[81cd]@LAB_PRG5__81cd:; [$81cd]
[81cd]STA a:MScript_CurValue
[81d0]LDA SoundEffect_TicksRemaining,X
[81d3]BNE @_return
[81d5]JSR Music_UpdateSQVolRegister
[81d8]JSR Music_ApplySQPitchEffectToLO
[81db]@_return:; [$81db]
[81db]RTS
[81dc]SQ_MODE_2_PLUCK_VALUES:; [$81dc]
[81dc].byte $07; [0]:
[81dd].byte $0a; [1]:
[81de].byte $0d; [2]:
[81df].byte $0f; [3]:
[81e0].byte $0e; [4]:
[81e1].byte $0d; [5]:
[81e2].byte $0c; [6]:
[81e3].byte $0b; [7]:
[81e4].byte $0a; [8]:
[81e5].byte $09; [9]:
[81e6].byte $08; [10]:
[81e7].byte $07; [11]:
[81e8].byte $06; [12]:
[81e9].byte $05; [13]:
[81ea].byte $04; [14]:
[81eb].byte $03; [15]:
[81ec].byte $02; [16]:
[81ed].byte $02; [17]:
[81ee].byte $01; [18]:
[81ef].byte $01; [19]:
[81f0].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).
;
;
MScript_CurValue:
; 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:; [$81f1]
;
; Compute the address for the Square Wave volume register.
;
[81f1]LDX a:MScript_CurrentChannel; Load the MScript channel.
[81f4]TXA; A = result.
[81f5]ASL A; Convert to a word boundary.
[81f6]ASL A; And double, giving us the start of either SQ channel volume addresses.
[81f7]TAY; Y = resulting index.
;
; Apply any fade set.
;
[81f8]LDA a:MScript_CurValue; Load the volume to set.
[81fb]SEC
[81fc]SBC Music_SQ_Fades,X; Subtract any fade that was set.
[81ff]BCS @_setVolume; If positive, jump.
;
; The volume went negative. Cap to 0.
;
[8201]LDA #$00; Set the volume to 0.
[8203]@_setVolume:; [$8203]
[8203]LDX a:MScript_CurrentChannel; Load the current SQ channel as an index.
[8206]ORA Music_SQ_ControlBits,X; Apply control bits to the value to set for the register.
[8209]STA SQ1_VOL,Y; And set the register.
[820c]RTS
[820d]Music_ApplySQPitchEffectToLO:; [$820d]
[820d]LDX 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]LDA Music_SQEnvelope_Phase,X; Load the phase counter for the channel.
[8213]CMP #$12; Is it < 18?
[8215]BCC @_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]LSR A; Divide by 4, giving quarter speed.
[8218]LSR A
[8219]AND Music_SQPitchDelta_Mask,X; AND with our depth mask, defining the range.
[821c]STA a:Music_SQEffect_Delta; Store as the delta.
[821f]LDA SoundEffect_TicksRemaining,X; Check for sound effects on this channel.
[8222]BNE @_return; If any are set, skip playing on this channel.
;
; No sound effects are playing, so we can continue.
;
[8224]LDA a:MScript_CurrentChannel; Load the current MScript channel.
[8227]ASL A; Convert to a word boundary.
[8228]ASL A; And multiply by 2 for the channel offset.
[8229]TAY; Y = resulting index.
;
; Don't apply the effect if the base is too small to subtract from.
;
[822a]LDA Music_Current_SQ_Low,X; Load the low value .
[822d]CMP Music_SQPitchDelta_Mask,X; Is it less than the depth mask?
[8230]BCC @_return; If so, return.
;
; Subtract the delta and store it in the SQ*_LO register.
;
[8232]SEC
[8233]SBC a:Music_SQEffect_Delta; Subtract the delta calculated above.
[8236]STA SQ1_LO,Y; And store it in the register.
[8239]@_return:; [$8239]
[8239]RTS
[823a]MScripts_InvokeNext:; [$823a]
[823a]LDX a:MScript_CurrentChannel; X = Channel index being processed
[823d]CPX #$03; Is this the noise channel?
[823f]BNE @_loadNextValue; If not, jump.
[8241]LDA a:Music_Noise_Remaining; Is there noise to play?
[8244]BEQ @_loadNextValue; If not, process the next value in the script.
[8246]JMP Music_PlayNoise; Else, play the noise.
[8249]@_loadNextValue:; [$8249]
[8249]JSR MScripts_GetNextValue; Get the next value from the MScript.
[824c]STA a:MScript_CurValue; Store it.
[824f]TAY; Y = Value
[8250]BMI @_handleScriptValue; If the script value is >= 0x80, jump to handle it.
[8252]JMP MScripts_PlayIfHasValue; Play if there's a value, or finish if 0.
;
; Check if this is an MScript op (>= 0xEE).
;
[8255]@_handleScriptValue:; [$8255]
[8255]CMP #$ee; Is this < 0xEE?
[8257]BCC MScripts_SetNoteLengthFromNext; If so, jump.
;
; Determine the op handler to invoke.
;
[8259]SEC
[825a]LDA #$ff; A = 0xFF
[825c]SBC a:MScript_CurValue; Subtract the opcode, giving an index into the lookup table.
[825f]ASL A; Normalize to a word boundary for the lookup table.
[8260]TAY; Y = A
[8261]LDA MSCRIPT_OP_HANDLERS+1,Y; Load the address of the handler and push to the stack.
[8264]PHA
[8265]LDA MSCRIPT_OP_HANDLERS,Y
[8268]PHA
[8269]RTS
;============================================================================
; Lookup table of MScript operation handlers.
;
; XREFS:
;
MScripts_InvokeNext
;============================================================================
[826a]MSCRIPT_OP_HANDLERS:; [$826a]
[826a].word MScript_Op_End-1; MScript_Op_End [$PRG5::826a]
[826c].word MScript_Op_RestoreAddr-1; MScript_Op_RestoreAddr [$PRG5::826c]
[826e].word MScript_Op_BeginLoop-1; MScript_Op_BeginLoop [$PRG5::826e]
[8270].word MScript_Op_EndLoop-1; MScript_Op_EndLoop [$PRG5::8270]
[8272].word MScript_Op_NextLoopIfNCompleted-1; MScript_Op_NextLoopIfNCompleted [$PRG5::8272]
[8274].word MScript_Op_NoOp-1; MScript_Op_NoOp [$PRG5::8274]
[8276].word MScript_Op_SaveAddr-1; MScript_Op_SaveAddr [$PRG5::8276]
[8278].word MScript_Op_JumpSubroutine-1; MScript_Op_JumpSubroutine [$PRG5::8278]
[827a].word MScript_Op_SetGlobalTranspose-1; MScript_Op_SetGlobalTranspose [$PRG5::827a]
[827c].word MScript_Op_SetChannelTranspose-1; MScript_Op_SetChannelTranspose [$PRG5::827c]
[827e].word MScript_Op_Return-1; MScript_Op_Return [$PRG5::827e]
[8280].word MScript_Op_RestartChannel-1; MScript_Op_RestartChannel [$PRG5::8280]
[8282].word MScript_Op_RepeatValue-1; MScript_Op_RepeatValue [$PRG5::8282]
[8284].word MScript_Op_SetControlBits-1; MScript_Op_SetControlBits [$PRG5::8284]
[8286].word MScript_Op_SetSQVol-1; MScript_Op_SetSQVol [$PRG5::8286]
[8288].word MScript_Op_SetSQEnvelopeMode-1; MScript_Op_SetSQEnvelopeMode [$PRG5::8288]
[828a].word MScript_Op_SetSQPitchEffectDepth-1; MScript_Op_SetSQPitchEffectDepth [$PRG5::828a]
[828c].word MScript_Op_SetSQ2Detune-1; MScript_Op_SetSQ2Detune [$PRG5::828c]
;============================================================================
; TODO: Document MScripts_SetNoteLengthFromNext
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
MScripts_InvokeNext
;============================================================================
[828e]MScripts_SetNoteLengthFromNext:; [$828e]
[828e]LDA a:MScript_CurValue; Load the current script value.
[8291]AND #$7f; Discard bit 7.
[8293]BPL MScripts_SetNoteLengthFromValue
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document MScript_Op_RepeatValue
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8295]MScript_Op_RepeatValue:; [$8295]
[8295]JSR 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]
[8298]LDX a:MScript_CurrentChannel
[829b]STA MScript_NoteDurations,X
[829e]STA a:MScript_CurValue
[82a1]LDX a:MScript_CurrentChannel
[82a4]CPX #$02
[82a6]BEQ MScripts_InvokeNext
[82a8]LDA a:MScript_CurValue
[82ab]PHA
[82ac]LSR A
[82ad]LSR A
[82ae]LSR A
[82af]STA a:MScript_CurValue
[82b2]PLA
[82b3]SEC
[82b4]SBC a:MScript_CurValue
[82b7]CMP #$10
[82b9]BCS @_beginCheckOffsets
[82bb]ASL A
[82bc]ASL A
[82bd]ASL A
[82be]ASL A
[82bf]ORA #$08
[82c1]STA Music_SQ_Note_Lengths,X
[82c4]CMP #$08
[82c6]BNE @_invokeNext
[82c8]LDA #$18
[82ca]BNE @_storeLength
[82cc]@_beginCheckOffsets:; [$82cc]
[82cc]LDY #$00
[82ce]@_checkOffsetLoop:; [$82ce]
[82ce]CMP MUSIC_CHANNEL_NOTE_OFFSETS_3_,Y
[82d1]BCS @_loadLength
[82d3]INY
[82d4]INY
[82d5]BNE @_checkOffsetLoop
[82d7]@_loadLength:; [$82d7]
[82d7]LDA BYTE_PRG5__8570,Y
[82da]@_storeLength:; [$82da]
[82da]STA Music_SQ_Note_Lengths,X
[82dd]@_invokeNext:; [$82dd]
[82dd]JMP MScripts_InvokeNext
[82e0]JMP MScripts_InvokeNext; Unreachable?
;============================================================================
; TODO: Document MScripts_PlayIfHasValue
;
; INPUTS:
; A
; Y
;
; OUTPUTS:
; TODO
;
; XREFS:
;
MScripts_InvokeNext
;============================================================================
[82e3]MScripts_PlayIfHasValue:; [$82e3]
[82e3]CMP #$00
[82e5]BNE Music_PlayWaveOrNoise
[82e7]JMP Music_StoreNoteDuration
;============================================================================
; TODO: Document Music_PlayWaveOrNoise
;
; INPUTS:
; A
; Y
;
; OUTPUTS:
; TODO
;
; XREFS:
;
MScripts_PlayIfHasValue
;============================================================================
[82ea]Music_PlayWaveOrNoise:; [$82ea]
[82ea]LDX a:MScript_CurrentChannel
[82ed]CPX #$03
[82ef]BNE Music_PlayWave
;
; This is the Noise channel.
;
[82f1]PHA
[82f2]AND #$0f
[82f4]STA a:Music_Noise_Remaining
[82f7]PLA
[82f8]LSR A
[82f9]LSR A
[82fa]LSR A
[82fb]LSR A
[82fc]STA a:Music_Noise_Index
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document Music_PlayNoise
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
MScripts_InvokeNext
;============================================================================
[82ff]Music_PlayNoise:; [$82ff]
[82ff]DEC a:Music_Noise_Remaining
[8302]LDA a:SoundEffect_TicksRemaining_3_
[8305]BEQ @LAB_PRG5__830a
[8307]JMP Music_StoreNoteDuration
[830a]@LAB_PRG5__830a:; [$830a]
[830a]LDA a:Music_Noise_Index
[830d]BNE @LAB_PRG5__8312
[830f]JMP Music_StoreNoteDuration
[8312]@LAB_PRG5__8312:; [$8312]
[8312]ASL A
[8313]ASL A
[8314]TAX
[8315]LDY #$00
[8317]@LAB_PRG5__8317:; [$8317]
[8317]LDA MUSIC_NOISE_VALUES,X
[831a]STA NOISE_VOL,Y
[831d]INX
[831e]INY
[831f]CPY #$04
[8321]BCC @LAB_PRG5__8317
[8323]JMP Music_StoreNoteDuration
;============================================================================
; TODO: Document Music_PlayWave
;
; INPUTS:
; Y
;
; OUTPUTS:
; TODO
;
; XREFS:
;
Music_PlayWaveOrNoise
;============================================================================
[8326]Music_PlayWave:; [$8326]
[8326]LDX a:MScript_CurrentChannel
[8329]LDA SoundEffect_TicksRemaining,X
[832c]BEQ @_setNote
[832e]JMP Music_StoreNoteDuration
[8331]@_setNote:; [$8331]
[8331]LDX a:MScript_CurrentChannel
[8334]BEQ @_setSquareWave1
[8336]DEX
[8337]BEQ @_setSquareWave2Sweep
;
; This is the Triangle Wave channel.
;
[8339]LDA #$c0
[833b]STA a:TRI_LINEAR
[833e]JSR Music_SetNote
[8341]LDA a:Music_Note_Period_Low
[8344]STA a:TRI_LO
[8347]LDX a:MScript_CurrentChannel
[834a]LDA a:Music_Note_Period_High; Load the note period to play.
[834d]ORA #$f8; Set the full play length.
[834f]STA a:TRI_HI; And set as the Triangle High.
[8352]JMP Music_PlayTriangleWave
;
; This is the Square Wave 1 channel.
;
[8355]@_setSquareWave1:; [$8355]
[8355]JSR Music_SetNote
[8358]LDA #$00
[835a]STA a:SQ1_SWEEP
[835d]LDA a:Music_Note_Period_Low
[8360]STA a:SQ1_LO
[8363]STA a:Music_Current_SQ_Low
[8366]LDA a:Music_Note_Period_High
[8369]ORA a:Music_SQ_Note_Lengths
[836c]STA a:SQ1_HI
[836f]LDA #$00
[8371]STA a:Music_SQEnvelope_Phase
[8374]BEQ @_finish
;
; This is the Square Wave 2 channel.
;
[8376]@_setSquareWave2Sweep:; [$8376]
[8376]JSR Music_SetNote
[8379]LDA #$00
[837b]STA a:SQ2_SWEEP
[837e]LDY a:MScript_CurValue
[8381]LDA a:Music_Note_Period_Low
[8384]CMP a:Music_SQ2_TimerLowBias
[8387]BCC @_setSQ2HiLo
[8389]SEC
[838a]SBC a:Music_SQ2_TimerLowBias
[838d]@_setSQ2HiLo:; [$838d]
[838d]STA a:SQ2_LO
[8390]STA a:Music_Current_SQ_Low_1_
[8393]LDA a:Music_Note_Period_High
[8396]ORA a:Music_Note_Length_High
[8399]STA a:SQ2_HI
[839c]LDA #$00
[839e]STA a:Music_SQEnvelope_Phase_1_
[83a1]@_finish:; [$83a1]
[83a1]LDX a:MScript_CurrentChannel
[83a4]LDA #$ff
[83a6]STA Music_SQEnvelope_Value,X
[83a9]JSR Music_StoreNoteDuration
[83ac]RTS
;============================================================================
; 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_NoteTicksRemaining (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_NoteTicksRemaining:
; The remaining tick counts for playback.
;
; XREFS:
;
MScripts_PlayIfHasValue
;
Music_PlayNoise
;
Music_PlayTriangleWave
;
Music_PlayWave
;============================================================================
[83ad]Music_StoreNoteDuration:; [$83ad]
[83ad]LDX a:MScript_CurrentChannel; Load the current MScript channel.
[83b0]LDA MScript_NoteDurations,X; Load the repeat counts for this channel.
[83b3]STA Music_NoteTicksRemaining,X; Copy them over.
[83b6]RTS
;============================================================================
; TODO: Document Music_PlayTriangleWave
;
; INPUTS:
; A
;
; OUTPUTS:
; TODO
;
; XREFS:
;
Music_PlayWave
;============================================================================
[83b7]Music_PlayTriangleWave:; [$83b7]
[83b7]JSR Music_StoreNoteDuration
[83ba]STA a:MScript_CurValue
[83bd]LSR A
[83be]LSR A
[83bf]STA a:Music_SQEffect_Delta
[83c2]LDA a:MScript_CurValue
[83c5]SEC
[83c6]SBC a:Music_SQEffect_Delta
[83c9]STA a:Something_Music_Triangle_017e
[83cc]RTS
;============================================================================
; 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_PlayWave
;============================================================================
[83cd]Music_SetNote:; [$83cd]
[83cd]LDX a:MScript_CurrentChannel
[83d0]LDA a:MScript_CurValue
[83d3]CLC
[83d4]ADC MUSIC_CHANNEL_NOTE_OFFSETS,X
[83d7]CLC
[83d8]ADC Music_Channel_Transpose,X
[83db]CLC
[83dc]ADC a:Music_Global_Transpose
[83df]STY 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]LDY #$01
[83e4]SEC
[83e5]@_loop1:; [$83e5]
[83e5]SBC #$0c
[83e7]INY
[83e8]BCS @_loop1
;
; TODO: Out of the loop.
;
[83ea]DEY
[83eb]ADC #$0d
[83ed]ASL A
[83ee]TAX
[83ef]LDA AUDIO_NOTES,X
[83f2]STA a:Music_Note_Period_Low
[83f5]LDA AUDIO_NOTES+1,X
[83f8]STA a:Music_Note_Period_High
;
; Convert to the note in the right octave based on
; the starting value.
;
[83fb]@_octaveLoop:; [$83fb]
[83fb]DEY
[83fc]BEQ @_return
[83fe]LSR a:Music_Note_Period_High
[8401]ROR a:Music_Note_Period_Low
[8404]JMP @_octaveLoop
[8407]@_return:; [$8407]
[8407]RTS
;============================================================================
; MScript Op 0xFF: End the channel's script.
;
; XREFS:
;
MSCRIPT_OP_HANDLERS [$PRG5::826a]
;============================================================================
[8408]MScript_Op_End:; [$8408]
[8408]LDX 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]LDA #$01
[840d]STA Music_NoteTicksRemaining,X; Set this to repeat 1 more time (infinitely).
[8410]TXA; A = MScript channel.
[8411]ASL A; Convert to a word boundary for an address index.
[8412]TAX; X = result.
;
; Decrement the offset into the script to keep it on this
; 0xFF operation until all channels complete.
;
[8413]LDA Music_CurrentScriptAddrs,X; Load the current script address for this channel.
[8415]BNE @_setAddr; If lower byte is not 0, jump.
;
; Lower byte of the address is 0. We'll need to decrement
; the upper byte.
;
[8417]DEC Music_CurrentScriptAddrs+1,X; Decrement the upper byte of the address.
[8419]@_setAddr:; [$8419]
[8419]DEC Music_CurrentScriptAddrs,X; Decrement the lower byte of the address.
;
; Mark this channel as completed.
;
[841b]INC a:Music_NumChannelsCompleted; Mark the channel as complete.
[841e]RTS
;============================================================================
; 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:; [$841f]
;
; Read the number of iterations to loop from the script.
;
[841f]JSR MScripts_GetNextValue; Load the next value from the script.
[8422]LDX a:MScript_CurrentChannel; Load the current MScript channel.
[8425]STA MScript_LoopLength,X; Store the length of this loop to the next value.
;
; Set the starting value for the loop counter (1).
;
[8428]LDA #$01
[842a]STA MScript_LoopCounter,X; Set the starting loop counter to 1.
;
; Store the start address of the loop.
;
[842d]TXA; A = Loop length.
[842e]ASL A; Convert to a word boundary for an index.
[842f]TAX; X = resulting index.
[8430]LDA Music_CurrentScriptAddrs,X; Load the lower byte of the current script address for the channel.
[8432]STA MScript_LoopStartAddrs,X; Store as the lower byte of the starting address for the loop.
[8435]LDA Music_CurrentScriptAddrs+1,X; Load the upper byte.
[8437]STA MScript_LoopStartAddrs+1,X; Store that.
;
; We're done. Invoke the next op in the script.
;
[843a]JMP 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]
[843d]JSR MScripts_GetNextValue; Load the current MScript channel.
[8440]LDX a:MScript_CurrentChannel; Load the current MScript channel.
[8443]CMP MScript_LoopCounter,X; Has the specified number of loops been completed?
[8446]BCS @_invokeNext; If so, invoke the next operation within this loop.
;
; The specified number of loops have not been completed.
; Restart the loop.
;
[8448]TXA; A = Current channel.
[8449]ASL A; Convert to a word boundary for lookup tables.
[844a]TAX; X = result.
[844b]LDA MScript_LoopEndAddrs,X; Load the lower byte of the loop end address.
[844e]STA Music_CurrentScriptAddrs,X; Set as the lower byte of the next address.
[8450]LDA MScript_LoopEndAddrs+1,X; Load the upper byte of the loop end address.
[8453]STA Music_CurrentScriptAddrs+1,X; Set as the upper byte of the next address.
[8455]@_invokeNext:; [$8455]
[8455]JMP 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]
[8458]LDX a:MScript_CurrentChannel; Load the current MScript channel.
[845b]LDA MScript_LoopCounter,X; Load the current loop counter.
[845e]CMP MScript_LoopLength,X; Is it >= the loop length?
[8461]BCS @_invokeNext; If so, invoke the next operation after the loop.
;
; The script can continue to loop.
;
[8463]INC MScript_LoopCounter,X; Increment the loop counter.
[8466]TXA; A = MScript channel.
[8467]ASL A; Convert to a word boundary for lookup tables.
[8468]TAX; X = resulting index.
;
; Set the current script address as the end of the loop.
;
[8469]LDA Music_CurrentScriptAddrs,X; Load the lower byte of the current script address.
[846b]STA MScript_LoopEndAddrs,X; Set as the lower byte of the end of the loop.
[846e]LDA Music_CurrentScriptAddrs+1,X; Load the upper byte of the current script address.
[8470]STA 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]LDA MScript_LoopStartAddrs,X; Load the lower byte of the address of the start of the loop.
[8476]STA Music_CurrentScriptAddrs,X; Set as the lower byte of the current script address.
[8478]LDA MScript_LoopStartAddrs+1,X; Load the upper byte of the address of the start of the loop.
[847b]STA 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]
[847d]JMP 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]
[8480]JMP MScripts_InvokeNext; Invoke the next operation in the script.
;============================================================================
; TODO: Document MScript_Op_SetControlBits
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8483]MScript_Op_SetControlBits:; [$8483]
[8483]JSR MScripts_GetNextValue
[8486]LDX a:MScript_CurrentChannel
[8489]STA Music_SQ_ControlBits,X
[848c]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_SaveAddr
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[848f]MScript_Op_SaveAddr:; [$848f]
[848f]JSR MScript_Op_SaveAddr_Store
[8492]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_SaveAddr_Store
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
MScript_Op_SaveAddr
;============================================================================
[8495]MScript_Op_SaveAddr_Store:; [$8495]
[8495]LDA a:MScript_CurrentChannel
[8498]ASL A
[8499]TAX
[849a]LDA Music_CurrentScriptAddrs,X
[849c]STA MScript_SavedAddr,X
[849f]LDA Music_CurrentScriptAddrs+1,X
[84a1]STA MScript_SavedAddr+1,X
[84a4]RTS
;============================================================================
; TODO: Document MScript_Op_RestoreAddr
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[84a5]MScript_Op_RestoreAddr:; [$84a5]
[84a5]LDA a:MScript_CurrentChannel
[84a8]ASL A
[84a9]TAX
[84aa]LDA MScript_SavedAddr,X
[84ad]STA Music_CurrentScriptAddrs,X
[84af]LDA MScript_SavedAddr+1,X
[84b2]STA Music_CurrentScriptAddrs+1,X
[84b4]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_RestartChannel
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[84b7]MScript_Op_RestartChannel:; [$84b7]
[84b7]LDA Music_Current
[84b9]ASL A
[84ba]ASL A
[84bb]SEC
[84bc]SBC #$04
[84be]ASL A
[84bf]TAY
[84c0]LDX #$00
[84c2]@_loop:; [$84c2]
[84c2]LDA MSCRIPTS_TITLESCREEN,Y
[84c5]STA Music_CurrentScriptAddrs,X
[84c7]INY
[84c8]INX
[84c9]CPX #$08
[84cb]BNE @_loop
[84cd]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_JumpSubroutine
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[84d0]MScript_Op_JumpSubroutine:; [$84d0]
[84d0]JSR MScripts_GetNextValue
[84d3]PHA
[84d4]JSR MScripts_GetNextValue
[84d7]PHA
[84d8]LDA a:MScript_CurrentChannel
[84db]ASL A
[84dc]TAX
[84dd]LDA Music_CurrentScriptAddrs,X
[84df]STA MScript_PushedAddrs,X
[84e2]LDA Music_CurrentScriptAddrs+1,X
[84e4]STA MScript_PushedAddrs+1,X
[84e7]PLA
[84e8]STA Music_CurrentScriptAddrs+1,X
[84ea]PLA
[84eb]STA Music_CurrentScriptAddrs,X
[84ed]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_Return
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[84f0]MScript_Op_Return:; [$84f0]
[84f0]LDA a:MScript_CurrentChannel; Load the current channel.
[84f3]ASL A; Shift to a word boundary.
[84f4]TAX; X = Result.
[84f5]LDA MScript_PushedAddrs,X; Load the lower byte of the pushed address.
[84f8]STA Music_CurrentScriptAddrs,X; Set for the script address.
[84fa]LDA MScript_PushedAddrs+1,X; Load the upper byte.
[84fd]STA Music_CurrentScriptAddrs+1,X; And set that.
[84ff]JMP MScripts_InvokeNext; Invoke the script there.
;============================================================================
; TODO: Document MScript_Op_SetChannelTranspose
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8502]MScript_Op_SetChannelTranspose:; [$8502]
[8502]JSR MScripts_GetNextValue
[8505]LDX a:MScript_CurrentChannel
[8508]STA Music_Channel_Transpose,X
[850b]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_SetGlobalTranspose
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[850e]MScript_Op_SetGlobalTranspose:; [$850e]
[850e]JSR MScripts_GetNextValue
[8511]STA a:Music_Global_Transpose
[8514]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_SetSQVol
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8517]MScript_Op_SetSQVol:; [$8517]
[8517]JSR MScripts_GetNextValue
[851a]LDX a:MScript_CurrentChannel
[851d]STA Music_SQ_Fades,X
[8520]JMP 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]
[8523]JSR MScripts_GetNextValue
[8526]LDX a:MScript_CurrentChannel
[8529]STA Music_SQEnvelope_Mode,X
[852c]JMP MScripts_InvokeNext
;============================================================================
; TODO: Document MScript_Op_SetSQPitchEffectDepth
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[852f]MScript_Op_SetSQPitchEffectDepth:; [$852f]
[852f]JSR MScripts_GetNextValue
[8532]LDX a:MScript_CurrentChannel
[8535]STA Music_SQPitchDelta_Mask,X
[8538]JMP 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]
[853b]JSR MScripts_GetNextValue
[853e]STA a:Music_SQ2_TimerLowBias
[8541]JMP MScripts_InvokeNext
[8544]MScripts_GetNextValue:; [$8544]
[8544]LDA a:MScript_CurrentChannel
[8547]ASL A
[8548]TAX
[8549]LDA (Music_CurrentScriptAddrs,X)
[854b]INC Music_CurrentScriptAddrs,X
[854d]BNE @_return
[854f]INC Music_CurrentScriptAddrs+1,X
[8551]@_return:; [$8551]
[8551]RTS
;============================================================================
; Base note lookup table for 12 semitones (C..B), used
; with octave normalization.
;
; XREFS:
;
Music_SetNote
;
SoundEffect_SetNote
;============================================================================
[8552]AUDIO_NOTES:; [$8552]
[8552].word $0000; [0]: Unused/padding
[8554].word $06ae; [1]: C2
[8556].word $064e; [2]: C2#2
[8558].word $05f3; [3]: D2
[855a].word $059f; [4]: D2#2
[855c].word $054d; [5]: E2
[855e].word $0501; [6]: F2
[8560].word $04b9; [7]: F2#2
[8562].word $0475; [8]: G2
[8564].word $0435; [9]: G2#2
[8566].word $03f8; [10]: A2
[8568].word $03bf; [11]: A2#2
[856a].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]
[856c].byte $f4; [0]: SQ1 (one octave down)
[856d].byte $f4; [1]: SQ2 (one octave down)
[856e].byte $0c; [2]: Triangle (1 octave up)
[856f]MUSIC_CHANNEL_NOTE_OFFSETS_3_:; [$856f]
[856f].byte $7f; [3]: Noise (sentinel?)
[8570]BYTE_PRG5__8570:; [$8570]
[8570].byte $08; [$8570] byte
[8571]BYTE_PRG5__8571:; [$8571]
[8571].byte $60; [$8571] byte
[8572]BYTE_PRG5__8572:; [$8572]
[8572].byte $c0,$50,$40,$30,$b0,$28,$30,$24; [$8572] byte
[857a].byte $d0,$1e,$50,$18,$a0; [$857a] byte
[857f]MUSIC_NOISE_VALUES:; [$857f]
[857f].byte $14; [0]:
[8580].byte $20; [1]:
[8581].byte $00; [2]:
[8582].byte $f0; [3]:
[8583].byte $00; [0]:
[8584].byte $00; [1]:
[8585].byte $0f; [2]:
[8586].byte $20; [3]:
[8587].byte $00; [0]:
[8588].byte $00; [1]:
[8589].byte $0a; [2]:
[858a].byte $10; [3]:
[858b].byte $00; [0]:
[858c].byte $00; [1]:
[858d].byte $05; [2]:
[858e].byte $00; [3]:
[858f].byte $ff; [$858f] byte
;============================================================================
; Table of sound effects to handler table indexes.
;
; XREFS:
;
SoundEffects_HandleOnInterrupt
;============================================================================
[8590]SOUND_EFFECT_HANDLER_INDEXES:; [$8590]
[8590].byte $00; [0]: Set up sound effects
[8591].byte $2c; [1]: Message
[8592].byte $60; [2]: Hit Enemy
[8593].byte $5c; [3]: Enemy died
[8594].byte $64; [4]: Player hit
[8595].byte $70; [5]: Magic
[8596].byte $38; [6]: Open door
[8597].byte $40; [7]: Typing
[8598].byte $4c; [8]: Item picked up
[8599].byte $50; [9]: Coin touched
[859a].byte $68; [10]: Magic hit by obstacle
[859b].byte $30; [11]: Cursor moved
[859c].byte $58; [12]: Shield hit by magic
[859d].byte $34; [13]: Character inputted
[859e].byte $28; [14]: Password character entered
[859f].byte $3c; [15]: Pushing block
[85a0].byte $54; [16]: Coin dropped
[85a1].byte $48; [17]: ?? Unused
[85a2].byte $44; [18]: Pakukame
[85a3].byte $24; [19]: Fill HP or MP
[85a4].byte $6c; [20]: Tilte magic spell
[85a5].byte $1c; [21]: Step sound
[85a6].byte $10; [22]: Player died
[85a7].byte $14; [23]: Ladder dropped
[85a8].byte $18; [24]: Show player menu
[85a9].byte $20; [25]: Changed gold amount
[85aa].byte $0c; [26]: Use special item 2
[85ab].byte $08; [27]: Bread touched
[85ac].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]
[85ad].word SoundEffects_Init-1; SoundEffects_Init [$PRG5::85ad]
[85af].word SoundEffect_NoOp-1; SoundEffect_NoOp [$PRG5::85af]
[85b1].word SoundEffect_CoinTouched_Setup-1; 0x04
[85b3].word SoundEffect_CoinTouched_OnTick-1; SoundEffect_CoinTouched_OnTick [$PRG5::85b3]
[85b5].word SoundEffect_BreadTouched_Setup-1; 0x08
[85b7].word SoundEffect_BreadTouched_OnTick-1; SoundEffect_BreadTouched_OnTick [$PRG5::85b7]
[85b9].word SoundEffect_Maybe_UseSpecialItem2_Setup-1; 0x0C
[85bb].word SoundEffect_Maybe_UseSpecialItem2_OnTick-1; SoundEffect_Maybe_UseSpecialItem2_OnTick [$PRG5::85bb]
[85bd].word SoundEffect_PlayerDied_Setup-1; 0x10
[85bf].word SoundEffect_PlayerDied_OnTick-1; SoundEffect_PlayerDied_OnTick [$PRG5::85bf]
[85c1].word SoundEffect_LadderDropped_Setup-1; 0x14
[85c3].word SoundEffect_LadderDropped_OnTick-1; SoundEffect_LadderDropped_OnTick [$PRG5::85c3]
[85c5].word SoundEffect_ShowPlayerMenu_Setup-1; 0x18
[85c7].word SoundEffect_ShowPlayerMenu_OnTick-1; SoundEffect_ShowPlayerMenu_OnTick [$PRG5::85c7]
[85c9].word SoundEffect_Maybe_Step_Setup-1; 0x1C
[85cb].word SoundEffect_Maybe_Step_OnTick-1; SoundEffect_Maybe_Step_OnTick [$PRG5::85cb]
[85cd].word SoundEffect_GoldAmountChanged_Setup-1; 0x20
[85cf].word SoundEffects_DecrementCounter-1; SoundEffects_DecrementCounter [$PRG5::85cf]
[85d1].word SoundEffect_FillHPOrMP_Setup-1; 0x24
[85d3].word SoundEffect_FillHPOrMP_OnTick-1; SoundEffect_FillHPOrMP_OnTick [$PRG5::85d3]
[85d5].word SoundEffect_PasswordCharInput_Setup-1; 0x28
[85d7].word SoundEffects_DecrementCounter-1; SoundEffects_DecrementCounter [$PRG5::85d7]
[85d9].word SoundEffect_Message_Setup-1; 0x2C
[85db].word SoundEffect_Message_OnTick-1; SoundEffect_Message_OnTick [$PRG5::85db]
[85dd].word SoundEffect_CursorMoved_Setup-1; 0x30
[85df].word SoundEffect_CursorMoved_OnTick-1; SoundEffect_CursorMoved_OnTick [$PRG5::85df]
[85e1].word SoundEffect_CharacterInput_Setup-1; 0x34
[85e3].word SoundEffect_CharacterInput_OnTick-1; SoundEffect_CharacterInput_OnTick [$PRG5::85e3]
[85e5].word SoundEffect_OpenDoor_Setup-1; 0x38
[85e7].word SoundEffect_OpenDoor_OnTick-1; SoundEffect_OpenDoor_OnTick [$PRG5::85e7]
[85e9].word SoundEffect_PushBlock_Setup-1; 0x3C
[85eb].word SoundEffect_PushBlock_OnTick-1; SoundEffect_PushBlock_OnTick [$PRG5::85eb]
[85ed].word SoundEffect_Maybe_Typing_Setup-1; 0x40
[85ef].word SoundEffect_Maybe_Typing_OnTick-1; SoundEffect_Maybe_Typing_OnTick [$PRG5::85ef]
[85f1].word SoundEffect_Pakukame_Setup-1; 0x44
[85f3].word SoundEffect_Pakukame_OnTick-1; SoundEffect_Pakukame_OnTick [$PRG5::85f3]
[85f5].word SoundEffect_0x48_Setup-1; 0x48
[85f7].word SoundEffect_0x48_OnTick-1; SoundEffect_0x48_OnTick [$PRG5::85f7]
[85f9].word SoundEffect_ItemPickedUp_Setup-1; 0x4C
[85fb].word SoundEffect_ItemPickedUp_OnTick-1; SoundEffect_ItemPickedUp_OnTick [$PRG5::85fb]
[85fd].word SoundEffect_CoinTouchedCommon_Setup-1; 0x50
[85ff].word SoundEffect_CoinTouchedCommon_OnTick-1; SoundEffect_CoinTouchedCommon_OnTick [$PRG5::85ff]
[8601].word SoundEffect_CoinDropped_Setup-1; 0x54
[8603].word SoundEffect_CoinDropped_OnTick-1; SoundEffect_CoinDropped_OnTick [$PRG5::8603]
[8605].word SoundEffect_ShieldHitByMagic_Setup-1; 0x58
[8607].word SoundEffect_ShieldHitByMagic_OnTick-1; SoundEffect_ShieldHitByMagic_OnTick [$PRG5::8607]
[8609].word SoundEffect_EnemyDied_Setup-1; 0x5C
[860b].word SoundEffect_EnemyDied_OnTick-1; SoundEffect_EnemyDied_OnTick [$PRG5::860b]
[860d].word SoundEffect_HitEnemy_Setup-1; 0x60
[860f].word SoundEffect_HitEnemy_OnTick-1; SoundEffect_HitEnemy_OnTick [$PRG5::860f]
[8611].word SoundEffect_HitPlayer_Setup-1; 0x64
[8613].word SoundEffect_HitPlayer_OnTick-1; SoundEffect_HitPlayer_OnTick [$PRG5::8613]
[8615].word SoundEffect_MagicHitObstacle_Setup-1; 0x68
[8617].word SoundEffect_MagicHitObstacle_OnTick-1; SoundEffect_MagicHitObstacle_OnTick [$PRG5::8617]
[8619].word SoundEffect_Tilte_Setup-1; 0x6C
[861b].word SoundEffect_Tilte_OnTick-1; SoundEffect_Tilte_OnTick [$PRG5::861b]
[861d].word SoundEffect_Magic_Setup-1; 0x70
[861f].word SoundEffect_Magic_OnTick-1; SoundEffect_Magic_OnTick [$PRG5::861f]
;============================================================================
; TODO: Document SoundEffects_DecrementCounter
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8621]SoundEffects_DecrementCounter:; [$8621]
[8621]DEC a:SoundEffect_State_Counter
[8624]BNE Sound_ResetCurrentSound_Return
[8626]Sound_ResetCurrentSound:; [$8626]
[8626]LDA #$00
[8628]STA a:SoundEffect_HandlerIndex
[862b]STA a:SoundEffect_Unused_PriorityID
[862e]Sound_ResetCurrentSound_Return:; [$862e]
[862e]RTS
;============================================================================
; TODO: Document SoundEffects_HandleOnInterrupt
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
thunk_SoundEffects_HandleOnInterrupt
;============================================================================
[862f]SoundEffects_HandleOnInterrupt:; [$862f]
;
; Loop through all channels, decrementing the sound effect
; tick count for each.
;
[862f]LDX #$03; X = 3 (channel loop counter).
[8631]@_checkActiveEffectsLoop:; [$8631]
[8631]LDA SoundEffect_TicksRemaining,X; Load the sound effect ticks remaining for this channel.
[8634]BEQ @_prepareNextActiveEffectsLoopIter; If this channel is done, prepare for the next iteration.
[8636]DEC SoundEffect_TicksRemaining,X; Reduce the ticks remaining by 1.
[8639]@_prepareNextActiveEffectsLoopIter:; [$8639]
[8639]DEX; X-- (loop counter).
[863a]BPL @_checkActiveEffectsLoop; If >= 0, loop.
;
; Check if the current sound effect is playing or just set.
;
; Playing is indicated by bit 7 == 1.
;
[863c]LDA SoundEffect_Current; Load the ID of the sound effect that's set.
[863e]BMI @_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]TAX; X = A (sound effect ID).
[8641]ORA #$80; Set the Playing state (bit 7).
[8643]STA SoundEffect_Current; Update the sound effect.
[8645]CPX #$1d; Is this sound ID in range?
[8647]BCS @_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]LDA a:SoundEffect_HandlerIndex; Load the current sound effect handler index.
[864c]BEQ @_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]LDA SOUND_EFFECT_HANDLER_INDEXES,X; Load the sound effect handler index for this sound effect.
[8651]CMP a:SoundEffect_HandlerIndex; Does it match the existing handler?
[8654]BCC @_newHandler; If not, look for a new handler and reset for the sound.
[8656]BNE @_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]
[8658]LDA SOUND_EFFECT_HANDLER_INDEXES,X; Load the sound effect handler index for this ID.
[865b]STA a:SoundEffect_HandlerIndex; Store as the new index.
[865e]TAX; X = A (index).
;
; Clear out the number of ticks remaining for the old sound
; effect.
;
[865f]LDA #$00
[8661]STA a:SoundEffect_TicksRemaining; SQ1 ticks remaining = 0
[8664]STA a:SoundEffect_TicksRemaining_1_; SQ2 ticks remaining = 0
[8667]STA a:SoundEffect_TicksRemaining_2_; TRI ticks remaining = 0
[866a]STA a:SoundEffect_TicksRemaining_3_; Noise ticks remaining = 0
[866d]BEQ @_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]
[866f]LDX a:SoundEffect_HandlerIndex; Load the index of the sound effect handler.
[8672]INX; Advance to the next address for the on-tick handler.
[8673]INX
;
; 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]
[8674]CPX #$74; Is this a valid sound effect within the handlers lookup table?
[8676]BCS Sound_ResetCurrentSound; If not, reset the current sound effect.
[8678]LDA SOUND_EFFECT_HANDLERS+1,X; Load the upper byte of the handler address.
[867b]PHA; Push it to the stack.
[867c]LDA SOUND_EFFECT_HANDLERS,X; Load the lower byte.
[867f]PHA; Push it to the stack.
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_NoOp
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8680]SoundEffect_NoOp:; [$8680]
[8680]RTS
[8681]SoundEffects_Init:; [$8681]
[8681]LDA #$00
[8683]STA a:DMC_RAW; Disable raw DMC.
;
; Clear the ticks remaining for all sound effect channels.
;
[8686]STA a:SoundEffect_TicksRemaining; Set SQ1 ticks remaining = 0.
[8689]STA a:SoundEffect_TicksRemaining_1_; Set SQ2 ticks remaining = 0.
[868c]STA a:SoundEffect_TicksRemaining_2_; Set TRI ticks remaining = 0.
[868f]STA a:SoundEffect_TicksRemaining_3_; Set Noise ticks remaining = 0.
[8692]STA a:SoundEffect_Unused_PriorityID; Set priority ID (unused) to 0.
;
; Perform an audio reset and then enable the SQ1/SQ2/TRI/Noise
; channels.
;
[8695]JSR Audio_Reset; Reset the audio.
[8698]LDA #$0f
[869a]STA a:SND_CHN; Enable channels.
[869d]RTS
;============================================================================
; TODO: Document SoundEffect_Message_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[869e]SoundEffect_Message_Setup:; [$869e]
[869e]LDA #$06
[86a0]STA a:SoundEffect_TicksRemaining_3_; Set TRI ticks remaining to 6.
[86a3]LDA #$00
[86a5]STA 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]
[86a8]LDA #$1f
[86aa]STA 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]LDA a:SoundEffect_State_Counter; Load the sound effect counter.
[86b0]AND #$02; Keep bit 1 (on 2 ticks, off 2 ticks).
[86b2]TAX; X = result.
[86b3]LDA SOUNDEFFECT_MESSAGE_NOISE_LO,X; Load the NOISE_LO value for this state.
[86b6]STA a:NOISE_LO
[86b9]LDA #$00
[86bb]STA a:NOISE_HI
[86be]INC a:SoundEffect_State_Counter
[86c1]LDA a:SoundEffect_State_Counter
[86c4]CMP #$04
[86c6]BCC @_return
[86c8]LDA #$10
[86ca]STA a:NOISE_VOL
[86cd]JMP Sound_ResetCurrentSound
[86d0]@_return:; [$86d0]
[86d0]RTS
[86d1]SOUNDEFFECT_MESSAGE_NOISE_LO:; [$86d1]
[86d1].byte $10; [0]:
[86d2].byte $01; [1]:
;============================================================================
; TODO: Document SoundEffect_HitEnemy_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[86d3]SoundEffect_HitEnemy_Setup:; [$86d3]
[86d3]LDA #$14
[86d5]STA a:SoundEffect_TicksRemaining_1_
[86d8]STA a:SoundEffect_TicksRemaining_3_
[86db]LDA #$00
[86dd]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_HitEnemy_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[86e0]SoundEffect_HitEnemy_OnTick:; [$86e0]
[86e0]LDX a:SoundEffect_State_Counter
[86e3]LDA SOUNDEFFECT_HIT_ENEMY_NOTES,X
[86e6]CMP #$ff
[86e8]BNE @_play
[86ea]LDA #$10
[86ec]STA a:SQ2_VOL
[86ef]STA a:NOISE_VOL
[86f2]JMP Sound_ResetCurrentSound
[86f5]@_play:; [$86f5]
[86f5]JSR SoundEffect_SetNote
[86f8]LDA #$5f
[86fa]STA a:SQ2_VOL
[86fd]STA a:NOISE_VOL
[8700]LDA a:SoundEffect_State_Counter
[8703]EOR #$0f
[8705]ORA #$98
[8707]STA a:SQ2_SWEEP
[870a]LDA a:SoundEffect_Note_Low
[870d]STA a:SQ2_LO
[8710]AND #$07
[8712]STA a:NOISE_LO
[8715]LDA #$00
[8717]STA a:NOISE_HI
[871a]LDA a:SoundEffect_Note_High
[871d]STA a:SQ2_HI
[8720]INC a:SoundEffect_State_Counter
[8723]RTS
[8724]SOUNDEFFECT_HIT_ENEMY_NOTES:; [$8724]
[8724].byte $62; [0]:
[8725].byte $4e; [1]:
[8726].byte $3c; [2]:
[8727].byte $50; [3]:
[8728].byte $48; [4]:
[8729].byte $65; [5]:
[872a].byte $51; [6]:
[872b].byte $48; [7]:
[872c].byte $56; [8]:
[872d].byte $52; [9]:
[872e].byte $5f; [10]:
[872f].byte $58; [11]:
[8730].byte $65; [12]:
[8731].byte $4d; [13]:
[8732].byte $55; [14]:
[8733].byte $ff; [15]:
;============================================================================
; TODO: Document SoundEffect_EnemyDied_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8734]SoundEffect_EnemyDied_Setup:; [$8734]
[8734]LDA #$16
[8736]STA a:SoundEffect_TicksRemaining_3_
[8739]LDA #$14
[873b]STA a:SoundEffect_State_Counter
[873e]LDA #$00
[8740]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_EnemyDied_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8743]SoundEffect_EnemyDied_OnTick:; [$8743]
[8743]DEC a:SoundEffect_State_Counter
[8746]BNE @_play
[8748]LDA #$10
[874a]STA a:NOISE_VOL
[874d]JMP Sound_ResetCurrentSound
[8750]@_play:; [$8750]
[8750]LDX a:SoundEffect_State_0128
[8753]LDA #$1f
[8755]STA a:NOISE_VOL
[8758]LDA SOUNDEFFECT_ENEMY_DIED_NOISE_LO,X
[875b]STA a:NOISE_LO
[875e]LDA #$00
[8760]STA a:NOISE_HI
[8763]INC a:SoundEffect_State_0128
[8766]RTS
[8767]SOUNDEFFECT_ENEMY_DIED_NOISE_LO:; [$8767]
[8767].byte $0f; [0]:
[8768].byte $0c; [1]:
[8769].byte $0e; [2]:
[876a].byte $0b; [3]:
[876b].byte $0d; [4]:
[876c].byte $09; [5]:
[876d].byte $03; [6]:
[876e].byte $02; [7]:
[876f].byte $01; [8]:
[8770].byte $00; [9]:
;============================================================================
; TODO: Document SoundEffect_HitPlayer_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8771]SoundEffect_HitPlayer_Setup:; [$8771]
[8771]LDA #$0f
[8773]STA a:SoundEffect_TicksRemaining_1_
[8776]LDA #$00
[8778]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_HitPlayer_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[877b]SoundEffect_HitPlayer_OnTick:; [$877b]
[877b]LDX a:SoundEffect_State_Counter
[877e]LDA SOUNDEFFECT_HITPLAYER_NOTES,X
[8781]CMP #$ff
[8783]BNE @_play
[8785]LDA #$10
[8787]STA a:SQ2_VOL
[878a]JMP Sound_ResetCurrentSound
[878d]@_play:; [$878d]
[878d]JSR SoundEffect_SetNote
[8790]LDA #$df
[8792]STA a:SQ2_VOL
[8795]LDA #$00
[8797]STA a:SQ2_SWEEP
[879a]LDA a:SoundEffect_Note_Low
[879d]STA a:SQ2_LO
[87a0]LDA a:SoundEffect_Note_High
[87a3]STA a:SQ2_HI
[87a6]INC a:SoundEffect_State_Counter
[87a9]RTS
[87aa]SOUNDEFFECT_HITPLAYER_NOTES:; [$87aa]
[87aa].byte $29; [0]:
[87ab].byte $24; [1]:
[87ac].byte $28; [2]:
[87ad].byte $22; [3]:
[87ae].byte $1f; [4]:
[87af].byte $29; [5]:
[87b0].byte $2b; [6]:
[87b1].byte $2c; [7]:
[87b2].byte $2d; [8]:
[87b3].byte $2a; [9]:
[87b4].byte $ff; [10]:
;============================================================================
; TODO: Document SoundEffect_Magic_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[87b5]SoundEffect_Magic_Setup:; [$87b5]
[87b5]LDA #$32
[87b7]STA a:SoundEffect_TicksRemaining_1_
[87ba]LDA #$00
[87bc]STA a:SoundEffect_State_Counter
[87bf]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_Magic_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[87c2]SoundEffect_Magic_OnTick:; [$87c2]
[87c2]LDX a:SoundEffect_State_0128
[87c5]LDA SOUNDEFFECT_MAGIC_SQ2_VOL,X
[87c8]BNE @_play
[87ca]LDA #$10
[87cc]STA a:SQ2_VOL
[87cf]JMP Sound_ResetCurrentSound
[87d2]@_play:; [$87d2]
[87d2]ORA #$50
[87d4]STA a:SQ2_VOL
[87d7]LDA #$00
[87d9]STA a:SQ2_SWEEP
[87dc]LDA a:SoundEffect_State_Counter
[87df]AND #$03
[87e1]TAX
[87e2]LDA SOUNDEFFECT_MAGIC_SQ2_LO,X
[87e5]STA a:SQ2_LO
[87e8]LDA #$00
[87ea]STA a:SQ2_HI
[87ed]INC a:SoundEffect_State_Counter
[87f0]LDA a:SoundEffect_State_Counter
[87f3]CMP #$08
[87f5]BNE @_return
[87f7]LDA #$00
[87f9]STA a:SoundEffect_State_Counter
[87fc]INC a:SoundEffect_State_0128
[87ff]@_return:; [$87ff]
[87ff]RTS
[8800]SOUNDEFFECT_MAGIC_SQ2_VOL:; [$8800]
[8800].byte $0f,$0b,$07,$04,$01,$00; [$8800] byte
[8806]SOUNDEFFECT_MAGIC_SQ2_LO:; [$8806]
[8806].byte $b0,$a0,$a8,$98; [$8806] byte
;============================================================================
; TODO: Document SoundEffect_OpenDoor_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[880a]SoundEffect_OpenDoor_Setup:; [$880a]
[880a]LDA #$3c
[880c]STA a:SoundEffect_TicksRemaining_1_
[880f]STA a:SoundEffect_TicksRemaining_3_
[8812]LDA #$37
[8814]STA a:SoundEffect_State_0129
[8817]LDA #$00
[8819]STA a:SoundEffect_State_Counter
[881c]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_OpenDoor_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[881f]SoundEffect_OpenDoor_OnTick:; [$881f]
[881f]DEC a:SoundEffect_State_0129
[8822]BNE @_play
[8824]LDA #$10
[8826]STA a:SQ2_VOL
[8829]STA a:NOISE_VOL
[882c]JMP Sound_ResetCurrentSound
[882f]@_play:; [$882f]
[882f]LDA a:SoundEffect_State_Counter
[8832]LSR A
[8833]LSR A
[8834]EOR #$ff
[8836]AND #$0f
[8838]ORA #$50
[883a]STA a:NOISE_VOL
[883d]STA a:SQ2_VOL
[8840]LDA #$00
[8842]STA a:SQ2_SWEEP
[8845]LDA a:SoundEffect_State_Counter
[8848]AND #$07
[884a]TAY
[884b]LDA #$60
[884d]SEC
[884e]SBC SOUNDEFFECT_OPEN_DOOR_SQ2_NOISE_LO,Y
[8851]STA a:SQ2_LO
[8854]AND #$0f
[8856]STA a:NOISE_LO
[8859]LDA #$00
[885b]STA a:SQ2_HI
[885e]STA a:NOISE_HI
[8861]INC a:SoundEffect_State_Counter
[8864]RTS
[8865]SOUNDEFFECT_OPEN_DOOR_SQ2_NOISE_LO:; [$8865]
[8865].byte $00,$03,$0a,$15,$25,$15,$0a,$03; [$8865] byte
;============================================================================
; TODO: Document SoundEffect_Maybe_Typing_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[886d]SoundEffect_Maybe_Typing_Setup:; [$886d]
[886d]LDA #$28
[886f]STA a:SoundEffect_TicksRemaining_1_
[8872]LDA #$00
[8874]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_Maybe_Typing_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8877]SoundEffect_Maybe_Typing_OnTick:; [$8877]
[8877]LDA a:SoundEffect_TicksRemaining_1_
[887a]AND #$01
[887c]BNE @_return
[887e]LDX a:SoundEffect_State_Counter
[8881]LDA SOUNDEFFECT_MAYBE_TYPING_NOTES,X
[8884]CMP #$ff
[8886]BNE @_play
[8888]LDA #$10
[888a]STA a:SQ2_VOL
[888d]JMP Sound_ResetCurrentSound
[8890]@_play:; [$8890]
[8890]JSR SoundEffect_SetNote
[8893]INC a:SoundEffect_State_Counter
[8896]LDA a:SoundEffect_State_Counter
[8899]EOR #$ff
[889b]AND #$0f
[889d]ORA #$d4
[889f]STA a:SQ2_VOL
[88a2]LDA #$91
[88a4]STA a:SQ2_SWEEP
[88a7]LDA a:SoundEffect_Note_Low
[88aa]STA a:SQ2_LO
[88ad]LDA a:SoundEffect_Note_High
[88b0]STA a:SQ2_HI
[88b3]@_return:; [$88b3]
[88b3]RTS
[88b4]SOUNDEFFECT_MAYBE_TYPING_NOTES:; [$88b4]
[88b4].byte $2b,$2d,$2f,$24,$38,$2a,$37,$39; [$88b4] byte
[88bc].byte $3b,$24,$38,$42,$2b,$2d,$2f,$18; [$88bc] byte
[88c4].byte $ff; [$88c4] byte
;============================================================================
; TODO: Document SoundEffect_ItemPickedUp_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[88c5]SoundEffect_ItemPickedUp_Setup:; [$88c5]
[88c5]LDA #$3c
[88c7]STA a:SoundEffect_TicksRemaining_1_
[88ca]LDA #$00
[88cc]STA a:SoundEffect_State_Counter
[88cf]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_ItemPickedUp_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[88d2]SoundEffect_ItemPickedUp_OnTick:; [$88d2]
[88d2]LDX a:SoundEffect_State_Counter
[88d5]LDA SOUNDEFFECT_ITEM_PICKED_UP_NOTES,X
[88d8]CMP #$ff
[88da]BNE @_playNote
[88dc]INC a:SoundEffect_State_0128
[88df]LDA #$00
[88e1]STA a:SoundEffect_State_Counter
[88e4]RTS
[88e5]@_playNote:; [$88e5]
[88e5]JSR SoundEffect_SetNote
[88e8]LDX a:SoundEffect_State_0128
[88eb]LDA SOUNDEFFECT_ITEM_PICKED_UP_SQ2_VOLS,X
[88ee]BNE @_playSQ2
[88f0]LDA #$10
[88f2]STA a:SQ2_VOL
[88f5]JMP Sound_ResetCurrentSound
[88f8]@_playSQ2:; [$88f8]
[88f8]ORA #$90
[88fa]STA a:SQ2_VOL
[88fd]LDA #$00
[88ff]STA a:SQ2_SWEEP
[8902]LDA a:SoundEffect_Note_Low
[8905]STA a:SQ2_LO
[8908]LDA a:SoundEffect_Note_High
[890b]STA a:SQ2_HI
[890e]INC a:SoundEffect_State_Counter
[8911]RTS
[8912]SOUNDEFFECT_ITEM_PICKED_UP_SQ2_VOLS:; [$8912]
[8912].byte $0f,$0c,$09,$05,$02,$00; [$8912] byte
[8918]SOUNDEFFECT_ITEM_PICKED_UP_NOTES:; [$8918]
[8918].byte $3f,$43,$4a,$55,$5b,$60,$ff; [$8918] byte
;============================================================================
; TODO: Document SoundEffect_CoinTouchedCommon_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;
; XREFS:
;
SoundEffect_CoinTouched_Setup
;============================================================================
[891f]SoundEffect_CoinTouchedCommon_Setup:; [$891f]
[891f]LDA #$1e
[8921]STA a:SoundEffect_TicksRemaining_1_
[8924]LDA #$50
[8926]STA a:SoundEffect_State_Counter
[8929]LDA #$00
[892b]STA 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]
[892e]LDX a:SoundEffect_State_0128
[8931]LDA SOUNDEFFECT_COIN_TOUCHED_SQ2_VOL,X
[8934]BNE @_play
[8936]LDA #$10
[8938]STA a:SQ2_VOL
[893b]JMP Sound_ResetCurrentSound
[893e]@_play:; [$893e]
[893e]ORA #$d0
[8940]STA a:SQ2_VOL
[8943]LDA #$00
[8945]STA a:SQ2_SWEEP
[8948]LDA a:SoundEffect_State_Counter
[894b]STA a:SQ2_LO
[894e]CLC
[894f]ADC #$04
[8951]STA a:SQ2_LO
[8954]LDA #$00
[8956]STA a:SQ2_HI
[8959]LDA a:SoundEffect_State_Counter
[895c]SEC
[895d]SBC #$10
[895f]STA a:SoundEffect_State_Counter
[8962]BNE @_return
[8964]INC a:SoundEffect_State_0128
[8967]LDA #$50
[8969]STA a:SoundEffect_State_Counter
[896c]@_return:; [$896c]
[896c]RTS
[896d]SOUNDEFFECT_COIN_TOUCHED_SQ2_VOL:; [$896d]
[896d].byte $0f,$0c,$09,$06,$03,$00; [$896d] byte
;============================================================================
; TODO: Document SoundEffect_MagicHitObstacle_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8973]SoundEffect_MagicHitObstacle_Setup:; [$8973]
[8973]LDA #$1e
[8975]STA a:SoundEffect_TicksRemaining_3_
[8978]LDA #$20
[897a]STA a:SoundEffect_State_Counter
[897d]LDA #$00
[897f]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_MagicHitObstacle_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8982]SoundEffect_MagicHitObstacle_OnTick:; [$8982]
[8982]DEC a:SoundEffect_State_Counter
[8985]BNE @_play
[8987]LDA #$10
[8989]STA a:NOISE_VOL
[898c]JMP Sound_ResetCurrentSound
[898f]@_play:; [$898f]
[898f]LDA a:SoundEffect_State_Counter
[8992]LSR A
[8993]AND #$0f
[8995]ORA #$10
[8997]STA a:NOISE_VOL
[899a]LDA a:SoundEffect_State_Counter
[899d]AND #$0f
[899f]STA a:NOISE_LO
[89a2]LDA #$00
[89a4]STA a:NOISE_HI
[89a7]RTS
;============================================================================
; TODO: Document SoundEffect_CursorMoved_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[89a8]SoundEffect_CursorMoved_Setup:; [$89a8]
[89a8]LDA #$16
[89aa]STA a:SoundEffect_TicksRemaining_1_
[89ad]LDA #$0f
[89af]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_CursorMoved_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[89b2]SoundEffect_CursorMoved_OnTick:; [$89b2]
[89b2]LDA a:SoundEffect_State_Counter
[89b5]BNE @_play
[89b7]LDA #$10
[89b9]STA a:SQ2_VOL
[89bc]JMP Sound_ResetCurrentSound
[89bf]@_play:; [$89bf]
[89bf]LDA a:SoundEffect_State_Counter
[89c2]AND #$0f
[89c4]ORA #$50
[89c6]STA a:SQ2_VOL
[89c9]LDA #$00
[89cb]STA a:SQ2_SWEEP
[89ce]LDA a:SoundEffect_State_Counter
[89d1]AND #$07
[89d3]TAY
[89d4]LDA a:SoundEffect_State_Counter
[89d7]AND #$02
[89d9]STA a:SoundEffect_State_0128
[89dc]LDA a:SoundEffect_State_Counter
[89df]AND #$01
[89e1]CLC
[89e2]ADC a:SoundEffect_State_0128
[89e5]TAX
[89e6]LDA SOUNDEFFECT_CURSOR_MOVED_SQ2_LO,X
[89e9]SEC
[89ea]SBC SOUNDEFFECT_CURSORMOVED_SQ2_LO_DELTA,Y
[89ed]STA a:SQ2_LO
[89f0]LDA #$00
[89f2]STA a:SQ2_HI
[89f5]DEC a:SoundEffect_State_Counter
[89f8]RTS
[89f9]SOUNDEFFECT_CURSOR_MOVED_SQ2_LO:; [$89f9]
[89f9].byte $51,$34,$b8; [$89f9] byte
[89fc]BYTE_PRG5__89fc:; [$89fc]
[89fc].byte $93; [$89fc] byte
[89fd]SOUNDEFFECT_CURSORMOVED_SQ2_LO_DELTA:; [$89fd]
[89fd].byte $00,$01,$03,$06,$0a,$06,$03; [$89fd] byte
[8a04]BYTE_PRG5__8a04:; [$8a04]
[8a04].byte $01; [$8a04] byte
;============================================================================
; TODO: Document SoundEffect_ShieldHitByMagic_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8a05]SoundEffect_ShieldHitByMagic_Setup:; [$8a05]
[8a05]LDA #$14
[8a07]STA a:SoundEffect_TicksRemaining_1_
[8a0a]LDA #$10
[8a0c]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_ShieldHitByMagic_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8a0f]SoundEffect_ShieldHitByMagic_OnTick:; [$8a0f]
[8a0f]DEC a:SoundEffect_State_Counter
[8a12]BNE @_play
[8a14]LDA #$10
[8a16]STA a:SQ2_VOL
[8a19]JMP Sound_ResetCurrentSound
[8a1c]@_play:; [$8a1c]
[8a1c]LDA a:SoundEffect_State_Counter
[8a1f]ORA #$90
[8a21]STA a:SQ2_VOL
[8a24]LDA #$00
[8a26]STA a:SQ2_SWEEP
[8a29]LDA a:SoundEffect_State_Counter
[8a2c]AND #$01
[8a2e]TAX
[8a2f]LDA SOUNDEFFECT_SHIELD_HIT_BY_MAGIC_SQ2_LO,X
[8a32]STA a:SQ2_LO
[8a35]LDA #$00
[8a37]STA a:SQ2_HI
[8a3a]RTS
[8a3b]SOUNDEFFECT_SHIELD_HIT_BY_MAGIC_SQ2_LO:; [$8a3b]
[8a3b].byte $30; [0]:
[8a3c]SOUNDEFFECT_SHIELD_HIT_BY_MAGIC_SQ2_LO_1_:; [$8a3c]
[8a3c].byte $1a; [1]:
;============================================================================
; TODO: Document SoundEffect_CharacterInput_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8a3d]SoundEffect_CharacterInput_Setup:; [$8a3d]
[8a3d]LDA #$1e
[8a3f]STA a:SoundEffect_TicksRemaining_1_
[8a42]LDA #$00
[8a44]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_CharacterInput_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8a47]SoundEffect_CharacterInput_OnTick:; [$8a47]
[8a47]INC a:SoundEffect_State_Counter
[8a4a]LDA a:SoundEffect_State_Counter
[8a4d]LSR A
[8a4e]LSR A
[8a4f]TAX
[8a50]LDA SOUNDEFFECT_CHAR_INPUT_NOTES,X
[8a53]CMP #$ff
[8a55]BNE @_play
[8a57]LDA #$10
[8a59]STA a:SQ2_VOL
[8a5c]JMP Sound_ResetCurrentSound
[8a5f]@_play:; [$8a5f]
[8a5f]JSR SoundEffect_SetNote
[8a62]LDA #$bf
[8a64]STA a:SQ2_VOL
[8a67]LDA #$00
[8a69]STA a:SQ2_SWEEP
[8a6c]LDA a:SoundEffect_Note_Low
[8a6f]STA a:SQ2_LO
[8a72]LDA a:SoundEffect_Note_High
[8a75]STA a:SQ2_HI
[8a78]RTS
[8a79]SOUNDEFFECT_CHAR_INPUT_NOTES:; [$8a79]
[8a79].byte $37; [0]:
[8a7a].byte $39; [1]:
[8a7b].byte $32; [2]:
[8a7c].byte $34; [3]:
[8a7d].byte $ff; [4]:
;============================================================================
; TODO: Document SoundEffect_PasswordCharInput_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8a7e]SoundEffect_PasswordCharInput_Setup:; [$8a7e]
[8a7e]LDA #$0a
[8a80]STA a:SoundEffect_TicksRemaining_1_
[8a83]LDA #$02
[8a85]STA a:SoundEffect_State_Counter
[8a88]LDA #$81
[8a8a]STA a:SQ2_VOL
[8a8d]LDA #$00
[8a8f]STA a:SQ2_SWEEP
[8a92]LDA #$8e
[8a94]STA a:SQ2_LO
[8a97]LDA #$10
[8a99]STA a:SQ2_HI
[8a9c]RTS
;============================================================================
; TODO: Document SoundEffect_PushBlock_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8a9d]SoundEffect_PushBlock_Setup:; [$8a9d]
[8a9d]LDA #$20
[8a9f]STA a:SoundEffect_TicksRemaining_3_
[8aa2]LDA #$1e
[8aa4]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_PushBlock_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8aa7]SoundEffect_PushBlock_OnTick:; [$8aa7]
[8aa7]LDA a:SoundEffect_State_Counter
[8aaa]BNE @_play
[8aac]LDA #$10
[8aae]STA a:NOISE_VOL
[8ab1]JMP Sound_ResetCurrentSound
[8ab4]@_play:; [$8ab4]
[8ab4]LDA #$1f
[8ab6]STA a:NOISE_VOL
[8ab9]LDA a:SoundEffect_State_Counter
[8abc]AND #$01
[8abe]TAX
[8abf]LDA SOUNDEFFECT_PUSH_BLOCK_NOISE_LO,X
[8ac2]STA a:NOISE_LO
[8ac5]LDA #$00
[8ac7]STA a:NOISE_HI
[8aca]DEC a:SoundEffect_State_Counter
[8acd]RTS
[8ace]SOUNDEFFECT_PUSH_BLOCK_NOISE_LO:; [$8ace]
[8ace].byte $0f,$0b; [$8ace] byte
;============================================================================
; TODO: Document SoundEffect_CoinDropped_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8ad0]SoundEffect_CoinDropped_Setup:; [$8ad0]
[8ad0]LDA #$32
[8ad2]STA a:SoundEffect_TicksRemaining_1_
[8ad5]LDA #$08
[8ad7]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_CoinDropped_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8ada]SoundEffect_CoinDropped_OnTick:; [$8ada]
[8ada]LDA #$86
[8adc]STA a:SQ2_VOL
[8adf]LDA #$00
[8ae1]STA a:SQ2_SWEEP
[8ae4]LDA a:SoundEffect_State_Counter
[8ae7]CMP #$05
[8ae9]BNE @_checkUpdateCounter
[8aeb]LDA #$35
[8aed]STA a:SQ2_LO
[8af0]LDA #$20
[8af2]STA a:SQ2_HI
[8af5]@_checkUpdateCounter:; [$8af5]
[8af5]DEC a:SoundEffect_State_Counter
[8af8]BNE @_return
[8afa]LDA #$20
[8afc]STA a:SQ2_LO
[8aff]LDA #$30
[8b01]STA a:SQ2_HI
[8b04]JMP Sound_ResetCurrentSound
[8b07]@_return:; [$8b07]
[8b07]RTS
;============================================================================
; TODO: Document SoundEffect_0x48_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8b08]SoundEffect_0x48_Setup:; [$8b08]
[8b08]LDA #$23
[8b0a]STA a:SoundEffect_TicksRemaining_1_
[8b0d]STA a:SoundEffect_TicksRemaining_3_
[8b10]LDA #$16
[8b12]STA a:SoundEffect_State_0128
[8b15]LDA #$00
[8b17]STA a:SoundEffect_State_Counter
[8b1a]LDA #$1e
[8b1c]STA a:SoundEffect_State_0129
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_0x48_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8b1f]SoundEffect_0x48_OnTick:; [$8b1f]
[8b1f]DEC a:SoundEffect_State_0129
[8b22]BNE @_play
[8b24]LDA #$10
[8b26]STA a:SQ2_VOL
[8b29]STA a:NOISE_VOL
[8b2c]JMP Sound_ResetCurrentSound
[8b2f]@_play:; [$8b2f]
[8b2f]LDA a:SoundEffect_TicksRemaining_1_
[8b32]AND #$01
[8b34]BNE @_return
[8b36]LDA #$df
[8b38]STA a:SQ2_VOL
[8b3b]LDA #$16
[8b3d]STA a:NOISE_VOL
[8b40]LDA #$a3
[8b42]STA a:SQ2_SWEEP
[8b45]LDA a:SoundEffect_State_Counter
[8b48]STA a:SQ2_LO
[8b4b]CLC
[8b4c]ADC #$10
[8b4e]STA a:SoundEffect_State_Counter
[8b51]DEC a:SoundEffect_State_0128
[8b54]LDA a:SoundEffect_State_0128
[8b57]AND #$0f
[8b59]STA a:NOISE_LO
[8b5c]LDA #$12
[8b5e]STA a:SQ2_HI
[8b61]STA a:NOISE_HI
[8b64]@_return:; [$8b64]
[8b64]RTS
;============================================================================
; TODO: Document SoundEffect_Pakukame_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8b65]SoundEffect_Pakukame_Setup:; [$8b65]
[8b65]LDA #$46
[8b67]STA a:SoundEffect_TicksRemaining_1_
[8b6a]LDA #$00
[8b6c]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_Pakukame_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8b6f]SoundEffect_Pakukame_OnTick:; [$8b6f]
[8b6f]LDA a:SoundEffect_TicksRemaining_1_
[8b72]BNE @_play
[8b74]LDA #$10
[8b76]STA a:SQ2_VOL
[8b79]JMP Sound_ResetCurrentSound
[8b7c]@_play:; [$8b7c]
[8b7c]LDA a:SoundEffect_State_Counter
[8b7f]AND #$3c
[8b81]LSR A
[8b82]LSR A
[8b83]AND #$0f
[8b85]ORA #$f0
[8b87]STA a:SQ2_VOL
[8b8a]LDA #$00
[8b8c]STA a:SQ2_SWEEP
[8b8f]LDA #$01
[8b91]STA a:SQ2_HI
[8b94]LDA a:SoundEffect_State_Counter
[8b97]AND #$07
[8b99]TAX
[8b9a]LDA a:SoundEffect_State_Counter
[8b9d]CLC
[8b9e]ADC #$32
[8ba0]SEC
[8ba1]SBC SOUNDEFFECT_PAKUKAME_SQ2_LO,X
[8ba4]STA a:SQ2_LO
[8ba7]INC a:SoundEffect_State_Counter
[8baa]RTS
[8bab]SOUNDEFFECT_PAKUKAME_SQ2_LO:; [$8bab]
[8bab].byte $00,$08,$14,$20,$2d,$20,$14,$08; [$8bab] byte
;============================================================================
; TODO: Document SoundEffect_FillHPOrMP_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8bb3]SoundEffect_FillHPOrMP_Setup:; [$8bb3]
[8bb3]LDA #$23
[8bb5]STA a:SoundEffect_TicksRemaining_1_
[8bb8]LDA #$00
[8bba]STA a:SoundEffect_State_Counter
[8bbd]LDA #$19
[8bbf]STA a:SoundEffect_State_0129
[8bc2]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_FillHPOrMP_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8bc5]SoundEffect_FillHPOrMP_OnTick:; [$8bc5]
[8bc5]DEC a:SoundEffect_State_0128
[8bc8]BNE @_play
[8bca]LDA #$10
[8bcc]STA a:SQ2_VOL
[8bcf]JMP Sound_ResetCurrentSound
[8bd2]@_play:; [$8bd2]
[8bd2]LDA a:SoundEffect_State_Counter
[8bd5]AND #$03
[8bd7]TAY
[8bd8]LDA SOUNDEFFECT_FILL_HP_OR_MP_SQ2_VOL,Y
[8bdb]STA a:SQ2_VOL
[8bde]LDA #$aa
[8be0]STA a:SQ2_SWEEP
[8be3]LDA a:SoundEffect_State_Counter
[8be6]AND #$01
[8be8]TAX
[8be9]LDA SOUNDEFFECT_FILL_HP_OR_MP_SQ2_LO,X
[8bec]ORA a:SoundEffect_State_0129
[8bef]SBC a:SoundEffect_State_Counter
[8bf2]STA a:SoundEffect_State_0129
[8bf5]STA a:SQ2_LO
[8bf8]LDA #$00
[8bfa]STA a:SQ2_HI
[8bfd]INC a:SoundEffect_State_Counter
[8c00]RTS
[8c01]SOUNDEFFECT_FILL_HP_OR_MP_SQ2_VOL:; [$8c01]
[8c01].byte $1f,$5f,$9f,$df; [$8c01] byte
[8c05]SOUNDEFFECT_FILL_HP_OR_MP_SQ2_LO:; [$8c05]
[8c05].byte $60,$30; [$8c05] byte
;============================================================================
; TODO: Document SoundEffect_Tilte_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8c07]SoundEffect_Tilte_Setup:; [$8c07]
[8c07]LDA #$1e
[8c09]STA a:SoundEffect_TicksRemaining_1_
[8c0c]STA a:SoundEffect_TicksRemaining_3_
[8c0f]LDA #$0f
[8c11]STA a:SoundEffect_State_0129
[8c14]LDA #$01
[8c16]STA a:SoundEffect_State_Counter
[8c19]LDA #$07
[8c1b]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_Tilte_OnTick
;
; INPUTS:
; A
;
; OUTPUTS:
; A
;============================================================================
[8c1e]SoundEffect_Tilte_OnTick:; [$8c1e]
[8c1e]DEC a:SoundEffect_State_Counter
[8c21]BNE @_return
[8c23]DEC a:SoundEffect_State_0128
[8c26]LDA a:SoundEffect_State_0128
[8c29]STA a:SoundEffect_State_Counter
[8c2c]BNE @_play
[8c2e]LDA #$10
[8c30]STA a:SQ2_VOL
[8c33]STA a:NOISE_VOL
[8c36]JMP Sound_ResetCurrentSound
[8c39]@_play:; [$8c39]
[8c39]LDA #$48
[8c3b]STA a:SQ2_VOL
[8c3e]LDA #$00
[8c40]STA a:SQ2_SWEEP
[8c43]LDA a:SoundEffect_State_0129
[8c46]ORA #$10
[8c48]STA a:NOISE_VOL
[8c4b]LDA a:SoundEffect_State_0129
[8c4e]AND #$07
[8c50]STA a:NOISE_LO
[8c53]LDA #$00
[8c55]STA a:NOISE_HI
[8c58]LDA a:SoundEffect_State_0129
[8c5b]ORA #$18
[8c5d]STA a:SQ2_LO
[8c60]LDA #$00
[8c62]STA a:SQ2_HI
[8c65]DEC a:SoundEffect_State_0129
[8c68]@_return:; [$8c68]
[8c68]RTS
;============================================================================
; TODO: Document SoundEffect_Maybe_Step_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8c69]SoundEffect_Maybe_Step_Setup:; [$8c69]
[8c69]LDA #$05
[8c6b]STA a:SoundEffect_TicksRemaining_3_
[8c6e]LDA #$03
[8c70]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_Maybe_Step_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8c73]SoundEffect_Maybe_Step_OnTick:; [$8c73]
[8c73]LDA #$01
[8c75]STA a:NOISE_VOL
[8c78]LDA a:SoundEffect_State_Counter
[8c7b]CMP #$03
[8c7d]BNE @_updateCheckCounter
[8c7f]LDA #$0a
[8c81]STA a:NOISE_LO
[8c84]LDA #$00
[8c86]STA a:NOISE_HI
[8c89]@_updateCheckCounter:; [$8c89]
[8c89]DEC a:SoundEffect_State_Counter
[8c8c]BNE @_return
[8c8e]LDA #$02
[8c90]STA a:NOISE_LO
[8c93]LDA #$10
[8c95]STA a:NOISE_HI
[8c98]JMP Sound_ResetCurrentSound
[8c9b]@_return:; [$8c9b]
[8c9b]RTS
;============================================================================
; TODO: Document SoundEffect_PlayerDied_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8c9c]SoundEffect_PlayerDied_Setup:; [$8c9c]
[8c9c]LDA #$41
[8c9e]STA a:SoundEffect_TicksRemaining
[8ca1]STA a:SoundEffect_TicksRemaining_1_
[8ca4]STA a:SoundEffect_TicksRemaining_2_
[8ca7]STA a:SoundEffect_TicksRemaining_3_
[8caa]LDA #$00
[8cac]STA a:SoundEffect_State_Counter
[8caf]LDA #$3c
[8cb1]STA a:SoundEffect_State_0128
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_PlayerDied_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8cb4]SoundEffect_PlayerDied_OnTick:; [$8cb4]
[8cb4]LDA #$00
[8cb6]STA a:TRI_LINEAR
[8cb9]STA a:TRI_LO
[8cbc]STA a:TRI_LO
[8cbf]DEC a:SoundEffect_State_0128
[8cc2]BNE @_play
[8cc4]LDA #$10
[8cc6]STA a:SQ1_VOL
[8cc9]STA a:SQ2_VOL
[8ccc]STA a:NOISE_VOL
[8ccf]JMP Sound_ResetCurrentSound
[8cd2]@_play:; [$8cd2]
[8cd2]LDA a:SoundEffect_State_Counter
[8cd5]EOR #$ff
[8cd7]LSR A
[8cd8]LSR A
[8cd9]AND #$0f
[8cdb]ORA #$d0
[8cdd]STA a:SQ2_VOL
[8ce0]AND #$5f
[8ce2]STA a:SQ1_VOL
[8ce5]LDA #$1f
[8ce7]STA a:NOISE_VOL
[8cea]LDA #$00
[8cec]STA a:SQ2_SWEEP
[8cef]STA a:SQ1_SWEEP
[8cf2]LDA a:SoundEffect_State_Counter
[8cf5]AND #$03
[8cf7]TAX
[8cf8]LDA SOUNDEFFECT_PLAYER_DIED_NOTES,X
[8cfb]JSR SoundEffect_SetNote
[8cfe]LDA a:SoundEffect_Note_Low
[8d01]CLC
[8d02]ADC a:SoundEffect_State_Counter
[8d05]STA a:SQ2_LO
[8d08]CLC
[8d09]ADC #$10
[8d0b]STA a:SQ1_LO
[8d0e]LDA a:SoundEffect_Note_High
[8d11]STA a:SQ2_HI
[8d14]STA a:SQ1_HI
[8d17]LDA a:SoundEffect_State_Counter
[8d1a]AND #$03
[8d1c]STA a:NOISE_LO
[8d1f]LDA #$00
[8d21]STA a:NOISE_HI
[8d24]INC a:SoundEffect_State_Counter
[8d27]RTS
[8d28]SOUNDEFFECT_PLAYER_DIED_NOTES:; [$8d28]
[8d28].byte $4f,$32,$4c,$3c; [$8d28] byte
;============================================================================
; TODO: Document SoundEffect_LadderDropped_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8d2c]SoundEffect_LadderDropped_Setup:; [$8d2c]
[8d2c]LDA #$0a
[8d2e]STA a:SoundEffect_TicksRemaining_3_
[8d31]LDA #$03
[8d33]STA a:SoundEffect_State_Counter
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_LadderDropped_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8d36]SoundEffect_LadderDropped_OnTick:; [$8d36]
[8d36]LDA #$07
[8d38]STA a:NOISE_VOL
[8d3b]LDA a:SoundEffect_State_Counter
[8d3e]CMP #$03
[8d40]BNE @_updateCheckCounter
[8d42]LDA #$0f
[8d44]STA a:NOISE_LO
[8d47]LDA #$18
[8d49]STA a:NOISE_HI
[8d4c]@_updateCheckCounter:; [$8d4c]
[8d4c]DEC a:SoundEffect_State_Counter
[8d4f]BNE @_return
[8d51]LDA #$05
[8d53]STA a:NOISE_LO
[8d56]LDA #$18
[8d58]STA a:NOISE_HI
[8d5b]JMP Sound_ResetCurrentSound
[8d5e]@_return:; [$8d5e]
[8d5e]RTS
;============================================================================
; TODO: Document SoundEffect_ShowPlayerMenu_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8d5f]SoundEffect_ShowPlayerMenu_Setup:; [$8d5f]
[8d5f]LDA #$23
[8d61]STA a:SoundEffect_TicksRemaining_1_
[8d64]LDA #$00
[8d66]STA a:SoundEffect_State_Counter
[8d69]STA a:SoundEffect_State_0128
[8d6c]LDA #$20
[8d6e]STA a:SoundEffect_State_0129
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_ShowPlayerMenu_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8d71]SoundEffect_ShowPlayerMenu_OnTick:; [$8d71]
[8d71]DEC a:SoundEffect_State_0129
[8d74]LDA a:SoundEffect_State_0129
[8d77]LSR A
[8d78]BNE @_play
[8d7a]LDA #$10
[8d7c]STA a:SQ2_VOL
[8d7f]JMP Sound_ResetCurrentSound
[8d82]@_play:; [$8d82]
[8d82]ORA #$d0
[8d84]STA a:SQ2_VOL
[8d87]LDA #$00
[8d89]STA a:SQ2_SWEEP
[8d8c]LDA a:SoundEffect_State_0128
[8d8f]AND #$03
[8d91]TAX
[8d92]LDA SOUNDEFFECT_SHOW_PLAYER_MENU_NOTES,X
[8d95]JSR SoundEffect_SetNote
[8d98]LDA a:SoundEffect_Note_Low
[8d9b]SEC
[8d9c]SBC a:SoundEffect_State_Counter
[8d9f]STA a:SQ2_LO
[8da2]LDA a:SoundEffect_Note_High
[8da5]STA a:SQ2_HI
[8da8]INC a:SoundEffect_State_Counter
[8dab]INC a:SoundEffect_State_Counter
[8dae]INC a:SoundEffect_State_Counter
[8db1]INC a:SoundEffect_State_0128
[8db4]RTS
[8db5]SOUNDEFFECT_SHOW_PLAYER_MENU_NOTES:; [$8db5]
[8db5].byte $5b,$4f,$43,$37; [$8db5] byte
;============================================================================
; TODO: Document SoundEffect_GoldAmountChanged_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8db9]SoundEffect_GoldAmountChanged_Setup:; [$8db9]
[8db9]LDA #$0a
[8dbb]STA a:SoundEffect_TicksRemaining_1_
[8dbe]LDA #$02
[8dc0]STA a:SoundEffect_State_Counter
[8dc3]LDA #$82
[8dc5]STA a:SQ2_VOL
[8dc8]LDA #$00
[8dca]STA a:SQ2_SWEEP
[8dcd]LDA #$28
[8dcf]STA a:SQ2_LO
[8dd2]LDA #$10
[8dd4]STA a:SQ2_HI
[8dd7]RTS
;============================================================================
; TODO: Document SoundEffect_Maybe_UseSpecialItem2_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8dd8]SoundEffect_Maybe_UseSpecialItem2_Setup:; [$8dd8]
[8dd8]LDA #$44
[8dda]STA a:SoundEffect_TicksRemaining_1_
[8ddd]STA a:SoundEffect_TicksRemaining_3_
[8de0]LDA #$00
[8de2]STA a:SoundEffect_State_Counter
[8de5]STA a:SoundEffect_State_0128
[8de8]STA a:SoundEffect_State_0129
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_Maybe_UseSpecialItem2_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8deb]SoundEffect_Maybe_UseSpecialItem2_OnTick:; [$8deb]
[8deb]LDA a:SoundEffect_State_0129
[8dee]LSR A
[8def]TAX
[8df0]LDA SOUNDEFFECT_SPECIALITEM2_NOISE_VOL,X
[8df3]BNE @_hasNoise
[8df5]LDA #$10
[8df7]STA a:SQ2_VOL
[8dfa]STA a:NOISE_VOL
[8dfd]JMP Sound_ResetCurrentSound
[8e00]@_hasNoise:; [$8e00]
[8e00]ORA #$90
[8e02]STA a:NOISE_VOL
[8e05]STA a:SQ2_VOL
[8e08]LDA #$00
[8e0a]STA a:SQ2_SWEEP
[8e0d]LDA a:SoundEffect_State_Counter
[8e10]ASL A
[8e11]STA a:SoundEffect_State_0128
[8e14]LDX a:SoundEffect_State_Counter
[8e17]LDA SOUNDEFFECT_SPECIALITEM2_NOTES,X
[8e1a]CMP #$ff
[8e1c]BEQ @_hasNotes
[8e1e]JSR SoundEffect_SetNote
[8e21]LDA a:SoundEffect_Note_Low
[8e24]CLC
[8e25]ADC a:SoundEffect_State_0128
[8e28]STA a:SQ2_LO
[8e2b]LDA a:SoundEffect_Note_High
[8e2e]STA a:SQ2_HI
[8e31]LDA a:SoundEffect_State_Counter
[8e34]AND #$01
[8e36]TAX
[8e37]LDA SOUNDEFFECT_SPECIALITEM2_NOISE_LO,X
[8e3a]CLC
[8e3b]ADC a:SoundEffect_State_Counter
[8e3e]AND #$0f
[8e40]STA a:NOISE_LO
[8e43]LDA #$00
[8e45]STA a:NOISE_HI
[8e48]INC a:SoundEffect_State_Counter
[8e4b]LDA a:SoundEffect_State_Counter
[8e4e]AND #$07
[8e50]BNE @_return
[8e52]INC a:SoundEffect_State_0129
[8e55]@_return:; [$8e55]
[8e55]RTS
[8e56]@_hasNotes:; [$8e56]
[8e56]LDA #$00
[8e58]STA a:SoundEffect_State_Counter
[8e5b]INC a:SoundEffect_State_0129
[8e5e]RTS
[8e5f]SOUNDEFFECT_SPECIALITEM2_NOISE_VOL:; [$8e5f]
[8e5f].byte $0f,$0d,$09,$05,$00; [$8e5f] byte
[8e64]SOUNDEFFECT_SPECIALITEM2_NOISE_LO:; [$8e64]
[8e64].byte $0c,$07; [$8e64] byte
[8e66]SOUNDEFFECT_SPECIALITEM2_NOTES:; [$8e66]
[8e66].byte $24,$27,$2b,$30,$48,$4b,$4f,$54; [$8e66] byte
[8e6e].byte $33,$44,$52,$57,$57,$5c,$62,$ff; [$8e6e] byte
;============================================================================
; TODO: Document SoundEffect_BreadTouched_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8e76]SoundEffect_BreadTouched_Setup:; [$8e76]
[8e76]LDA #$18
[8e78]STA a:SoundEffect_TicksRemaining_1_
[8e7b]LDA #$ff
[8e7d]STA a:SoundEffect_State_Counter
[8e80]LDA #$00
[8e82]STA a:SoundEffect_State_0128
[8e85]STA a:SoundEffect_State_0129
;
; v-- Fall through --v
;
;============================================================================
; TODO: Document SoundEffect_BreadTouched_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8e88]SoundEffect_BreadTouched_OnTick:; [$8e88]
[8e88]LDA a:SoundEffect_State_0128
[8e8b]LSR A
[8e8c]LSR A
[8e8d]TAX
[8e8e]LDA SOUNDEFFECT_BREADTOUCHED_SQ2_HI,X
[8e91]STA a:SoundEffect_State_0129
[8e94]BNE @_play
[8e96]LDA #$10
[8e98]STA a:SQ2_VOL
[8e9b]JMP Sound_ResetCurrentSound
[8e9e]@_play:; [$8e9e]
[8e9e]LDA #$df
[8ea0]STA a:SQ2_VOL
[8ea3]LDA #$00
[8ea5]STA a:SQ2_SWEEP
[8ea8]LDA a:SoundEffect_State_Counter
[8eab]SEC
[8eac]SBC a:SoundEffect_State_0129
[8eaf]STA a:SoundEffect_State_Counter
[8eb2]STA a:SQ2_LO
[8eb5]TXA
[8eb6]AND #$03
[8eb8]TAX
[8eb9]LDA SOUNDEFFECT_BREADTOUCHED_SQ2_HI,X
[8ebc]AND #$01
[8ebe]STA a:SQ2_HI
[8ec1]INC a:SoundEffect_State_0128
[8ec4]RTS
[8ec5]SOUNDEFFECT_BREADTOUCHED_SQ2_HI:; [$8ec5]
[8ec5].byte $1f,$36,$63,$76,$c8,$00; [$8ec5] byte
;============================================================================
; TODO: Document SoundEffect_CoinTouched_Setup
;
; INPUTS:
; None.
;
; OUTPUTS:
; TODO
;============================================================================
[8ecb]SoundEffect_CoinTouched_Setup:; [$8ecb]
[8ecb]JMP SoundEffect_CoinTouchedCommon_Setup
;============================================================================
; TODO: Document SoundEffect_CoinTouched_OnTick
;
; INPUTS:
; None.
;
; OUTPUTS:
; A
;============================================================================
[8ece]SoundEffect_CoinTouched_OnTick:; [$8ece]
[8ece]JMP SoundEffect_CoinTouchedCommon_OnTick
[8ed1]SoundEffect_SetNote:; [$8ed1]
[8ed1]SEC
[8ed2]SBC #$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]LDY #$01
[8ed6]SEC
[8ed7]@_loop:; [$8ed7]
[8ed7]SBC #$0c
[8ed9]INY
[8eda]BCS @_loop
[8edc]DEY
[8edd]ADC #$0d
[8edf]ASL A
[8ee0]TAX
[8ee1]LDA AUDIO_NOTES,X
[8ee4]STA a:SoundEffect_Note_Low
[8ee7]LDA AUDIO_NOTES+1,X
[8eea]STA a:SoundEffect_Note_High
;
; Convert to the note in the right octave based on
; the starting value.
;
[8eed]@_octaveLoop:; [$8eed]
[8eed]DEY
[8eee]BEQ @_return
[8ef0]LSR a:SoundEffect_Note_High
[8ef3]ROR a:SoundEffect_Note_Low
[8ef6]JMP @_octaveLoop
[8ef9]@_return:; [$8ef9]
[8ef9]RTS
;============================================================================
; Music lookup table.
;
; Entries are groups of 2-byte addresses containing the
; music data for each channel.
;
; XREFS:
;
Music_Load
;============================================================================
[8efa]MSCRIPTS_LOOKUP:; [$8efa]
[8efa].byte $ff; [$8efa] byte
[8efb]MSCRIPTS_TITLESCREEN:; [$8efb]
[8efb].word MSCRIPT_TITLESCREEN_SQ1; [0]:
[8efd].word MSCRIPT_TITLESCREEN_SQ2; [1]:
[8eff].word MSCRIPT_TITLESCREEN_TRI; [2]:
[8f01].word BYTE_PRG5__928e; [3]:
[8f03]MSCRIPTS_DAYBREAK:; [$8f03]
[8f03].word MSCRIPT_DAYBREAK_SQ1; [0]:
[8f05].word MSCRIPT_DAYBREAK_SQ2; [1]:
[8f07].word MSCRIPT_DAYBREAK_TRI; [2]:
[8f09].word MSCRIPT_DAYBREAK_NOISE; [3]:
[8f0b]MSCRIPTS_APOLUNE:; [$8f0b]
[8f0b].word MSCRIPT_APOLUNE_SQ1; [0]:
[8f0d].word MSCRIPT_APOLUNE_SQ2; [1]:
[8f0f].word MSCRIPT_APOLUNE_TRI; [2]:
[8f11].word MSCRIPT_APOLUNE_NOISE; [3]:
[8f13]MSCRIPTS_CONFLATE:; [$8f13]
[8f13].word MSCRIPT_CONFLATE_SQ1; [0]:
[8f15].word MSCRIPT_CONFLATE_SQ2; [1]:
[8f17].word MSCRIPT_CONFLATE_TRI; [2]:
[8f19].word MSCRIPT_CONFLATE_NOISE; [3]:
[8f1b]MSCRIPTS_FOREPAW:; [$8f1b]
[8f1b].word MSCRIPT_FOREPAW_SQ1; [0]:
[8f1d].word MSCRIPT_FOREPAW_SQ2; [1]:
[8f1f].word MSCRIPT_FOREPAW_TRI; [2]:
[8f21].word MSCRIPT_FOREPAW_NOISE; [3]:
[8f23]MSCRIPTS_TOWER:; [$8f23]
[8f23].word MSCRIPT_TOWER_SQ1; [0]:
[8f25].word MSCRIPT_TOWER_SQ2; [1]:
[8f27].word MSCRIPT_TOWER_TRI; [2]:
[8f29].word MSCRIPT_TOWER_NOISE; [3]:
[8f2b]MSCRIPTS_EOLIS:; [$8f2b]
[8f2b].word MSCRIPT_EOLIS_SQ1; [0]:
[8f2d].word MSCRIPT_EOLIS_SQ2; [1]:
[8f2f].word MSCRIPT_EOLIS_TRI; [2]:
[8f31].word MSCRIPT_EOLIS_NOISE; [3]:
[8f33]MSCRIPTS_MANTRA:; [$8f33]
[8f33].word MSCRIPT_MANTRA_SQ1; [0]:
[8f35].word MSCRIPT_MANTRA_SQ2; [1]:
[8f37].word MSCRIPT_MANTRA_TRI; [2]:
[8f39].word MSCRIPT_MANTRA_NOISE; [3]:
[8f3b]MSCRIPTS_MASCON_VICTIM:; [$8f3b]
[8f3b].word MSCRIPT_MASCON_VICTIM_SQ1; [0]:
[8f3d].word MSCRIPT_MASCON_VICTIM_SQ2; [1]:
[8f3f].word MSCRIPT_MASCON_VICTIM_TRI; [2]:
[8f41].word MSCRIPT_MASCON_VICTIM_NOISE; [3]:
[8f43]MSCRIPTS_BOSS:; [$8f43]
[8f43].word MSCRIPT_BOSS_SQ1; [0]:
[8f45].word MSCRIPT_BOSS_SQ2; [1]:
[8f47].word MSCRIPT_BOSS_TRI; [2]:
[8f49].word MSCRIPT_BOSS_NOISE; [3]:
[8f4b]MSCRIPTS_HOURGLASS:; [$8f4b]
[8f4b].word MSCRIPT_HOURGLASS_SQ1; [0]:
[8f4d].word MSCRIPT_HOURGLASS_SQ2; [1]:
[8f4f].word MSCRIPT_HOURGLASS_TRI; [2]:
[8f51].word MSCRIPT_HOURGLASS_NOISE; [3]:
[8f53]MSCRIPTS_ENDING:; [$8f53]
[8f53].word MSCRIPT_ENDING_SQ1; [0]:
[8f55].word MSCRIPT_ENDING_SQ2; [1]:
[8f57].word MSCRIPT_ENDING_TRI; [2]:
[8f59].word MSCRIPT_ENDING_NOISE; [3]:
[8f5b]MSCRIPTS_KINGS_ROOM:; [$8f5b]
[8f5b].word MSCRIPT_KINGS_ROOM_SQ1; [0]:
[8f5d].word MSCRIPT_KINGS_ROOM_SQ2; [1]:
[8f5f].word MSCRIPT_KINGS_ROOM_TRI; [2]:
[8f61].word MSCRIPT_KINGS_ROOM_NOISE; [3]:
[8f63]MSCRIPTS_TEMPLE:; [$8f63]
[8f63].word MSCRIPT_TEMPLE_SQ1; [0]:
[8f65].word MSCRIPT_TEMPLE_SQ2; [1]:
[8f67].word MSCRIPT_TEMPLE_TRI; [2]:
[8f69].word MSCRIPT_TEMPLE_NOISE; [3]:
[8f6b]MSCRIPTS_SHOP:; [$8f6b]
[8f6b].word MSCRIPT_SHOP_SQ1; [0]:
[8f6d].word MSCRIPT_SHOP_SQ2; [1]:
[8f6f].word MSCRIPT_SHOP_TRI; [2]:
[8f71].word MSCRIPT_SHOP_NOISE; [3]:
[8f73]MSCRIPTS_EVIL_FORTRESS:; [$8f73]
[8f73].word MSCRIPT_EVIL_FORTRESS_SQ1; [0]:
[8f75].word MSCRIPT_EVIL_FORTRESS_SQ2; [1]:
[8f77].word MSCRIPT_EVIL_FORTRESS_TRI; [2]:
[8f79].word MSCRIPT_EVIL_FORTRESS_NOISE; [3]:
[8f7b].byte $ff; [$8f7b] byte
;============================================================================
; Music for the start screen.
;
; XREFS:
;
MSCRIPTS_TITLESCREEN [$PRG5::8efb]
;============================================================================
[8f7c]MSCRIPT_TITLESCREEN_SQ1:; [$8f7c]
[8f7c].byte MSCRIPT_OP_SET_GLOBAL_TRANSPOSE; Op: Set global transpose
[8f7d].byte $ff; '- Down 1 semitone
[8f7e].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[8f7f].byte $00; '- Reduce volume by 0
[8f80].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[8f81].byte $d0; '- Duty cycle 3
Constant volume/envelope
[8f82].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[8f83].byte $00; '- Mode 0: Linear decay
[8f84].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[8f85].byte $f4; '- Down 1 octave
[8f86].byte $86; Note length: 6
[8f87].byte $1f; F#2
[8f88].byte $21; G#2
[8f89].byte $23; A#2
[8f8a].byte $24; B2
[8f8b].byte $26; C#3
[8f8c].byte $28; D#3
[8f8d].byte $29; E3
[8f8e].byte $2a; F3
[8f8f].byte $2b; F#3
[8f90].byte $2d; G#3
[8f91].byte $2f; A#3
[8f92].byte $30; B3
[8f93].byte $32; C#4
[8f94].byte $34; D#4
[8f95].byte $35; E4
[8f96].byte $36; F4
[8f97].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[8f98].byte $d0; '- Duty cycle 3
Constant volume/envelope
[8f99].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[8f9a].byte $02; '- 2 iterations
[8f9b].byte $b0; Note length: 48
[8f9c].byte $37; F#4
[8f9d].byte $3c; B4
[8f9e].byte $3e; C#5
[8f9f].byte $45; G#5
[8fa0].byte $c8; Note length: 72
[8fa1].byte $43; F#5
[8fa2].byte $8c; Note length: 12
[8fa3].byte $3c; B4
[8fa4].byte $3e; C#5
[8fa5].byte $3f; D5
[8fa6].byte $3c; B4
[8fa7].byte $3f; D5
[8fa8].byte $3e; C#5
[8fa9].byte $00; Rest
[8faa].byte $3b; A#4
[8fab].byte $98; Note length: 24
[8fac].byte $37; F#4
[8fad].byte MSCRIPT_OP_END_LOOP; Op: End loop
[8fae].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[8faf].byte $02; '- 2 iterations
[8fb0].byte $a4; Note length: 36
[8fb1].byte $43; F#5
[8fb2].byte $8c; Note length: 12
[8fb3].byte $3c; B4
[8fb4].byte $b0; Note length: 48
[8fb5].byte $3c; B4
[8fb6].byte $8c; Note length: 12
[8fb7].byte $41; E5
[8fb8].byte $41; E5
[8fb9].byte $40; D#5
[8fba].byte $a4; Note length: 36
[8fbb].byte $3c; B4
[8fbc].byte $8c; Note length: 12
[8fbd].byte $37; F#4
[8fbe].byte $39; G#4
[8fbf].byte $a4; Note length: 36
[8fc0].byte $3a; A4
[8fc1].byte $8c; Note length: 12
[8fc2].byte $3a; A4
[8fc3].byte $39; G#4
[8fc4].byte $3a; A4
[8fc5].byte $39; G#4
[8fc6].byte $bc; Note length: 60
[8fc7].byte $37; F#4
[8fc8].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[8fc9].byte $01; '- 1 loops
[8fca].byte $86; Note length: 6
[8fcb].byte $37; F#4
[8fcc].byte $39; G#4
[8fcd].byte $3b; A#4
[8fce].byte $3c; B4
[8fcf].byte $3e; C#5
[8fd0].byte $40; D#5
[8fd1].byte $41; E5
[8fd2].byte $42; F5
[8fd3].byte MSCRIPT_OP_END_LOOP; Op: End loop
[8fd4].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[8fd5].byte $02; '- 2 loops
[8fd6].byte $86; Note length: 6
[8fd7].byte $3c; B4
[8fd8].byte $3b; A#4
[8fd9].byte $3c; B4
[8fda].byte $3e; C#5
[8fdb].byte $40; D#5
[8fdc].byte $41; E5
[8fdd].byte $42; F5
[8fde].byte $43; F#5
[8fdf].byte $b0; Note length: 48
[8fe0].byte $44; G5
[8fe1].byte $46; A5
[8fe2].byte $c8; Note length: 72
[8fe3].byte $43; F#5
[8fe4].byte $8c; Note length: 12
[8fe5].byte $3c; B4
[8fe6].byte $3e; C#5
[8fe7].byte $3f; D5
[8fe8].byte $3f; D5
[8fe9].byte $41; E5
[8fea].byte $3e; C#5
[8feb].byte $00; Rest
[8fec].byte $3c; B4
[8fed].byte $3a; A4
[8fee].byte $98; Note length: 24
[8fef].byte $37; F#4
[8ff0].byte $86; Note length: 6
[8ff1].byte $38; G4
[8ff2].byte $37; F#4
[8ff3].byte $8c; Note length: 12
[8ff4].byte $35; E4
[8ff5].byte $92; Note length: 18
[8ff6].byte $37; F#4
[8ff7].byte $86; Note length: 6
[8ff8].byte $30; B3
[8ff9].byte $33; D4
[8ffa].byte $37; F#4
[8ffb].byte $3c; B4
[8ffc].byte $37; F#4
[8ffd].byte $3c; B4
[8ffe].byte $3f; D5
[8fff].byte $b0; Note length: 48
[9000].byte $44; G5
[9001].byte $46; A5
[9002].byte $bc; Note length: 60
[9003].byte $43; F#5
[9004].byte $8c; Note length: 12
[9005].byte $3c; B4
[9006].byte $3c; B4
[9007].byte $3e; C#5
[9008].byte $3f; D5
[9009].byte $3f; D5
[900a].byte $41; E5
[900b].byte $3e; C#5
[900c].byte $00; Rest
[900d].byte $3c; B4
[900e].byte $98; Note length: 24
[900f].byte $3a; A4
[9010].byte $8c; Note length: 12
[9011].byte $3f; D5
[9012].byte $3f; D5
[9013].byte $41; E5
[9014].byte $3e; C#5
[9015].byte $00; Rest
[9016].byte $3c; B4
[9017].byte $3a; A4
[9018].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[9019].byte $cc; '- 204 ticks
[901a].byte $3c; B4
[901b].byte $d4; Note length: 84
[901c].byte $00; Rest
[901d].byte $ec; Note length: 108
[901e].byte $3c; B4
[901f].byte MSCRIPT_OP_END; Op: End
[9020]MSCRIPT_TITLESCREEN_SQ2:; [$9020]
[9020].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9021].byte $03; '- Reduce volume by 3
[9022].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9023].byte $90; '- Duty cycle 2
Constant volume/envelope
[9024].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9025].byte $00; '- Mode 0: Linear decay
[9026].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9027].byte $02; '- 2
[9028].byte $98; Note length: 24
[9029].byte $00; Rest
[902a].byte $86; Note length: 6
[902b].byte $21; A2
[902c].byte $23; B2
[902d].byte $24; C3
[902e].byte $26; D3
[902f].byte $28; E3
[9030].byte $29; F3
[9031].byte $2b; G3
[9032].byte $2d; A3
[9033].byte $2f; B3
[9034].byte $30; C4
[9035].byte $32; D4
[9036].byte $33; D#4
[9037].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9038].byte $00; '- 0
[9039].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[903a].byte $50; '- Duty cycle 1
Constant volume/envelope
[903b].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[903c].byte $02; '- 2 iterations
[903d].byte $86; Note length: 6
[903e].byte $34; E4
[903f].byte $34; E4
[9040].byte $34; E4
[9041].byte $00; Rest
[9042].byte $3c; C5
[9043].byte $2b; G3
[9044].byte $34; E4
[9045].byte $34; E4
[9046].byte $34; E4
[9047].byte $34; E4
[9048].byte $34; E4
[9049].byte $00; Rest
[904a].byte $3c; C5
[904b].byte $2b; G3
[904c].byte $34; E4
[904d].byte $34; E4
[904e].byte $35; F4
[904f].byte $35; F4
[9050].byte $35; F4
[9051].byte $00; Rest
[9052].byte $3c; C5
[9053].byte $2d; A3
[9054].byte $35; F4
[9055].byte $35; F4
[9056].byte $35; F4
[9057].byte $35; F4
[9058].byte $35; F4
[9059].byte $00; Rest
[905a].byte $3c; C5
[905b].byte $2d; A3
[905c].byte $35; F4
[905d].byte $35; F4
[905e].byte $34; E4
[905f].byte $34; E4
[9060].byte $34; E4
[9061].byte $00; Rest
[9062].byte $3c; C5
[9063].byte $2b; G3
[9064].byte $34; E4
[9065].byte $34; E4
[9066].byte $34; E4
[9067].byte $30; C4
[9068].byte $2b; G3
[9069].byte $30; C4
[906a].byte $34; E4
[906b].byte $34; E4
[906c].byte $37; G4
[906d].byte $37; G4
[906e].byte $2c; G#3
[906f].byte $30; C4
[9070].byte $33; D#4
[9071].byte $38; G#4
[9072].byte $3c; C5
[9073].byte $38; G#4
[9074].byte $2b; G3
[9075].byte $00; Rest
[9076].byte $00; Rest
[9077].byte $00; Rest
[9078].byte $22; A#2
[9079].byte $26; D3
[907a].byte $2b; G3
[907b].byte $2f; B3
[907c].byte $32; D4
[907d].byte $2f; B3
[907e].byte MSCRIPT_OP_END_LOOP; Op: End loop
[907f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9080].byte $02; '- 2 iterations
[9081].byte $86; Note length: 6
[9082].byte $34; E4
[9083].byte $37; G4
[9084].byte $2b; G3
[9085].byte $30; C4
[9086].byte $34; E4
[9087].byte $37; G4
[9088].byte $2b; G3
[9089].byte $30; C4
[908a].byte $34; E4
[908b].byte $37; G4
[908c].byte $2b; G3
[908d].byte $30; C4
[908e].byte $34; E4
[908f].byte $37; G4
[9090].byte $2b; G3
[9091].byte $30; C4
[9092].byte $35; F4
[9093].byte $37; G4
[9094].byte $2b; G3
[9095].byte $30; C4
[9096].byte $34; E4
[9097].byte $37; G4
[9098].byte $2b; G3
[9099].byte $30; C4
[909a].byte $34; E4
[909b].byte $37; G4
[909c].byte $2b; G3
[909d].byte $30; C4
[909e].byte $34; E4
[909f].byte $37; G4
[90a0].byte $30; C4
[90a1].byte $34; E4
[90a2].byte $27; D#3
[90a3].byte $2b; G3
[90a4].byte $2e; A#3
[90a5].byte $33; D#4
[90a6].byte $37; G4
[90a7].byte $33; D#4
[90a8].byte $2e; A#3
[90a9].byte $2b; G3
[90aa].byte $29; F3
[90ab].byte $2d; A3
[90ac].byte $30; C4
[90ad].byte $35; F4
[90ae].byte $30; C4
[90af].byte $2d; A3
[90b0].byte $2b; G3
[90b1].byte $26; D3
[90b2].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[90b3].byte $01; '- 1 loops
[90b4].byte $86; Note length: 6
[90b5].byte $2b; G3
[90b6].byte $30; C4
[90b7].byte $34; E4
[90b8].byte $30; C4
[90b9].byte $2b; G3
[90ba].byte $30; C4
[90bb].byte $34; E4
[90bc].byte $30; C4
[90bd].byte $34; E4
[90be].byte $35; F4
[90bf].byte $37; G4
[90c0].byte $39; A4
[90c1].byte $3b; B4
[90c2].byte $3c; C5
[90c3].byte $3e; D5
[90c4].byte $3f; D#5
[90c5].byte MSCRIPT_OP_END_LOOP; Op: End loop
[90c6].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[90c7].byte $02; '- 2 loops
[90c8].byte $86; Note length: 6
[90c9].byte $2b; G3
[90ca].byte $30; C4
[90cb].byte $34; E4
[90cc].byte $30; C4
[90cd].byte $2b; G3
[90ce].byte $30; C4
[90cf].byte $34; E4
[90d0].byte $30; C4
[90d1].byte $34; E4
[90d2].byte $33; D#4
[90d3].byte $34; E4
[90d4].byte $35; F4
[90d5].byte $37; G4
[90d6].byte $39; A4
[90d7].byte $3b; B4
[90d8].byte $3c; C5
[90d9].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[90da].byte $02; '- 2 iterations
[90db].byte $86; Note length: 6
[90dc].byte $2c; G#3
[90dd].byte $30; C4
[90de].byte $33; D#4
[90df].byte $38; G#4
[90e0].byte $3c; C5
[90e1].byte $3f; D#5
[90e2].byte $3c; C5
[90e3].byte $38; G#4
[90e4].byte $2e; A#3
[90e5].byte $32; D4
[90e6].byte $35; F4
[90e7].byte $3a; A#4
[90e8].byte $3e; D5
[90e9].byte $41; F5
[90ea].byte $3e; D5
[90eb].byte $3a; A#4
[90ec].byte $24; C3
[90ed].byte $28; E3
[90ee].byte $2b; G3
[90ef].byte $30; C4
[90f0].byte $34; E4
[90f1].byte $37; G4
[90f2].byte $3c; C5
[90f3].byte $40; E5
[90f4].byte $3c; C5
[90f5].byte $37; G4
[90f6].byte $34; E4
[90f7].byte $30; C4
[90f8].byte $2b; G3
[90f9].byte $28; E3
[90fa].byte $24; C3
[90fb].byte $28; E3
[90fc].byte $2c; G#3
[90fd].byte $30; C4
[90fe].byte $33; D#4
[90ff].byte $38; G#4
[9100].byte $3c; C5
[9101].byte $38; G#4
[9102].byte $35; F4
[9103].byte $32; D4
[9104].byte $2e; A#3
[9105].byte $29; F3
[9106].byte $2e; A#3
[9107].byte $32; D4
[9108].byte $35; F4
[9109].byte $32; D4
[910a].byte $2e; A#3
[910b].byte $32; D4
[910c].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[910d].byte $01; '- 1 loops
[910e].byte $8c; Note length: 12
[910f].byte $33; D#4
[9110].byte $86; Note length: 6
[9111].byte $35; F4
[9112].byte $33; D#4
[9113].byte $8c; Note length: 12
[9114].byte $30; C4
[9115].byte $30; C4
[9116].byte $86; Note length: 6
[9117].byte $24; C3
[9118].byte $27; D#3
[9119].byte $2b; G3
[911a].byte $30; C4
[911b].byte $33; D#4
[911c].byte $30; C4
[911d].byte $2b; G3
[911e].byte $27; D#3
[911f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9120].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9121].byte $02; '- 2 loops
[9122].byte $86; Note length: 6
[9123].byte $33; D#4
[9124].byte $38; G#4
[9125].byte $3c; C5
[9126].byte $38; G#4
[9127].byte $33; D#4
[9128].byte $38; G#4
[9129].byte $8c; Note length: 12
[912a].byte $3a; A#4
[912b].byte $00; Rest
[912c].byte $35; F4
[912d].byte $37; G4
[912e].byte $92; Note length: 18
[912f].byte $34; E4
[9130].byte $86; Note length: 6
[9131].byte $30; C4
[9132].byte $2b; G3
[9133].byte $30; C4
[9134].byte $28; E3
[9135].byte $2b; G3
[9136].byte $24; C3
[9137].byte $28; E3
[9138].byte $34; E4
[9139].byte $30; C4
[913a].byte $2b; G3
[913b].byte $30; C4
[913c].byte $28; E3
[913d].byte $2b; G3
[913e].byte $24; C3
[913f].byte $28; E3
[9140].byte $32; D4
[9141].byte $2e; A#3
[9142].byte $29; F3
[9143].byte $2e; A#3
[9144].byte $26; D3
[9145].byte $29; F3
[9146].byte $22; A#2
[9147].byte $26; D3
[9148].byte $32; D4
[9149].byte $2e; A#3
[914a].byte $29; F3
[914b].byte $2e; A#3
[914c].byte $26; D3
[914d].byte $29; F3
[914e].byte $22; A#2
[914f].byte $26; D3
[9150].byte $30; C4
[9151].byte $2c; G#3
[9152].byte $27; D#3
[9153].byte $2c; G#3
[9154].byte $24; C3
[9155].byte $27; D#3
[9156].byte $20; G#2
[9157].byte $24; C3
[9158].byte $33; D#4
[9159].byte $30; C4
[915a].byte $2c; G#3
[915b].byte $30; C4
[915c].byte $27; D#3
[915d].byte $2c; G#3
[915e].byte $ec; Note length: 108
[915f].byte $27; D#3
[9160].byte MSCRIPT_OP_END; Op: End
[9161]MSCRIPT_TITLESCREEN_TRI:; [$9161]
[9161].byte $b0; Note length: 48
[9162].byte $00; Rest
[9163].byte $86; Note length: 6
[9164].byte $23; B4
[9165].byte $24; C5
[9166].byte $26; D5
[9167].byte $28; E5
[9168].byte $29; F5
[9169].byte $2b; G5
[916a].byte $2d; A5
[916b].byte $2f; B5
[916c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[916d].byte $02; '- 2 iterations
[916e].byte $86; Note length: 6
[916f].byte $18; C4
[9170].byte $18; C4
[9171].byte $18; C4
[9172].byte $18; C4
[9173].byte $18; C4
[9174].byte $00; Rest
[9175].byte $18; C4
[9176].byte $18; C4
[9177].byte $18; C4
[9178].byte $18; C4
[9179].byte $18; C4
[917a].byte $18; C4
[917b].byte $18; C4
[917c].byte $00; Rest
[917d].byte $18; C4
[917e].byte $18; C4
[917f].byte $18; C4
[9180].byte $18; C4
[9181].byte $18; C4
[9182].byte $18; C4
[9183].byte $18; C4
[9184].byte $00; Rest
[9185].byte $18; C4
[9186].byte $18; C4
[9187].byte $18; C4
[9188].byte $18; C4
[9189].byte $18; C4
[918a].byte $18; C4
[918b].byte $18; C4
[918c].byte $00; Rest
[918d].byte $18; C4
[918e].byte $18; C4
[918f].byte $18; C4
[9190].byte $18; C4
[9191].byte $18; C4
[9192].byte $18; C4
[9193].byte $18; C4
[9194].byte $00; Rest
[9195].byte $18; C4
[9196].byte $18; C4
[9197].byte $18; C4
[9198].byte $18; C4
[9199].byte $18; C4
[919a].byte $18; C4
[919b].byte $18; C4
[919c].byte $00; Rest
[919d].byte $18; C4
[919e].byte $18; C4
[919f].byte $14; G#3
[91a0].byte $14; G#3
[91a1].byte $20; G#4
[91a2].byte $20; G#4
[91a3].byte $14; G#3
[91a4].byte $14; G#3
[91a5].byte $13; G3
[91a6].byte $00; Rest
[91a7].byte $00; Rest
[91a8].byte $00; Rest
[91a9].byte $1f; G4
[91aa].byte $1f; G4
[91ab].byte $13; G3
[91ac].byte $13; G3
[91ad].byte $13; G3
[91ae].byte $13; G3
[91af].byte MSCRIPT_OP_END_LOOP; Op: End loop
[91b0].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[91b1].byte $02; '- 2 iterations
[91b2].byte $86; Note length: 6
[91b3].byte $18; C4
[91b4].byte $18; C4
[91b5].byte $18; C4
[91b6].byte $18; C4
[91b7].byte $18; C4
[91b8].byte $00; Rest
[91b9].byte $18; C4
[91ba].byte $18; C4
[91bb].byte $18; C4
[91bc].byte $18; C4
[91bd].byte $18; C4
[91be].byte $18; C4
[91bf].byte $18; C4
[91c0].byte $00; Rest
[91c1].byte $18; C4
[91c2].byte $18; C4
[91c3].byte $18; C4
[91c4].byte $18; C4
[91c5].byte $18; C4
[91c6].byte $18; C4
[91c7].byte $18; C4
[91c8].byte $00; Rest
[91c9].byte $18; C4
[91ca].byte $18; C4
[91cb].byte $18; C4
[91cc].byte $18; C4
[91cd].byte $18; C4
[91ce].byte $18; C4
[91cf].byte $18; C4
[91d0].byte $00; Rest
[91d1].byte $18; C4
[91d2].byte $18; C4
[91d3].byte $1b; D#4
[91d4].byte $1b; D#4
[91d5].byte $1b; D#4
[91d6].byte $1b; D#4
[91d7].byte $1b; D#4
[91d8].byte $00; Rest
[91d9].byte $1b; D#4
[91da].byte $1b; D#4
[91db].byte $1d; F4
[91dc].byte $1d; F4
[91dd].byte $1d; F4
[91de].byte $1d; F4
[91df].byte $1d; F4
[91e0].byte $00; Rest
[91e1].byte $1d; F4
[91e2].byte $1d; F4
[91e3].byte $18; C4
[91e4].byte $18; C4
[91e5].byte $18; C4
[91e6].byte $18; C4
[91e7].byte $18; C4
[91e8].byte $00; Rest
[91e9].byte $18; C4
[91ea].byte $18; C4
[91eb].byte $18; C4
[91ec].byte $18; C4
[91ed].byte $18; C4
[91ee].byte $18; C4
[91ef].byte $18; C4
[91f0].byte $00; Rest
[91f1].byte $18; C4
[91f2].byte $18; C4
[91f3].byte MSCRIPT_OP_END_LOOP; Op: End loop
[91f4].byte $14; G#3
[91f5].byte $14; G#3
[91f6].byte $14; G#3
[91f7].byte $14; G#3
[91f8].byte $14; G#3
[91f9].byte $14; G#3
[91fa].byte $14; G#3
[91fb].byte $14; G#3
[91fc].byte $16; A#3
[91fd].byte $16; A#3
[91fe].byte $16; A#3
[91ff].byte $16; A#3
[9200].byte $16; A#3
[9201].byte $16; A#3
[9202].byte $16; A#3
[9203].byte $16; A#3
[9204].byte $18; C4
[9205].byte $18; C4
[9206].byte $18; C4
[9207].byte $18; C4
[9208].byte $18; C4
[9209].byte $00; Rest
[920a].byte $18; C4
[920b].byte $18; C4
[920c].byte $18; C4
[920d].byte $18; C4
[920e].byte $18; C4
[920f].byte $18; C4
[9210].byte $18; C4
[9211].byte $00; Rest
[9212].byte $18; C4
[9213].byte $18; C4
[9214].byte $14; G#3
[9215].byte $14; G#3
[9216].byte $14; G#3
[9217].byte $14; G#3
[9218].byte $14; G#3
[9219].byte $14; G#3
[921a].byte $16; A#3
[921b].byte $00; Rest
[921c].byte $00; Rest
[921d].byte $00; Rest
[921e].byte $16; A#3
[921f].byte $16; A#3
[9220].byte $16; A#3
[9221].byte $16; A#3
[9222].byte $16; A#3
[9223].byte $16; A#3
[9224].byte $18; C4
[9225].byte $18; C4
[9226].byte $18; C4
[9227].byte $18; C4
[9228].byte $18; C4
[9229].byte $00; Rest
[922a].byte $18; C4
[922b].byte $18; C4
[922c].byte $18; C4
[922d].byte $18; C4
[922e].byte $18; C4
[922f].byte $18; C4
[9230].byte $18; C4
[9231].byte $00; Rest
[9232].byte $18; C4
[9233].byte $18; C4
[9234].byte $14; G#3
[9235].byte $14; G#3
[9236].byte $14; G#3
[9237].byte $14; G#3
[9238].byte $14; G#3
[9239].byte $14; G#3
[923a].byte $14; G#3
[923b].byte $14; G#3
[923c].byte $16; A#3
[923d].byte $16; A#3
[923e].byte $16; A#3
[923f].byte $16; A#3
[9240].byte $16; A#3
[9241].byte $16; A#3
[9242].byte $16; A#3
[9243].byte $16; A#3
[9244].byte $18; C4
[9245].byte $18; C4
[9246].byte $18; C4
[9247].byte $18; C4
[9248].byte $18; C4
[9249].byte $00; Rest
[924a].byte $18; C4
[924b].byte $18; C4
[924c].byte $18; C4
[924d].byte $18; C4
[924e].byte $18; C4
[924f].byte $18; C4
[9250].byte $18; C4
[9251].byte $00; Rest
[9252].byte $18; C4
[9253].byte $18; C4
[9254].byte $14; G#3
[9255].byte $14; G#3
[9256].byte $14; G#3
[9257].byte $14; G#3
[9258].byte $14; G#3
[9259].byte $14; G#3
[925a].byte $16; A#3
[925b].byte $00; Rest
[925c].byte $00; Rest
[925d].byte $00; Rest
[925e].byte $16; A#3
[925f].byte $16; A#3
[9260].byte $16; A#3
[9261].byte $16; A#3
[9262].byte $16; A#3
[9263].byte $16; A#3
[9264].byte $14; G#3
[9265].byte $14; G#3
[9266].byte $14; G#3
[9267].byte $14; G#3
[9268].byte $14; G#3
[9269].byte $14; G#3
[926a].byte $16; A#3
[926b].byte $00; Rest
[926c].byte $00; Rest
[926d].byte $00; Rest
[926e].byte $16; A#3
[926f].byte $16; A#3
[9270].byte $16; A#3
[9271].byte $16; A#3
[9272].byte $98; Note length: 24
[9273].byte $18; C4
[9274].byte $8c; Note length: 12
[9275].byte $18; C4
[9276].byte $18; C4
[9277].byte $18; C4
[9278].byte $18; C4
[9279].byte $18; C4
[927a].byte $18; C4
[927b].byte $18; C4
[927c].byte $18; C4
[927d].byte $18; C4
[927e].byte $18; C4
[927f].byte $18; C4
[9280].byte $18; C4
[9281].byte $18; C4
[9282].byte $18; C4
[9283].byte $18; C4
[9284].byte $18; C4
[9285].byte $18; C4
[9286].byte $18; C4
[9287].byte $18; C4
[9288].byte $18; C4
[9289].byte $18; C4
[928a].byte $18; C4
[928b].byte $ec; Note length: 108
[928c].byte $20; G#4
[928d].byte MSCRIPT_OP_END; Op: End
[928e]BYTE_PRG5__928e:; [$928e]
[928e].byte $8c,$21,$00,$21,$00,$86,$31,$21; [$928e] byte
[9296].byte $31,$31,$31,$21,$31,$31; [$9296] byte
.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[929d].byte $02; '- 2 iterations
[929e].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$929e] byte
[92a6].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$92a6] byte
[92ae].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$92ae] byte
[92b6].byte $21,$86,$31,$31,$31,$00,$31,$31; [$92b6] byte
[92be].byte $8c,$21,$86,$31,$31,$31,$00,$31; [$92be] byte
[92c6].byte $31,$8c,$21,$86,$31,$31,$31,$00; [$92c6] byte
[92ce].byte $31,$31,$8c,$21,$21,$21,$21,$21; [$92ce] byte
[92d6].byte $21,$86,$31,$00,$8c,$21,$21,$86; [$92d6] byte
[92de].byte $21,$21; [$92de] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[92e1].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[92e2].byte $02; '- 2 iterations
[92e3].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$92e3] byte
[92eb].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$92eb] byte
[92f3].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$92f3] byte
[92fb].byte $21,$86,$31,$31,$31,$00,$31,$31; [$92fb] byte
[9303].byte $8c,$21,$86,$31,$31,$31,$00,$31; [$9303] byte
[930b].byte $31,$8c,$21,$86,$31,$31,$31,$00; [$930b] byte
[9313].byte $31,$31,$8c,$21,$86,$31,$31,$31; [$9313] byte
[931b].byte $00,$31,$31,$8c,$21,$86,$31,$31; [$931b] byte
[9323].byte $31,$00,$31,$31,$21,$21,$21,$00; [$9323] byte
[932b].byte MSCRIPT_OP_END_LOOP; Op: End loop
[932c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[932d].byte $02; '- 2 iterations
[932e].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$932e] byte
[9336].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$9336] byte
[933e].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$933e] byte
[9346].byte $21,$86,$31,$31,$31,$00,$31,$31; [$9346] byte
[934e].byte $8c,$21,$86,$31,$31; [$934e] byte
.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9354].byte $01; '- 1 loop
[9355].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$9355] byte
[935d].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$935d] byte
[9365].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$9365] byte
[936d].byte $21,$86,$31,$31,$31,$00,$8c,$21; [$936d] byte
[9375].byte $86,$21,$21,$21,$00; [$9375] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[937b].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[937c].byte $02; '- 2 loops
[937d].byte $8c,$21,$21,$21,$21,$86,$31,$31; [$937d] byte
[9385].byte $8c,$21,$21,$86,$21,$21,$8c,$21; [$9385] byte
[938d].byte $21,$21,$21,$00,$21,$21; [$938d] byte
.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9394].byte $02; '- 2 iterations
[9395].byte $86,$31,$00,$31,$31,$31,$00,$31; [$9395] byte
[939d].byte $31,$31,$00,$31,$31,$31,$00,$31; [$939d] byte
[93a5].byte $31; [$93a5] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[93a7].byte $31,$00,$31,$31,$31,$00,$31,$31; [$93a7] byte
[93af].byte $31,$00,$31,$31,$31,$31,$ec,$31; [$93af] byte
[93b7].byte MSCRIPT_OP_END; Op: End
[93b8].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for Daybreak.
;
; XREFS:
;
MSCRIPTS_DAYBREAK [$PRG5::8f03]
;============================================================================
[93b9]MSCRIPT_DAYBREAK_SQ1:; [$93b9]
[93b9].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[93ba].byte $01; '- Reduce volume by 1
[93bb].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[93bc].byte $90; '- Duty cycle 2
Constant volume/envelope
[93bd].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[93be].byte $01; '- Mode 1: Curve but held
[93bf].byte MSCRIPT_OP_SET_SQ_PITCH_EFFECT_DEPTH; Op: Set SQ2 envelope depth
[93c0].byte $02; '- 2
[93c1].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[93c2].byte $02; '- 2 iterations
[93c3].byte $98; Note length: 24
[93c4].byte $2d; A3
[93c5].byte $2f; B3
[93c6].byte $30; C4
[93c7].byte $37; G4
[93c8].byte $c8; Note length: 72
[93c9].byte $36; F#4
[93ca].byte $98; Note length: 24
[93cb].byte $32; D4
[93cc].byte $c8; Note length: 72
[93cd].byte $35; F4
[93ce].byte $98; Note length: 24
[93cf].byte $2f; B3
[93d0].byte $e0; Note length: 96
[93d1].byte $34; E4
[93d2].byte $98; Note length: 24
[93d3].byte $2d; A3
[93d4].byte $2f; B3
[93d5].byte $30; C4
[93d6].byte $37; G4
[93d7].byte $c8; Note length: 72
[93d8].byte $36; F#4
[93d9].byte $98; Note length: 24
[93da].byte $32; D4
[93db].byte $c8; Note length: 72
[93dc].byte $35; F4
[93dd].byte $98; Note length: 24
[93de].byte $2f; B3
[93df].byte $e0; Note length: 96
[93e0].byte $2f; B3
[93e1].byte $98; Note length: 24
[93e2].byte $32; D4
[93e3].byte $34; E4
[93e4].byte $35; F4
[93e5].byte $3c; C5
[93e6].byte $c8; Note length: 72
[93e7].byte $3b; B4
[93e8].byte $98; Note length: 24
[93e9].byte $38; G#4
[93ea].byte $c8; Note length: 72
[93eb].byte $39; A4
[93ec].byte $98; Note length: 24
[93ed].byte $34; E4
[93ee].byte $e0; Note length: 96
[93ef].byte $30; C4
[93f0].byte $98; Note length: 24
[93f1].byte $30; C4
[93f2].byte $32; D4
[93f3].byte $34; E4
[93f4].byte $39; A4
[93f5].byte $33; D#4
[93f6].byte $34; E4
[93f7].byte $36; F#4
[93f8].byte $3b; B4
[93f9].byte $e0; Note length: 96
[93fa].byte $3b; B4
[93fb].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[93fc].byte $01; '- 1 loop
[93fd].byte $e0; Note length: 96
[93fe].byte $34; E4
[93ff].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9400].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9401].byte $02; '- 2 loops
[9402].byte $a4; Note length: 36
[9403].byte $34; E4
[9404].byte $8c; Note length: 12
[9405].byte $34; E4
[9406].byte $39; A4
[9407].byte $34; E4
[9408].byte $39; A4
[9409].byte $3c; C5
[940a].byte $98; Note length: 24
[940b].byte $3f; D#5
[940c].byte $3c; C5
[940d].byte $3b; B4
[940e].byte $38; G#4
[940f].byte $a4; Note length: 36
[9410].byte $39; A4
[9411].byte $8c; Note length: 12
[9412].byte $34; E4
[9413].byte $39; A4
[9414].byte $34; E4
[9415].byte $39; A4
[9416].byte $3c; C5
[9417].byte $98; Note length: 24
[9418].byte $40; E5
[9419].byte $41; F5
[941a].byte $3c; C5
[941b].byte $3e; D5
[941c].byte $a4; Note length: 36
[941d].byte $3a; A#4
[941e].byte $8c; Note length: 12
[941f].byte $41; F5
[9420].byte $40; E5
[9421].byte $3c; C5
[9422].byte $3b; B4
[9423].byte $38; G#4
[9424].byte $39; A4
[9425].byte $34; E4
[9426].byte $30; C4
[9427].byte $34; E4
[9428].byte $98; Note length: 24
[9429].byte $2d; A3
[942a].byte $2c; G#3
[942b].byte $8c; Note length: 12
[942c].byte $2b; G3
[942d].byte $00; Rest
[942e].byte $00; Rest
[942f].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9430].byte $90; '- Duty cycle 2
Constant volume/envelope
[9431].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9432].byte $00; '- Mode 0: Linear decay
[9433].byte $34; E4
[9434].byte $35; F4
[9435].byte $36; F#4
[9436].byte $37; G4
[9437].byte $38; G#4
[9438].byte $e0; Note length: 96
[9439].byte $00; Rest
[943a].byte $a4; Note length: 36
[943b].byte $00; Rest
[943c].byte $8c; Note length: 12
[943d].byte $38; G#4
[943e].byte $37; G4
[943f].byte $36; F#4
[9440].byte $35; F4
[9441].byte $34; E4
[9442].byte $e0; Note length: 96
[9443].byte $00; Rest
[9444].byte $a4; Note length: 36
[9445].byte $00; Rest
[9446].byte $8c; Note length: 12
[9447].byte $34; E4
[9448].byte $35; F4
[9449].byte $36; F#4
[944a].byte $37; G4
[944b].byte $38; G#4
[944c].byte $e0; Note length: 96
[944d].byte $00; Rest
[944e].byte $a4; Note length: 36
[944f].byte $00; Rest
[9450].byte $8c; Note length: 12
[9451].byte $38; G#4
[9452].byte $37; G4
[9453].byte $36; F#4
[9454].byte $35; F4
[9455].byte $34; E4
[9456].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9457].byte MSCRIPT_OP_END; Op: End
[9458]MSCRIPT_DAYBREAK_SQ2:; [$9458]
[9458].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9459].byte $05; '- Reduce volume by 5
[945a].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[945b].byte $13; '- Duty cycle 0
Constant volume/envelope
[945c].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[945d].byte $01; '- Mode 1: Curve but held
[945e].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[945f].byte $90; '- Duty cycle 2
Constant volume/envelope
[9460].byte $8c; Note length: 12
[9461].byte $00; Rest
[9462].byte $98; Note length: 24
[9463].byte $2d; A3
[9464].byte $2f; B3
[9465].byte $30; C4
[9466].byte $37; G4
[9467].byte $c8; Note length: 72
[9468].byte $36; F#4
[9469].byte $98; Note length: 24
[946a].byte $32; D4
[946b].byte $c8; Note length: 72
[946c].byte $35; F4
[946d].byte $98; Note length: 24
[946e].byte $2f; B3
[946f].byte $e0; Note length: 96
[9470].byte $34; E4
[9471].byte $98; Note length: 24
[9472].byte $2d; A3
[9473].byte $2f; B3
[9474].byte $30; C4
[9475].byte $37; G4
[9476].byte $c8; Note length: 72
[9477].byte $36; F#4
[9478].byte $98; Note length: 24
[9479].byte $32; D4
[947a].byte $c8; Note length: 72
[947b].byte $35; F4
[947c].byte $98; Note length: 24
[947d].byte $2f; B3
[947e].byte $e0; Note length: 96
[947f].byte $2f; B3
[9480].byte $98; Note length: 24
[9481].byte $32; D4
[9482].byte $34; E4
[9483].byte $35; F4
[9484].byte $3c; C5
[9485].byte $c8; Note length: 72
[9486].byte $3b; B4
[9487].byte $98; Note length: 24
[9488].byte $38; G#4
[9489].byte $c8; Note length: 72
[948a].byte $39; A4
[948b].byte $98; Note length: 24
[948c].byte $34; E4
[948d].byte $e0; Note length: 96
[948e].byte $30; C4
[948f].byte $98; Note length: 24
[9490].byte $30; C4
[9491].byte $32; D4
[9492].byte $34; E4
[9493].byte $39; A4
[9494].byte $33; D#4
[9495].byte $34; E4
[9496].byte $36; F#4
[9497].byte $3b; B4
[9498].byte $e0; Note length: 96
[9499].byte $3b; B4
[949a].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[949b].byte $03; '- Reduce volume by 3
[949c].byte $8c; Note length: 12
[949d].byte $34; E4
[949e].byte $32; D4
[949f].byte $2f; B3
[94a0].byte $30; C4
[94a1].byte $2d; A3
[94a2].byte $2f; B3
[94a3].byte $2c; G#3
[94a4].byte $b0; Note length: 48
[94a5].byte $00; Rest
[94a6].byte $98; Note length: 24
[94a7].byte $2d; A3
[94a8].byte $2f; B3
[94a9].byte $2d; A3
[94aa].byte $2f; B3
[94ab].byte $30; C4
[94ac].byte $2d; A3
[94ad].byte $2f; B3
[94ae].byte $30; C4
[94af].byte $2f; B3
[94b0].byte $2d; A3
[94b1].byte $2c; G#3
[94b2].byte $29; F3
[94b3].byte $28; E3
[94b4].byte $26; D3
[94b5].byte $24; C3
[94b6].byte $28; E3
[94b7].byte $2d; A3
[94b8].byte $2f; B3
[94b9].byte $2d; A3
[94ba].byte $2f; B3
[94bb].byte $30; C4
[94bc].byte $2d; A3
[94bd].byte $2f; B3
[94be].byte $2d; A3
[94bf].byte $29; F3
[94c0].byte $26; D3
[94c1].byte $28; E3
[94c2].byte $2f; B3
[94c3].byte $2c; G#3
[94c4].byte $28; E3
[94c5].byte $00; Rest
[94c6].byte $00; Rest
[94c7].byte $32; D4
[94c8].byte $30; C4
[94c9].byte $2f; B3
[94ca].byte $2d; A3
[94cb].byte $2c; G#3
[94cc].byte $28; E3
[94cd].byte $00; Rest
[94ce].byte $31; C#4
[94cf].byte $2d; A3
[94d0].byte $31; C#4
[94d1].byte $2d; A3
[94d2].byte $2a; F#3
[94d3].byte $27; D#3
[94d4].byte $b0; Note length: 48
[94d5].byte $24; C3
[94d6].byte $98; Note length: 24
[94d7].byte $28; E3
[94d8].byte $2d; A3
[94d9].byte $30; C4
[94da].byte $2f; B3
[94db].byte $30; C4
[94dc].byte $2f; B3
[94dd].byte $33; D#4
[94de].byte $34; E4
[94df].byte $2d; A3
[94e0].byte $2f; B3
[94e1].byte $2c; G#3
[94e2].byte $a4; Note length: 36
[94e3].byte $30; C4
[94e4].byte $8c; Note length: 12
[94e5].byte $30; C4
[94e6].byte $34; E4
[94e7].byte $30; C4
[94e8].byte $34; E4
[94e9].byte $39; A4
[94ea].byte $3c; C5
[94eb].byte $3c; C5
[94ec].byte $39; A4
[94ed].byte $39; A4
[94ee].byte $38; G#4
[94ef].byte $38; G#4
[94f0].byte $32; D4
[94f1].byte $32; D4
[94f2].byte $a4; Note length: 36
[94f3].byte $30; C4
[94f4].byte $8c; Note length: 12
[94f5].byte $30; C4
[94f6].byte $34; E4
[94f7].byte $30; C4
[94f8].byte $34; E4
[94f9].byte $39; A4
[94fa].byte $3c; C5
[94fb].byte $3c; C5
[94fc].byte $3e; D5
[94fd].byte $3e; D5
[94fe].byte $34; E4
[94ff].byte $34; E4
[9500].byte $3b; B4
[9501].byte $3b; B4
[9502].byte $a4; Note length: 36
[9503].byte $35; F4
[9504].byte $8c; Note length: 12
[9505].byte $3e; D5
[9506].byte $3c; C5
[9507].byte $39; A4
[9508].byte $38; G#4
[9509].byte $32; D4
[950a].byte $34; E4
[950b].byte $30; C4
[950c].byte $2d; A3
[950d].byte $30; C4
[950e].byte $98; Note length: 24
[950f].byte $28; E3
[9510].byte $27; D#3
[9511].byte $8c; Note length: 12
[9512].byte $26; D3
[9513].byte $00; Rest
[9514].byte $00; Rest
[9515].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9516].byte $03; '- Reduce volume by 3
[9517].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9518].byte $50; '- Duty cycle 1
Constant volume/envelope
[9519].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[951a].byte $00; '- Mode 0: Linear decay
[951b].byte $30; C4
[951c].byte $31; C#4
[951d].byte $32; D4
[951e].byte $33; D#4
[951f].byte $34; E4
[9520].byte $e0; Note length: 96
[9521].byte $00; Rest
[9522].byte $a4; Note length: 36
[9523].byte $00; Rest
[9524].byte $8c; Note length: 12
[9525].byte $34; E4
[9526].byte $33; D#4
[9527].byte $32; D4
[9528].byte $31; C#4
[9529].byte $30; C4
[952a].byte $e0; Note length: 96
[952b].byte $00; Rest
[952c].byte $a4; Note length: 36
[952d].byte $00; Rest
[952e].byte $8c; Note length: 12
[952f].byte $30; C4
[9530].byte $31; C#4
[9531].byte $32; D4
[9532].byte $33; D#4
[9533].byte $34; E4
[9534].byte $e0; Note length: 96
[9535].byte $00; Rest
[9536].byte $a4; Note length: 36
[9537].byte $00; Rest
[9538].byte $8c; Note length: 12
[9539].byte $34; E4
[953a].byte $33; D#4
[953b].byte $32; D4
[953c].byte $31; C#4
[953d].byte $30; C4
[953e].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[953f].byte MSCRIPT_OP_END; Op: End
[9540]MSCRIPT_DAYBREAK_TRI:; [$9540]
[9540].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9541].byte $02; '- 2 iterations
[9542].byte $8c; Note length: 12
[9543].byte $15; A3
[9544].byte $21; A4
[9545].byte $1c; E4
[9546].byte $21; A4
[9547].byte $00; Rest
[9548].byte $21; A4
[9549].byte $1c; E4
[954a].byte $21; A4
[954b].byte $18; C4
[954c].byte $21; A4
[954d].byte $1c; E4
[954e].byte $21; A4
[954f].byte $00; Rest
[9550].byte $21; A4
[9551].byte $1c; E4
[9552].byte $21; A4
[9553].byte $17; B3
[9554].byte $21; A4
[9555].byte $1a; D4
[9556].byte $21; A4
[9557].byte $00; Rest
[9558].byte $21; A4
[9559].byte $1a; D4
[955a].byte $21; A4
[955b].byte $10; E3
[955c].byte $1c; E4
[955d].byte $17; B3
[955e].byte $1c; E4
[955f].byte $00; Rest
[9560].byte $1c; E4
[9561].byte $17; B3
[9562].byte $1c; E4
[9563].byte $15; A3
[9564].byte $21; A4
[9565].byte $1c; E4
[9566].byte $21; A4
[9567].byte $00; Rest
[9568].byte $21; A4
[9569].byte $1c; E4
[956a].byte $21; A4
[956b].byte $18; C4
[956c].byte $21; A4
[956d].byte $1c; E4
[956e].byte $21; A4
[956f].byte $00; Rest
[9570].byte $21; A4
[9571].byte $1c; E4
[9572].byte $21; A4
[9573].byte $17; B3
[9574].byte $21; A4
[9575].byte $1a; D4
[9576].byte $21; A4
[9577].byte $00; Rest
[9578].byte $21; A4
[9579].byte $1a; D4
[957a].byte $21; A4
[957b].byte $10; E3
[957c].byte $1c; E4
[957d].byte $17; B3
[957e].byte $1c; E4
[957f].byte $00; Rest
[9580].byte $1c; E4
[9581].byte $17; B3
[9582].byte $1c; E4
[9583].byte $1a; D4
[9584].byte $26; D5
[9585].byte $21; A4
[9586].byte $26; D5
[9587].byte $00; Rest
[9588].byte $26; D5
[9589].byte $21; A4
[958a].byte $26; D5
[958b].byte $10; E3
[958c].byte $1c; E4
[958d].byte $17; B3
[958e].byte $1c; E4
[958f].byte $00; Rest
[9590].byte $1c; E4
[9591].byte $17; B3
[9592].byte $1c; E4
[9593].byte $15; A3
[9594].byte $21; A4
[9595].byte $1c; E4
[9596].byte $21; A4
[9597].byte $00; Rest
[9598].byte $21; A4
[9599].byte $1c; E4
[959a].byte $21; A4
[959b].byte $18; C4
[959c].byte $21; A4
[959d].byte $1b; D#4
[959e].byte $21; A4
[959f].byte $00; Rest
[95a0].byte $21; A4
[95a1].byte $1b; D#4
[95a2].byte $21; A4
[95a3].byte $13; G3
[95a4].byte $1c; E4
[95a5].byte $18; C4
[95a6].byte $1c; E4
[95a7].byte $00; Rest
[95a8].byte $1c; E4
[95a9].byte $18; C4
[95aa].byte $1c; E4
[95ab].byte $17; B3
[95ac].byte $21; A4
[95ad].byte $1b; D#4
[95ae].byte $21; A4
[95af].byte $00; Rest
[95b0].byte $21; A4
[95b1].byte $1e; F#4
[95b2].byte $21; A4
[95b3].byte $10; E3
[95b4].byte $1c; E4
[95b5].byte $17; B3
[95b6].byte $1c; E4
[95b7].byte $00; Rest
[95b8].byte $1c; E4
[95b9].byte $17; B3
[95ba].byte $1c; E4
[95bb].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[95bc].byte $01; '- 1 loop
[95bd].byte $8c; Note length: 12
[95be].byte $10; E3
[95bf].byte $1c; E4
[95c0].byte $1d; F4
[95c1].byte $1a; D4
[95c2].byte $1c; E4
[95c3].byte $18; C4
[95c4].byte $1a; D4
[95c5].byte $17; B3
[95c6].byte MSCRIPT_OP_END_LOOP; Op: End loop
[95c7].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[95c8].byte $02; '- 2 loops
[95c9].byte $8c; Note length: 12
[95ca].byte $10; E3
[95cb].byte $11; F3
[95cc].byte $10; E3
[95cd].byte $21; A4
[95ce].byte $1c; E4
[95cf].byte $18; C4
[95d0].byte $15; A3
[95d1].byte $10; E3
[95d2].byte $10; E3
[95d3].byte $98; Note length: 24
[95d4].byte $10; E3
[95d5].byte $8c; Note length: 12
[95d6].byte $10; E3
[95d7].byte $10; E3
[95d8].byte $98; Note length: 24
[95d9].byte $10; E3
[95da].byte $8c; Note length: 12
[95db].byte $10; E3
[95dc].byte $21; A4
[95dd].byte $1c; E4
[95de].byte $15; A3
[95df].byte $21; A4
[95e0].byte $1c; E4
[95e1].byte $18; C4
[95e2].byte $15; A3
[95e3].byte $10; E3
[95e4].byte $10; E3
[95e5].byte $98; Note length: 24
[95e6].byte $10; E3
[95e7].byte $8c; Note length: 12
[95e8].byte $10; E3
[95e9].byte $10; E3
[95ea].byte $98; Note length: 24
[95eb].byte $10; E3
[95ec].byte $8c; Note length: 12
[95ed].byte $10; E3
[95ee].byte $16; A#3
[95ef].byte $16; A#3
[95f0].byte $1a; D4
[95f1].byte $1a; D4
[95f2].byte $1c; E4
[95f3].byte $1c; E4
[95f4].byte $10; E3
[95f5].byte $10; E3
[95f6].byte $15; A3
[95f7].byte $98; Note length: 24
[95f8].byte $15; A3
[95f9].byte $8c; Note length: 12
[95fa].byte $15; A3
[95fb].byte $98; Note length: 24
[95fc].byte $18; C4
[95fd].byte $17; B3
[95fe].byte $8c; Note length: 12
[95ff].byte $16; A#3
[9600].byte $16; A#3
[9601].byte $16; A#3
[9602].byte $16; A#3
[9603].byte $16; A#3
[9604].byte $17; B3
[9605].byte $18; C4
[9606].byte $19; C#4
[9607].byte $86; Note length: 6
[9608].byte $19; C#4
[9609].byte $25; C#5
[960a].byte $19; C#4
[960b].byte $25; C#5
[960c].byte $1c; E4
[960d].byte $28; E5
[960e].byte $1c; E4
[960f].byte $28; E5
[9610].byte $20; G#4
[9611].byte $2c; G#5
[9612].byte $20; G#4
[9613].byte $2c; G#5
[9614].byte $1c; E4
[9615].byte $28; E5
[9616].byte $1c; E4
[9617].byte $28; E5
[9618].byte $19; C#4
[9619].byte $25; C#5
[961a].byte $19; C#4
[961b].byte $25; C#5
[961c].byte $19; C#4
[961d].byte $25; C#5
[961e].byte $8c; Note length: 12
[961f].byte $19; C#4
[9620].byte $18; C4
[9621].byte $17; B3
[9622].byte $16; A#3
[9623].byte $15; A3
[9624].byte $86; Note length: 6
[9625].byte $15; A3
[9626].byte $21; A4
[9627].byte $15; A3
[9628].byte $21; A4
[9629].byte $18; C4
[962a].byte $24; C5
[962b].byte $18; C4
[962c].byte $24; C5
[962d].byte $1c; E4
[962e].byte $28; E5
[962f].byte $1c; E4
[9630].byte $28; E5
[9631].byte $18; C4
[9632].byte $24; C5
[9633].byte $18; C4
[9634].byte $24; C5
[9635].byte $15; A3
[9636].byte $21; A4
[9637].byte $15; A3
[9638].byte $21; A4
[9639].byte $15; A3
[963a].byte $21; A4
[963b].byte $8c; Note length: 12
[963c].byte $15; A3
[963d].byte $16; A#3
[963e].byte $17; B3
[963f].byte $18; C4
[9640].byte $19; C#4
[9641].byte $86; Note length: 6
[9642].byte $19; C#4
[9643].byte $25; C#5
[9644].byte $19; C#4
[9645].byte $25; C#5
[9646].byte $1c; E4
[9647].byte $28; E5
[9648].byte $1c; E4
[9649].byte $28; E5
[964a].byte $20; G#4
[964b].byte $2c; G#5
[964c].byte $20; G#4
[964d].byte $2c; G#5
[964e].byte $1c; E4
[964f].byte $28; E5
[9650].byte $1c; E4
[9651].byte $28; E5
[9652].byte $19; C#4
[9653].byte $25; C#5
[9654].byte $19; C#4
[9655].byte $25; C#5
[9656].byte $19; C#4
[9657].byte $25; C#5
[9658].byte $8c; Note length: 12
[9659].byte $19; C#4
[965a].byte $18; C4
[965b].byte $17; B3
[965c].byte $16; A#3
[965d].byte $15; A3
[965e].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[965f].byte MSCRIPT_OP_END; Op: End
[9660]MSCRIPT_DAYBREAK_NOISE:; [$9660]
[9660].byte MSCRIPT_OP_END; Op: End
[9661].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for Apolune.
;
; XREFS:
;
MSCRIPTS_APOLUNE [$PRG5::8f0b]
;============================================================================
[9662]MSCRIPT_APOLUNE_SQ1:; [$9662]
[9662].byte $e0; Note length: 96
[9663].byte $00; Rest
[9664].byte $00; Rest
[9665].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[9666].word @_subroutine; '- $96C3
[9668].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[9669].word @_subroutine; '- $96C3
[966b].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[966c].byte $00; '- Reduce volume by 0
[966d].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[966e].byte $90; '- Duty cycle 2
Constant volume/envelope
[966f].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9670].byte $00; '- Mode 0: Linear decay
[9671].byte $8c; Note length: 12
[9672].byte $32; D4
[9673].byte $34; E4
[9674].byte $36; F#4
[9675].byte $37; G4
[9676].byte $86; Note length: 6
[9677].byte $39; A4
[9678].byte $00; Rest
[9679].byte $98; Note length: 24
[967a].byte $3e; D5
[967b].byte $8c; Note length: 12
[967c].byte $39; A4
[967d].byte $98; Note length: 24
[967e].byte $3c; C5
[967f].byte $8c; Note length: 12
[9680].byte $39; A4
[9681].byte $98; Note length: 24
[9682].byte $35; F4
[9683].byte $8c; Note length: 12
[9684].byte $37; G4
[9685].byte $98; Note length: 24
[9686].byte $39; A4
[9687].byte $40; E5
[9688].byte $8c; Note length: 12
[9689].byte $3d; C#5
[968a].byte $98; Note length: 24
[968b].byte $39; A4
[968c].byte $8c; Note length: 12
[968d].byte $3b; B4
[968e].byte $98; Note length: 24
[968f].byte $3d; C#5
[9690].byte $3e; D5
[9691].byte $8c; Note length: 12
[9692].byte $3b; B4
[9693].byte $98; Note length: 24
[9694].byte $37; G4
[9695].byte $8c; Note length: 12
[9696].byte $39; A4
[9697].byte $98; Note length: 24
[9698].byte $3b; B4
[9699].byte $8c; Note length: 12
[969a].byte $32; D4
[969b].byte $34; E4
[969c].byte $36; F#4
[969d].byte $37; G4
[969e].byte $86; Note length: 6
[969f].byte $39; A4
[96a0].byte $00; Rest
[96a1].byte $98; Note length: 24
[96a2].byte $3e; D5
[96a3].byte $8c; Note length: 12
[96a4].byte $39; A4
[96a5].byte $98; Note length: 24
[96a6].byte $3c; C5
[96a7].byte $8c; Note length: 12
[96a8].byte $39; A4
[96a9].byte $98; Note length: 24
[96aa].byte $35; F4
[96ab].byte $8c; Note length: 12
[96ac].byte $37; G4
[96ad].byte $98; Note length: 24
[96ae].byte $39; A4
[96af].byte $40; E5
[96b0].byte $8c; Note length: 12
[96b1].byte $3d; C#5
[96b2].byte $98; Note length: 24
[96b3].byte $39; A4
[96b4].byte $8c; Note length: 12
[96b5].byte $3b; B4
[96b6].byte $98; Note length: 24
[96b7].byte $3d; C#5
[96b8].byte $3e; D5
[96b9].byte $8c; Note length: 12
[96ba].byte $3b; B4
[96bb].byte $98; Note length: 24
[96bc].byte $37; G4
[96bd].byte $8c; Note length: 12
[96be].byte $39; A4
[96bf].byte $98; Note length: 24
[96c0].byte $3b; B4
[96c1].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[96c2].byte MSCRIPT_OP_END; Op: End
[96c3]@_subroutine:; [$96c3]
[96c3].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[96c4].byte $02; '- Reduce volume by 2
[96c5].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[96c6].byte $d0; '- Duty cycle 3
Constant volume/envelope
[96c7].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[96c8].byte $01; '- Mode 1: Curve but held
[96c9].byte $8c; Note length: 12
[96ca].byte $39; A4
[96cb].byte $38; G#4
[96cc].byte $39; A4
[96cd].byte $b0; Note length: 48
[96ce].byte $3c; C5
[96cf].byte $8c; Note length: 12
[96d0].byte $39; A4
[96d1].byte $98; Note length: 24
[96d2].byte $3a; A#4
[96d3].byte $8c; Note length: 12
[96d4].byte $3a; A#4
[96d5].byte $bc; Note length: 60
[96d6].byte $3e; D5
[96d7].byte $98; Note length: 24
[96d8].byte $38; G#4
[96d9].byte $41; F5
[96da].byte $40; E5
[96db].byte $3e; D5
[96dc].byte $8c; Note length: 12
[96dd].byte $3e; D5
[96de].byte $3d; C#5
[96df].byte $00; Rest
[96e0].byte $bc; Note length: 60
[96e1].byte $40; E5
[96e2].byte $8c; Note length: 12
[96e3].byte $39; A4
[96e4].byte $38; G#4
[96e5].byte $39; A4
[96e6].byte $b0; Note length: 48
[96e7].byte $3c; C5
[96e8].byte $8c; Note length: 12
[96e9].byte $39; A4
[96ea].byte $98; Note length: 24
[96eb].byte $3a; A#4
[96ec].byte $8c; Note length: 12
[96ed].byte $3a; A#4
[96ee].byte $bc; Note length: 60
[96ef].byte $3e; D5
[96f0].byte $98; Note length: 24
[96f1].byte $38; G#4
[96f2].byte $41; F5
[96f3].byte $40; E5
[96f4].byte $3e; D5
[96f5].byte $8c; Note length: 12
[96f6].byte $3e; D5
[96f7].byte $3d; C#5
[96f8].byte $00; Rest
[96f9].byte $bc; Note length: 60
[96fa].byte $40; E5
[96fb].byte $b0; Note length: 48
[96fc].byte $41; F5
[96fd].byte $98; Note length: 24
[96fe].byte $40; E5
[96ff].byte $3e; D5
[9700].byte $b0; Note length: 48
[9701].byte $3c; C5
[9702].byte $98; Note length: 24
[9703].byte $3b; B4
[9704].byte $39; A4
[9705].byte $c8; Note length: 72
[9706].byte $37; G4
[9707].byte $8c; Note length: 12
[9708].byte $34; E4
[9709].byte $ec; Note length: 108
[970a].byte $39; A4
[970b].byte $b0; Note length: 48
[970c].byte $41; F5
[970d].byte $98; Note length: 24
[970e].byte $40; E5
[970f].byte $3e; D5
[9710].byte $b0; Note length: 48
[9711].byte $3c; C5
[9712].byte $98; Note length: 24
[9713].byte $3b; B4
[9714].byte $39; A4
[9715].byte $c8; Note length: 72
[9716].byte $37; G4
[9717].byte $8c; Note length: 12
[9718].byte $34; E4
[9719].byte $ec; Note length: 108
[971a].byte $39; A4
[971b].byte $f5; Op: Return from subroutine
[971c]MSCRIPT_APOLUNE_SQ2:; [$971c]
[971c].byte $e0; Note length: 96
[971d].byte $00; Rest
[971e].byte $00; Rest
[971f].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[9720].word @_subroutine; '- $97A6
[9722].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[9723].word @_subroutine; '- $97A6
[9725].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9726].byte $02; '- Reduce volume by 2
[9727].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9728].byte $50; '- Duty cycle 1
Constant volume/envelope
[9729].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[972a].byte $00; '- Mode 0: Linear decay
[972b].byte $86; Note length: 6
[972c].byte $00; Rest
[972d].byte $8c; Note length: 12
[972e].byte $32; A9
[972f].byte $34; A9
[9730].byte $36; A9
[9731].byte $86; Note length: 6
[9732].byte $37; A9
[9733].byte $36; A9
[9734].byte $00; Rest
[9735].byte $98; Note length: 24
[9736].byte $39; A9
[9737].byte $8c; Note length: 12
[9738].byte $36; A9
[9739].byte $86; Note length: 6
[973a].byte $39; A9
[973b].byte $39; A9
[973c].byte $39; A9
[973d].byte $00; Rest
[973e].byte $8c; Note length: 12
[973f].byte $35; A9
[9740].byte $98; Note length: 24
[9741].byte $2d; A9
[9742].byte $8c; Note length: 12
[9743].byte $30; A9
[9744].byte $86; Note length: 6
[9745].byte $35; A9
[9746].byte $34; A9
[9747].byte $8c; Note length: 12
[9748].byte $35; A9
[9749].byte $86; Note length: 6
[974a].byte $3d; A9
[974b].byte $31; A9
[974c].byte $3d; A9
[974d].byte $00; Rest
[974e].byte $8c; Note length: 12
[974f].byte $39; A9
[9750].byte $98; Note length: 24
[9751].byte $31; A9
[9752].byte $8c; Note length: 12
[9753].byte $34; A9
[9754].byte $86; Note length: 6
[9755].byte $39; A9
[9756].byte $34; A9
[9757].byte $31; A9
[9758].byte $2d; A9
[9759].byte $3b; A9
[975a].byte $2f; A9
[975b].byte $3b; A9
[975c].byte $00; Rest
[975d].byte $37; A9
[975e].byte $00; Rest
[975f].byte $98; Note length: 24
[9760].byte $2f; A9
[9761].byte $8c; Note length: 12
[9762].byte $32; A9
[9763].byte $86; Note length: 6
[9764].byte $37; A9
[9765].byte $32; A9
[9766].byte $2f; A9
[9767].byte $2b; A9
[9768].byte $00; Rest
[9769].byte $8c; Note length: 12
[976a].byte $32; A9
[976b].byte $34; A9
[976c].byte $36; A9
[976d].byte $86; Note length: 6
[976e].byte $37; A9
[976f].byte $36; A9
[9770].byte $00; Rest
[9771].byte $98; Note length: 24
[9772].byte $39; A9
[9773].byte $8c; Note length: 12
[9774].byte $36; A9
[9775].byte $86; Note length: 6
[9776].byte $39; A9
[9777].byte $39; A9
[9778].byte $39; A9
[9779].byte $00; Rest
[977a].byte $8c; Note length: 12
[977b].byte $35; A9
[977c].byte $98; Note length: 24
[977d].byte $2d; A9
[977e].byte $8c; Note length: 12
[977f].byte $30; A9
[9780].byte $86; Note length: 6
[9781].byte $35; A9
[9782].byte $34; A9
[9783].byte $8c; Note length: 12
[9784].byte $35; A9
[9785].byte $86; Note length: 6
[9786].byte $3d; A9
[9787].byte $31; A9
[9788].byte $3d; A9
[9789].byte $00; Rest
[978a].byte $8c; Note length: 12
[978b].byte $39; A9
[978c].byte $98; Note length: 24
[978d].byte $31; A9
[978e].byte $8c; Note length: 12
[978f].byte $34; A9
[9790].byte $86; Note length: 6
[9791].byte $39; A9
[9792].byte $34; A9
[9793].byte $31; A9
[9794].byte $2d; A9
[9795].byte $3b; A9
[9796].byte $2f; A9
[9797].byte $3b; A9
[9798].byte $00; Rest
[9799].byte $37; A9
[979a].byte $00; Rest
[979b].byte $98; Note length: 24
[979c].byte $2f; A9
[979d].byte $8c; Note length: 12
[979e].byte $32; A9
[979f].byte $86; Note length: 6
[97a0].byte $37; A9
[97a1].byte $32; A9
[97a2].byte $2f; A9
[97a3].byte $2b; A9
[97a4].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[97a5].byte MSCRIPT_OP_END; Op: End
[97a6]@_subroutine:; [$97a6]
[97a6].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[97a7].byte $04; '- Reduce volume by 4
[97a8].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[97a9].byte $90; '- Duty cycle 2
Constant volume/envelope
[97aa].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[97ab].byte $01; '- Mode 1: Curve but held
[97ac].byte $8c; Note length: 12
[97ad].byte $30; A9
[97ae].byte $2f; A9
[97af].byte $30; A9
[97b0].byte $b0; Note length: 48
[97b1].byte $34; A9
[97b2].byte $8c; Note length: 12
[97b3].byte $30; A9
[97b4].byte $98; Note length: 24
[97b5].byte $32; A9
[97b6].byte $8c; Note length: 12
[97b7].byte $32; A9
[97b8].byte $98; Note length: 24
[97b9].byte $3a; A9
[97ba].byte $8c; Note length: 12
[97bb].byte $35; A9
[97bc].byte $32; A9
[97bd].byte $35; A9
[97be].byte $98; Note length: 24
[97bf].byte $34; A9
[97c0].byte $3e; A9
[97c1].byte $3c; A9
[97c2].byte $3b; A9
[97c3].byte $8c; Note length: 12
[97c4].byte $39; A9
[97c5].byte $39; A9
[97c6].byte $00; Rest
[97c7].byte $34; A9
[97c8].byte $31; A9
[97c9].byte $86; Note length: 6
[97ca].byte $34; A9
[97cb].byte $00; Rest
[97cc].byte $8c; Note length: 12
[97cd].byte $31; A9
[97ce].byte $86; Note length: 6
[97cf].byte $34; A9
[97d0].byte $00; Rest
[97d1].byte $8c; Note length: 12
[97d2].byte $30; A9
[97d3].byte $2f; A9
[97d4].byte $30; A9
[97d5].byte $b0; Note length: 48
[97d6].byte $34; A9
[97d7].byte $8c; Note length: 12
[97d8].byte $30; A9
[97d9].byte $98; Note length: 24
[97da].byte $32; A9
[97db].byte $8c; Note length: 12
[97dc].byte $32; A9
[97dd].byte $98; Note length: 24
[97de].byte $3a; A9
[97df].byte $8c; Note length: 12
[97e0].byte $35; A9
[97e1].byte $32; A9
[97e2].byte $35; A9
[97e3].byte $98; Note length: 24
[97e4].byte $34; A9
[97e5].byte $3e; A9
[97e6].byte $3c; A9
[97e7].byte $3b; A9
[97e8].byte $8c; Note length: 12
[97e9].byte $39; A9
[97ea].byte $39; A9
[97eb].byte $00; Rest
[97ec].byte $86; Note length: 6
[97ed].byte $31; A9
[97ee].byte $34; A9
[97ef].byte $39; A9
[97f0].byte $3d; A9
[97f1].byte $40; A9
[97f2].byte $45; A9
[97f3].byte $40; A9
[97f4].byte $3d; A9
[97f5].byte $39; A9
[97f6].byte $34; A9
[97f7].byte $29; A9
[97f8].byte $00; Rest
[97f9].byte $2e; A9
[97fa].byte $32; A9
[97fb].byte $29; A9
[97fc].byte $00; Rest
[97fd].byte $2e; A9
[97fe].byte $32; A9
[97ff].byte $28; A9
[9800].byte $2b; A9
[9801].byte $2e; A9
[9802].byte $32; A9
[9803].byte $26; A9
[9804].byte $00; Rest
[9805].byte $2e; A9
[9806].byte $32; A9
[9807].byte $24; A9
[9808].byte $00; Rest
[9809].byte $2d; A9
[980a].byte $30; A9
[980b].byte $24; A9
[980c].byte $00; Rest
[980d].byte $2d; A9
[980e].byte $30; A9
[980f].byte $23; A9
[9810].byte $2d; A9
[9811].byte $30; A9
[9812].byte $34; A9
[9813].byte $21; A9
[9814].byte $29; A9
[9815].byte $2d; A9
[9816].byte $30; A9
[9817].byte $1f; A9
[9818].byte $28; A9
[9819].byte $2b; A9
[981a].byte $2f; A9
[981b].byte $00; Rest
[981c].byte $28; A9
[981d].byte $2b; A9
[981e].byte $2f; A9
[981f].byte $1f; A9
[9820].byte $28; A9
[9821].byte $2b; A9
[9822].byte $2f; A9
[9823].byte $28; A9
[9824].byte $00; Rest
[9825].byte $8c; Note length: 12
[9826].byte $25; A9
[9827].byte $86; Note length: 6
[9828].byte $21; A9
[9829].byte $00; Rest
[982a].byte $26; A9
[982b].byte $2a; A9
[982c].byte $36; A9
[982d].byte $32; A9
[982e].byte $2d; A9
[982f].byte $2a; A9
[9830].byte $21; A9
[9831].byte $00; Rest
[9832].byte $26; A9
[9833].byte $2a; A9
[9834].byte $36; A9
[9835].byte $32; A9
[9836].byte $2d; A9
[9837].byte $2a; A9
[9838].byte $29; A9
[9839].byte $2b; A9
[983a].byte $2e; A9
[983b].byte $32; A9
[983c].byte $29; A9
[983d].byte $2b; A9
[983e].byte $2e; A9
[983f].byte $32; A9
[9840].byte $00; Rest
[9841].byte $2b; A9
[9842].byte $2e; A9
[9843].byte $32; A9
[9844].byte $26; A9
[9845].byte $2b; A9
[9846].byte $2e; A9
[9847].byte $32; A9
[9848].byte $24; A9
[9849].byte $2d; A9
[984a].byte $30; A9
[984b].byte $34; A9
[984c].byte $24; A9
[984d].byte $2d; A9
[984e].byte $30; A9
[984f].byte $34; A9
[9850].byte $00; Rest
[9851].byte $29; A9
[9852].byte $2d; A9
[9853].byte $30; A9
[9854].byte $21; A9
[9855].byte $29; A9
[9856].byte $2d; A9
[9857].byte $30; A9
[9858].byte $1f; A9
[9859].byte $28; A9
[985a].byte $2b; A9
[985b].byte $2f; A9
[985c].byte $1f; A9
[985d].byte $28; A9
[985e].byte $2b; A9
[985f].byte $2f; A9
[9860].byte $1f; A9
[9861].byte $28; A9
[9862].byte $2b; A9
[9863].byte $2f; A9
[9864].byte $28; A9
[9865].byte $00; Rest
[9866].byte $8c; Note length: 12
[9867].byte $25; A9
[9868].byte $86; Note length: 6
[9869].byte $21; A9
[986a].byte $26; A9
[986b].byte $2a; A9
[986c].byte $2d; A9
[986d].byte $32; A9
[986e].byte $2d; A9
[986f].byte $2a; A9
[9870].byte $2d; A9
[9871].byte $21; A9
[9872].byte $26; A9
[9873].byte $2a; A9
[9874].byte $2d; A9
[9875].byte $32; A9
[9876].byte $2d; A9
[9877].byte $8c; Note length: 12
[9878].byte $26; A9
[9879].byte MSCRIPT_OP_RET; Op: Return from subroutine
[987a]MSCRIPT_APOLUNE_TRI:; [$987a]
[987a].byte $8c; Note length: 12
[987b].byte $15; A3
[987c].byte $86; Note length: 6
[987d].byte $21; A4
[987e].byte $00; Rest
[987f].byte $8c; Note length: 12
[9880].byte $10; E3
[9881].byte $86; Note length: 6
[9882].byte $1c; E4
[9883].byte $00; Rest
[9884].byte $8c; Note length: 12
[9885].byte $13; G3
[9886].byte $86; Note length: 6
[9887].byte $1f; G4
[9888].byte $00; Rest
[9889].byte $12; F#3
[988a].byte $12; F#3
[988b].byte $1e; F#4
[988c].byte $00; Rest
[988d].byte $8c; Note length: 12
[988e].byte $15; A3
[988f].byte $86; Note length: 6
[9890].byte $21; A4
[9891].byte $00; Rest
[9892].byte $8c; Note length: 12
[9893].byte $10; E3
[9894].byte $86; Note length: 6
[9895].byte $1c; E4
[9896].byte $00; Rest
[9897].byte $13; G3
[9898].byte $13; G3
[9899].byte $1f; G4
[989a].byte $1f; G4
[989b].byte $12; F#3
[989c].byte $12; F#3
[989d].byte $1e; F#4
[989e].byte $00; Rest
[989f].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[98a0].word @_subroutine; '- $9927
[98a2].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[98a3].word @_subroutine; '- $9927
[98a5].byte $0e; F6
[98a6].byte $00; Rest
[98a7].byte $15; C7
[98a8].byte $00; Rest
[98a9].byte $0e; F6
[98aa].byte $00; Rest
[98ab].byte $15; C7
[98ac].byte $00; Rest
[98ad].byte $0e; F6
[98ae].byte $0e; F6
[98af].byte $15; C7
[98b0].byte $00; Rest
[98b1].byte $0e; F6
[98b2].byte $00; Rest
[98b3].byte $15; C7
[98b4].byte $00; Rest
[98b5].byte $11; G#6
[98b6].byte $00; Rest
[98b7].byte $18; D#7
[98b8].byte $00; Rest
[98b9].byte $11; G#6
[98ba].byte $00; Rest
[98bb].byte $18; D#7
[98bc].byte $00; Rest
[98bd].byte $11; G#6
[98be].byte $11; G#6
[98bf].byte $18; D#7
[98c0].byte $00; Rest
[98c1].byte $11; G#6
[98c2].byte $00; Rest
[98c3].byte $18; D#7
[98c4].byte $00; Rest
[98c5].byte $15; C7
[98c6].byte $00; Rest
[98c7].byte $21; C8
[98c8].byte $00; Rest
[98c9].byte $15; C7
[98ca].byte $00; Rest
[98cb].byte $1c; G7
[98cc].byte $00; Rest
[98cd].byte $15; C7
[98ce].byte $15; C7
[98cf].byte $1c; G7
[98d0].byte $00; Rest
[98d1].byte $15; C7
[98d2].byte $00; Rest
[98d3].byte $1c; G7
[98d4].byte $1c; G7
[98d5].byte $13; A#6
[98d6].byte $00; Rest
[98d7].byte $1a; F7
[98d8].byte $00; Rest
[98d9].byte $13; A#6
[98da].byte $00; Rest
[98db].byte $1a; F7
[98dc].byte $1f; A#7
[98dd].byte $13; A#6
[98de].byte $13; A#6
[98df].byte $1f; A#7
[98e0].byte $00; Rest
[98e1].byte $13; A#6
[98e2].byte $00; Rest
[98e3].byte $13; A#6
[98e4].byte $1f; A#7
[98e5].byte $0e; F6
[98e6].byte $00; Rest
[98e7].byte $15; C7
[98e8].byte $00; Rest
[98e9].byte $0e; F6
[98ea].byte $00; Rest
[98eb].byte $15; C7
[98ec].byte $00; Rest
[98ed].byte $0e; F6
[98ee].byte $0e; F6
[98ef].byte $15; C7
[98f0].byte $00; Rest
[98f1].byte $0e; F6
[98f2].byte $00; Rest
[98f3].byte $15; C7
[98f4].byte $00; Rest
[98f5].byte $11; G#6
[98f6].byte $00; Rest
[98f7].byte $18; D#7
[98f8].byte $00; Rest
[98f9].byte $11; G#6
[98fa].byte $00; Rest
[98fb].byte $18; D#7
[98fc].byte $00; Rest
[98fd].byte $11; G#6
[98fe].byte $11; G#6
[98ff].byte $18; D#7
[9900].byte $00; Rest
[9901].byte $11; G#6
[9902].byte $00; Rest
[9903].byte $18; D#7
[9904].byte $00; Rest
[9905].byte $15; C7
[9906].byte $00; Rest
[9907].byte $21; C8
[9908].byte $00; Rest
[9909].byte $15; C7
[990a].byte $00; Rest
[990b].byte $1c; G7
[990c].byte $00; Rest
[990d].byte $15; C7
[990e].byte $15; C7
[990f].byte $1c; G7
[9910].byte $00; Rest
[9911].byte $15; C7
[9912].byte $00; Rest
[9913].byte $1c; G7
[9914].byte $1c; G7
[9915].byte $13; A#6
[9916].byte $00; Rest
[9917].byte $1a; F7
[9918].byte $00; Rest
[9919].byte $13; A#6
[991a].byte $00; Rest
[991b].byte $1a; F7
[991c].byte $1f; A#7
[991d].byte $13; A#6
[991e].byte $13; A#6
[991f].byte $1f; A#7
[9920].byte $00; Rest
[9921].byte $13; A#6
[9922].byte $00; Rest
[9923].byte $13; A#6
[9924].byte $1f; A#7
[9925].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9926].byte MSCRIPT_OP_END; Op: End
[9927]@_subroutine:; [$9927]
[9927].byte $8c; Note length: 12
[9928].byte $15; C7
[9929].byte $86; Note length: 6
[992a].byte $21; C8
[992b].byte $00; Rest
[992c].byte $8c; Note length: 12
[992d].byte $15; C7
[992e].byte $86; Note length: 6
[992f].byte $21; C8
[9930].byte $00; Rest
[9931].byte $8c; Note length: 12
[9932].byte $15; C7
[9933].byte $86; Note length: 6
[9934].byte $21; C8
[9935].byte $00; Rest
[9936].byte $8c; Note length: 12
[9937].byte $15; C7
[9938].byte $86; Note length: 6
[9939].byte $21; C8
[993a].byte $00; Rest
[993b].byte $8c; Note length: 12
[993c].byte $16; C#7
[993d].byte $86; Note length: 6
[993e].byte $22; C#8
[993f].byte $00; Rest
[9940].byte $8c; Note length: 12
[9941].byte $16; C#7
[9942].byte $86; Note length: 6
[9943].byte $22; C#8
[9944].byte $00; Rest
[9945].byte $8c; Note length: 12
[9946].byte $16; C#7
[9947].byte $86; Note length: 6
[9948].byte $22; C#8
[9949].byte $00; Rest
[994a].byte $8c; Note length: 12
[994b].byte $16; C#7
[994c].byte $86; Note length: 6
[994d].byte $22; C#8
[994e].byte $00; Rest
[994f].byte $8c; Note length: 12
[9950].byte $14; B6
[9951].byte $86; Note length: 6
[9952].byte $20; B7
[9953].byte $00; Rest
[9954].byte $8c; Note length: 12
[9955].byte $14; B6
[9956].byte $86; Note length: 6
[9957].byte $20; B7
[9958].byte $00; Rest
[9959].byte $8c; Note length: 12
[995a].byte $10; G6
[995b].byte $86; Note length: 6
[995c].byte $1c; G7
[995d].byte $00; Rest
[995e].byte $8c; Note length: 12
[995f].byte $10; G6
[9960].byte $86; Note length: 6
[9961].byte $1c; G7
[9962].byte $00; Rest
[9963].byte $8c; Note length: 12
[9964].byte $15; C7
[9965].byte $86; Note length: 6
[9966].byte $21; C8
[9967].byte $00; Rest
[9968].byte $8c; Note length: 12
[9969].byte $15; C7
[996a].byte $86; Note length: 6
[996b].byte $21; C8
[996c].byte $00; Rest
[996d].byte $8c; Note length: 12
[996e].byte $15; C7
[996f].byte $86; Note length: 6
[9970].byte $21; C8
[9971].byte $00; Rest
[9972].byte $8c; Note length: 12
[9973].byte $15; C7
[9974].byte $86; Note length: 6
[9975].byte $21; C8
[9976].byte $00; Rest
[9977].byte $8c; Note length: 12
[9978].byte $15; C7
[9979].byte $86; Note length: 6
[997a].byte $21; C8
[997b].byte $00; Rest
[997c].byte $8c; Note length: 12
[997d].byte $15; C7
[997e].byte $86; Note length: 6
[997f].byte $21; C8
[9980].byte $00; Rest
[9981].byte $8c; Note length: 12
[9982].byte $15; C7
[9983].byte $86; Note length: 6
[9984].byte $21; C8
[9985].byte $00; Rest
[9986].byte $8c; Note length: 12
[9987].byte $15; C7
[9988].byte $86; Note length: 6
[9989].byte $21; C8
[998a].byte $00; Rest
[998b].byte $8c; Note length: 12
[998c].byte $16; C#7
[998d].byte $86; Note length: 6
[998e].byte $22; C#8
[998f].byte $00; Rest
[9990].byte $8c; Note length: 12
[9991].byte $16; C#7
[9992].byte $86; Note length: 6
[9993].byte $22; C#8
[9994].byte $00; Rest
[9995].byte $8c; Note length: 12
[9996].byte $16; C#7
[9997].byte $86; Note length: 6
[9998].byte $22; C#8
[9999].byte $00; Rest
[999a].byte $8c; Note length: 12
[999b].byte $16; C#7
[999c].byte $86; Note length: 6
[999d].byte $22; C#8
[999e].byte $00; Rest
[999f].byte $8c; Note length: 12
[99a0].byte $14; B6
[99a1].byte $86; Note length: 6
[99a2].byte $20; B7
[99a3].byte $00; Rest
[99a4].byte $8c; Note length: 12
[99a5].byte $14; B6
[99a6].byte $86; Note length: 6
[99a7].byte $20; B7
[99a8].byte $00; Rest
[99a9].byte $8c; Note length: 12
[99aa].byte $10; G6
[99ab].byte $86; Note length: 6
[99ac].byte $1c; G7
[99ad].byte $00; Rest
[99ae].byte $8c; Note length: 12
[99af].byte $10; G6
[99b0].byte $86; Note length: 6
[99b1].byte $1c; G7
[99b2].byte $00; Rest
[99b3].byte $8c; Note length: 12
[99b4].byte $15; C7
[99b5].byte $86; Note length: 6
[99b6].byte $21; C8
[99b7].byte $00; Rest
[99b8].byte $8c; Note length: 12
[99b9].byte $15; C7
[99ba].byte $86; Note length: 6
[99bb].byte $21; C8
[99bc].byte $00; Rest
[99bd].byte $8c; Note length: 12
[99be].byte $15; C7
[99bf].byte $86; Note length: 6
[99c0].byte $21; C8
[99c1].byte $00; Rest
[99c2].byte $8c; Note length: 12
[99c3].byte $15; C7
[99c4].byte $86; Note length: 6
[99c5].byte $21; C8
[99c6].byte $00; Rest
[99c7].byte $13; A#6
[99c8].byte $13; A#6
[99c9].byte $13; A#6
[99ca].byte $13; A#6
[99cb].byte $13; A#6
[99cc].byte $13; A#6
[99cd].byte $13; A#6
[99ce].byte $13; A#6
[99cf].byte $13; A#6
[99d0].byte $13; A#6
[99d1].byte $13; A#6
[99d2].byte $13; A#6
[99d3].byte $13; A#6
[99d4].byte $13; A#6
[99d5].byte $13; A#6
[99d6].byte $13; A#6
[99d7].byte $11; G#6
[99d8].byte $11; G#6
[99d9].byte $11; G#6
[99da].byte $11; G#6
[99db].byte $11; G#6
[99dc].byte $11; G#6
[99dd].byte $11; G#6
[99de].byte $11; G#6
[99df].byte $11; G#6
[99e0].byte $11; G#6
[99e1].byte $11; G#6
[99e2].byte $11; G#6
[99e3].byte $11; G#6
[99e4].byte $11; G#6
[99e5].byte $11; G#6
[99e6].byte $11; G#6
[99e7].byte $10; G6
[99e8].byte $10; G6
[99e9].byte $10; G6
[99ea].byte $10; G6
[99eb].byte $10; G6
[99ec].byte $10; G6
[99ed].byte $10; G6
[99ee].byte $10; G6
[99ef].byte $10; G6
[99f0].byte $10; G6
[99f1].byte $10; G6
[99f2].byte $10; G6
[99f3].byte $10; G6
[99f4].byte $10; G6
[99f5].byte $10; G6
[99f6].byte $10; G6
[99f7].byte $0e; F6
[99f8].byte $0e; F6
[99f9].byte $0e; F6
[99fa].byte $0e; F6
[99fb].byte $0e; F6
[99fc].byte $0e; F6
[99fd].byte $0e; F6
[99fe].byte $0e; F6
[99ff].byte $0e; F6
[9a00].byte $0e; F6
[9a01].byte $0e; F6
[9a02].byte $0e; F6
[9a03].byte $0e; F6
[9a04].byte $0e; F6
[9a05].byte $0e; F6
[9a06].byte $0e; F6
[9a07].byte $13; A#6
[9a08].byte $13; A#6
[9a09].byte $13; A#6
[9a0a].byte $13; A#6
[9a0b].byte $13; A#6
[9a0c].byte $13; A#6
[9a0d].byte $13; A#6
[9a0e].byte $13; A#6
[9a0f].byte $13; A#6
[9a10].byte $13; A#6
[9a11].byte $13; A#6
[9a12].byte $13; A#6
[9a13].byte $13; A#6
[9a14].byte $13; A#6
[9a15].byte $13; A#6
[9a16].byte $13; A#6
[9a17].byte $11; G#6
[9a18].byte $11; G#6
[9a19].byte $11; G#6
[9a1a].byte $11; G#6
[9a1b].byte $11; G#6
[9a1c].byte $11; G#6
[9a1d].byte $11; G#6
[9a1e].byte $11; G#6
[9a1f].byte $11; G#6
[9a20].byte $11; G#6
[9a21].byte $11; G#6
[9a22].byte $11; G#6
[9a23].byte $11; G#6
[9a24].byte $11; G#6
[9a25].byte $11; G#6
[9a26].byte $11; G#6
[9a27].byte $10; G6
[9a28].byte $10; G6
[9a29].byte $10; G6
[9a2a].byte $10; G6
[9a2b].byte $10; G6
[9a2c].byte $10; G6
[9a2d].byte $10; G6
[9a2e].byte $10; G6
[9a2f].byte $10; G6
[9a30].byte $10; G6
[9a31].byte $10; G6
[9a32].byte $10; G6
[9a33].byte $10; G6
[9a34].byte $10; G6
[9a35].byte $10; G6
[9a36].byte $10; G6
[9a37].byte $0e; F6
[9a38].byte $0e; F6
[9a39].byte $0e; F6
[9a3a].byte $0e; F6
[9a3b].byte $0e; F6
[9a3c].byte $0e; F6
[9a3d].byte $0e; F6
[9a3e].byte $0e; F6
[9a3f].byte $0e; F6
[9a40].byte $0e; F6
[9a41].byte $0e; F6
[9a42].byte $0e; F6
[9a43].byte $0e; F6
[9a44].byte $0e; F6
[9a45].byte $0e; F6
[9a46].byte $0e; F6
[9a47].byte MSCRIPT_OP_RET; Op: Return from subroutine
[9a48]MSCRIPT_APOLUNE_NOISE:; [$9a48]
[9a48].byte $8c,$00,$31,$00,$31,$00,$31,$00; [$9a48] byte
[9a50].byte $31,$00,$31,$00,$31,$00,$31,$86; [$9a50] byte
[9a58].byte $31,$31,$8c,$31; [$9a58] byte
.byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[9a5d].word @_subroutine; '- $9A70
[9a5f].byte MSCRIPT_OP_JSR; Op: Jump to subroutine
[9a60].word @_subroutine; '- $9A70
[9a62].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9a63].byte $08; '- 8 iterations
[9a64].byte $8c,$00,$21,$00,$21,$00,$21,$00; [$9a64] byte
[9a6c].byte $21; [$9a6c] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[9a6e].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9a6f].byte MSCRIPT_OP_END; Op: End
[9a70]@_subroutine:; [$9a70]
[9a70].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9a71].byte $08; '- 8 iterations
[9a72].byte $8c,$00,$21,$00,$21,$00,$21,$00; [$9a72] byte
[9a7a].byte $21; [$9a7a] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[9a7c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9a7d].byte $08; '- 8 iterations
[9a7e].byte $86,$31,$00,$31,$31,$31,$00,$31; [$9a7e] byte
[9a86].byte $31,$31,$00,$31,$31,$31,$00,$31; [$9a86] byte
[9a8e].byte $31; [$9a8e] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[9a90].byte MSCRIPT_OP_RET; Op: Return from subroutine
[9a91].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for Conflate.
;
; XREFS:
;
MSCRIPTS_CONFLATE [$PRG5::8f13]
;============================================================================
[9a92]MSCRIPT_CONFLATE_SQ1:; [$9a92]
[9a92].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9a93].byte $02; '- Reduce volume by 2
[9a94].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9a95].byte $90; '- Duty cycle 2
Constant volume/envelope
[9a96].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9a97].byte $01; '- Mode 1: Curve but held
[9a98].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9a99].byte $02; '- 2 iterations
[9a9a].byte $98; Note length: 24
[9a9b].byte $37; G4
[9a9c].byte $36; F#4
[9a9d].byte $a4; Note length: 36
[9a9e].byte $33; D#4
[9a9f].byte $bc; Note length: 60
[9aa0].byte $34; E4
[9aa1].byte $8c; Note length: 12
[9aa2].byte $34; E4
[9aa3].byte $37; G4
[9aa4].byte $3b; B4
[9aa5].byte $98; Note length: 24
[9aa6].byte $3e; D5
[9aa7].byte $8c; Note length: 12
[9aa8].byte $3b; B4
[9aa9].byte $37; G4
[9aaa].byte $34; E4
[9aab].byte $98; Note length: 24
[9aac].byte $3d; C#5
[9aad].byte $8c; Note length: 12
[9aae].byte $35; F4
[9aaf].byte $bc; Note length: 60
[9ab0].byte $3c; C5
[9ab1].byte $8c; Note length: 12
[9ab2].byte $39; A4
[9ab3].byte $3c; C5
[9ab4].byte $40; E5
[9ab5].byte $98; Note length: 24
[9ab6].byte $43; G5
[9ab7].byte $8c; Note length: 12
[9ab8].byte $40; E5
[9ab9].byte $3c; C5
[9aba].byte $39; A4
[9abb].byte $a4; Note length: 36
[9abc].byte $42; F#5
[9abd].byte $8c; Note length: 12
[9abe].byte $3e; D5
[9abf].byte $3a; A#4
[9ac0].byte $37; G4
[9ac1].byte $00; Rest
[9ac2].byte $32; D4
[9ac3].byte $b0; Note length: 48
[9ac4].byte $35; F4
[9ac5].byte $a4; Note length: 36
[9ac6].byte $33; D#4
[9ac7].byte $8c; Note length: 12
[9ac8].byte $32; D4
[9ac9].byte $b0; Note length: 48
[9aca].byte $00; Rest
[9acb].byte $8c; Note length: 12
[9acc].byte $2b; G3
[9acd].byte $2e; A#3
[9ace].byte $32; D4
[9acf].byte $36; F#4
[9ad0].byte $b0; Note length: 48
[9ad1].byte $00; Rest
[9ad2].byte $fc; Op: End loop
[9ad3].byte $00; Rest
[9ad4].byte $98; Note length: 24
[9ad5].byte $3b; B4
[9ad6].byte $8c; Note length: 12
[9ad7].byte $3c; C5
[9ad8].byte $3e; D5
[9ad9].byte $00; Rest
[9ada].byte $34; E4
[9adb].byte $00; Rest
[9adc].byte $00; Rest
[9add].byte $3b; B4
[9ade].byte $3b; B4
[9adf].byte $3c; C5
[9ae0].byte $3e; D5
[9ae1].byte $00; Rest
[9ae2].byte $3b; B4
[9ae3].byte $34; E4
[9ae4].byte $37; G4
[9ae5].byte $39; A4
[9ae6].byte $3f; D#5
[9ae7].byte $00; Rest
[9ae8].byte $b0; Note length: 48
[9ae9].byte $3f; D#5
[9aea].byte $8c; Note length: 12
[9aeb].byte $39; A4
[9aec].byte $3f; D#5
[9aed].byte $41; F5
[9aee].byte $3f; D#5
[9aef].byte $2d; A3
[9af0].byte $2d; A3
[9af1].byte $33; D#4
[9af2].byte $00; Rest
[9af3].byte $86; Note length: 6
[9af4].byte $3f; D#5
[9af5].byte $40; E5
[9af6].byte $98; Note length: 24
[9af7].byte $41; F5
[9af8].byte $8c; Note length: 12
[9af9].byte $3d; C#5
[9afa].byte $3a; A#4
[9afb].byte $00; Rest
[9afc].byte $35; F4
[9afd].byte $3a; A#4
[9afe].byte $3d; C#5
[9aff].byte $41; F5
[9b00].byte $41; F5
[9b01].byte $3d; C#5
[9b02].byte $3a; A#4
[9b03].byte $00; Rest
[9b04].byte $3a; A#4
[9b05].byte $3d; C#5
[9b06].byte $3a; A#4
[9b07].byte $3e; D5
[9b08].byte $3f; D#5
[9b09].byte $3e; D5
[9b0a].byte $3a; A#4
[9b0b].byte $36; F#4
[9b0c].byte $33; D#4
[9b0d].byte $36; F#4
[9b0e].byte $33; D#4
[9b0f].byte $32; D4
[9b10].byte $32; D4
[9b11].byte $32; D4
[9b12].byte $00; Rest
[9b13].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9b14].byte MSCRIPT_OP_END; Op: End
[9b15]MSCRIPT_CONFLATE_SQ2:; [$9b15]
[9b15].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9b16].byte $02; '- Reduce volume by 2
[9b17].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9b18].byte $90; '- Duty cycle 2
Constant volume/envelope
[9b19].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9b1a].byte $02; '- 2 iterations
[9b1b].byte $98; Note length: 24
[9b1c].byte $2f; B3
[9b1d].byte $2d; A3
[9b1e].byte $a4; Note length: 36
[9b1f].byte $2a; F#3
[9b20].byte $8c; Note length: 12
[9b21].byte $2b; G3
[9b22].byte $00; Rest
[9b23].byte $2b; G3
[9b24].byte $22; A#2
[9b25].byte $23; B2
[9b26].byte $2b; G3
[9b27].byte $2f; B3
[9b28].byte $34; E4
[9b29].byte $98; Note length: 24
[9b2a].byte $37; G4
[9b2b].byte $8c; Note length: 12
[9b2c].byte $34; E4
[9b2d].byte $2f; B3
[9b2e].byte $2b; G3
[9b2f].byte $98; Note length: 24
[9b30].byte $39; A4
[9b31].byte $8c; Note length: 12
[9b32].byte $2d; A3
[9b33].byte $39; A4
[9b34].byte $00; Rest
[9b35].byte $39; A4
[9b36].byte $2c; G#3
[9b37].byte $2d; A3
[9b38].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9b39].byte $01; '- 1
[9b3a].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9b3b].byte $05; '- Reduce volume by 5
[9b3c].byte $86; Note length: 6
[9b3d].byte $00; Rest
[9b3e].byte $8c; Note length: 12
[9b3f].byte $39; A4
[9b40].byte $3c; C5
[9b41].byte $40; E5
[9b42].byte $92; Note length: 18
[9b43].byte $43; G5
[9b44].byte $8c; Note length: 12
[9b45].byte $3c; C5
[9b46].byte $39; A4
[9b47].byte $34; E4
[9b48].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9b49].byte $00; '- 0
[9b4a].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9b4b].byte $02; '- Reduce volume by 2
[9b4c].byte $a4; Note length: 36
[9b4d].byte $3e; D5
[9b4e].byte $8c; Note length: 12
[9b4f].byte $3a; A#4
[9b50].byte $37; G4
[9b51].byte $32; D4
[9b52].byte $00; Rest
[9b53].byte $2e; A#3
[9b54].byte $86; Note length: 6
[9b55].byte $27; D#3
[9b56].byte $2b; G3
[9b57].byte $2e; A#3
[9b58].byte $32; D4
[9b59].byte $35; F4
[9b5a].byte $32; D4
[9b5b].byte $2e; A#3
[9b5c].byte $2b; G3
[9b5d].byte $25; C#3
[9b5e].byte $29; F3
[9b5f].byte $2c; G#3
[9b60].byte $30; C4
[9b61].byte $33; D#4
[9b62].byte $30; C4
[9b63].byte $8c; Note length: 12
[9b64].byte $2f; B3
[9b65].byte $b0; Note length: 48
[9b66].byte $00; Rest
[9b67].byte $8c; Note length: 12
[9b68].byte $32; D4
[9b69].byte $37; G4
[9b6a].byte $3a; A#4
[9b6b].byte $3e; D5
[9b6c].byte $b0; Note length: 48
[9b6d].byte $00; Rest
[9b6e].byte $fc; Op: End loop
[9b6f].byte $00; Rest
[9b70].byte $98; Note length: 24
[9b71].byte $37; G4
[9b72].byte $8c; Note length: 12
[9b73].byte $39; A4
[9b74].byte $3b; B4
[9b75].byte $00; Rest
[9b76].byte $28; E3
[9b77].byte $00; Rest
[9b78].byte $00; Rest
[9b79].byte $37; G4
[9b7a].byte $37; G4
[9b7b].byte $39; A4
[9b7c].byte $3b; B4
[9b7d].byte $00; Rest
[9b7e].byte $37; G4
[9b7f].byte $2b; G3
[9b80].byte $2f; B3
[9b81].byte $30; C4
[9b82].byte $39; A4
[9b83].byte $00; Rest
[9b84].byte $98; Note length: 24
[9b85].byte $39; A4
[9b86].byte $8c; Note length: 12
[9b87].byte $35; F4
[9b88].byte $30; C4
[9b89].byte $35; F4
[9b8a].byte $39; A4
[9b8b].byte $3c; C5
[9b8c].byte $39; A4
[9b8d].byte $29; F3
[9b8e].byte $29; F3
[9b8f].byte $2d; A3
[9b90].byte $00; Rest
[9b91].byte $86; Note length: 6
[9b92].byte $3b; B4
[9b93].byte $3c; C5
[9b94].byte $98; Note length: 24
[9b95].byte $3d; C#5
[9b96].byte $8c; Note length: 12
[9b97].byte $3a; A#4
[9b98].byte $35; F4
[9b99].byte $00; Rest
[9b9a].byte $31; C#4
[9b9b].byte $35; F4
[9b9c].byte $3a; A#4
[9b9d].byte $3d; C#5
[9b9e].byte $3d; C#5
[9b9f].byte $3a; A#4
[9ba0].byte $35; F4
[9ba1].byte $00; Rest
[9ba2].byte $31; C#4
[9ba3].byte $35; F4
[9ba4].byte $31; C#4
[9ba5].byte $86; Note length: 6
[9ba6].byte $3a; A#4
[9ba7].byte $32; D4
[9ba8].byte $3a; A#4
[9ba9].byte $33; D#4
[9baa].byte $3a; A#4
[9bab].byte $32; D4
[9bac].byte $36; F#4
[9bad].byte $2e; A#3
[9bae].byte $33; D#4
[9baf].byte $2a; F#3
[9bb0].byte $2e; A#3
[9bb1].byte $27; D#3
[9bb2].byte $2a; F#3
[9bb3].byte $22; A#2
[9bb4].byte $2e; A#3
[9bb5].byte $27; D#3
[9bb6].byte $8c; Note length: 12
[9bb7].byte $2b; G3
[9bb8].byte $2b; G3
[9bb9].byte $2a; F#3
[9bba].byte $00; Rest
[9bbb].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9bbc].byte MSCRIPT_OP_END; Op: End
[9bbd]MSCRIPT_CONFLATE_TRI:; [$9bbd]
[9bbd].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9bbe].byte $02; '- 2 iterations
[9bbf].byte $b0; Note length: 48
[9bc0].byte $00; Rest
[9bc1].byte $8c; Note length: 12
[9bc2].byte $10; E3
[9bc3].byte $10; E3
[9bc4].byte $13; G3
[9bc5].byte $10; E3
[9bc6].byte $17; B3
[9bc7].byte $17; B3
[9bc8].byte $10; E3
[9bc9].byte $86; Note length: 6
[9bca].byte $1c; E4
[9bcb].byte $10; E3
[9bcc].byte $8c; Note length: 12
[9bcd].byte $10; E3
[9bce].byte $10; E3
[9bcf].byte $13; G3
[9bd0].byte $10; E3
[9bd1].byte $17; B3
[9bd2].byte $17; B3
[9bd3].byte $10; E3
[9bd4].byte $86; Note length: 6
[9bd5].byte $1c; E4
[9bd6].byte $10; E3
[9bd7].byte $8c; Note length: 12
[9bd8].byte $11; F3
[9bd9].byte $11; F3
[9bda].byte $15; A3
[9bdb].byte $11; F3
[9bdc].byte $18; C4
[9bdd].byte $18; C4
[9bde].byte $11; F3
[9bdf].byte $86; Note length: 6
[9be0].byte $1d; F4
[9be1].byte $11; F3
[9be2].byte $8c; Note length: 12
[9be3].byte $15; A3
[9be4].byte $18; C4
[9be5].byte $1c; E4
[9be6].byte $98; Note length: 24
[9be7].byte $1f; G4
[9be8].byte $8c; Note length: 12
[9be9].byte $1c; E4
[9bea].byte $15; A3
[9beb].byte $86; Note length: 6
[9bec].byte $21; A4
[9bed].byte $15; A3
[9bee].byte $8c; Note length: 12
[9bef].byte $13; G3
[9bf0].byte $13; G3
[9bf1].byte $16; A#3
[9bf2].byte $13; G3
[9bf3].byte $1a; D4
[9bf4].byte $1a; D4
[9bf5].byte $13; G3
[9bf6].byte $86; Note length: 6
[9bf7].byte $1f; G4
[9bf8].byte $13; G3
[9bf9].byte $8c; Note length: 12
[9bfa].byte $0f; D#3
[9bfb].byte $0f; D#3
[9bfc].byte $16; A#3
[9bfd].byte $86; Note length: 6
[9bfe].byte $1b; D#4
[9bff].byte $0f; D#3
[9c00].byte $8c; Note length: 12
[9c01].byte $0d; C#3
[9c02].byte $0d; C#3
[9c03].byte $14; G#3
[9c04].byte $86; Note length: 6
[9c05].byte $19; C#4
[9c06].byte $0d; C#3
[9c07].byte $a4; Note length: 36
[9c08].byte $13; G3
[9c09].byte $86; Note length: 6
[9c0a].byte $14; G#3
[9c0b].byte $15; A3
[9c0c].byte $8c; Note length: 12
[9c0d].byte $16; A#3
[9c0e].byte $1a; D4
[9c0f].byte $1f; G4
[9c10].byte $13; G3
[9c11].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9c12].byte $01; '- 1 loop
[9c13].byte $b0; Note length: 48
[9c14].byte $00; Rest
[9c15].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9c16].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9c17].byte $02; '- 2 loops
[9c18].byte $8c; Note length: 12
[9c19].byte $00; Rest
[9c1a].byte $1f; G4
[9c1b].byte $1d; F4
[9c1c].byte $1b; D#4
[9c1d].byte $1a; D4
[9c1e].byte $16; A#3
[9c1f].byte $13; G3
[9c20].byte $14; G#3
[9c21].byte $15; A3
[9c22].byte $1c; E4
[9c23].byte $23; B4
[9c24].byte $1f; G4
[9c25].byte $21; A4
[9c26].byte $1c; E4
[9c27].byte $00; Rest
[9c28].byte $13; G3
[9c29].byte $15; A3
[9c2a].byte $1c; E4
[9c2b].byte $23; B4
[9c2c].byte $1f; G4
[9c2d].byte $21; A4
[9c2e].byte $13; G3
[9c2f].byte $15; A3
[9c30].byte $10; E3
[9c31].byte $11; F3
[9c32].byte $18; C4
[9c33].byte $21; A4
[9c34].byte $1d; F4
[9c35].byte $1f; G4
[9c36].byte $1d; F4
[9c37].byte $00; Rest
[9c38].byte $0c; C3
[9c39].byte $11; F3
[9c3a].byte $18; C4
[9c3b].byte $21; A4
[9c3c].byte $1f; G4
[9c3d].byte $00; Rest
[9c3e].byte $1d; F4
[9c3f].byte $18; C4
[9c40].byte $11; F3
[9c41].byte $16; A#3
[9c42].byte $1d; F4
[9c43].byte $22; A#4
[9c44].byte $1d; F4
[9c45].byte $24; C5
[9c46].byte $22; A#4
[9c47].byte $00; Rest
[9c48].byte $11; F3
[9c49].byte $16; A#3
[9c4a].byte $1d; F4
[9c4b].byte $24; C5
[9c4c].byte $22; A#4
[9c4d].byte $00; Rest
[9c4e].byte $1d; F4
[9c4f].byte $16; A#3
[9c50].byte $11; F3
[9c51].byte $0f; D#3
[9c52].byte $16; A#3
[9c53].byte $1b; D#4
[9c54].byte $16; A#3
[9c55].byte $1d; F4
[9c56].byte $1b; D#4
[9c57].byte $16; A#3
[9c58].byte $0f; D#3
[9c59].byte $0e; D3
[9c5a].byte $0e; D3
[9c5b].byte $0e; D3
[9c5c].byte $00; Rest
[9c5d].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9c5e].byte MSCRIPT_OP_END; Op: End
[9c5f]MSCRIPT_CONFLATE_NOISE:; [$9c5f]
[9c5f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9c60].byte $02; '- 2 iterations
[9c61].byte $86,$31,$00,$00,$00,$31,$00,$00; [$9c61] byte
[9c69].byte $00,$86,$31,$00,$31,$00,$8c,$21; [$9c69] byte
[9c71].byte $21,$86,$31,$00,$31,$00,$8c,$21; [$9c71] byte
[9c79].byte $86,$31,$00,$31,$00,$31,$00,$8c; [$9c79] byte
[9c81].byte $21,$21,$86,$31,$00,$31,$00,$8c; [$9c81] byte
[9c89].byte $21,$86,$31,$00,$31,$00,$31,$00; [$9c89] byte
[9c91].byte $8c,$21,$21,$86,$31,$00,$31,$00; [$9c91] byte
[9c99].byte $8c,$21,$21,$86,$31,$00,$31,$00; [$9c99] byte
[9ca1].byte $31,$00,$31,$00,$31,$00,$8c,$21; [$9ca1] byte
[9ca9].byte $21,$86,$21,$21,$31,$00,$31,$00; [$9ca9] byte
[9cb1].byte $8c,$21,$21,$86,$31,$00,$31,$00; [$9cb1] byte
[9cb9].byte $8c,$21,$86,$31,$00,$31,$00,$31; [$9cb9] byte
[9cc1].byte $00,$8c,$21,$86,$31,$00,$31,$00; [$9cc1] byte
[9cc9].byte $8c,$21,$86,$31,$00,$8c,$21,$86; [$9cc9] byte
[9cd1].byte $31,$00,$00,$00,$31,$00,$00,$00; [$9cd1] byte
[9cd9].byte $8c,$21,$21,$21,$21; [$9cd9] byte
.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9cdf].byte $01; '- 1 loop
[9ce0].byte $8c,$00,$86,$31,$31,$8c,$21,$00; [$9ce0] byte
[9ce8].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9ce9].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[9cea].byte $02; '- 2 loops
[9ceb].byte $b0,$00,$8c,$00,$31,$86,$31,$31; [$9ceb] byte
[9cf3].byte $31,$00,$8c,$00,$00,$31,$00,$00; [$9cf3] byte
[9cfb].byte $31,$00,$00,$00,$00,$31,$00,$00; [$9cfb] byte
[9d03].byte $31,$00,$00,$00,$00,$31,$00,$00; [$9d03] byte
[9d0b].byte $31,$00,$00,$00,$00,$31,$00,$00; [$9d0b] byte
[9d13].byte $31,$00,$86,$31,$31,$8c,$00,$00; [$9d13] byte
[9d1b].byte $31,$00,$00,$31,$00,$00,$00,$00; [$9d1b] byte
[9d23].byte $31,$00,$00,$31,$00,$00,$00,$00; [$9d23] byte
[9d2b].byte $31,$00,$00,$31,$31,$00,$31,$31; [$9d2b] byte
[9d33].byte $31,$00; [$9d33] byte
.byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9d36].byte MSCRIPT_OP_END; Op: End
[9d37].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for Forepaw.
;
; XREFS:
;
MSCRIPTS_FOREPAW [$PRG5::8f1b]
;============================================================================
[9d38]MSCRIPT_FOREPAW_SQ1:; [$9d38]
[9d38].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9d39].byte $03; '- Reduce volume by 3
[9d3a].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9d3b].byte $50; '- Duty cycle 1
Constant volume/envelope
[9d3c].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9d3d].byte $00; '- Mode 0: Linear decay
[9d3e].byte $90; Note length: 16
[9d3f].byte $1f; G2
[9d40].byte $22; A#2
[9d41].byte $2a; F#3
[9d42].byte $26; D3
[9d43].byte $1f; G2
[9d44].byte $22; A#2
[9d45].byte $2a; F#3
[9d46].byte $26; D3
[9d47].byte $1f; G2
[9d48].byte $22; A#2
[9d49].byte $2a; F#3
[9d4a].byte $26; D3
[9d4b].byte $1f; G2
[9d4c].byte $22; A#2
[9d4d].byte $2a; F#3
[9d4e].byte $26; D3
[9d4f].byte MSCRIPT_OP_PUSH_ADDR; Op: Save address
[9d50].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9d51].byte $02; '- 2 iterations
[9d52].byte $90; Note length: 16
[9d53].byte $1f; G2
[9d54].byte $22; A#2
[9d55].byte $2a; F#3
[9d56].byte $26; D3
[9d57].byte $1f; G2
[9d58].byte $22; A#2
[9d59].byte $2a; F#3
[9d5a].byte $26; D3
[9d5b].byte $1f; G2
[9d5c].byte $22; A#2
[9d5d].byte $2a; F#3
[9d5e].byte $26; D3
[9d5f].byte $1f; G2
[9d60].byte $22; A#2
[9d61].byte $2a; F#3
[9d62].byte $26; D3
[9d63].byte $1f; G2
[9d64].byte $22; A#2
[9d65].byte $2a; F#3
[9d66].byte $26; D3
[9d67].byte $1f; G2
[9d68].byte $22; A#2
[9d69].byte $2a; F#3
[9d6a].byte $26; D3
[9d6b].byte $1f; G2
[9d6c].byte $22; A#2
[9d6d].byte $2a; F#3
[9d6e].byte $26; D3
[9d6f].byte $1f; G2
[9d70].byte $22; A#2
[9d71].byte $2a; F#3
[9d72].byte $26; D3
[9d73].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9d74].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9d75].byte $02; '- 2 iterations
[9d76].byte $a0; Note length: 32
[9d77].byte $32; D4
[9d78].byte $33; D#4
[9d79].byte $c0; Note length: 64
[9d7a].byte $38; G#4
[9d7b].byte $a0; Note length: 32
[9d7c].byte $36; F#4
[9d7d].byte $37; G4
[9d7e].byte $c0; Note length: 64
[9d7f].byte $3e; D5
[9d80].byte $a0; Note length: 32
[9d81].byte $3d; C#5
[9d82].byte $39; A4
[9d83].byte $3c; C5
[9d84].byte $3b; B4
[9d85].byte $c0; Note length: 64
[9d86].byte $37; G4
[9d87].byte $32; D4
[9d88].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9d89].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9d8a].byte $02; '- 2 iterations
[9d8b].byte $90; Note length: 16
[9d8c].byte $26; D3
[9d8d].byte $29; F3
[9d8e].byte $2c; G#3
[9d8f].byte $34; E4
[9d90].byte $2c; G#3
[9d91].byte $29; F3
[9d92].byte $26; D3
[9d93].byte $29; F3
[9d94].byte $26; D3
[9d95].byte $29; F3
[9d96].byte $2c; G#3
[9d97].byte $34; E4
[9d98].byte $2c; G#3
[9d99].byte $29; F3
[9d9a].byte $26; D3
[9d9b].byte $29; F3
[9d9c].byte $2b; G3
[9d9d].byte $2e; A#3
[9d9e].byte $31; C#4
[9d9f].byte $39; A4
[9da0].byte $31; C#4
[9da1].byte $2e; A#3
[9da2].byte $2b; G3
[9da3].byte $2e; A#3
[9da4].byte $2b; G3
[9da5].byte $2e; A#3
[9da6].byte $31; C#4
[9da7].byte $39; A4
[9da8].byte $31; C#4
[9da9].byte $2e; A#3
[9daa].byte $2b; G3
[9dab].byte $25; C#3
[9dac].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9dad].byte MSCRIPT_OP_POP_ADDR; Op: Jump to saved address
[9dae].byte MSCRIPT_OP_END; Op: End
[9daf]MSCRIPT_FOREPAW_SQ2:; [$9daf]
[9daf].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9db0].byte $05; '- Reduce volume by 5
[9db1].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9db2].byte $90; '- Duty cycle 2
Constant volume/envelope
[9db3].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9db4].byte $00; '- Mode 0: Linear decay
[9db5].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9db6].byte $02; '- 2
[9db7].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9db8].byte $11; '- Duty cycle 0
Constant volume/envelope
[9db9].byte $88; Note length: 8
[9dba].byte $00; Rest
[9dbb].byte $90; Note length: 16
[9dbc].byte $1f; G2
[9dbd].byte $22; A#2
[9dbe].byte $2a; F#3
[9dbf].byte $26; D3
[9dc0].byte $1f; G2
[9dc1].byte $22; A#2
[9dc2].byte $2a; F#3
[9dc3].byte $90; Note length: 16
[9dc4].byte $26; D3
[9dc5].byte $90; Note length: 16
[9dc6].byte $1f; G2
[9dc7].byte $22; A#2
[9dc8].byte $2a; F#3
[9dc9].byte $26; D3
[9dca].byte $1f; G2
[9dcb].byte $22; A#2
[9dcc].byte $2a; F#3
[9dcd].byte $88; Note length: 8
[9dce].byte $26; D3
[9dcf].byte MSCRIPT_OP_PUSH_ADDR; Op: Save address
[9dd0].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9dd1].byte $02; '- 2 iterations
[9dd2].byte $88; Note length: 8
[9dd3].byte $00; Rest
[9dd4].byte $90; Note length: 16
[9dd5].byte $1f; G2
[9dd6].byte $22; A#2
[9dd7].byte $2a; F#3
[9dd8].byte $26; D3
[9dd9].byte $1f; G2
[9dda].byte $22; A#2
[9ddb].byte $2a; F#3
[9ddc].byte $90; Note length: 16
[9ddd].byte $26; D3
[9dde].byte $90; Note length: 16
[9ddf].byte $1f; G2
[9de0].byte $22; A#2
[9de1].byte $2a; F#3
[9de2].byte $26; D3
[9de3].byte $1f; G2
[9de4].byte $22; A#2
[9de5].byte $2a; F#3
[9de6].byte $90; Note length: 16
[9de7].byte $26; D3
[9de8].byte $90; Note length: 16
[9de9].byte $1f; G2
[9dea].byte $22; A#2
[9deb].byte $2a; F#3
[9dec].byte $26; D3
[9ded].byte $1f; G2
[9dee].byte $22; A#2
[9def].byte $2a; F#3
[9df0].byte $90; Note length: 16
[9df1].byte $26; D3
[9df2].byte $90; Note length: 16
[9df3].byte $1f; G2
[9df4].byte $22; A#2
[9df5].byte $2a; F#3
[9df6].byte $26; D3
[9df7].byte $1f; G2
[9df8].byte $22; A#2
[9df9].byte $2a; F#3
[9dfa].byte $88; Note length: 8
[9dfb].byte $26; D3
[9dfc].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9dfd].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9dfe].byte $02; '- 2 iterations
[9dff].byte $88; Note length: 8
[9e00].byte $00; Rest
[9e01].byte $32; D4
[9e02].byte $2d; A3
[9e03].byte $2a; F#3
[9e04].byte $28; E3
[9e05].byte $33; D#4
[9e06].byte $2d; A3
[9e07].byte $2a; F#3
[9e08].byte $28; E3
[9e09].byte $38; G#4
[9e0a].byte $32; D4
[9e0b].byte $2d; A3
[9e0c].byte $2a; F#3
[9e0d].byte $28; E3
[9e0e].byte $26; D3
[9e0f].byte $21; A2
[9e10].byte $1f; G2
[9e11].byte $36; F#4
[9e12].byte $32; D4
[9e13].byte $2d; A3
[9e14].byte $2a; F#3
[9e15].byte $37; G4
[9e16].byte $32; D4
[9e17].byte $2c; G#3
[9e18].byte $28; E3
[9e19].byte $3e; D5
[9e1a].byte $3b; B4
[9e1b].byte $34; E4
[9e1c].byte $2f; B3
[9e1d].byte $2a; F#3
[9e1e].byte $27; D#3
[9e1f].byte $26; D3
[9e20].byte $26; D3
[9e21].byte $3d; C#5
[9e22].byte $39; A4
[9e23].byte $36; F#4
[9e24].byte $32; D4
[9e25].byte $39; A4
[9e26].byte $36; F#4
[9e27].byte $32; D4
[9e28].byte $2d; A3
[9e29].byte $3c; C5
[9e2a].byte $39; A4
[9e2b].byte $34; E4
[9e2c].byte $2d; A3
[9e2d].byte $3b; B4
[9e2e].byte $36; F#4
[9e2f].byte $34; E4
[9e30].byte $2f; B3
[9e31].byte $37; G4
[9e32].byte $32; D4
[9e33].byte $2f; B3
[9e34].byte $2b; G3
[9e35].byte $2a; F#3
[9e36].byte $26; D3
[9e37].byte $23; B2
[9e38].byte $1f; G2
[9e39].byte $32; D4
[9e3a].byte $2f; B3
[9e3b].byte $2b; G3
[9e3c].byte $28; E3
[9e3d].byte $26; D3
[9e3e].byte $23; B2
[9e3f].byte $1f; G2
[9e40].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9e41].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9e42].byte $02; '- Reduce volume by 2
[9e43].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9e44].byte $02; '- 2 iterations
[9e45].byte $88; Note length: 8
[9e46].byte $00; Rest
[9e47].byte $90; Note length: 16
[9e48].byte $26; D3
[9e49].byte $29; F3
[9e4a].byte $2c; G#3
[9e4b].byte $34; E4
[9e4c].byte $2c; G#3
[9e4d].byte $29; F3
[9e4e].byte $26; D3
[9e4f].byte $88; Note length: 8
[9e50].byte $29; F3
[9e51].byte $29; F3
[9e52].byte $90; Note length: 16
[9e53].byte $26; D3
[9e54].byte $29; F3
[9e55].byte $2c; G#3
[9e56].byte $34; E4
[9e57].byte $2c; G#3
[9e58].byte $29; F3
[9e59].byte $26; D3
[9e5a].byte $90; Note length: 16
[9e5b].byte $29; F3
[9e5c].byte $90; Note length: 16
[9e5d].byte $2b; G3
[9e5e].byte $2e; A#3
[9e5f].byte $31; C#4
[9e60].byte $39; A4
[9e61].byte $31; C#4
[9e62].byte $2e; A#3
[9e63].byte $2b; G3
[9e64].byte $90; Note length: 16
[9e65].byte $2e; A#3
[9e66].byte $90; Note length: 16
[9e67].byte $2b; G3
[9e68].byte $2e; A#3
[9e69].byte $31; C#4
[9e6a].byte $39; A4
[9e6b].byte $31; C#4
[9e6c].byte $2e; A#3
[9e6d].byte $2b; G3
[9e6e].byte $88; Note length: 8
[9e6f].byte $25; C#3
[9e70].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9e71].byte MSCRIPT_OP_POP_ADDR; Op: Jump to saved address
[9e72].byte MSCRIPT_OP_END; Op: End
[9e73]MSCRIPT_FOREPAW_TRI:; [$9e73]
[9e73].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[9e74].byte $80; '- 128 ticks
[9e75].byte $00; Rest
[9e76].byte $00; Rest
[9e77].byte MSCRIPT_OP_PUSH_ADDR; Op: Save address
[9e78].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9e79].byte $02; '- 2 iterations
[9e7a].byte $90; Note length: 16
[9e7b].byte $36; F#6
[9e7c].byte $37; G6
[9e7d].byte $c0; Note length: 64
[9e7e].byte $39; A6
[9e7f].byte $90; Note length: 16
[9e80].byte $36; F#6
[9e81].byte $37; G6
[9e82].byte $c0; Note length: 64
[9e83].byte $34; E6
[9e84].byte $2d; A5
[9e85].byte $90; Note length: 16
[9e86].byte $36; F#6
[9e87].byte $37; G6
[9e88].byte $c0; Note length: 64
[9e89].byte $39; A6
[9e8a].byte $90; Note length: 16
[9e8b].byte $36; F#6
[9e8c].byte $37; G6
[9e8d].byte $34; E6
[9e8e].byte $33; D#6
[9e8f].byte $32; D6
[9e90].byte $d0; Note length: 80
[9e91].byte $2d; A5
[9e92].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9e93].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9e94].byte $04; '- 4 iterations
[9e95].byte $88; Note length: 8
[9e96].byte $1a; D4
[9e97].byte $00; Rest
[9e98].byte $a0; Note length: 32
[9e99].byte $1a; D4
[9e9a].byte $88; Note length: 8
[9e9b].byte $1a; D4
[9e9c].byte $1a; D4
[9e9d].byte $1a; D4
[9e9e].byte $00; Rest
[9e9f].byte $a0; Note length: 32
[9ea0].byte $1a; D4
[9ea1].byte $88; Note length: 8
[9ea2].byte $1a; D4
[9ea3].byte $1a; D4
[9ea4].byte $1a; D4
[9ea5].byte $00; Rest
[9ea6].byte $a0; Note length: 32
[9ea7].byte $1a; D4
[9ea8].byte $88; Note length: 8
[9ea9].byte $1a; D4
[9eaa].byte $1a; D4
[9eab].byte $1a; D4
[9eac].byte $00; Rest
[9ead].byte $a0; Note length: 32
[9eae].byte $1a; D4
[9eaf].byte $88; Note length: 8
[9eb0].byte $1a; D4
[9eb1].byte $1a; D4
[9eb2].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9eb3].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9eb4].byte $02; '- 2 iterations
[9eb5].byte $b0; Note length: 48
[9eb6].byte $00; Rest
[9eb7].byte $88; Note length: 8
[9eb8].byte $28; E5
[9eb9].byte $20; G#4
[9eba].byte $90; Note length: 16
[9ebb].byte $1a; D4
[9ebc].byte $1d; F4
[9ebd].byte $a0; Note length: 32
[9ebe].byte $00; Rest
[9ebf].byte $b0; Note length: 48
[9ec0].byte $00; Rest
[9ec1].byte $88; Note length: 8
[9ec2].byte $28; E5
[9ec3].byte $20; G#4
[9ec4].byte $90; Note length: 16
[9ec5].byte $1a; D4
[9ec6].byte $1d; F4
[9ec7].byte $a0; Note length: 32
[9ec8].byte $00; Rest
[9ec9].byte $b0; Note length: 48
[9eca].byte $00; Rest
[9ecb].byte $88; Note length: 8
[9ecc].byte $2d; A5
[9ecd].byte $25; C#5
[9ece].byte $90; Note length: 16
[9ecf].byte $1f; G4
[9ed0].byte $22; A#4
[9ed1].byte $a0; Note length: 32
[9ed2].byte $00; Rest
[9ed3].byte $b0; Note length: 48
[9ed4].byte $00; Rest
[9ed5].byte $88; Note length: 8
[9ed6].byte $2d; A5
[9ed7].byte $25; C#5
[9ed8].byte $90; Note length: 16
[9ed9].byte $1f; G4
[9eda].byte $22; A#4
[9edb].byte $a0; Note length: 32
[9edc].byte $19; C#4
[9edd].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9ede].byte MSCRIPT_OP_POP_ADDR; Op: Jump to saved address
[9edf].byte MSCRIPT_OP_END; Op: End
[9ee0]MSCRIPT_FOREPAW_NOISE:; [$9ee0]
[9ee0].byte $ff,$ff; [$9ee0] byte
;============================================================================
; Music for Tower.
;
; XREFS:
;
MSCRIPTS_TOWER [$PRG5::8f23]
;============================================================================
[9ee2]MSCRIPT_TOWER_SQ1:; [$9ee2]
[9ee2].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9ee3].byte $02; '- Reduce volume by 2
[9ee4].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9ee5].byte $90; '- Duty cycle 2
Constant volume/envelope
[9ee6].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9ee7].byte $00; '- Mode 0: Linear decay
[9ee8].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9ee9].byte $02; '- 2 iterations
[9eea].byte $88; Note length: 8
[9eeb].byte $00; Rest
[9eec].byte $3c; C5
[9eed].byte $3b; B4
[9eee].byte $37; G4
[9eef].byte $00; Rest
[9ef0].byte $00; Rest
[9ef1].byte $00; Rest
[9ef2].byte $00; Rest
[9ef3].byte $00; Rest
[9ef4].byte $3a; A#4
[9ef5].byte $39; A4
[9ef6].byte $35; F4
[9ef7].byte $38; G#4
[9ef8].byte $00; Rest
[9ef9].byte $00; Rest
[9efa].byte $00; Rest
[9efb].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9efc].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9efd].byte $02; '- 2 iterations
[9efe].byte $88; Note length: 8
[9eff].byte $00; Rest
[9f00].byte $3c; C5
[9f01].byte $3b; B4
[9f02].byte $98; Note length: 24
[9f03].byte $37; G4
[9f04].byte $88; Note length: 8
[9f05].byte $38; G#4
[9f06].byte $37; G4
[9f07].byte $00; Rest
[9f08].byte $3a; A#4
[9f09].byte $39; A4
[9f0a].byte $35; F4
[9f0b].byte $38; G#4
[9f0c].byte $39; A4
[9f0d].byte $38; G#4
[9f0e].byte $00; Rest
[9f0f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9f10].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9f11].byte $02; '- 2 iterations
[9f12].byte $88; Note length: 8
[9f13].byte $35; F4
[9f14].byte $35; F4
[9f15].byte $35; F4
[9f16].byte $35; F4
[9f17].byte $90; Note length: 16
[9f18].byte $34; E4
[9f19].byte $00; Rest
[9f1a].byte $b0; Note length: 48
[9f1b].byte $00; Rest
[9f1c].byte $88; Note length: 8
[9f1d].byte $35; F4
[9f1e].byte $35; F4
[9f1f].byte $35; F4
[9f20].byte $35; F4
[9f21].byte $90; Note length: 16
[9f22].byte $34; E4
[9f23].byte $c0; Note length: 64
[9f24].byte $00; Rest
[9f25].byte $90; Note length: 16
[9f26].byte $35; F4
[9f27].byte $37; G4
[9f28].byte $37; G4
[9f29].byte $38; G#4
[9f2a].byte $38; G#4
[9f2b].byte $3a; A#4
[9f2c].byte $3a; A#4
[9f2d].byte $3c; C5
[9f2e].byte $3c; C5
[9f2f].byte $3d; C#5
[9f30].byte $a0; Note length: 32
[9f31].byte $35; F4
[9f32].byte $34; E4
[9f33].byte $00; Rest
[9f34].byte $30; C4
[9f35].byte $88; Note length: 8
[9f36].byte $35; F4
[9f37].byte $37; G4
[9f38].byte $00; Rest
[9f39].byte $37; G4
[9f3a].byte $00; Rest
[9f3b].byte $37; G4
[9f3c].byte $35; F4
[9f3d].byte $30; C4
[9f3e].byte $37; G4
[9f3f].byte $37; G4
[9f40].byte $35; F4
[9f41].byte $00; Rest
[9f42].byte $37; G4
[9f43].byte $00; Rest
[9f44].byte $38; G#4
[9f45].byte $37; G4
[9f46].byte $e0; Note length: 96
[9f47].byte $00; Rest
[9f48].byte $88; Note length: 8
[9f49].byte $30; C4
[9f4a].byte $31; C#4
[9f4b].byte $30; C4
[9f4c].byte $00; Rest
[9f4d].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9f4e].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9f4f].byte $02; '- 2 iterations
[9f50].byte $98; Note length: 24
[9f51].byte $31; C#4
[9f52].byte $30; C4
[9f53].byte $90; Note length: 16
[9f54].byte $35; F4
[9f55].byte $a0; Note length: 32
[9f56].byte $34; E4
[9f57].byte $35; F4
[9f58].byte $98; Note length: 24
[9f59].byte $37; G4
[9f5a].byte $34; E4
[9f5b].byte $90; Note length: 16
[9f5c].byte $35; F4
[9f5d].byte $a0; Note length: 32
[9f5e].byte $3d; C#5
[9f5f].byte $88; Note length: 8
[9f60].byte $37; G4
[9f61].byte $35; F4
[9f62].byte $34; E4
[9f63].byte $33; D#4
[9f64].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9f65].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9f66].byte MSCRIPT_OP_END; Op: End
[9f67]MSCRIPT_TOWER_SQ2:; [$9f67]
[9f67].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9f68].byte $02; '- Reduce volume by 2
[9f69].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[9f6a].byte $90; '- Duty cycle 2
Constant volume/envelope
[9f6b].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[9f6c].byte $00; '- Mode 0: Linear decay
[9f6d].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9f6e].byte $04; '- 4
[9f6f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9f70].byte $02; '- 2 iterations
[9f71].byte $88; Note length: 8
[9f72].byte $00; Rest
[9f73].byte $30; C4
[9f74].byte $2f; B3
[9f75].byte $2b; G3
[9f76].byte $00; Rest
[9f77].byte $00; Rest
[9f78].byte $00; Rest
[9f79].byte $00; Rest
[9f7a].byte $00; Rest
[9f7b].byte $2e; A#3
[9f7c].byte $2d; A3
[9f7d].byte $29; F3
[9f7e].byte $2c; G#3
[9f7f].byte $00; Rest
[9f80].byte $00; Rest
[9f81].byte $00; Rest
[9f82].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9f83].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9f84].byte $00; '- 0
[9f85].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9f86].byte $02; '- 2 iterations
[9f87].byte $88; Note length: 8
[9f88].byte $00; Rest
[9f89].byte $37; G4
[9f8a].byte $36; F#4
[9f8b].byte $98; Note length: 24
[9f8c].byte $32; D4
[9f8d].byte $88; Note length: 8
[9f8e].byte $33; D#4
[9f8f].byte $32; D4
[9f90].byte $00; Rest
[9f91].byte $35; F4
[9f92].byte $34; E4
[9f93].byte $30; C4
[9f94].byte $33; D#4
[9f95].byte $34; E4
[9f96].byte $33; D#4
[9f97].byte $00; Rest
[9f98].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9f99].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9f9a].byte $02; '- 2 iterations
[9f9b].byte $88; Note length: 8
[9f9c].byte $30; C4
[9f9d].byte $30; C4
[9f9e].byte $30; C4
[9f9f].byte $30; C4
[9fa0].byte $90; Note length: 16
[9fa1].byte $2f; B3
[9fa2].byte $00; Rest
[9fa3].byte $b0; Note length: 48
[9fa4].byte $00; Rest
[9fa5].byte $88; Note length: 8
[9fa6].byte $00; Rest
[9fa7].byte $00; Rest
[9fa8].byte $30; C4
[9fa9].byte $30; C4
[9faa].byte $90; Note length: 16
[9fab].byte $2f; B3
[9fac].byte $c0; Note length: 64
[9fad].byte $00; Rest
[9fae].byte $90; Note length: 16
[9faf].byte $2c; G#3
[9fb0].byte $30; C4
[9fb1].byte $30; C4
[9fb2].byte $35; F4
[9fb3].byte $35; F4
[9fb4].byte $37; G4
[9fb5].byte $37; G4
[9fb6].byte $38; G#4
[9fb7].byte $38; G#4
[9fb8].byte $3a; A#4
[9fb9].byte $a0; Note length: 32
[9fba].byte $30; C4
[9fbb].byte $2f; B3
[9fbc].byte $00; Rest
[9fbd].byte $2e; A#3
[9fbe].byte $88; Note length: 8
[9fbf].byte $30; C4
[9fc0].byte $34; E4
[9fc1].byte $00; Rest
[9fc2].byte $34; E4
[9fc3].byte $00; Rest
[9fc4].byte $34; E4
[9fc5].byte $30; C4
[9fc6].byte $2c; G#3
[9fc7].byte $34; E4
[9fc8].byte $34; E4
[9fc9].byte $32; D4
[9fca].byte $00; Rest
[9fcb].byte $34; E4
[9fcc].byte $00; Rest
[9fcd].byte $35; F4
[9fce].byte $34; E4
[9fcf].byte $e0; Note length: 96
[9fd0].byte $00; Rest
[9fd1].byte $88; Note length: 8
[9fd2].byte $30; C4
[9fd3].byte $2f; B3
[9fd4].byte $2e; A#3
[9fd5].byte $00; Rest
[9fd6].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9fd7].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9fd8].byte $07; '- Reduce volume by 7
[9fd9].byte MSCRIPT_OP_SET_SQ2_PITCH_BIAS; Op: Set SQ2 pitch bias
[9fda].byte $01; '- 1
[9fdb].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9fdc].byte $02; '- 2 iterations
[9fdd].byte $88; Note length: 8
[9fde].byte $00; Rest
[9fdf].byte $98; Note length: 24
[9fe0].byte $31; C#4
[9fe1].byte $30; C4
[9fe2].byte $90; Note length: 16
[9fe3].byte $35; F4
[9fe4].byte $a0; Note length: 32
[9fe5].byte $34; E4
[9fe6].byte $a0; Note length: 32
[9fe7].byte $35; F4
[9fe8].byte $98; Note length: 24
[9fe9].byte $37; G4
[9fea].byte $34; E4
[9feb].byte $90; Note length: 16
[9fec].byte $35; F4
[9fed].byte $9c; Note length: 28
[9fee].byte $3d; C#5
[9fef].byte $88; Note length: 8
[9ff0].byte $37; G4
[9ff1].byte $35; F4
[9ff2].byte $34; E4
[9ff3].byte $84; Note length: 4
[9ff4].byte $33; D#4
[9ff5].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[9ff6].byte $04; '- Reduce volume by 4
[9ff7].byte MSCRIPT_OP_END_LOOP; Op: End loop
[9ff8].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[9ff9].byte MSCRIPT_OP_END; Op: End
[9ffa]MSCRIPT_TOWER_TRI:; [$9ffa]
[9ffa].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[9ffb].byte $02; '- 2 iterations
[9ffc].byte $88; Note length: 8
[9ffd].byte $18; C4
[9ffe].byte $00; Rest
[9fff].byte $00; Rest
[a000].byte $18; C4
[a001].byte $00; Rest
[a002].byte $00; Rest
[a003].byte $18; C4
[a004].byte $00; Rest
[a005].byte $18; C4
[a006].byte $00; Rest
[a007].byte $00; Rest
[a008].byte $18; C4
[a009].byte $00; Rest
[a00a].byte $00; Rest
[a00b].byte $18; C4
[a00c].byte $18; C4
[a00d].byte $90; Note length: 16
[a00e].byte $18; C4
[a00f].byte $88; Note length: 8
[a010].byte $00; Rest
[a011].byte $18; C4
[a012].byte $00; Rest
[a013].byte $00; Rest
[a014].byte $90; Note length: 16
[a015].byte $18; C4
[a016].byte $18; C4
[a017].byte $88; Note length: 8
[a018].byte $00; Rest
[a019].byte $18; C4
[a01a].byte $00; Rest
[a01b].byte $0c; C3
[a01c].byte $18; C4
[a01d].byte $0c; C3
[a01e].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a01f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a020].byte $02; '- 2 iterations
[a021].byte $88; Note length: 8
[a022].byte $14; G#3
[a023].byte $14; G#3
[a024].byte $14; G#3
[a025].byte $14; G#3
[a026].byte $90; Note length: 16
[a027].byte $13; G3
[a028].byte $88; Note length: 8
[a029].byte $18; C4
[a02a].byte $19; C#4
[a02b].byte $00; Rest
[a02c].byte $19; C#4
[a02d].byte $18; C4
[a02e].byte $13; G3
[a02f].byte $90; Note length: 16
[a030].byte $0c; C3
[a031].byte $88; Note length: 8
[a032].byte $00; Rest
[a033].byte $00; Rest
[a034].byte $14; G#3
[a035].byte $14; G#3
[a036].byte $90; Note length: 16
[a037].byte $13; G3
[a038].byte $00; Rest
[a039].byte $88; Note length: 8
[a03a].byte $17; B3
[a03b].byte $18; C4
[a03c].byte $0c; C3
[a03d].byte $0d; C#3
[a03e].byte $0e; D3
[a03f].byte $00; Rest
[a040].byte $90; Note length: 16
[a041].byte $00; Rest
[a042].byte $88; Note length: 8
[a043].byte $20; G#4
[a044].byte $18; C4
[a045].byte $11; F3
[a046].byte $11; F3
[a047].byte $00; Rest
[a048].byte $11; F3
[a049].byte $1d; F4
[a04a].byte $1d; F4
[a04b].byte $1c; E4
[a04c].byte $18; C4
[a04d].byte $11; F3
[a04e].byte $11; F3
[a04f].byte $00; Rest
[a050].byte $11; F3
[a051].byte $1d; F4
[a052].byte $1d; F4
[a053].byte $1c; E4
[a054].byte $18; C4
[a055].byte $a0; Note length: 32
[a056].byte $14; G#3
[a057].byte $90; Note length: 16
[a058].byte $13; G3
[a059].byte $88; Note length: 8
[a05a].byte $1f; G4
[a05b].byte $13; G3
[a05c].byte $a0; Note length: 32
[a05d].byte $00; Rest
[a05e].byte $98; Note length: 24
[a05f].byte $1f; G4
[a060].byte $88; Note length: 8
[a061].byte $18; C4
[a062].byte $90; Note length: 16
[a063].byte $0c; C3
[a064].byte $88; Note length: 8
[a065].byte $00; Rest
[a066].byte $18; C4
[a067].byte $00; Rest
[a068].byte $18; C4
[a069].byte $0c; C3
[a06a].byte $0c; C3
[a06b].byte $90; Note length: 16
[a06c].byte $0c; C3
[a06d].byte $88; Note length: 8
[a06e].byte $00; Rest
[a06f].byte $18; C4
[a070].byte $00; Rest
[a071].byte $18; C4
[a072].byte $0c; C3
[a073].byte $0c; C3
[a074].byte $00; Rest
[a075].byte $00; Rest
[a076].byte $1f; G4
[a077].byte $24; C5
[a078].byte $1e; F#4
[a079].byte $1d; F4
[a07a].byte $1c; E4
[a07b].byte $14; G#3
[a07c].byte $a0; Note length: 32
[a07d].byte $13; G3
[a07e].byte $88; Note length: 8
[a07f].byte $18; C4
[a080].byte $17; B3
[a081].byte $18; C4
[a082].byte $00; Rest
[a083].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a084].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a085].byte $02; '- 2 iterations
[a086].byte $90; Note length: 16
[a087].byte $13; G3
[a088].byte $88; Note length: 8
[a089].byte $00; Rest
[a08a].byte $90; Note length: 16
[a08b].byte $13; G3
[a08c].byte $88; Note length: 8
[a08d].byte $00; Rest
[a08e].byte $13; G3
[a08f].byte $00; Rest
[a090].byte $13; G3
[a091].byte $00; Rest
[a092].byte $00; Rest
[a093].byte $13; G3
[a094].byte $00; Rest
[a095].byte $00; Rest
[a096].byte $13; G3
[a097].byte $13; G3
[a098].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a099].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a09a].byte $02; '- 2 iterations
[a09b].byte $90; Note length: 16
[a09c].byte $13; G3
[a09d].byte $88; Note length: 8
[a09e].byte $1f; G4
[a09f].byte $90; Note length: 16
[a0a0].byte $13; G3
[a0a1].byte $88; Note length: 8
[a0a2].byte $1f; G4
[a0a3].byte $13; G3
[a0a4].byte $1f; G4
[a0a5].byte $13; G3
[a0a6].byte $13; G3
[a0a7].byte $1f; G4
[a0a8].byte $90; Note length: 16
[a0a9].byte $13; G3
[a0aa].byte $88; Note length: 8
[a0ab].byte $1f; G4
[a0ac].byte $13; G3
[a0ad].byte $1f; G4
[a0ae].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a0af].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a0b0].byte MSCRIPT_OP_END; Op: End
[a0b1]MSCRIPT_TOWER_NOISE:; [$a0b1]
[a0b1].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a0b2].byte $04; '- 4 iterations
[a0b3].byte $88,$21,$31,$31,$21,$31,$31,$21; [$a0b3] byte
[a0bb].byte $31,$21,$31,$31,$21,$31,$31,$21; [$a0bb] byte
[a0c3].byte $31; [$a0c3] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a0c5].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a0c6].byte $02; '- 2 iterations
[a0c7].byte $88,$21,$21,$21,$21,$21,$00,$31; [$a0c7] byte
[a0cf].byte $31,$31,$31,$31,$31,$21,$00,$00; [$a0cf] byte
[a0d7].byte $21,$11,$11,$11,$00,$85,$31,$31; [$a0d7] byte
[a0df].byte $86,$31,$88,$31,$31,$31,$31,$21; [$a0df] byte
[a0e7].byte $00,$21,$00,$21,$21,$31,$00,$31; [$a0e7] byte
[a0ef].byte $00,$31,$31,$21,$00,$31,$00,$31; [$a0ef] byte
[a0f7].byte $31,$31,$31,$21,$21,$31,$00,$31; [$a0f7] byte
[a0ff].byte $00,$31,$00,$31,$00,$85,$31,$31; [$a0ff] byte
[a107].byte $86,$31,$88,$31,$31,$21,$21,$31; [$a107] byte
[a10f].byte $00,$31,$31,$31,$31,$21,$31,$31; [$a10f] byte
[a117].byte $31,$31,$31,$31,$31,$21,$31,$31; [$a117] byte
[a11f].byte $31,$a0,$00,$88,$21,$21,$21,$21; [$a11f] byte
[a127].byte $85,$31,$31,$86,$31,$88,$31,$31; [$a127] byte
[a12f].byte $85,$31,$31,$86,$31,$88,$21,$21; [$a12f] byte
[a137].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a138].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a139].byte $02; '- 2 iterations
[a13a].byte $88,$31,$00,$00,$31,$00,$00,$31; [$a13a] byte
[a142].byte $00,$31,$00,$00,$31,$00,$00,$31; [$a142] byte
[a14a].byte $31; [$a14a] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a14c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a14d].byte $02; '- 2 iterations
[a14e].byte $88,$31,$11,$11,$31,$11,$11,$31; [$a14e] byte
[a156].byte $11,$31,$11,$11,$31,$11,$11,$31; [$a156] byte
[a15e].byte $31; [$a15e] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a160].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a161].byte MSCRIPT_OP_END; Op: End
[a162].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for Eolis.
;
; XREFS:
;
MSCRIPTS_EOLIS [$PRG5::8f2b]
;============================================================================
[a163]MSCRIPT_EOLIS_SQ1:; [$a163]
[a163].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a164].byte $02; '- Reduce volume by 2
[a165].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a166].byte $90; '- Duty cycle 2
Constant volume/envelope
[a167].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[a168].byte $01; '- Mode 1: Curve but held
[a169].byte $e0; Note length: 96
[a16a].byte $00; Rest
[a16b].byte $00; Rest
[a16c].byte $00; Rest
[a16d].byte $b0; Note length: 48
[a16e].byte $00; Rest
[a16f].byte $8c; Note length: 12
[a170].byte $00; Rest
[a171].byte $34; E4
[a172].byte $36; F#4
[a173].byte $38; G#4
[a174].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a175].byte $02; '- 2 iterations
[a176].byte $98; Note length: 24
[a177].byte $39; A4
[a178].byte $8c; Note length: 12
[a179].byte $38; G#4
[a17a].byte $3b; B4
[a17b].byte $39; A4
[a17c].byte $3b; B4
[a17d].byte $3c; C5
[a17e].byte $3e; D5
[a17f].byte $40; E5
[a180].byte $41; F5
[a181].byte $3f; D#5
[a182].byte $40; E5
[a183].byte $b0; Note length: 48
[a184].byte $00; Rest
[a185].byte $98; Note length: 24
[a186].byte $37; G4
[a187].byte $8c; Note length: 12
[a188].byte $36; F#4
[a189].byte $39; A4
[a18a].byte $37; G4
[a18b].byte $39; A4
[a18c].byte $3a; A#4
[a18d].byte $3c; C5
[a18e].byte $3e; D5
[a18f].byte $3f; D#5
[a190].byte $3d; C#5
[a191].byte $3e; D5
[a192].byte $b0; Note length: 48
[a193].byte $00; Rest
[a194].byte $a4; Note length: 36
[a195].byte $3f; D#5
[a196].byte $8c; Note length: 12
[a197].byte $43; G5
[a198].byte $41; F5
[a199].byte $3c; C5
[a19a].byte $00; Rest
[a19b].byte $3e; D5
[a19c].byte $00; Rest
[a19d].byte $3e; D5
[a19e].byte $41; F5
[a19f].byte $3f; D#5
[a1a0].byte $00; Rest
[a1a1].byte $3a; A#4
[a1a2].byte $37; G4
[a1a3].byte $00; Rest
[a1a4].byte $38; G#4
[a1a5].byte $3c; C5
[a1a6].byte $38; G#4
[a1a7].byte $3f; D#5
[a1a8].byte $00; Rest
[a1a9].byte $3f; D#5
[a1aa].byte $00; Rest
[a1ab].byte $38; G#4
[a1ac].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a1ad].byte $01; '- 1 loop
[a1ae].byte $8c; Note length: 12
[a1af].byte $3c; C5
[a1b0].byte $38; G#4
[a1b1].byte $3f; D#5
[a1b2].byte $00; Rest
[a1b3].byte $00; Rest
[a1b4].byte $34; E4
[a1b5].byte $36; F#4
[a1b6].byte $38; G#4
[a1b7].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a1b8].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a1b9].byte $02; '- 2 loops
[a1ba].byte $8c; Note length: 12
[a1bb].byte $3c; C5
[a1bc].byte $38; G#4
[a1bd].byte $3f; D#5
[a1be].byte $00; Rest
[a1bf].byte $3f; D#5
[a1c0].byte $34; E4
[a1c1].byte $2f; B3
[a1c2].byte $2c; G#3
[a1c3].byte $2d; A3
[a1c4].byte $34; E4
[a1c5].byte $2d; A3
[a1c6].byte $32; D4
[a1c7].byte $00; Rest
[a1c8].byte $2f; B3
[a1c9].byte $2b; G3
[a1ca].byte $00; Rest
[a1cb].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a1cc].byte $02; '- 2 iterations
[a1cd].byte $b0; Note length: 48
[a1ce].byte $40; E5
[a1cf].byte $98; Note length: 24
[a1d0].byte $39; A4
[a1d1].byte $40; E5
[a1d2].byte $3f; D#5
[a1d3].byte $8c; Note length: 12
[a1d4].byte $41; F5
[a1d5].byte $98; Note length: 24
[a1d6].byte $40; E5
[a1d7].byte $8c; Note length: 12
[a1d8].byte $3c; C5
[a1d9].byte $39; A4
[a1da].byte $34; E4
[a1db].byte $38; G#4
[a1dc].byte $38; G#4
[a1dd].byte $3b; B4
[a1de].byte $39; A4
[a1df].byte $b0; Note length: 48
[a1e0].byte $00; Rest
[a1e1].byte $98; Note length: 24
[a1e2].byte $32; D4
[a1e3].byte $8c; Note length: 12
[a1e4].byte $34; E4
[a1e5].byte $30; C4
[a1e6].byte $b0; Note length: 48
[a1e7].byte $00; Rest
[a1e8].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a1e9].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a1ea].byte $02; '- 2 iterations
[a1eb].byte $b0; Note length: 48
[a1ec].byte $00; Rest
[a1ed].byte $8c; Note length: 12
[a1ee].byte $00; Rest
[a1ef].byte $2d; A3
[a1f0].byte $98; Note length: 24
[a1f1].byte $00; Rest
[a1f2].byte $00; Rest
[a1f3].byte $8c; Note length: 12
[a1f4].byte $00; Rest
[a1f5].byte $28; E3
[a1f6].byte $2d; A3
[a1f7].byte $2c; G#3
[a1f8].byte $29; F3
[a1f9].byte $26; D3
[a1fa].byte $b0; Note length: 48
[a1fb].byte $00; Rest
[a1fc].byte $8c; Note length: 12
[a1fd].byte $00; Rest
[a1fe].byte $2d; A3
[a1ff].byte $98; Note length: 24
[a200].byte $00; Rest
[a201].byte $8c; Note length: 12
[a202].byte $00; Rest
[a203].byte $34; E4
[a204].byte $33; D#4
[a205].byte $2f; B3
[a206].byte $32; D4
[a207].byte $31; C#4
[a208].byte $2d; A3
[a209].byte $30; C4
[a20a].byte $fc; Op: End loop
[a20b].byte $2d; A3
[a20c].byte $00; Rest
[a20d].byte $c8; Note length: 72
[a20e].byte $00; Rest
[a20f].byte $e0; Note length: 96
[a210].byte $00; Rest
[a211].byte $00; Rest
[a212].byte $b0; Note length: 48
[a213].byte $00; Rest
[a214].byte $8c; Note length: 12
[a215].byte $00; Rest
[a216].byte $2b; G3
[a217].byte $2a; F#3
[a218].byte $29; F3
[a219].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a21a].byte MSCRIPT_OP_END; Op: End
[a21b]MSCRIPT_EOLIS_SQ2:; [$a21b]
[a21b].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a21c].byte $02; '- Reduce volume by 2
[a21d].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a21e].byte $90; '- Duty cycle 2
Constant volume/envelope
[a21f].byte $e0; Note length: 96
[a220].byte $00; Rest
[a221].byte $00; Rest
[a222].byte $00; Rest
[a223].byte $b0; Note length: 48
[a224].byte $00; Rest
[a225].byte $8c; Note length: 12
[a226].byte $00; Rest
[a227].byte $28; E3
[a228].byte $33; D#4
[a229].byte $32; D4
[a22a].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a22b].byte $02; '- 2 iterations
[a22c].byte $98; Note length: 24
[a22d].byte $30; C4
[a22e].byte $8c; Note length: 12
[a22f].byte $2f; B3
[a230].byte $32; D4
[a231].byte $30; C4
[a232].byte $34; E4
[a233].byte $39; A4
[a234].byte $3b; B4
[a235].byte $3c; C5
[a236].byte $3e; D5
[a237].byte $3b; B4
[a238].byte $3c; C5
[a239].byte $b0; Note length: 48
[a23a].byte $00; Rest
[a23b].byte $98; Note length: 24
[a23c].byte $2e; A#3
[a23d].byte $8c; Note length: 12
[a23e].byte $2d; A3
[a23f].byte $30; C4
[a240].byte $2e; A#3
[a241].byte $32; D4
[a242].byte $37; G4
[a243].byte $39; A4
[a244].byte $3a; A#4
[a245].byte $3c; C5
[a246].byte $39; A4
[a247].byte $3a; A#4
[a248].byte $b0; Note length: 48
[a249].byte $00; Rest
[a24a].byte $a4; Note length: 36
[a24b].byte $3c; C5
[a24c].byte $8c; Note length: 12
[a24d].byte $3f; D#5
[a24e].byte $3e; D5
[a24f].byte $39; A4
[a250].byte $00; Rest
[a251].byte $3a; A#4
[a252].byte $00; Rest
[a253].byte $3a; A#4
[a254].byte $3e; D5
[a255].byte $3c; C5
[a256].byte $00; Rest
[a257].byte $33; D#4
[a258].byte $30; C4
[a259].byte $00; Rest
[a25a].byte $30; C4
[a25b].byte $33; D#4
[a25c].byte $30; C4
[a25d].byte $37; G4
[a25e].byte $00; Rest
[a25f].byte $37; G4
[a260].byte $00; Rest
[a261].byte $30; C4
[a262].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a263].byte $01; '- 1 loop
[a264].byte $8c; Note length: 12
[a265].byte $33; D#4
[a266].byte $30; C4
[a267].byte $37; G4
[a268].byte $00; Rest
[a269].byte $00; Rest
[a26a].byte $00; Rest
[a26b].byte $33; D#4
[a26c].byte $32; D4
[a26d].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a26e].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a26f].byte $02; '- 2 loops
[a270].byte $8c; Note length: 12
[a271].byte $33; D#4
[a272].byte $30; C4
[a273].byte $37; G4
[a274].byte $00; Rest
[a275].byte $37; G4
[a276].byte $2f; B3
[a277].byte $2c; G#3
[a278].byte $28; E3
[a279].byte $24; C3
[a27a].byte $2d; A3
[a27b].byte $24; C3
[a27c].byte $2f; B3
[a27d].byte $00; Rest
[a27e].byte $2b; G3
[a27f].byte $26; D3
[a280].byte $00; Rest
[a281].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a282].byte $02; '- 2 iterations
[a283].byte $b0; Note length: 48
[a284].byte $3c; C5
[a285].byte $98; Note length: 24
[a286].byte $34; E4
[a287].byte $3c; C5
[a288].byte $3b; B4
[a289].byte $8c; Note length: 12
[a28a].byte $3e; D5
[a28b].byte $98; Note length: 24
[a28c].byte $3c; C5
[a28d].byte $8c; Note length: 12
[a28e].byte $39; A4
[a28f].byte $34; E4
[a290].byte $30; C4
[a291].byte $32; D4
[a292].byte $32; D4
[a293].byte $34; E4
[a294].byte $30; C4
[a295].byte $b0; Note length: 48
[a296].byte $00; Rest
[a297].byte $98; Note length: 24
[a298].byte $2f; B3
[a299].byte $8c; Note length: 12
[a29a].byte $30; C4
[a29b].byte $2d; A3
[a29c].byte $b0; Note length: 48
[a29d].byte $00; Rest
[a29e].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a29f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a2a0].byte $02; '- 2 iterations
[a2a1].byte $b0; Note length: 48
[a2a2].byte $00; Rest
[a2a3].byte $8c; Note length: 12
[a2a4].byte $00; Rest
[a2a5].byte $23; B2
[a2a6].byte $98; Note length: 24
[a2a7].byte $00; Rest
[a2a8].byte $00; Rest
[a2a9].byte $8c; Note length: 12
[a2aa].byte $00; Rest
[a2ab].byte $23; B2
[a2ac].byte $28; E3
[a2ad].byte $27; D#3
[a2ae].byte $24; C3
[a2af].byte $21; A2
[a2b0].byte $b0; Note length: 48
[a2b1].byte $00; Rest
[a2b2].byte $8c; Note length: 12
[a2b3].byte $00; Rest
[a2b4].byte $23; B2
[a2b5].byte $98; Note length: 24
[a2b6].byte $00; Rest
[a2b7].byte $8c; Note length: 12
[a2b8].byte $00; Rest
[a2b9].byte $2f; B3
[a2ba].byte $2e; A#3
[a2bb].byte $2a; F#3
[a2bc].byte $2d; A3
[a2bd].byte $2c; G#3
[a2be].byte $28; E3
[a2bf].byte $2b; G3
[a2c0].byte $fc; Op: End loop
[a2c1].byte $2a; F#3
[a2c2].byte $00; Rest
[a2c3].byte $c8; Note length: 72
[a2c4].byte $00; Rest
[a2c5].byte $e0; Note length: 96
[a2c6].byte $00; Rest
[a2c7].byte $00; Rest
[a2c8].byte $b0; Note length: 48
[a2c9].byte $00; Rest
[a2ca].byte $8c; Note length: 12
[a2cb].byte $00; Rest
[a2cc].byte $26; D3
[a2cd].byte $25; C#3
[a2ce].byte $24; C3
[a2cf].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a2d0].byte MSCRIPT_OP_END; Op: End
[a2d1]MSCRIPT_EOLIS_TRI:; [$a2d1]
[a2d1].byte $8c; Note length: 12
[a2d2].byte $15; A3
[a2d3].byte $00; Rest
[a2d4].byte $21; A4
[a2d5].byte $15; A3
[a2d6].byte $1a; D4
[a2d7].byte $1c; E4
[a2d8].byte $00; Rest
[a2d9].byte $10; E3
[a2da].byte $13; G3
[a2db].byte $15; A3
[a2dc].byte $21; A4
[a2dd].byte $15; A3
[a2de].byte $1a; D4
[a2df].byte $1c; E4
[a2e0].byte $00; Rest
[a2e1].byte $10; E3
[a2e2].byte $15; A3
[a2e3].byte $00; Rest
[a2e4].byte $21; A4
[a2e5].byte $15; A3
[a2e6].byte $1a; D4
[a2e7].byte $1c; E4
[a2e8].byte $10; E3
[a2e9].byte $13; G3
[a2ea].byte $15; A3
[a2eb].byte $17; B3
[a2ec].byte $18; C4
[a2ed].byte $1a; D4
[a2ee].byte $00; Rest
[a2ef].byte $1c; E4
[a2f0].byte $17; B3
[a2f1].byte $10; E3
[a2f2].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a2f3].byte $02; '- 2 iterations
[a2f4].byte $98; Note length: 24
[a2f5].byte $15; A3
[a2f6].byte $8c; Note length: 12
[a2f7].byte $21; A4
[a2f8].byte $1c; E4
[a2f9].byte $10; E3
[a2fa].byte $1c; E4
[a2fb].byte $00; Rest
[a2fc].byte $10; E3
[a2fd].byte $15; A3
[a2fe].byte $1f; G4
[a2ff].byte $21; A4
[a300].byte $1c; E4
[a301].byte $00; Rest
[a302].byte $18; C4
[a303].byte $15; A3
[a304].byte $10; E3
[a305].byte $98; Note length: 24
[a306].byte $13; G3
[a307].byte $8c; Note length: 12
[a308].byte $1f; G4
[a309].byte $1a; D4
[a30a].byte $0e; D3
[a30b].byte $1a; D4
[a30c].byte $00; Rest
[a30d].byte $0e; D3
[a30e].byte $13; G3
[a30f].byte $1d; F4
[a310].byte $1f; G4
[a311].byte $1a; D4
[a312].byte $00; Rest
[a313].byte $16; A#3
[a314].byte $13; G3
[a315].byte $0e; D3
[a316].byte $0c; C3
[a317].byte $0c; C3
[a318].byte $18; C4
[a319].byte $0c; C3
[a31a].byte $11; F3
[a31b].byte $1d; F4
[a31c].byte $00; Rest
[a31d].byte $11; F3
[a31e].byte $16; A#3
[a31f].byte $00; Rest
[a320].byte $22; A#4
[a321].byte $0f; D#3
[a322].byte $00; Rest
[a323].byte $1b; D#4
[a324].byte $16; A#3
[a325].byte $0f; D#3
[a326].byte $14; G#3
[a327].byte $1a; D4
[a328].byte $14; G#3
[a329].byte $1b; D#4
[a32a].byte $00; Rest
[a32b].byte $1b; D#4
[a32c].byte $00; Rest
[a32d].byte $0f; D#3
[a32e].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a32f].byte $01; '- 1 loop
[a330].byte $8c; Note length: 12
[a331].byte $14; G#3
[a332].byte $20; G#4
[a333].byte $14; G#3
[a334].byte $11; F3
[a335].byte $10; E3
[a336].byte $10; E3
[a337].byte $12; F#3
[a338].byte $14; G#3
[a339].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a33a].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a33b].byte $02; '- 2 loops
[a33c].byte $8c; Note length: 12
[a33d].byte $14; G#3
[a33e].byte $20; G#4
[a33f].byte $14; G#3
[a340].byte $00; Rest
[a341].byte $10; E3
[a342].byte $10; E3
[a343].byte $12; F#3
[a344].byte $14; G#3
[a345].byte $15; A3
[a346].byte $1c; E4
[a347].byte $15; A3
[a348].byte $1a; D4
[a349].byte $00; Rest
[a34a].byte $17; B3
[a34b].byte $13; G3
[a34c].byte $00; Rest
[a34d].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a34e].byte $02; '- 2 iterations
[a34f].byte $8c; Note length: 12
[a350].byte $15; A3
[a351].byte $00; Rest
[a352].byte $21; A4
[a353].byte $10; E3
[a354].byte $13; G3
[a355].byte $15; A3
[a356].byte $00; Rest
[a357].byte $10; E3
[a358].byte $14; G#3
[a359].byte $17; B3
[a35a].byte $10; E3
[a35b].byte $15; A3
[a35c].byte $00; Rest
[a35d].byte $21; A4
[a35e].byte $1c; E4
[a35f].byte $15; A3
[a360].byte $98; Note length: 24
[a361].byte $10; E3
[a362].byte $8c; Note length: 12
[a363].byte $1c; E4
[a364].byte $15; A3
[a365].byte $00; Rest
[a366].byte $20; G#4
[a367].byte $21; A4
[a368].byte $1c; E4
[a369].byte $10; E3
[a36a].byte $12; F#3
[a36b].byte $14; G#3
[a36c].byte $15; A3
[a36d].byte $00; Rest
[a36e].byte $1c; E4
[a36f].byte $1b; D#4
[a370].byte $1a; D4
[a371].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a372].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a373].byte $02; '- 2 iterations
[a374].byte $8c; Note length: 12
[a375].byte $1c; E4
[a376].byte $10; E3
[a377].byte $11; F3
[a378].byte $10; E3
[a379].byte $00; Rest
[a37a].byte $11; F3
[a37b].byte $00; Rest
[a37c].byte $10; E3
[a37d].byte $1c; E4
[a37e].byte $10; E3
[a37f].byte $11; F3
[a380].byte $10; E3
[a381].byte $00; Rest
[a382].byte $1c; E4
[a383].byte $1b; D#4
[a384].byte $17; B3
[a385].byte $10; E3
[a386].byte $10; E3
[a387].byte $11; F3
[a388].byte $10; E3
[a389].byte $00; Rest
[a38a].byte $11; F3
[a38b].byte $00; Rest
[a38c].byte $10; E3
[a38d].byte $00; Rest
[a38e].byte $10; E3
[a38f].byte $11; F3
[a390].byte $10; E3
[a391].byte $00; Rest
[a392].byte $12; F#3
[a393].byte $11; F3
[a394].byte $10; E3
[a395].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a396].byte $15; A3
[a397].byte $00; Rest
[a398].byte $21; A4
[a399].byte $15; A3
[a39a].byte $1a; D4
[a39b].byte $1c; E4
[a39c].byte $00; Rest
[a39d].byte $10; E3
[a39e].byte $13; G3
[a39f].byte $15; A3
[a3a0].byte $21; A4
[a3a1].byte $15; A3
[a3a2].byte $1a; D4
[a3a3].byte $1c; E4
[a3a4].byte $10; E3
[a3a5].byte $13; G3
[a3a6].byte $15; A3
[a3a7].byte $00; Rest
[a3a8].byte $21; A4
[a3a9].byte $15; A3
[a3aa].byte $1a; D4
[a3ab].byte $1c; E4
[a3ac].byte $00; Rest
[a3ad].byte $10; E3
[a3ae].byte $13; G3
[a3af].byte $15; A3
[a3b0].byte $21; A4
[a3b1].byte $20; G#4
[a3b2].byte $00; Rest
[a3b3].byte $15; A3
[a3b4].byte $14; G#3
[a3b5].byte $13; G3
[a3b6].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a3b7].byte MSCRIPT_OP_END; Op: End
[a3b8]MSCRIPT_EOLIS_NOISE:; [$a3b8]
[a3b8].byte $8c,$3c,$3c,$30,$3c,$3c,$30,$3c; [$a3b8] byte
[a3c0].byte $3c,$3c,$3c,$30,$3c,$3c,$30,$3c; [$a3c0] byte
[a3c8].byte $3c,$3c,$3c,$30,$3c,$3c,$30,$3c; [$a3c8] byte
[a3d0].byte $3c,$30,$30,$30,$30,$00,$3c,$3c; [$a3d0] byte
[a3d8].byte $3c; [$a3d8] byte
.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a3da].byte $02; '- 2 iterations
[a3db].byte $8c,$3c,$3c,$30,$3c,$3c,$3c,$30; [$a3db] byte
[a3e3].byte $3c,$3c,$3c,$30,$3c,$3c,$3c,$30; [$a3e3] byte
[a3eb].byte $3c,$3c,$3c,$30,$3c,$3c,$3c,$30; [$a3eb] byte
[a3f3].byte $3c,$3c,$3c,$30,$3c,$3c,$3c,$30; [$a3f3] byte
[a3fb].byte $3c,$3c,$3c,$30,$3c,$3c,$3c,$30; [$a3fb] byte
[a403].byte $3c,$3c,$3c,$30,$3c,$3c,$30,$30; [$a403] byte
[a40b].byte $30,$3c,$3c,$30,$3c,$3c,$30,$3c; [$a40b] byte
[a413].byte $3c; [$a413] byte
.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a415].byte $01; '- 1 loop
[a416].byte $8c,$3c,$3c,$30,$3c,$3c,$30,$3c; [$a416] byte
[a41e].byte $3c; [$a41e] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a420].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a421].byte $02; '- 2 loops
[a422].byte $8c,$3c,$3c,$30,$3c,$30,$3c,$3c; [$a422] byte
[a42a].byte $3c,$30,$30,$30,$30,$00,$30,$30; [$a42a] byte
[a432].byte $00; [$a432] byte
.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a434].byte $02; '- 2 iterations
[a435].byte $8c,$3c,$3c,$30,$3c,$3c,$30,$00; [$a435] byte
[a43d].byte $3c,$3c,$3c,$30,$3c,$3c,$30,$00; [$a43d] byte
[a445].byte $3c,$3c,$3c,$30,$3c,$3c,$30,$00; [$a445] byte
[a44d].byte $3c,$3c,$3c,$30,$3c,$3c,$30,$30; [$a44d] byte
[a455].byte $30; [$a455] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a457].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a458].byte $02; '- 2 iterations
[a459].byte $8c,$3c,$3c,$3c,$3c,$3c,$30,$3c; [$a459] byte
[a461].byte $3c,$3c,$3c,$3c,$3c,$3c,$30,$30; [$a461] byte
[a469].byte $30,$3c,$3c,$3c,$3c,$3c,$30,$3c; [$a469] byte
[a471].byte $3c,$3c,$30,$3c,$3c,$3c,$3c,$86; [$a471] byte
[a479].byte $3c,$3c,$8c,$30; [$a479] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a47e].byte $3c,$00,$30,$3c,$3c,$30,$3c,$3c; [$a47e] byte
[a486].byte $3c,$00,$30,$3c,$3c,$30,$3c,$3c; [$a486] byte
[a48e].byte $3c,$00,$30,$3c,$3c,$30,$3c,$3c; [$a48e] byte
[a496].byte $3c,$3c,$30,$3c,$3c,$30,$30,$30; [$a496] byte
[a49e].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a49f].byte MSCRIPT_OP_END; Op: End
[a4a0].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for the death screen.
;
; XREFS:
;
MSCRIPTS_MANTRA [$PRG5::8f33]
;============================================================================
[a4a1]MSCRIPT_MANTRA_SQ1:; [$a4a1]
[a4a1].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a4a2].byte $04; '- Reduce volume by 4
[a4a3].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a4a4].byte $90; '- Duty cycle 2
Constant volume/envelope
[a4a5].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[a4a6].byte $02; '- Mode 2: Pluck
[a4a7].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a4a8].byte $02; '- 2 iterations
[a4a9].byte $a0; Note length: 32
[a4aa].byte $34; E4
[a4ab].byte $90; Note length: 16
[a4ac].byte $33; D#4
[a4ad].byte $34; E4
[a4ae].byte $a0; Note length: 32
[a4af].byte $36; F#4
[a4b0].byte $90; Note length: 16
[a4b1].byte $3b; B4
[a4b2].byte $b0; Note length: 48
[a4b3].byte $37; G4
[a4b4].byte $90; Note length: 16
[a4b5].byte $36; F#4
[a4b6].byte $37; G4
[a4b7].byte $a0; Note length: 32
[a4b8].byte $39; A4
[a4b9].byte $90; Note length: 16
[a4ba].byte $3e; D5
[a4bb].byte $c0; Note length: 64
[a4bc].byte $3b; B4
[a4bd].byte $90; Note length: 16
[a4be].byte $37; G4
[a4bf].byte $3c; C5
[a4c0].byte $3b; B4
[a4c1].byte $39; A4
[a4c2].byte $37; G4
[a4c3].byte $b0; Note length: 48
[a4c4].byte $39; A4
[a4c5].byte $90; Note length: 16
[a4c6].byte $36; F#4
[a4c7].byte $3b; B4
[a4c8].byte $39; A4
[a4c9].byte $37; G4
[a4ca].byte $36; F#4
[a4cb].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a4cc].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a4cd].byte $02; '- 2 iterations
[a4ce].byte $a0; Note length: 32
[a4cf].byte $34; E4
[a4d0].byte $90; Note length: 16
[a4d1].byte $33; D#4
[a4d2].byte $34; E4
[a4d3].byte $a0; Note length: 32
[a4d4].byte $36; F#4
[a4d5].byte $90; Note length: 16
[a4d6].byte $3b; B4
[a4d7].byte $b0; Note length: 48
[a4d8].byte $37; G4
[a4d9].byte $90; Note length: 16
[a4da].byte $36; F#4
[a4db].byte $37; G4
[a4dc].byte $a0; Note length: 32
[a4dd].byte $39; A4
[a4de].byte $90; Note length: 16
[a4df].byte $3e; D5
[a4e0].byte $c0; Note length: 64
[a4e1].byte $3b; B4
[a4e2].byte $90; Note length: 16
[a4e3].byte $37; G4
[a4e4].byte $3c; C5
[a4e5].byte $3b; B4
[a4e6].byte $39; A4
[a4e7].byte $37; G4
[a4e8].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a4e9].byte $01; '- 1 loop
[a4ea].byte $b0; Note length: 48
[a4eb].byte $39; A4
[a4ec].byte $90; Note length: 16
[a4ed].byte $36; F#4
[a4ee].byte $3b; B4
[a4ef].byte $39; A4
[a4f0].byte $37; G4
[a4f1].byte $36; F#4
[a4f2].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a4f3].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a4f4].byte $02; '- 2 loops
[a4f5].byte $90; Note length: 16
[a4f6].byte $39; A4
[a4f7].byte $37; G4
[a4f8].byte $36; F#4
[a4f9].byte $b0; Note length: 48
[a4fa].byte $3b; B4
[a4fb].byte $a0; Note length: 32
[a4fc].byte $2f; B3
[a4fd].byte $90; Note length: 16
[a4fe].byte $3b; B4
[a4ff].byte $3b; B4
[a500].byte $3b; B4
[a501].byte $3b; B4
[a502].byte $a0; Note length: 32
[a503].byte $3b; B4
[a504].byte $90; Note length: 16
[a505].byte $3e; D5
[a506].byte $d0; Note length: 80
[a507].byte $3c; C5
[a508].byte $90; Note length: 16
[a509].byte $3c; C5
[a50a].byte $3b; B4
[a50b].byte $39; A4
[a50c].byte $37; G4
[a50d].byte $a0; Note length: 32
[a50e].byte $36; F#4
[a50f].byte $40; E5
[a510].byte $3e; D5
[a511].byte $39; A4
[a512].byte $b0; Note length: 48
[a513].byte $3c; C5
[a514].byte $a0; Note length: 32
[a515].byte $3b; B4
[a516].byte $90; Note length: 16
[a517].byte $3b; B4
[a518].byte $3c; C5
[a519].byte $3e; D5
[a51a].byte $b0; Note length: 48
[a51b].byte $40; E5
[a51c].byte $90; Note length: 16
[a51d].byte $37; G4
[a51e].byte $c0; Note length: 64
[a51f].byte $37; G4
[a520].byte $a0; Note length: 32
[a521].byte $3e; D5
[a522].byte $3c; C5
[a523].byte $37; G4
[a524].byte $39; A4
[a525].byte $d6; Note length: 86
[a526].byte $3b; B4
[a527].byte $95; Note length: 21
[a528].byte $39; A4
[a529].byte $37; G4
[a52a].byte $a0; Note length: 32
[a52b].byte $36; F#4
[a52c].byte $e0; Note length: 96
[a52d].byte $00; Rest
[a52e].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a52f].byte MSCRIPT_OP_END; Op: End
[a530]MSCRIPT_MANTRA_SQ2:; [$a530]
[a530].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a531].byte $06; '- Reduce volume by 6
[a532].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a533].byte $90; '- Duty cycle 2
Constant volume/envelope
[a534].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[a535].byte $02; '- Mode 2: Pluck
[a536].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[a537].byte $80; '- 128 ticks
[a538].byte $00; Rest
[a539].byte $00; Rest
[a53a].byte $00; Rest
[a53b].byte $00; Rest
[a53c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a53d].byte $02; '- 2 iterations
[a53e].byte $a0; Note length: 32
[a53f].byte $2b; G3
[a540].byte $90; Note length: 16
[a541].byte $2a; F#3
[a542].byte $2b; G3
[a543].byte $a0; Note length: 32
[a544].byte $2d; A3
[a545].byte $90; Note length: 16
[a546].byte $2a; F#3
[a547].byte $b0; Note length: 48
[a548].byte $2f; B3
[a549].byte $90; Note length: 16
[a54a].byte $2d; A3
[a54b].byte $2f; B3
[a54c].byte $a0; Note length: 32
[a54d].byte $30; C4
[a54e].byte $90; Note length: 16
[a54f].byte $36; F#4
[a550].byte $c0; Note length: 64
[a551].byte $32; D4
[a552].byte $90; Note length: 16
[a553].byte $2f; B3
[a554].byte $34; E4
[a555].byte $32; D4
[a556].byte $30; C4
[a557].byte $2f; B3
[a558].byte $b0; Note length: 48
[a559].byte $34; E4
[a55a].byte $90; Note length: 16
[a55b].byte $31; C#4
[a55c].byte $33; D#4
[a55d].byte $31; C#4
[a55e].byte $2f; B3
[a55f].byte $2d; A3
[a560].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a561].byte $2b; G3
[a562].byte $28; E3
[a563].byte $2a; F#3
[a564].byte $2b; G3
[a565].byte $2d; A3
[a566].byte $2a; F#3
[a567].byte $2d; A3
[a568].byte $2f; B3
[a569].byte $26; D3
[a56a].byte $2b; G3
[a56b].byte $2d; A3
[a56c].byte $2f; B3
[a56d].byte $30; C4
[a56e].byte $2d; A3
[a56f].byte $36; F#4
[a570].byte $32; D4
[a571].byte $2b; G3
[a572].byte $2f; B3
[a573].byte $2b; G3
[a574].byte $2f; B3
[a575].byte $34; E4
[a576].byte $32; D4
[a577].byte $30; C4
[a578].byte $2f; B3
[a579].byte $31; C#4
[a57a].byte $34; E4
[a57b].byte $31; C#4
[a57c].byte $a0; Note length: 32
[a57d].byte $33; D#4
[a57e].byte $90; Note length: 16
[a57f].byte $2b; G3
[a580].byte $a0; Note length: 32
[a581].byte $2a; F#3
[a582].byte $90; Note length: 16
[a583].byte $38; G#4
[a584].byte $38; G#4
[a585].byte $38; G#4
[a586].byte $38; G#4
[a587].byte $a0; Note length: 32
[a588].byte $38; G#4
[a589].byte $90; Note length: 16
[a58a].byte $3b; B4
[a58b].byte $d0; Note length: 80
[a58c].byte $39; A4
[a58d].byte $90; Note length: 16
[a58e].byte $39; A4
[a58f].byte $37; G4
[a590].byte $36; F#4
[a591].byte $34; E4
[a592].byte $a0; Note length: 32
[a593].byte $32; D4
[a594].byte $3c; C5
[a595].byte $39; A4
[a596].byte $36; F#4
[a597].byte $b0; Note length: 48
[a598].byte $38; G#4
[a599].byte $a0; Note length: 32
[a59a].byte $37; G4
[a59b].byte $90; Note length: 16
[a59c].byte $37; G4
[a59d].byte $39; A4
[a59e].byte $3b; B4
[a59f].byte $b0; Note length: 48
[a5a0].byte $3c; C5
[a5a1].byte $90; Note length: 16
[a5a2].byte $34; E4
[a5a3].byte $a0; Note length: 32
[a5a4].byte $34; E4
[a5a5].byte $90; Note length: 16
[a5a6].byte $30; C4
[a5a7].byte $34; E4
[a5a8].byte $39; A4
[a5a9].byte $32; D4
[a5aa].byte $39; A4
[a5ab].byte $30; C4
[a5ac].byte $34; E4
[a5ad].byte $2b; G3
[a5ae].byte $34; E4
[a5af].byte $2d; A3
[a5b0].byte $d6; Note length: 86
[a5b1].byte $34; E4
[a5b2].byte $95; Note length: 21
[a5b3].byte $36; F#4
[a5b4].byte $34; E4
[a5b5].byte $a0; Note length: 32
[a5b6].byte $33; D#4
[a5b7].byte $e0; Note length: 96
[a5b8].byte $00; Rest
[a5b9].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a5ba].byte MSCRIPT_OP_END; Op: End
[a5bb]MSCRIPT_MANTRA_TRI:; [$a5bb]
[a5bb].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a5bc].byte $02; '- 2 iterations
[a5bd].byte $90; Note length: 16
[a5be].byte $1c; E4
[a5bf].byte $28; E5
[a5c0].byte $23; B4
[a5c1].byte $1c; E4
[a5c2].byte $1e; F#4
[a5c3].byte $28; E5
[a5c4].byte $27; D#5
[a5c5].byte $23; B4
[a5c6].byte $1f; G4
[a5c7].byte $28; E5
[a5c8].byte $23; B4
[a5c9].byte $1c; E4
[a5ca].byte $21; A4
[a5cb].byte $2b; G5
[a5cc].byte $28; E5
[a5cd].byte $1e; F#4
[a5ce].byte $1f; G4
[a5cf].byte $2b; G5
[a5d0].byte $26; D5
[a5d1].byte $1f; G4
[a5d2].byte $18; C4
[a5d3].byte $24; C5
[a5d4].byte $1f; G4
[a5d5].byte $18; C4
[a5d6].byte $1e; F#4
[a5d7].byte $2a; F#5
[a5d8].byte $25; C#5
[a5d9].byte $1e; F#4
[a5da].byte $23; B4
[a5db].byte $27; D#5
[a5dc].byte $2a; F#5
[a5dd].byte $23; B4
[a5de].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a5df].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a5e0].byte $02; '- 2 iterations
[a5e1].byte $90; Note length: 16
[a5e2].byte $10; E3
[a5e3].byte $1c; E4
[a5e4].byte $17; B3
[a5e5].byte $10; E3
[a5e6].byte $12; F#3
[a5e7].byte $1c; E4
[a5e8].byte $1b; D#4
[a5e9].byte $17; B3
[a5ea].byte $13; G3
[a5eb].byte $1c; E4
[a5ec].byte $17; B3
[a5ed].byte $10; E3
[a5ee].byte $15; A3
[a5ef].byte $1f; G4
[a5f0].byte $1c; E4
[a5f1].byte $12; F#3
[a5f2].byte $13; G3
[a5f3].byte $1f; G4
[a5f4].byte $1a; D4
[a5f5].byte $13; G3
[a5f6].byte $0c; C3
[a5f7].byte $18; C4
[a5f8].byte $13; G3
[a5f9].byte $0c; C3
[a5fa].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a5fb].byte $01; '- 1 loop
[a5fc].byte $90; Note length: 16
[a5fd].byte $12; F#3
[a5fe].byte $1e; F#4
[a5ff].byte $19; C#4
[a600].byte $12; F#3
[a601].byte $17; B3
[a602].byte $23; B4
[a603].byte $1e; F#4
[a604].byte $17; B3
[a605].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a606].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[a607].byte $02; '- 2 loops
[a608].byte $90; Note length: 16
[a609].byte $12; F#3
[a60a].byte $19; C#4
[a60b].byte $1c; E4
[a60c].byte $a0; Note length: 32
[a60d].byte $17; B3
[a60e].byte $90; Note length: 16
[a60f].byte $17; B3
[a610].byte $18; C4
[a611].byte $17; B3
[a612].byte $1c; E4
[a613].byte $23; B4
[a614].byte $28; E5
[a615].byte $23; B4
[a616].byte $1c; E4
[a617].byte $20; G#4
[a618].byte $23; B4
[a619].byte $1c; E4
[a61a].byte $15; A3
[a61b].byte $18; C4
[a61c].byte $21; A4
[a61d].byte $1c; E4
[a61e].byte $15; A3
[a61f].byte $18; C4
[a620].byte $1c; E4
[a621].byte $21; A4
[a622].byte $0e; D3
[a623].byte $15; A3
[a624].byte $1a; D4
[a625].byte $15; A3
[a626].byte $0e; D3
[a627].byte $12; F#3
[a628].byte $15; A3
[a629].byte $1a; D4
[a62a].byte $1b; D#4
[a62b].byte $18; C4
[a62c].byte $14; G#3
[a62d].byte $a0; Note length: 32
[a62e].byte $13; G3
[a62f].byte $90; Note length: 16
[a630].byte $1a; D4
[a631].byte $1f; G4
[a632].byte $1a; D4
[a633].byte $18; C4
[a634].byte $1c; E4
[a635].byte $1f; G4
[a636].byte $24; C5
[a637].byte $1f; G4
[a638].byte $1c; E4
[a639].byte $18; C4
[a63a].byte $13; G3
[a63b].byte $15; A3
[a63c].byte $18; C4
[a63d].byte $1c; E4
[a63e].byte $21; A4
[a63f].byte $21; A4
[a640].byte $1c; E4
[a641].byte $18; C4
[a642].byte $15; A3
[a643].byte $12; F#3
[a644].byte $15; A3
[a645].byte $18; C4
[a646].byte $1c; E4
[a647].byte $96; Note length: 22
[a648].byte $1e; F#4
[a649].byte $95; Note length: 21
[a64a].byte $1c; E4
[a64b].byte $18; C4
[a64c].byte $90; Note length: 16
[a64d].byte $17; B3
[a64e].byte $00; Rest
[a64f].byte $84; Note length: 4
[a650].byte $23; B4
[a651].byte $24; C5
[a652].byte $88; Note length: 8
[a653].byte $23; B4
[a654].byte $a0; Note length: 32
[a655].byte $23; B4
[a656].byte $90; Note length: 16
[a657].byte $21; A4
[a658].byte $1f; G4
[a659].byte $1e; F#4
[a65a].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a65b].byte MSCRIPT_OP_END; Op: End
[a65c]MSCRIPT_MANTRA_NOISE:; [$a65c]
[a65c].byte MSCRIPT_OP_END; [$a65c] MScriptOp
[a65d].byte MSCRIPT_OP_END; [$a65d] MScriptOp
;============================================================================
; Music for Macon/Victim.
;
; XREFS:
;
MSCRIPTS_MASCON_VICTIM [$PRG5::8f3b]
;============================================================================
[a65e]MSCRIPT_MASCON_VICTIM_SQ1:; [$a65e]
[a65e].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a65f].byte $02; '- Reduce volume by 2
[a660].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a661].byte $50; '- Duty cycle 1
Constant volume/envelope
[a662].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[a663].byte $00; '- Mode 0: Linear decay
[a664].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[a665].byte $a0; '- 160 ticks
[a666].byte $00; Rest
[a667].byte $00; Rest
[a668].byte $00; Rest
[a669].byte $00; Rest
[a66a].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a66b].byte $03; '- 3 iterations
[a66c].byte $8a; Note length: 10
[a66d].byte $00; Rest
[a66e].byte $00; Rest
[a66f].byte $2d; A3
[a670].byte $00; Rest
[a671].byte $00; Rest
[a672].byte $2f; B3
[a673].byte $00; Rest
[a674].byte $00; Rest
[a675].byte $30; C4
[a676].byte $00; Rest
[a677].byte $00; Rest
[a678].byte $2f; B3
[a679].byte $00; Rest
[a67a].byte $00; Rest
[a67b].byte $00; Rest
[a67c].byte $2d; A3
[a67d].byte $00; Rest
[a67e].byte $2d; A3
[a67f].byte $2c; G#3
[a680].byte $2d; A3
[a681].byte $2f; B3
[a682].byte $00; Rest
[a683].byte $2f; B3
[a684].byte $00; Rest
[a685].byte $30; C4
[a686].byte $00; Rest
[a687].byte $30; C4
[a688].byte $2f; B3
[a689].byte $00; Rest
[a68a].byte $00; Rest
[a68b].byte $00; Rest
[a68c].byte $00; Rest
[a68d].byte $00; Rest
[a68e].byte $00; Rest
[a68f].byte $2b; G3
[a690].byte $00; Rest
[a691].byte $00; Rest
[a692].byte $2d; A3
[a693].byte $00; Rest
[a694].byte $00; Rest
[a695].byte $2e; A#3
[a696].byte $00; Rest
[a697].byte $00; Rest
[a698].byte $2d; A3
[a699].byte $00; Rest
[a69a].byte $00; Rest
[a69b].byte $00; Rest
[a69c].byte $2b; G3
[a69d].byte $00; Rest
[a69e].byte $2b; G3
[a69f].byte $2a; F#3
[a6a0].byte $2b; G3
[a6a1].byte $2d; A3
[a6a2].byte $00; Rest
[a6a3].byte $2d; A3
[a6a4].byte $00; Rest
[a6a5].byte $2e; A#3
[a6a6].byte $00; Rest
[a6a7].byte $2e; A#3
[a6a8].byte $2d; A3
[a6a9].byte $00; Rest
[a6aa].byte $00; Rest
[a6ab].byte $00; Rest
[a6ac].byte $00; Rest
[a6ad].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a6ae].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a6af].byte MSCRIPT_OP_END; Op: End
[a6b0]MSCRIPT_MASCON_VICTIM_SQ2:; [$a6b0]
[a6b0].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a6b1].byte $02; '- Reduce volume by 2
[a6b2].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a6b3].byte $90; '- Duty cycle 2
Constant volume/envelope
[a6b4].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[a6b5].byte $a0; '- 160 ticks
[a6b6].byte $00; Rest
[a6b7].byte $00; Rest
[a6b8].byte $00; Rest
[a6b9].byte $00; Rest
[a6ba].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a6bb].byte $03; '- 3 iterations
[a6bc].byte $8a; Note length: 10
[a6bd].byte $00; Rest
[a6be].byte $00; Rest
[a6bf].byte $29; F3
[a6c0].byte $00; Rest
[a6c1].byte $00; Rest
[a6c2].byte $2b; G3
[a6c3].byte $00; Rest
[a6c4].byte $00; Rest
[a6c5].byte $2d; A3
[a6c6].byte $00; Rest
[a6c7].byte $00; Rest
[a6c8].byte $2b; G3
[a6c9].byte $00; Rest
[a6ca].byte $00; Rest
[a6cb].byte $00; Rest
[a6cc].byte $29; F3
[a6cd].byte $00; Rest
[a6ce].byte $29; F3
[a6cf].byte $28; E3
[a6d0].byte $29; F3
[a6d1].byte $2b; G3
[a6d2].byte $00; Rest
[a6d3].byte $2b; G3
[a6d4].byte $00; Rest
[a6d5].byte $2d; A3
[a6d6].byte $00; Rest
[a6d7].byte $2d; A3
[a6d8].byte $2b; G3
[a6d9].byte $00; Rest
[a6da].byte $00; Rest
[a6db].byte $00; Rest
[a6dc].byte $00; Rest
[a6dd].byte $00; Rest
[a6de].byte $00; Rest
[a6df].byte $27; D#3
[a6e0].byte $00; Rest
[a6e1].byte $00; Rest
[a6e2].byte $29; F3
[a6e3].byte $00; Rest
[a6e4].byte $00; Rest
[a6e5].byte $2b; G3
[a6e6].byte $00; Rest
[a6e7].byte $00; Rest
[a6e8].byte $29; F3
[a6e9].byte $00; Rest
[a6ea].byte $00; Rest
[a6eb].byte $00; Rest
[a6ec].byte $27; D#3
[a6ed].byte $00; Rest
[a6ee].byte $27; D#3
[a6ef].byte $26; D3
[a6f0].byte $27; D#3
[a6f1].byte $29; F3
[a6f2].byte $00; Rest
[a6f3].byte $29; F3
[a6f4].byte $00; Rest
[a6f5].byte $2b; G3
[a6f6].byte $00; Rest
[a6f7].byte $2b; G3
[a6f8].byte $29; F3
[a6f9].byte $00; Rest
[a6fa].byte $00; Rest
[a6fb].byte $00; Rest
[a6fc].byte $00; Rest
[a6fd].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a6fe].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a6ff].byte MSCRIPT_OP_END; Op: End
[a700]MSCRIPT_MASCON_VICTIM_TRI:; [$a700]
[a700].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a701].byte $02; '- 2 iterations
[a702].byte $8a; Note length: 10
[a703].byte $1f; G4
[a704].byte $00; Rest
[a705].byte $00; Rest
[a706].byte $00; Rest
[a707].byte $1f; G4
[a708].byte $00; Rest
[a709].byte $00; Rest
[a70a].byte $1f; G4
[a70b].byte $1f; G4
[a70c].byte $00; Rest
[a70d].byte $1f; G4
[a70e].byte $00; Rest
[a70f].byte $00; Rest
[a710].byte $00; Rest
[a711].byte $00; Rest
[a712].byte $00; Rest
[a713].byte $1f; G4
[a714].byte $00; Rest
[a715].byte $1e; F#4
[a716].byte $1f; G4
[a717].byte $00; Rest
[a718].byte $1f; G4
[a719].byte $00; Rest
[a71a].byte $1f; G4
[a71b].byte $1f; G4
[a71c].byte $00; Rest
[a71d].byte $1f; G4
[a71e].byte $00; Rest
[a71f].byte $00; Rest
[a720].byte $00; Rest
[a721].byte $1a; D4
[a722].byte $18; C4
[a723].byte $1d; F4
[a724].byte $00; Rest
[a725].byte $00; Rest
[a726].byte $00; Rest
[a727].byte $1d; F4
[a728].byte $00; Rest
[a729].byte $00; Rest
[a72a].byte $1d; F4
[a72b].byte $1d; F4
[a72c].byte $00; Rest
[a72d].byte $1d; F4
[a72e].byte $00; Rest
[a72f].byte $00; Rest
[a730].byte $00; Rest
[a731].byte $00; Rest
[a732].byte $00; Rest
[a733].byte $1d; F4
[a734].byte $00; Rest
[a735].byte $1c; E4
[a736].byte $1d; F4
[a737].byte $00; Rest
[a738].byte $1d; F4
[a739].byte $00; Rest
[a73a].byte $1d; F4
[a73b].byte $1d; F4
[a73c].byte $00; Rest
[a73d].byte $1d; F4
[a73e].byte $00; Rest
[a73f].byte $00; Rest
[a740].byte $00; Rest
[a741].byte $1d; F4
[a742].byte $1e; F#4
[a743].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a744].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a745].byte $02; '- 2 iterations
[a746].byte $8a; Note length: 10
[a747].byte $13; G3
[a748].byte $1f; G4
[a749].byte $1f; G4
[a74a].byte $13; G3
[a74b].byte $13; G3
[a74c].byte $1f; G4
[a74d].byte $1f; G4
[a74e].byte $13; G3
[a74f].byte $13; G3
[a750].byte $1f; G4
[a751].byte $13; G3
[a752].byte $1f; G4
[a753].byte $1f; G4
[a754].byte $13; G3
[a755].byte $1f; G4
[a756].byte $1f; G4
[a757].byte $13; G3
[a758].byte $1f; G4
[a759].byte $12; F#3
[a75a].byte $13; G3
[a75b].byte $1f; G4
[a75c].byte $13; G3
[a75d].byte $1f; G4
[a75e].byte $13; G3
[a75f].byte $13; G3
[a760].byte $1f; G4
[a761].byte $13; G3
[a762].byte $13; G3
[a763].byte $1f; G4
[a764].byte $13; G3
[a765].byte $0e; D3
[a766].byte $0c; C3
[a767].byte $11; F3
[a768].byte $11; F3
[a769].byte $1d; F4
[a76a].byte $1d; F4
[a76b].byte $11; F3
[a76c].byte $1d; F4
[a76d].byte $1d; F4
[a76e].byte $11; F3
[a76f].byte $11; F3
[a770].byte $1d; F4
[a771].byte $11; F3
[a772].byte $1d; F4
[a773].byte $1d; F4
[a774].byte $11; F3
[a775].byte $1d; F4
[a776].byte $1d; F4
[a777].byte $11; F3
[a778].byte $1d; F4
[a779].byte $10; E3
[a77a].byte $11; F3
[a77b].byte $1d; F4
[a77c].byte $11; F3
[a77d].byte $1d; F4
[a77e].byte $1d; F4
[a77f].byte $11; F3
[a780].byte $1d; F4
[a781].byte $11; F3
[a782].byte $11; F3
[a783].byte $1d; F4
[a784].byte $11; F3
[a785].byte $11; F3
[a786].byte $12; F#3
[a787].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a788].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a789].byte MSCRIPT_OP_END; Op: End
[a78a]MSCRIPT_MASCON_VICTIM_NOISE:; [$a78a]
[a78a].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a78b].byte $08; '- 8 iterations
[a78c].byte $8a,$31,$31,$31,$31,$31,$31,$31; [$a78c] byte
[a794].byte $31,$31,$31,$31,$31,$31,$31,$85; [$a794] byte
[a79c].byte $31,$31,$31,$31,$8a,$31,$31,$31; [$a79c] byte
[a7a4].byte $31,$31,$31,$31,$31,$31,$31,$31; [$a7a4] byte
[a7ac].byte $31,$85,$31,$31,$31,$31,$8a,$31; [$a7ac] byte
[a7b4].byte $31; [$a7b4] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[a7b6].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a7b7].byte MSCRIPT_OP_END; Op: End
[a7b8].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for boss battles.
;
; XREFS:
;
MSCRIPTS_BOSS [$PRG5::8f43]
;============================================================================
[a7b9]MSCRIPT_BOSS_SQ1:; [$a7b9]
[a7b9].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a7ba].byte $02; '- Reduce volume by 2
[a7bb].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a7bc].byte $90; '- Duty cycle 2
Constant volume/envelope
[a7bd].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[a7be].byte $01; '- Mode 1: Curve but held
[a7bf].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a7c0].byte $02; '- 2 iterations
[a7c1].byte $8f; Note length: 15
[a7c2].byte $34; E4
[a7c3].byte $28; E3
[a7c4].byte $33; D#4
[a7c5].byte $27; D#3
[a7c6].byte $2f; B3
[a7c7].byte $23; B2
[a7c8].byte $2e; A#3
[a7c9].byte $22; A#2
[a7ca].byte $34; E4
[a7cb].byte $28; E3
[a7cc].byte $33; D#4
[a7cd].byte $27; D#3
[a7ce].byte $2f; B3
[a7cf].byte $23; B2
[a7d0].byte $2e; A#3
[a7d1].byte $22; A#2
[a7d2].byte $35; F4
[a7d3].byte $29; F3
[a7d4].byte $34; E4
[a7d5].byte $28; E3
[a7d6].byte $30; C4
[a7d7].byte $24; C3
[a7d8].byte $2f; B3
[a7d9].byte $23; B2
[a7da].byte $35; F4
[a7db].byte $29; F3
[a7dc].byte $34; E4
[a7dd].byte $28; E3
[a7de].byte $30; C4
[a7df].byte $24; C3
[a7e0].byte $2f; B3
[a7e1].byte $23; B2
[a7e2].byte $38; G#4
[a7e3].byte $37; G4
[a7e4].byte $2c; G#3
[a7e5].byte $2d; A3
[a7e6].byte $38; G#4
[a7e7].byte $37; G4
[a7e8].byte $2c; G#3
[a7e9].byte $2d; A3
[a7ea].byte $97; Note length: 23
[a7eb].byte $3a; A#4
[a7ec].byte $87; Note length: 7
[a7ed].byte $39; A4
[a7ee].byte $97; Note length: 23
[a7ef].byte $2d; A3
[a7f0].byte $87; Note length: 7
[a7f1].byte $2e; A#3
[a7f2].byte $97; Note length: 23
[a7f3].byte $3d; C#5
[a7f4].byte $87; Note length: 7
[a7f5].byte $3c; C5
[a7f6].byte $97; Note length: 23
[a7f7].byte $30; C4
[a7f8].byte $87; Note length: 7
[a7f9].byte $31; C#4
[a7fa].byte $85; Note length: 5
[a7fb].byte $43; G5
[a7fc].byte $42; F#5
[a7fd].byte $41; F5
[a7fe].byte $3c; C5
[a7ff].byte $3b; B4
[a800].byte $3a; A#4
[a801].byte $37; G4
[a802].byte $36; F#4
[a803].byte $35; F4
[a804].byte $30; C4
[a805].byte $2f; B3
[a806].byte $2c; G#3
[a807].byte $2b; G3
[a808].byte $2a; F#3
[a809].byte $29; F3
[a80a].byte $24; C3
[a80b].byte $23; B2
[a80c].byte $22; A#2
[a80d].byte $18; C2
[a80e].byte $19; C#2
[a80f].byte $1a; D2
[a810].byte $1b; D#2
[a811].byte $1c; E2
[a812].byte $1d; F2
[a813].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a814].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a815].byte MSCRIPT_OP_END; Op: End
[a816]MSCRIPT_BOSS_SQ2:; [$a816]
[a816].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a817].byte $04; '- Reduce volume by 4
[a818].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a819].byte $90; '- Duty cycle 2
Constant volume/envelope
[a81a].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a81b].byte $17; '- Duty cycle 0
Constant volume/envelope
[a81c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a81d].byte $02; '- 2 iterations
[a81e].byte $88; Note length: 8
[a81f].byte $00; Rest
[a820].byte $8f; Note length: 15
[a821].byte $34; E4
[a822].byte $28; E3
[a823].byte $33; D#4
[a824].byte $27; D#3
[a825].byte $2f; B3
[a826].byte $23; B2
[a827].byte $2e; A#3
[a828].byte $22; A#2
[a829].byte $34; E4
[a82a].byte $28; E3
[a82b].byte $33; D#4
[a82c].byte $27; D#3
[a82d].byte $2f; B3
[a82e].byte $23; B2
[a82f].byte $2e; A#3
[a830].byte $22; A#2
[a831].byte $35; F4
[a832].byte $29; F3
[a833].byte $34; E4
[a834].byte $28; E3
[a835].byte $30; C4
[a836].byte $24; C3
[a837].byte $2f; B3
[a838].byte $23; B2
[a839].byte $35; F4
[a83a].byte $29; F3
[a83b].byte $34; E4
[a83c].byte $28; E3
[a83d].byte $30; C4
[a83e].byte $24; C3
[a83f].byte $2f; B3
[a840].byte $23; B2
[a841].byte $38; G#4
[a842].byte $37; G4
[a843].byte $2c; G#3
[a844].byte $2d; A3
[a845].byte $38; G#4
[a846].byte $37; G4
[a847].byte $2c; G#3
[a848].byte $2d; A3
[a849].byte $97; Note length: 23
[a84a].byte $3a; A#4
[a84b].byte $87; Note length: 7
[a84c].byte $39; A4
[a84d].byte $97; Note length: 23
[a84e].byte $2d; A3
[a84f].byte $87; Note length: 7
[a850].byte $2e; A#3
[a851].byte $97; Note length: 23
[a852].byte $3d; C#5
[a853].byte $87; Note length: 7
[a854].byte $3c; C5
[a855].byte $97; Note length: 23
[a856].byte $30; C4
[a857].byte $87; Note length: 7
[a858].byte $31; C#4
[a859].byte $85; Note length: 5
[a85a].byte $43; G5
[a85b].byte $42; F#5
[a85c].byte $41; F5
[a85d].byte $3c; C5
[a85e].byte $3b; B4
[a85f].byte $3a; A#4
[a860].byte $37; G4
[a861].byte $36; F#4
[a862].byte $35; F4
[a863].byte $30; C4
[a864].byte $2f; B3
[a865].byte $2c; G#3
[a866].byte $2b; G3
[a867].byte $2a; F#3
[a868].byte $29; F3
[a869].byte $24; C3
[a86a].byte $23; B2
[a86b].byte $22; A#2
[a86c].byte $18; C2
[a86d].byte $19; C#2
[a86e].byte $1a; D2
[a86f].byte $87; Note length: 7
[a870].byte $1b; D#2
[a871].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a872].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a873].byte MSCRIPT_OP_END; Op: End
[a874]MSCRIPT_BOSS_TRI:; [$a874]
[a874].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a875].byte $02; '- 2 iterations
[a876].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[a877].byte $fd; '- Down 3 semitones
[a878].byte $8a; Note length: 10
[a879].byte $13; G3
[a87a].byte $14; G#3
[a87b].byte $13; G3
[a87c].byte $14; G#3
[a87d].byte $13; G3
[a87e].byte $14; G#3
[a87f].byte $15; A3
[a880].byte $14; G#3
[a881].byte $15; A3
[a882].byte $14; G#3
[a883].byte $15; A3
[a884].byte $14; G#3
[a885].byte $13; G3
[a886].byte $14; G#3
[a887].byte $13; G3
[a888].byte $14; G#3
[a889].byte $13; G3
[a88a].byte $14; G#3
[a88b].byte $15; A3
[a88c].byte $14; G#3
[a88d].byte $15; A3
[a88e].byte $14; G#3
[a88f].byte $15; A3
[a890].byte $14; G#3
[a891].byte $14; G#3
[a892].byte $15; A3
[a893].byte $14; G#3
[a894].byte $15; A3
[a895].byte $14; G#3
[a896].byte $15; A3
[a897].byte $16; A#3
[a898].byte $15; A3
[a899].byte $16; A#3
[a89a].byte $15; A3
[a89b].byte $16; A#3
[a89c].byte $15; A3
[a89d].byte $14; G#3
[a89e].byte $15; A3
[a89f].byte $14; G#3
[a8a0].byte $15; A3
[a8a1].byte $14; G#3
[a8a2].byte $15; A3
[a8a3].byte $16; A#3
[a8a4].byte $15; A3
[a8a5].byte $16; A#3
[a8a6].byte $15; A3
[a8a7].byte $16; A#3
[a8a8].byte $15; A3
[a8a9].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[a8aa].byte $00; '- Reset
[a8ab].byte $88; Note length: 8
[a8ac].byte $0f; D#3
[a8ad].byte $87; Note length: 7
[a8ae].byte $1b; D#4
[a8af].byte $88; Note length: 8
[a8b0].byte $27; D#5
[a8b1].byte $87; Note length: 7
[a8b2].byte $1b; D#4
[a8b3].byte $88; Note length: 8
[a8b4].byte $0f; D#3
[a8b5].byte $87; Note length: 7
[a8b6].byte $1b; D#4
[a8b7].byte $88; Note length: 8
[a8b8].byte $27; D#5
[a8b9].byte $87; Note length: 7
[a8ba].byte $1b; D#4
[a8bb].byte $88; Note length: 8
[a8bc].byte $0f; D#3
[a8bd].byte $87; Note length: 7
[a8be].byte $1b; D#4
[a8bf].byte $88; Note length: 8
[a8c0].byte $27; D#5
[a8c1].byte $87; Note length: 7
[a8c2].byte $1b; D#4
[a8c3].byte $88; Note length: 8
[a8c4].byte $0f; D#3
[a8c5].byte $87; Note length: 7
[a8c6].byte $1b; D#4
[a8c7].byte $88; Note length: 8
[a8c8].byte $27; D#5
[a8c9].byte $87; Note length: 7
[a8ca].byte $1b; D#4
[a8cb].byte $88; Note length: 8
[a8cc].byte $11; F3
[a8cd].byte $87; Note length: 7
[a8ce].byte $1d; F4
[a8cf].byte $88; Note length: 8
[a8d0].byte $29; F5
[a8d1].byte $87; Note length: 7
[a8d2].byte $1d; F4
[a8d3].byte $88; Note length: 8
[a8d4].byte $11; F3
[a8d5].byte $87; Note length: 7
[a8d6].byte $1d; F4
[a8d7].byte $88; Note length: 8
[a8d8].byte $29; F5
[a8d9].byte $87; Note length: 7
[a8da].byte $1d; F4
[a8db].byte $88; Note length: 8
[a8dc].byte $14; G#3
[a8dd].byte $87; Note length: 7
[a8de].byte $20; G#4
[a8df].byte $88; Note length: 8
[a8e0].byte $2c; G#5
[a8e1].byte $87; Note length: 7
[a8e2].byte $20; G#4
[a8e3].byte $88; Note length: 8
[a8e4].byte $14; G#3
[a8e5].byte $87; Note length: 7
[a8e6].byte $20; G#4
[a8e7].byte $88; Note length: 8
[a8e8].byte $2c; G#5
[a8e9].byte $87; Note length: 7
[a8ea].byte $20; G#4
[a8eb].byte $94; Note length: 20
[a8ec].byte $37; G6
[a8ed].byte $38; G#6
[a8ee].byte $2f; B5
[a8ef].byte $23; B4
[a8f0].byte $8a; Note length: 10
[a8f1].byte $29; F5
[a8f2].byte $2a; F#5
[a8f3].byte $23; B4
[a8f4].byte $24; C5
[a8f5].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a8f6].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a8f7].byte MSCRIPT_OP_END; Op: End
[a8f8]MSCRIPT_BOSS_NOISE:; [$a8f8]
[a8f8].byte $ff,$ff; [$a8f8] byte
;============================================================================
; TODO: Music 0x0B
;
; XREFS:
;
MSCRIPTS_HOURGLASS [$PRG5::8f4b]
;============================================================================
[a8fa]MSCRIPT_HOURGLASS_SQ1:; [$a8fa]
[a8fa].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a8fb].byte $02; '- Reduce volume by 2
[a8fc].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a8fd].byte $50; '- Duty cycle 1
Constant volume/envelope
[a8fe].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[a8ff].byte $01; '- Mode 1: Curve but held
[a900].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a901].byte $02; '- 2 iterations
[a902].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[a903].byte $80; '- 128 ticks
[a904].byte $00; Rest
[a905].byte $c0; Note length: 64
[a906].byte $00; Rest
[a907].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a908].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a909].byte $03; '- 3 iterations
[a90a].byte $84; Note length: 4
[a90b].byte $1f; G2
[a90c].byte $24; C3
[a90d].byte $1f; G2
[a90e].byte $00; Rest
[a90f].byte $00; Rest
[a910].byte $00; Rest
[a911].byte $00; Rest
[a912].byte $00; Rest
[a913].byte $2b; G3
[a914].byte $30; C4
[a915].byte $2b; G3
[a916].byte $00; Rest
[a917].byte $00; Rest
[a918].byte $00; Rest
[a919].byte $00; Rest
[a91a].byte $00; Rest
[a91b].byte $24; C3
[a91c].byte $29; F3
[a91d].byte $24; C3
[a91e].byte $00; Rest
[a91f].byte $00; Rest
[a920].byte $00; Rest
[a921].byte $00; Rest
[a922].byte $00; Rest
[a923].byte $30; C4
[a924].byte $35; F4
[a925].byte $30; C4
[a926].byte $00; Rest
[a927].byte $00; Rest
[a928].byte $00; Rest
[a929].byte $00; Rest
[a92a].byte $00; Rest
[a92b].byte $29; F3
[a92c].byte $2e; A#3
[a92d].byte $29; F3
[a92e].byte $00; Rest
[a92f].byte $00; Rest
[a930].byte $00; Rest
[a931].byte $00; Rest
[a932].byte $00; Rest
[a933].byte $35; F4
[a934].byte $3a; A#4
[a935].byte $35; F4
[a936].byte $00; Rest
[a937].byte $00; Rest
[a938].byte $00; Rest
[a939].byte $00; Rest
[a93a].byte $00; Rest
[a93b].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a93c].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a93d].byte MSCRIPT_OP_END; Op: End
[a93e]MSCRIPT_HOURGLASS_SQ2:; [$a93e]
[a93e].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[a93f].byte $02; '- Reduce volume by 2
[a940].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a941].byte $90; '- Duty cycle 2
Constant volume/envelope
[a942].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[a943].byte $13; '- Duty cycle 0
Constant volume/envelope
[a944].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a945].byte $02; '- 2 iterations
[a946].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[a947].byte $80; '- 128 ticks
[a948].byte $00; Rest
[a949].byte $c0; Note length: 64
[a94a].byte $00; Rest
[a94b].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a94c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a94d].byte $03; '- 3 iterations
[a94e].byte $84; Note length: 4
[a94f].byte $00; Rest
[a950].byte $1f; G2
[a951].byte $24; C3
[a952].byte $1f; G2
[a953].byte $00; Rest
[a954].byte $00; Rest
[a955].byte $00; Rest
[a956].byte $00; Rest
[a957].byte $00; Rest
[a958].byte $2b; G3
[a959].byte $30; C4
[a95a].byte $2b; G3
[a95b].byte $00; Rest
[a95c].byte $00; Rest
[a95d].byte $00; Rest
[a95e].byte $00; Rest
[a95f].byte $00; Rest
[a960].byte $24; C3
[a961].byte $29; F3
[a962].byte $24; C3
[a963].byte $00; Rest
[a964].byte $00; Rest
[a965].byte $00; Rest
[a966].byte $00; Rest
[a967].byte $00; Rest
[a968].byte $30; C4
[a969].byte $35; F4
[a96a].byte $30; C4
[a96b].byte $00; Rest
[a96c].byte $00; Rest
[a96d].byte $00; Rest
[a96e].byte $00; Rest
[a96f].byte $00; Rest
[a970].byte $29; F3
[a971].byte $2e; A#3
[a972].byte $29; F3
[a973].byte $00; Rest
[a974].byte $00; Rest
[a975].byte $00; Rest
[a976].byte $00; Rest
[a977].byte $00; Rest
[a978].byte $35; F4
[a979].byte $3a; A#4
[a97a].byte $35; F4
[a97b].byte $00; Rest
[a97c].byte $00; Rest
[a97d].byte $00; Rest
[a97e].byte $00; Rest
[a97f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a980].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[a981].byte MSCRIPT_OP_END; Op: End
[a982]MSCRIPT_HOURGLASS_TRI:; [$a982]
[a982].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a983].byte $02; '- 2 iterations
[a984].byte $84; Note length: 4
[a985].byte $0e; D3
[a986].byte $00; Rest
[a987].byte $00; Rest
[a988].byte $00; Rest
[a989].byte $0e; D3
[a98a].byte $00; Rest
[a98b].byte $00; Rest
[a98c].byte $00; Rest
[a98d].byte $1a; D4
[a98e].byte $00; Rest
[a98f].byte $00; Rest
[a990].byte $00; Rest
[a991].byte $1a; D4
[a992].byte $00; Rest
[a993].byte $00; Rest
[a994].byte $00; Rest
[a995].byte $13; G3
[a996].byte $00; Rest
[a997].byte $00; Rest
[a998].byte $00; Rest
[a999].byte $13; G3
[a99a].byte $00; Rest
[a99b].byte $00; Rest
[a99c].byte $00; Rest
[a99d].byte $1f; G4
[a99e].byte $00; Rest
[a99f].byte $00; Rest
[a9a0].byte $00; Rest
[a9a1].byte $1f; G4
[a9a2].byte $00; Rest
[a9a3].byte $00; Rest
[a9a4].byte $00; Rest
[a9a5].byte $18; C4
[a9a6].byte $00; Rest
[a9a7].byte $00; Rest
[a9a8].byte $00; Rest
[a9a9].byte $18; C4
[a9aa].byte $00; Rest
[a9ab].byte $00; Rest
[a9ac].byte $00; Rest
[a9ad].byte $24; C5
[a9ae].byte $00; Rest
[a9af].byte $00; Rest
[a9b0].byte $00; Rest
[a9b1].byte $24; C5
[a9b2].byte $00; Rest
[a9b3].byte $00; Rest
[a9b4].byte $00; Rest
[a9b5].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a9b6].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[a9b7].byte $02; '- 2 iterations
[a9b8].byte $84; Note length: 4
[a9b9].byte $0e; D3
[a9ba].byte $00; Rest
[a9bb].byte $00; Rest
[a9bc].byte $00; Rest
[a9bd].byte $0e; D3
[a9be].byte $00; Rest
[a9bf].byte $00; Rest
[a9c0].byte $00; Rest
[a9c1].byte $1a; D4
[a9c2].byte $00; Rest
[a9c3].byte $00; Rest
[a9c4].byte $00; Rest
[a9c5].byte $1a; D4
[a9c6].byte $00; Rest
[a9c7].byte $00; Rest
[a9c8].byte $00; Rest
[a9c9].byte $13; G3
[a9ca].byte $00; Rest
[a9cb].byte $00; Rest
[a9cc].byte $00; Rest
[a9cd].byte $13; G3
[a9ce].byte $00; Rest
[a9cf].byte $00; Rest
[a9d0].byte $00; Rest
[a9d1].byte $1f; G4
[a9d2].byte $00; Rest
[a9d3].byte $00; Rest
[a9d4].byte $00; Rest
[a9d5].byte $1f; G4
[a9d6].byte $00; Rest
[a9d7].byte $00; Rest
[a9d8].byte $00; Rest
[a9d9].byte $18; C4
[a9da].byte $00; Rest
[a9db].byte $00; Rest
[a9dc].byte $00; Rest
[a9dd].byte $18; C4
[a9de].byte $00; Rest
[a9df].byte $00; Rest
[a9e0].byte $00; Rest
[a9e1].byte $24; C5
[a9e2].byte $00; Rest
[a9e3].byte $00; Rest
[a9e4].byte $00; Rest
[a9e5].byte $24; C5
[a9e6].byte $00; Rest
[a9e7].byte $00; Rest
[a9e8].byte $00; Rest
[a9e9].byte MSCRIPT_OP_END_LOOP; Op: End loop
[a9ea].byte $0e; D3
[a9eb].byte $00; Rest
[a9ec].byte $0e; D3
[a9ed].byte $00; Rest
[a9ee].byte $0e; D3
[a9ef].byte $00; Rest
[a9f0].byte $0e; D3
[a9f1].byte $00; Rest
[a9f2].byte $1a; D4
[a9f3].byte $00; Rest
[a9f4].byte $1a; D4
[a9f5].byte $00; Rest
[a9f6].byte $1a; D4
[a9f7].byte $00; Rest
[a9f8].byte $1a; D4
[a9f9].byte $00; Rest
[a9fa].byte $13; G3
[a9fb].byte $00; Rest
[a9fc].byte $13; G3
[a9fd].byte $00; Rest
[a9fe].byte $13; G3
[a9ff].byte $00; Rest
[aa00].byte $13; G3
[aa01].byte $00; Rest
[aa02].byte $1f; G4
[aa03].byte $00; Rest
[aa04].byte $1f; G4
[aa05].byte $00; Rest
[aa06].byte $1f; G4
[aa07].byte $00; Rest
[aa08].byte $1f; G4
[aa09].byte $00; Rest
[aa0a].byte $18; C4
[aa0b].byte $00; Rest
[aa0c].byte $18; C4
[aa0d].byte $00; Rest
[aa0e].byte $18; C4
[aa0f].byte $00; Rest
[aa10].byte $18; C4
[aa11].byte $00; Rest
[aa12].byte $24; C5
[aa13].byte $00; Rest
[aa14].byte $24; C5
[aa15].byte $00; Rest
[aa16].byte $24; C5
[aa17].byte $00; Rest
[aa18].byte $24; C5
[aa19].byte $00; Rest
[aa1a].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[aa1b].byte MSCRIPT_OP_END; Op: End
[aa1c]MSCRIPT_HOURGLASS_NOISE:; [$aa1c]
[aa1c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aa1d].byte $03; '- 3 iterations
[aa1e].byte $84,$31,$00,$00,$00,$31,$00,$00; [$aa1e] byte
[aa26].byte $00,$31,$00,$00,$00,$31,$00,$00; [$aa26] byte
[aa2e].byte $00,$31,$00,$00,$00,$31,$00,$00; [$aa2e] byte
[aa36].byte $00,$31,$00,$00,$00,$31,$00,$00; [$aa36] byte
[aa3e].byte $00,$31,$00,$00,$00,$31,$00,$00; [$aa3e] byte
[aa46].byte $00,$31,$00,$00,$00,$31,$00,$00; [$aa46] byte
[aa4e].byte $00; [$aa4e] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[aa50].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aa51].byte $02; '- 2 iterations
[aa52].byte $84,$31,$00,$31,$00,$31,$00,$31; [$aa52] byte
[aa5a].byte $00,$31,$00,$31,$00,$31,$00,$31; [$aa5a] byte
[aa62].byte $00,$31,$00,$31,$00,$31,$00,$31; [$aa62] byte
[aa6a].byte $00,$31,$00,$31,$00,$31,$00,$31; [$aa6a] byte
[aa72].byte $00,$31,$00,$31,$00,$31,$00,$31; [$aa72] byte
[aa7a].byte $00,$31,$00,$31,$00,$31,$00,$31; [$aa7a] byte
[aa82].byte $00; [$aa82] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[aa84].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[aa85].byte MSCRIPT_OP_END; Op: End
[aa86].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for the ending outro sequence.
;
; XREFS:
;
MSCRIPTS_ENDING [$PRG5::8f53]
;============================================================================
[aa87]MSCRIPT_ENDING_SQ1:; [$aa87]
[aa87].byte MSCRIPT_OP_SET_GLOBAL_TRANSPOSE; Op: Set global transpose
[aa88].byte $ff; '- Down 1 semitone
[aa89].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[aa8a].byte $00; '- Reduce volume by 0
[aa8b].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[aa8c].byte $d0; '- Duty cycle 3
Constant volume/envelope
[aa8d].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[aa8e].byte $01; '- Mode 1: Curve but held
[aa8f].byte MSCRIPT_OP_SET_SQ_PITCH_EFFECT_DEPTH; Op: Set SQ2 envelope depth
[aa90].byte $02; '- 2
[aa91].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[aa92].byte $f4; '- Down 1 octave
[aa93].byte $86; Note length: 6
[aa94].byte $1f; F#2
[aa95].byte $21; G#2
[aa96].byte $23; A#2
[aa97].byte $24; B2
[aa98].byte $26; C#3
[aa99].byte $28; D#3
[aa9a].byte $29; E3
[aa9b].byte $2a; F3
[aa9c].byte $2b; F#3
[aa9d].byte $2d; G#3
[aa9e].byte $2f; A#3
[aa9f].byte $30; B3
[aaa0].byte $32; C#4
[aaa1].byte $34; D#4
[aaa2].byte $35; E4
[aaa3].byte $36; F4
[aaa4].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[aaa5].byte $90; '- Duty cycle 2
Constant volume/envelope
[aaa6].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aaa7].byte $02; '- 2 iterations
[aaa8].byte $b0; Note length: 48
[aaa9].byte $37; F#4
[aaaa].byte $3c; B4
[aaab].byte $3e; C#5
[aaac].byte $45; G#5
[aaad].byte $c8; Note length: 72
[aaae].byte $43; F#5
[aaaf].byte $8c; Note length: 12
[aab0].byte $3c; B4
[aab1].byte $3e; C#5
[aab2].byte $3f; D5
[aab3].byte $3c; B4
[aab4].byte $3f; D5
[aab5].byte $3e; C#5
[aab6].byte $00; Rest
[aab7].byte $3b; A#4
[aab8].byte $98; Note length: 24
[aab9].byte $37; F#4
[aaba].byte MSCRIPT_OP_END_LOOP; Op: End loop
[aabb].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aabc].byte $02; '- 2 iterations
[aabd].byte $a4; Note length: 36
[aabe].byte $43; F#5
[aabf].byte $8c; Note length: 12
[aac0].byte $3c; B4
[aac1].byte $b0; Note length: 48
[aac2].byte $3c; B4
[aac3].byte $8c; Note length: 12
[aac4].byte $41; E5
[aac5].byte $41; E5
[aac6].byte $40; D#5
[aac7].byte $a4; Note length: 36
[aac8].byte $3c; B4
[aac9].byte $8c; Note length: 12
[aaca].byte $37; F#4
[aacb].byte $39; G#4
[aacc].byte $a4; Note length: 36
[aacd].byte $3a; A4
[aace].byte $8c; Note length: 12
[aacf].byte $3a; A4
[aad0].byte $39; G#4
[aad1].byte $3a; A4
[aad2].byte $39; G#4
[aad3].byte $bc; Note length: 60
[aad4].byte $37; F#4
[aad5].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[aad6].byte $01; '- 1 loop
[aad7].byte $86; Note length: 6
[aad8].byte $37; F#4
[aad9].byte $39; G#4
[aada].byte $3b; A#4
[aadb].byte $3c; B4
[aadc].byte $3e; C#5
[aadd].byte $40; D#5
[aade].byte $41; E5
[aadf].byte $42; F5
[aae0].byte MSCRIPT_OP_END_LOOP; Op: End loop
[aae1].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[aae2].byte $02; '- 2 loops
[aae3].byte $86; Note length: 6
[aae4].byte $3c; B4
[aae5].byte $3b; A#4
[aae6].byte $3c; B4
[aae7].byte $3e; C#5
[aae8].byte $40; D#5
[aae9].byte $41; E5
[aaea].byte $42; F5
[aaeb].byte $43; F#5
[aaec].byte $b0; Note length: 48
[aaed].byte $44; G5
[aaee].byte $46; A5
[aaef].byte $c8; Note length: 72
[aaf0].byte $43; F#5
[aaf1].byte $8c; Note length: 12
[aaf2].byte $3c; B4
[aaf3].byte $3e; C#5
[aaf4].byte $3f; D5
[aaf5].byte $3f; D5
[aaf6].byte $41; E5
[aaf7].byte $3e; C#5
[aaf8].byte $00; Rest
[aaf9].byte $3c; B4
[aafa].byte $3a; A4
[aafb].byte $98; Note length: 24
[aafc].byte $37; F#4
[aafd].byte $86; Note length: 6
[aafe].byte $38; G4
[aaff].byte $37; F#4
[ab00].byte $8c; Note length: 12
[ab01].byte $35; E4
[ab02].byte $92; Note length: 18
[ab03].byte $37; F#4
[ab04].byte $86; Note length: 6
[ab05].byte $30; B3
[ab06].byte $33; D4
[ab07].byte $37; F#4
[ab08].byte $3c; B4
[ab09].byte $37; F#4
[ab0a].byte $3c; B4
[ab0b].byte $3f; D5
[ab0c].byte $b0; Note length: 48
[ab0d].byte $44; G5
[ab0e].byte $46; A5
[ab0f].byte $bc; Note length: 60
[ab10].byte $43; F#5
[ab11].byte $8c; Note length: 12
[ab12].byte $3c; B4
[ab13].byte $3c; B4
[ab14].byte $3e; C#5
[ab15].byte $3f; D5
[ab16].byte $3f; D5
[ab17].byte $41; E5
[ab18].byte $3e; C#5
[ab19].byte $00; Rest
[ab1a].byte $3c; B4
[ab1b].byte $98; Note length: 24
[ab1c].byte $3a; A4
[ab1d].byte $8c; Note length: 12
[ab1e].byte $3f; D5
[ab1f].byte $3f; D5
[ab20].byte $41; E5
[ab21].byte $3e; C#5
[ab22].byte $00; Rest
[ab23].byte $3c; B4
[ab24].byte $3a; A4
[ab25].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[ab26].byte $cc; '- 204 ticks
[ab27].byte $3c; B4
[ab28].byte $86; Note length: 6
[ab29].byte $3f; D5
[ab2a].byte $00; Rest
[ab2b].byte $3c; B4
[ab2c].byte $3f; D5
[ab2d].byte $44; G5
[ab2e].byte $00; Rest
[ab2f].byte $3f; D5
[ab30].byte $44; G5
[ab31].byte $46; A5
[ab32].byte $41; E5
[ab33].byte $3e; C#5
[ab34].byte $3a; A4
[ab35].byte $3c; B4
[ab36].byte $00; Rest
[ab37].byte $3c; B4
[ab38].byte $3c; B4
[ab39].byte $88; Note length: 8
[ab3a].byte $3c; B4
[ab3b].byte $00; Rest
[ab3c].byte $00; Rest
[ab3d].byte $00; Rest
[ab3e].byte $3c; B4
[ab3f].byte $37; F#4
[ab40].byte $3c; B4
[ab41].byte $40; D#5
[ab42].byte $98; Note length: 24
[ab43].byte $3c; B4
[ab44].byte $88; Note length: 8
[ab45].byte $00; Rest
[ab46].byte MSCRIPT_OP_END; Op: End
[ab47]MSCRIPT_ENDING_SQ2:; [$ab47]
[ab47].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[ab48].byte $04; '- Reduce volume by 4
[ab49].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[ab4a].byte $d0; '- Duty cycle 3
Constant volume/envelope
[ab4b].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[ab4c].byte $00; '- Mode 0: Linear decay
[ab4d].byte MSCRIPT_OP_SET_SQ_PITCH_EFFECT_DEPTH; Op: Set SQ2 envelope depth
[ab4e].byte $00; '- 0
[ab4f].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[ab50].byte $f4; '- Down 1 octave
[ab51].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[ab52].byte $13; '- Duty cycle 0
Constant volume/envelope
[ab53].byte $98; Note length: 24
[ab54].byte $00; Rest
[ab55].byte $86; Note length: 6
[ab56].byte $2d; A3
[ab57].byte $2f; B3
[ab58].byte $30; C4
[ab59].byte $32; D4
[ab5a].byte $34; E4
[ab5b].byte $35; F4
[ab5c].byte $37; G4
[ab5d].byte $39; A4
[ab5e].byte $3b; B4
[ab5f].byte $3c; C5
[ab60].byte $3e; D5
[ab61].byte $3f; D#5
[ab62].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[ab63].byte $50; '- Duty cycle 1
Constant volume/envelope
[ab64].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[ab65].byte $01; '- Mode 1: Curve but held
[ab66].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[ab67].byte $02; '- 2 iterations
[ab68].byte $86; Note length: 6
[ab69].byte $40; E5
[ab6a].byte $40; E5
[ab6b].byte $40; E5
[ab6c].byte $00; Rest
[ab6d].byte $48; C6
[ab6e].byte $37; G4
[ab6f].byte $40; E5
[ab70].byte $40; E5
[ab71].byte $40; E5
[ab72].byte $40; E5
[ab73].byte $40; E5
[ab74].byte $00; Rest
[ab75].byte $48; C6
[ab76].byte $37; G4
[ab77].byte $40; E5
[ab78].byte $40; E5
[ab79].byte $41; F5
[ab7a].byte $41; F5
[ab7b].byte $41; F5
[ab7c].byte $00; Rest
[ab7d].byte $48; C6
[ab7e].byte $39; A4
[ab7f].byte $41; F5
[ab80].byte $41; F5
[ab81].byte $41; F5
[ab82].byte $41; F5
[ab83].byte $41; F5
[ab84].byte $00; Rest
[ab85].byte $48; C6
[ab86].byte $39; A4
[ab87].byte $41; F5
[ab88].byte $41; F5
[ab89].byte $40; E5
[ab8a].byte $40; E5
[ab8b].byte $40; E5
[ab8c].byte $00; Rest
[ab8d].byte $48; C6
[ab8e].byte $37; G4
[ab8f].byte $40; E5
[ab90].byte $40; E5
[ab91].byte $40; E5
[ab92].byte $3c; C5
[ab93].byte $37; G4
[ab94].byte $3c; C5
[ab95].byte $40; E5
[ab96].byte $40; E5
[ab97].byte $43; G5
[ab98].byte $43; G5
[ab99].byte $38; G#4
[ab9a].byte $3c; C5
[ab9b].byte $3f; D#5
[ab9c].byte $44; G#5
[ab9d].byte $48; C6
[ab9e].byte $44; G#5
[ab9f].byte $37; G4
[aba0].byte $00; Rest
[aba1].byte $00; Rest
[aba2].byte $00; Rest
[aba3].byte $2e; A#3
[aba4].byte $32; D4
[aba5].byte $37; G4
[aba6].byte $3b; B4
[aba7].byte $3e; D5
[aba8].byte $3b; B4
[aba9].byte MSCRIPT_OP_END_LOOP; Op: End loop
[abaa].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[abab].byte $02; '- 2 iterations
[abac].byte $86; Note length: 6
[abad].byte $40; E5
[abae].byte $43; G5
[abaf].byte $37; G4
[abb0].byte $3c; C5
[abb1].byte $40; E5
[abb2].byte $43; G5
[abb3].byte $37; G4
[abb4].byte $3c; C5
[abb5].byte $40; E5
[abb6].byte $43; G5
[abb7].byte $37; G4
[abb8].byte $3c; C5
[abb9].byte $40; E5
[abba].byte $43; G5
[abbb].byte $37; G4
[abbc].byte $3c; C5
[abbd].byte $41; F5
[abbe].byte $43; G5
[abbf].byte $37; G4
[abc0].byte $3c; C5
[abc1].byte $40; E5
[abc2].byte $43; G5
[abc3].byte $37; G4
[abc4].byte $3c; C5
[abc5].byte $40; E5
[abc6].byte $43; G5
[abc7].byte $37; G4
[abc8].byte $3c; C5
[abc9].byte $40; E5
[abca].byte $43; G5
[abcb].byte $3c; C5
[abcc].byte $40; E5
[abcd].byte $33; D#4
[abce].byte $37; G4
[abcf].byte $3a; A#4
[abd0].byte $3f; D#5
[abd1].byte $43; G5
[abd2].byte $3f; D#5
[abd3].byte $3a; A#4
[abd4].byte $37; G4
[abd5].byte $35; F4
[abd6].byte $39; A4
[abd7].byte $3c; C5
[abd8].byte $41; F5
[abd9].byte $3c; C5
[abda].byte $39; A4
[abdb].byte $37; G4
[abdc].byte $32; D4
[abdd].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[abde].byte $01; '- 1 loop
[abdf].byte $86; Note length: 6
[abe0].byte $37; G4
[abe1].byte $3c; C5
[abe2].byte $40; E5
[abe3].byte $3c; C5
[abe4].byte $37; G4
[abe5].byte $3c; C5
[abe6].byte $40; E5
[abe7].byte $3c; C5
[abe8].byte $40; E5
[abe9].byte $41; F5
[abea].byte $43; G5
[abeb].byte $45; A5
[abec].byte $47; B5
[abed].byte $48; C6
[abee].byte $4a; D6
[abef].byte $4b; D#6
[abf0].byte MSCRIPT_OP_END_LOOP; Op: End loop
[abf1].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[abf2].byte $02; '- 2 loops
[abf3].byte $86; Note length: 6
[abf4].byte $37; G4
[abf5].byte $3c; C5
[abf6].byte $40; E5
[abf7].byte $3c; C5
[abf8].byte $37; G4
[abf9].byte $3c; C5
[abfa].byte $40; E5
[abfb].byte $3c; C5
[abfc].byte $40; E5
[abfd].byte $3f; D#5
[abfe].byte $40; E5
[abff].byte $41; F5
[ac00].byte $43; G5
[ac01].byte $45; A5
[ac02].byte $47; B5
[ac03].byte $48; C6
[ac04].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[ac05].byte $02; '- 2 iterations
[ac06].byte $86; Note length: 6
[ac07].byte $38; G#4
[ac08].byte $3c; C5
[ac09].byte $3f; D#5
[ac0a].byte $44; G#5
[ac0b].byte $48; C6
[ac0c].byte $4b; D#6
[ac0d].byte $48; C6
[ac0e].byte $44; G#5
[ac0f].byte $3a; A#4
[ac10].byte $3e; D5
[ac11].byte $41; F5
[ac12].byte $46; A#5
[ac13].byte $4a; D6
[ac14].byte $4d; F6
[ac15].byte $4a; D6
[ac16].byte $46; A#5
[ac17].byte $30; C4
[ac18].byte $34; E4
[ac19].byte $37; G4
[ac1a].byte $3c; C5
[ac1b].byte $40; E5
[ac1c].byte $43; G5
[ac1d].byte $48; C6
[ac1e].byte $4c; E6
[ac1f].byte $48; C6
[ac20].byte $43; G5
[ac21].byte $40; E5
[ac22].byte $3c; C5
[ac23].byte $37; G4
[ac24].byte $34; E4
[ac25].byte $30; C4
[ac26].byte $34; E4
[ac27].byte $38; G#4
[ac28].byte $3c; C5
[ac29].byte $3f; D#5
[ac2a].byte $44; G#5
[ac2b].byte $48; C6
[ac2c].byte $44; G#5
[ac2d].byte $41; F5
[ac2e].byte $3e; D5
[ac2f].byte $3a; A#4
[ac30].byte $35; F4
[ac31].byte $3a; A#4
[ac32].byte $3e; D5
[ac33].byte $41; F5
[ac34].byte $3e; D5
[ac35].byte $3a; A#4
[ac36].byte $3e; D5
[ac37].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[ac38].byte $01; '- 1 loop
[ac39].byte $8c; Note length: 12
[ac3a].byte $3f; D#5
[ac3b].byte $86; Note length: 6
[ac3c].byte $41; F5
[ac3d].byte $3f; D#5
[ac3e].byte $8c; Note length: 12
[ac3f].byte $3c; C5
[ac40].byte $3c; C5
[ac41].byte $86; Note length: 6
[ac42].byte $30; C4
[ac43].byte $33; D#4
[ac44].byte $37; G4
[ac45].byte $3c; C5
[ac46].byte $3f; D#5
[ac47].byte $3c; C5
[ac48].byte $37; G4
[ac49].byte $33; D#4
[ac4a].byte MSCRIPT_OP_END_LOOP; Op: End loop
[ac4b].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[ac4c].byte $02; '- 2 loops
[ac4d].byte $86; Note length: 6
[ac4e].byte $3f; D#5
[ac4f].byte $44; G#5
[ac50].byte $48; C6
[ac51].byte $44; G#5
[ac52].byte $3f; D#5
[ac53].byte $44; G#5
[ac54].byte $8c; Note length: 12
[ac55].byte $46; A#5
[ac56].byte $00; Rest
[ac57].byte $41; F5
[ac58].byte $43; G5
[ac59].byte $92; Note length: 18
[ac5a].byte $40; E5
[ac5b].byte $86; Note length: 6
[ac5c].byte $3c; C5
[ac5d].byte $37; G4
[ac5e].byte $3c; C5
[ac5f].byte $34; E4
[ac60].byte $37; G4
[ac61].byte $30; C4
[ac62].byte $34; E4
[ac63].byte $40; E5
[ac64].byte $3c; C5
[ac65].byte $37; G4
[ac66].byte $3c; C5
[ac67].byte $34; E4
[ac68].byte $37; G4
[ac69].byte $30; C4
[ac6a].byte $34; E4
[ac6b].byte $3e; D5
[ac6c].byte $3a; A#4
[ac6d].byte $35; F4
[ac6e].byte $3a; A#4
[ac6f].byte $32; D4
[ac70].byte $35; F4
[ac71].byte $2e; A#3
[ac72].byte $32; D4
[ac73].byte $3e; D5
[ac74].byte $3a; A#4
[ac75].byte $35; F4
[ac76].byte $3a; A#4
[ac77].byte $32; D4
[ac78].byte $35; F4
[ac79].byte $2e; A#3
[ac7a].byte $32; D4
[ac7b].byte $3c; C5
[ac7c].byte $38; G#4
[ac7d].byte $33; D#4
[ac7e].byte $38; G#4
[ac7f].byte $30; C4
[ac80].byte $33; D#4
[ac81].byte $2c; G#3
[ac82].byte $30; C4
[ac83].byte $41; F5
[ac84].byte $3e; D5
[ac85].byte $3a; A#4
[ac86].byte $35; F4
[ac87].byte $3e; D5
[ac88].byte $00; Rest
[ac89].byte $3e; D5
[ac8a].byte $3e; D5
[ac8b].byte $88; Note length: 8
[ac8c].byte $34; E4
[ac8d].byte $00; Rest
[ac8e].byte $00; Rest
[ac8f].byte $00; Rest
[ac90].byte $34; E4
[ac91].byte $30; C4
[ac92].byte $34; E4
[ac93].byte $37; G4
[ac94].byte $98; Note length: 24
[ac95].byte $34; E4
[ac96].byte $88; Note length: 8
[ac97].byte $00; Rest
[ac98].byte MSCRIPT_OP_END; Op: End
[ac99]MSCRIPT_ENDING_TRI:; [$ac99]
[ac99].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[ac9a].byte $e8; '- Down 2 octaves
[ac9b].byte $b0; Note length: 48
[ac9c].byte $00; Rest
[ac9d].byte $86; Note length: 6
[ac9e].byte $3b; B6
[ac9f].byte $3c; C7
[aca0].byte $3e; D7
[aca1].byte $40; E7
[aca2].byte $41; F7
[aca3].byte $43; G7
[aca4].byte $45; A7
[aca5].byte $47; B7
[aca6].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aca7].byte $02; '- 2 iterations
[aca8].byte $86; Note length: 6
[aca9].byte $30; C6
[acaa].byte $30; C6
[acab].byte $30; C6
[acac].byte $30; C6
[acad].byte $30; C6
[acae].byte $00; Rest
[acaf].byte $30; C6
[acb0].byte $30; C6
[acb1].byte $30; C6
[acb2].byte $30; C6
[acb3].byte $30; C6
[acb4].byte $30; C6
[acb5].byte $30; C6
[acb6].byte $00; Rest
[acb7].byte $30; C6
[acb8].byte $30; C6
[acb9].byte $30; C6
[acba].byte $30; C6
[acbb].byte $30; C6
[acbc].byte $30; C6
[acbd].byte $30; C6
[acbe].byte $00; Rest
[acbf].byte $30; C6
[acc0].byte $30; C6
[acc1].byte $30; C6
[acc2].byte $30; C6
[acc3].byte $30; C6
[acc4].byte $30; C6
[acc5].byte $30; C6
[acc6].byte $00; Rest
[acc7].byte $30; C6
[acc8].byte $30; C6
[acc9].byte $30; C6
[acca].byte $30; C6
[accb].byte $30; C6
[accc].byte $30; C6
[accd].byte $30; C6
[acce].byte $00; Rest
[accf].byte $30; C6
[acd0].byte $30; C6
[acd1].byte $30; C6
[acd2].byte $30; C6
[acd3].byte $30; C6
[acd4].byte $30; C6
[acd5].byte $30; C6
[acd6].byte $00; Rest
[acd7].byte $30; C6
[acd8].byte $30; C6
[acd9].byte $2c; G#5
[acda].byte $2c; G#5
[acdb].byte $38; G#6
[acdc].byte $38; G#6
[acdd].byte $2c; G#5
[acde].byte $2c; G#5
[acdf].byte $2b; G5
[ace0].byte $00; Rest
[ace1].byte $00; Rest
[ace2].byte $00; Rest
[ace3].byte $37; G6
[ace4].byte $37; G6
[ace5].byte $2b; G5
[ace6].byte $2b; G5
[ace7].byte $2b; G5
[ace8].byte $2b; G5
[ace9].byte MSCRIPT_OP_END_LOOP; Op: End loop
[acea].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aceb].byte $02; '- 2 iterations
[acec].byte $86; Note length: 6
[aced].byte $30; C6
[acee].byte $30; C6
[acef].byte $30; C6
[acf0].byte $30; C6
[acf1].byte $30; C6
[acf2].byte $00; Rest
[acf3].byte $30; C6
[acf4].byte $30; C6
[acf5].byte $30; C6
[acf6].byte $30; C6
[acf7].byte $30; C6
[acf8].byte $30; C6
[acf9].byte $30; C6
[acfa].byte $00; Rest
[acfb].byte $30; C6
[acfc].byte $30; C6
[acfd].byte $30; C6
[acfe].byte $30; C6
[acff].byte $30; C6
[ad00].byte $30; C6
[ad01].byte $30; C6
[ad02].byte $00; Rest
[ad03].byte $30; C6
[ad04].byte $30; C6
[ad05].byte $30; C6
[ad06].byte $30; C6
[ad07].byte $30; C6
[ad08].byte $30; C6
[ad09].byte $30; C6
[ad0a].byte $00; Rest
[ad0b].byte $30; C6
[ad0c].byte $30; C6
[ad0d].byte $33; D#6
[ad0e].byte $33; D#6
[ad0f].byte $33; D#6
[ad10].byte $33; D#6
[ad11].byte $33; D#6
[ad12].byte $00; Rest
[ad13].byte $33; D#6
[ad14].byte $33; D#6
[ad15].byte $35; F6
[ad16].byte $35; F6
[ad17].byte $35; F6
[ad18].byte $35; F6
[ad19].byte $35; F6
[ad1a].byte $00; Rest
[ad1b].byte $35; F6
[ad1c].byte $35; F6
[ad1d].byte $30; C6
[ad1e].byte $30; C6
[ad1f].byte $30; C6
[ad20].byte $30; C6
[ad21].byte $30; C6
[ad22].byte $00; Rest
[ad23].byte $30; C6
[ad24].byte $30; C6
[ad25].byte $30; C6
[ad26].byte $30; C6
[ad27].byte $30; C6
[ad28].byte $30; C6
[ad29].byte $30; C6
[ad2a].byte $00; Rest
[ad2b].byte $30; C6
[ad2c].byte $30; C6
[ad2d].byte MSCRIPT_OP_END_LOOP; Op: End loop
[ad2e].byte $2c; G#5
[ad2f].byte $2c; G#5
[ad30].byte $2c; G#5
[ad31].byte $2c; G#5
[ad32].byte $2c; G#5
[ad33].byte $2c; G#5
[ad34].byte $2c; G#5
[ad35].byte $2c; G#5
[ad36].byte $2e; A#5
[ad37].byte $2e; A#5
[ad38].byte $2e; A#5
[ad39].byte $2e; A#5
[ad3a].byte $2e; A#5
[ad3b].byte $2e; A#5
[ad3c].byte $2e; A#5
[ad3d].byte $2e; A#5
[ad3e].byte $30; C6
[ad3f].byte $30; C6
[ad40].byte $30; C6
[ad41].byte $30; C6
[ad42].byte $30; C6
[ad43].byte $00; Rest
[ad44].byte $30; C6
[ad45].byte $30; C6
[ad46].byte $30; C6
[ad47].byte $30; C6
[ad48].byte $30; C6
[ad49].byte $30; C6
[ad4a].byte $30; C6
[ad4b].byte $00; Rest
[ad4c].byte $30; C6
[ad4d].byte $30; C6
[ad4e].byte $2c; G#5
[ad4f].byte $2c; G#5
[ad50].byte $2c; G#5
[ad51].byte $2c; G#5
[ad52].byte $2c; G#5
[ad53].byte $2c; G#5
[ad54].byte $2e; A#5
[ad55].byte $00; Rest
[ad56].byte $00; Rest
[ad57].byte $00; Rest
[ad58].byte $2e; A#5
[ad59].byte $2e; A#5
[ad5a].byte $2e; A#5
[ad5b].byte $2e; A#5
[ad5c].byte $2e; A#5
[ad5d].byte $2e; A#5
[ad5e].byte $30; C6
[ad5f].byte $30; C6
[ad60].byte $30; C6
[ad61].byte $30; C6
[ad62].byte $30; C6
[ad63].byte $00; Rest
[ad64].byte $30; C6
[ad65].byte $30; C6
[ad66].byte $30; C6
[ad67].byte $30; C6
[ad68].byte $30; C6
[ad69].byte $30; C6
[ad6a].byte $30; C6
[ad6b].byte $00; Rest
[ad6c].byte $30; C6
[ad6d].byte $30; C6
[ad6e].byte $2c; G#5
[ad6f].byte $2c; G#5
[ad70].byte $2c; G#5
[ad71].byte $2c; G#5
[ad72].byte $2c; G#5
[ad73].byte $2c; G#5
[ad74].byte $2c; G#5
[ad75].byte $2c; G#5
[ad76].byte $2e; A#5
[ad77].byte $2e; A#5
[ad78].byte $2e; A#5
[ad79].byte $2e; A#5
[ad7a].byte $2e; A#5
[ad7b].byte $2e; A#5
[ad7c].byte $2e; A#5
[ad7d].byte $2e; A#5
[ad7e].byte $30; C6
[ad7f].byte $30; C6
[ad80].byte $30; C6
[ad81].byte $30; C6
[ad82].byte $30; C6
[ad83].byte $00; Rest
[ad84].byte $30; C6
[ad85].byte $30; C6
[ad86].byte $30; C6
[ad87].byte $30; C6
[ad88].byte $30; C6
[ad89].byte $30; C6
[ad8a].byte $30; C6
[ad8b].byte $00; Rest
[ad8c].byte $30; C6
[ad8d].byte $30; C6
[ad8e].byte $2c; G#5
[ad8f].byte $2c; G#5
[ad90].byte $2c; G#5
[ad91].byte $2c; G#5
[ad92].byte $2c; G#5
[ad93].byte $2c; G#5
[ad94].byte $2e; A#5
[ad95].byte $00; Rest
[ad96].byte $00; Rest
[ad97].byte $00; Rest
[ad98].byte $2e; A#5
[ad99].byte $2e; A#5
[ad9a].byte $2e; A#5
[ad9b].byte $2e; A#5
[ad9c].byte $2e; A#5
[ad9d].byte $2e; A#5
[ad9e].byte $2c; G#5
[ad9f].byte $2c; G#5
[ada0].byte $2c; G#5
[ada1].byte $2c; G#5
[ada2].byte $2c; G#5
[ada3].byte $2c; G#5
[ada4].byte $2e; A#5
[ada5].byte $00; Rest
[ada6].byte $00; Rest
[ada7].byte $00; Rest
[ada8].byte $2e; A#5
[ada9].byte $2e; A#5
[adaa].byte $2e; A#5
[adab].byte $2e; A#5
[adac].byte $8c; Note length: 12
[adad].byte $30; C6
[adae].byte $86; Note length: 6
[adaf].byte $30; C6
[adb0].byte $30; C6
[adb1].byte $30; C6
[adb2].byte $30; C6
[adb3].byte $30; C6
[adb4].byte $30; C6
[adb5].byte $30; C6
[adb6].byte $30; C6
[adb7].byte $30; C6
[adb8].byte $30; C6
[adb9].byte $30; C6
[adba].byte $30; C6
[adbb].byte $30; C6
[adbc].byte $30; C6
[adbd].byte $30; C6
[adbe].byte $86; Note length: 6
[adbf].byte $2c; G#5
[adc0].byte $2c; G#5
[adc1].byte $2c; G#5
[adc2].byte $2c; G#5
[adc3].byte $2c; G#5
[adc4].byte $2c; G#5
[adc5].byte $2c; G#5
[adc6].byte $2c; G#5
[adc7].byte $2e; A#5
[adc8].byte $2e; A#5
[adc9].byte $2e; A#5
[adca].byte $2e; A#5
[adcb].byte $2e; A#5
[adcc].byte $00; Rest
[adcd].byte $2e; A#5
[adce].byte $2e; A#5
[adcf].byte $88; Note length: 8
[add0].byte $30; C6
[add1].byte $00; Rest
[add2].byte $00; Rest
[add3].byte $00; Rest
[add4].byte $30; C6
[add5].byte $34; E6
[add6].byte $30; C6
[add7].byte $30; C6
[add8].byte $98; Note length: 24
[add9].byte $30; C6
[adda].byte $88; Note length: 8
[addb].byte $00; Rest
[addc].byte MSCRIPT_OP_END; Op: End
[addd]MSCRIPT_ENDING_NOISE:; [$addd]
[addd].byte $8c,$21,$86,$31,$31,$8c,$21,$86; [$addd] byte
[ade5].byte $31,$31,$21,$21,$21,$21,$21,$21; [$ade5] byte
[aded].byte $21,$21; [$aded] byte
.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[adf0].byte $02; '- 2 iterations
[adf1].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$adf1] byte
[adf9].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$adf9] byte
[ae01].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$ae01] byte
[ae09].byte $21,$86,$31,$31,$31,$00,$31,$31; [$ae09] byte
[ae11].byte $8c,$21,$86,$31,$31,$31,$00,$31; [$ae11] byte
[ae19].byte $31,$8c,$21,$86,$31,$31,$31,$00; [$ae19] byte
[ae21].byte $31,$31,$8c,$21,$21,$21,$21,$21; [$ae21] byte
[ae29].byte $21,$86,$31,$00,$8c,$21,$21,$86; [$ae29] byte
[ae31].byte $21,$21; [$ae31] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[ae34].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[ae35].byte $02; '- 2 iterations
[ae36].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$ae36] byte
[ae3e].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$ae3e] byte
[ae46].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$ae46] byte
[ae4e].byte $21,$86,$31,$31,$31,$00,$31,$31; [$ae4e] byte
[ae56].byte $8c,$21,$86,$31,$31,$31,$00,$31; [$ae56] byte
[ae5e].byte $31,$8c,$21,$86,$31,$31,$31,$00; [$ae5e] byte
[ae66].byte $31,$31,$8c,$21,$86,$31,$31,$31; [$ae66] byte
[ae6e].byte $00,$31,$31,$8c,$21,$86,$31,$31; [$ae6e] byte
[ae76].byte $31,$00,$31,$31,$21,$21,$21,$31; [$ae76] byte
[ae7e].byte MSCRIPT_OP_END_LOOP; Op: End loop
[ae7f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[ae80].byte $02; '- 2 iterations
[ae81].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$ae81] byte
[ae89].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$ae89] byte
[ae91].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$ae91] byte
[ae99].byte $21,$86,$31,$31,$31,$00,$31,$31; [$ae99] byte
[aea1].byte $8c,$21,$86,$31,$31; [$aea1] byte
.byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[aea7].byte $01; '- 1 loop
[aea8].byte $86,$31,$00,$31,$31,$8c,$21,$86; [$aea8] byte
[aeb0].byte $31,$31,$31,$00,$31,$31,$8c,$21; [$aeb0] byte
[aeb8].byte $86,$31,$31,$31,$00,$31,$31,$8c; [$aeb8] byte
[aec0].byte $21,$86,$31,$31,$31,$00,$8c,$21; [$aec0] byte
[aec8].byte $86,$21,$21,$21,$31; [$aec8] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[aece].byte MSCRIPT_OP_NEXT_LOOP_IF_N_ITERS; Op: Next loop if looped N times
[aecf].byte $02; '- 2 loops
[aed0].byte $8c,$21,$21,$21,$21,$86,$31,$00; [$aed0] byte
[aed8].byte $8c,$21,$21,$86,$21,$21,$8c,$21; [$aed8] byte
[aee0].byte $21,$21,$21,$00,$21,$21,$21; [$aee0] byte
.byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[aee8].byte $02; '- 2 iterations
[aee9].byte $86,$31,$00,$31,$31,$31,$00,$31; [$aee9] byte
[aef1].byte $31,$31,$00,$31,$31,$31,$00,$31; [$aef1] byte
[aef9].byte $31; [$aef9] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[aefb].byte $86,$31,$00,$31,$31,$31,$00,$31; [$aefb] byte
[af03].byte $31,$31,$00,$31,$31,$86,$21,$00; [$af03] byte
[af0b].byte $21,$21,$88,$21,$00,$84,$21,$21; [$af0b] byte
[af13].byte $21,$21,$88,$21,$21,$21,$21,$98; [$af13] byte
[af1b].byte $21,$88,$00; [$af1b] byte
.byte MSCRIPT_OP_END; Op: End
[af1f].byte MSCRIPT_OP_END; Op: End
;============================================================================
; Music for the King's room.
;
; XREFS:
;
MSCRIPTS_KINGS_ROOM [$PRG5::8f5b]
;============================================================================
[af20]MSCRIPT_KINGS_ROOM_SQ1:; [$af20]
[af20].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[af21].byte $00; '- Reduce volume by 0
[af22].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[af23].byte $b0; '- Duty cycle 2
Constant volume/envelope
[af24].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[af25].byte $01; '- Mode 1: Curve but held
[af26].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[af27].byte $f4; '- Down 1 octave
[af28].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[af29].byte $02; '- 2 iterations
[af2a].byte $b0; Note length: 48
[af2b].byte $30; C4
[af2c].byte $2b; G3
[af2d].byte $30; C4
[af2e].byte $37; G4
[af2f].byte $c0; Note length: 64
[af30].byte $37; G4
[af31].byte $90; Note length: 16
[af32].byte $35; F4
[af33].byte $34; E4
[af34].byte $e0; Note length: 96
[af35].byte $35; F4
[af36].byte $c0; Note length: 64
[af37].byte $35; F4
[af38].byte $90; Note length: 16
[af39].byte $34; E4
[af3a].byte $32; D4
[af3b].byte $b0; Note length: 48
[af3c].byte $34; E4
[af3d].byte $30; C4
[af3e].byte $c0; Note length: 64
[af3f].byte $34; E4
[af40].byte $90; Note length: 16
[af41].byte $2d; A3
[af42].byte $30; C4
[af43].byte $b0; Note length: 48
[af44].byte $30; C4
[af45].byte $2f; B3
[af46].byte MSCRIPT_OP_END_LOOP; Op: End loop
[af47].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[af48].byte MSCRIPT_OP_END; Op: End
[af49]MSCRIPT_KINGS_ROOM_SQ2:; [$af49]
[af49].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[af4a].byte $02; '- Reduce volume by 2
[af4b].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[af4c].byte $b0; '- Duty cycle 2
Constant volume/envelope
[af4d].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[af4e].byte $f4; '- Down 1 octave
[af4f].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[af50].byte $01; '- Mode 1: Curve but held
[af51].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[af52].byte $02; '- 2 iterations
[af53].byte $b0; Note length: 48
[af54].byte $28; E3
[af55].byte $28; E3
[af56].byte $28; E3
[af57].byte $34; E4
[af58].byte $c0; Note length: 64
[af59].byte $2e; A#3
[af5a].byte $90; Note length: 16
[af5b].byte $30; C4
[af5c].byte $2e; A#3
[af5d].byte $e0; Note length: 96
[af5e].byte $2d; A3
[af5f].byte $c0; Note length: 64
[af60].byte $2c; G#3
[af61].byte $90; Note length: 16
[af62].byte $30; C4
[af63].byte $2c; G#3
[af64].byte $b0; Note length: 48
[af65].byte $2b; G3
[af66].byte $28; E3
[af67].byte $c0; Note length: 64
[af68].byte $2a; F#3
[af69].byte $90; Note length: 16
[af6a].byte $26; D3
[af6b].byte $2a; F#3
[af6c].byte $b0; Note length: 48
[af6d].byte $29; F3
[af6e].byte $26; D3
[af6f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[af70].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[af71].byte MSCRIPT_OP_END; Op: End
[af72]MSCRIPT_KINGS_ROOM_TRI:; [$af72]
[af72].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[af73].byte $f4; '- Down 1 octave
[af74].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[af75].byte $02; '- 2 iterations
[af76].byte $90; Note length: 16
[af77].byte $18; C4
[af78].byte $18; C4
[af79].byte $18; C4
[af7a].byte $18; C4
[af7b].byte $18; C4
[af7c].byte $18; C4
[af7d].byte $18; C4
[af7e].byte $18; C4
[af7f].byte $18; C4
[af80].byte $18; C4
[af81].byte $18; C4
[af82].byte $18; C4
[af83].byte $18; C4
[af84].byte $18; C4
[af85].byte $18; C4
[af86].byte $24; C5
[af87].byte $18; C4
[af88].byte $18; C4
[af89].byte $18; C4
[af8a].byte $18; C4
[af8b].byte $18; C4
[af8c].byte $24; C5
[af8d].byte $18; C4
[af8e].byte $18; C4
[af8f].byte $1d; F4
[af90].byte $1d; F4
[af91].byte $1d; F4
[af92].byte $1d; F4
[af93].byte $1d; F4
[af94].byte $1d; F4
[af95].byte $18; C4
[af96].byte $18; C4
[af97].byte $18; C4
[af98].byte $18; C4
[af99].byte $18; C4
[af9a].byte $18; C4
[af9b].byte $1a; D4
[af9c].byte $1a; D4
[af9d].byte $1a; D4
[af9e].byte $1a; D4
[af9f].byte $1a; D4
[afa0].byte $1a; D4
[afa1].byte $1f; G4
[afa2].byte $1f; G4
[afa3].byte $1f; G4
[afa4].byte $1f; G4
[afa5].byte $1f; G4
[afa6].byte $1f; G4
[afa7].byte MSCRIPT_OP_END_LOOP; Op: End loop
[afa8].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[afa9].byte MSCRIPT_OP_END; Op: End
[afaa]MSCRIPT_KINGS_ROOM_NOISE:; [$afaa]
[afaa].byte $ff,$ff; [$afaa] byte
;============================================================================
; Music for the temples.
;
; XREFS:
;
MSCRIPTS_TEMPLE [$PRG5::8f63]
;============================================================================
[afac]MSCRIPT_TEMPLE_SQ1:; [$afac]
[afac].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[afad].byte $02; '- Reduce volume by 2
[afae].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[afaf].byte $b0; '- Duty cycle 2
Constant volume/envelope
[afb0].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[afb1].byte $01; '- Mode 1: Curve but held
[afb2].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[afb3].byte $f4; '- Down 1 octave
[afb4].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[afb5].byte $02; '- 2 iterations
[afb6].byte $ac; Note length: 44
[afb7].byte $00; Rest
[afb8].byte $32; D4
[afb9].byte $d8; Note length: 88
[afba].byte $37; G4
[afbb].byte $c2; Note length: 66
[afbc].byte $37; G4
[afbd].byte $8b; Note length: 11
[afbe].byte $36; F#4
[afbf].byte $34; E4
[afc0].byte $d8; Note length: 88
[afc1].byte $36; F#4
[afc2].byte $ac; Note length: 44
[afc3].byte $00; Rest
[afc4].byte $37; G4
[afc5].byte $d8; Note length: 88
[afc6].byte $3e; D5
[afc7].byte $c2; Note length: 66
[afc8].byte $3e; D5
[afc9].byte $8b; Note length: 11
[afca].byte $3c; C5
[afcb].byte $3b; B4
[afcc].byte $ac; Note length: 44
[afcd].byte $39; A4
[afce].byte $37; G4
[afcf].byte $c2; Note length: 66
[afd0].byte $37; G4
[afd1].byte $96; Note length: 22
[afd2].byte $36; F#4
[afd3].byte $d8; Note length: 88
[afd4].byte $36; F#4
[afd5].byte $ac; Note length: 44
[afd6].byte $00; Rest
[afd7].byte $32; D4
[afd8].byte $d8; Note length: 88
[afd9].byte $37; G4
[afda].byte $c2; Note length: 66
[afdb].byte $37; G4
[afdc].byte $8b; Note length: 11
[afdd].byte $36; F#4
[afde].byte $34; E4
[afdf].byte $d8; Note length: 88
[afe0].byte $36; F#4
[afe1].byte $ac; Note length: 44
[afe2].byte $00; Rest
[afe3].byte $32; D4
[afe4].byte $37; G4
[afe5].byte $3b; B4
[afe6].byte $c2; Note length: 66
[afe7].byte $3e; D5
[afe8].byte $96; Note length: 22
[afe9].byte $40; E5
[afea].byte $c2; Note length: 66
[afeb].byte $34; E4
[afec].byte $96; Note length: 22
[afed].byte $39; A4
[afee].byte $ac; Note length: 44
[afef].byte $37; G4
[aff0].byte $96; Note length: 22
[aff1].byte $36; F#4
[aff2].byte $34; E4
[aff3].byte $8b; Note length: 11
[aff4].byte $36; F#4
[aff5].byte $37; G4
[aff6].byte $36; F#4
[aff7].byte $37; G4
[aff8].byte $88; Note length: 8
[aff9].byte $36; F#4
[affa].byte $87; Note length: 7
[affb].byte $37; G4
[affc].byte $87; Note length: 7
[affd].byte $36; F#4
[affe].byte $8b; Note length: 11
[afff].byte $34; E4
[b000].byte $36; F#4
[b001].byte $d8; Note length: 88
[b002].byte $37; G4
[b003].byte $36; F#4
[b004].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b005].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b006].byte MSCRIPT_OP_END; Op: End
[b007]MSCRIPT_TEMPLE_SQ2:; [$b007]
[b007].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[b008].byte $02; '- Reduce volume by 2
[b009].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[b00a].byte $b0; '- Duty cycle 2
Constant volume/envelope
[b00b].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[b00c].byte $01; '- Mode 1: Curve but held
[b00d].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[b00e].byte $f4; '- Down 1 octave
[b00f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b010].byte $02; '- 2 iterations
[b011].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b012].byte $b0; '- 176 ticks
[b013].byte $2f; B3
[b014].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b015].byte $84; '- 132 ticks
[b016].byte $30; C4
[b017].byte $ac; Note length: 44
[b018].byte $30; C4
[b019].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b01a].byte $b0; '- 176 ticks
[b01b].byte $32; D4
[b01c].byte $d8; Note length: 88
[b01d].byte $34; E4
[b01e].byte $34; E4
[b01f].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b020].byte $84; '- 132 ticks
[b021].byte $30; C4
[b022].byte $96; Note length: 22
[b023].byte $32; D4
[b024].byte $30; C4
[b025].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b026].byte $b0; '- 176 ticks
[b027].byte $2f; B3
[b028].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b029].byte $84; '- 132 ticks
[b02a].byte $30; C4
[b02b].byte $ac; Note length: 44
[b02c].byte $30; C4
[b02d].byte $d8; Note length: 88
[b02e].byte $2f; B3
[b02f].byte $ac; Note length: 44
[b030].byte $32; D4
[b031].byte $37; G4
[b032].byte $c2; Note length: 66
[b033].byte $37; G4
[b034].byte $96; Note length: 22
[b035].byte $3c; C5
[b036].byte $c2; Note length: 66
[b037].byte $30; C4
[b038].byte $96; Note length: 22
[b039].byte $34; E4
[b03a].byte $d8; Note length: 88
[b03b].byte $30; C4
[b03c].byte $30; C4
[b03d].byte $2f; B3
[b03e].byte $30; C4
[b03f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b040].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b041].byte MSCRIPT_OP_END; Op: End
[b042]MSCRIPT_TEMPLE_TRI:; [$b042]
[b042].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[b043].byte $e8; '- Down 2 octaves
[b044].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b045].byte $02; '- 2 iterations
[b046].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b047].byte $84; '- 132 ticks
[b048].byte $1f; G4
[b049].byte $ac; Note length: 44
[b04a].byte $1f; G4
[b04b].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b04c].byte $b0; '- 176 ticks
[b04d].byte $21; A4
[b04e].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b04f].byte $84; '- 132 ticks
[b050].byte $23; B4
[b051].byte $ac; Note length: 44
[b052].byte $23; B4
[b053].byte $d8; Note length: 88
[b054].byte $24; C5
[b055].byte $25; C#5
[b056].byte $26; D5
[b057].byte $26; D5
[b058].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b059].byte $84; '- 132 ticks
[b05a].byte $1f; G4
[b05b].byte $ac; Note length: 44
[b05c].byte $1f; G4
[b05d].byte MSCRIPT_OP_SET_NOTE_DURATION; Op: Set note duration
[b05e].byte $b0; '- 176 ticks
[b05f].byte $21; A4
[b060].byte $d8; Note length: 88
[b061].byte $23; B4
[b062].byte $23; B4
[b063].byte $c2; Note length: 66
[b064].byte $34; E6
[b065].byte $96; Note length: 22
[b066].byte $37; G6
[b067].byte $c2; Note length: 66
[b068].byte $2d; A5
[b069].byte $96; Note length: 22
[b06a].byte $30; C6
[b06b].byte $d8; Note length: 88
[b06c].byte $26; D5
[b06d].byte $26; D5
[b06e].byte $1f; G4
[b06f].byte $26; D5
[b070].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b071].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b072].byte MSCRIPT_OP_END; Op: End
[b073]MSCRIPT_TEMPLE_NOISE:; [$b073]
[b073].byte $ff,$ff; [$b073] byte
;============================================================================
; Music for the shops.
;
; XREFS:
;
MSCRIPTS_SHOP [$PRG5::8f6b]
;============================================================================
[b075]MSCRIPT_SHOP_SQ1:; [$b075]
[b075].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[b076].byte $02; '- Reduce volume by 2
[b077].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[b078].byte $90; '- Duty cycle 2
Constant volume/envelope
[b079].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[b07a].byte $01; '- Mode 1: Curve but held
[b07b].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b07c].byte $02; '- 2 iterations
[b07d].byte $8e; Note length: 14
[b07e].byte $26; D3
[b07f].byte $00; Rest
[b080].byte $00; Rest
[b081].byte $00; Rest
[b082].byte $26; D3
[b083].byte $00; Rest
[b084].byte $00; Rest
[b085].byte $00; Rest
[b086].byte $26; D3
[b087].byte $00; Rest
[b088].byte $00; Rest
[b089].byte $00; Rest
[b08a].byte $26; D3
[b08b].byte $00; Rest
[b08c].byte $00; Rest
[b08d].byte $00; Rest
[b08e].byte $26; D3
[b08f].byte $00; Rest
[b090].byte $00; Rest
[b091].byte $00; Rest
[b092].byte $26; D3
[b093].byte $00; Rest
[b094].byte $00; Rest
[b095].byte $00; Rest
[b096].byte $00; Rest
[b097].byte $24; C3
[b098].byte $25; C#3
[b099].byte $26; D3
[b09a].byte $1f; G2
[b09b].byte $20; G#2
[b09c].byte $21; A2
[b09d].byte $00; Rest
[b09e].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b09f].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b0a0].byte $02; '- 2 iterations
[b0a1].byte $8e; Note length: 14
[b0a2].byte $2b; G3
[b0a3].byte $00; Rest
[b0a4].byte $2b; G3
[b0a5].byte $2d; A3
[b0a6].byte $00; Rest
[b0a7].byte $00; Rest
[b0a8].byte $00; Rest
[b0a9].byte $87; Note length: 7
[b0aa].byte $30; C4
[b0ab].byte $2f; B3
[b0ac].byte $8e; Note length: 14
[b0ad].byte $2b; G3
[b0ae].byte $00; Rest
[b0af].byte $2b; G3
[b0b0].byte $2d; A3
[b0b1].byte $00; Rest
[b0b2].byte $00; Rest
[b0b3].byte $00; Rest
[b0b4].byte $00; Rest
[b0b5].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b0b6].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b0b7].byte MSCRIPT_OP_END; Op: End
[b0b8]MSCRIPT_SHOP_SQ2:; [$b0b8]
[b0b8].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[b0b9].byte $02; '- Reduce volume by 2
[b0ba].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[b0bb].byte $90; '- Duty cycle 2
Constant volume/envelope
[b0bc].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[b0bd].byte $01; '- Mode 1: Curve but held
[b0be].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b0bf].byte $02; '- 2 iterations
[b0c0].byte $8e; Note length: 14
[b0c1].byte $1f; G2
[b0c2].byte $00; Rest
[b0c3].byte $00; Rest
[b0c4].byte $00; Rest
[b0c5].byte $1f; G2
[b0c6].byte $00; Rest
[b0c7].byte $00; Rest
[b0c8].byte $00; Rest
[b0c9].byte $1f; G2
[b0ca].byte $00; Rest
[b0cb].byte $00; Rest
[b0cc].byte $00; Rest
[b0cd].byte $1f; G2
[b0ce].byte $00; Rest
[b0cf].byte $00; Rest
[b0d0].byte $00; Rest
[b0d1].byte $1f; G2
[b0d2].byte $00; Rest
[b0d3].byte $00; Rest
[b0d4].byte $00; Rest
[b0d5].byte $1f; G2
[b0d6].byte $00; Rest
[b0d7].byte $00; Rest
[b0d8].byte $00; Rest
[b0d9].byte $00; Rest
[b0da].byte $18; C2
[b0db].byte $19; C#2
[b0dc].byte $1a; D2
[b0dd].byte $13; A9
[b0de].byte $14; A9
[b0df].byte $15; A9
[b0e0].byte $00; Rest
[b0e1].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b0e2].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b0e3].byte $02; '- 2 iterations
[b0e4].byte $8e; Note length: 14
[b0e5].byte $24; C3
[b0e6].byte $00; Rest
[b0e7].byte $24; C3
[b0e8].byte $26; D3
[b0e9].byte $00; Rest
[b0ea].byte $00; Rest
[b0eb].byte $00; Rest
[b0ec].byte $87; Note length: 7
[b0ed].byte $2b; G3
[b0ee].byte $2a; F#3
[b0ef].byte $8e; Note length: 14
[b0f0].byte $24; C3
[b0f1].byte $00; Rest
[b0f2].byte $24; C3
[b0f3].byte $26; D3
[b0f4].byte $00; Rest
[b0f5].byte $00; Rest
[b0f6].byte $00; Rest
[b0f7].byte $00; Rest
[b0f8].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b0f9].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b0fa].byte MSCRIPT_OP_END; Op: End
[b0fb]MSCRIPT_SHOP_TRI:; [$b0fb]
[b0fb].byte MSCRIPT_OP_SET_CHANNEL_TRANSPOSE; Op: Set channel transpose
[b0fc].byte $f4; '- Down 1 octave
[b0fd].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b0fe].byte $02; '- 2 iterations
[b0ff].byte $8e; Note length: 14
[b100].byte $35; F6
[b101].byte $00; Rest
[b102].byte $32; D6
[b103].byte $37; G6
[b104].byte $3c; C7
[b105].byte $00; Rest
[b106].byte $3b; B6
[b107].byte $32; D6
[b108].byte $00; Rest
[b109].byte $35; F6
[b10a].byte $32; D6
[b10b].byte $37; G6
[b10c].byte $3c; C7
[b10d].byte $3b; B6
[b10e].byte $32; D6
[b10f].byte $00; Rest
[b110].byte $35; F6
[b111].byte $00; Rest
[b112].byte $32; D6
[b113].byte $37; G6
[b114].byte $3c; C7
[b115].byte $00; Rest
[b116].byte $3b; B6
[b117].byte $32; D6
[b118].byte $00; Rest
[b119].byte $30; C6
[b11a].byte $31; C#6
[b11b].byte $32; D6
[b11c].byte $2b; G5
[b11d].byte $2c; G#5
[b11e].byte $2d; A5
[b11f].byte $00; Rest
[b120].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b121].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b122].byte $02; '- 2 iterations
[b123].byte $8e; Note length: 14
[b124].byte $26; D5
[b125].byte $00; Rest
[b126].byte $26; D5
[b127].byte $26; D5
[b128].byte $87; Note length: 7
[b129].byte $1a; D4
[b12a].byte $00; Rest
[b12b].byte $1a; D4
[b12c].byte $00; Rest
[b12d].byte $1a; D4
[b12e].byte $00; Rest
[b12f].byte $1a; D4
[b130].byte $1a; D4
[b131].byte $8e; Note length: 14
[b132].byte $26; D5
[b133].byte $00; Rest
[b134].byte $26; D5
[b135].byte $26; D5
[b136].byte $87; Note length: 7
[b137].byte $1a; D4
[b138].byte $00; Rest
[b139].byte $1a; D4
[b13a].byte $00; Rest
[b13b].byte $1a; D4
[b13c].byte $00; Rest
[b13d].byte $1a; D4
[b13e].byte $1a; D4
[b13f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b140].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b141].byte MSCRIPT_OP_END; Op: End
[b142]MSCRIPT_SHOP_NOISE:; [$b142]
[b142].byte $ff,$ff; [$b142] undefined
;============================================================================
; Music for the Evil Fortress.
;
; XREFS:
;
MSCRIPTS_EVIL_FORTRESS [$PRG5::8f73]
;============================================================================
[b144]MSCRIPT_EVIL_FORTRESS_SQ1:; [$b144]
[b144].byte MSCRIPT_OP_SET_GLOBAL_TRANSPOSE; Op: Set global transpose
[b145].byte $f4; '- Down 1 octave
[b146].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[b147].byte $02; '- Reduce volume by 2
[b148].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[b149].byte $00; '- Mode 0: Linear decay
[b14a].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[b14b].byte $d0; '- Duty cycle 3
Constant volume/envelope
[b14c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b14d].byte $02; '- 2 iterations
[b14e].byte $88; Note length: 8
[b14f].byte $00; Rest
[b150].byte $3c; C4
[b151].byte $37; G3
[b152].byte $32; D3
[b153].byte $00; Rest
[b154].byte $00; Rest
[b155].byte $00; Rest
[b156].byte $00; Rest
[b157].byte $00; Rest
[b158].byte $3a; A#3
[b159].byte $35; F3
[b15a].byte $30; C3
[b15b].byte $2b; G2
[b15c].byte $00; Rest
[b15d].byte $00; Rest
[b15e].byte $00; Rest
[b15f].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b160].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b161].byte $02; '- 2 iterations
[b162].byte $88; Note length: 8
[b163].byte $00; Rest
[b164].byte $3c; C4
[b165].byte $37; G3
[b166].byte $98; Note length: 24
[b167].byte $32; D3
[b168].byte $88; Note length: 8
[b169].byte $37; G3
[b16a].byte $32; D3
[b16b].byte $00; Rest
[b16c].byte $3a; A#3
[b16d].byte $35; F3
[b16e].byte $90; Note length: 16
[b16f].byte $30; C3
[b170].byte $88; Note length: 8
[b171].byte $35; F3
[b172].byte $30; C3
[b173].byte $00; Rest
[b174].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b175].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b176].byte $02; '- 2 iterations
[b177].byte $88; Note length: 8
[b178].byte $39; A3
[b179].byte $39; A3
[b17a].byte $39; A3
[b17b].byte $39; A3
[b17c].byte $90; Note length: 16
[b17d].byte $37; G3
[b17e].byte $00; Rest
[b17f].byte $b0; Note length: 48
[b180].byte $00; Rest
[b181].byte $88; Note length: 8
[b182].byte $39; A3
[b183].byte $39; A3
[b184].byte $39; A3
[b185].byte $39; A3
[b186].byte $90; Note length: 16
[b187].byte $37; G3
[b188].byte $c0; Note length: 64
[b189].byte $00; Rest
[b18a].byte $90; Note length: 16
[b18b].byte $32; D3
[b18c].byte $37; G3
[b18d].byte $37; G3
[b18e].byte $3c; C4
[b18f].byte $3c; C4
[b190].byte $41; F4
[b191].byte $41; F4
[b192].byte $3c; C4
[b193].byte $3c; C4
[b194].byte $37; G3
[b195].byte $a0; Note length: 32
[b196].byte $39; A3
[b197].byte $37; G3
[b198].byte $00; Rest
[b199].byte $90; Note length: 16
[b19a].byte $2c; G#2
[b19b].byte $2e; A#2
[b19c].byte $88; Note length: 8
[b19d].byte $37; G3
[b19e].byte $37; G3
[b19f].byte $37; G3
[b1a0].byte $38; G#3
[b1a1].byte $00; Rest
[b1a2].byte $38; G#3
[b1a3].byte $00; Rest
[b1a4].byte $38; G#3
[b1a5].byte $3a; A#3
[b1a6].byte $3a; A#3
[b1a7].byte $3a; A#3
[b1a8].byte $38; G#3
[b1a9].byte $00; Rest
[b1aa].byte $38; G#3
[b1ab].byte $00; Rest
[b1ac].byte $38; G#3
[b1ad].byte $a0; Note length: 32
[b1ae].byte $37; G3
[b1af].byte $35; F3
[b1b0].byte $c0; Note length: 64
[b1b1].byte $00; Rest
[b1b2].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b1b3].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b1b4].byte $02; '- 2 iterations
[b1b5].byte $98; Note length: 24
[b1b6].byte $35; F3
[b1b7].byte $39; A3
[b1b8].byte $90; Note length: 16
[b1b9].byte $3c; C4
[b1ba].byte $a0; Note length: 32
[b1bb].byte $3b; B3
[b1bc].byte $39; A3
[b1bd].byte $98; Note length: 24
[b1be].byte $3c; C4
[b1bf].byte $40; E4
[b1c0].byte $90; Note length: 16
[b1c1].byte $39; A3
[b1c2].byte $a0; Note length: 32
[b1c3].byte $3e; D4
[b1c4].byte $88; Note length: 8
[b1c5].byte $3b; B3
[b1c6].byte $39; A3
[b1c7].byte $37; G3
[b1c8].byte $36; F#3
[b1c9].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b1ca].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b1cb].byte MSCRIPT_OP_END; Op: End
[b1cc]MSCRIPT_EVIL_FORTRESS_SQ2:; [$b1cc]
[b1cc].byte MSCRIPT_OP_SET_SQ_FADE; Op: Set SQ fade
[b1cd].byte $04; '- Reduce volume by 4
[b1ce].byte MSCRIPT_OP_SET_SQ_ENVELOPE_MODE; Op: Set envelope mode
[b1cf].byte $00; '- Mode 0: Linear decay
[b1d0].byte MSCRIPT_OP_SET_SQ_CONTROL_BITS; Op: Set SQ control bits
[b1d1].byte $90; '- Duty cycle 2
Constant volume/envelope
[b1d2].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b1d3].byte $02; '- 2 iterations
[b1d4].byte $88; Note length: 8
[b1d5].byte $00; Rest
[b1d6].byte $37; G4
[b1d7].byte $32; D4
[b1d8].byte $2d; A3
[b1d9].byte $00; Rest
[b1da].byte $00; Rest
[b1db].byte $00; Rest
[b1dc].byte $00; Rest
[b1dd].byte $00; Rest
[b1de].byte $35; F4
[b1df].byte $30; C4
[b1e0].byte $2b; G3
[b1e1].byte $26; D3
[b1e2].byte $00; Rest
[b1e3].byte $00; Rest
[b1e4].byte $00; Rest
[b1e5].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b1e6].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b1e7].byte $02; '- 2 iterations
[b1e8].byte $88; Note length: 8
[b1e9].byte $00; Rest
[b1ea].byte $37; G4
[b1eb].byte $32; D4
[b1ec].byte $98; Note length: 24
[b1ed].byte $2d; A3
[b1ee].byte $88; Note length: 8
[b1ef].byte $32; D4
[b1f0].byte $2d; A3
[b1f1].byte $00; Rest
[b1f2].byte $35; F4
[b1f3].byte $30; C4
[b1f4].byte $90; Note length: 16
[b1f5].byte $2b; G3
[b1f6].byte $88; Note length: 8
[b1f7].byte $30; C4
[b1f8].byte $2b; G3
[b1f9].byte $00; Rest
[b1fa].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b1fb].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b1fc].byte $02; '- 2 iterations
[b1fd].byte $88; Note length: 8
[b1fe].byte $35; F4
[b1ff].byte $35; F4
[b200].byte $35; F4
[b201].byte $35; F4
[b202].byte $90; Note length: 16
[b203].byte $32; D4
[b204].byte $00; Rest
[b205].byte $b0; Note length: 48
[b206].byte $00; Rest
[b207].byte $88; Note length: 8
[b208].byte $00; Rest
[b209].byte $00; Rest
[b20a].byte $35; F4
[b20b].byte $35; F4
[b20c].byte $90; Note length: 16
[b20d].byte $32; D4
[b20e].byte $c0; Note length: 64
[b20f].byte $00; Rest
[b210].byte $90; Note length: 16
[b211].byte $2d; A3
[b212].byte $32; D4
[b213].byte $32; D4
[b214].byte $37; G4
[b215].byte $37; G4
[b216].byte $3c; C5
[b217].byte $3c; C5
[b218].byte $37; G4
[b219].byte $37; G4
[b21a].byte $32; D4
[b21b].byte $a0; Note length: 32
[b21c].byte $35; F4
[b21d].byte $33; D#4
[b21e].byte $00; Rest
[b21f].byte $90; Note length: 16
[b220].byte $29; F3
[b221].byte $2c; G#3
[b222].byte $88; Note length: 8
[b223].byte $33; D#4
[b224].byte $33; D#4
[b225].byte $33; D#4
[b226].byte $35; F4
[b227].byte $00; Rest
[b228].byte $35; F4
[b229].byte $00; Rest
[b22a].byte $35; F4
[b22b].byte $37; G4
[b22c].byte $37; G4
[b22d].byte $37; G4
[b22e].byte $35; F4
[b22f].byte $00; Rest
[b230].byte $35; F4
[b231].byte $00; Rest
[b232].byte $35; F4
[b233].byte $a0; Note length: 32
[b234].byte $33; D#4
[b235].byte $31; C#4
[b236].byte $c0; Note length: 64
[b237].byte $00; Rest
[b238].byte $fc; Op: End loop
[b239].byte $88; Note length: 8
[b23a].byte $00; Rest
[b23b].byte $98; Note length: 24
[b23c].byte $35; F4
[b23d].byte $39; A4
[b23e].byte $90; Note length: 16
[b23f].byte $3c; C5
[b240].byte $a0; Note length: 32
[b241].byte $3b; B4
[b242].byte $a0; Note length: 32
[b243].byte $39; A4
[b244].byte $98; Note length: 24
[b245].byte $3c; C5
[b246].byte $40; E5
[b247].byte $90; Note length: 16
[b248].byte $39; A4
[b249].byte $9c; Note length: 28
[b24a].byte $3e; D5
[b24b].byte $88; Note length: 8
[b24c].byte $3b; B4
[b24d].byte $39; A4
[b24e].byte $37; G4
[b24f].byte $84; Note length: 4
[b250].byte $36; F#4
[b251].byte $88; Note length: 8
[b252].byte $32; D4
[b253].byte $35; F4
[b254].byte $32; D4
[b255].byte $35; F4
[b256].byte $39; A4
[b257].byte $35; F4
[b258].byte $39; A4
[b259].byte $3c; C5
[b25a].byte $37; G4
[b25b].byte $3b; B4
[b25c].byte $37; G4
[b25d].byte $35; F4
[b25e].byte $39; A4
[b25f].byte $35; F4
[b260].byte $32; D4
[b261].byte $35; F4
[b262].byte $39; A4
[b263].byte $3c; C5
[b264].byte $39; A4
[b265].byte $3c; C5
[b266].byte $40; E5
[b267].byte $3c; C5
[b268].byte $35; F4
[b269].byte $39; A4
[b26a].byte $3b; B4
[b26b].byte $3e; D5
[b26c].byte $3b; B4
[b26d].byte $8c; Note length: 12
[b26e].byte $37; G4
[b26f].byte $88; Note length: 8
[b270].byte $3b; B4
[b271].byte $39; A4
[b272].byte $37; G4
[b273].byte $84; Note length: 4
[b274].byte $36; F#4
[b275].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b276].byte MSCRIPT_OP_END; Op: End
[b277]MSCRIPT_EVIL_FORTRESS_TRI:; [$b277]
[b277].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b278].byte $02; '- 2 iterations
[b279].byte $88; Note length: 8
[b27a].byte $18; C4
[b27b].byte $00; Rest
[b27c].byte $00; Rest
[b27d].byte $18; C4
[b27e].byte $00; Rest
[b27f].byte $00; Rest
[b280].byte $18; C4
[b281].byte $00; Rest
[b282].byte $18; C4
[b283].byte $00; Rest
[b284].byte $00; Rest
[b285].byte $18; C4
[b286].byte $00; Rest
[b287].byte $00; Rest
[b288].byte $18; C4
[b289].byte $18; C4
[b28a].byte $90; Note length: 16
[b28b].byte $18; C4
[b28c].byte $88; Note length: 8
[b28d].byte $00; Rest
[b28e].byte $18; C4
[b28f].byte $00; Rest
[b290].byte $00; Rest
[b291].byte $90; Note length: 16
[b292].byte $18; C4
[b293].byte $18; C4
[b294].byte $88; Note length: 8
[b295].byte $00; Rest
[b296].byte $18; C4
[b297].byte $00; Rest
[b298].byte $0c; C3
[b299].byte $18; C4
[b29a].byte $0c; C3
[b29b].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b29c].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b29d].byte $02; '- 2 iterations
[b29e].byte $88; Note length: 8
[b29f].byte $13; G3
[b2a0].byte $13; G3
[b2a1].byte $13; G3
[b2a2].byte $13; G3
[b2a3].byte $90; Note length: 16
[b2a4].byte $13; G3
[b2a5].byte $88; Note length: 8
[b2a6].byte $1d; F4
[b2a7].byte $1f; G4
[b2a8].byte $00; Rest
[b2a9].byte $1f; G4
[b2aa].byte $1d; F4
[b2ab].byte $1a; D4
[b2ac].byte $90; Note length: 16
[b2ad].byte $13; G3
[b2ae].byte $88; Note length: 8
[b2af].byte $00; Rest
[b2b0].byte $00; Rest
[b2b1].byte $13; G3
[b2b2].byte $13; G3
[b2b3].byte $90; Note length: 16
[b2b4].byte $13; G3
[b2b5].byte $00; Rest
[b2b6].byte $88; Note length: 8
[b2b7].byte $1d; F4
[b2b8].byte $1f; G4
[b2b9].byte $11; F3
[b2ba].byte $12; F#3
[b2bb].byte $13; G3
[b2bc].byte $00; Rest
[b2bd].byte $90; Note length: 16
[b2be].byte $00; Rest
[b2bf].byte $88; Note length: 8
[b2c0].byte $11; F3
[b2c1].byte $13; G3
[b2c2].byte $90; Note length: 16
[b2c3].byte $21; A4
[b2c4].byte $26; D5
[b2c5].byte $26; D5
[b2c6].byte $2b; G5
[b2c7].byte $2b; G5
[b2c8].byte $26; D5
[b2c9].byte $26; D5
[b2ca].byte $21; A4
[b2cb].byte $a0; Note length: 32
[b2cc].byte $13; G3
[b2cd].byte $90; Note length: 16
[b2ce].byte $11; F3
[b2cf].byte $88; Note length: 8
[b2d0].byte $1d; F4
[b2d1].byte $11; F3
[b2d2].byte $a0; Note length: 32
[b2d3].byte $00; Rest
[b2d4].byte $98; Note length: 24
[b2d5].byte $22; A#4
[b2d6].byte $88; Note length: 8
[b2d7].byte $16; A#3
[b2d8].byte $22; A#4
[b2d9].byte $16; A#3
[b2da].byte $22; A#4
[b2db].byte $22; A#4
[b2dc].byte $00; Rest
[b2dd].byte $22; A#4
[b2de].byte $16; A#3
[b2df].byte $22; A#4
[b2e0].byte $22; A#4
[b2e1].byte $16; A#3
[b2e2].byte $22; A#4
[b2e3].byte $22; A#4
[b2e4].byte $00; Rest
[b2e5].byte $22; A#4
[b2e6].byte $16; A#3
[b2e7].byte $22; A#4
[b2e8].byte $a0; Note length: 32
[b2e9].byte $16; A#3
[b2ea].byte $16; A#3
[b2eb].byte $98; Note length: 24
[b2ec].byte $00; Rest
[b2ed].byte $88; Note length: 8
[b2ee].byte $16; A#3
[b2ef].byte $16; A#3
[b2f0].byte $15; A3
[b2f1].byte $14; G#3
[b2f2].byte $12; F#3
[b2f3].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b2f4].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b2f5].byte $02; '- 2 iterations
[b2f6].byte $90; Note length: 16
[b2f7].byte $13; G3
[b2f8].byte $88; Note length: 8
[b2f9].byte $00; Rest
[b2fa].byte $90; Note length: 16
[b2fb].byte $13; G3
[b2fc].byte $88; Note length: 8
[b2fd].byte $00; Rest
[b2fe].byte $13; G3
[b2ff].byte $00; Rest
[b300].byte $13; G3
[b301].byte $00; Rest
[b302].byte $00; Rest
[b303].byte $13; G3
[b304].byte $00; Rest
[b305].byte $00; Rest
[b306].byte $13; G3
[b307].byte $13; G3
[b308].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b309].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b30a].byte $02; '- 2 iterations
[b30b].byte $90; Note length: 16
[b30c].byte $13; G3
[b30d].byte $88; Note length: 8
[b30e].byte $1f; G4
[b30f].byte $90; Note length: 16
[b310].byte $13; G3
[b311].byte $88; Note length: 8
[b312].byte $1f; G4
[b313].byte $13; G3
[b314].byte $1f; G4
[b315].byte $13; G3
[b316].byte $13; G3
[b317].byte $1f; G4
[b318].byte $90; Note length: 16
[b319].byte $13; G3
[b31a].byte $88; Note length: 8
[b31b].byte $1f; G4
[b31c].byte $13; G3
[b31d].byte $1f; G4
[b31e].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b31f].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b320].byte MSCRIPT_OP_END; Op: End
[b321]MSCRIPT_EVIL_FORTRESS_NOISE:; [$b321]
[b321].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b322].byte $04; '- 4 iterations
[b323].byte $88,$21,$31,$31,$21,$31,$31,$21; [$b323] byte
[b32b].byte $31,$21,$31,$31,$21,$31,$31,$21; [$b32b] byte
[b333].byte $31; [$b333] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[b335].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b336].byte $02; '- 2 iterations
[b337].byte $88,$21,$21,$21,$21,$21,$00,$31; [$b337] byte
[b33f].byte $31,$31,$31,$31,$31,$21,$00,$00; [$b33f] byte
[b347].byte $21,$11,$11,$11,$00,$85,$31,$31; [$b347] byte
[b34f].byte $86,$31,$88,$31,$31,$31,$31,$21; [$b34f] byte
[b357].byte $00,$21,$00,$21,$21,$31,$00,$31; [$b357] byte
[b35f].byte $00,$31,$31,$21,$00,$31,$00,$31; [$b35f] byte
[b367].byte $31,$31,$31,$21,$21,$31,$00,$31; [$b367] byte
[b36f].byte $00,$31,$00,$31,$00,$85,$31,$31; [$b36f] byte
[b377].byte $86,$31,$88,$31,$31,$21,$21,$31; [$b377] byte
[b37f].byte $00,$31,$31,$31,$31,$21,$31,$31; [$b37f] byte
[b387].byte $31,$31,$31,$31,$31,$21,$31,$31; [$b387] byte
[b38f].byte $31,$a0,$00,$88,$21,$21,$21,$21; [$b38f] byte
[b397].byte $85,$31,$31,$86,$31,$88,$31,$31; [$b397] byte
[b39f].byte $85,$31,$31,$86,$31,$88,$21,$21; [$b39f] byte
[b3a7].byte MSCRIPT_OP_END_LOOP; Op: End loop
[b3a8].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b3a9].byte $02; '- 2 iterations
[b3aa].byte $88,$31,$00,$00,$31,$00,$00,$31; [$b3aa] byte
[b3b2].byte $00,$31,$00,$00,$31,$00,$00,$31; [$b3b2] byte
[b3ba].byte $31; [$b3ba] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[b3bc].byte MSCRIPT_OP_BEGIN_LOOP; Op: Begin loop
[b3bd].byte $02; '- 2 iterations
[b3be].byte $88,$31,$11,$11,$31,$11,$11,$31; [$b3be] byte
[b3c6].byte $11,$31,$11,$11,$31,$11,$11,$31; [$b3c6] byte
[b3ce].byte $31; [$b3ce] byte
.byte MSCRIPT_OP_END_LOOP; Op: End loop
[b3d0].byte MSCRIPT_OP_RESTART_CHANNEL; Op: Restart channel
[b3d1].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].word $ffa7,$ff75,$6157,$ff00; [$b3d2] ushort
[b3da].word $ffe9,$fff8,$fead,$ff00; [$b3da] ushort
[b3e2].word $ff23,$fffd,$ed29,$ff00; [$b3e2] ushort
[b3ea].word $ff7c,$ff3a,$4cba,$ff00; [$b3ea] ushort
[b3f2].word $ff37,$ff7b,$324c,$ff00; [$b3f2] ushort
[b3fa].word $ff48,$ffbe,$d63a,$ff00; [$b3fa] ushort
[b402].word $ff82,$ff53,$fb4e,$ff00; [$b402] ushort
[b40a].word $ff84,$fff8,$ebd8,$ff00; [$b40a] ushort
[b412].word $ff74,$ffef,$dbbd,$ff00; [$b412] ushort
[b41a].word $ff39,$ffff,$97ee,$ff00; [$b41a] ushort
[b422].word $ff0a,$ffc6,$ffc5,$ff00; [$b422] ushort
[b42a].word $ff02,$ff7d,$f174,$ff00; [$b42a] ushort
[b432].word $ff3e,$ff93,$7bb1,$ff00; [$b432] ushort
[b43a].word $ffc6,$ff5d,$73ff,$ff00; [$b43a] ushort
[b442].word $ff84,$ff11,$bfe4,$ff00; [$b442] ushort
[b44a].word $ff3c,$ffb3,$7d3f,$ff00; [$b44a] ushort
[b452].word $ff8a,$ff5e,$7fc3,$ff00; [$b452] ushort
[b45a].word $ffcc,$ffde,$f83f,$ff00; [$b45a] ushort
[b462].word $ff45,$ffd3,$77ee,$ff00; [$b462] ushort
[b46a].word $ff80,$ff85,$7e79,$ff00; [$b46a] ushort
[b472].word $ff95,$ff62,$2f73,$ff00; [$b472] ushort
[b47a].word $fff3,$ffff,$ff0c,$ff00; [$b47a] ushort
[b482].word $ff95,$ff82,$7fab,$ff00; [$b482] ushort
[b48a].word $ffc0,$ff5a,$9701,$ff00; [$b48a] ushort
[b492].word $ff12,$ff5d,$f3aa,$ff00; [$b492] ushort
[b49a].word $fff0,$ff18,$f9f3,$ff00; [$b49a] ushort
[b4a2].word $ff00,$ff3e,$cb6a,$ff00; [$b4a2] ushort
[b4aa].word $ff57,$ffbb,$fe78,$ff00; [$b4aa] ushort
[b4b2].word $ffa7,$ff23,$80d2,$ff00; [$b4b2] ushort
[b4ba].word $ffa5,$ff6e,$b62f,$ff00; [$b4ba] ushort
[b4c2].word $ff50,$ff66,$7520,$ff00; [$b4c2] ushort
[b4ca].word $ff55,$fff7,$ed5b,$ff00; [$b4ca] ushort
[b4d2].word $ff60,$ffe8,$9e78,$ff00; [$b4d2] ushort
[b4da].word $ffd9,$ff13,$ffbd,$ff00; [$b4da] ushort
[b4e2].word $ffec,$ff0b,$fd26,$ff00; [$b4e2] ushort
[b4ea].word $ffe2,$ff58,$7736,$ff00; [$b4ea] ushort
[b4f2].word $ff40,$ffb6,$ff02,$ff00; [$b4f2] ushort
[b4fa].word $fff9,$ffdf,$58b0,$ff00; [$b4fa] ushort
[b502].word $ffb4,$ff9e,$fbaa,$ff00; [$b502] ushort
[b50a].word $ff84,$ff9a,$ff9f,$ff00; [$b50a] ushort
[b512].word $ff34,$ffd3,$9f32,$ff00; [$b512] ushort
[b51a].word $ff4a,$ff57,$6d6f,$ff00; [$b51a] ushort
[b522].word $ff2a,$ff64,$ddfe,$ff00; [$b522] ushort
[b52a].word $ff94,$ffd1,$efbb,$ff00; [$b52a] ushort
[b532].word $ff2c,$ff5f,$bfcb,$ff00; [$b532] ushort
[b53a].word $ffe7,$ff7c,$7df3,$ff00; [$b53a] ushort
[b542].word $ff90,$ff51,$ec33,$ff00; [$b542] ushort
[b54a].word $ff59,$ffa4,$7f72,$ff00; [$b54a] ushort
[b552].word $ff1a,$ff0f,$afc5,$ff00; [$b552] ushort
[b55a].word $ff2f,$ffe9,$3015,$ff00; [$b55a] ushort
[b562].word $ff03,$ff06,$bf13,$ff00; [$b562] ushort
[b56a].word $ff0b,$fffb,$fee2,$ff00; [$b56a] ushort
[b572].word $ffd5,$ffc7,$9f69,$ff00; [$b572] ushort
[b57a].word $ff32,$ff76,$06fc,$ff00; [$b57a] ushort
[b582].word $ff14,$ff3c,$0f6f,$ff00; [$b582] ushort
[b58a].word $ffad,$ffea,$afdb,$ff00; [$b58a] ushort
[b592].word $ff27,$ffee,$4cf9,$ff00; [$b592] ushort
[b59a].word $ff23,$ff5d,$fe57,$ff00; [$b59a] ushort
[b5a2].word $ff04,$ffb1,$f7e2,$ff00; [$b5a2] ushort
[b5aa].word $ffa4,$ff53,$fffa,$ff00; [$b5aa] ushort
[b5b2].word $ff2c,$ff5f,$8cfd,$ff00; [$b5b2] ushort
[b5ba].word $ff7d,$ff77,$52e8,$ff00; [$b5ba] ushort
[b5c2].word $ff00,$ff83,$bf35,$ff00; [$b5c2] ushort
[b5ca].word $ff58,$ffd7,$d7ef,$ff00; [$b5ca] ushort
[b5d2].word $ff60,$fff8,$ded1,$ff00; [$b5d2] ushort
[b5da].word $ff94,$fff3,$cfea,$ff00; [$b5da] ushort
[b5e2].word $ff08,$ff48,$fb7b,$ff00; [$b5e2] ushort
[b5ea].word $ff33,$ffd6,$837f,$ff00; [$b5ea] ushort
[b5f2].word $ff71,$ff4e,$ff45,$ff00; [$b5f2] ushort
[b5fa].word $fffc,$ef97,$3ef6,$ff00; [$b5fa] ushort
[b602].word $ff40,$ff05,$ff4b,$ff00; [$b602] ushort
[b60a].word $ff04,$ff72,$ff69,$ff00; [$b60a] ushort
[b612].word $ff12,$ffc8,$efe9,$ff00; [$b612] ushort
[b61a].word $ffd8,$ffdf,$03af,$ff00; [$b61a] ushort
[b622].word $ff27,$ff2c,$ff11,$ff00; [$b622] ushort
[b62a].word $ff94,$ff22,$fff2,$ff00; [$b62a] ushort
[b632].word $ffe4,$ffbd,$92f7,$ff00; [$b632] ushort
[b63a].word $ff26,$ffff,$65a7,$ff00; [$b63a] ushort
[b642].word $ff61,$ffa8,$beb0,$ff00; [$b642] ushort
[b64a].word $ff0d,$ffa2,$a351,$ff00; [$b64a] ushort
[b652].word $fff0,$ffc4,$ae04,$ff00; [$b652] ushort
[b65a].word $ff3b,$ff7f,$cf3b,$ff00; [$b65a] ushort
[b662].word $ff01,$ff56,$ff61,$ff00; [$b662] ushort
[b66a].word $ff8d,$fffb,$f781,$ff00; [$b66a] ushort
[b672].word $ff12,$ffcb,$df73,$ff00; [$b672] ushort
[b67a].word $ff71,$ffd9,$bfb7,$ff00; [$b67a] ushort
[b682].word $ff00,$ff59,$9779,$ff00; [$b682] ushort
[b68a].word $ff42,$ff7d,$eab9,$ff00; [$b68a] ushort
[b692].word $ff70,$ffdb,$30fd,$ff00; [$b692] ushort
[b69a].word $ff08,$ff67,$8e9f,$ff00; [$b69a] ushort
[b6a2].word $ff01,$ff1f,$7f27,$ff00; [$b6a2] ushort
[b6aa].word $ffc0,$ff27,$6f50,$ff00; [$b6aa] ushort
[b6b2].word $ff63,$ffbe,$cf40,$ff00; [$b6b2] ushort
[b6ba].word $ffc5,$ffda,$9f1f,$ff00; [$b6ba] ushort
[b6c2].word $ff28,$ffe5,$b7a3,$ff00; [$b6c2] ushort
[b6ca].word $ffc2,$ff19,$9f8b,$ff00; [$b6ca] ushort
[b6d2].word $ff44,$fff7,$efd5,$ff00; [$b6d2] ushort
[b6da].word $ff2d,$ffad,$7fd5,$ff00; [$b6da] ushort
[b6e2].word $ff22,$ff3e,$5f75,$ff00; [$b6e2] ushort
[b6ea].word $ff01,$ffed,$df14,$ff00; [$b6ea] ushort
[b6f2].word $ff38,$ff7d,$d3fa,$ff00; [$b6f2] ushort
[b6fa].word $ff7c,$ffbd,$cede,$ff00; [$b6fa] ushort
[b702].word $ff3e,$ffe7,$e6e1,$ff00; [$b702] ushort
[b70a].word $ff38,$ff3a,$f559,$ff00; [$b70a] ushort
[b712].word $ff05,$ef17,$5e75,$ff00; [$b712] ushort
[b71a].word $ff6b,$fffd,$34de,$ff00; [$b71a] ushort
[b722].word $ff32,$ff5b,$f300,$ff00; [$b722] ushort
[b72a].word $ff20,$ffda,$ff5e,$ff00; [$b72a] ushort
[b732].word $ff04,$ffe0,$f3c1,$ff00; [$b732] ushort
[b73a].word $ff49,$ffb7,$ee9e,$ff00; [$b73a] ushort
[b742].word $ff72,$ff34,$d576,$ff00; [$b742] ushort
[b74a].word $ff01,$ff69,$fe0d,$ff00; [$b74a] ushort
[b752].word $ffbb,$ff20,$7ee4,$ff00; [$b752] ushort
[b75a].word $ff43,$ffb7,$187b,$ff00; [$b75a] ushort
[b762].word $ff61,$ff03,$ffe0,$ff00; [$b762] ushort
[b76a].word $ff89,$fff5,$8f66,$ff00; [$b76a] ushort
[b772].word $fffe,$ffc7,$bffd,$ff00; [$b772] ushort
[b77a].word $ff28,$ffeb,$ebaf,$ff00; [$b77a] ushort
[b782].word $ff04,$ff0a,$bfc1,$ff00; [$b782] ushort
[b78a].word $ff50,$df21,$dbf4,$ff00; [$b78a] ushort
[b792].word $ffdc,$ff9e,$bdff,$ff00; [$b792] ushort
[b79a].word $ff8b,$ffbe,$b5cd,$ff00; [$b79a] ushort
[b7a2].word $ff00,$ff39,$ff1c,$ff00; [$b7a2] ushort
[b7aa].word $ff08,$ff11,$bfb7,$ff00; [$b7aa] ushort
[b7b2].word $fff2,$ff77,$f7f4,$ff00; [$b7b2] ushort
[b7ba].word $ff64,$ff53,$b3ff,$ff00; [$b7ba] ushort
[b7c2].word $ff81,$ff55,$97cd,$ff00; [$b7c2] ushort
[b7ca].word $ff1e,$ff39,$fb68,$ff00; [$b7ca] ushort
[b7d2].word $ffa0,$fffd,$eeca,$ff00; [$b7d2] ushort
[b7da].word $dfae,$fbf4,$6b7f,$ff00; [$b7da] ushort
[b7e2].word $ff44,$ff93,$7cf5,$ff00; [$b7e2] ushort
[b7ea].word $ff46,$ff04,$7ffd,$ff00; [$b7ea] ushort
[b7f2].word $ffe0,$df34,$fe7b,$ff00; [$b7f2] ushort
[b7fa].word $ff5a,$ffeb,$c119,$ff00; [$b7fa] ushort
[b802].word $ff31,$ffa4,$3d26,$ff00; [$b802] ushort
[b80a].word $ffe0,$ffb0,$ffe3,$ff00; [$b80a] ushort
[b812].word $fffa,$ff71,$fef9,$ff00; [$b812] ushort
[b81a].word $ff3b,$fffe,$decf,$ff00; [$b81a] ushort
[b822].word $ff16,$ffe5,$1dbc,$ff00; [$b822] ushort
[b82a].word $ff05,$ff9e,$fbbb,$ff00; [$b82a] ushort
[b832].word $ffb0,$ffbb,$e79e,$ff00; [$b832] ushort
[b83a].word $ff50,$ffbc,$a6cd,$ff00; [$b83a] ushort
[b842].word $ff3a,$ff02,$dee2,$ff00; [$b842] ushort
[b84a].word $ff42,$ff3a,$33c5,$ff00; [$b84a] ushort
[b852].word $ffd2,$ff67,$7d5b,$ff00; [$b852] ushort
[b85a].word $ff6e,$ffd9,$59fd,$ff00; [$b85a] ushort
[b862].word $ff80,$ff0c,$df02,$ff00; [$b862] ushort
[b86a].word $ffa4,$ff9a,$ff93,$ff00; [$b86a] ushort
[b872].word $ff06,$ffa7,$df7e,$f700; [$b872] ushort
[b87a].word $ff3d,$ff71,$4fee,$ff00; [$b87a] ushort
[b882].word $ff04,$ff10,$bbc8,$ff00; [$b882] ushort
[b88a].word $ff12,$ff2f,$74f5,$ff00; [$b88a] ushort
[b892].word $ff30,$fff3,$555e,$ff00; [$b892] ushort
[b89a].word $ffc2,$ffde,$b4b6,$ff00; [$b89a] ushort
[b8a2].word $ff81,$ff6a,$fdf7,$ff00; [$b8a2] ushort
[b8aa].word $ff93,$ff24,$b647,$ff00; [$b8aa] ushort
[b8b2].word $ff45,$ff6b,$3717,$ff00; [$b8b2] ushort
[b8ba].word $ff88,$ff76,$2f7f,$ff00; [$b8ba] ushort
[b8c2].word $ff00,$ffbe,$fd9a,$ff00; [$b8c2] ushort
[b8ca].word $ffb2,$ffdb,$afdc,$f700; [$b8ca] ushort
[b8d2].word $ffaa,$ff7e,$dfed,$ff00; [$b8d2] ushort
[b8da].word $ff68,$ffed,$7cbb,$ff00; [$b8da] ushort
[b8e2].word $ff20,$ff12,$8b39,$ff00; [$b8e2] ushort
[b8ea].word $ff70,$ffe0,$9d1c,$ff00; [$b8ea] ushort
[b8f2].word $ff67,$fd83,$93f4,$ff00; [$b8f2] ushort
[b8fa].word $ff19,$ff79,$7fbf,$ff00; [$b8fa] ushort
[b902].word $ffa1,$ff3a,$f78a,$ff00; [$b902] ushort
[b90a].word $ff84,$ff5e,$6bb5,$ff00; [$b90a] ushort
[b912].word $ffb0,$ff65,$f9d6,$ff00; [$b912] ushort
[b91a].word $ff72,$ff7b,$8d74,$ff00; [$b91a] ushort
[b922].word $ff08,$ff0d,$bd5d,$ff00; [$b922] ushort
[b92a].word $ff00,$ff82,$3f7a,$ff00; [$b92a] ushort
[b932].word $ffe2,$ffb2,$7ea4,$ff00; [$b932] ushort
[b93a].word $ffe7,$fe95,$afb5,$ff00; [$b93a] ushort
[b942].word $ff80,$ff10,$f831,$ff00; [$b942] ushort
[b94a].word $ff40,$ff6a,$ff7e,$ff00; [$b94a] ushort
[b952].word $ff45,$ff5d,$6721,$ff00; [$b952] ushort
[b95a].word $ffc0,$ffaf,$e385,$ff00; [$b95a] ushort
[b962].word $ff00,$ff12,$cf97,$ff00; [$b962] ushort
[b96a].word $ffb0,$ff63,$ceb8,$ff00; [$b96a] ushort
[b972].word $fffa,$ff3b,$e5a3,$ff00; [$b972] ushort
[b97a].word $ff60,$ff5b,$7689,$ff00; [$b97a] ushort
[b982].word $ff80,$ff52,$7e52,$ff00; [$b982] ushort
[b98a].word $ffa0,$ff1f,$d766,$ff00; [$b98a] ushort
[b992].word $ff76,$ff9d,$14f9,$ff00; [$b992] ushort
[b99a].word $ffff,$ff2f,$52f7,$ff00; [$b99a] ushort
[b9a2].word $ff9c,$ff04,$ff76,$ff00; [$b9a2] ushort
[b9aa].word $ff94,$ff72,$4e7f,$ff00; [$b9aa] ushort
[b9b2].word $ffa7,$ffc7,$6d66,$ff00; [$b9b2] ushort
[b9ba].word $ff9d,$ff7f,$267c,$ff00; [$b9ba] ushort
[b9c2].word $ff26,$ffc7,$ff72,$ff00; [$b9c2] ushort
[b9ca].word $ff31,$ffb7,$e97e,$ff00; [$b9ca] ushort
[b9d2].word $ffbc,$ffde,$e4e7,$ff00; [$b9d2] ushort
[b9da].word $ff7b,$fef2,$ebf3,$ff00; [$b9da] ushort
[b9e2].word $ffe8,$ff32,$f79d,$ff00; [$b9e2] ushort
[b9ea].word $ff80,$ff36,$ff9c,$ff00; [$b9ea] ushort
[b9f2].word $ff88,$ffeb,$a7eb,$ff00; [$b9f2] ushort
[b9fa].word $ff8f,$ff77,$79df,$ff00; [$b9fa] ushort
[ba02].word $fffa,$ffa6,$ffcd,$ff00; [$ba02] ushort
[ba0a].word $ffa0,$ffb4,$eb52,$ff00; [$ba0a] ushort
[ba12].word $ffdc,$ffbe,$6dc5,$ff00; [$ba12] ushort
[ba1a].word $ff63,$fffd,$42a2,$ff00; [$ba1a] ushort
[ba22].word $ffa4,$ffc1,$fd88,$ff00; [$ba22] ushort
[ba2a].word $ff30,$ff6a,$7d92,$ff00; [$ba2a] ushort
[ba32].word $ff70,$ffbb,$ff76,$ff00; [$ba32] ushort
[ba3a].word $ffb4,$fff5,$dcfe,$ff00; [$ba3a] ushort
[ba42].word $ff80,$ff37,$e7a4,$ff00; [$ba42] ushort
[ba4a].word $ff40,$ff43,$f77d,$ff00; [$ba4a] ushort
[ba52].word $ff12,$fff1,$df57,$ff00; [$ba52] ushort
[ba5a].word $ffd7,$ffc5,$e73b,$ff00; [$ba5a] ushort
[ba62].word $ff6c,$ffde,$5a98,$ff00; [$ba62] ushort
[ba6a].word $ff82,$ff8e,$5e23,$ff00; [$ba6a] ushort
[ba72].word $ff06,$ffbd,$6fa7,$ff00; [$ba72] ushort
[ba7a].word $ffbc,$ffeb,$0b55,$ff00; [$ba7a] ushort
[ba82].word $ffa1,$ffcd,$d715,$ff00; [$ba82] ushort
[ba8a].word $ffa2,$ffca,$8f2b,$ff00; [$ba8a] ushort
[ba92].word $ff6f,$fffe,$68db,$ff00; [$ba92] ushort
[ba9a].word $ffb8,$ffd7,$55df,$ff00; [$ba9a] ushort
[baa2].word $ffb4,$ff06,$bfcd,$ff00; [$baa2] ushort
[baaa].word $ffd0,$ff78,$ede6,$ff00; [$baaa] ushort
[bab2].word $ffe4,$ffdd,$ceba,$ff00; [$bab2] ushort
[baba].word $ff4d,$ffdf,$95c5,$ff00; [$baba] ushort
[bac2].word $ff2a,$ffed,$fe36,$ff00; [$bac2] ushort
[baca].word $ff00,$ffc3,$df7f,$ff00; [$baca] ushort
[bad2].word $ff40,$fbf5,$ecb1,$ff00; [$bad2] ushort
[bada].word $ffd8,$ffdf,$bf7d,$df00; [$bada] ushort
[bae2].word $ff04,$ffb5,$afe7,$ff00; [$bae2] ushort
[baea].word $ff00,$ff51,$d3ff,$ff00; [$baea] ushort
[baf2].word $ff95,$ff74,$8fe4,$ff00; [$baf2] ushort
[bafa].word $ffc1,$ff7f,$547f,$ff00; [$bafa] ushort
[bb02].word $ff40,$ff0f,$3fd9,$ff00; [$bb02] ushort
[bb0a].word $ff44,$ff4d,$cfbf,$ff00; [$bb0a] ushort
[bb12].word $ff32,$fff9,$f7ab,$ff00; [$bb12] ushort
[bb1a].word $fff1,$afdf,$027f,$ff00; [$bb1a] ushort
[bb22].word $ff54,$ff23,$9f59,$ff00; [$bb22] ushort
[bb2a].word $ff07,$ffb1,$efa4,$ff00; [$bb2a] ushort
[bb32].word $ff30,$ff66,$de6e,$ff00; [$bb32] ushort
[bb3a].word $ffe2,$ff6f,$bdfb,$ff00; [$bb3a] ushort
[bb42].word $ff85,$ff27,$fb13,$ff00; [$bb42] ushort
[bb4a].word $ff08,$ff52,$bdde,$ff00; [$bb4a] ushort
[bb52].word $ffbe,$ffbb,$b7ee,$ff00; [$bb52] ushort
[bb5a].word $ff23,$fff7,$ae7f,$ff00; [$bb5a] ushort
[bb62].word $ff00,$ff8b,$ef31,$ff00; [$bb62] ushort
[bb6a].word $ffc1,$ff80,$7f9b,$ff00; [$bb6a] ushort
[bb72].word $ff76,$ffb0,$b33f,$ff00; [$bb72] ushort
[bb7a].word $ff55,$ffbf,$aa79,$ff00; [$bb7a] ushort
[bb82].word $ff11,$ffc4,$8f38,$ff00; [$bb82] ushort
[bb8a].word $ff53,$ffe0,$e10a,$ff00; [$bb8a] ushort
[bb92].word $ff03,$ff7e,$f75e,$ff00; [$bb92] ushort
[bb9a].word $ff62,$fff3,$355e,$ff00; [$bb9a] ushort
[bba2].word $ff54,$ff41,$df2e,$ff00; [$bba2] ushort
[bbaa].word $ff03,$ff6c,$5fb5,$ff00; [$bbaa] ushort
[bbb2].word $ffc4,$ffe2,$df5e,$ff00; [$bbb2] ushort
[bbba].word $fff6,$ff5f,$0fa5,$ff00; [$bbba] ushort
[bbc2].word $ffc1,$ff21,$434f,$ff00; [$bbc2] ushort
[bbca].word $ff48,$ff15,$dfe0,$ff00; [$bbca] ushort
[bbd2].word $ff64,$ff34,$7db1,$ff00; [$bbd2] ushort
[bbda].word $fff8,$ffff,$2dbc,$ff00; [$bbda] ushort
[bbe2].word $ff09,$ffe6,$f64d,$ff00; [$bbe2] ushort
[bbea].word $ff60,$ff81,$af15,$ff00; [$bbea] ushort
[bbf2].word $ff30,$ffa3,$3aba,$ff20; [$bbf2] ushort
[bbfa].word $ff53,$ff15,$aeed,$ff00; [$bbfa] ushort
[bc02].word $ff21,$ff95,$feb3,$ff00; [$bc02] ushort
[bc0a].word $ffcc,$ffc5,$2f63,$ff00; [$bc0a] ushort
[bc12].word $ff68,$ff3a,$ee7e,$ff00; [$bc12] ushort
[bc1a].word $ffb4,$ff5b,$316e,$ff00; [$bc1a] ushort
[bc22].word $ff10,$ffcf,$e798,$ff00; [$bc22] ushort
[bc2a].word $ff60,$ffa7,$3f21,$ff00; [$bc2a] ushort
[bc32].word $ff10,$ffef,$ebcd,$ff00; [$bc32] ushort
[bc3a].word $ff2e,$ffff,$5ec0,$ff00; [$bc3a] ushort
[bc42].word $ff00,$ffbe,$ff31,$ff00; [$bc42] ushort
[bc4a].word $ff02,$ffde,$ff8a,$ff00; [$bc4a] ushort
[bc52].word $ff42,$ffbe,$9cb8,$ff00; [$bc52] ushort
[bc5a].word $ff95,$ffed,$2efc,$ff00; [$bc5a] ushort
[bc62].word $ff04,$fff5,$cf15,$ff00; [$bc62] ushort
[bc6a].word $ff4e,$ffee,$dc28,$ff00; [$bc6a] ushort
[bc72].word $ff0a,$fff1,$765d,$ff00; [$bc72] ushort
[bc7a].word $ffb1,$ff97,$7a6b,$ff00; [$bc7a] ushort
[bc82].word $ff85,$ff39,$cf15,$ff00; [$bc82] ushort
[bc8a].word $ffc6,$ffcb,$77fb,$ff00; [$bc8a] ushort
[bc92].word $ff1f,$ffd7,$e1ac,$ff00; [$bc92] ushort
[bc9a].word $ff1a,$efc8,$e855,$ff00; [$bc9a] ushort
[bca2].word $ff8a,$ffea,$bdf4,$ff00; [$bca2] ushort
[bcaa].word $ff80,$ff2f,$efd7,$ff00; [$bcaa] ushort
[bcb2].word $ff72,$ff45,$fdf3,$ff00; [$bcb2] ushort
[bcba].word $ffef,$ffef,$238d,$ff00; [$bcba] ushort
[bcc2].word $ff20,$ff91,$ed9c,$ff00; [$bcc2] ushort
[bcca].word $ff45,$ffaa,$ee93,$ff00; [$bcca] ushort
[bcd2].word $ff06,$ff4f,$9fa3,$ff00; [$bcd2] ushort
[bcda].word $ffdd,$ffff,$0dfb,$ff00; [$bcda] ushort
[bce2].word $ff28,$ff05,$6d2b,$ff00; [$bce2] ushort
[bcea].word $ffd2,$ff51,$fdbc,$ff00; [$bcea] ushort
[bcf2].word $ff45,$ff86,$faa0,$ff00; [$bcf2] ushort
[bcfa].word $ffb2,$ffaf,$1471,$ff00; [$bcfa] ushort
[bd02].word $ff20,$ff53,$ff57,$ff00; [$bd02] ushort
[bd0a].word $fff5,$ffbf,$fd35,$ff01; [$bd0a] ushort
[bd12].word $ff93,$ffe6,$e8bd,$ff00; [$bd12] ushort
[bd1a].word $ff5f,$ffb9,$ffb8,$ff00; [$bd1a] ushort
[bd22].word $ff70,$ff73,$dfc6,$ff00; [$bd22] ushort
[bd2a].word $ff03,$ff71,$af89,$ff00; [$bd2a] ushort
[bd32].word $ff01,$ffab,$e76d,$ff00; [$bd32] ushort
[bd3a].word $ffd7,$ff62,$4736,$ff00; [$bd3a] ushort
[bd42].word $ff40,$ff34,$ef41,$ff00; [$bd42] ushort
[bd4a].word $ffb9,$ff39,$6e3e,$ff00; [$bd4a] ushort
[bd52].word $ffaf,$ff17,$ff3e,$ff00; [$bd52] ushort
[bd5a].word $ff69,$ff5d,$2367,$ff00; [$bd5a] ushort
[bd62].word $ffa2,$ff1a,$dbf4,$ff00; [$bd62] ushort
[bd6a].word $ff87,$ffb3,$ae68,$ff00; [$bd6a] ushort
[bd72].word $ff63,$ff6b,$fd65,$ff00; [$bd72] ushort
[bd7a].word $ff09,$fffd,$4cef,$ff00; [$bd7a] ushort
[bd82].word $ff01,$ff65,$ea18,$ff00; [$bd82] ushort
[bd8a].word $ff30,$ffa3,$7fb6,$ff00; [$bd8a] ushort
[bd92].word $ff9f,$feea,$be7f,$ff00; [$bd92] ushort
[bd9a].word $ffde,$ff25,$1edf,$ff00; [$bd9a] ushort
[bda2].word $ff11,$ff50,$7e6b,$ff00; [$bda2] ushort
[bdaa].word $ff86,$fff4,$afb5,$ff00; [$bdaa] ushort
[bdb2].word $ffd0,$ffe3,$df3d,$ff00; [$bdb2] ushort
[bdba].word $ffcd,$ffff,$5975,$ff00; [$bdba] ushort
[bdc2].word $ff19,$ff33,$bb74,$ff00; [$bdc2] ushort
[bdca].word $ff30,$ffee,$fb7e,$ff00; [$bdca] ushort
[bdd2].word $ff1a,$fff9,$dfed,$ff00; [$bdd2] ushort
[bdda].word $ff1d,$ffdd,$39cf,$ff00; [$bdda] ushort
[bde2].word $ff00,$ffde,$97c4,$ff00; [$bde2] ushort
[bdea].word $ffb4,$ffd3,$ff99,$ff00; [$bdea] ushort
[bdf2].word $ffa2,$7ee6,$f7b7,$ff00; [$bdf2] ushort
[bdfa].word $ff5c,$ffb7,$345f,$ff00; [$bdfa] ushort
[be02].word $ff0a,$ffc4,$ffc2,$ff00; [$be02] ushort
[be0a].word $ff40,$ff75,$be56,$7f00; [$be0a] ushort
[be12].word $ff2c,$ff99,$7f9b,$ff00; [$be12] ushort
[be1a].word $ffcd,$feff,$29dd,$ff00; [$be1a] ushort
[be22].word $ff02,$ff15,$df33,$ff00; [$be22] ushort
[be2a].word $ff04,$ff75,$a65e,$ff00; [$be2a] ushort
[be32].word $ff2d,$ff23,$979f,$ff00; [$be32] ushort
[be3a].word $ff5f,$fff7,$0392,$ff00; [$be3a] ushort
[be42].word $ff68,$ff46,$fe48,$ff00; [$be42] ushort
[be4a].word $ff08,$ff9a,$ffed,$ff00; [$be4a] ushort
[be52].word $ff24,$ff7f,$f763,$ff00; [$be52] ushort
[be5a].word $ff28,$ff7d,$dd5a,$ff00; [$be5a] ushort
[be62].word $ff15,$ff02,$fd0a,$ff00; [$be62] ushort
[be6a].word $ff06,$ff7c,$38d2,$ff00; [$be6a] ushort
[be72].word $ff33,$ff7b,$c26f,$ff00; [$be72] ushort
[be7a].word $ffa9,$ffa8,$dddb,$ff00; [$be7a] ushort
[be82].word $ffc0,$ffbb,$6bfc,$ff00; [$be82] ushort
[be8a].word $ff70,$ffb1,$bf49,$ff00; [$be8a] ushort
[be92].word $ff56,$ffbc,$a6e5,$ff00; [$be92] ushort
[be9a].word $ff0c,$ff73,$e7ed,$ff00; [$be9a] ushort
[bea2].word $ffaa,$ff27,$5b41,$ff00; [$bea2] ushort
[beaa].word $ff09,$fb7c,$efee,$ff00; [$beaa] ushort
[beb2].word $ff68,$fff8,$6c53,$ff00; [$beb2] ushort
[beba].word $ff39,$ffff,$b87b,$ff00; [$beba] ushort
[bec2].word $ff80,$ff66,$7c65,$ff00; [$bec2] ushort
[beca].word $ffdd,$ffff,$839b,$ff00; [$beca] ushort
[bed2].word $ef61,$dfc7,$f570,$ff00; [$bed2] ushort
[beda].word $ffed,$fffa,$4cb3,$ff00; [$beda] ushort
[bee2].word $ff08,$ff6b,$9710,$ff00; [$bee2] ushort
[beea].word $ffa0,$ff62,$eecd,$ff00; [$beea] ushort
[bef2].word $ff50,$fffd,$ef75,$ff00; [$bef2] ushort
[befa].word $ff20,$ff1f,$7bd9,$ff00; [$befa] ushort
[bf02].word $ffae,$ff9d,$ffe3,$ef00; [$bf02] ushort
[bf0a].word $ff82,$ff95,$ff9e,$ff00; [$bf0a] ushort
[bf12].word $ffc3,$ffe7,$6fed,$ff00; [$bf12] ushort
[bf1a].word $ffc0,$ff37,$feff,$ff00; [$bf1a] ushort
[bf22].word $ff11,$ff64,$dfc3,$ff00; [$bf22] ushort
[bf2a].word $ff76,$ff2e,$cb9b,$ff00; [$bf2a] ushort
[bf32].word $ff1a,$ffed,$b945,$ff00; [$bf32] ushort
[bf3a].word $ffcf,$ffeb,$c715,$ff00; [$bf3a] ushort
[bf42].word $ff5e,$ff21,$ef23,$ff00; [$bf42] ushort
[bf4a].word $ff31,$fff0,$75b7,$ff00; [$bf4a] ushort
[bf52].word $ff12,$ff3e,$dede,$ff00; [$bf52] ushort
[bf5a].word $ff45,$fff8,$9feb,$ff00; [$bf5a] ushort
[bf62].word $ffb9,$ff17,$fe3f,$ff00; [$bf62] ushort
[bf6a].word $ff24,$fffc,$bde9,$ff00; [$bf6a] ushort
[bf72].word $fffc,$fff1,$bb54,$ff00; [$bf72] ushort
[bf7a].word $ffc4,$ffaa,$7b53,$ff00; [$bf7a] ushort
[bf82].word $ffd0,$ff12,$efb6,$ff00; [$bf82] ushort
[bf8a].word $ffa1,$ff48,$b6ca,$ff00; [$bf8a] ushort
[bf92].word $ff79,$ff51,$3f72,$ff00; [$bf92] ushort
[bf9a].word $ff7a,$ff73,$99f2,$ff00; [$bf9a] ushort
[bfa2].word $ff41,$ffd4,$ff19,$ff00; [$bfa2] ushort
[bfaa].word $ffc0,$ff5c,$c798,$ff00; [$bfaa] ushort
[bfb2].word $ff6a,$ff7a,$be9c,$ff00; [$bfb2] ushort
[bfba].word $ff7d,$fffd,$8ea6,$ff00; [$bfba] ushort
[bfc2].word $ff29,$ffdb,$9183,$ff00; [$bfc2] ushort
[bfca].word $ff81,$ffb5,$79aa,$ff00; [$bfca] ushort
[bfd2].word $ff0c,$fffe,$e3bf,$ff00; [$bfd2] ushort
[bfda].word $ffa6,$ffda,$fafa,$ff00; [$bfda] ushort
[bfe2].word $ff46,$ff65,$7de2,$ff00; [$bfe2] ushort
[bfea].word $fffa,$fff5,$d698,$ff00; [$bfea] ushort
[bff2].word $ff22,$fff5,$b3f6,$ff00; [$bff2] ushort
[bffa].word $ffa2,$fff7,$bffe; [$bffa] ushort