mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-16 01:35:07 +00:00
Fix 1701 command for AYPCM
This commit is contained in:
parent
02e87236ce
commit
3761383f8d
3 changed files with 12 additions and 4 deletions
|
@ -441,12 +441,14 @@ int DivPlatformAY8910::dispatch(DivCommand c) {
|
||||||
}
|
}
|
||||||
chan[c.chan].dac.pos=0;
|
chan[c.chan].dac.pos=0;
|
||||||
chan[c.chan].dac.period=0;
|
chan[c.chan].dac.period=0;
|
||||||
chan[c.chan].dac.rate=parent->getSample(chan[c.chan].dac.sample)->rate*2048;
|
chan[c.chan].dac.rate=parent->getSample(chan[c.chan].dac.sample)->rate;
|
||||||
if (dumpWrites) {
|
if (dumpWrites) {
|
||||||
rWrite(0x08+c.chan,0);
|
rWrite(0x08+c.chan,0);
|
||||||
addWrite(0xffff0001+(c.chan<<8),chan[c.chan].dac.rate);
|
addWrite(0xffff0001+(c.chan<<8),chan[c.chan].dac.rate);
|
||||||
}
|
}
|
||||||
chan[c.chan].dac.furnaceDAC=false;
|
chan[c.chan].dac.furnaceDAC=false;
|
||||||
|
chan[c.chan].active=true;
|
||||||
|
//chan[c.chan].keyOn=true;
|
||||||
}
|
}
|
||||||
chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac;
|
chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -442,12 +442,14 @@ int DivPlatformAY8930::dispatch(DivCommand c) {
|
||||||
}
|
}
|
||||||
chan[c.chan].dac.pos=0;
|
chan[c.chan].dac.pos=0;
|
||||||
chan[c.chan].dac.period=0;
|
chan[c.chan].dac.period=0;
|
||||||
chan[c.chan].dac.rate=parent->getSample(chan[c.chan].dac.sample)->rate*4096;
|
chan[c.chan].dac.rate=parent->getSample(chan[c.chan].dac.sample)->rate;
|
||||||
if (dumpWrites) {
|
if (dumpWrites) {
|
||||||
rWrite(0x08+c.chan,0);
|
rWrite(0x08+c.chan,0);
|
||||||
addWrite(0xffff0001+(c.chan<<8),chan[c.chan].dac.rate);
|
addWrite(0xffff0001+(c.chan<<8),chan[c.chan].dac.rate);
|
||||||
}
|
}
|
||||||
chan[c.chan].dac.furnaceDAC=false;
|
chan[c.chan].dac.furnaceDAC=false;
|
||||||
|
chan[c.chan].active=true;
|
||||||
|
//chan[c.chan].keyOn=true;
|
||||||
}
|
}
|
||||||
chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac;
|
chan[c.chan].curPSGMode.dac=chan[c.chan].nextPSGMode.dac;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -422,6 +422,10 @@ void DivEngine::registerSystems() {
|
||||||
|
|
||||||
// Common effect handler maps
|
// Common effect handler maps
|
||||||
|
|
||||||
|
EffectHandlerMap ayPreEffectHandlerMap={
|
||||||
|
{0x17, {DIV_CMD_SAMPLE_MODE, "17xx: Toggle PCM mode"}},
|
||||||
|
};
|
||||||
|
|
||||||
EffectHandlerMap ayPostEffectHandlerMap={
|
EffectHandlerMap ayPostEffectHandlerMap={
|
||||||
{0x20, {DIV_CMD_STD_NOISE_MODE, "20xx: Set channel mode (bit 0: square; bit 1: noise; bit 2: envelope)"}},
|
{0x20, {DIV_CMD_STD_NOISE_MODE, "20xx: Set channel mode (bit 0: square; bit 1: noise; bit 2: envelope)"}},
|
||||||
{0x21, {DIV_CMD_STD_NOISE_FREQ, "21xx: Set noise frequency (0 to 1F)"}},
|
{0x21, {DIV_CMD_STD_NOISE_FREQ, "21xx: Set noise frequency (0 to 1F)"}},
|
||||||
|
@ -771,7 +775,7 @@ void DivEngine::registerSystems() {
|
||||||
{DIV_CH_PULSE, DIV_CH_PULSE, DIV_CH_PULSE},
|
{DIV_CH_PULSE, DIV_CH_PULSE, DIV_CH_PULSE},
|
||||||
{DIV_INS_AY, DIV_INS_AY, DIV_INS_AY},
|
{DIV_INS_AY, DIV_INS_AY, DIV_INS_AY},
|
||||||
{},
|
{},
|
||||||
{},
|
ayPreEffectHandlerMap,
|
||||||
ayPostEffectHandlerMap
|
ayPostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -851,7 +855,7 @@ void DivEngine::registerSystems() {
|
||||||
{DIV_CH_PULSE, DIV_CH_PULSE, DIV_CH_PULSE},
|
{DIV_CH_PULSE, DIV_CH_PULSE, DIV_CH_PULSE},
|
||||||
{DIV_INS_AY8930, DIV_INS_AY8930, DIV_INS_AY8930},
|
{DIV_INS_AY8930, DIV_INS_AY8930, DIV_INS_AY8930},
|
||||||
{},
|
{},
|
||||||
{},
|
ayPreEffectHandlerMap,
|
||||||
ay8930PostEffectHandlerMap
|
ay8930PostEffectHandlerMap
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue