在javascript中模拟来自gameboy ROM的音频

时间:2013-09-19 18:10:58

标签: javascript emulation 2d-games gameboy

使用此模拟器http://www.codebase.es/jsgb/,我完成了此项目https://github.com/rafaelcastrocouto/gbonline

现在我想用html5音频API模拟声音和音乐,但我不知道从哪里开始。我查看了模拟器代码和手册,但我还远远不了解那里发生了什么。

模拟器代码:https://github.com/rafaelcastrocouto/gbonline/blob/gh-pages/script.js 手动:http://nocash.emubase.de/pandocs.htm

你们能解释一下应该怎么做,也许是一些伪代码???

1 个答案:

答案 0 :(得分:3)

我发现有四种方法可以从学分部分Codebase中引用的泛文档中描述的模拟器中获取声音。在I / O端口的Pan Docs部分中有一个名为Sound Controller的章节。写道:

  

有两个声道连接到输出端子SO1和SO2。还有一个连接到盒式磁带的输入端子Vin。它可以路由到两个输出终端中的任何一个。 GameBoy电路允许以四种不同的方式产生声音:

     
      
  • 具有扫描和包络功能的四角波模式。
  •   
  • 带包络函数的四边形波纹图案。
  •   
  • 来自wave RAM的自愿波浪模式。
  •   
  • 带有信封功能的白噪声。
  •   

因此,有必要实现与上一个列表的特征相匹配的音频工作者。例如,使用类似Flocking的库,并为每种方式构建声音,可以创建一个与该文章的以下部分中的详细信息匹配的综合。

完成该步骤后,必须在Git仓库中扩展script.js(与line 240开始的其他寄存器一样)以连接sound registers。这些寄存器需要触发并选择合适的合成器。

希望这会有所帮助。