ES5506: one more percent off
This commit is contained in:
parent
50431b08b0
commit
78d3f9d97f
5 changed files with 16 additions and 7 deletions
|
|
@ -99,7 +99,7 @@ void es5506_core::voice_t::tick(u8 voice)
|
|||
|
||||
if (m_alu.busy())
|
||||
{
|
||||
fetch(0);
|
||||
if ((m_alu.m_last_accum&(~m_alu.m_fraction))!=(m_alu.m_accum&(~m_alu.m_fraction))) fetch(0);
|
||||
m_filter.tick(m_alu.interpolation());
|
||||
// Send to output
|
||||
m_output[0] = m_mute ? 0 : volume_calc(m_lvol, (short)m_filter.o4_1());
|
||||
|
|
|
|||
|
|
@ -169,6 +169,7 @@ class es550x_shared_core : public vgsound_emu_core
|
|||
, m_start(0)
|
||||
, m_end(0)
|
||||
, m_accum(0)
|
||||
, m_last_accum(0)
|
||||
, m_sample{0,0}
|
||||
{
|
||||
}
|
||||
|
|
@ -268,7 +269,7 @@ class es550x_shared_core : public vgsound_emu_core
|
|||
|
||||
inline s32 sample(u8 slot) { return m_sample[slot & 1]; }
|
||||
|
||||
private:
|
||||
public:
|
||||
class es550x_alu_cr_t : public vgsound_emu_core
|
||||
{
|
||||
public:
|
||||
|
|
@ -370,6 +371,7 @@ class es550x_shared_core : public vgsound_emu_core
|
|||
// 20 integer, 9 fraction for ES5504/ES5505
|
||||
// 21 integer, 11 fraction for ES5506
|
||||
u32 m_accum = 0;
|
||||
u32 m_last_accum = 0;
|
||||
// Samples
|
||||
s32 m_sample[2];
|
||||
};
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ void es550x_shared_core::es550x_voice_t::es550x_alu_t::reset()
|
|||
m_start = 0;
|
||||
m_end = 0;
|
||||
m_accum = 0;
|
||||
m_last_accum=0;
|
||||
m_sample[0] = m_sample[1] = 0;
|
||||
}
|
||||
|
||||
|
|
@ -23,6 +24,7 @@ bool es550x_shared_core::es550x_voice_t::es550x_alu_t::busy() { return !(m_cr.m_
|
|||
|
||||
bool es550x_shared_core::es550x_voice_t::es550x_alu_t::tick()
|
||||
{
|
||||
m_last_accum = m_accum;
|
||||
if (m_cr.dir())
|
||||
{
|
||||
m_accum -= m_fc;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue