kuma4649 / mml2vgm

GNU General Public License v3.0
105 stars 10 forks source link

AY8910 identification #110

Closed ultrasound1372 closed 3 years ago

ultrasound1372 commented 3 years ago

AY 3-8910のVGMライターにバグがあります。 foobar2000のVGMPlayによると、チップのサブタイプはAY8930と確認されています。 AY8930はピンアウトやレジスタマップが非常に異なっており、VGMプレイヤーの中には、AY8930をエミュレートしていないか、あるいはエミュレートしていても互換モードで起動していないために、これらのファイルを正しく再生できないものがあるかもしれません。 これは、クロック周波数の一部として置かれるフラグを変更することで解決できると思います。 また、曲情報の部分では、AY3-8910をYM2149に変えて、クロックスピードとエンベロープの分解能を2倍にした設定をリクエストしています。 これにより、エンベロープの動作が速くなり、Atari STの音楽に含まれる低音をより簡単に再現することができます。

kuma4649 commented 3 years ago

AYのチップのタイプ設定が適切ではないということでよろしいでしょうか

ultrasound1372 commented 3 years ago

VGM仕様のオフセット0x78のAYTフィールドは、vgmripsによると以下の値が定義されています。

value meaning
0x00 AY8910
0x01 AY8912
0x02 AY8913
0x03 AY8930
0x10 YM2149
0x11 YM3439
0x12 YMZ284
0x13 YMZ294

つまり、通常のAY3-8910を適切に示すためには、このフィールドに$00を入れ、YM2149を示すためには、このフィールドに$10を入れます。

kuma4649 commented 3 years ago

つまり、 AYの種類をmml2vgmで指定できる機能が欲しい という事でしょうか?

ultrasound1372 commented 3 years ago

Yes, that is the request.

kuma4649 commented 3 years ago

「FNUM_AY8910.txt」の以下を編集することで変更可能です。 チップタイプを変更する場合は 「CHIPTYPE」 の数値を変更します。 初期値は$03で、AY8913になってます。 (次回のバージョンで$00に変更します。)

ultrasound1372 commented 3 years ago

これらのファイルはmvc.exeから参照されているのでしょうか? それともコンパイルされているのか?

kuma4649 commented 3 years ago

コンパイル時にmvcが参照するテーブルになります