Retro emulation for the ODROID-GO and other ESP32 devices retro-go

ESP32 ⭐⭐☆☆☆ (2/5) 已发布
ducalex 1117 Stars GPL-2.0 BOM 完整度: /5 教程完整度: /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 等设备定制个性化固件
参与开源社区,贡献模拟器核心或新硬件支持