diff --git a/src/engine/platform/t6w28.cpp b/src/engine/platform/t6w28.cpp index 5361ce9c0..0abb39fa0 100644 --- a/src/engine/platform/t6w28.cpp +++ b/src/engine/platform/t6w28.cpp @@ -98,7 +98,7 @@ void DivPlatformT6W28::tick(bool sysTick) { } if (i==3 && chan[i].std.duty.had) { if (chan[i].duty!=chan[i].std.duty.val) { - chan[i].duty=chan[i].std.duty.val&7; + chan[i].duty=((chan[i].std.duty.val==1)?4:0)|3; rWrite(1,0xe0+chan[i].duty); } } @@ -221,7 +221,7 @@ int DivPlatformT6W28::dispatch(DivCommand c) { } case DIV_CMD_STD_NOISE_MODE: if (c.chan!=3) break; - chan[c.chan].duty=(((c.value&15)==1)?4:0)|((c.value>>4)&3); + chan[c.chan].duty=(((c.value&15)==1)?4:0)|3; rWrite(1,0xe0+chan[c.chan].duty); break; case DIV_CMD_PANNING: { diff --git a/src/engine/sysDef.cpp b/src/engine/sysDef.cpp index 025b64d60..c0006061c 100644 --- a/src/engine/sysDef.cpp +++ b/src/engine/sysDef.cpp @@ -1664,7 +1664,7 @@ void DivEngine::registerSystems() { {DIV_INS_T6W28, DIV_INS_T6W28, DIV_INS_T6W28, DIV_INS_T6W28}, {}, { - {0x20, {DIV_CMD_STD_NOISE_MODE, "20xy: Set noise mode (x: 0-2 for preset, 3 for tonal; y: thin pulse/noise)"}} + {0x20, {DIV_CMD_STD_NOISE_MODE, "20xx: Set noise length (0: short, 1: long)"}} } ); diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 6b98ba71a..a01a3414a 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4694,8 +4694,8 @@ void FurnaceGUI::drawInsEdit() { dutyMax=255; } if (ins->type==DIV_INS_T6W28) { - dutyLabel="Noise Type/Freq"; - dutyMax=7; + dutyLabel="Noise Type"; + dutyMax=1; } if (ins->type==DIV_INS_AY8930) { dutyMax=ins->amiga.useSample?0:255;