シンセサイザーDX7IID、TX802のシステムROMを解析して、YM2604(OPS2)およびYM3609(EGM)のレジスタの調査を行った。 (2016.2.16)
第二世代の6オペレータFMチップは複数のパートで異なる音色設定が可能である。 LFOはPM,AMともにチャンネルごとに設定可能に変わった。
EGMはEGSからレジスタ数が減った代わりに、チャンネルやオペレータを指定するレジスタが新設されている。
下記のとおり、1パート/2パート/8パートのモードが存在し、各モードに特化して16ch/8ch/2chに一度に書き込む仕組みとなっている。16chそれぞれに独立した音色設定ができるのではないようだ。
ボイスモード | パート数 | 音色設定 |
---|---|---|
シングルボイス | 1 | 第1〜16チャンネルが共通の音色設定 |
デュアルボイス スプリットボイス | 2 | 第1〜8、第9〜16チャンネルがそれぞれ共通の音色設定 |
TX802 8パート | 8 | 2チャンネルずつ共通の音色設定 |
EGM
R | bit | content |
---|---|---|
00 | xxRR_RRRR | EG R1 |
01 | xxRR_RRRR | EG R2 |
02 | xxRR_RRRR | EG R3 |
03 | xxRR_RRRR | EG R4 |
04 | xxLL_LLLL | EG L1 |
05 | xxLL_LLLL | EG L2 |
06 | xxLL_LLLL | EG L3 |
07 | xxLL_LLLL | EG L4 |
08 | FFFF_FFFF | Freq H |
09 | FFFF_FFFM | Freq L | Freq Mode |
0A | xxxx_DDDD | Detune |
0B | xCAA_AKKK | Carrier | AMS | KRS |
0C | not used | |
0D | not used | |
0E | xxxx_xOOO | Op Selector |
0F | SSCC_CCCC | OSC SYNC | Ch Group Selector |
10 | LLLL_LLLL | Op6 OL |
11 | LLLL_LLLL | Op5 OL |
12 | LLLL_LLLL | Op4 OL |
13 | LLLL_LLLL | Op3 OL |
14 | LLLL_LLLL | Op2 OL |
15 | LLLL_LLLL | Op1 OL |
16 | x1CC_CCSS | Key On/Off (Channel | State) |
17 | xxxx_CCCC | Ch Selector |
18 | PPPP_PPPP | Pitch H |
19 | PPPP_PPxx | Pitch L |
1A | PPPP_PPPP | LFO PM H |
1B | PPPP_PPPP | LFO PM L |
1C | AAAA_AAAA | LFO AM H |
1D | AAAA_AAAA | LFO AM L |
1E | not used | |
1F | not used |
OPS2
R | bit | content |
---|---|---|
00 | xxCC_CCCC | Ch Group Selector |
01 | AAAA_AFFF | Algorithm | Feedback Level |
EGSと異なるレジスタのみ説明する。
R00〜R0Fは音色設定が共通のパートで設定が共有されるレジスタである。 R10〜R1Fは16チャンネルそれぞれに異なる設定が可能なレジスタである。
R00〜R0Dのレジスタにより設定するパラメータについては、R0F、R0Eで設定したチャンネル、オペレータが対象となる。
R10-R15、R18-R1Fのレジスタにより設定するパラメータについては、R17で設定したチャンネルが対象となる。
Bit Format : xxxx_xOOO
bit2〜bit0により、R00〜R0Dの設定対象オペレータを指定する。Bit Format : SSCC_CCCC
bit7,6により、キーオン時に各オシレータの位相をリセットするか否かを指定する。
bit7,6の値が0,1では同期(リセットする)となり、値1,0では非同期(リセットしない)となる。旧チップではOPS側にあったレジスタだが、EGM側に移動している。
bit5〜bit0により、R00〜R0Dの設定対象チャンネルグループを指定する。
全チャンネルで音色設定を共通とするシングルボイスでは$30を与えていた。第1〜8ch、第9〜16chを異なる音色設定にするデュアルボイス、スプリットボイスではボイスAには$20、ボイスBには$28を与えていた。
また、8パート別々の音色設定を行うTX802では$00+c(c:0〜7)を与えていた。
Bit Format : xCAA_AKKK
AMSが2bitから3bitへ拡張されている。
キャリアのオペレータではbit6に1をセットしていた。EGM内部でキャリアとモジュレータとで何らかの違う処理を行う必要があったが、EGM側ではどのアルゴリズムが設定されているかわからないために、このビットが新設されたと推測する。
Bit Format : xxxx_CCCC
bit3〜bit0により、R10〜R15、R18〜R1F(アプトプットレベル、キーコード、LFO)の設定対象チャンネルを指定する。値は$0〜$f。
Bit Format : x1CC_CCSS
チャンネルのキーオン/キーオフを行う。 bit6は1がセットされる。 bit5〜bit2によりチャンネル番号を指定し、bit1,0でキーの状態を指定する。
キーの状態の値は次のとおり。EGMではエンベロープの位相をリセットする機能が追加されている。 3: key on 2: key off 1: EGのリセット
EG forced damping onの場合には、key onの書き込みの後でさらにEGのリセットが行われていた。
8bitから16bitに拡張されている。
レジスタR01(アルゴリズム、フィードバック)の設定対象を指定する。R00とR01に1回だけ書き込みを行えば、音色が共通のチャンネルに反映される。
全チャンネルを同じ音色設定にするシングルボイスでは$30が書き込まれていた。第1〜8ch、第9〜16chを異なる音色設定にするデュアルボイス、スプリットボイスではボイスAには$37、ボイスBには$3fが書き込まれていた。
8パート別々の音色設定を行うTX802では$20+c(c:0〜7)が書き込まれていた。
OPS2にはSH0、SH1の出力ピンがあり、16チャンネル×AB2出力分のデジタル信号が時分割で出力される模様。旧チップにもSH0、SH1があり、ステレオ出力に対応していたと考えられる。
DX7IIでは、OPS2の後段の回路によりA/Bの出力がミキシングされる。 また、A/BそれぞれにVCA回路が接続され、各出力レベルを制御することにより、多段階のパンが実現されている。
TX802では、OPS2のCS1、CS2、CS3の出力ピンの信号が後段の回路に接続されている(DX7IIではこれらは非接続)。この信号に同期することにより、8パートの出力信号を個別に取り出している。さらに各パートをI、IIの2出力の片方または両方にミキシングしている。
EGS/OPSでも同様であるが、4-Op系のチップとは異なり、レジスタ書き込みのビジーチェックは必要ないらしい。ステータスを見ずに連続して書き込みが行われていた。
また、EGMではアドレスピンがA0〜A4とレジスタの個数分出ているため、CPUから1バイトのライトで1レジスタの書き込みが完了する。Store Dのような16bitのメモリアクセス命令1個で、隣接する2レジスタの書き込みも行われていた。EGSも同様である。
これに対し4-Op系のチップでは、(1)ビジーチェック(2)レジスタ番号の書き込み(3)データの書き込み、というステップが1レジスタの書き込みに必要である。