i will finish this later today

This commit is contained in:
tildearrow 2022-01-28 18:12:56 -05:00
parent 09ebadf479
commit 629d229bc1
4 changed files with 174 additions and 10 deletions

View file

@ -4744,16 +4744,19 @@ void DivEngine::setOrder(unsigned char order) {
isBusy.unlock();
}
void DivEngine::setSysFlags(int system, unsigned int flags) {
isBusy.lock();
song.systemFlags[system]=flags;
disCont[system].dispatch->setFlags(song.systemFlags[system]);
disCont[system].setRates(got.rate);
isBusy.unlock();
}
void DivEngine::setSongRate(int hz, bool pal) {
isBusy.lock();
song.pal=!pal;
song.hz=hz;
song.customTempo=(song.hz!=50 && song.hz!=60);
for (int i=0; i<song.systemLen; i++) {
// TODO
disCont[i].dispatch->setFlags((!song.pal) || (song.customTempo!=0 && song.hz<53));
disCont[i].setRates(got.rate);
}
divider=60;
if (song.customTempo) {
divider=song.hz;
@ -4804,7 +4807,7 @@ void DivEngine::switchMaster() {
void DivEngine::initDispatch() {
isBusy.lock();
for (int i=0; i<song.systemLen; i++) {
disCont[i].init(song.system[i],this,getChannelCount(song.system[i]),got.rate,(!song.pal) || (song.customTempo!=0 && song.hz<53));
disCont[i].init(song.system[i],this,getChannelCount(song.system[i]),got.rate,song.systemFlags[i]);
disCont[i].setRates(got.rate);
disCont[i].setQuality(lowQuality);
}

View file

@ -451,6 +451,9 @@ class DivEngine {
// go to order
void setOrder(unsigned char order);
// set system flags
void setSysFlags(int system, unsigned int flags);
// set Hz
void setSongRate(int hz, bool pal);

View file

@ -100,8 +100,11 @@ struct DivSong {
// - 1: PAL
// - 2: Dendy
// - SMS/SN76489:
// - bit 0: PAL
// - bit 1-2: noise type
// - bit 0-1: clock rate
// - 0: NTSC (3.58MHz)
// - 1: PAL (3.55MHz)
// - 2: Other (4MHz)
// - bit 2-3: noise type
// - 0: Sega VDP (16-bit noise)
// - 1: real SN76489 (15-bit noise)
// - 2: real SN76489 with Atari-like short noise buzz (15-bit noise)
@ -126,6 +129,7 @@ struct DivSong {
// - 5: 1MHz (Amstrad CPC)
// - 6: 0.89MHz (Sunsoft 5B)
// - 7: 1.67MHz
// - 8: 0.83MHz (Sunsoft 5B on PAL)
// - bit 4-5: chip type (ignored on AY8930)
// - 0: AY-3-8910 or similar
// - 1: YM2149
@ -139,10 +143,10 @@ struct DivSong {
// - 1: 7.15MHz
// - 2: 7.09MHz
// - Amiga:
// - bit 0-1: clock rate
// - bit 0: clock rate
// - 0: 7.15MHz (NTSC)
// - 1: 7.09MHz (PAL)
// - bit 2: model
// - bit 1: model
// - 0: Amiga 500
// - 1: Amiga 1200
unsigned int systemFlags[32];