From 4622b457244e0100e11071ae602f9010bab0ffe3 Mon Sep 17 00:00:00 2001 From: scawful Date: Fri, 7 Jun 2024 00:43:07 -0400 Subject: [PATCH] add letterbomb color dungeon theme --- Music/color_dungeon_theme.asm | 356 ++++++++++++++++++++++++++++++++++ Oracle_main.asm | 4 +- 2 files changed, 358 insertions(+), 2 deletions(-) create mode 100644 Music/color_dungeon_theme.asm diff --git a/Music/color_dungeon_theme.asm b/Music/color_dungeon_theme.asm new file mode 100644 index 0000000..a527c62 --- /dev/null +++ b/Music/color_dungeon_theme.asm @@ -0,0 +1,356 @@ +;===================================================================================== +; The Legend of Zelda: A Link to the Past (Custom Music Track) +; The Legend of Zelda: Link's Awakening - Color Dungeon Theme v1.00 +; Original Song by Koji Kondo and Yuichi Ozaki +; Midi by Princess Peach Toadstool +; ASM Framework by Zarby89 +; Ported by Letterbomb +; Size 0x037F (895 Decimal) +;===================================================================================== + +; org $1A9FF8; Sections? +; ColorDungeonTheme: +; !ARAMAddr = $D0FF +org $1B9C0F; Sections? +ColorDungeonTheme: +!ARAMAddr = $EC0B +dw !ARAMAddr+$08 +dw $00FF +dw !ARAMAddr +dw $0000 + + + +.Channels +!ARAMC = !ARAMAddr-ColorDungeonTheme +dw .Channel0+!ARAMC +dw .Channel1+!ARAMC +dw .Channel2+!ARAMC +dw .Channel3+!ARAMC +dw .Channel4+!ARAMC +dw .Channel5+!ARAMC +dw $0000 +dw $0000 + + + +.Channel0 +%SetMasterVolume($9F) +%SetTempo(93); +%SetInstrument($09) ; Strings +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub001+!ARAMC, 4) ;] +%CallSubroutine(.sub002+!ARAMC, 4) ;]_____ D6, D6s Row +%CallSubroutine(.sub003+!ARAMC, 4) ;] +%CallSubroutine(.sub004+!ARAMC, 4) ;] +%CallSubroutine(.sub005+!ARAMC, 4) ;]_____ C6, D6 Row +%CallSubroutine(.sub006+!ARAMC, 4) ;] +%CallSubroutine(.sub007+!ARAMC, 1) ;]----- Upscale +%CallSubroutine(.sub001+!ARAMC, 4) ;] +%CallSubroutine(.sub002+!ARAMC, 4) ;]_____ D6, D6s Row +%CallSubroutine(.sub003+!ARAMC, 4) ;] +%CallSubroutine(.sub004+!ARAMC, 4) ;] +%CallSubroutine(.sub005+!ARAMC, 4) ;]_____ C6, D6 Row +%CallSubroutine(.sub006+!ARAMC, 4) ;] +%CallSubroutine(.sub007+!ARAMC, 1) ;]----- Upscale +%CallSubroutine(.sub008+!ARAMC, 4) ;] +%CallSubroutine(.sub009+!ARAMC, 4) ;] +%CallSubroutine(.sub010+!ARAMC, 4) ;]_____ D6 Row +%CallSubroutine(.sub011+!ARAMC, 4) ;] +%CallSubroutine(.sub012+!ARAMC, 4) ;] +%CallSubroutine(.sub013+!ARAMC, 4) ;] +%CallSubroutine(.sub007+!ARAMC, 1) ;]----- Upscale +db $00 ; End of the channel + + +.sub001 ;] +db G4, A4s, D5, D5s ;] +db $00 ; End ;] + ;] +.sub002 ;] +db F4s, A4, D5, D5s ;] +db $00 ; End ;] + ;]----- D6, D6s Row +.sub003 ;] +db F4, G4s, D5, D5s ;] +db $00 ; End ;] + ;] +.sub004 ;] +db E4, G4, D5, D5s ;] +db $00 ; End ;] + +.sub005 ;] +db D4s, G4, C5, D5 ;] +db $00 ; End ;] + ;]----- C6, D6 Row +.sub006 ;] +db D4, G4, C5, D5 ;] +db $00 ; End ;] + +.sub007 ;] +db C4, F4s, A4, C5, F4s, A4, C5, D5s, A4, C5, D5s, C5, D5s, F5s, D5s, F5s, A5, F5s, A5, C6 ;]----- Upscale +db $00 ; End ;] + +.sub008 ;] +db D5, A4s, G4, A4s ;] +db $00 ; End ;] + ;] +.sub009 ;] +db D5, A4, F4s, A4 ;] +db $00 ; End ;] + ;] +.sub010 ;] +db D5, G4s, F4, G4s ;] +db $00 ; End ;]_____ D6 Row + ;] +.sub011 ;] +db D5, G4, E4, G4 ;] +db $00 ; End ;] + ;] +.sub012 ;] +db D5, G4, D4s, G4 ;] +db $00 ; End ;] + ;] +.sub013 ;] +db D5, G4, D4, G4 ;] +db $00 ; End ;] + + + +.Channel1 +%SetInstrument($18) ; Guitar +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub101+!ARAMC, 1) ;]----- Melody +%CallSubroutine(.sub102+!ARAMC, 1) ;]----- Upscale +%CallSubroutine(.sub101+!ARAMC, 1) ;]----- Melody +%CallSubroutine(.sub102+!ARAMC, 1) ;]----- Upscale +db $48, D3, Tie, Tie, Tie, D3 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db C3s, Tie, A2, Tie, Tie, Tie, C3 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db D3, C3, B2 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db G2, A2, A2s +%CallSubroutine(.subA01+!ARAMC, 4) ;]----- Tie Repeats +db A2s, C3, A2s, A2 +%CallSubroutine(.subA01+!ARAMC, 4) ;]----- Tie Repeats +db G2, F2s, G2, A2, Tie, Tie, Tie, Rest +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db $00 ; End of the channel + + +.sub101 +db $48, G2, Tie, Tie, Tie, A2s, Tie, D3, Tie, C3s, Tie, F2s, Tie, Tie, Tie, Tie, Tie, F2, Tie, Tie, Tie, Tie, $24, Tie, G2s, $48, Tie, C3s, C3, Tie, E2, Tie, Tie, Tie, Tie, Tie, $24, D2s, D2, $48, D2s, Tie, Tie, G2, $24, Tie, D3s, Tie, Tie, D3, Tie, D2, C2s, $48, D2, Tie, Tie, G2, $24, Tie, D3, Tie, Tie, C3s, Tie +db $00 ; End + +;|_________________________________________________________| + ;| + ;| + ;Melody + +.sub102 ;] +db D2, F2s, A2, F2s, A2, C3, A2, C3, D3s, C3, D3s, F3s, A3, F3s, D3s, C3s, D3s, C3s, A2, F2s ;]----- Upscale +db $00 ; End ;] + + + +.Channel2 +%SetInstrument($18) ; Guitar +%SetDurationN($24, $7F) ; 1/8 +%CallSubroutine(.sub201+!ARAMC, 4) ;] +%CallSubroutine(.sub202+!ARAMC, 4) ;]_____ D6, D6s Row +%CallSubroutine(.sub203+!ARAMC, 4) ;] +%CallSubroutine(.sub204+!ARAMC, 4) ;] +%CallSubroutine(.sub205+!ARAMC, 4) ;]_____ C6, D6 Row +%CallSubroutine(.sub206+!ARAMC, 4) ;] +%CallSubroutine(.sub207+!ARAMC, 1) ;]----- Upscale +%CallSubroutine(.sub201+!ARAMC, 4) ;] +%CallSubroutine(.sub202+!ARAMC, 4) ;]_____ D6, D6s Row +%CallSubroutine(.sub203+!ARAMC, 4) ;] +%CallSubroutine(.sub204+!ARAMC, 4) ;] +%CallSubroutine(.sub205+!ARAMC, 4) ;]_____ C6, D6 Row +%CallSubroutine(.sub206+!ARAMC, 4) ;] +%CallSubroutine(.sub207+!ARAMC, 1) ;]----- Upscale +%SetInstrument($0F) ; Harp +db $48, D6, Tie, Tie, Tie, D6 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db C6s, Tie, A5, Tie, Tie, Tie, C6 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db D6, C6, B5 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db G5, A5, A5s +%CallSubroutine(.subA01+!ARAMC, 4) ;]----- Tie Repeats +db A5s, C6, A5s, A5 +%CallSubroutine(.subA01+!ARAMC, 4) ;]----- Tie Repeats +db G5, F5s, G5, A5, Tie, Tie, Tie, Rest +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db $00 ; End of the channel + + +.sub201 ;] +db G2, A2s, D3, D3s ;] +db $00 ; End ;] + ;] +.sub202 ;] +db F2s, A2, D3, D3s ;] +db $00 ; End ;] + ;]----- D6, D6s Row +.sub203 ;] +db F2, G2s, D3, D3s ;] +db $00 ; End ;] + ;] +.sub204 ;] +db E2, G2, D3, D3s ;] +db $00 ; End ;] + +.sub205 ;] +db D2s, G2, C3, D3 ;] +db $00 ; End ;] + ;]----- C6, D6 Row +.sub206 ;] +db D2, G2, C3, D3 ;] +db $00 ; End ;] + +.sub207 ;] +db C2, F2s, A2, C3, F2s, A2, C3, D3s, A2, C3, D3s, C3, D3s, F3s, D3s, F3s, A3, F3s, A3, C4 ;]----- Upscale +db $00 ; End ;] + + + +.Channel3 +%SetChannelVolume($9D) +%SetInstrument($13) ; Snare +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub301+!ARAMC, 4) +%CallSubroutine(.sub302+!ARAMC, 4) +%CallSubroutine(.sub303+!ARAMC, 8) +%CallSubroutine(.sub304+!ARAMC, 6) +db G2, Tie, G2, Tie, G2 +%CallSubroutine(.subA01+!ARAMC, 9) +%CallSubroutine(.sub301+!ARAMC, 4) +%CallSubroutine(.sub302+!ARAMC, 4) +%CallSubroutine(.sub303+!ARAMC, 8) +%CallSubroutine(.sub304+!ARAMC, 6) +db G2, Tie, G2, Tie, G2 +%CallSubroutine(.subA01+!ARAMC, 9) +%SetInstrument($15) ; Choir +db $48, D5, Tie, Tie, Tie, D5 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db C5s, Tie, A4, Tie, Tie, Tie, C5 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db D5, C5, B4 +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db G4, A4, A4s +%CallSubroutine(.subA01+!ARAMC, 4) ;]----- Tie Repeats +db A4s, C5, A4s, A4 +%CallSubroutine(.subA01+!ARAMC, 4) ;]----- Tie Repeats +db G4, F4s, G4, A4, Tie, Tie, Tie, Rest +%CallSubroutine(.subA01+!ARAMC, 5) ;]----- Tie Repeats +db $00 ; End of the channel + + +.sub301 +db G2, Tie +db $00 ; End + +.sub302 +db F2, Tie +db $00 ; End + +.sub303 +db E2, Tie +db $00 ; End + +.sub304 +db D2s, Tie +db $00 ; End + + + +.Channel4 +%SetInstrument($09) ; Strings +%SetDurationN($48, $7F) ; 1/4 +%CallSubroutine(.sub401+!ARAMC, 1) ;]----- Melody +%CallSubroutine(.sub402+!ARAMC, 1) ;]----- Upscale +%CallSubroutine(.sub401+!ARAMC, 1) ;]----- Melody +%CallSubroutine(.sub402+!ARAMC, 1) ;]----- Upscale +%SetInstrument($18) ; Guitar +%CallSubroutine(.sub403+!ARAMC, 4) ;] +%CallSubroutine(.sub404+!ARAMC, 4) ;] +%CallSubroutine(.sub405+!ARAMC, 4) ;]_____ D6 Row +%CallSubroutine(.sub406+!ARAMC, 4) ;] +%CallSubroutine(.sub407+!ARAMC, 4) ;] +%CallSubroutine(.sub408+!ARAMC, 4) ;] +%CallSubroutine(.sub207+!ARAMC, 1) ;]----- Upscale +db $00 ; End of the channel + + +.sub401 +db $48, G3, Tie, Tie, Tie, A3s, Tie, D4, Tie, C4s, Tie, F3s, Tie, Tie, Tie, Tie, Tie, F3, Tie, Tie, Tie, Tie, $24, Tie, G3s, $48, Tie, C4s, C4, Tie, E3, Tie, Tie, Tie, Tie, Tie, $24, D3s, D3, $48, D3s, Tie, Tie, G3, $24, Tie, D4s, Tie, Tie, D4, Tie, D3, C3s, $48, D3, Tie, Tie, G3, $24, Tie, D4, Tie, Tie, C4s, Tie +db $00 ; End + +;|_________________________________________________________| + ;| + ;| + ;Melody + +.sub402 ;] +db D3, F3s, A3, F3s, A3, C4, A3, C4, D4s, C4, D4s, F4s, A4, F4s, D4s, C4s, D4s, C4s, A3, F3s ;]----- Upscale +db $00 ; End ;] + +.sub403 ;] +db D3, A2s, G2, A2s ;] +db $00 ; End ;] + ;] +.sub404 ;] +db D3, A2, F2s, A2 ;] +db $00 ; End ;] + ;] +.sub405 ;] +db D3, G2s, F2, G2s ;] +db $00 ; End ;]_____ D6 Row + ;] +.sub406 ;] +db D3, G2, E2, G2 ;] +db $00 ; End ;] + ;] +.sub407 ;] +db D3, G2, D2s, G2 ;] +db $00 ; End ;] + ;] +.sub408 ;] +db D3, G2, D2, G2 ;] +db $00 ; End ;] + + + +.Channel5 +%SetInstrument($09) ; Strings +%SetDurationN($12, $7F) ; 1/16 +db Rest, $24 +%CallSubroutine(.sub001+!ARAMC, 4) ;] +%CallSubroutine(.sub002+!ARAMC, 4) ;]_____ D6, D6s Row +%CallSubroutine(.sub003+!ARAMC, 4) ;] +%CallSubroutine(.sub004+!ARAMC, 4) ;] +%CallSubroutine(.sub005+!ARAMC, 4) ;]_____ C6, D6 Row +%CallSubroutine(.sub006+!ARAMC, 4) ;] +%CallSubroutine(.sub007+!ARAMC, 1) ;]----- Upscale +%CallSubroutine(.sub001+!ARAMC, 4) ;] +%CallSubroutine(.sub002+!ARAMC, 4) ;]_____ D6, D6s Row +%CallSubroutine(.sub003+!ARAMC, 4) ;] +%CallSubroutine(.sub004+!ARAMC, 4) ;] +%CallSubroutine(.sub005+!ARAMC, 4) ;]_____ C6, D6 Row +%CallSubroutine(.sub006+!ARAMC, 4) ;] +%CallSubroutine(.sub007+!ARAMC, 1) ;]----- Upscale +db Rest, $48 +%CallSubroutine(.subA01+!ARAMC, 58) ;]----- Tie Repeats +db $00 ; End of the channel + + +.subA01 ;] +db Tie ;]----- Tie Repeats +db $00 ; End ;] + + + +print pc \ No newline at end of file diff --git a/Oracle_main.asm b/Oracle_main.asm index 3839e0b..4b38bbd 100644 --- a/Oracle_main.asm +++ b/Oracle_main.asm @@ -72,8 +72,8 @@ namespace Oracle incsrc "Music/lost_woods.asm" print "End of Music/lost_woods.asm ", pc - incsrc "Music/dungeon_theme.asm" - print "End of Music/dungeon_theme.asm ", pc + incsrc "Music/color_dungeon_theme.asm" + print "End of Music/color_dungeon_theme.asm ", pc incsrc "Music/stone_tower_temple.asm" print "End of stone_tower_temple.asm ", pc