BubSys: optimize
This commit is contained in:
parent
9c673d6e71
commit
beed67aaa1
|
@ -8,11 +8,11 @@
|
||||||
|
|
||||||
#include "k005289.hpp"
|
#include "k005289.hpp"
|
||||||
|
|
||||||
void k005289_core::tick()
|
void k005289_core::tick(const unsigned int cycles)
|
||||||
{
|
{
|
||||||
for (timer_t &elem : m_timer)
|
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()
|
void k005289_core::timer_t::tick(const unsigned int cycles) {
|
||||||
{
|
m_counter-=cycles;
|
||||||
if (bitfield(++m_counter, 0, 12) == 0)
|
while (m_counter < 0)
|
||||||
{
|
{
|
||||||
m_addr = bitfield(m_addr + 1, 0, 5);
|
m_addr = bitfield(m_addr + 1, 0, 5);
|
||||||
m_counter = m_freq;
|
m_counter += 0x1000-(m_freq&0xfff);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ class k005289_core : public vgsound_emu_core
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
void reset();
|
void reset();
|
||||||
void tick();
|
void tick(const unsigned int cycles=1);
|
||||||
|
|
||||||
// accessors
|
// accessors
|
||||||
// Replace current frequency to lastest loaded pitch
|
// Replace current frequency to lastest loaded pitch
|
||||||
|
@ -63,7 +63,7 @@ class k005289_core : public vgsound_emu_core
|
||||||
|
|
||||||
// internal state
|
// internal state
|
||||||
void reset();
|
void reset();
|
||||||
void tick();
|
void tick(const unsigned int cycles);
|
||||||
|
|
||||||
// accessors
|
// accessors
|
||||||
// TG1/2 pin
|
// TG1/2 pin
|
||||||
|
|
|
@ -44,7 +44,7 @@ void DivPlatformBubSysWSG::acquire(short** buf, size_t len) {
|
||||||
for (size_t h=0; h<len; h++) {
|
for (size_t h=0; h<len; h++) {
|
||||||
signed int out=0;
|
signed int out=0;
|
||||||
// K005289 part
|
// K005289 part
|
||||||
k005289.tick();
|
k005289.tick(8);
|
||||||
|
|
||||||
// Wavetable part
|
// Wavetable part
|
||||||
for (int i=0; i<2; i++) {
|
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
|
out<<=6; // scale output to 16 bit
|
||||||
|
|
||||||
|
@ -332,9 +332,9 @@ void DivPlatformBubSysWSG::notifyInsDeletion(void* ins) {
|
||||||
void DivPlatformBubSysWSG::setFlags(const DivConfig& flags) {
|
void DivPlatformBubSysWSG::setFlags(const DivConfig& flags) {
|
||||||
chipClock=COLOR_NTSC;
|
chipClock=COLOR_NTSC;
|
||||||
CHECK_CUSTOM_CLOCK;
|
CHECK_CUSTOM_CLOCK;
|
||||||
rate=chipClock;
|
rate=chipClock/8;
|
||||||
for (int i=0; i<2; i++) {
|
for (int i=0; i<2; i++) {
|
||||||
oscBuf[i]->rate=rate/64;
|
oscBuf[i]->rate=rate/8;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue