core quality, part 2

- Bubble System WSG
- C64 (dSID)
- Game Boy
- DS
- PowerNoise
This commit is contained in:
tildearrow 2024-04-06 15:52:13 -05:00
parent a1254d5fb6
commit cb1f268335
12 changed files with 175 additions and 12 deletions

View file

@ -70,7 +70,7 @@ void DivPlatformGB::acquire(short** buf, size_t len) {
writes.pop();
}
GB_advance_cycles(gb,16);
GB_advance_cycles(gb,coreQuality);
buf[0][i]=gb->apu_output.final_sample.left;
buf[1][i]=gb->apu_output.final_sample.right;
@ -722,12 +722,38 @@ void DivPlatformGB::setFlags(const DivConfig& flags) {
chipClock=4194304;
CHECK_CUSTOM_CLOCK;
rate=chipClock/16;
rate=chipClock/coreQuality;
for (int i=0; i<4; i++) {
oscBuf[i]->rate=rate;
}
}
void DivPlatformGB::setCoreQuality(unsigned char q) {
switch (q) {
case 0:
coreQuality=120;
break;
case 1:
coreQuality=64;
break;
case 2:
coreQuality=32;
break;
case 3:
coreQuality=16;
break;
case 4:
coreQuality=4;
break;
case 5:
coreQuality=1;
break;
default:
coreQuality=16;
break;
}
}
int DivPlatformGB::init(DivEngine* p, int channels, int sugRate, const DivConfig& flags) {
parent=p;
dumpWrites=false;