サウンド環境

サウンドを一通り見てきましたが、次は音楽をどのようにして演奏させるか話になります。DirectSoundはMaxModか8adライブラリ、GBサウンドは後述のVGM2GBA、GBT Playerライブラリを使用するのが良いように思います。GBT Playerに関しては3つ利点があって1.vblank毎に呼びだすだけでタイマーやDMAを使っていない行儀の良いプログラムであること。2.GB Studio3に内蔵される実績を持ち、開発環境が整っていて実行サイクル(テストサイクル)が短いこと。3.マニュアルや解説動画があるので参入する敷居が低いこと、が挙げられます。MP2k(MusicPlayer2000)は今でも最高の演奏ライブラリでこちらを使いたい気もします。ですが任天堂製ライブラリなので使うことはできません。とても残念です。

GB Studio3、GBT Player

GB Studio3は本来Gameboyを開発される為に用意された開発環境です。その中に含まれているGBT PlayerはGB版とGBA版にライブラリを提供しています。GBでとりあえずテスト演奏を繰り返して、本番になったらGBAに移動する方法が可能です。

テストプログラム

GBT Playerライブラリを載せて動かしてみたのが以下のサンプルです。GB Studio Community Assertsから2曲拝借しました。

動作画面

1.png

vgm2gba

Gameboy音源の作曲ソフトHUGETrackerを使ったvgm2gbaを開発しました。アプリのvgmファイル出力機能を使用します。これにより、音楽はDMGにして効果音はDirectSoundを鳴らすという方法が可能です。

2.png

LSDjをGBAで演奏

LSDjを改造GBエミュレータで実行してログを出力。そのログをGBAで鳴らすlsdj_bgm_testを開発しました。割り込みはvcountを使っていて1フレーム6回呼び出しています。ゲームに使用できるかというと悩ましいところではありますが一応できましたーぐらいの感覚でお願いします。

余談

現状、DirectSoundとDMGを併せ持ったオープンソースライブラリは存在しないようです。MaxModとGPT Playerの2つのドライバを搭載し、同時に鳴らすということは可能です。

履歴


トップ   一覧 検索 最終更新   ヘルプ   最終更新のRSS