Game Bub是一款基于FPGA的开源复古仿真掌机,支持Game Boy、Game Boy Color和Game Boy Advance游戏。
项目简介
Game Bub可以播放物理卡带,以及从SD卡加载的ROM格式的模拟卡带,支持多人游戏GB和GBA模式下的Game Link Cable。
同时还具有许多额外的功能:例如通过自定义扩展坞的HDMI视频输出、震动马达、实时时钟等。此外硬件在设计时考虑了可扩展性,允许通过软件改进扩展其功能。
Game Bub具有定制设计的6层PCB,主控芯片采用Xilinx XC7A100T FPGA。
FPGA将按键输入直连到游戏卡带(通过电平转换器支持3.3v GBA和5v Game Boy),并将音频和视频输出到扬声器和显示器。
微控制器采用ESP32-S3,负责处理UI、从microSD卡读取ROM文件、初始化外设(显示器、DAC、IMU)、处理上电排序、并加载FPGA配置。
硬件集成了内存、显示器、扬声器、可充电电池、GB/GBA 墨盒插槽,所有这些都封装在定制的3D打印外壳中。
微控制器固件
固件采用Rust编写,基于Slint GUI框架设计图形用户界面。GUI在MCU上渲染,然后将渲染的framebuffer发送到FPGA。Slint支持部分渲染,仅更新屏幕中已更改的部分,从而提高了性能。FPGA维护framebuffer副本,并负责驱动显示器。
开源链接
作者Lipsitz在他的网站上提供了非常详细的项目设计文章:https://eli.lipsitz.net/posts/introducing-gamebub
硬件设计文件、固件、FPGA软件源代码均已在GitHub开源:https://github.com/elipsitz/gamebub