diff options
| author | Javier Degirolmo | 2013-06-19 17:08:52 -0300 |
|---|---|---|
| committer | Javier Degirolmo | 2013-06-19 17:08:52 -0300 |
| commit | d81954c82f6e97e43304457930d16c480fc486ac (patch) | |
| tree | 17db28c904d07b5a482f69dbb135f40d946a30d3 | |
| parent | 34a6aa70326144a4728f9ec6bc94546aa432fda4 (diff) | |
Optimized PCM playing check, around 4% CPU time freed at default sample rate
| -rw-r--r-- | src-z80/player/pcm.z80 | 16 |
1 files changed, 8 insertions, 8 deletions
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 |
