summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/sound/zsg2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/sound/zsg2.cpp')
-rw-r--r--src/devices/sound/zsg2.cpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/devices/sound/zsg2.cpp b/src/devices/sound/zsg2.cpp
index 6e97ce01f43..bac1d065ba6 100644
--- a/src/devices/sound/zsg2.cpp
+++ b/src/devices/sound/zsg2.cpp
@@ -10,7 +10,7 @@
---------------------------------------------------------
Register map:
- 000-5fe : Channel specific registers
+ 000-5fe : Channel specific registers (48 channels)
(high) (low)
+000 : xxxxxxxx -------- : Start address (low)
+000 : -------- xxxxxxxx : Unknown register (usually cleared)
@@ -27,7 +27,7 @@
+010 : xxxxxxxx xxxxxxxx : Initial filter time constant
+012 : xxxxxxxx xxxxxxxx : Current filter time constant
+014 : xxxxxxxx xxxxxxxx : Initial volume
- +016 : xxxxxxxx xxxxxxxx : Current volume
+ +016 : xxxxxxxx xxxxxxxx : Current volume?
+018 : xxxxxxxx xxxxxxxx : Target filter time constant
+01a : xxxxxxxx -------- : DSP ch 1 (chorus) output gain
: -------- xxxxxxxx : Filter ramping speed
@@ -85,7 +85,7 @@
TODO:
- Filter and ramping behavior might not be perfect.
-- sometimes clicking / popping noises
+- clicking / popping noises in gdarius, raystorm: maybe the sample ROMs are bad dumps?
- memory reads out of range sometimes
*/
@@ -309,10 +309,11 @@ void zsg2_device::sound_stream_update(sound_stream &stream, stream_sample_t **in
elem.status &= ~STATUS_ACTIVE;
continue;
}
-
- if(elem.cur_pos == elem.start_pos)
- elem.emphasis_filter_state = EMPHASIS_INITIAL_BIAS;
}
+
+ if(elem.cur_pos == elem.start_pos)
+ elem.emphasis_filter_state = EMPHASIS_INITIAL_BIAS;
+
elem.step_ptr &= 0xffff;
filter_samples(&elem);
}