3

XNA Game Studio ゲームでZX Spectrum .ay ファイルをプレイできるようにするライブラリ、コードなどはありますか?

4

3 に答える 3

6

最初に .ay ファイルを wav に変換する必要があります。それを行うプログラムがここ にあります。ソースコードも付いているので、暇な人はそこからコンテンツインポーターとプロセッサーを作成してみてはいかがでしょうか? :-)

于 2009-06-28T16:49:40.167 に答える
1

自分でコーディングする場合は、次のものが必要です。

  1. Zilog Z80A CPU エミュレータ

    簡単ではありませんが、無料の C/C++ ソースがいくつかあります。私は自分のものを使用します。

  2. 3 チャネル AY 8910/8912 PSG チップ エミュレータ

    これは、CPU よりもはるかに単純です。それは単なるトーンジェネレーターですが、ドキュメントはあまり良くないので、たくさん実験する必要があります.

  3. 1 ビット デジタル スピーカー エミュレーション

    *.AY ファイルは、サウンド出力に常に AY チップを使用するとは限りません。一部のゲームでは、AY と Build In スピ​​ーカーを組み合わせています。AYもcovoxをサポートしているかどうかはわかりません...しかし、もしそうなら、通常i8255チップに8/16ビットのモノ/ステレオcovoxも含める必要があります。

  4. キーボードエミュレーション

  5. 可変ハードウェア アーキテクチャのサポート

    *.AYファイルは、より多くのアーキテクチャの音楽を保存します...シャープ、アムスタードCPC、ZX48、ZX128、クローンの間には違いがあります...水晶周波数が異なるものもあれば、リプロダクターとのチャネルミキシングが異なるものもあり、IOアドレスも異なる場合がありますメモリ ページングの問題は言うまでもありません。

  6. 音声出力

    これはターゲット プラットフォームに依存しており、私は XNA を使用していないため、この件には触れません (既に回答/承認されているため)。

AY プレーヤーは次のようになります。

  1. 最初に AY ヘッダーをロードします
  2. ターゲット プラットフォームを検出し、それに一致するようにエミュレータを構成します
  3. AY バイナリをターゲット メモリ ゾーンにロードする
  4. レジスタを設定し、エミュレーションを開始します

したがって、AY プレーヤーをコーディングする場合は、*.AY ファイルはサウンド レコーディングではないプログラムであるため、Z80 エミュレーターを作成することになります。多くの AY ファイルがスピーカーを使用するため、競合モデルを適切にエミュレートする必要があります。そうしないと、特にスピーカーで聞こえるタイミングの問題が発生します...

品質を向上させるために、FIR フィルターを適用して、多くのエフェクトが使用するスピーカーのPWMのような制御をシミュレートできます。

于 2015-10-26T09:19:40.727 に答える
0

XNA でサウンドが必要で、XBOX 360 のサポートが必要な場合は、サポートされているファイル形式を使用する必要があります。.ay ファイルを XNA がネイティブにサポートする形式に変換することをお勧めします。

Windows のみをサポートする場合は、それらを再生できる .NET ライブラリを検索します。.NET で動作する場合は、Windows 上の XNA でも動作します。

于 2008-09-21T13:05:26.010 に答える