AY/AY8930: fix period overflow

This commit is contained in:
tildearrow 2023-01-12 18:39:25 -05:00
parent 4724c1ccb1
commit 5df68c2ee8
2 changed files with 2 additions and 0 deletions

View File

@ -337,6 +337,7 @@ void DivPlatformAY8910::tick(bool sysTick) {
chan[i].dac.rate=((double)rate*((sunsoft||clockSel)?8.0:16.0))/(double)(MAX(1,off*chan[i].freq));
if (dumpWrites) addWrite(0xffff0001+(i<<8),chan[i].dac.rate);
}
if (chan[i].freq<0) chan[i].freq=0;
if (chan[i].freq>4095) chan[i].freq=4095;
if (chan[i].keyOn) {
//rWrite(16+i*5+1,((chan[i].duty&3)<<6)|(63-(ins->gb.soundLen&63)));

View File

@ -336,6 +336,7 @@ void DivPlatformAY8930::tick(bool sysTick) {
chan[i].dac.rate=((double)chipClock*4.0)/(double)(MAX(1,off*chan[i].freq));
if (dumpWrites) addWrite(0xffff0001+(i<<8),chan[i].dac.rate);
}
if (chan[i].freq<0) chan[i].freq=0;
if (chan[i].freq>65535) chan[i].freq=65535;
if (chan[i].keyOn) {
if (!chan[i].nextPSGMode.dac) {