Anemoia-ESP32 Anemoia-ESP32

ESP32 2/5 已发布
Shim06 451 Stars GPL-3.0 BOM 完整度: 0/5 教程完整度: 0/5
Anemoia-ESP32

项目简介

ESP32的高性能NES模拟器。


Anemoia-ESP32 是一个将经典任天堂红白机(NES)模拟器完整移植到 ESP32 微控制器上的开源项目。该项目使用 C++ 语言编写,核心目标是在资源受限的嵌入式平台上实现流畅的 NES 游戏体验。它最大的亮点在于出色的性能优化,能够在 ESP32 上以接近原生 NTSC 制式的 60.098 FPS 运行绝大多数经典游戏,并且完整支持音频模拟,无需外挂 PSRAM 即可流畅运行。

标签

项目特点

**高性能模拟**:经过深度优化,可在 ESP32 上以 ~60.098 FPS (NTSC) 的速度运行,并支持完整的音频模拟。
**广泛的游戏兼容性**:实现了 6 种主要的 iNES 内存映射器 (Mapper 0, 1, 2, 3, 4, 69),覆盖约 79% 的 NES 游戏目录。
**多种硬件方案**:支持面包板原型、Cheap Yellow Display (CYD) 一体板,并提供了模块化和分立元件的定制 PCB 设计文件。
**丰富的输入方式**:支持 8 个触觉按键、NES/SNES/PS1/PS2 手柄,以及通过 WebSerial 或 UART 的串行控制器。
**灵活的 ROM 存储**:支持从 MicroSD 卡加载 ROM,并提供了 LRU 缓存和 Flash 分区 (MMAP) 两种后端存储方式。
**开源硬件**:项目提供了完整的硬件设计文件,包括原理图、PCB 布局、外壳和 3D 模型,方便用户自行制作。

技术规格

目标平台 双核 ESP32 (如 ESP32-DevKitC, ESP32-WROOM-32)
最低闪存 1 MB
PSRAM 不需要
显示屏幕 240x320 SPI TFT (ST7789 或 ILI9341)
音频输出 通过 PAM8403/PAM8302 放大器驱动扬声器
输入方式 8个触觉按键 / NES/SNES/PS1/PS2 手柄 / 串行控制器
ROM 存储 MicroSD 卡模块
模拟性能 ~60.098 FPS (NTSC),1帧跳帧,全音频模拟
支持 Mapper 0, 1, 2, 3, 4, 69
许可证 GNU General Public License v3.0 (GPLv3)

项目资源

物料清单 (BOM)

物料名称 数量 参考价格 备注
ESP32 开发板 (如 ESP32-DevKitC) 1 双核,1MB+ 闪存
240x320 ST7789 SPI TFT 屏幕 1 推荐使用
PAM8403 或 PAM8302 音频放大器模块 1
40mm 扬声器 1
MicroSD 卡模块 (3.3V) 1 注意 MISO 引脚的上拉电阻问题
12×12×7.3mm 触觉按键 8 用于 A, B, 方向, Start, Select
TP4056 充电模块 1 可选,用于电池供电
S09 降压转换器 1 可选,用于电池供电
SS12F17 滑动开关 1 可选,用于电源控制
杜邦线/排针/排母 若干 用于面包板搭建

3D 模型

模型名称文件名文件
Anemoia-ESP32-SMD-Bottom Anemoia-ESP32-SMD-Bottom.stl
Anemoia-ESP32-SMD-Buttons Anemoia-ESP32-SMD-Buttons.stl
Anemoia-ESP32-SMD-Top Anemoia-ESP32-SMD-Top.stl
Anemoia-ESP32-SMD Anemoia-ESP32-SMD.obj
Anemoia-ESP32-SMD Anemoia-ESP32-SMD.step
Anemoia-ESP32-Bottom Anemoia-ESP32-Bottom.stl
Anemoia-ESP32-Top Anemoia-ESP32-Top.stl
Anemoia-ESP32 Anemoia-ESP32.obj
Anemoia-ESP32 Anemoia-ESP32.step

能力画像

⚪ 记忆与知识检索: 1/5
🔵 逻辑推演: 1/5
⚪ 表达与交流: 1/5
⚪ 感知与观察: 1/5
🔵 数理与计算: 2/5
🔵 动手与操作: 4/5
⚪ 狂热与坚持: 3/5
⚪ 创造与创新: 2/5

所需技能

🔧 **动手能力**:需要具备基础的电子焊接和面包板搭建能力,能够根据原理图连接各模块。如果制作定制 PCB,则需要更精细的焊接技巧。 💻 **编程能力**:需要熟悉 C++ 和 ESP-IDF 或 Arduino 框架,能够配置开发环境、编译和烧录固件。了解 Git 版本控制。 ⚡ **电子电路**:需要理解基本的数字电路和模拟电路知识,例如 SPI 通信、GPIO 控制、音频放大电路等。能够阅读原理图和 PCB 设计文件。

适用场景

**复古游戏爱好者**:在 ESP32 上重温 NES 经典游戏,体验自制游戏机的乐趣。
**嵌入式开发学习**:作为一个综合性的嵌入式项目,学习如何将复杂的软件(模拟器)移植到资源受限的硬件上。
**硬件创客项目**:利用项目提供的开源硬件设计,制作一个属于自己的、功能完整的便携式 NES 游戏机。
**性能优化研究**:研究如何在 ESP32 上实现高性能的图形和音频模拟,学习各种优化技巧。