Retro emulation for the ODROID-GO and other ESP32 devices
retro-go
ESP32
⭐⭐☆☆☆ (2/5)
已发布
项目简介
ODROID-GO及其他ESP32设备的复古模拟。
Retro-Go 是一款专为 ESP32 芯片设备设计的开源固件,旨在让用户在掌上游戏机上流畅运行经典复古游戏。该项目官方支持的设备包括 ODROID-GO 和 MRGC-G32,同时也兼容其他基于 ESP32 的硬件。其核心价值在于,通过深度优化,在资源极其有限的微控制器上实现了多款经典游戏主机的模拟,大幅降低了 CPU、内存和闪存的占用,同时保持了极高的兼容性。
标签
项目特点
**多平台模拟**:支持 NES、GameBoy/Color、Game Gear、SNES、Sega Master System、PC Engine/TurboGrafx-16、Atari Lynx 等多种经典游戏机。
**内置 Doom 移植**:除了模拟器,还包含了原汁原味的 Doom 游戏引擎,可直接在 ESP32 设备上运行。
**统一启动器**:提供一个美观的图形化启动器界面,方便浏览、选择和启动不同平台的游戏 ROM。
**硬件兼容性广**:不仅支持经典的 ODROID-GO,还适配了 ESP32、ESP32-S3 以及 MRGC-G32 等多种开发板。
**开源与社区驱动**:基于 GPL-2.0 许可证,代码完全开源,社区活跃,持续更新和修复。
技术规格
| 目标硬件 | ODROID-GO, ESP32, ESP32-S3, MRGC-G32 |
|---|---|
| 核心处理器 | ESP32 / ESP32-S3 (Xtensa LX6/LX7) |
| 支持的游戏平台 | NES, GameBoy, GameBoy Color, Game Gear, SNES, Sega Master System, PC Engine, Atari Lynx, Doom |
| 显示驱动 | ILI9341 (320x240) / ST7789 (240x240) |
| 音频输出 | I2S DAC (MAX98357A 或内置 DAC) |
| 输入方式 | 按键矩阵 (GPIO) |
| 存储介质 | MicroSD 卡 (SPI 模式) |
| 固件格式 | ESP-IDF 项目,基于 C 语言 |
| 许可证 | GPL-2.0 |
项目资源
物料清单 (BOM)
| 物料名称 | 数量 | 参考价格 | 备注 |
|---|---|---|---|
| ESP32 开发板 (如 ESP32-DevKitC) | 1 | — | 或 ESP32-S3、ODROID-GO |
| ILI9341 2.8寸 TFT 屏幕 (320x240) | 1 | — | 或 ST7789 1.3寸屏幕 |
| MicroSD 卡 (建议 8GB 以上) | 1 | — | 用于存放游戏 ROM |
| MAX98357A I2S 功放模块 | 1 | — | 可选,用于音频输出 |
| 3W 小喇叭 (4Ω/8Ω) | 1 | — | 配合功放模块使用 |
| 按键 (轻触开关) | 8-12 | — | 方向键 + ABXY + Start/Select |
| 杜邦线 / 排线 | 若干 | — | 用于连接各模块 |
| 锂电池 (如 18650) 或 USB 供电 | 1 | — | 根据开发板供电需求选择 |
所需工具
| 工具 | 用途 | 是否必需 |
|---|---|---|
| ESP-IDF (Espressif IoT Development Framework) | 编译和烧录固件 | ✅ 是 |
| USB 数据线 | 连接开发板与电脑进行烧录 | ✅ 是 |
| 烙铁与焊锡 | 焊接按键、屏幕等硬件模块 | ▢ 推荐 |
| 3D 打印机 | 打印外壳与按键支架 | ▢ 推荐 |
| 逻辑分析仪 | 调试按键和屏幕时序 | ▢ 推荐 |
| 串口调试工具 (如 PuTTY) | 查看固件运行日志 | ▢ 推荐 |
能力画像
**记忆与知识检索**:3/5 — 需要查阅大量模拟器配置和 ROM 文件格式资料。
**动手与操作**:4/5 — 涉及焊接、接线、组装外壳等硬件动手环节。
**编程与算法**:3/5 — 需要修改 C 语言源码、配置 ESP-IDF 编译环境,但无需从零写算法。
**设计与建模**:2/5 — 如果自制外壳,需要简单的 3D 建模能力。
**实验与调试**:4/5 — 经常需要调试屏幕驱动、音频输出、按键映射等硬件问题。
**协作与分享**:3/5 — 可通过 GitHub Issue 和 PR 参与社区,分享自己的固件配置。
**学习与研究**:4/5 — 深入理解嵌入式系统、模拟器原理和 ESP32 外设驱动。
**系统集成**:3/5 — 需要将多个硬件模块(屏幕、SD卡、音频、按键)整合为一个完整设备。
项目图库
所需技能
基础的 C 语言编程能力
熟悉 ESP-IDF 开发环境搭建与使用
能够使用 Git 进行版本管理
基础的电子焊接与电路连接技能
了解 SPI、I2S、GPIO 等嵌入式通信协议
能够阅读英文技术文档和社区讨论
适用场景
自制复古游戏掌机,重温经典游戏
学习嵌入式系统开发,尤其是 ESP32 平台
作为开源硬件教学项目,展示软硬件结合
在低成本硬件上体验 Doom 等经典 FPS 游戏
为 ODROID-GO 等设备定制个性化固件
参与开源社区,贡献模拟器核心或新硬件支持