From 0f0c8b5567e8d531c51507d96c668e0cccc14b54 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Thu, 13 Oct 2022 03:30:05 -0500 Subject: [PATCH] Virtual Boy: noise length macro --- src/engine/platform/vb.cpp | 7 +++++++ src/gui/insEdit.cpp | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/engine/platform/vb.cpp b/src/engine/platform/vb.cpp index 29ff6a934..941f72eba 100644 --- a/src/engine/platform/vb.cpp +++ b/src/engine/platform/vb.cpp @@ -148,6 +148,13 @@ void DivPlatformVB::tick(bool sysTick) { } chan[i].freqChanged=true; } + if (i==5 && chan[i].std.duty.had) { + if ((chan[i].std.duty.val&7)!=((chan[i].envHigh>>4)&7)) { + chan[i].envHigh&=~0x70; + chan[i].envHigh|=(chan[i].std.duty.val&7)<<4; + writeEnv(i,true); + } + } if (chan[i].std.wave.had) { if (chan[i].wave!=chan[i].std.wave.val || chan[i].ws.activeChanged()) { chan[i].wave=chan[i].std.wave.val; diff --git a/src/gui/insEdit.cpp b/src/gui/insEdit.cpp index 0f0d0d7ff..6b98ba71a 100644 --- a/src/gui/insEdit.cpp +++ b/src/gui/insEdit.cpp @@ -4702,9 +4702,13 @@ void FurnaceGUI::drawInsEdit() { } if (ins->type==DIV_INS_TIA || ins->type==DIV_INS_AMIGA || ins->type==DIV_INS_SCC || ins->type==DIV_INS_PET || ins->type==DIV_INS_VIC || ins->type==DIV_INS_SEGAPCM || - ins->type==DIV_INS_FM || ins->type==DIV_INS_VBOY) { + ins->type==DIV_INS_FM) { dutyMax=0; } + if (ins->type==DIV_INS_VBOY) { + dutyLabel="Noise Length"; + dutyMax=7; + } if (ins->type==DIV_INS_PCE || ins->type==DIV_INS_NAMCO) { dutyLabel="Noise"; dutyMax=(ins->type==DIV_INS_PCE && !ins->amiga.useSample)?1:0;