aboutsummaryrefslogtreecommitdiff
path: root/src-z80
diff options
context:
space:
mode:
authorJavier Degirolmo2013-06-19 17:08:52 -0300
committerJavier Degirolmo2013-06-19 17:08:52 -0300
commitd81954c82f6e97e43304457930d16c480fc486ac (patch)
tree17db28c904d07b5a482f69dbb135f40d946a30d3 /src-z80
parent34a6aa70326144a4728f9ec6bc94546aa432fda4 (diff)
Optimized PCM playing check, around 4% CPU time freed at default sample rate
Diffstat (limited to 'src-z80')
-rw-r--r--src-z80/player/pcm.z8016
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