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 模型,方便用户自行制作。
技术规格
| 目标平台 | |
|---|---|
| 最低闪存 | |
| 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 上实现高性能的图形和音频模拟,学习各种优化技巧。