VGS-Zero で NSF(ファミコン形式の音声)の再生に対応

VGS-ZeroカーネルでNSF(NES Sound Format)形式のBGMの再生をサポートしてみました。

従来のVGS(Video Game Sound)形式のサポートも継続していて、追加の音源フォーマットとしてファミコン音源に対応してみた形です。

なお、拡張音源はVRC6(KONAMIのSCC相当の波形メモリ音源)だけサポートしていて、VRC7(OPLLのFM音源)、FME7(AY-3-8910のPSG音源)、MMC5(拡張メモリマッパー)、FDS(ディスクシステム音源)、N106(ナムコ波形メモリ音源)については非対応です。

大半の拡張音源を削除したのは、ラズパイのベアメタル環境(VGS-Zero実機)で動作できるようにするための改修(主に浮動小数点数を用いないようにする処理の大幅な修正)やソースコードのメンテナンスが面倒臭かったというのが主な理由です。

また、今回私が使いたかったのは矩形波2チャンネル+三角波1ch+ノイズ1chのファミコン本体音源(APU)だったので、拡張音源をサポートするモチベーションがあまり高く無かったという私情もあります。

VRC6についても消そうか迷ったのですが、VRC6があればVGS音源相当の楽曲をNSF形式で作ることができるので残しておくことにしました。

NSFをサポートした理由

ファミコン音源に対応した最大の理由は「FamiStudio」というフリーソフトをVGS-Zeroの推奨開発ツールとして推したかったためです。

FamiStudioは「ファミコン音源に特化」したDAW(Digital Audio Workstation)で、以下のようなファミコン音源の楽曲制作が可能です。

VGS音源の楽曲は MML で記述する必要があり、昨今の作曲専業の方々にはやや敷居が高いと思っています。

FamiStudioは、LogicやCubaseなどの有料の(&結構高額な)DAWと比較しても遜色が無い使い心地で、それでいてフリーソフト(無料)なので、FamiStudioを使ってVGS-Zero向けゲームの楽曲制作ができれば便利そうだと思い、VGS-ZeroでNSFをサポートすることにしました。(FamiStudioは創った楽曲をNSF形式でエクスポートすることができます)

LogicはmacOSでしか使うことができず、CubaseはWindowsとmacOSでしか使うことができませんが、FamiStudioならWindows、macOS、Linux、スマホなどで動作できます。(私の現在のメインマシンはLinux)

また、LogicやCubase(特にLogic)と比較して動作がとても軽快だし、Logicだとカジュアルに発生するマシンをハングアップさせるような致命的なバグにも今の所エンカウントしていません。

アップデート可能なソフトウェアである以上、将来的なデグレードリスクはどのDAWにも存在しますが、FamiStudioはOSSなので、自分にとって一番都合が良いバージョンを使い続ける選択肢があること(古いバージョンを使い続ける権利)も割と重要です。

「古いバージョンを使い続ける権利」はCubaseにはありますが、Logicには(基本的には)ありません。

OSSなのでソースコードも見ることができますが、とても高品質なコードなので、将来的なデグレードリスクについても比較的低いだろうと想定しています。(あまりじっくりとは解析した訳ではありませんが)

2A03のコスパの良さ

音源がゴージャスになると作曲家の負担(≒工数)が増えます。

ファミコン本体音源の場合、矩形波2チャンネル+三角波1ch+ノイズ1ch(+DPCM1ch)しか使えませんが、その音源仕様で楽曲を作成する手間は概ねPSG音源(AY-3-8910)やDCSG音源(SN76489)と同じぐらいです。

要するに、

  • メロディ、サブメロディ、ベース

  • メロディ、ベース

などの極めてシンプルな音楽しか作曲することができません。

これはデメリットのようにも見えますが、音楽のプリミティブな形が分かりやすくなるメリットもあると思っていて、プリミティブな楽曲の方が「認知されやすくなる」というメリットもあるのではないかとも考えています。

つまり、プロモーション(認知向上)の観点では、敢えてチープなチップチューン音源で楽曲を製作した方が良いケースがあるかもしれません。

例えば、ファミコン版のドラゴンクエストやロックマンの楽曲のモチーフを脳内で歌うことができる人は多く居ると思いますが、エルデンリングの楽曲のモチーフを脳内で歌うことができる人は(エルデンリングをガッツリ遊んでいる人に絞っても)そんなに多くないと思います。(脳内で記憶しやすい≒認知されやすい…というのが私見)

もちろん、昨今のゲームでもプロモーションを目的とした主題歌のようなものを組み込む手法(映画的手法)で認知されやすい曲を実装しているかもしれませんが、ファミコン音源なら「全部が主題歌」に相当するものになり得る可能性を秘めていて、どんな曲が当たるのかは博打要素が強く、博打を当てるのに必要なのは手数だと私は考えているので、ゲームで音楽による認知拡大の効果を狙うのであれば、制約の無い音源よりも制約だらけのチップチューン音源の方が多分(好きか嫌いかではなくヒットを出すための確率論という観点で)有利なのではないかと。

その役割はVGS音源でも担うことはできますが、ファミコン音源自体が既に広く認知されているので多分有利です。商標の関係で商品の説明書などで「ファミコン音源を使ってます!」と名乗ることはできないと思いますが、デューティー比をイジった矩形波と三角波を組み合わせた音には「他に類を見ないユニークさ」があり、今でも多くのファンが居ると思います。

シンプルなファミコン音源の楽曲を好む人が多く居て、それでいて作曲家の手間も少なく済むから、色々な意味でファミコン音源はコスパが良いのではないかなと。

この記事が気に入ったらサポートをしてみませんか?