From 99cdb909adbbcdd05d870ca6e6ef7ba999cd63aa Mon Sep 17 00:00:00 2001 From: scawful Date: Wed, 29 May 2024 00:10:02 -0400 Subject: [PATCH] add stone tower temple theme --- Music/stone_tower_temple.asm | 175 +++++++++++++++++++++++++++++++++++ Oracle_main.asm | 3 + 2 files changed, 178 insertions(+) create mode 100644 Music/stone_tower_temple.asm diff --git a/Music/stone_tower_temple.asm b/Music/stone_tower_temple.asm new file mode 100644 index 0000000..d851ed3 --- /dev/null +++ b/Music/stone_tower_temple.asm @@ -0,0 +1,175 @@ +;===================================================================================== +; The Legend of Zelda: A Link to the Past (Custom Music Track) +; The Legend of Zelda: Majora's Mask - Stone Tower Temple Theme v1.01 +; Original Song by Koji Kondo +; Midi by (Unknown) +; ASM Framework by Zarby89 +; Ported by Letterbomb +;===================================================================================== + +org $1AA763; Sections? +StoneTowerTempleTheme: +!ARAMAddr = $D86A +dw !ARAMAddr+$08 +dw $00FF +dw !ARAMAddr +dw $0000 + +.Channels +!ARAMC = !ARAMAddr-StoneTowerTempleTheme +dw .Channel0+!ARAMC +dw .Channel1+!ARAMC +dw .Channel2+!ARAMC +dw .Channel3+!ARAMC +dw .Channel4+!ARAMC +dw .Channel5+!ARAMC +dw $0000 +dw $0000 + + +.Channel0 +%SetMasterVolume($DA) +%SetChannelVolume($BF) +%SetTempo(62); +%SetInstrument($02) ; Tympani +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub1+!ARAMC, 24) +%CallSubroutine(.sub2+!ARAMC, 64) +db $00 ; End of the channel + +.sub1 +db $48, B1, B1, $24, Tie, C2, F3s, Tie +db $00 ; End + +.sub2 +db Rest +db $00 ; End + + +.Channel1 +%SetChannelVolume($FF) +%SetInstrument($18) ; Guitar +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub2+!ARAMC, 8) +%CallSubroutine(.sub3+!ARAMC, 1) +%CallSubroutine(.sub4+!ARAMC, 1) +%CallSubroutine(.sub3+!ARAMC, 2) +%CallSubroutine(.sub4+!ARAMC, 1) +%CallSubroutine(.sub3+!ARAMC, 1) +%CallSubroutine(.sub4+!ARAMC, 1) +%CallSubroutine(.sub3+!ARAMC, 1) +%CallSubroutine(.sub4+!ARAMC, 1) +%CallSubroutine(.sub3+!ARAMC, 1) +%CallSubroutine(.sub4+!ARAMC, 1) +%CallSubroutine(.sub3+!ARAMC, 1) +%CallSubroutine(.sub4+!ARAMC, 1) +%CallSubroutine(.sub3+!ARAMC, 1) +db E2, Tie, Tie, Tie +%CallSubroutine(.sub2+!ARAMC, 4) +db $00 ; End of the channel + +.sub3 +db E2, Tie, Tie, Tie, F2, Tie, D2, Tie +db $00 ; End + +.sub4 +db E2, Tie, Tie, Tie, F2, Tie, E2, Tie +db $00 ; End + + +.Channel2 +%SetInstrument($09) ; Strings +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub2+!ARAMC, 48) +%CallSubroutine(.sub5+!ARAMC, 5) +%CallSubroutine(.sub2+!ARAMC, 32) +%CallSubroutine(.sub5+!ARAMC, 4) +%CallSubroutine(.sub2+!ARAMC, 32) +db $00 ; End of the channel + +.sub5 +db A2, E3, A2, E3, A2, E3, F3, Tie, A2, E3, A2, E3, A2, E3, D3, Tie +db $00 ; End + + +.Channel3 +%SetChannelVolume($BA) +%SetInstrument($0D) ; Ocarina +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub2+!ARAMC, 64) +%CallSubroutine(.sub7+!ARAMC, 1) +%CallSubroutine(.sub8+!ARAMC, 1) +%CallSubroutine(.sub7+!ARAMC, 1) +%CallSubroutine(.sub9+!ARAMC, 1) +%CallSubroutine(.sub7+!ARAMC, 1) +%CallSubroutine(.sub8+!ARAMC, 1) +%CallSubroutine(.sub7+!ARAMC, 1) +%CallSubroutine(.sub9+!ARAMC, 1) +%CallSubroutine(.sub2+!ARAMC, 16) +%CallSubroutine(.sub10+!ARAMC, 1) +db B4, E5, Tie +%CallSubroutine(.sub11+!ARAMC, 1) +%CallSubroutine(.sub10+!ARAMC, 1) +db C5, $48, B4, B4, A4, Tie +%CallSubroutine(.sub10+!ARAMC, 1) +db Tie, E5, Tie +%CallSubroutine(.sub11+!ARAMC, 1) +db $24, E5, F5, E5, D5, $48, C5, B4, A4, Tie, Tie, Tie +%CallSubroutine(.sub12+!ARAMC, 2) +db $00 ; End of the channel + +.sub7 +db $48, A4, C5, B4, $24, Tie, G4, A4, C5 +db $00 ; End + +.sub8 +db $09, B4, C5, $12, B4, A4, Tie, $48, G4, E4 +db $00 ; End + +.sub9 +db $09, B4, C5, B4, Tie, $24, G4, $48, A4, Tie +db $00 ; End + +.sub10 +db $48, E5, E5, $24, D5, Tie, Tie +db $00 ; End + +.sub11 +db $24, D5, C5, $48, B4, Tie +db $00 ; End + +.sub12 +db $48, E5, $24, A5, C6, $12, B5, B5, $48, Tie, G5, $24, E5, A5, C6, $12, B5, $48, B5, $24, Tie, $12, Tie +db $00 ; End + + +.Channel4 +%SetChannelVolume($CA) +%SetInstrument($0F) ; Harp +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub2+!ARAMC, 48) +%CallSubroutine(.sub13+!ARAMC, 1) +db $24, A4, $48, G4, E4 +%CallSubroutine(.sub13+!ARAMC, 1) +db $24, G4, $48, A4, Tie +%CallSubroutine(.sub2+!ARAMC, 64) +db $00 ; End of the channel + +.sub13 +db $48, A4, C5, $12, B4, B4, $48, Tie, $24, G4, A4, C5, $12, B4, B4 +db $00 ; End + + +.Channel5 +%SetChannelVolume($BA) +%SetInstrument($15) ; Choir +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub2+!ARAMC, 8) +%CallSubroutine(.sub6+!ARAMC, 15) +db $00 ; End of the channel + +.sub6 +db A2, Tie, Tie, Tie, Tie, Tie, Tie, Tie +db $00 ; End + +print pc \ No newline at end of file diff --git a/Oracle_main.asm b/Oracle_main.asm index ddac8c9..23403e9 100644 --- a/Oracle_main.asm +++ b/Oracle_main.asm @@ -84,6 +84,9 @@ namespace Oracle incsrc "Music/dungeon_theme.asm" print "End of Music/dungeon_theme.asm ", pc + incsrc "Music/stone_tower_temple.asm" + + print "" ; -------------------------------------------------------