BubSys: optimize

This commit is contained in:
tildearrow 2023-02-04 17:22:16 -05:00
parent 9c673d6e71
commit beed67aaa1
3 changed files with 12 additions and 12 deletions

View File

@ -8,11 +8,11 @@
#include "k005289.hpp"
void k005289_core::tick()
void k005289_core::tick(const unsigned int cycles)
{
for (timer_t &elem : m_timer)
{
elem.tick();
elem.tick(cycles);
}
}
@ -24,12 +24,12 @@ void k005289_core::reset()
}
}
void k005289_core::timer_t::tick()
{
if (bitfield(++m_counter, 0, 12) == 0)
void k005289_core::timer_t::tick(const unsigned int cycles) {
m_counter-=cycles;
while (m_counter < 0)
{
m_addr = bitfield(m_addr + 1, 0, 5);
m_counter = m_freq;
m_counter += 0x1000-(m_freq&0xfff);
}
}

View File

@ -32,7 +32,7 @@ class k005289_core : public vgsound_emu_core
// internal state
void reset();
void tick();
void tick(const unsigned int cycles=1);
// accessors
// Replace current frequency to lastest loaded pitch
@ -63,7 +63,7 @@ class k005289_core : public vgsound_emu_core
// internal state
void reset();
void tick();
void tick(const unsigned int cycles);
// accessors
// TG1/2 pin

View File

@ -44,7 +44,7 @@ void DivPlatformBubSysWSG::acquire(short** buf, size_t len) {
for (size_t h=0; h<len; h++) {
signed int out=0;
// K005289 part
k005289.tick();
k005289.tick(8);
// Wavetable part
for (int i=0; i<2; i++) {
@ -60,7 +60,7 @@ void DivPlatformBubSysWSG::acquire(short** buf, size_t len) {
}
}
if (++writeOscBuf>=64) writeOscBuf=0;
if (++writeOscBuf>=8) writeOscBuf=0;
out<<=6; // scale output to 16 bit
@ -332,9 +332,9 @@ void DivPlatformBubSysWSG::notifyInsDeletion(void* ins) {
void DivPlatformBubSysWSG::setFlags(const DivConfig& flags) {
chipClock=COLOR_NTSC;
CHECK_CUSTOM_CLOCK;
rate=chipClock;
rate=chipClock/8;
for (int i=0; i<2; i++) {
oscBuf[i]->rate=rate/64;
oscBuf[i]->rate=rate/8;
}
}