aboutsummaryrefslogtreecommitdiff
path: root/music/load.gbasm
diff options
context:
space:
mode:
Diffstat (limited to 'music/load.gbasm')
-rw-r--r--music/load.gbasm32
1 files changed, 32 insertions, 0 deletions
diff --git a/music/load.gbasm b/music/load.gbasm
index 1632233..5e2caf8 100644
--- a/music/load.gbasm
+++ b/music/load.gbasm
@@ -101,18 +101,32 @@ Loop_Music:
LD B, A
LD A, (HL)
+ LD $tmp_var_1, A
CALL =Inc_HL_Fix_Bank
ADD C
LD C, A
LD A, (HL)
+ LD $tmp_var_2, A
CALL =Inc_HL_Fix_Bank
ADC B
LD B, A
LD A, (HL)
+ LD $tmp_var_3, A
CALL =Inc_HL_Fix_Bank
ADC E
LD E, A
+ LD A, $tmp_var_1
+ CP $00
+ JR NZ, =.end_check_empty
+ LD A, $tmp_var_2
+ CP $00
+ JR NZ, =.end_check_empty
+ LD A, $tmp_var_2
+ CP $00
+ JR Z, =Stop_music
+ .end_check_empty:
+
LD A, $00
SLA B
RL A
@@ -132,6 +146,24 @@ Loop_Music:
LD ($mem_current_vgm_pc+2), A
RET
+Stop_Music:
+ LD A, $mem_sound_flags
+ RES 0, A
+ LD $mem_sound_flags, A
+ LD A, $mem_sound_flags
+ BIT 1, A
+ CALL Z, =Reset_Music_Channel1
+ LD A, $mem_sound_flags
+ BIT 2, A
+ CALL Z, =Reset_Music_Channel2
+ LD A, $mem_sound_flags
+ BIT 3, A
+ CALL Z, =Reset_Music_Channel3
+ LD A, $mem_sound_flags
+ BIT 4, A
+ CALL Z, =Reset_Music_Channel4
+ RET
+
Inc_HL_Fix_Bank:
PUSH AF
INC HL