Game Bub是一款基于FPGA的開源復古仿真掌機,支持Game Boy、Game Boy Color和Game Boy Advance游戲。
項目簡介
Game Bub可以播放物理卡帶,以及從SD卡加載的ROM格式的模擬卡帶,支持多人游戲GB和GBA模式下的Game Link Cable。
同時還具有許多額外的功能:例如通過自定義擴展塢的HDMI視頻輸出、震動馬達、實時時鐘等。此外硬件在設(shè)計時考慮了可擴展性,允許通過軟件改進擴展其功能。
Game Bub具有定制設(shè)計的6層PCB,主控芯片采用Xilinx XC7A100T FPGA。
FPGA將按鍵輸入直連到游戲卡帶(通過電平轉(zhuǎn)換器支持3.3v GBA和5v?Game Boy),并將音頻和視頻輸出到揚聲器和顯示器。
微控制器采用ESP32-S3,負責處理UI、從microSD卡讀取ROM文件、初始化外設(shè)(顯示器、DAC、IMU)、處理上電排序、并加載FPGA配置。
硬件集成了內(nèi)存、顯示器、揚聲器、可充電電池、GB/GBA?墨盒插槽,所有這些都封裝在定制的3D打印外殼中。
微控制器固件
固件采用Rust編寫,基于Slint GUI框架設(shè)計圖形用戶界面。GUI在MCU上渲染,然后將渲染的framebuffer發(fā)送到FPGA。Slint支持部分渲染,僅更新屏幕中已更改的部分,從而提高了性能。FPGA維護framebuffer副本,并負責驅(qū)動顯示器。
開源鏈接
作者Lipsitz在他的網(wǎng)站上提供了非常詳細的項目設(shè)計文章:https://eli.lipsitz.net/posts/introducing-gamebub
硬件設(shè)計文件、固件、FPGA軟件源代碼均已在GitHub開源:https://github.com/elipsitz/gamebub