本文为原创,转载或使用请注明出自宝可饭堂社区https://bbs.pokefans.xyz/threads/57/
最近在给无限绿宝石添加音效时发现很多原版 ROM 的音效网络上没有,所以想着自己提取,顺便研究了一下 GBA 的音频引擎,并自己实现了一下,做了这样一个播放器和工具,给有需要的朋友使用,可以用于以近乎无损的音质播放与提取大部分 GBA 游戏(使用 MP2K 引擎)中的音效与音乐,后续我有时间可能会加入 NDS 的音频提取与播放。

将 GBA 文件放入程序目录下的 ROM 文件夹,点击 Open 选择打开,点击 Play 可进行播放,
左侧的按钮可用于禁用/启用轨道,点击 Export 可导出为音频文件:

导出窗口中:
最近在给无限绿宝石添加音效时发现很多原版 ROM 的音效网络上没有,所以想着自己提取,顺便研究了一下 GBA 的音频引擎,并自己实现了一下,做了这样一个播放器和工具,给有需要的朋友使用,可以用于以近乎无损的音质播放与提取大部分 GBA 游戏(使用 MP2K 引擎)中的音效与音乐,后续我有时间可能会加入 NDS 的音频提取与播放。

功能
- 使用重采样算法以 48kHz 高采样率输出音频,原版 GBA 的 PCM 采样率只有 32.768kHz ,因此听感会比较差(就是大家比较熟悉的沙沙声),因此很多 GBA 游戏音乐中的细节都没法体现出来,VGMPlay 用重采样的方式能尽可能还原 ROM 中声音采样的细节,还原编曲者的听感,除非使用原始音源,否则这应该是从原始 ROM 中目前能达到的最好效果了(目前 NanoBoyAdvance 和 mGBA 的实验性 XQ 音频也在使用类似的技术)。原版 GBA 一个轨道只可同时播放一个音符,VGMPlay 没有加发声数量限制,可以让一些改版中的音乐正常播放。
- 分轨查看音符状态以及音量,并可对指定轨道进行静音播放。
- 支持从 ROM 中批量无损导出音频,并可指定导出的轨道。
适用平台
- WIndows 10 及以上
- GNU/Linux (需要手动编译安装 raylib 与 raygui)
开发人员
- coco24(我)
- ipatix (部分代码参考自 agbplay )
界面语言
英文(因为我不想加中文字体)使用方法
将 GBA 文件放入程序目录下的 ROM 文件夹,点击 Open 选择打开,点击 Play 可进行播放,左侧的按钮可用于禁用/启用轨道,点击 Export 可导出为音频文件:

导出窗口中:
- Max loop count 用于指定在当前歌曲循环点存在的情况下的循环次数
- 勾选 Export all songs 用于导出 ROM 中的所有歌曲
- 勾选 Export muted tracks 用于无视禁用的轨道进行导出
更新日志
- 1.1.0:优化渲染性能
项目地址
本项目以 GPL-3.0 协议开源,项目地址为:https://github.com/bohonghuang/vgmplay附件
最后编辑: