diff options
Diffstat (limited to 'music/load.gbasm')
-rw-r--r-- | music/load.gbasm | 32 |
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 |