From 31a8d5a27d6566262dbd23c519b502d53208f603 Mon Sep 17 00:00:00 2001 From: scawful Date: Thu, 25 May 2023 11:03:02 -0500 Subject: [PATCH] Add Lost Woods and Zelda 1 Dungeon Theme --- Music/dungeon_theme.asm | 195 ++++++++++++++++++++++++++++++++++++++++ Music/lost_woods.asm | 167 ++++++++++++++++++++++++++++++++++ 2 files changed, 362 insertions(+) create mode 100644 Music/dungeon_theme.asm create mode 100644 Music/lost_woods.asm diff --git a/Music/dungeon_theme.asm b/Music/dungeon_theme.asm new file mode 100644 index 0000000..7196c4a --- /dev/null +++ b/Music/dungeon_theme.asm @@ -0,0 +1,195 @@ +;===================================================================================== +; The Legend of Zelda: A Link to the Past (Custom Music Track) +; The Legend of Zelda - Dungeon Theme v1.01 +; Original Song by Koji Kondo +; Midi by Zaggarum +; ASM Framework by Zarby89 +; Ported by Letterbomb +;===================================================================================== + +lorom + +org $1B9C0F; Sections? +DungeonTheme: +!ARAMAddr = $EC0B +dw !ARAMAddr+$08 +dw $00FF +dw !ARAMAddr +dw $0000 + +.Channels +!ARAMC = !ARAMAddr-DungeonTheme +dw .Channel0+!ARAMC +dw .Channel1+!ARAMC +dw .Channel2+!ARAMC +dw .Channel3+!ARAMC +dw .Channel4+!ARAMC +dw .Channel5+!ARAMC +dw $0000 +dw $0000 + + +.Channel0 +%SetMasterVolume($CA) +%SetTempo(97); +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub1+!ARAMC, 4) +%CallSubroutine(.sub2+!ARAMC, 4) +%CallSubroutine(.sub3+!ARAMC, 4) +%CallSubroutine(.sub4+!ARAMC, 4) +%CallSubroutine(.sub5+!ARAMC, 4) +%CallSubroutine(.sub6+!ARAMC, 4) +%CallSubroutine(.sub7+!ARAMC, 1) +db Rest +db $00 ; End of the channel + +.sub1 +db G4, D5 +db $00 ; End + +.sub2 +db F4s, D5 +db $00 ; End + +.sub3 +db F4, D5 +db $00 ; End + +.sub4 +db E4, D5 +db $00 ; End + +.sub5 +db D4s, C5 +db $00 ; End + +.sub6 +db D4, C5 +db $00 ; End + +.sub7 +db C4, A4, F4s, C5, A4, D5s, D5s, D5s, A5, A5 +db $00 ; End + + +.Channel1 +%SetInstrument($09) ; Strings +%SetDurationN($24, $7F) ; 1/8 +db Rest, $48 +%CallSubroutine(.sub8+!ARAMC, 4) +%CallSubroutine(.sub9+!ARAMC, 4) +%CallSubroutine(.sub10+!ARAMC, 4) +%CallSubroutine(.sub11+!ARAMC, 4) +%CallSubroutine(.sub12+!ARAMC, 8) +db F4s, C5, A4, D5s, C5, C5, F5s, F5s, F5s, C6 +db $00 ; End of the channel + +.sub8 +db A4s, D5s +db $00 ; End + +.sub9 +db A4, D5s +db $00 ; End + +.sub10 +db G4s, D5s +db $00 ; End + +.sub11 +db G4, D5s +db $00 ; End + +.sub12 +db G4, D5 +db $00 ; End + + +.Channel2 +%SetChannelVolume($CF) +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +db G4, Tie, Tie, Tie, A4s, Tie, D5, Tie, C5s, Tie, F4s +%CallSubroutine(.sub13+!ARAMC, 5) +db $24, F4 +%CallSubroutine(.sub13+!ARAMC, 10) +db G4, Tie, Tie, $48, C5s, C5, Tie, $24, E4 +%CallSubroutine(.sub13+!ARAMC, 11) +db D4s, D4, D4s +%CallSubroutine(.sub13+!ARAMC, 5) +db G4, Tie, Tie, D5s, Tie, Tie, D5, Tie, D4, C4s, D4 +%CallSubroutine(.sub13+!ARAMC, 5) +db G4, Tie, Tie, D5, Tie, Tie, C5s, Tie, D4, F4s, A4, F4s, A4, C5, A4, C5, D5s, C5, D5s, F5s, A5, F5s, D5s, C5, D5s, C5, A4, F4s +db $00 ; End of the channel + +.sub13 +db Tie +db $00 ; End + + +.Channel3 +%SetInstrument($18) ; Guitar +%SetDurationN($24, $7F) ; 1/8 +db Rest, $48, G4 +%CallSubroutine(.sub13+!ARAMC, 7) +db F4s +%CallSubroutine(.sub13+!ARAMC, 7) +db F4 +%CallSubroutine(.sub13+!ARAMC, 7) +db E4 +%CallSubroutine(.sub13+!ARAMC, 7) +db D4s +%CallSubroutine(.sub13+!ARAMC, 7) +db D4 +%CallSubroutine(.sub13+!ARAMC, 7) +db Rest +%CallSubroutine(.sub13+!ARAMC, 9) +db $00 ; End of the channel + + +.Channel4 +%SetChannelVolume($CB) +%SetInstrument($13) ; Snare +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub14+!ARAMC, 4) +%CallSubroutine(.sub15+!ARAMC, 4) +%CallSubroutine(.sub16+!ARAMC, 8) +%CallSubroutine(.sub17+!ARAMC, 6) +db G2, Tie, G2, Tie, G2 +%CallSubroutine(.sub13+!ARAMC, 9) +db $00 ; End of the channel + +.sub14 +db G2, Tie +db $00 ; End + +.sub15 +db F2, Tie +db $00 ; End + +.sub16 +db E2, Tie +db $00 ; End + +.sub17 +db D2s, Tie +db $00 ; End + + +.Channel5 +%SetChannelVolume($CF) +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +db G3, Tie, Tie, Tie, A3s, Tie, D4, Tie, C4s, Tie, F3s +%CallSubroutine(.sub13+!ARAMC, 5) +db $24, F3 +%CallSubroutine(.sub13+!ARAMC, 10) +db G3, Tie, Tie, $48, C4s, C4, Tie, $24, E3 +%CallSubroutine(.sub13+!ARAMC, 11) +db D3s, D3, D3s +%CallSubroutine(.sub13+!ARAMC, 5) +db G3, Tie, Tie, D4s, Tie, Tie, D4, Tie, D3, C3s, D3 +%CallSubroutine(.sub13+!ARAMC, 5) +db G3, Tie, Tie, D4, Tie, Tie, C4s, Tie, D3, F3s, A3, F3s, A3, C4, A3, C4, D4s, C4, D4s, F4s, A4, F4s, D4s, C4, D4s, C4, A3, F3s +db $00 ; End \ No newline at end of file diff --git a/Music/lost_woods.asm b/Music/lost_woods.asm new file mode 100644 index 0000000..cc6b4d3 --- /dev/null +++ b/Music/lost_woods.asm @@ -0,0 +1,167 @@ +;===================================================================================== +; The Legend of Zelda: A Link to the Past (Custom Music Track) +; The Legend of Zelda: Ocarina of Time - Lost Woods Theme v1.01 +; Original Song by Koji Kondo +; Midi by John Kuzma +; ASM Framework by Zarby89 +; Ported by Letterbomb +;===================================================================================== + +; Replace Lost Woods Theme +org $1AADDE ; Sections? +LostWoodsTheme: +!ARAMAddr = $DEE5 +dw !ARAMAddr+$0A ; Intro +dw !ARAMAddr+$1A ; Looping +dw $00FF +dw !ARAMAddr+$02 ; Looping Section +dw $0000 + +.ChannelsIntro +!ARAMC = !ARAMAddr-LostWoodsTheme +dw .Channel0Intro+!ARAMC +dw $0000 +dw $0000 +dw $0000 +dw $0000 +dw $0000 +dw $0000 +dw $0000 + +.Channels +!ARAMC = !ARAMAddr-LostWoodsTheme +dw .Channel0+!ARAMC +dw .Channel1+!ARAMC +dw .Channel2+!ARAMC +dw .Channel3+!ARAMC +dw .Channel4+!ARAMC +dw .Channel5+!ARAMC +dw $0000 +dw $0000 + + +.Channel0Intro +%SetMasterVolume($9F) +%SetChannelVolume($90) +%SetTempo(85); +%SetInstrument($02) ; Tympani +%SetDurationN($12, $7F) ; 1/16 +db F3s, Tie, F3s, F3s, F3s, Tie, F3s, F3s, F3s, Tie, $24, F3s, Tie, C4 +db $00 ; End of the channel + + +.Channel0 +%CallSubroutine(.sub1+!ARAMC, 14) +%CallSubroutine(.sub2+!ARAMC, 4) +%CallSubroutine(.sub1+!ARAMC, 1) +db $12, F3s, Tie, F3s, F3s, Tie, Tie, F3s, Tie, $48, F3s, F3s +db $00 ; End of the channel + +.sub1 +db $12, F3s, Tie, F3s, F3s, $24, F3s, F3s, F3s, $12, F3s, F3s, $24, F3s, F3s +db $00 ; End + +.sub2 +db $12, F3s, Tie, F3s, F3s, $48, D4 +db $00 ; End + +.sub11 +db Tie +db $00 ; End + + +.Channel1 +%SetChannelVolume($9A) +%SetInstrument($0D) ; Ocarina +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub3+!ARAMC, 1) +db B5, G5, $48, E5, Tie, $24, Tie, D5, E5, G5, $48, E5, Tie, Tie +%CallSubroutine(.sub3+!ARAMC, 1) +db E6, B5, $48, G5, Tie, $24, Tie, B5, G5, D5, $48, E5, Tie, Tie +%CallSubroutine(.sub9+!ARAMC, 8) +db $24, F5, G5, A5, Tie, B5, C6, D6, Tie, E6, F6, $48, G6, Tie, Tie +%CallSubroutine(.sub9+!ARAMC, 8) +db $24, F5, E5, A5, G5, B5, A5, C6, B5, D6, C6, E6, D6, F6, E6, $12, B5, C6, Tie, A5, $48, B5 +%CallSubroutine(.sub11+!ARAMC, 7) +db $00 ; End of the channel + +.sub3 +db $24, F5, A5, B5, Tie, F5, A5, B5, Tie, F5, A5, B5, E6, D6, Tie, B5, C6 +db $00 ; End + + +.Channel2 +%SetInstrument($0F) ; Harp +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub4+!ARAMC, 4) +%CallSubroutine(.sub5+!ARAMC, 4) +%CallSubroutine(.sub4+!ARAMC, 4) +%CallSubroutine(.sub5+!ARAMC, 4) +%CallSubroutine(.sub6+!ARAMC, 3) +%CallSubroutine(.sub7+!ARAMC, 2) +db $24, E3, A3, Tie, A3, E3, B3, Tie, A3, E3, G3s, G3s, G3s, G3s, Tie, B4, Tie +db $00 ; End of the channel + +.sub4 +db $48, F3, Tie +db $00 ; End + +.sub5 +db $48, C3, Tie +db $00 ; End + +.sub6 +db $24, D3, F3, D3, F3, G2, D3, G2, G3, C3, G3, C3, G3, A2, E3, A2, E3 +db $00 ; End + +.sub7 +db $24, D3, A3, F3, Tie +db $00 ; End + + +.Channel3 +%SetInstrument($18) ; Guitar +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub8+!ARAMC, 2) +db $48 +%CallSubroutine(.sub9+!ARAMC, 40) +db $00 ; End of the channel + +.sub8 +db F3, C4, C4, C4, F3, A3, A3, A3, F3, A3, A3, A3, F3, A3, A3, A3, E3, G3, G3, G3, E3, G3, G3, C3, E3, C4, G3, G3, E3, G3, G3, C3 +db $00 ; End + +.sub9 +db Rest +db $00 ; End + + +.Channel4 +%SetChannelVolume($9D) +%SetInstrument($18) ; Guitar +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub9+!ARAMC, 32) +%CallSubroutine(.sub10+!ARAMC, 1) +db C5, B4, $48, E4, Tie, Tie +%CallSubroutine(.sub10+!ARAMC, 1) +db $24, C5, D5, $48, E5, Tie, Tie +%CallSubroutine(.sub10+!ARAMC, 1) +db $24, C5, B4, $48, E4, Tie, Tie, $24, D4, C4, F4, E4, G4, F4, A4, G4, B4, A4, C5, B4, D5, C5, $12, E5, F5, Tie, D5, $48, E5 +%CallSubroutine(.sub11+!ARAMC, 7) +db $00 ; End of the channel + +.sub10 +db $24, D4, E4, F4, Tie, G4, A4, B4, Tie +db $00 ; End + + +.Channel5 +%SetInstrument($0F) ; Harp +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub9+!ARAMC, 32) +%CallSubroutine(.sub4+!ARAMC, 4) +%CallSubroutine(.sub5+!ARAMC, 4) +%CallSubroutine(.sub4+!ARAMC, 4) +%CallSubroutine(.sub5+!ARAMC, 4) +%CallSubroutine(.sub4+!ARAMC, 4) +db $00 ; End of the channel \ No newline at end of file