OPM/OPZ: custom clocks

finally
This commit is contained in:
tildearrow 2023-01-13 00:07:56 -05:00
parent e1d0c8aa79
commit 961c977378
2 changed files with 9 additions and 6 deletions

View File

@ -19,6 +19,7 @@
#include "arcade.h"
#include "../engine.h"
#include "../../ta-log.h"
#include <string.h>
#include <math.h>
@ -868,17 +869,18 @@ void DivPlatformArcade::setFlags(const DivConfig& flags) {
switch (flags.getInt("clockSel",0)) {
case 1:
chipClock=COLOR_PAL*4.0/5.0;
baseFreqOff=12;
break;
case 2:
chipClock=4000000.0;
baseFreqOff=-122;
break;
default:
chipClock=COLOR_NTSC;
baseFreqOff=0;
break;
}
CHECK_CUSTOM_CLOCK;
baseFreqOff=round(768.0*(log((COLOR_NTSC/(double)chipClock))/log(2.0)));
rate=chipClock/64;
for (int i=0; i<8; i++) {
oscBuf[i]->rate=rate;

View File

@ -941,14 +941,15 @@ void DivPlatformTX81Z::setFlags(const DivConfig& flags) {
int clockSel=flags.getInt("clockSel",0);
if (clockSel==2) {
chipClock=4000000.0;
baseFreqOff=-122;
} else if (clockSel==1) {
chipClock=COLOR_PAL*4.0/5.0;
baseFreqOff=12;
} else {
chipClock=COLOR_NTSC;
baseFreqOff=0;
}
CHECK_CUSTOM_CLOCK;
baseFreqOff=round(768.0*(log((COLOR_NTSC/(double)chipClock))/log(2.0)));
rate=chipClock/64;
for (int i=0; i<8; i++) {
oscBuf[i]->rate=rate;