UNDERdecoded/Gen2Recomped · 上手攻略
- 仓库:UNDERdecoded/Gen2Recomped
- 链接:https://github.com/UNDERdecoded/Gen2Recomped
- 分类:游戏 / 静态重制(recompilation) / LÖVE2D 引擎
- 作者:spark
- 更新:2026-08-15
是什么
Gen2Recomped 是把任天堂 Game Boy / Game Boy Color 上的《精灵宝可梦 金/银》(以及兼容的 Crystal、红/蓝/黄)静态重制为可在现代平台原生运行的 LÖVE2D(Lua)项目的 fork。它基于 Gen1Recomp 的 Gen I 引擎,在其上叠加了完整的 Gen II 模块:Gen 2 脚本虚拟机与指令表、城都与关都世界、昼夜系统、繁殖 / 寄养屋、宝可梦手表(Pokegear)、闪光、持有道具与金银标题序列。
项目本身不附带 ROM、不模拟 Game Byte CPU、不做反汇编——它是手写的 Lua 引擎与脚本 VM,游戏数据与图像由玩家在首次启动时导入的合法卡带 dump 经 SHA-1 校验后即时解码、缓存并释放内存;二次启动直接读取缓存。这个核心理念与近年 PortMaster 圈追求的"卡带即插件"思路一脉相承。
⚠️ 仓库 README 在顶部用显眼区块声明:第三方 gen1recomp[.]com 与本项目无关,请勿下载其托管物。所有内容以本 GitHub 仓库为唯一官方源。这一点在合规风险评估里很关键。
解决什么问题
- 老平台宝可梦在新硬件原生运行:在不依赖 Game Boy 模拟器(无 BIOS、无实时指令转译开销)的前提下,让玩家在桌面 PC、macOS、Linux(含 ARM64 单板机 / Steam Deck / Anbernic RG34XXSP)、Switch、Xbox Dev Mode、Android、iOS 上直接玩金/银并保留原汁原味的战斗机制。
- 保留原版"臭虫即特性"的玩法:内置
gen1_faithful与modern_clean两套 Gen I 战斗规则集——前者还原原版"100% 命中仍 255 概率 miss""focus energy 反向降暴击"等历史 bug,后者保留公式但移除这些歪打正着的怪癖。Gen II(金/银)始终跑自己 Gen 2 的规则,不受此开关影响。 - 可二次创作的 MOD 平台:自带原生的 mod 平台(内容注册表 / 事件钩子 / 每 mod 独立存档与选项 / 游戏内 mod 管理器),关卡可用 Tiled 编辑后导出为 mod;DRAMATIC_SHAPE 体素渲染器等官方示例 mod 已内置。
- 跨平台部署统一:同一份 payload 在一次构建中产出 Windows(zip + msix)、macOS、Linux x86-64 / ARM64、Android APK、Switch NRO、Xbox UWP、Anbernic RG34XXSP、iOS IPA 等十余种产物,每份 release 配
sha256sums.txt。
快速安装
⚠️ 项目不打包 ROM。所有平台都要求首次启动时自带合法的美版金/银/水晶/红/蓝/黄卡带 dump。可接受的 SHA-1 列表(节选自 README 表格): - Gold:
d8b8a3600a465308c9953dfa04f0081c05bdcb94(2 MiB) - Silver:49b163f7e57702bc939d642a18f591de55d92dae(2 MiB) - Crystal (Rev 1):f2f52230b536214ef7c9924f483392993e226cfb(2 MiB) - Red:ea9bcae617fdf159b045185467ae58b2e4a48b9a(1 MiB) - Blue:d7037c83e1ae5b39bde3c30787637ba1d4c48ce2(1 MiB)
桌面端(推荐路线:下载 release zip)
- 进 Releases 选对应平台的 zip:
- Windows:
Gen2Recomped-<ver>-windows.zip→ 解压后双击.exe; - macOS:Gen2Recomped-<ver>-macos.zip→ 解压后拖入 Applications; - Linux x86-64 / Steam Deck:Gen2Recomped-<ver>-linux.zip→ 解压后跑内置 AppImage; - Linux ARM64(Raspberry Pi 等):Gen2Recomped-<ver>-linux-arm64.AppImage→chmod +x后运行; - 已有 LÖVE 11.5:Gen2Recomped-<ver>.love→love Gen2Recomped-<ver>.love。 - 首次启动选
.gb/.gbc文件,导入约几秒(Gen 1)到数分钟(Gen 2),自动开始游戏。 - Windows Defender 误报:
Trojan:Win32/Wacatac!ml是已知误报(Defender 对带附加 game archive 的未签名 LÖVE 可执行文件一律质疑)。请用 release 自带的sha256sums.txt校验,并自行到 VirusTotal 复查——其他引擎普遍返回干净。
桌面端(从源码编译)
依赖:LÖVE 11.x + Python 3(含 venv)。
# Debian / Ubuntu
sudo apt install love python3 python3-venv
# Fedora
sudo dnf install love python3
# Arch
sudo pacman -S love python
# 任意发行版(Flatpak)
flatpak install flathub org.love2d.love2d
macOS 首次脚本会自动装 LÖVE;其它系统先装好。然后:
chmod +x scripts/*.sh # 首次需要
scripts/setup.sh --rom "/path/to/Poke Gold.gbc" # 或 Silver.gbc / Red.gb …
scripts/run.sh
# scripts/play.sh = 上面两步合一;首次导入后可直接 love .
Windows 端 PowerShell:
# 依赖也可走 winget
winget install --exact --id Python.Python.3.12
winget install --exact --id Love2d.Love2d
powershell -ExecutionPolicy Bypass -File scripts\setup.ps1 -Rom C:\path\to\Gold.gbc
powershell -ExecutionPolicy Bypass -File scripts\run.ps1
# scripts\play.ps1 一步到位;首次导入后 love . 即可
-ExecutionPolicy Bypass 仅对本次调用生效,不改系统策略。
主机 / 掌机
- Nintendo Switch:需已装 Atmosphère + hbmenu。解压
Gen2Recomped-<ver>-switch.zip到 microSD 根目录,得到switch/gen2recomp/{gen2recomp.nro, Gen2Recomp/{imports,exports}}。把.gb/.gbcdump 拷进imports/,文件名无关(按 SHA-1 匹配);hbmenu 中按住 R 在 HOME 菜单启动 title override 进入;launcher 内按 Import 扫描。OTA launcher 是唯一能"自替换"的 console 构建。 - Xbox Dev Mode:需开发者模式主机(零售机无法安装)。
Gen2Recomped-<ver>-xbox-uwp.zip是 UWP 包,通过 Xbox Device Portal 或配对 PC 的Add-AppxPackage安装。构建细节见ports/uwp/BUILD.md。 - Anbernic RG34XXSP(Stock OS 64-bit MOD + PortMaster):
Gen2Recomped-<ver>-rg34xxsp-stockos64-mod.zip自带 LÖVE 运行时,解压到卡的roms/PORTS/,把 dump 放到gen2recomp/lovegame/,从 Ports 启动。其它 ARM64 掌机用通用linux-arm64.AppImage。 - Android:装 APK,首次启动走系统文件选择器;无文件选择器的设备需把 dump 拷入 App 自身目录(具体路径启动器会显示)。
mobile/ANDROID.md有打包细节。 - iOS:无 App Store 版。用 AltStore 从 Windows / Mac 侧载
.ipa;从源码构建 + 安装见docs/ios-install.md与docs/ios-sideload.md。
Windows MSIX 特殊路径
需要同时下载 .msix 与 .cer(证书不导入则报 0x800B010A 看似没装):
Import-Certificate -FilePath .\Gen2Recomped-<ver>-windows.cer `
-CertStoreLocation Cert:\LocalMachine\TrustedPeople
Add-AppxPackage .\Gen2Recomped-<ver>-windows.msix
LocalMachine,不是 CurrentUser——App Installer 只读机器 store。嫌麻烦直接用 .zip 包,功能完全一样。
核心用法
操作
| 动作 | 键盘 | 手柄 |
|---|---|---|
| 移动 | 方向键 / WASD | 十字键 / 左摇杆 |
| A | Z / Enter / Space | A |
| B | X / Backspace | B |
| Start | Escape | Start |
| Select | Tab / Shift | Back / Select |
可在游戏内 OPTIONS → CONTROLS 重绑。
全局功能键
-/=:缩放(overworld;也可用鼠标滚轮)2:切换 COLORS 配色3:切换 TILT(自由探索 overworld 3D 倾斜)4:切换全部 ZOOM 等级5:切换 GBC 色彩特效F1:存读档保存;F2:读取F10:打开 / 关闭 mod 管理器
COLORS / TILT / ZOOM / GBC FX / VOID FILL 也会写进 options.lua 永久保存。
性能分级(OPTIONS → PERFORMANCE)
固定步长游戏逻辑在所有分级完全一致;分级只影响外观层:
- HIGH:全部可选效果开;
- BALANCED:关 3D 倾斜与 GBC FX;
- LOW:再关 survey zoom、限帧——给弱机用;
- AUTO(默认):ARM 掌机 → LOW;手机 → BALANCED;普通桌面 → HIGH。降级会"隐藏"而非清空 tilt/zoom/GBC-FX 偏好。
战斗规则集(OPTIONS → RULESET)
只影响 Gen I 的怪癖,公式相同。gen1_faithful(默认)保留原版 7 条怪癖;modern_clean 关闭其中 5 条(保留 critUsesBaseSpeed)。Gen 2(金/银)始终跑自己的 Gen 2 规则,不受开关影响。
可携模式(Portable Mode)
桌面端默认存档 / 选项 / 数据缓存在 OS 标准目录。创建空 portable.txt 放在程序目录旁(.app / .exe 旁;从源码运行时与 main.lua / conf.lua 同级)即切换到"便携模式"——save.lua、options.lua 与 ROM 衍生的 data/generated、assets/generated 缓存都写到该目录。删除 portable.txt 即回到 OS 标准目录,但已写入的文件不会自动搬迁。桌面端专属,对 Android / iOS 无效。
双机联机
START → LINK 直接通过 UDP 连接两份客户端。
调试 / 测试套件
- 依赖
tools/vendor/symbols/{pokegold.sym, pokesilver.sym};scripts/setup_gen2_symbols.ps1负责拉取。 - 回归测试在
tests/drivers/,每个 driver 用POKEPORT_VERSION=gold POKEPORT_DRIVER=tests/drivers/<name>.lua love .运行。
MOD 平台
- 内容注册表 / 事件钩子 / 每 mod 独立存档与选项 / 游戏内 mod 管理器:见
docs/modding.md与CONTRIBUTING-mods.md。 - 关卡可在 Tiled 编辑后导出为 mod:
docs/tiled-map-editing.md。 - 内置示例 mod(含为 Gen II 扩展的 DRAMATIC_SHAPE 体素渲染器):
mods/。
自动更新
桌面 + 移动端自带 GitHub Releases 自更新;主机端不能自替换(打包应用无法改写自己),需按原安装路径重装——Switch 例外,它的 OTA launcher 会原地替换 NRO。详见 docs/updater.md。
典型适用场景
- 怀旧 / 重玩:想在 Steam Deck / 桌面 / 掌机上原生分辨率、原汁原味再玩一次金银,又不想用模拟器。
- MOD 开发:想用 Tiled 编辑关卡、做自定义剧情 / 战斗 / 体素渲染 mod。引擎、mod API、事件钩子全开源可读。
- 跨平台分发:一次构建产出十余种平台产物,适合想"分发到 Switch + Android + 桌面"的项目参考其 CI 与签名链路(MSIX 证书机制 / UWP 上传 / Anbernic PortMaster 打包)。
- 重制参考实现:不模拟 CPU、用高层语言手写 VM + 用玩家合法 dump 解码图形 / 音频——这个范式对其他老平台静态重制项目(特别是 Zelda / Mario / Metroid 系列)有参考价值。
坑与注意
- ROM 合规:必须自备合法卡带 dump;不接受下载。导入阶段校验 SHA-1,校验通过后立即从内存释放,不会写入缓存目录,仅生成私有数据缓存。
- Windows Defender 误报:见上;务必校验
sha256sums.txt。 - MSIX 证书:
CurrentUser一定失败;必须LocalMachine\TrustedPeople。嫌麻烦用.zip。 - Switch:需 Atmosphère + hbmenu;零售机无法直接安装。
- Xbox:需 Dev Mode——零售机无法安装。
- iOS:无 App Store;只能 AltStore 侧载。
- Linux Wayland 老版 LÖVE:用
SDL_VIDEODRIVER=x11经 XWayland 启动可避免窗口 / 输入怪癖。 - Wayland 隐藏 USB 手柄:确认用户在
input组,或装好对应 udev 规则。 - Console 更新:除 Switch 外需手动重装。
- 多版本并存:每个版本都能独立导入与并存;删除
portable.txt切换目录时,已写入文件不会自动迁移——自行 copy。 - 第三方
gen1recomp[.]com:与本项目无关,勿下载其托管物;GitHub 仓库是唯一官方源。 - 许可证双层:上游 Gen1Recomp 继承部分 + 后续共享引擎 = MIT;Gen 2 新增组件(导入器、脚本 VM、世界、战斗) = source-available(© 2026 UNDERdecodedHD)——可读、可运行、可改己本、可写甚至可卖 mod,但不可再分发或 fork。具体名单见
LICENSE。⚠️ 这意味着 fork 本项目做衍生作品前必须看清 LICENSE 列表里的 Gen II 文件。
与同类对比
| 项目 | 形态 | 关键差异 |
|---|---|---|
| Gen1Recomp(上游) | 同范式 Lua/LÖVE2D 重制 | 只覆盖 Gen I;Gen2Recomped 在其上加 Gen II |
| mgba / SameBoy / Gambatte | 传统 HLE 模拟器 | 实时指令转译、需要 BIOS、跨平台一致但资源占用更高 |
| Pokemon Reverse Engineering (pret) 项目 | 反汇编 + C 重写 | 输出真原生二进制,但构建链路复杂、对 ROM 重度依赖、社区驱动偏向教学 |
| 商业重制(官方 Let's Go / BDSP) | 官方 | 不开源、不跨平台、与原作机制有偏离 |
| 商业模拟器(NSO GB / GBA) | 官方云模拟 | 不开源、需订阅、机制被任天堂微调 |
Gen2Recomped 的独特定位:不上模拟器、不做反汇编;高层手写 VM + 玩家自备 ROM 解码图形音频——取"低硬件门槛"与"代码可读"的中间点。
一句话推荐结论
想在新硬件原生玩金银 / 做 Pokemon MOD 的玩家与开发者,首选;只要搞清楚许可证双层 + 自备合法 dump + Windows Defender 误报 + 主机端手动更新这四个注意点,其余都顺畅。
⚠️ 不确定项
- 当前 release 版本号与发布时间:本次抓取未直接拉到最新 release tag,建议读者进 Releases 页 自查。
- Switch Atmosphère / Xbox Dev Mode 安装步骤为常识性指引,未针对特定固件版本核验;操作前请以官方文档为准。
- iOS AltStore 流程随 AltStore 版本演进变化较快,以 docs/ios-sideload.md 当时为准。
来源:仓库 README(GitHub)、tavily web_search(Reddit r/AynThor、YouTube、Retro Handhelds 评测)、Gen1Recomp 同源 README。