Skip to content

Commit d7b9189

Browse files
author
kumatan
committed
TAG712 2023/11/26 2nd
OPM系:チップに余計なデータを送信するケースが存在したのを修正
1 parent 085afe1 commit d7b9189

File tree

9 files changed

+31
-10
lines changed

9 files changed

+31
-10
lines changed

YM2609.txt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ Virtual Instrument YM2609(Register Map)
33

44
Port 0 Port 1 Port 2 Port 3
55
__________________ __________________ __________________ __________________
6-
$00 | SSG1 | $00 | ADPCM-A1 | $00 | SSG3 | $00 | ADPCM-A2 |
6+
$00 | SSG1 | $00 | ADPCM1 | $00 | SSG3 | $00 | ADPCM2 |
77
| | | | | | | |
88
$0F |__________________| $10 |__________________| $0F |__________________| $10 |__________________|
9-
$10 | Rhythm | $11 | ADPCM-B | $10 | SSG4 | $11 | ADPCM-A3 |
9+
$10 | Rhythm | $11 | ADPCM-A | $10 | SSG4 | $11 | ADPCM3 |
1010
| | | | | | | |
1111
$1F |__________________| $17 |__________________| $1F |__________________| $21 |__________________|
1212
$20 | FM | $20 | SSG2 | $20 | FM | $22 |Sys:Rev.Dep |
@@ -83,7 +83,7 @@ Virtual Instrument YM2609(Register Map)
8383
Wave Data : 0 ~ 15 (Write 64 times)
8484

8585

86-
ADPCM-A1:1.$00 ADPCM-A2:3.$00 ADPCM-A3:3.$11
86+
ADPCM1:1.$00 ADPCM2:3.$00 ADPCM3:3.$11
8787
ADDRESS REGISTER
8888
____ ____________________
8989
| |
@@ -139,8 +139,8 @@ Virtual Instrument YM2609(Register Map)
139139
____ |____________________|
140140

141141
Extend Memory Capacity
142-
ADPCM-A1 :256Kbyte
143-
ADPCM-A2,3:16Mbyte
142+
ADPCM1:256Kbyte
143+
ADPCM2,3:16Mbyte
144144

145145
Write Data (FM)
146146
ADDR. D7 D6 D5 D4 D3 D2 D1 D0 COMMENT
@@ -539,7 +539,7 @@ Virtual Instrument YM2609(Register Map)
539539
Ch.Ins.Effect Sys.Effect
540540
____________ ____________ ____________ ____________ ____________ ____________ ____________
541541
| | | | | | | Ch.Ins. | | | | 3 band EQ | | Sys. |
542-
| Distortion | --> | Chorus | --> | LPF > HPF | --> | Compressor | -+-> | Reverb | --> | l > m > h | --> | Compressor |
542+
| Distorsion | --> | Chorus | --> | LPF > HPF | --> | Compressor | -+-> | Reverb | --> | l > m > h | --> | Compressor |
543543
|____________| |____________| |____________| |____________| | |____________| |____________| |____________|
544544
.
545545
. other Ch.Ins.Effect

mml2vgm/CHANGE.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
�X�V����
2+
TAG712 2023/11/26 2nd
3+
OPM�n:�`�b�v�ɗ]�v�ȃf�[�^�𑗐M����P�[�X�����݂����̂��C��
4+
25
TAG711 2023/11/26
36
�d�v!!->Core:OPNA/OPNB/OPNA2:ADPCM�̊�����ύX
47
mucom�����̏C���ɂȂ�܂��B
512 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

mml2vgm/mml2vgmIDEx64/ChipRegister.cs

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
using SoundManager;
66
using System;
77
using System.Collections.Generic;
8+
using System.Diagnostics;
89

910
namespace mml2vgmIDE
1011
{
@@ -4445,6 +4446,7 @@ private void YM2151WriteRegisterControl(Chip Chip, EnmDataType type, int address
44454446
{
44464447
if (type == EnmDataType.Normal)
44474448
{
4449+
if (address == -1) return;
44484450
if (Chip.Model == EnmVRModel.VirtualModel)
44494451
{
44504452
if (!ctYM2151[Chip.Number].UseScci)
@@ -4496,16 +4498,32 @@ private void YM2151WriteRegisterControl(Chip Chip, EnmDataType type, int address
44964498
PackData[] pdata = (PackData[])exData;
44974499
if (Chip.Model == EnmVRModel.VirtualModel)
44984500
{
4499-
if (ctYM2151[Chip.Number].UseEmu) foreach (PackData dat in pdata) mds.WriteYM2151(Chip.Index, (byte)dat.Chip.Number, (byte)dat.Address, (byte)dat.Data);
4500-
if (ctYM2151[Chip.Number].UseEmu2) foreach (PackData dat in pdata) mds.WriteYM2151mame(Chip.Index, (byte)dat.Chip.Number, (byte)dat.Address, (byte)dat.Data);
4501-
if (ctYM2151[Chip.Number].UseEmu3) foreach (PackData dat in pdata) mds.WriteYM2151x68sound(Chip.Index, (byte)dat.Chip.Number, (byte)dat.Address, (byte)dat.Data);
4501+
if (ctYM2151[Chip.Number].UseEmu)
4502+
foreach (PackData dat in pdata)
4503+
{
4504+
if (dat.Address != -1)
4505+
mds.WriteYM2151(Chip.Index, (byte)dat.Chip.Number, (byte)dat.Address, (byte)dat.Data);
4506+
}
4507+
if (ctYM2151[Chip.Number].UseEmu2)
4508+
foreach (PackData dat in pdata)
4509+
{
4510+
if (dat.Address != -1)
4511+
mds.WriteYM2151mame(Chip.Index, (byte)dat.Chip.Number, (byte)dat.Address, (byte)dat.Data);
4512+
}
4513+
if (ctYM2151[Chip.Number].UseEmu3)
4514+
foreach (PackData dat in pdata)
4515+
{
4516+
if (dat.Address != -1)
4517+
mds.WriteYM2151x68sound(Chip.Index, (byte)dat.Chip.Number, (byte)dat.Address, (byte)dat.Data);
4518+
}
45024519
}
45034520
if (Chip.Model == EnmVRModel.RealModel)
45044521
{
45054522
if (scYM2151[Chip.Number] != null)
45064523
{
45074524
foreach (PackData dat in pdata)
4508-
scYM2151[Chip.Number].setRegister(dat.Address, dat.Data);
4525+
if (dat.Address != -1)
4526+
scYM2151[Chip.Number].setRegister(dat.Address, dat.Data);
45094527
}
45104528
}
45114529
}
512 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.
0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)