贡献给 mGBA

mGBA 是一个开源项目,欢迎社区的贡献。无论您是修复错误、添加功能、改进文档还是帮助测试,您的贡献都是有价值的。

贡献方式

代码贡献

  • 错误修复: 修复报告的错误或问题
  • 新功能: 实现请求的功能或改进
  • 性能改进: 优化代码以获得更好的性能
  • 平台支持: 添加或改进对特定平台的支持
  • 代码重构: 提高代码质量和可维护性

非代码贡献

  • 错误报告: 报告带有详细信息的错误
  • 功能请求: 建议新功能或改进
  • 文档: 改进文档和指南
  • 测试: 测试新构建并报告问题
  • 翻译: 将 mGBA 界面翻译成其他语言

开发工作流程

Fork 和克隆

  1. 在 GitHub 上 Fork mGBA 存储库
  2. 在本地克隆您的 fork:
git clone https://github.com/YOUR_USERNAME/mgba.git
cd mgba

创建分支

git checkout -b feature/your-feature-name
# 或
git checkout -b fix/bug-description

进行更改

  • 对代码库进行更改
  • 彻底测试您的更改
  • 遵循编码标准和样式指南
  • 如果适用,编写或更新测试

提交更改

编写清晰、描述性的提交消息:

git add .
git commit -m "更改的简要描述

详细说明更改了什么以及为什么。"

推送并创建 Pull Request

git push origin feature/your-feature-name

然后在 GitHub 上创建 Pull Request,包含:

  • 清晰的更改描述
  • 如果适用,引用相关问题
  • 测试信息
  • 如果相关,包含截图或示例

编码标准

代码风格

  • 遵循代码库中现有的代码风格
  • 使用一致的缩进(空格,不是制表符)
  • 编写清晰、自文档化的代码
  • 为复杂逻辑添加注释
  • 保持函数专注和简洁

命名约定

  • 使用描述性的变量和函数名
  • 对于 C 代码遵循 C 命名约定
  • 对于 C++ 代码使用 camelCase
  • 除非广泛理解,否则避免缩写

测试

在提交 pull request 之前:

  • 如果可能,在多个平台上测试您的更改
  • 验证现有功能仍然有效
  • 测试边缘情况和错误条件
  • 检查内存泄漏或性能回归
  • 使用各种游戏和 ROM 进行测试

报告错误

报告错误时,请包括:

  • 问题的详细描述
  • 重现问题的步骤
  • 预期与实际行为
  • 系统信息(操作系统、CPU、GPU、mGBA 版本)
  • ROM 信息(游戏名称、地区、版本(如果已知))
  • 错误消息或日志(如果可用)
  • 截图或视频(如果适用)

请求功能

请求功能时:

  • 清晰详细地描述功能
  • 解释用例或动机
  • 提供它如何工作的示例
  • 考虑实现复杂性
  • 检查是否已存在类似功能

文档

为文档做出贡献:

  • 改进现有文档以提高清晰度
  • 为功能添加缺失的文档
  • 修复错误或过时的信息
  • 添加代码示例或教程
  • 将文档翻译成其他语言

许可证

通过为 mGBA 做出贡献,您同意您的贡献将在 Mozilla 公共许可证 2.0 (MPL 2.0) 下获得许可,与 mGBA 本身相同的许可证。

开始: 在进行代码贡献之前,请查看 架构 文档以了解 mGBA 的代码库结构。

相关文章

有关 mGBA 开发的更多信息: