外观
复古游戏机
ESP32 的算力不高,但运行 8 位和 16 位时代的游戏足够。社区有成熟的模拟器固件和现成的开源掌机,是「用最少的钱得到一台能玩的掌机」的好路线。适合怀旧玩家和想学习嵌入式模拟器优化的开发者。
这是什么玩法
核心是 Retro-Go:为 ODROID-GO 和其他 ESP32 设备做的复古游戏模拟器固件,带一个启动器和多个模拟器应用。据其 GitHub 仓库说明,支持的系统包括 NES、SNES(较慢)、Game Boy、Game Boy Color、Game & Watch、SG-1000、Master System、Mega Drive / Genesis、Game Gear、ColecoVision、PC Engine、Atari Lynx,以及 DOOM(含 Mod)。具体到某台设备能流畅运行哪些系统,取决于芯片、PSRAM 和屏幕。
典型硬件
- ODROID-GO:Hardkernel 出品,官方支持设备之一,据 Retro-Go 仓库;产品的在售状态请以厂商为准。
- ESPlay 系列:社区开源掌机,仓库设备列表中有 esplay-micro;esplay-s3 被标注为 broken。
- LILYGO T-Deck:仓库列表中有 t-deck-plus,带键盘与屏幕。
- ESP32-S3 DevKitC 自制掌机:仓库列表中有 esp32s3-devkit-c;还有社区分支把 ESP32-S3 搭配 ILI9341、ST7789V2 等屏幕做成自制设备。
- M5Stack Cardputer:我没有找到 Retro-Go 对 Cardputer 的官方支持,请自行查阅社区分支。Cardputer 的小屏幕和键盘更适合文字类游戏与小工具。
- 配件:SD 卡、按键、扬声器、锂电池和充电模块。
软件与项目
- Retro-Go:仓库 ducalex/retro-go,据其说明官方支持 ODROID-GO 与 MRGC-G32,并链接其他设备清单;功能包含收藏夹、最近游玩、游戏存档槽、封面图、Wi-Fi 文件管理等。
- 各模拟器:NES、GBC、SMS 等核心来自社区 Go-Play 固件的衍生版本,PCE-GO 基于 HuExpress。
- 用 ESP-IDF 构建,也可用 PlatformIO 管理自制项目。
- 自己做轻量游戏:在 Arduino-ESP32 或 MicroPython 里写贪吃蛇、俄罗斯方块,也是不错的入门项目。
入门路径
- 选一款 Retro-Go 官方列表里的成品,不要一开始就自己焊接。
- 下载对应的 .fw 固件或使用项目的安装方式,把固件放到 SD 卡,按设备说明刷入(以 ODROID-GO 为例,是在 SD 卡的固件目录放入 .fw,开机时按住指定键刷入)。
- 在 SD 卡中建好各系统的 ROM 目录。
- 调整画面缩放、音频、按键映射,体验存档和快进。
- 想自制:先读 Retro-Go 对设备适配的说明,使用已有开源设计。
进阶方向
- 做外壳:3D 打印掌机外壳,调整手感。
- 音质:给 ODROID-GO 加外置 DAC,据 Retro-Go 仓库有对应支持。
- 屏幕与按键优化:减少延迟,提高刷新率。
- 游戏开发:在 ESP32 上写自己的小游戏,是学习图形和输入处理的好场景。
注意事项
版权与 ROM 合法性
影响范围:模拟器本身通常是合法的软件,但游戏 ROM 受版权保护。从网上下载商业游戏 ROM 在许多司法辖区违法。
前置条件:只使用自己合法拥有的游戏备份,或使用开发者授权免费发布的自制游戏 (homebrew)。本站不提供也不链接任何 ROM 资源。
回退:删除 SD 卡上的相关文件即可。
- 性能:SNES 在 ESP32 上较慢,具体以设备和固件为准;部分系统需要 PSRAM。
- 电池:掌机的锂电池要有保护板,避免过放过充。
- 同名固件的 fork 很多,优先使用上游仓库和官方发布页。
- 屏幕和 SD 卡共用 SPI 总线时,可能出现卡顿,设计时留意。