summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/hh_hmcs40.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/hh_hmcs40.cpp')
-rw-r--r--src/mame/drivers/hh_hmcs40.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/mame/drivers/hh_hmcs40.cpp b/src/mame/drivers/hh_hmcs40.cpp
index d9f8bf63ce3..249a3c859c4 100644
--- a/src/mame/drivers/hh_hmcs40.cpp
+++ b/src/mame/drivers/hh_hmcs40.cpp
@@ -1926,6 +1926,8 @@ public:
protected:
virtual void machine_start() override;
+
+ std::vector<double> m_speaker_levels;
};
void cdkong_state::machine_start()
@@ -2027,10 +2029,10 @@ void cdkong_state::cdkong(machine_config &config)
TIMER(config, "speaker_decay").configure_periodic(FUNC(cdkong_state::speaker_decay_sim), attotime::from_msec(1));
// set volume levels (set_output_gain is too slow for sub-frame intervals)
- static s16 speaker_levels[0x8000];
+ m_speaker_levels.resize(0x8000);
for (int i = 0; i < 0x8000; i++)
- speaker_levels[i] = i;
- m_speaker->set_levels(0x8000, speaker_levels);
+ m_speaker_levels[i] = double(i) / 32768.0;
+ m_speaker->set_levels(0x8000, &m_speaker_levels[0]);
}
// roms
@@ -3668,7 +3670,7 @@ void mwcbaseb_state::mwcbaseb(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
- static const s16 speaker_levels[] = { 0, 0x3fff, -0x4000, 0, -0x4000, 0, -0x8000, -0x4000 };
+ static const double speaker_levels[] = { 0.0, 0.5, -0.5, 0.0, -0.5, 0.0, -1.0, -0.5 };
m_speaker->set_levels(8, speaker_levels);
}