【问题标题】:ZX Spectrum AY-3-8912 playback in XNA Game Studio在 XNA Game Studio 中播放 ZX Spectrum AY-3-8912
【发布时间】:2008-09-21 13:01:48
【问题描述】:

是否有任何库、代码片段或类似的东西可以让我在我的 XNA Game Studio 游戏中玩 ZX Spectrum .ay 文件?

【问题讨论】:

    标签: xna sinclair zxspectrum


    【解决方案1】:

    您应该先将 .ay 文件转换为 wav。有一个程序here 要做到这一点。它还附带源代码,因此有空闲时间的人可能会通过创建内容导入器和处理器来提供帮助? :-)

    【讨论】:

      【解决方案2】:

      如果你想自己编码,你需要:

      1. Zilog Z80A CPU 模拟器

        做起来并不容易,但是有一些免费的 C/C++ 源代码。我用自己的。

      2. 3通道AY 8910/8912 PSG芯片仿真器

        这比 CPU 简单得多。它只是音调发生器,但文档不是很好,所以你需要做很多实验。

      3. 1 位数字扬声器仿真

        *.AY 文件并不总是使用 AY 芯片进行声音输出。有些游戏结合了 AY 和内置扬声器。我现在不确定 AY 是否也支持 covox……但如果是,那么您通常还需要在某些 i8255 芯片上包含 8/16 位单声道/立体声 covox。

      4. 键盘模拟

      5. 可变硬件架构支持

        *.AY 文件存储更多架构的音乐...夏普、Amstard CPC、ZX48、ZX128、克隆之间存在差异...有些具有不同的晶体频率,有些具有不同的通道混音器,还有 IO地址可能不同,更不用说内存分页问题了。

      6. 声音输出

        这取决于目标平台,因为我不使用 XNA,所以不会触及这个主题(因为它已经被回答/接受)

      AY 播放器长这样:

      1. 首先加载 AY 标头
      2. 检测目标平台并配置您的模拟器以匹配它
      3. 将 AY 二进制文件加载到目标内存区域
      4. 设置寄存器并启动仿真

      因此,如果您想编写 AY 播放器,您最终会编写 Z80 模拟器,因为 *.AY 文件是程序而不是录音。由于许多 AY 文件使用扬声器,因此您需要正确模拟争用模型,否则会出现时序问题,尤其是在扬声器上可以听到...

      为了提高质量,您可以应用 FIR 滤波器来模拟许多效果器使用的类似 PWM 的扬声器控制。

      【讨论】:

        【解决方案3】:

        如果您需要 XNA 中的声音,并且想要 XBOX 360 支持,您需要使用支持的文件格式。您最好尝试将 .ay 文件转换为 XNA 原生支持的格式。

        如果你只想支持Windows,那么搜索一个可以播放它们的.NET库,如果它在.NET中运行,它将在Windows上的XNA中运行。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-08
          • 1970-01-01
          • 2018-02-16
          • 1970-01-01
          • 2012-10-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多