mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-15 17:25:06 +00:00
AY8930: add TEST register effect
This commit is contained in:
parent
2d6a3b93d8
commit
6d1d91ca68
3 changed files with 11 additions and 0 deletions
|
@ -427,6 +427,7 @@ int DivPlatformAY8910::dispatch(DivCommand c) {
|
||||||
chan[c.chan].freqChanged=true;
|
chan[c.chan].freqChanged=true;
|
||||||
break;
|
break;
|
||||||
case DIV_CMD_AY_IO_WRITE:
|
case DIV_CMD_AY_IO_WRITE:
|
||||||
|
if (c.value==255) break;
|
||||||
if (c.value) { // port B
|
if (c.value) { // port B
|
||||||
ioPortB=true;
|
ioPortB=true;
|
||||||
portBVal=c.value2;
|
portBVal=c.value2;
|
||||||
|
|
|
@ -100,6 +100,9 @@ const char* DivPlatformAY8930::getEffectName(unsigned char effect) {
|
||||||
case 0x29:
|
case 0x29:
|
||||||
return "29xy: Set auto-envelope (x: numerator; y: denominator)";
|
return "29xy: Set auto-envelope (x: numerator; y: denominator)";
|
||||||
break;
|
break;
|
||||||
|
case 0x2d:
|
||||||
|
return "2Dxx: NOT TO BE EMPLOYED BY THE COMPOSER";
|
||||||
|
break;
|
||||||
case 0x2e:
|
case 0x2e:
|
||||||
return "2Exx: Write to I/O port A";
|
return "2Exx: Write to I/O port A";
|
||||||
break;
|
break;
|
||||||
|
@ -446,6 +449,10 @@ int DivPlatformAY8930::dispatch(DivCommand c) {
|
||||||
chan[c.chan].freqChanged=true;
|
chan[c.chan].freqChanged=true;
|
||||||
break;
|
break;
|
||||||
case DIV_CMD_AY_IO_WRITE:
|
case DIV_CMD_AY_IO_WRITE:
|
||||||
|
if (c.value==255) {
|
||||||
|
immWrite(0x1f,c.value2);
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (c.value) { // port B
|
if (c.value) { // port B
|
||||||
ioPortB=true;
|
ioPortB=true;
|
||||||
portBVal=c.value2;
|
portBVal=c.value2;
|
||||||
|
|
|
@ -730,6 +730,9 @@ bool DivEngine::perSystemPostEffect(int ch, unsigned char effect, unsigned char
|
||||||
case 0x29: // auto-envelope
|
case 0x29: // auto-envelope
|
||||||
dispatchCmd(DivCommand(DIV_CMD_AY_AUTO_ENVELOPE,ch,effectVal));
|
dispatchCmd(DivCommand(DIV_CMD_AY_AUTO_ENVELOPE,ch,effectVal));
|
||||||
break;
|
break;
|
||||||
|
case 0x2d: // TEST
|
||||||
|
dispatchCmd(DivCommand(DIV_CMD_AY_IO_WRITE,ch,255,effectVal));
|
||||||
|
break;
|
||||||
case 0x2e: // I/O port A
|
case 0x2e: // I/O port A
|
||||||
dispatchCmd(DivCommand(DIV_CMD_AY_IO_WRITE,ch,0,effectVal));
|
dispatchCmd(DivCommand(DIV_CMD_AY_IO_WRITE,ch,0,effectVal));
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue