more low-latency mode work
playSub() runs at normal tick rate
This commit is contained in:
parent
98b9bd32b9
commit
b48a2368be
4 changed files with 51 additions and 52 deletions
|
|
@ -853,6 +853,7 @@ void DivEngine::playSub(bool preserveDrift, int goalRow) {
|
|||
}
|
||||
if (!preserveDrift) {
|
||||
ticks=1;
|
||||
subticks=1;
|
||||
}
|
||||
skipping=false;
|
||||
cmdStream.clear();
|
||||
|
|
|
|||
|
|
@ -1476,15 +1476,17 @@ bool DivEngine::nextTick(bool noAccum) {
|
|||
bool ret=false;
|
||||
if (divider<10) divider=10;
|
||||
|
||||
if (lowLatency) {
|
||||
if (lowLatency && !skipping) {
|
||||
tickMult=1000/divider;
|
||||
if (tickMult<1) tickMult=1;
|
||||
} else {
|
||||
tickMult=1;
|
||||
}
|
||||
|
||||
cycles=got.rate*pow(2,MASTER_CLOCK_PREC)/(divider*tickMult);
|
||||
clockDrift+=fmod(got.rate*pow(2,MASTER_CLOCK_PREC),(double)divider);
|
||||
if (clockDrift>=divider) {
|
||||
clockDrift-=divider;
|
||||
clockDrift+=fmod(got.rate*pow(2,MASTER_CLOCK_PREC),(double)(divider*tickMult));
|
||||
if (clockDrift>=(divider*tickMult)) {
|
||||
clockDrift-=(divider*tickMult);
|
||||
cycles++;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue