Merge branch 'musicstuff'

This commit is contained in:
qwertymodo
2019-09-06 14:47:51 -07:00
4 changed files with 44 additions and 9 deletions

View File

@@ -80,6 +80,8 @@ db #$20, #$19, #$08, #$31 ; year/month/day
!REG_MSU_DELAYED_COMMAND = $7F50A9
!REG_MSU_PACK_COUNT = $7F50AA
!REG_MSU_PACK_CURRENT = $7F50AB
!REG_MSU_PACK_REQUEST = $7F50AC
!REG_SPC_LOADING = $7F50AD
!REG_MUSIC_CONTROL = $012B
;!REG_MUSIC_CONTROL = $012C
!REG_MUSIC_CONTROL_REQUEST = $012C

35
msu.asm
View File

@@ -151,8 +151,16 @@ CheckMusicLoadRequest:
RTL
.continue
LDA TournamentSeed : BNE ++
LDA !REG_MSU_PACK_REQUEST
CMP !REG_MSU_PACK_CURRENT : BEQ ++
CMP !REG_MSU_PACK_COUNT : !BLT +
LDA !REG_MSU_PACK_CURRENT : STA !REG_MSU_PACK_REQUEST
+ : STA !REG_MSU_PACK_CURRENT
JSL msu_init_check_fallback
; Shut down NMI until music loads
STZ $4200
++ : STZ $4200
LDA NoBGM : BEQ +
BRL .mute
@@ -182,6 +190,7 @@ CheckMusicLoadRequest:
.lightworld
PHA
LDA $7EF300 : AND.b #$40 : BEQ +
PLA
LDA.b #60 : BRA .check_fallback-3
+
- : PLA : BRA .check_fallback-3
@@ -260,6 +269,8 @@ CheckMusicLoadRequest:
.load
REP #$10
JSL Sound_LoadLightWorldSongBank_do_load
LDA.b #$01 : STA !REG_SPC_LOADING
; Re-enable NMI and joypad
LDA.b #$81 : STA $4200
@@ -323,9 +334,12 @@ msu_init:
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_BUSY : BNE .wait_pack
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BEQ .check_pack
TXA : STA !REG_MSU_PACK_COUNT
BRA +
; Check the current MSU-1 pack for tracks that require SPC fallback
LDA.b #64
.check_fallback
PHP : SEP #$10
+ : LDA.b #64
LDX.b #7
LDY.b #7
@@ -470,6 +484,9 @@ load_track:
PLY : STY $00 : SEP #$10 : PLB
.done
- : TAX : CMP MSUExtendedFallbackList-1,X : BEQ +
LDA MSUExtendedFallbackList-1,X : BRA -
+
STA !REG_MUSIC_CONTROL
JML spc_continue
@@ -502,6 +519,7 @@ load_track:
pendant_fanfare:
LDA TournamentSeed : BNE .spc
LDA FastFanfare : BNE .done
REP #$20
LDA !REG_MSU_ID_01 : CMP !VAL_MSU_ID_01 : BNE .spc
LDA !REG_MSU_ID_23 : CMP !VAL_MSU_ID_23 : BNE .spc
@@ -510,18 +528,21 @@ pendant_fanfare:
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
LDA !REG_MSU_DELAYED_COMMAND : BNE .continue
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
.playing
LDA #$00 : STA !REG_SPC_LOADING
.continue
jml pendant_continue
.spc
SEP #$20
- : LDA !REG_SPC_CONTROL : BEQ - ; Wait for the track to finish loading
LDA !REG_SPC_CONTROL : BNE .continue
LDA !REG_SPC_CONTROL : BNE .playing
LDA !REG_SPC_LOADING : BNE .continue
.done
jml pendant_done
crystal_fanfare:
LDA TournamentSeed : BNE .spc
LDA FastFanfare : BNE .done
REP #$20
LDA !REG_MSU_ID_01 : CMP !VAL_MSU_ID_01 : BNE .spc
LDA !REG_MSU_ID_23 : CMP !VAL_MSU_ID_23 : BNE .spc
@@ -530,12 +551,14 @@ crystal_fanfare:
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_TRACK_MISSING : BNE .spc
LDA !REG_MSU_DELAYED_COMMAND : BNE .continue
LDA !REG_MSU_STATUS : BIT !FLAG_MSU_STATUS_AUDIO_PLAYING : BEQ .done
.playing
LDA #$00 : STA !REG_SPC_LOADING
.continue
jml crystal_continue
.spc
SEP #$20
- : LDA !REG_SPC_CONTROL : BEQ - ; Wait for the track to finish loading
LDA !REG_SPC_CONTROL : BNE .continue
LDA !REG_SPC_CONTROL : BNE .playing
LDA !REG_SPC_LOADING : BNE .continue
.done
jml crystal_done

View File

@@ -127,11 +127,18 @@ Overworld_FinishMirrorWarp:
LDX.b #$02 ; hyrule field theme
; Check if we're entering the lost woods
CMP.b #$00 : BNE +
LDA $7EF300 : AND.b #$40 : BNE .endOfLightWorldChecks
LDX.b #$05 ; lost woods theme
BRA .endOfLightWorldChecks
+
; Check if we're entering the village
CMP.b #$18 : BNE .endOfLightWorldChecks
; Check what phase we're in
LDA $7EF3C5 : CMP.b #$03 : !BGE .endOfLightWorldChecks
; LDA $7EF3C5 : CMP.b #$03 : !BGE .endOfLightWorldChecks
LDX.b #$07 ; Default village theme (phase <3)
.endOfLightWorldChecks

View File

@@ -975,8 +975,11 @@ db $00, $01, $02, $03, $04
org $30821A ; PC 0x18021A
NoBGM:
db $00 ; $00 = BGM enabled (default) $01 = BGM disabled
org $30821B ; PC 0x18021B
FastFanfare:
db $00 ; $00 = Normal fanfare (default) $01 = Fast fanfare
;--------------------------------------------------------------------------------
; 0x18021B - 0x18021F (unused)
; 0x18021C - 0x18021F (unused)
;================================================================================
; $308220 (0x180220) - $30823F (0x18023F)
; Plandomizer Author Name (ASCII) - Leave unused chars as 0
@@ -1619,7 +1622,7 @@ db $03,$03,$03,$03,$03,$00,$00,$00
MSUExtendedFallbackList:
db $01,$02,$03,$04,$05,$06,$07,$08
db $09,$0A,$0B,$0C,$0D,$0E,$0F,$0D
db $09,$0A,$0B,$0C,$0D,$0E,$0D,$10
db $11,$12,$13,$14,$15,$16,$17,$18
db $19,$1A,$1B,$1C,$1D,$1E,$1F,$20
db $21,$22,$11,$11,$10,$16,$16,$16