有没有任何库、代码段或类似的东西可以让我在XNA Game Studio游戏中播放ZX Spectrum .ay文件?
Zilog Z80A CPU仿真器
做起来并不容易,但是有一些免费的C/C++源代码可以使用。作者使用自己的代码。
3通道AY 8910/8912 PSG芯片仿真器
这比CPU简单得多,只是音调发生器,但是它的文档说明并不是很好,所以您需要进行大量实验。
1位数字扬声器仿真
*.AY文件并不总是使用AY芯片进行音频输出。有些游戏结合了AY和内置扬声器。我现在不确定AY是否也支持covox ...但如果是,则还需要包括8/16位单声道/立体声covox,通常在一些i8255芯片上。
键盘仿真
可变硬件架构支持
*.AY文件储存了更多架构的音乐... Sharp、Amstard CPC、ZX48、ZX128、克隆机之间存在差异...一些拥有不同的晶体频率,一些有不同的声道混合重放器,而且IO地址可能也不同,更不用说内存分页问题了。
声音输出
这取决于目标平台,由于作者没有使用XNA,所以不会涉及此主题(因为已经有答案/接受)。
AY播放器长这样:
因此,如果想编写AY播放器,您最终需要编写Z80仿真器,因为*.AY文件是程序而不是声音录音。由于许多AY文件使用扬声器,因此您需要正确模拟争用模型,否则会出现时间问题,尤其是在扬声器上可以听到。
为了提高质量,您可以应用FIR滤波器来模拟许多效果所使用的PWM类似的扬声器控制。