From d81954c82f6e97e43304457930d16c480fc486ac Mon Sep 17 00:00:00 2001 From: Javier Degirolmo Date: Wed, 19 Jun 2013 17:08:52 -0300 Subject: Optimized PCM playing check, around 4% CPU time freed at default sample rate --- src-z80/player/pcm.z80 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src-z80/player') diff --git a/src-z80/player/pcm.z80 b/src-z80/player/pcm.z80 index b5a4434..2a484d4 100644 --- a/src-z80/player/pcm.z80 +++ b/src-z80/player/pcm.z80 @@ -60,8 +60,10 @@ PlayPCM: inc c .noskip1st: - ld b, $01 ; Play PCM! + ;ld b, $01 ; Play PCM! exx ; Back to standard registers + xor a ; Enable PCM playback + ld (UpdatePCM), a ld (ix+0), $2B ; Turn on DAC ld (ix+1), $80 @@ -76,12 +78,11 @@ PlayPCM: ;**************************************************************************** UpdatePCM: + ret ; RET = no PCM playback + ; NOP = PCM playback + exx ; Switch to PCM registers - ld a, b ; Do any playback? - or a - jr z, .nopcm - .doagain: ld (ix+0), $27 ; Acknowledge timer ld (ix+1), $1F @@ -219,9 +220,8 @@ StopPCMBGM: jp ProcessBGMRun ; End of subroutine StopPCM: - exx ; Stop PCM playback - ld b, $00 - exx + ld a, $C9 ; Stop PCM playback + ld (UpdatePCM), a ld (ix+0), $2B ; Disable DAC ld (ix+1), $00 -- cgit v1.2.3