#gameboy-advance #agb #boy #sound #game #converting #wavs

agb_sound_converter

用于在Game Boy Advance上转换wav文件的库

23个版本 (12个重大变更)

0.20.5 2024年6月18日
0.20.2 2024年5月25日
0.19.1 2024年3月6日
0.18.0 2023年10月31日
0.1.0 2021年10月28日

#1016 in 音频

Download history 15/week @ 2024-04-29 399/week @ 2024-05-13 247/week @ 2024-05-20 39/week @ 2024-05-27 43/week @ 2024-06-03 351/week @ 2024-06-10 179/week @ 2024-06-17 19/week @ 2024-06-24 69/week @ 2024-07-01 14/week @ 2024-07-08 3/week @ 2024-07-15 128/week @ 2024-07-29 18/week @ 2024-08-12

每月147次下载
3个crate中使用(通过agb

MPL-2.0许可证

4KB
53 行代码

AGB

适用于Game Boy Advance的Rust

Docs Build Licence Crates.io

AGB logo

这是一个使用Rust编程语言在Game Boy Advance上制作游戏的库。该库的主要重点是提供一个抽象层,允许您开发利用GBA功能的游戏,而无需深入了解其底层实现。

agb提供了以下功能

  • 简单的构建过程,依赖最少
  • 内置导入精灵、背景、音乐和音效
  • 高性能音频混音器和可选的跟踪器,可以播放.xm文件
  • 易于使用的精灵和瓦片背景使用
  • 全局分配器,允许使用corealloc

最新版本的文档可以在docs.rs上找到。

入门

开始使用agb的最佳方式是使用模板,无论是这个存储库中的template目录,还是克隆模板仓库

完成这些后,您将在模板中的README中找到进一步的操作说明。

有一个(正在进行中)的教程,您可以在项目网站上找到。

帮助/支持

如果您需要任何帮助,可以在讨论页面上从创作者和贡献者那里获得帮助。

请随时在问答类别中创建新的讨论,我们将尽力帮助您!

为agb本身做出贡献

为了为agb本身做出贡献,您需要一些额外的工具,而不仅仅是使用此库来为Game Boy Advance编写游戏所需的工具

  • 最近的rustup,请参阅rust网站获取您操作系统的说明。
    • 您可以使用以下命令更新rustup,或者如果您是这样获得rustup的,请使用您的包管理器:rustup self update
  • libelf和cmake
    • Debian及其衍生产品:sudo apt install libelf-dev cmake
    • Arch Linux及其衍生产品:pacman -S libelf cmake
  • mgba-test-runner
    • 在当前目录下运行cargo install --path emulator/test-runner
  • 'just'构建工具
    • 使用cargo install just进行安装
  • mdbook
    • 使用cargo install mdbook进行安装
  • miri
    • 一些不安全代码使用miri进行测试,使用以下命令进行安装:rustup component add miri

安装所有这些后,您应该能够通过运行以下命令来运行agb的完整构建:

just ci

请注意,在您创建PR之前,请先提交一个issue,这样我们就可以讨论您想要进行哪些更改。

仓库结构

agb-debug - 您可以使用此工具来解码agb堆栈跟踪

agb-fixnum - 由于GBA没有浮点单元,因此需要一个简单的定点数字存储,以便进行高效的十进制运算

agb-gbafix - 一个干净室的重现gbafix实用程序,它接受elf文件而不是二进制文件

agb-hashmap - 一个针对Game Boy Advance使用的no_std hashmap实现

agb-image-converter - 一个crate,可以将图像从常规格式转换为Game Boy Advance支持的格式

agb-macros - 必须在不同的crate中的一些杂项proc-macros

agb-sound-converter - 一个crate,可以将wav文件转换为Game Boy Advance支持的格式

agb - 主要库代码

agb/examples - 面向1个功能的简单示例,您可以使用just run-example <example-name>运行这些示例

book - 指南和网站源代码

book/games - 作为教程的一部分制作的游戏

emulator - Rust绑定mgba模拟器,以及您可以使用它来运行单元测试的测试运行器

examples - 游戏节期间制作的完整游戏的大示例

template - 模板库的源代码 模板库仓库

tools - 在 agb 本身开发中使用的各种工具

tracker - 构成 agb-tracker 库的 crate,允许播放 tracker 文件

website - 网站的源代码 网站

稳定性

由于 agb 处于 1.0 之前的预发布阶段,我们遵循半语义版本控制方案以确保小版本之间的兼容性。具体来说,任何 0.x.y 版本都保证与另一个 0.x.z 版本兼容,前提是 y > z,但在小版本之间可能存在破坏性更改(即第二个数字的更改,例如,从 0.1 到 0.2)。

一旦 agb 达到 1.0 版本,我们将过渡到更强的语义版本控制,这意味着任何破坏性更改都将通过主要版本的增加来指示(即第一个数字,例如,从 1.0 到 2.0)。

致谢

没有以下(非详尽)项目列表的帮助,agb 将无法实现

  • rust-console 的出色工作,使得这一切成为可能
  • 用于加载 aseprite 文件的 asefile crate
  • agbabi 提供高性能的常见方法替代方案
  • mgba 提供了内置在模拟器中的所有有用的调试/开发者工具

许可证

agb 和其所有子 crate 都在 MPL 版本 2.0 下发布。有关完整许可证文本,请参阅 LICENSE 文件。

agb 包含来自 agbabi 的代码子集,该代码在 zlib 样式许可证下发布,详细信息可在 agb/src/agbabi 下找到。

模板在 CC0 下发布,以便您可以做出您想要的任何更改。

agb 标志在 Creative Commons Attribution-ShareAlike 4.0 下发布

示例中使用的音乐由 Josh Woodward 创作,并发布在 Creative Commons Attribution 4.0

依赖关系

~0.4–0.8MB
~19K SLoC