Add dungeon-specific music

This commit is contained in:
qwertymodo
2018-11-28 16:20:26 -08:00
parent 5a9368fbd5
commit a1e34c280a
2 changed files with 140 additions and 15 deletions

129
msu.asm
View File

@@ -6,7 +6,72 @@
;
; Author: qwertymodo
;
; Free space used: 0x77DDD-0x77F8A
; Track List:
;
; 1 - Title ~ Link to the Past
; 2 - Hyrule Field
; 3 - Time of Falling Rain
; 4 - The Silly Pink Rabbit
; 5 - Forest of Mystery
; 6 - Seal of Seven Maidens
; 7 - Kakariko Village
; 8 - Dimensional Shift (Mirror)
; 9 - Dark Golden Land
; 10 - Unsealing the Master Sword
; 11 - Beginning of th Journey
; 12 - Soldiers of Kakariko Village
; 13 - Black Mist
; 14 - Guessing Game House
; 15 - (Unused)
; 16 - Majestic Castle
; 17 - Lost Ancient Ruins
; 18 - Dank Dungeons
; 19 - Great Victory!
; 20 - Safety in the Sanctuary
; 21 - Anger of the Guardians
; 22 - Dungeon of Shadows
; 23 - Fortune Teller
; 24 - Dank Dungeons (Copy)
; 25 - Princess Zelda's Rescue
; 26 - Meeting the Maidens
; 27 - The Goddess Appears
; 28 - Priest of the Dark Order
; 29 - Release of Ganon
; 30 - Ganon's Message
; 31 - The Prince of Darkness
; 32 - Power of the Gods
; 33 - Epilogue ~ Beautiful Hyrule
; 34 - Staff Roll
;
; Dungeon-specific tracks
;
; 35 - Eastern Palace
; 36 - Desert Palace
; 37 - Agahnim's Tower
; 38 - Swamp Palace
; 39 - Palace of Darkness
; 40 - Misery Mire
; 41 - Skull Woods
; 42 - Ice Palace
; 43 - Tower of Hera
; 44 - Thieves' Town
; 45 - Turtle Rock
; 46 - Ganon's Tower
;
; Bosses
;
; 47 - Eastern Palace
; 48 - Desert Palace
; 49 - Agahnim's Tower
; 50 - Swamp Palace
; 51 - Palace of Darkness
; 52 - Misery Mire
; 53 - Skull Woods
; 54 - Ice Palace
; 55 - Tower of Hera
; 56 - Thieves' Town
; 57 - Turtle Rock
; 58 - Ganon's Tower
;
;=======================================
@@ -93,7 +158,9 @@ msu_check_busy:
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_BUSY : BEQ .ready
JML spc_continue
.ready
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE spc_fallback
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BEQ .start
BRL dungeon_fallback
.start
LDA !VAL_VOLUME_FULL
STA !REG_TARGET_VOLUME
STA !REG_CURRENT_VOLUME
@@ -104,14 +171,6 @@ msu_check_busy:
STA !REG_MSU_LOAD_FLAG
JML spc_continue
spc_fallback:
STZ !REG_MSU_CONTROL
STZ !REG_CURRENT_MSU_TRACK
STZ !REG_TARGET_VOLUME
STZ !REG_CURRENT_VOLUME
STZ !REG_MSU_VOLUME
JML spc_continue
do_fade:
LDA !REG_CURRENT_VOLUME : CMP !REG_TARGET_VOLUME : BNE .continue
JML spc_continue
@@ -157,9 +216,19 @@ command_f1:
JML spc_continue
load_track:
CPX !REG_CURRENT_MSU_TRACK : BNE .continue
CPX !REG_CURRENT_MSU_TRACK : BNE .check_dungeon
CPX #$1B : BEQ .continue
JML spc_continue
.check_dungeon
CPX #$11 : BEQ .dungeon
CPX #$16 : BEQ .dungeon
CPX #$15 : BNE .continue
; boss
LDA $040C : LSR : !ADD #$2D
BRA .continue-1
.dungeon
LDA $040C : LSR : !ADD #$21 : TAX
.continue
STX !REG_MSU_TRACK_LO
STZ !REG_MSU_TRACK_HI
@@ -169,6 +238,44 @@ load_track:
STX !REG_CURRENT_MSU_TRACK
JML spc_continue
dungeon_fallback:
LDA !REG_CURRENT_MSU_TRACK : AND #$3F
CMP #$23 : !BLT spc_fallback ; < 35: normal tracks
CMP #$2F : !BGE .boss ; > 46: boss-specific tracks
CMP #$25 : BEQ .castle ; 37: aga tower, fall back to hyrule castle
BRA .dungeon ; 35-46: dungeon-specific tracks
.boss
LDA #$15 : BRA .fallback
.castle
LDA #$10 : BRA .fallback
.dungeon
PHB : REP #$10
LDX $040C
LDA.b #Music_Eastern>>16 : PHA : PLB ; Set bank to music pointers
LDY $00 : PHY
REP #$20
LDA MSUDungeonFallbackList,X : STA $00
SEP #$20
LDA ($00)
PLY : STY $00 : PLB
.fallback
STA !REG_CURRENT_MSU_TRACK
STA !REG_MSU_TRACK_LO
STZ !REG_MSU_TRACK_HI
JML spc_continue
spc_fallback:
STZ !REG_MSU_CONTROL
STZ !REG_CURRENT_MSU_TRACK
STZ !REG_TARGET_VOLUME
STZ !REG_CURRENT_VOLUME
STZ !REG_MSU_VOLUME
JML spc_continue
pendant_fanfare:
LDA TournamentSeed : BNE .spc
REP #$20