贡献给 mGBA
mGBA 是一个开源项目,欢迎社区的贡献。无论您是修复错误、添加功能、改进文档还是帮助测试,您的贡献都是有价值的。
贡献方式
代码贡献
- 错误修复: 修复报告的错误或问题
- 新功能: 实现请求的功能或改进
- 性能改进: 优化代码以获得更好的性能
- 平台支持: 添加或改进对特定平台的支持
- 代码重构: 提高代码质量和可维护性
非代码贡献
- 错误报告: 报告带有详细信息的错误
- 功能请求: 建议新功能或改进
- 文档: 改进文档和指南
- 测试: 测试新构建并报告问题
- 翻译: 将 mGBA 界面翻译成其他语言
开发工作流程
Fork 和克隆
- 在 GitHub 上 Fork mGBA 存储库
- 在本地克隆您的 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 开发的更多信息:
- 从源码构建 - 在不同平台上从源代码编译 mGBA 的完整指南
- 架构概述 - 了解 mGBA 的代码库结构、组件和设计原则
- Lua 脚本 API - 用于理解脚本接口的 API 文档
- 故障排除指南 - 常见开发和构建问题的解决方案