跳转到内容

复古游戏机 ​

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 里写贪吃蛇、俄罗斯方块,也是不错的入门项目。

入门路径 ​

  1. 选一款 Retro-Go 官方列表里的成品,不要一开始就自己焊接。
  2. 下载对应的 .fw 固件或使用项目的安装方式,把固件放到 SD 卡,按设备说明刷入(以 ODROID-GO 为例,是在 SD 卡的固件目录放入 .fw,开机时按住指定键刷入)。
  3. 在 SD 卡中建好各系统的 ROM 目录。
  4. 调整画面缩放、音频、按键映射,体验存档和快进。
  5. 想自制:先读 Retro-Go 对设备适配的说明,使用已有开源设计。

进阶方向 ​

  • 做外壳:3D 打印掌机外壳,调整手感。
  • 音质:给 ODROID-GO 加外置 DAC,据 Retro-Go 仓库有对应支持。
  • 屏幕与按键优化:减少延迟,提高刷新率。
  • 游戏开发:在 ESP32 上写自己的小游戏,是学习图形和输入处理的好场景。

注意事项 ​

版权与 ROM 合法性

影响范围:模拟器本身通常是合法的软件,但游戏 ROM 受版权保护。从网上下载商业游戏 ROM 在许多司法辖区违法。

前置条件:只使用自己合法拥有的游戏备份,或使用开发者授权免费发布的自制游戏 (homebrew)。本站不提供也不链接任何 ROM 资源。

回退:删除 SD 卡上的相关文件即可。

  • 性能:SNES 在 ESP32 上较慢,具体以设备和固件为准;部分系统需要 PSRAM。
  • 电池:掌机的锂电池要有保护板,避免过放过充。
  • 同名固件的 fork 很多,优先使用上游仓库和官方发布页。
  • 屏幕和 SD 卡共用 SPI 总线时,可能出现卡顿,设计时留意。

参考资料 ​

ESP32 非官方中文调查手册,与乐鑫科技(Espressif Systems)无隶属关系。