Anemoia-ESP32 Anemoia-ESP32

ESP32 ⭐⭐☆☆☆ (2/5) 已发布
Shim06 451 Stars GPL-3.0 BOM 完整度: /5 教程完整度: /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 模型,方便用户自行制作。

技术规格

目标平台
最低闪存
PSRAM
显示屏幕
音频输出
输入方式
ROM 存储
模拟性能
支持 Mapper
许可证

项目资源

物料清单 (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 模型

所需工具

工具用途是否必需
3D打印机 打印外壳和结构件 (可选) ▢ 推荐
焊台 焊接电子元件 (如使用PCB) ✅ 是
面包板 原型搭建和测试 ✅ 是
螺丝刀 组装外壳 ▢ 推荐
USB 数据线 为 ESP32 供电和编程 ✅ 是
电脑 编译和上传代码 ✅ 是

能力画像

记忆与知识检索
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 上实现高性能的图形和音频模拟,学习各种优化技巧。