FadeOutAudio:: ld a, [wAudioFadeOutControl] and a ; currently fading out audio? jr nz, .fadingOut ld a, [wStatusFlags2] bit BIT_NO_AUDIO_FADE_OUT, a ret nz ld a, $77 ldh [rNR50], a ret .fadingOut ld a, [wAudioFadeOutCounter] and a jr z, .counterReachedZero dec a ld [wAudioFadeOutCounter], a ret .counterReachedZero ld a, [wAudioFadeOutCounterReloadValue] ld [wAudioFadeOutCounter], a ldh a, [rNR50] and a ; has the volume reached 0? jr z, .fadeOutComplete ld b, a and $f dec a ld c, a ld a, b and $f0 swap a dec a swap a or c ldh [rNR50], a ret .fadeOutComplete ld a, [wAudioFadeOutControl] ld b, a xor a ld [wAudioFadeOutControl], a ld a, SFX_STOP_ALL_MUSIC ld [wNewSoundID], a call PlaySound ld a, [wAudioSavedROMBank] ld [wAudioROMBank], a ld a, b ld [wNewSoundID], a jp PlaySound