2个不稳定版本
0.2.0 | 2023年10月9日 |
---|---|
0.1.0 | 2023年4月29日 |
#615 in 游戏开发
73KB
1.5K SLoC
宝可梦合成器
宝可梦GameBoy游戏的音效格式合成器。
实现状态
- 第一代
- 脉冲通道
- 噪声通道
- 波形通道
- 有限循环
- 无限循环
- 音高滑动
- 音乐序列
- 第二代
- 脉冲通道
- 噪声通道
- 波形通道
- 有限循环
- 无限循环
- 音高滑动
- 音乐序列
- 未来代
安装
cargo add pokemon-synthesizer
使用
const rom = std::fs::read("pokeyellow.gbc").unwrap();
// Pikachu cry
let pcm = pokemon_synthesizer::gen1::synthesis(&rom, 0x02, 0x40c3, 238, -127);
// 1
pcm.channels()
// 1_048_576
pcm.sample_rate()
// Duration { 987.819672ms }
pcm.total_duration()
// Iterator<Item = f32>
pcm.iter()
测试
要运行gen1
测试,您需要一个宝可梦黄版ROM文件。该ROM文件的SHA1哈希应为cc7d03262ebfaf2f06772c1a480c7d9d5f4a38e1
,并命名为roms/pokeyellow.gbc
。
要运行gen2
测试,您需要一个宝可梦水晶版ROM文件。该ROM文件的SHA1哈希应为f4cd194bdee0d04ca4eac29e09b8e4e9d818c133
,并命名为roms/pokecrystal.gbc
。
致谢
非常感谢Retro Game Mechanics Explained及其关于宝可梦叫声的视频,以及随附的工具。没有他们的帮助,我无法完成这项工作。