Some AY-3-8910, AY8930 enhancements

Fix AY PSG clock divider function when exists, Update emulation core (MAME AY PSG and compatibles - includes noise routine updates)
Fix configuration flag, Add MSX Darky sound expander to preset

Clock divider isn't affected to expanded mode's tone and noise generator?
This commit is contained in:
cam900 2022-05-04 23:04:20 +09:00
parent 28e7b86728
commit 4f1ebc3b6e
8 changed files with 178 additions and 122 deletions

View file

@ -27,7 +27,7 @@
#define rWrite(a,v) if (!skipRegisterWrites) {pendingWrites[a]=v;}
#define immWrite(a,v) if (!skipRegisterWrites) {writes.emplace(regRemap(a),v); if (dumpWrites) {addWrite(regRemap(a),v);} }
#define CHIP_DIVIDER 8
#define CHIP_DIVIDER ((sunsoft||clockSel)?16:8)
const char* regCheatSheetAY[]={
"FreqL_A", "0",
@ -589,6 +589,7 @@ void DivPlatformAY8910::poke(std::vector<DivRegWrite>& wlist) {
}
void DivPlatformAY8910::setFlags(unsigned int flags) {
clockSel=(flags>>7)&1;
switch (flags&15) {
case 1:
chipClock=COLOR_PAL*2.0/5.0;
@ -620,6 +621,12 @@ void DivPlatformAY8910::setFlags(unsigned int flags) {
case 10:
chipClock=2097152;
break;
case 11:
chipClock=COLOR_NTSC;
break;
case 12:
chipClock=3600000;
break;
default:
chipClock=COLOR_NTSC/2.0;
break;
@ -653,8 +660,9 @@ void DivPlatformAY8910::setFlags(unsigned int flags) {
break;
}
ay->device_start();
ay->set_clock_sel(clockSel);
stereo=flags>>6;
stereo=(flags>>6)&1;
}
int DivPlatformAY8910::init(DivEngine* p, int channels, int sugRate, unsigned int flags) {