awesome-gbdev:精选 Game Boy (Color) 开发资源、工具、文档与开源 ROM

A curated list of Game Boy development resources such as tools, docs, emulators, related projects and open-source ROMs.

分支1Tags0
当前项目代码仓暂无内容

GameboyIcon

Awesome Game Boy Development

加入我们的 Discord Discord 徽章

这是一份精心整理的 Game Boy(Color)开发资源列表,涵盖工具、文档、相关项目及开源 ROM。灵感来源于 awesome 列表项目。

您可以在 这里 找到本列表(更酷的)网页版本。

目录

简介

歧义说明

Game Boy Advance

Game Boy Advance 开发由另一个项目 awesome-gbadev 列表涵盖。 然而,GBA 能够运行 GB/GBC 游戏。它的运行方式与原生硬件略有不同:这部分内容在本列表的“模拟器开发”部分有所涉及。

Game Boy Color 与 Super Game Boy

本列表主要关注原始的 Game Boy(GB 或 DMG,1989 年),Game Boy Color(GBC 或 CGB)和 Super Game Boy(SGB)是非常相似的系统,但存在一些重要区别,例如:

  • 不同的硬件规格;
  • 特定的硬件和软件功能;
  • 特定的寄存器;
  • 特定的缺陷、特性和可利用行为。

如果您的目标是为 SGB 或 GBC 开发软件,或者想了解软件在其他系统上的运行情况,您可能需要利用并适应这些差异,请查看Game Boy Color类别,并寻找有关 GBC/CGB 和 SGB 的特定参考资料。

社区

文档

操作码

Game Boy Color

硬件

  • DMG 原理图 - 硬件原理图。
  • Game Boy 项目 - 提供硬件研究以及三个 8 位双向并行端口实现的详细构造信息。
  • 相关定制硬件 - 由 Gekkio 开发。
  • ESP8266 GB 开发板 - 用于 Game Boy 配件开发的开发板,由 ESP8266 驱动。
  • ESP8266 GB 打印机 - 一款模拟 GB 打印机并允许通过 WiFi 检索图像的设备。
  • fruttenboel - 包含大量硬件信息、用于连接游戏机的定制电路板以及其他相关项目的页面。
  • Game Boy 硬件数据库 - 各种型号 Game Boy 游戏机的数据和照片。
  • dmg-schematics - DMG-CPU B 芯片的原理图和带注释的覆盖图,从芯片照片中提取,使用 KiCad 制作。还包含 Electric VLSI 库,其中有一些单元和存储器的布局。

外设

卡带

定制卡带

其他

模拟器开发

测试

软件开发

《Game Boy 开发工具选择指南》 一文概述了 Game Boy 可用的开发工具。

汇编器

  • RGBDS - 汇编器和链接器套件。文档
  • ASMotor - 汇编器引擎和开发系统,支持 Game Boy 及其他多种 CPU。由 RGBDS 原作者编写。文档
  • wla-dx - 又一个 GB-Z80/Z80/... 多平台交叉汇编器套件。文档

编译器

  • GBDK - 维护并现代化的 GBDK(Game Boy 开发套件),由更新版的 SDCC 工具链提供支持。包含 C 编译器、汇编器、链接器和一组库。
  • Turbo Rascal Syntax Error - 完整套件(IDE、编译器、编程语言、资源编辑器),旨在为 8/16 位系列计算机(包括 Game Boy 和 Game Boy Color)开发游戏/演示程序。

实验性/概念验证

  • RGBDS-Live - 基于浏览器的编码环境,用于试用 RGBDS。
  • Wiz - 一种高级汇编语言,用于在复古游戏机平台(Game Boy、NES、Atari 2600 等)上编写自制程序。
  • gbforth - 基于 Forth 的 Game Boy 开发套件。
  • gbasm-rs - 一个基于 Rust 的 Game Boy z80 汇编代码编译器,具有独特的设计理念。
  • gbasm - 一个基于 JavaScript 的 Game Boy z80 汇编代码编译器。
  • tniASM - 宏汇编器。
  • Assembler - 用 Swift 编写的汇编器。
  • llvm-gbz80 / clang-gbz80 - Clang/LLVM 移植到 GBZ80 CPU(类似于已停止维护的 euclio/llvm-gbz80)。
  • gbdk-go - 一个将 Go 程序翻译成 C 代码的编译器。输出的 C 代码可通过 GBDK 编译成 GB ROM。
  • Rust-GB - 一个允许使用 Rust 开发 GB ROM 的编译器和库。

模拟器

  • BGB - 功能强大的模拟器和调试器。提供精确的硬件模拟。

  • SameBoy - 精确的模拟器,具有广泛的强大调试功能。

  • Mooneye GB - Rust 编写的研究项目和模拟器。

  • mGBA - 现代跨平台 GBA 模拟器,也可运行 GB/GBC 游戏。

  • Binjgb - 5K 行代码的模拟器,通过了大部分测试。*支持回退功能。可使用 WebAssembly 在浏览器中运行。

  • Gambatte - 跨平台且精确的模拟器。

  • MetroBoy - 整个 Game Boy 的可玩电路级仿真。

  • gbe-plus - 最近重写的模拟器,致力于保留各种冷门配件的功能(如红外链接、移动网络 GB、条码小子、GB 打印机、本地和在线 GB 串行链接电缆等)

  • Emulicious - 提供精确的模拟,并包含强大的工具,如分析器以及通过 VS Code 调试适配器 实现的 ASM 和 C 语言源级调试。

开源模拟器完整列表

工具

引擎

  • ZGB - 用于为原始 Game Boy 创建游戏的小型引擎(扩展了 gbdk,更多信息此处)。
  • Retr0 GB - 用于创建游戏的引擎(扩展了 GBDK)。

开发工具

  • GBExtended - 扩展 gbdk 的 C 库。
  • gbdk-lib-extension - Michael Hope 为 Game Boy Development Kit 开发的一小套源代码和工具。
  • mgbdis - Game Boy ROM 反汇编器,输出与 RGBDS 兼容。
  • ROM Header Utility - 在线工具,用于检查和修改 ROM 的头数据,包括徽标。
  • romusage - 命令行工具,用于从 .map、.noi 或 ihx 文件估计 Game Boy ROM 的使用情况(可用空间)。适用于 GBDK-2020 和 RGBDS。
  • awake - Game Boy 反编译器。
  • Game Boy Text Tools - 一套用于 Game Boy ROM 文本处理和翻译的工具,用 Node.js 编写。
  • evscript - 用于 Game Boy 的脚本语言,适用于敌人 AI、对话、动画和协程。
  • evunit - 汇编代码的单元测试程序。
  • opcode_count - 使用 Python 和 Emulicious 生成关于哪些 CPU 指令运行最频繁的统计数据。

图形工具

  • Game Boy Tile Data Generator - HTML5 / JS 网页应用程序,将位图图像转换为适合基于瓦片的图形应用程序(特别是 GB)使用的十六进制数据。
  • Harry Mulder's GB Development - 一些资源以及 Game Boy Tile Designer (GBTD) 和 Game Boy Map Builder (GBMB) 工具的主页。
  • GBTiles - 将 Harry Mulder 的 Tile Designer (GBTD) 创建的 .GBR 文件和 Harry Mulder 的 Map Builder (GBMB) 创建的 .GBM 文件转换为用于 Game Boy 和 GBDK 的不同格式。
  • bmp2cgb - Game Boy Color 开发的图形转换器,提供实时调色板调整。
  • png2gb - 将图像文件转换为 game boy .c 数组的 CLI 工具。
  • GB-convert - Game Boy 瓦片转换和地图编辑工具(转换为汇编)。
  • brewtool - 一组用于制作自制 ROM 开发所用资源的基础编辑器/转换器工具。
  • vtGBte - 一个简约的 ncurses 瓦片编辑器。
  • tpp1 - 自定义 GB/GBC 内存/硬件映射器的定义和规范,作为 MBC 的功能超集。
  • libstdgb - 有用的 Game Boy 操作的 C 库(SDCC)。
  • Tilemap GB - GIMP 图像编辑器插件,用于导入和导出 GBMB 和 GBTD 瓦片地图和瓦片集(作为位图图像或 .GBM/.GBR 文件)。
  • Tilemap Helper - GIMP 图像编辑器插件,用于优化瓦片地图和瓦片集。
  • Tilemap Studio - 用于 Game Boy、Color、Advance 和 SNES 项目的瓦片地图编辑器。用 C++ 和 FLTK 编写。
  • Superfamiconv - 灵活且可组合的瓦片图形转换器,支持超级任天堂、Game Boy、Game Boy Color、Game Boy Advance、Mega Drive 和 PC Engine 格式。

硬件和 ROM 工具

音乐驱动和音序器

  • DevSoundX - 可嵌入自制程序的声音驱动,支持脉宽调制、琶音和多种波形。
  • Carillon Player - 音乐引擎。
  • GBT PLAYER - 音乐播放器库和转换工具包。
  • mmlgb - 用于任天堂 Game Boy 的 MML 解析器和 GBDK 声音驱动。
  • XPMCK - 基于 MML 的音乐编译器,支持 Game Boy 和 Game Boy Color。
  • GBSoundSystem - 现代化的音频驱动,适用于 GameBoy Tracker(又名 Paragon 5 音乐播放器)。
  • hUGETracker - 基于 OpenMPT 的音乐音序器,专注于易用性、紧凑输出和在自制游戏中的可嵌入性。
  • CBT-FX - 与 FX-Hammer 音效兼容的 GBDK-2020 音效驱动。

编程

使用软件开发章节中介绍的开发工具链开发 Game Boy 软件的指南、教程和工具。

汇编(ASM)

代码资源

代码片段、效果、概念验证以及通常非完整的游戏。

  • dev'rs ASM 部分 - 大量可运行的演示和源代码。
  • EmmaEwert 的实验 - 一系列原型程序,大多是用于探索和尝试。其中包括日光效果、透明度和天气效果等。
  • DeadCScroll - 详细教程,介绍如何实现屏幕抖动以及其他“光栅效果”。

时序

模板和库

  • rgbds-template - 使用 RGBDS 的 Game Boy 基本 hello-world 示例。
  • Game Boy 汇编语言入门 - 包含内存定义、复制例程和 IBM 字体 tilemap 的简单模板代码。
  • bootstrap.gb - 一个 Game Boy 项目示例。
  • Gameboy 模板项目 - 用于快速进入游戏实际汇编代码开发的模板项目。
  • GingerBread - 一个用于制作自己的 Game Boy 游戏的软件库。它旨在与《现代游戏开发者的 Game Boy 汇编编程》一书配合使用,该书也可作为该库的文档。
  • gb-vwf - 用于打印可变宽度文本的库,附带演示。
  • gb-boilerplate - 用于启动 Game Boy 项目的模板,提供 Makefile 作为基础架构。
  • gb-starter-kit - 上述模板的扩展,还包括基础库代码,以便更快开始开发。
  • gb-template - 一个包含基本功能的模板,如手柄输入、DMA 传输以及地图/ tile 数据加载。

语法高亮包

C

自制游戏

完整的开源游戏。

  • Homebrew Hub - 由社区主导的尝试,旨在收集、存档和保存所有为 Game Boy 发布的非授权和自制游戏。条目可在线游玩。

汇编语言

C

GB Studio

演示程序

逆向工程

游戏反汇编

Game Boy Camera

图像获取

Game Boy 打印机模拟(例如,从相机中检索图像):

更改相机行为

改善和/或操纵相机质量和行为的方法:

后期处理

相关项目

目录

网站

  • devrs.com/gb - 该领域的老牌网站:包含示例、源代码、完整文档、指南、教程及各类工具。
  • pdroms.de - Game Boy 发布内容。
  • Handheld Underground - 非官方授权游戏、关于 Game Boy 的博客文章,以及 hhugboy 模拟器的发源地。

关于

贡献

请查看 贡献指南

许可证

本项目采用 GPLv3 许可证。 更多信息请参见 LICENSE

致谢

感谢 所有 为本项目做出贡献的人,以及 Jeff Frohwein、Pascal Felber、KOOPa、Pan of Anthrox、GABY、Marat Fayzullin、Paul Robson、BOWSER、neviksti、Martin "nocash" Korth、Nitro2k01、Duo、Chris Antonellis、Michael Hope、Beware、Jonathan “Lord Nightmare” Gevaryahu、Carsten Sorense、Sindre Aamås、Otaku No Zoku、GeeBee。

赞助商

特别感谢我们的合作伙伴 DigitalOceanIncube8 Games,他们对我们 Game Boy 开发社区的开源活动提供了赞助。