diff --git a/src/engine/platform/tia.cpp b/src/engine/platform/tia.cpp index 9bab0b4e..25d408ab 100644 --- a/src/engine/platform/tia.cpp +++ b/src/engine/platform/tia.cpp @@ -183,6 +183,11 @@ int DivPlatformTIA::dispatch(DivCommand c) { chan[c.chan].freqChanged=true; break; } + case DIV_CMD_WAVE: + chan[c.chan].shape=c.value&15; + rWrite(0x15+c.chan,chan[c.chan].shape); + chan[c.chan].freqChanged=true; + break; case DIV_ALWAYS_SET_VOLUME: return 0; break; diff --git a/src/engine/playback.cpp b/src/engine/playback.cpp index 47f1df38..91edd97b 100644 --- a/src/engine/playback.cpp +++ b/src/engine/playback.cpp @@ -374,6 +374,13 @@ bool DivEngine::perSystemPostEffect(int ch, unsigned char effect, unsigned char break; } break; + case DIV_SYSTEM_TIA: + switch (effect) { + case 0x10: // select waveform + dispatchCmd(DivCommand(DIV_CMD_WAVE,ch,effectVal)); + break; + } + break; default: return false; }