Anemoia-ESP32
Anemoia-ESP32
ESP32
2/5
已发布
项目简介
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 模型
能力画像
⚪ 记忆与知识检索: 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 上实现高性能的图形和音频模拟,学习各种优化技巧。