news 2026/8/21 16:53:07

一台ESP32能装下14台游戏机?Retro-Go复古模拟器5分钟快速上手指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一台ESP32能装下14台游戏机?Retro-Go复古模拟器5分钟快速上手指南

一台ESP32能装下14台游戏机?Retro-Go复古模拟器5分钟快速上手指南

【免费下载链接】retro-goRetro emulation for the ODROID-GO and other ESP32 devices项目地址: https://gitcode.com/gh_mirrors/re/retro-go

深夜刷到一条视频:UP主手里那台透明壳小掌机,居然在跑《塞尔达》《索尼克》和几十个童年游戏。评论区的热评是"求链接",而你盯着自己抽屉里那块积灰的ESP32开发板陷入了沉思——它,能行吗?

答案是:能行。Retro-Go 就是一个专门为 ESP32 芯片打造的开源复古游戏模拟器固件,它能把你手头几十块钱的开发板,变成一台能玩 NES、GameBoy、世嘉 MD 等十余种平台游戏的"十合一掌机"。不需要再花几百块买开源掌机,也不用忍受手机搓玻璃的手感,更不用跟电脑模拟器较劲——你要的童年,一个固件就装得下。

先回答一个问题:你为什么会搜索"复古掌机"

每个人的理由都差不多:

  • 手机模拟器:触摸屏没有实体按键,搓玻璃搓到怀疑人生,还经常误触。
  • 电脑模拟器:画质确实好,但坐在工位前玩《超级马里奥》,总感觉少了点什么。
  • 买开源掌机:动辄两三百起步,买回来新鲜两天,性价比存疑。

你会发现,痛点其实不在"能不能模拟",而在"有没有那台掌机的味道"——实体按键、掌上尺寸、往沙发一躺就开玩。而 Retro-Go 的思路很直接:既然 ESP32 芯片便宜、功耗低、还能接屏幕和按键,为什么不让它"兼职"当一台复古掌机?

上面这张图就是 Retro-Go 的真实界面:左边跑着 GameBoy 游戏,右边是世嘉游戏的运行画面,底部甚至实时显示"Speed: 100%(60/60)"的性能数据。它不是一个简单的模拟器,而是一整套嵌入式游戏系统

一张表看懂:这个固件里到底装了多少台"游戏机"

打开项目的launcher/main/applications.c,你会发现系统里注册了整整14 个平台。ROM 按目录分类存放,开机后启动器会自动扫描,做成游戏列表供你选择:

平台SD卡目录模拟器核心
FC / NES/roms/nes/nofrendo
SFC / SNES/roms/snes/snes9x
GameBoy/roms/gb/gnuboy
GameBoy Color/roms/gbc/gnuboy
GameBoy Advance/roms/gba/gbsp
Game & Watch/roms/gw/gw-emulator
Sega Master System/roms/sms/smsplus
Game Gear/roms/gg/smsplus
Mega Drive / Genesis/roms/md/gwenesis
ColecoVision/roms/col/smsplus
PC Engine/roms/pce/pce-go
Atari Lynx/roms/lnx/handy
MSX/roms/msx/fmsx
DOOM(含MOD)/roms/doom/prboom-go

注意最后一行——DOOM 不是模拟器,而是原生移植,连prboom.wad都给你备好了。想在掌机上打《毁灭战士》,这件事 Retro-Go 免费搞定。

5分钟快速上手:从吃灰板到开机就能玩

别被"刷固件"三个字吓到,整个过程大概就是泡一杯咖啡的时间。

第1步:确认你的板子在支持名单里

打开components/retro-go/targets/目录,你会发现一个"硬件天团":经典款的odroid-go、GBC 造型的mrgc-g32、透明 DIY 掌机byteboi-rev1、T 型键盘的t-deck-plus……每个子目录里都有现成的config.h引脚配置和env.py构建脚本。只要你的设备在上面,基本是"开箱即用"。

即使你的板子不在名单里,项目也提供了完整的移植流程,见根目录的PORTING.md,理论上任何带屏幕、按键和 SD 卡的 ESP32 都有机会"上岗"。

第2步:刷入固件

Retro-Go 的发布版一般提供两种文件:.fw(给 ODROID-GO 这类自带刷机流程的设备)和.img(给通用 ESP32 设备)。

  • ODROID-GO 用户:把retro-go_1.x_odroid-go.fw拷到 SD 卡的/odroid/firmware/,按住 B 键开机,在文件列表里选中刷入。
  • MRGC-G32 用户:固件放/espgbc/firmware/,按住 MENU 键开机。
  • 其他设备:用 USB 连上电脑,执行一条命令即可:
esptool.py write_flash --flash_size detect 0x0 retro-go_1.x_你的设备.img

第3步:按目录结构放好ROM

SD 卡根目录建roms文件夹,每个平台一个子目录,把对应 ROM 丢进去就完事了:

/sd/roms/ ├── nes/ # FC红白机游戏 ├── gb/ # GameBoy游戏 ├── gbc/ # GameBoy Color游戏 ├── md/ # 世嘉MD/Genesis游戏 ├── pce/ # PC Engine游戏 └── lnx/ # Atari Lynx游戏

开机进启动器,选平台、选游戏、按下 A 键——恭喜,你的童年回来了。🎮

第一次开机,你会发现这其实是个"系统"

如果你以为它只是个"能跑 ROM 的播放器",那就低估它了。Retro-Go 的启动器(launcher/main/)自带一整套现代游戏系统才有的功能:

  • 收藏夹与最近游玩:好游戏一键收藏,玩过的自动记录。
  • 多存档槽位:每个游戏多个存档位,还能保存屏幕截图当封面。
  • 游戏内菜单:游戏中按菜单键呼出,亮度、音量、缩放模式、滤镜、快进速度随手可调。
  • 封面艺术:把 160x168 的 PNG 封面放进/romart/,游戏列表瞬间从"文件管理器"变成"游戏商店"。
  • WiFi 文件管理器:连上局域网后,在电脑浏览器打开设备 IP,直接拖拽上传 ROM,再也不用反复拔 SD 卡。

这些细节堆在一起,决定了它是一款"成品固件",而不是"能跑起来的demo"。

为什么一套固件能通吃这么多设备?

这是 Retro-Go 最聪明的地方,也是它和普通模拟器项目的分水岭。

项目的核心是components/retro-go/这一层硬件抽象层rg_system.hrg_display.hrg_audio.hrg_input.hrg_storage.h……屏幕、声音、按键、存储全部被封装成统一接口。模拟器(比如retro-core/components/gnuboy/)根本不需要关心你的屏幕是 ILI9341 还是 ST7789,它只跟抽象层打交道。

你可以把它想象成手机充电器协议:模拟器是"充电头",设备是"充电线"。只要线材(targets/xxx/config.h)定义好自己的引脚和硬件参数,同一个充电头就能给所有手机充电。

这张图特别能说明问题——Retro-Go 甚至被装进了一把"尺子"里。连这种非常规形态的设备都能适配,从侧面印证了它的硬件抽象层有多省心。

进阶玩法:三个被低估的实用功能

1. 配置 WiFi,网页直接传游戏

在 SD 卡上新建/retro-go/config/wifi.json,最多可配置 4 个网络:

{ "ssid0": "my-network", "password0": "my-password" }

开机连上网后,启动器的"关于"菜单里能看到设备 IP,浏览器打开它,就能网页上传、下载、删除游戏文件。ROM 再也不用拔卡搬运了。

2. 换主题,把启动器变成你自己的样子

启动器的配色和布局由themes/default/theme.json控制,背景图也按平台分好类(background_gb.pngbackground_md.png……)。想深度定制?tools/gen_images.py能帮你把素材批量生成到位,改完 SD 卡拷贝即可生效。

3. 补上 BIOS,模拟器兼容性翻倍

部分平台有 BIOS 会更完美:GameBoy 的放/retro-go/bios/gb_bios.bin,GBC 的放gbc_bios.bin,MSX 则放进/retro-go/bios/msx/。放对位置,兼容性和开机画面都有惊喜。

新手最容易踩的3个坑

作为一个"过来人",这三个坑我替你提前踩过了:

  1. ROM 目录放错/roms/gb//roms/gbc/是分开的,GBC 游戏塞进 GB 目录虽然能玩但体验打折,别问我怎么知道的。
  2. 文件扩展名不支持。列表里看不到游戏?先确认扩展名是否在支持范围内(比如 NES 支持nes fc fds nsf zip),以及 SD 卡是否用了 FAT32 格式。
  3. 固件刷错设备.fw.img是两套流程,ODROID-GO 的固件刷到别的板子上会白屏。刷前务必核对型号。

下一步:从"玩"到"造"

Retro-Go 的魅力在于,当你玩腻了现成固件,它还是一座巨大的"学习金矿"。retro-core/里躺着 gnuboy、snes9x、nofrendo 这些经典模拟器核心,tools/里有rg_tool.pymkfw.py等一整套构建工具,translations.h里还有多语言体系等着你贡献一个中文之外的语言包。

想自己动手编译?把仓库克隆下来,按BUILDING.md配好 ESP-IDF 环境,然后跑:

git clone https://gitcode.com/gh_mirrors/re/retro-go cd retro-go python rg_tool.py build-fw launcher retro-core

一块几十块的开发板、一个周末的晚上、一台"十合一"掌机——Retro-Go 把"复古游戏"重新定义成了普通人也能上手的事。去把它点亮吧,屏幕亮起的那一刻,你会觉得这个周末值了。✨

【免费下载链接】retro-goRetro emulation for the ODROID-GO and other ESP32 devices项目地址: https://gitcode.com/gh_mirrors/re/retro-go

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/21 16:51:34

2026年转行网络安全最全优势解析!为什么网安是IT最后的避风港?

2026年转行网络安全最全优势解析!为什么网安是IT最后的避风港? 2026年的IT行业,早已告别“遍地高薪、轻松就业”的红利时代。 开发内卷严重、CRUD工作同质化严重、年年更新技术栈、35岁优化常态化;运维、测试岗位持续缩减、可替代…

作者头像 李华
网站建设 2026/8/21 16:49:32

安卓虚拟定位完整指南:用 FakeLocation 为每个 App 单独模拟位置

安卓虚拟定位完整指南:用 FakeLocation 为每个 App 单独模拟位置 【免费下载链接】FakeLocation Xposed module to mock locations per app. 项目地址: https://gitcode.com/gh_mirrors/fak/FakeLocation 你有没有遇到过这样的需求:想让某个 App …

作者头像 李华
网站建设 2026/8/21 16:48:07

chromatic 完全指南:用一段 JS 脚本改造任意 Chromium 应用

chromatic 完全指南:用一段 JS 脚本改造任意 Chromium 应用 【免费下载链接】chromatic Universal modifier for Chromium/V8 | 广谱注入 Chromium/V8 的通用修改器 项目地址: https://gitcode.com/gh_mirrors/be/chromatic chromatic 把任意基于 Chromium/V…

作者头像 李华
网站建设 2026/8/21 16:47:02

微信聊天记录完整留存指南:WeChatMsg一键导出与年度报告实战

微信聊天记录完整留存指南:WeChatMsg一键导出与年度报告实战 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we…

作者头像 李华