Skip to content

Commit

Permalink
STBL464 2024/08/28
Browse files Browse the repository at this point in the history
  OPN:鍵盤:FM3Ch:Shiftを押しながらクリックするとOP毎のミュートが出来るようにした。
  OPN2:鍵盤:FM3Ch:バグってたので修正。
  • Loading branch information
kumatan committed Aug 28, 2024
1 parent 72c6466 commit 2919078
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 20 deletions.
4 changes: 4 additions & 0 deletions CHANGE.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
�X�V����
STBL464 2024/08/28
OPN:����:FM3Ch:Shift�������Ȃ���N���b�N�����OP���̃~���[�g���o����悤�ɂ����B
OPN2:����:FM3Ch:�o�O���Ă��̂ŏC���B

STBL463 2024/08/25 4th
OPN2:����:FM3Ch:Shift�������Ȃ���N���b�N�����OP���̃~���[�g���o����悤�ɂ����B

Expand Down
Binary file not shown.
2 changes: 1 addition & 1 deletion MDPlayer/MDPlayer_InstKit/02info.nsh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
!define NAME "MDPlayer"
!define VERSION "STBL462"
!define VERSION "STBL463"
!define PUBLISHER "Kumata"
!define PACKAGE "${NAME} ${VERSION}"
18 changes: 16 additions & 2 deletions MDPlayer/MDPlayerx64/ChipRegister.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2289,7 +2289,15 @@ public void setYM2203Register(int chipID, int dAddr, int dData, EnmModel model)
if ((algM[al] & (1 << slot)) != 0)
{
dData = Math.Min(dData + nowYM2203FadeoutVol[chipID], 127);
dData = maskFMChYM2203[chipID][ch] ? 127 : dData;
int c = ch;
if (ch == 2)
{
//FM Ch3 の場合はスロット毎にマスクフラグチェック
c = 2;
if (slot != 0) c = 5 + opN[slot];
}
//マスクフラグチェック(ONの場合はTLを127に変更)
dData = maskFMChYM2203[chipID][c] ? 127 : dData;
}
}
}
Expand Down Expand Up @@ -4655,8 +4663,9 @@ public void setMaskYM2203(int chipID, int ch, bool mask, bool noSend = false)
if (noSend) return;

int c = ch;
if (ch < 3)
if (ch < 3 || ch > 5)
{
if (ch > 5) c = 2;
setYM2203Register((byte)chipID, 0x40 + c, fmRegisterYM2203[chipID][0x40 + c], EnmModel.VirtualModel);
setYM2203Register((byte)chipID, 0x44 + c, fmRegisterYM2203[chipID][0x44 + c], EnmModel.VirtualModel);
setYM2203Register((byte)chipID, 0x48 + c, fmRegisterYM2203[chipID][0x48 + c], EnmModel.VirtualModel);
Expand Down Expand Up @@ -4875,6 +4884,11 @@ public void setMaskYM2612(int chipID, int ch, bool mask)

int c = (ch < 3) ? ch : (ch - 3);
int p = (ch < 3) ? 0 : 1;
if (c > 5)
{
c = 2;
p = 0;
}

setYM2612Register((byte)chipID, p, 0x40 + c, fmRegisterYM2612[chipID][p][0x40 + c], EnmModel.VirtualModel, -1);
setYM2612Register((byte)chipID, p, 0x44 + c, fmRegisterYM2612[chipID][p][0x44 + c], EnmModel.VirtualModel, -1);
Expand Down
33 changes: 32 additions & 1 deletion MDPlayer/MDPlayerx64/form/KB/OPN/frmYM2203.cs
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,7 @@ private void pbScreen_MouseClick(object sender, MouseEventArgs e)
//但しchをクリックした場合はマスク反転
if (px < 8)
{
for (int ch = 0; ch < 6; ch++)
for (int ch = 0; ch < 9; ch++)
{
if (newParam.channels[ch].mask == true)
parent.ResetChannelMask(EnmChip.YM2203, chipID, ch);
Expand All @@ -444,6 +444,37 @@ private void pbScreen_MouseClick(object sender, MouseEventArgs e)

if (e.Button == MouseButtons.Left)
{
//FM Ch3専用マスク判定処理
if (ch == 2 || ch == 6 || ch == 7 || ch == 8)
{
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)
{
//マスク
if (newParam.channels[ch].mask == true)
parent.ResetChannelMask(EnmChip.YM2203, chipID, ch);
else
parent.SetChannelMask(EnmChip.YM2203, chipID, ch);
return;
}

//マスク
if (newParam.channels[ch].mask == true)
{
parent.ResetChannelMask(EnmChip.YM2203, chipID, 2);
parent.ResetChannelMask(EnmChip.YM2203, chipID, 6);
parent.ResetChannelMask(EnmChip.YM2203, chipID, 7);
parent.ResetChannelMask(EnmChip.YM2203, chipID, 8);
}
else
{
parent.SetChannelMask(EnmChip.YM2203, chipID, 2);
parent.SetChannelMask(EnmChip.YM2203, chipID, 6);
parent.SetChannelMask(EnmChip.YM2203, chipID, 7);
parent.SetChannelMask(EnmChip.YM2203, chipID, 8);
}
return;
}

//マスク
if (newParam.channels[ch].mask == true)
parent.ResetChannelMask(EnmChip.YM2203, chipID, ch);
Expand Down
32 changes: 16 additions & 16 deletions MDPlayer/MDPlayerx64/form/SYS/frmMain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8962,14 +8962,14 @@ public void SetChannelMask(EnmChip chip, int chipID, int ch)
Audio.SetYM2203Mask(chipID, ch);
newParam.ym2203[chipID].channels[ch].mask = true;

//FM(2ch) FMex
if ((ch == 2) || (ch >= 6 && ch < 9))
{
newParam.ym2203[chipID].channels[2].mask = true;
newParam.ym2203[chipID].channels[6].mask = true;
newParam.ym2203[chipID].channels[7].mask = true;
newParam.ym2203[chipID].channels[8].mask = true;
}
////FM(2ch) FMex
//if ((ch == 2) || (ch >= 6 && ch < 9))
//{
// newParam.ym2203[chipID].channels[2].mask = true;
// newParam.ym2203[chipID].channels[6].mask = true;
// newParam.ym2203[chipID].channels[7].mask = true;
// newParam.ym2203[chipID].channels[8].mask = true;
//}
}
break;
case EnmChip.YM2413:
Expand Down Expand Up @@ -9440,14 +9440,14 @@ public void ResetChannelMask(EnmChip chip, int chipID, int ch)
Audio.ResetYM2203Mask(chipID, ch);
newParam.ym2203[chipID].channels[ch].mask = false;

//FM(2ch) FMex
if ((ch == 2) || (ch >= 6 && ch < 9))
{
newParam.ym2203[chipID].channels[2].mask = false;
newParam.ym2203[chipID].channels[6].mask = false;
newParam.ym2203[chipID].channels[7].mask = false;
newParam.ym2203[chipID].channels[8].mask = false;
}
////FM(2ch) FMex
//if ((ch == 2) || (ch >= 6 && ch < 9))
//{
// newParam.ym2203[chipID].channels[2].mask = false;
// newParam.ym2203[chipID].channels[6].mask = false;
// newParam.ym2203[chipID].channels[7].mask = false;
// newParam.ym2203[chipID].channels[8].mask = false;
//}
}
break;
case EnmChip.YM2413:
Expand Down

0 comments on commit 2919078

Please sign in to comment.