Fix ADPCM-A playback

Add per-chip debug function
Add YM2203, YM2608, YM2610/B debug window
Extend YM2612 debug window
Remove unnecessary values in YM2151, Sega PCM platform
This commit is contained in:
cam900 2022-09-23 23:24:02 +09:00
parent 764ae60740
commit cf1d4e55cf
58 changed files with 726 additions and 91 deletions

View file

@ -484,16 +484,16 @@ void DivPlatformYM2610::tick(bool sysTick) {
if (!isMuted[i] && (chan[i].std.vol.had || chan[i].std.panL.had)) {
immWrite(0x108+(i-adpcmAChanOffs),isMuted[i]?0:((chan[i].pan<<6)|chan[i].outVol));
}
if (chan[i].keyOff) {
writeADPCMAOff|=(1<<(i-adpcmAChanOffs));
chan[i].keyOff=false;
}
if (chan[i].keyOn) {
if (chan[i].sample>=0 && chan[i].sample<parent->song.sampleLen) {
writeADPCMAOn|=(1<<(i-adpcmAChanOffs));
}
chan[i].keyOn=false;
}
if (chan[i].keyOff) {
writeADPCMAOff|=(1<<(i-adpcmAChanOffs));
chan[i].keyOff=false;
}
if (chan[i].keyOn) {
if (chan[i].sample>=0 && chan[i].sample<parent->song.sampleLen) {
writeADPCMAOn|=(1<<(i-adpcmAChanOffs));
}
chan[i].keyOn=false;
}
}
// ADPCM-B
@ -1246,7 +1246,7 @@ void DivPlatformYM2610::reset() {
immWrite(0x22,0x08);
// PCM volume
immWrite(0x101,0x3f); // A
immWrite(0x101,globalADPCMAVolume); // A
immWrite(0x1b,0xff); // B
}
@ -1259,7 +1259,7 @@ bool DivPlatformYM2610::keyOffAffectsArp(int ch) {
}
void DivPlatformYM2610::notifyInsChange(int ins) {
for (int i=0; i<14; i++) {
for (int i=0; i<chanNum; i++) {
if (chan[i].ins==ins) {
chan[i].insChanged=true;
}