Party Games Box - AI Passport 聚会游戏盒

20款聚会小游戏,集成在一个固件里,开机进菜单选择,三键操作。纯离线运行,无需网络。支持中文字体显示,基于 ESP32-C3 + LVGL 9.x 开发。

ESP32-C3 LVGL 9.x ESP-IDF v5.5.5 20款游戏 纯离线 中文字体

项目概览

这是一个 AI Passport 二创项目,将 20款聚会小游戏 整合到一个固件中。开机即进入游戏菜单,通过 UP / DOWN / OK 三个按键选择和游玩。所有游戏纯离线运行,不需要网络连接,非常适合朋友聚会线下使用。

项目基于 FoloToy/ai-passport 仓库开发,使用 ESP-IDF v5.5.5 框架,LVGL 9.x 图形库,C 语言编写。支持中文字体显示(子集化方案,仅包含游戏用到的 740 个汉字),每个游戏实现统一的 enter/exit/key 接口,模块化设计便于扩展。

关键数据

20
款聚会游戏
740
汉字字符子集
8MB
Flash 存储
3MB
应用分区
3
按键操作
0
网络依赖

游戏列表

# 名称 类型 玩法简述
1骰子比大小手气轮流掷骰,点数最大赢
2石头剪刀布对决两人同时出拳,淘汰赛制
3诚实硬币随机抛硬币,正面真心话反面大冒险
4猜数字推理1-100猜数,提示大了小了
5数字炸弹紧张随机炸弹数,踩到出局
6俄罗斯轮盘手气六格转轮轮流扣扳机
7真心话大冒险转盘选人+随机题目
8随机惩罚工具30+惩罚任务随机生成
9我从来没有破冰30+题目,做过的人计数
10国王游戏抽号当国王,指定号码任务
11反应速度战竞技随机延时后比谁先按
12两真一假推理三句话猜哪句是假的
13抽签鬼牌手气轮流抽签,抽到鬼牌受罚
14二选一讨论25+两难问题轮流选
15谁最有可能投票25+题目投票指向同一人
16词语炸弹紧张倒计时传着玩,爆炸出局
17西蒙说反应西蒙说了才做,没说做了淘汰
18默契大考验两人两人同题选答案,选一样得默契
19故事接龙创意随机开头+提示词轮流编故事
20谁是卧底推理相似词找不同,投票找出卧底

操作方式

  • UP / DOWN 短按:菜单中翻页选择;游戏中根据提示操作
  • OK 短按:菜单中进入游戏;游戏中确认/掷骰/抽签等
  • OK 长按:任何游戏中返回主菜单

技术规格

芯片ESP32-C3, 8MB Flash, 无 PSRAM
屏幕ST7789P3, 240x320, RGB565
按键UP / DOWN / OK (ADC 电阻梯)
UI 框架LVGL 9.x
开发框架ESP-IDF v5.5.5 (v5.5.3 亦可)
语言C
应用分区3MB (足够容纳20个纯文字逻辑游戏)
中文字体子集化方案,仅包含游戏用到的740个汉字,14px约202KB,20px约404KB

完整构建指南(Windows CMD)

本指南基于 Windows 10/11 + ESP-IDF v5.5.5,所有命令均在 CMD 命令行中执行。如使用 PowerShell 或 Linux/macOS,请自行替换对应命令。

第一步:安装 ESP-IDF 开发环境

1.1 下载并运行官方安装器

  1. 访问 ESP-IDF 下载页 下载 Tools Installer
  2. 运行安装器,选择 ESP-IDF v5.5.5(或 v5.5.3 亦可)
  3. 安装过程中会自动下载 Python、Git、工具链等依赖

1.2 安装过程中子模块更新失败的补救方法

安装器在"更新子模块"阶段可能因网络问题报错(退出代码 -1),这是 GitHub 下载不稳定导致的。

方法 A:手动补拉子模块(推荐)

:: 打开 CMD 后设置 PATH
set PATH=E:\Espressif\Espressif\tools\idf-python\3.11.2;E:\Espressif\Espressif\tools\idf-git\2.44.0\cmd;%PATH%

:: 进入 ESP-IDF 目录补拉子模块
cd C:\Espressif\frameworks\esp-idf-v5.5.5
git submodule update --init --recursive --depth 1

方法 B:配置 Git 代理(需要梯子)

git config --global http.proxy http://127.0.0.1:你的代理端口
git config --global https.proxy http://127.0.0.1:你的代理端口
cd C:\Espressif\frameworks\esp-idf-v5.5.5
git submodule update --init --recursive --depth 1

:: 用完后清除代理
git config --global --unset http.proxy
git config --global --unset https.proxy

方法 C:使用 Espressif 国内镜像

set IDF_GITHUB_ASSETS=https://dl.espressif.com/github_assets
cd C:\Espressif\frameworks\esp-idf-v5.5.5
git submodule update --init --recursive --depth 1

1.3 验证 ESP-IDF 安装

:: 每次打开新 CMD 窗口先初始化环境
set PATH=E:\Espressif\Espressif\tools\idf-python\3.11.2;E:\Espressif\Espressif\tools\idf-git\2.44.0\cmd;%PATH%
cd C:\Espressif\frameworks\esp-idf-v5.5.5
export.bat

:: 验证
idf.py --version

第二步:克隆 AI Passport 基础仓库

:: 1. 进入 ESP-IDF 目录
cd C:\Espressif\frameworks\esp-idf-v5.5.5

:: 2. 克隆仓库
git clone https://github.com/FoloToy/ai-passport.git

:: 3. 进入仓库目录
cd ai-passport

:: 4. 确保在 main 分支
git checkout main

:: 5. 创建并切换到开发分支
git switch -c feature/party-games

:: 6. 初始化子模块(需要梯子)
git submodule update --init --recursive --depth 1
先 git switch -c 再 git submodule update 更合理——先切到自己的开发分支,再拉子模块。

第三步:中文字体配置(可选,但推荐)

如果暂时不需要中文显示,可以跳过此步直接编译。不生成字体文件也能编译成功,但中文会显示空白,仅英文/数字正常。

3.1 安装 lv_font_conv 工具

:: 如果 npm 报 404 错误,使用官方源临时安装
npm install -g lv_font_conv --registry https://registry.npmjs.org/

:: 验证安装成功
lv_font_conv --version

3.2 准备中文 TTF 字体文件

推荐字体:思源黑体 (Noto Sans SC)、阿里巴巴普惠体等。将字体文件放到 main/fonts/ 目录。

3.3 提取汉字字符集

cd "项目目录\party-games"
python tools\extract_chars.py

该脚本会扫描所有游戏源文件中的汉字(约740个)+ CJK 标点 + 全角符号。

3.4 生成字体 C 文件(必须用 Python 脚本)

重要:CMD 的 set /p 读取 UTF-8 文件时会把中文当成 GBK 解码,导致生成的字体文件里中文全是方块。必须使用 Python 脚本 gen_font_py.py。
:: 自动查找字体文件并生成
python tools\gen_font_py.py

:: 或指定字体文件路径
python tools\gen_font_py.py "main\fonts\NotoSansCJKsc-Regular.otf"

第四步:复制项目文件到 ai-passport 仓库

:: 复制 main 目录下所有文件
xcopy /E /Y "项目目录\party-games\main\*" "C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport\main\"

:: 复制配置文件
copy /Y "项目目录\party-games\CMakeLists.txt" "C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport\"
copy /Y "项目目录\party-games\partitions.csv" "C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport\"
copy /Y "项目目录\party-games\sdkconfig.defaults" "C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport\"

第五步:编译

:: 初始化环境(每次开新窗口都要执行!)
set PATH=E:\Espressif\Espressif\tools\idf-python\3.11.2;E:\Espressif\Espressif\tools\idf-git\2.44.0\cmd;%PATH%
cd C:\Espressif\frameworks\esp-idf-v5.5.5
call export.bat

:: 编译
cd C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport
idf.py set-target esp32c3
idf.py build
看到 Chinese font files found - enabling USE_ZH_FONT 表示中文字体已启用。Project build complete 表示编译成功。

第六步:烧录到设备

方法一:ESP-IDF 命令行烧录

:: COM3 替换为实际端口
idf.py -p COM3 flash

:: 烧录并打开串口监视器
idf.py -p COM3 flash monitor

:: 按 Ctrl+] 退出监视器

方法二:Web Flasher 烧录

  1. 编译完成后,固件位于 build/party-games-merged.bin
  2. 打开 AI Passport Web Flasher
  3. 选择固件文件,浏览器串口连接设备并烧录

方法三:esptool 命令行

esptool.py --chip esp32c3 --port COM3 --baud 460800 write_flash 0x0 party-games-merged.bin

常见问题排查

ESP-IDF 安装器报子模块更新失败

网络问题。开梯子后在 CMD 里手动运行 git submodule update --init --recursive --depth 1,或使用国内镜像。

export.bat 报 "python" not found

需要先把 Python 加到 PATH: set PATH=E:\Espressif\Espressif\tools\idf-python\3.11.2;%PATH%,然后再运行 export.bat。或直接用开始菜单的 "ESP-IDF PowerShell" 快捷方式。

install.bat 报 SyntaxError

不要用 python install.bat 运行,install.bat 是批处理文件,直接在 CMD 里执行 install.bat。

npm install lv_font_conv 报 404

npm 配置了内部镜像源。使用 --registry https://registry.npmjs.org/ 参数指定官方源。

编译时报 bsp_pins.h: No such file or directory

子模块未更新。执行 git submodule update --init --recursive。

编译时中文显示为方块或问号

字体文件未生成、不含所需字符、或字符集编码错误。运行 python tools\extract_chars.py 提取所有汉字,再用 python tools\gen_font_py.py "字体路径" 生成字体文件。不要用 gen_font.bat,CMD 的 set /p 读取 UTF-8 文件时会把中文变成乱码。

烧录后屏幕全是方块

中文字体文件里的字符是乱码(编码问题),或者 range.txt 里缺少 ASCII 字符。必须用 Python 脚本重新提取字符集并生成字体,重新复制、编译、烧录。

编译报 lvgl/lvgl.h: No such file or directory

lv_font_conv 生成的字体文件里 #include "lvgl/lvgl.h" 路径不对。gen_font_py.py 会自动修复为 #include "lvgl.h"。

编译报 lvalue required as unary '&' operand

代码中 &GAME_FONT_14 应改为 GAME_FONT_14。font_config.h 里定义的已经是 (&font_zh_14) 指针,再取 & 就变成指针的指针了。

编译报 format '%d' expects argument of type 'int'

int32_t 在 ESP32-C3 上是 long int,需要用 %ld 替代 %d。

lv_font_conv 参数报错

不同版本的参数名不同:旧版 --force-fast-kernfmt local,新版 --force-fast-kern-format。用 lv_font_conv --help 查看支持的参数。

上传固件到玩法社区

AI Passport 官方玩法社区地址:https://ai-passport.folotoy.cn/plays/

途径一:GitHub 开源分享(推荐)

  1. 将项目推送到 GitHub 仓库
  2. 在 README 中写清楚构建步骤和依赖说明
  3. 在 Release 页面上传编译好的 .bin 固件文件
  4. 其他用户可以用 Web Flasher 或 esptool 刷入固件
  5. 可以在 FoloToy/ai-passport 仓库提 Issue 或 PR 告知官方

途径二:联系 FoloToy 官方上架

  1. 在 FoloToy 官方 Discord 联系官方团队
  2. 提供 GitHub 仓库链接和固件 .bin 文件
  3. 说明玩法介绍、操作方式和适用人数
  4. 官方审核通过后会上架到玩法社区页面

途径三:直接分享固件文件

  1. 编译完成后,固件位于 build/party-games-merged.bin
  2. 将 .bin 文件分享给朋友
  3. 对方打开 Web Flasher 选择该文件即可安装
自定义玩法不经过官方兼容性验证,请先在测试设备上充分测试。安装自定义固件会覆盖设备当前内容,建议保留官方固件以备恢复。

文件结构

party-games/
├── CMakeLists.txt              # 顶层 CMake 配置
├── partitions.csv              # Flash 分区表
├── sdkconfig.defaults          # ESP-IDF 配置
├── README.md                   # 项目说明
├── ESP-IDF-Install-Guide.html   # ESP-IDF 环境安装指南
├── Chinese-Font-Setup-Guide.html # 中文字体配置指南
├── main/
│   ├── CMakeLists.txt          # 组件 CMake (自动检测字体文件)
│   ├── font_config.h           # 字体别名配置
│   ├── main.c                  # 主入口 + 菜单系统
│   ├── games.h                 # 游戏统一接口声明
│   ├── game_common.h           # 通用工具头文件
│   ├── game_common.c           # 通用工具实现
│   ├── game_dice.c             # 1. 骰子比大小
│   ├── game_rps.c              # 2. 石头剪刀布
│   ├── game_coin.c             # 3. 诚实硬币
│   ├── game_guess.c            # 4. 猜数字
│   ├── game_bomb.c             # 5. 数字炸弹
│   ├── game_roulette.c         # 6. 俄罗斯轮盘
│   ├── game_truth.c            # 7. 真心话大冒险
│   ├── game_penalty.c          # 8. 随机惩罚
│   ├── game_never.c            # 9. 我从来没有
│   ├── game_king.c             # 10. 国王游戏
│   ├── game_react.c            # 11. 反应速度战
│   ├── game_twotruth.c         # 12. 两真一假
│   ├── game_drawcard.c         # 13. 抽签鬼牌
│   ├── game_picktwo.c          # 14. 二选一
│   ├── game_likely.c           # 15. 谁最有可能
│   ├── game_wordbomb.c         # 16. 词语炸弹
│   ├── game_simon.c            # 17. 西蒙说
│   ├── game_telepathy.c        # 18. 默契大考验
│   ├── game_story.c            # 19. 故事接龙
│   ├── game_spy.c              # 20. 谁是卧底
│   └── fonts/                  # 中文字体文件 (由工具生成)
│       ├── font_zh_14.c        #   14px 中文字体
│       └── font_zh_20.c        #   20px 中文字体
└── tools/                      # 字体生成工具
    ├── extract_chars.py        # 扫描源文件提取汉字字符集
    ├── gen_font_py.py          # Python 字体生成脚本(推荐)
    ├── gen_font.bat            # CMD 字体生成(不推荐,有编码问题)
    ├── gen_font.ps1             # PowerShell 一键生成
    ├── gen_font.sh              # Linux/macOS 一键生成
    ├── build_log.bat            # 编译并保存日志
    ├── full_build.bat           # 一键全流程构建脚本
    ├── chars.txt               # 提取出的字符集
    ├── chars_count.txt         # 字符统计信息
    └── range.txt               # 字符范围参考

开发过程全记录(每轮提问与解答)

以下是整个开发过程中,从构思到完成的每一轮提问与关键解答。记录了从方向选择、游戏选型、代码编写、字体配置、编译烧录到问题排查的完整历程。

1 方向探索:寻找新奇不烂大街的二创点子
根据这个帖子找一个方向给我选择,我确定好了你再开始做。如果我不满意就再找一些点子。我需要新奇的、有意思的、点子不要烂大街的,要实用的。你先思考吧。
分析了 AI Passport 的硬件特性(ESP32-C3、8MB Flash、屏幕+三键),结合"新奇+实用+不烂大街"的要求,提出了多个二创方向,包括电子宠物、迷你合成器、互动小说、聚会游戏盒等。每个方向附带可行性评估和实现难度分析,供用户选择。
2 约束确定:离线运行
最好是不要用到网络的,你换些提案。
排除了需要联网的方向(如实时翻译、天气站等),聚焦于完全离线的方案。提出了聚会游戏盒方向——把多个线下小游戏集成到一个固件里,开机即玩,三键操作,非常适合 AI Passport 的硬件特性。
3 方向确认:聚会小游戏
我给你个方向你找方案,搞成几个朋友聚会可以线下玩的小游戏这种。你找几种小游戏比如狼人杀、石头剪刀布、你说我猜等等。你多找些方向,起码给我50个方向吧,我来选一个。
列出了50个聚会小游戏方向,涵盖手气类、对决类、推理类、社交类、反应类、创意类等多种类型。每个游戏附带玩法简述和适用人数,方便用户挑选。
4 可行性确认:能否整合多游戏
可以把这些游戏都做出来吗?然后让用户选择那个游戏。能实现吗?还是只能一个游戏?
确认可行。设计了统一的游戏接口(enter/exit/key),通过菜单系统切换游戏。每个游戏独立实现,主程序通过函数指针调用对应游戏的入口函数。3MB 应用分区足够容纳多个纯文字逻辑游戏。
5 确定20款游戏并开始开发
需要这么搞,你来找优先级最高的20个游戏吧。后面要是需要我再让你加上。你要能实现出来,然后自己测试下,别到时候有bug。还要能安装进ai passport里面,别安装不了啊。
选择了20款优先级最高的游戏:骰子比大小、石头剪刀布、诚实硬币、猜数字、数字炸弹、俄罗斯轮盘、真心话大冒险、随机惩罚、我从来没有、国王游戏、反应速度战、两真一假、抽签鬼牌、二选一、谁最有可能、词语炸弹、西蒙说、默契大考验、故事接龙、谁是卧底。逐一实现 C 代码,设计统一接口,编写菜单系统,创建 CMakeLists.txt 和分区配置。
6 生成 ESP-IDF 环境安装和编译烧录步骤
请帮我生成 ESP-IDF 环境安装和编译烧录的详细步骤。
生成了完整的 ESP-IDF-Install-Guide.html,包含:下载安装器、子模块更新失败补救(代理/镜像)、Python 虚拟环境创建、环境验证、克隆仓库、子模块初始化、编译、烧录(命令行/Web Flasher/esptool)等全流程步骤。
7 配置中文字体
请帮我配置中文字体以支持游戏界面。
设计了中文字体子集化方案:1) 创建 font_config.h 定义字体别名 GAME_FONT_14/GAME_FONT_20;2) 编写 extract_chars.py 扫描所有源文件提取汉字字符集(约740个);3) 编写 gen_font_py.py 使用 lv_font_conv 生成 LVGL 格式 C 文件;4) 更新 CMakeLists.txt 自动检测字体文件条件编译;5) 生成 Chinese-Font-Setup-Guide.html 详细指南。
8 更新 README.md 并添加上传方法
你进行了修改你应该根据这些修改重新更新我的md文件吧。再加上如何把我写的这个固件上传到他们的玩法社区,怎么上传我写的这个固件呢?
更新了 README.md,新增"修改代码后重新编译烧录(快速流程)"和"修改代码后重新编译烧录(完整流程,含字体重新生成)"章节。添加了"上传固件到玩法社区"部分,包含三种途径:GitHub 开源分享、联系 FoloToy 官方上架、直接分享固件文件。
9 Git 命令顺序确认
git clone https://github.com/FoloToy/ai-passport.git cd ai-passport git checkout main git submodule update --init --recursive git switch -c feature/party-games,最后这个命名和倒数第二个命令搞反了可以吗?
可以。先 git switch -c feature/party-games 创建并切到开发分支,再 git submodule update --init --recursive 拉子模块,这样所有操作都在工作分支上进行,更合理。命令顺序已修正。
10 编译报错排查
这里报错了。
排查了多种编译错误:bsp_pins.h 缺失(子模块未更新)、COMPILE_DEFINITIONS 参数不支持(ESP-IDF 5.5.5 改用 target_compile_definitions)、esp_timer.h 缺失(CMakeLists.txt 添加 PRIV_REQUIRES esp_timer)、&GAME_FONT_14 指针错误(去掉 &)、%d 格式不匹配 int32_t(改用 %ld)、未使用变量警告被当错误(加 __attribute__((unused)))。
11 ESP-IDF PowerShell 终端在哪
打开 ESP-IDF PowerShell 终端 这个在哪里?
在 Windows 开始菜单搜索 "ESP-IDF PowerShell" 或 "ESP-IDF CMD",点击打开即可。这是 ESP-IDF 安装器自动创建的快捷方式,会自动初始化环境变量。如果没有,可以手动在 CMD 中运行 export.bat。
12 export.bat 闪退问题
export.bat 打开闪烁下终端就不见了。
不要直接双击 export.bat。正确做法:先打开 CMD 窗口(Win+R 输入 cmd),设置好 PATH(set PATH=E:\Espressif\...),然后在 CMD 里运行 call export.bat。或者直接使用开始菜单的 "ESP-IDF PowerShell" 快捷方式。
13 验证 ESP-IDF 是否安装正确
是这个吗?怎么看?
运行 idf.py --version,如果输出版本号(如 ESP-IDF v5.5.5)说明环境已就绪。如果报"不是内部命令"说明环境未初始化,需要先执行 set PATH 和 export.bat。
14 屏幕全是方框
不行啊,你这个全是方框根本看不了。
屏幕全是方框说明中文字体未正确生成或未包含所需字符。原因:1) 字体文件未生成;2) gen_font.bat 用 CMD 的 set /p 读取 UTF-8 文件导致中文变成乱码。解决方案:必须用 python tools\gen_font_py.py 生成字体,避免 CMD 编码问题。
15 第一步无输出
第一步什么都没有。
第一步运行 Python 脚本无输出,可能是 lv_font_conv 未安装。用 where lv_font_conv 或 npm list -g lv_font_conv 检查。如未安装,用 npm install -g lv_font_conv --registry https://registry.npmjs.org/ 安装。
16 部分方框:全局校验
还是有部分方框。我发现每个游戏里面都有方框,而且外面菜单最上面也是方框你没发现吗?外面菜单下面左右两边也是方框。我需要你做全局校验检查,仔细检查。
全局排查发现:1) LVGL 内部 UI 元素(边框、滚动条)使用默认 montserrat 字体而非中文字体;2) range.txt 里缺少空格字符;3) gen_font_py.py 读取 range.txt 时用 .strip() 删除了空格。修复:将 .strip() 改为 .replace('\n', '').replace('\r', ''),确保空格不被删除;JS 代码中用 .replace(/[\r\n]/g, '') 替代 .trim()。
17 空格字符导致方框
不是空格你也要添加进去啊,我怀疑就是空格导致的方框。
确认是空格字符缺失导致方框。修复 gen_font_py.py:将读取 range.txt 时的 .strip() 改为 .replace('\n', '').replace('\r', ''),确保空格不被删除。同步修改 JS 代码中读取符号的方式,用 .replace(/[\r\n]/g, '') 替代 .trim()。重新生成字体后,所有方框问题解决。
18 生成社区帖子
帮我生成帖子,把每一轮的提问以及md都弄进去。
生成了完整的社区帖子 HTML,包含项目介绍、20款游戏列表、操作方式、技术规格、完整构建指南、常见问题排查、上传方法,以及全部18轮开发过程的提问与解答记录,和 README.md 完整内容。

README.md 完整内容

以下是项目 README.md 的完整内容备份:

Party Games Box - AI Passport 聚会游戏盒

20款聚会小游戏,集成在一个固件里,开机进菜单选择,三键操作。支持中文字体显示。

操作方式

  • UP / DOWN 短按: 菜单中翻页选择;游戏中根据提示操作
  • OK 短按: 菜单中进入游戏;游戏中确认/掷骰/抽签等
  • OK 长按: 任何游戏中返回主菜单

快速构建(一键脚本)

cd "项目目录\party-games"
tools\full_build.bat

full_build.bat 会自动完成所有步骤:初始化环境 → 生成中文字体 → 复制文件 → 删除缓存 → 编译 → 烧录。每步都有错误检查,失败会提示原因。烧录前会提示输入 COM 端口号。

修改代码后快速重新编译烧录

如果只修改了 party-games\main\ 下的 .c 文件,不需要重新生成字体。每行单独复制粘贴到 CMD 执行:

set PATH=E:\Espressif\Espressif\tools\idf-python\3.11.2;E:\Espressif\Espressif\tools\idf-git\2.44.0\cmd;%PATH%
cd C:\Espressif\frameworks\esp-idf-v5.5.5
call export.bat
xcopy /E /Y "项目目录\party-games\main\*" "C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport\main\"
cd C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport
idf.py build
idf.py -p COM3 flash
如果改了 CMakeLists.txt 或 .h 文件,在 idf.py build 前加一步:rmdir /S /Q "C:\Espressif\frameworks\esp-idf-v5.5.5\ai-passport\build"

注意事项

  • 需要基于 FoloToy/ai-passport 仓库的 components/bsp 组件,克隆后需执行 git submodule update --init --recursive
  • LVGL 内存池保持 24KB,因为每个游戏的 UI 实际上比原版更简单(纯文本标签,无复杂图形)
  • 所有游戏纯离线运行,不需要网络
  • 长按 OK 键可从任何游戏返回主菜单
  • 固件不经过官方兼容性验证,请先在测试设备上验证
  • 中文字体文件未生成时编译仍可成功,但中文会显示空白,仅英文/数字正常
  • 框架和工具可能安装在不同盘符(如框架在 C 盘,工具在 E 盘),这是 ESP-IDF 安装器的正常行为