# hmnes **Repository Path**: yyz116/hmnes ## Basic Information - **Project Name**: hmnes - **Description**: 鸿蒙NES游戏模拟器,移植infoNES - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-23 - **Last Updated**: 2025-08-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # InfoNES 模拟器 - HarmonyOS 移植版 这是一个将 InfoNES 游戏模拟器移植到 HarmonyOS 平台的项目。 ## 项目概述 InfoNES 是一个开源的 NES (Nintendo Entertainment System) 游戏模拟器,本项目将其移植到了 HarmonyOS 平台上,使用 ArkTS 和 C++ NAPI 技术栈。 ## 功能特性 - ✅ NES 模拟器核心功能 - ✅ 虚拟按键控制 - ✅ ROM 文件加载 - ✅ 游戏画面显示 - ✅ 暂停/继续/重置功能 - ✅ 帧率显示 ## 技术架构 ### 后端 (C++ NAPI) - `infones.h` - 核心头文件,定义 NES 系统结构和接口 - `infones.cpp` - 模拟器核心实现 - `napi_init.cpp` - NAPI 接口封装 ### 前端 (ArkTS) - `InfoNES.ets` - 模拟器接口类 - `NESCanvas.ets` - 游戏画面显示组件 - `ROMLoader.ets` - ROM 文件加载组件 - `Index.ets` - 主页面 ## 项目结构 ``` entry/src/main/ ├── cpp/ │ ├── infones.h # NES 模拟器头文件 │ ├── infones.cpp # NES 模拟器实现 │ ├── napi_init.cpp # NAPI 接口 │ └── CMakeLists.txt # C++ 构建配置 └── ets/ ├── utils/ │ └── InfoNES.ets # 模拟器接口类 ├── components/ │ ├── NESCanvas.ets # 游戏画面组件 │ └── ROMLoader.ets # ROM 加载组件 └── pages/ └── Index.ets # 主页面 ``` ## 构建和运行 1. 确保已安装 DevEco Studio 和 HarmonyOS SDK 2. 克隆项目到本地 3. 在 DevEco Studio 中打开项目 4. 构建并运行到设备或模拟器 ## 使用说明 1. 启动应用后,会看到 InfoNES 模拟器界面 2. 点击"选择 ROM 文件"按钮选择 NES ROM 文件 3. ROM 加载成功后,游戏画面区域会显示游戏内容 4. 使用虚拟按键控制游戏 5. 可以使用暂停/继续/重置按钮控制模拟器 ## 按键映射 - **方向键**: ↑↓←→ 控制方向 - **A 键**: 动作键 - **B 键**: 动作键 - **START 键**: 开始/暂停游戏 ## 开发状态 当前版本是一个基础实现,包含: - [x] 基本的 NES 模拟器框架 - [x] 测试图案生成和显示 - [x] 虚拟按键输入 - [x] ROM 文件加载接口 - [ ] 完整的 NES CPU 模拟 - [ ] 完整的 PPU 图形处理 - [ ] 完整的 APU 音频处理 - [ ] 完整的控制器模拟 ## 注意事项 1. 当前版本主要用于演示框架,实际的 NES 游戏模拟功能需要进一步完善 2. ROM 文件需要用户自行提供,请确保拥有合法的 ROM 文件 3. 项目使用了 HarmonyOS 的 NAPI 技术,需要相应的开发环境支持 ## 许可证 本项目基于开源许可证发布,具体许可证信息请查看 LICENSE 文件。 ## 贡献 欢迎提交 Issue 和 Pull Request 来改进这个项目。 ## 联系方式 如有问题或建议,请通过 GitHub Issues 联系。