# 电视小霸王 **Repository Path**: ruirui-study/flutter_fc_game_tv ## Basic Information - **Project Name**: 电视小霸王 - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-14 - **Last Updated**: 2026-04-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FC 游戏盒子 - Android TV 游戏模拟器应用 一个基于 Flutter 开发的 Android TV 专用 FC(NES) 游戏盒子应用,支持内置游戏、自定义添加游戏、多种控制方式和存档功能。 ## 功能特性 ### ✅ 已实现功能 1. **游戏管理** - 内置 10 款经典 FC 游戏 - 支持用户自定义添加 .nes 文件 - 游戏库网格展示 - 游戏搜索功能 - 游戏详情查看 2. **控制器支持** - TV 遥控器导航 - 蓝牙游戏手柄支持 - 有线手柄 (USB) 支持 - 可自定义按键映射 3. **存档功能** - 即时存档 (Save States) - 多存档位支持 - 存档管理界面 4. **模拟器功能** - 游戏加载和运行框架 - 暂停/继续/重置功能 - FPS 显示 - 音量和视频设置 5. **UI/UX** - TV 优化的暗色主题 - 大字体和高对比度设计 - 遥控器导航支持 - 横屏显示 ### 🚧 待完善功能 1. **模拟器核心** - 需要集成实际的 NES 模拟器库 - 音频输出实现 - 视频渲染优化 2. **游戏资源** - 内置游戏 ROM 文件 - 游戏封面图片 3. **高级功能** - 游戏封面自动抓取 - 云存档 - 成就系统 ## 项目结构 ``` lib/ ├── main.dart # 应用入口 ├── app.dart # 应用主组件 ├── config/ # 配置文件 │ ├── routes.dart # 路由配置 │ └── theme.dart # 主题配置 ├── models/ # 数据模型 │ ├── game.dart # 游戏模型 │ ├── save_state.dart # 存档模型 │ └── controller_config.dart # 控制器配置 ├── providers/ # 状态管理 (Riverpod) │ ├── game_provider.dart # 游戏列表状态 │ ├── emulator_provider.dart # 模拟器状态 │ └── controller_provider.dart # 控制器状态 ├── screens/ # 页面 │ ├── home/ # 首页 (游戏库) │ ├── emulator/ # 模拟器页面 │ ├── game_details/ # 游戏详情 │ ├── save_manager/ # 存档管理 │ ├── settings/ # 设置页面 │ └── controller_config/ # 控制器配置 ├── widgets/ # 组件 │ ├── game_card.dart # 游戏卡片 │ └── game_grid.dart # 游戏网格 ├── services/ # 服务层 │ ├── emulator_service.dart # 模拟器服务 │ ├── game_scanner_service.dart # 游戏扫描服务 │ └── save_service.dart # 存档服务 └── utils/ # 工具类 ├── constants.dart # 常量定义 └── helpers.dart # 辅助函数 android/ └── app/src/main/ └── kotlin/.../ └── emulator/ # 原生模拟器代码 ├── EmulatorPlugin.kt ├── NesCore.kt └── InputMapper.kt ``` ## 开发环境要求 - Flutter SDK: >= 3.9.2 - Android Studio - Android SDK: API 21+ - 推荐在 Android TV 真机或模拟器上测试 ## 安装和运行 ### 1. 克隆项目 ```bash git clone cd fc_game_tv ``` ### 2. 安装依赖 ```bash flutter pub get ``` ### 3. 运行应用 ```bash flutter run ``` ### 4. 构建 APK ```bash flutter build apk --release ``` ## 使用方法 ### 添加自定义游戏 1. 将 .nes ROM 文件放到设备的 `FC_Roms` 文件夹 2. 打开应用,应用会自动扫描并添加游戏 3. 在游戏库中点击游戏即可开始游玩 ### 控制器配置 1. 连接蓝牙手柄或使用 TV 遥控器 2. 进入设置 -> 手柄按键配置 3. 点击要映射的按键,按下手柄上对应的按钮 4. 保存配置 ### 存档管理 1. 在游戏中点击暂停按钮 2. 选择存档位保存游戏 3. 下次游玩时可从存档位继续 ## 技术栈 - **前端**: Flutter + Dart - **状态管理**: Riverpod - **路由**: GoRouter - **本地存储**: Hive - **原生开发**: Kotlin (Android) - **架构**: MVVM ## 注意事项 ### 版权问题 - 内置游戏 ROM 可能涉及版权问题 - 建议仅用于学习和个人使用 - 不提供任何 ROM 文件下载 ### 性能优化 - 在低端 TV 设备上可能需要优化 - 建议使用硬件加速 - 模拟器核心需要原生实现以获得最佳性能 ## 下一步开发计划 1. **集成模拟器核心** - 研究并集成开源 NES 模拟器库 - 实现音频和视频输出 - 优化性能 2. **完善 UI** - 添加游戏封面 - 优化动画效果 - 添加加载状态 3. **测试** - Android TV 真机测试 - 不同品牌手柄兼容性测试 - 性能测试和优化 ## 许可证 MIT License ## 贡献 欢迎提交 Issue 和 Pull Request! ## 联系方式 如有问题或建议,请提交 Issue。