diff --git a/Music/song_of_healing.asm b/Music/song_of_healing.asm new file mode 100644 index 0000000..750db8b --- /dev/null +++ b/Music/song_of_healing.asm @@ -0,0 +1,255 @@ +;===================================================================================== +; The Legend of Zelda: A Link to the Past (Custom Music Track) +; The Legend of Zelda: Majora's Mask - Song of Healing Theme v1.00 +; Original Song by Koji Kondo +; Midi by RSD and Chris Lakatos +; ASM Framework by Zarby89 +; Ported by Letterbomb +; Size 0x0275 (629 Decimal) +;===================================================================================== + +org $1BA308; Sections? +SongOfHealingTheme: +!ARAMAddr = $F304 +dw !ARAMAddr+$08 +dw $00FF +dw !ARAMAddr +dw $0000 + + + +.Channels +!ARAMC = !ARAMAddr-SongOfHealingTheme +dw .Channel0+!ARAMC +dw .Channel1+!ARAMC +dw .Channel2+!ARAMC +dw .Channel3+!ARAMC +dw .Channel4+!ARAMC +dw .Channel5+!ARAMC +dw $0000 +dw $0000 + + + +.Channel0 +%SetMasterVolume($C8) +%SetTempo(56) +%SetInstrument($18) ; Guitar +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub0101+!ARAMC, 2) +%CallSubroutine(.sub0102+!ARAMC, 1) +%CallSubroutine(.sub0103+!ARAMC, 1) +%CallSubroutine(.sub0102+!ARAMC, 1) +%CallSubroutine(.sub0104+!ARAMC, 1) +%CallSubroutine(.sub0105+!ARAMC, 1) +%CallSubroutine(.sub0106+!ARAMC, 1) +%CallSubroutine(.sub0105+!ARAMC, 1) +%CallSubroutine(.sub0107+!ARAMC, 1) +db $00 ; End of the channel + + + +.Channel1 +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub0101+!ARAMC, 2) +%CallSubroutine(.sub0102+!ARAMC, 1) +%CallSubroutine(.sub0103+!ARAMC, 1) +%CallSubroutine(.sub0102+!ARAMC, 1) +%CallSubroutine(.sub0104+!ARAMC, 1) +%CallSubroutine(.sub0105+!ARAMC, 1) +%CallSubroutine(.sub0106+!ARAMC, 1) +%CallSubroutine(.sub0105+!ARAMC, 1) +%CallSubroutine(.sub0107+!ARAMC, 1) +db $00 ; End of the channel + + +.sub0101 +db B4, A4, F4, B4, A4, F4, B4, A4, $24, E4, D4, $48, E4, Tie, Tie +db $00 ; End + +.sub0102 +db F4, C4, B3, F4, C4, B3, F4 +db $00 ; End + +.sub0103 +db E4, $24, B3, A3, $48, B3, Tie, Tie +db $00 ; End + +.sub0104 +db E4, B4, G4, Tie, Tie, A4, A4, A4, D5, D5, D5 +db $00 ; End + +.sub0105 +db G4, G4, G4, C5, G4, Tie +db $00 ; End + +.sub0106 +db F4, F4, F4, A4s, A4s, A4s, E4, D4, A4, E4, Tie, Tie, A4, A4, A4, D5, D5, D5 +db $00 ; End + +.sub0107 +db F4, G4, A4, A4s, C5, D5, A4, B4, D5, E5, Tie, Tie, Tie +db $00 ; End + + + +.Channel2 +%SetInstrument($18) ; Guitar +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub201+!ARAMC, 3) +%CallSubroutine(.sub202+!ARAMC, 1) +%CallSubroutine(.sub201+!ARAMC, 3) +%CallSubroutine(.sub202+!ARAMC, 1) +%CallSubroutine(.sub203+!ARAMC, 2) +%CallSubroutine(.sub204+!ARAMC, 2) +%CallSubroutine(.sub203+!ARAMC, 2) +%CallSubroutine(.sub204+!ARAMC, 2) +%CallSubroutine(.sub205+!ARAMC, 1) +%CallSubroutine(.sub206+!ARAMC, 1) +%CallSubroutine(.sub207+!ARAMC, 1) +%CallSubroutine(.sub208+!ARAMC, 1) +%CallSubroutine(.sub205+!ARAMC, 1) +%CallSubroutine(.sub206+!ARAMC, 1) +db A2s, F3, A3s, F3, D4, F3, A2s, F3, A3s, F3, D4, F3, B2, F3, A3, F3, D4, A3, E3, Tie, B3, Tie, E4, Tie +db $00 ; End of the channel + + +.sub201 +db F3, C4, Tie, C4, Tie, C4 +db $00 ; End + +.sub202 +db E3, B3, Tie, B3, Tie, B3 +db $00 ; End + +.sub203 +db D3, A3, Tie, A3, Tie, A3 +db $00 ; End + +.sub204 +db C3, G3, Tie, G3, Tie, G3 +db $00 ; End + +.sub205 +db A2s, F3, A3s, F3, D4, F3, A2s, F3, A3s, F3, D4, Tie +db $00 ; End + +.sub206 +db A2, E3, A3, E3, C4, E3, A2, E3, A3, E3, C4, Tie +db $00 ; End + +.sub207 +db G2, D3, G3, D3, A3s, D3, G2, D3, G3, D3, A3s, Tie +db $00 ; End + +.sub208 +db F2, C3, F3, C3, A3, C3, F2, C3, F3, C3, A3, Tie +db $00 ; End + + + +.Channel3 +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +db Rest +%CallSubroutine(.sub301+!ARAMC, 2) +%CallSubroutine(.sub302+!ARAMC, 2) +%CallSubroutine(.sub303+!ARAMC, 1) +%CallSubroutine(.sub304+!ARAMC, 1) +%CallSubroutine(.sub303+!ARAMC, 1) +db F3 +%CallSubroutine(.subA01+!ARAMC, 5) +db F3, Tie, Tie, E3, Tie +db $00 ; End of the channel + + +.sub301 +db F3, Tie, Tie, Tie, Tie, Tie, F3, Tie, Tie, E3, Tie, Tie +db $00 ; End + +.sub302 +db A3, Tie, Tie, Tie, Tie, Tie, G3, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +.sub303 +db F3, Tie, Tie, Tie, Tie, Tie, E3, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +.sub304 +db D3, Tie, Tie, Tie, Tie, Tie, C3, Tie, Tie, Tie, Tie, Tie +db $00 ; End + + + +.Channel4 +%SetInstrument($09) ; Strings +%SetDurationN($24, $7F) ; 1/8 +db Rest, $48 +%CallSubroutine(.sub401+!ARAMC, 2) +%CallSubroutine(.sub402+!ARAMC, 2) +%CallSubroutine(.sub403+!ARAMC, 1) +%CallSubroutine(.sub404+!ARAMC, 1) +%CallSubroutine(.sub403+!ARAMC, 1) +db A2 +%CallSubroutine(.subA01+!ARAMC, 5) +db A2s, Tie, Tie, A2s, Tie, $24, Tie +db $00 ; End of the channel + + +.sub401 +db C3, Tie, Tie, Tie, Tie, Tie, C3, Tie, Tie, B2, Tie, Tie +db $00 ; End + +.sub402 +db D3, Tie, Tie, Tie, Tie, Tie, C3, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +.sub403 +db A2, Tie, Tie, Tie, Tie, Tie, G2s, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +.sub404 +db F2s, Tie, Tie, Tie, Tie, Tie, E2, Tie, Tie, Tie, Tie, Tie +db $00 ; End + + + +.Channel5 +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub501+!ARAMC, 2) +%CallSubroutine(.sub502+!ARAMC, 2) +%CallSubroutine(.sub503+!ARAMC, 1) +%CallSubroutine(.sub504+!ARAMC, 1) +%CallSubroutine(.sub503+!ARAMC, 1) +db F2 +%CallSubroutine(.subA01+!ARAMC, 5) +db F2, Tie, Tie, E2, Tie, Tie +db $00 ; End of the channel + + +.sub501 +db F2, Tie, Tie, Tie, Tie, Tie, F2, Tie, Tie, E2, Tie, Tie +db $00 ; End + +.sub502 +db A2, Tie, Tie, Tie, Tie, Tie, G2, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +.sub503 +db F2, Tie, Tie, Tie, Tie, Tie, E2, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +.sub504 +db D2, Tie, Tie, Tie, Tie, Tie, C2, Tie, Tie, Tie, Tie, Tie +db $00 ; End + + +.subA01 +db Tie +db $00 ; End + + + +print pc \ No newline at end of file diff --git a/Oracle_main.asm b/Oracle_main.asm index 5619b14..6592b7a 100644 --- a/Oracle_main.asm +++ b/Oracle_main.asm @@ -80,6 +80,9 @@ namespace Oracle incsrc "Music/stone_tower_temple_v2.asm" print "End of stone_tower_temple.asm ", pc + incsrc "Music/song_of_healing.asm" + print "End of Music/song_of_healing.asm ", pc + print ""