そういえば、一つ前の記事で、VG-Engine側(サウンド制御スレッド)では、2205バイト=22050(Hz)×1ch(mono)×2(16bit)÷20(50ms)といってましたが、これは、二つ前の記事でいっていたことと矛盾しています(矛盾点は網掛け部分)。二つ前の記事では、システム側はステレオ(2ch)にすると言ってたのですが、一時的に仕様変更しました。
実は、今回の実装にあたり、PCMのデータ形式をチェックしたところ、PCMは波形1(1ch)、波形2(2ch)、波形3(1ch)、波形4(2ch)・・・という具合に交互のチャネルのデータがセットされています。独自形式のPCMデータはモノラルで、パンを指定して鳴らせる仕様にしようとしたのですが、それを実現しようとすると、2バイト(1波形)づつ交互にバッファリングしなければならない・・・という問題が生じます。つまり、ブロック転送(memcpy)ができないから、性能面で問題があります。
PSGエミュレータを実装するときは、そういう風にせざるを得ないけど、効果音用のサウンドシステムでそれをやるのは、とても微妙な気分・・・PSGエミュレータを実装した時は、当然、効果音と合成が必須だから、元々の仕様に戻すつもり(故に、一時的に)ですが。
BGM付きのゲームを作りたい欲求が無ければ、この仕様を定着させる可能性もありますが。
追記:あ・・・どうせ、合成時に戻さざるを得ないか。
ってことは、音声処理をソフトウェアで実装するケースでは、ブロック転送しないのが常識か。
音声プログラミングは素人同然なので、色々と常識が足りない。
登録:
コメントの投稿 (Atom)
合理的ではないものを作りたい
ここ最近、実機版の東方VGSの開発が忙しくて、東方VGSの曲追加が滞っています。 東方VGS(実機版)のデザインを作りながら検討中。基本レトロUIベースですがシークバーはモダンに倣おうかな…とか pic.twitter.com/YOYprlDsYD — SUZUKI PLAN (...
-
MSX版「覇邪の封印」の攻略情報を書きます。 MSX版には、パッケージに布製の地図とフィギュアが同梱されていますが、これらは単なるオマケではなく、ゲームをプレイするために必要なツールでして、説明書でもフィギュアの左足部分を現在位置に置いてプレイする旨が指示されています。実際に地図...
-
家電量販店のPCゲームパッドコーナーに行くと、軒並みWindows用のゲームパッドしか売っていません。稀に「Mac OS X対応」を謳っているゲームパッドも置いてありますが、実際に動かしてみると妙に誤動作をして更にガッカリしたりとか(経験済み)。 色々と試してみたのですが、最...
-
東方VGSの収録曲数が100曲を超えてしまった。 いや、こんなに続くとは思ってなかったです。 記念に何かやろうと思ったけど、特に思いつかなかったので、どういう経緯で東方VGSが誕生したのか書いてみようと思います。 書き終わってみると、既視感みたいな感じのものをもの凄く...
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。