ZX Spectrum AY-3-8912在XNA Game Studio中播放

时间:2008-09-21 13:01:49

标签: xna sinclair zxspectrum

是否有任何库,代码或类似内容让我在XNA Game Studio游戏中播放ZX Spectrum .ay文件?

3 个答案:

答案 0 :(得分:6)

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

答案 1 :(得分:1)

如果您想自己编码,则需要:

  1. Zilog Z80A CPU仿真器

    不是那么容易,但有一些免费的C / C ++源代码。我用自己的。

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

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

  3. 1位数字扬声器模拟

    * .AY文件并不总是使用AY芯片进行声音输出。有些游戏结合了AY和Build In扬声器。我现在不确定AY是否也有corot的supprot ...但是如果是的话你需要在一些i8255芯片上也包括8/16位单声道/立体声covox。

  4. 键盘模拟

  5. 可变硬件架构支持

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

  6. 声音输出

    这是目标平台依赖,因为我不使用XNA将不会触及此主题(因为它已被回答/接受)

  7. AY玩家看起来像这样:

    1. 首先加载AY标题
    2. 检测目标平台并配置您的模拟器以匹配它
    3. 将AY二进制文件加载到目标内存区域
    4. 设置寄存器并启动仿真
    5. 因此,如果你想编码AY播放器,你最终会编写Z80模拟器,因为* .AY文件是不是录音的节目。由于许多AY文件使用扬声器,因此您需要正确模拟争用模型,否则会发生时间问题,特别是在扬声器上可以听到......

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

答案 2 :(得分:0)

如果您在XNA中需要声音,并且需要XBOX 360支持,则需要使用支持的文件格式。通过尝试将.ay文件转换为XNA本身支持的格式,您可以更好。

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