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 仓库为唯一官方源。这一点在合规风险评估里很关键。

解决什么问题

  1. 老平台宝可梦在新硬件原生运行:在不依赖 Game Boy 模拟器(无 BIOS、无实时指令转译开销)的前提下,让玩家在桌面 PC、macOS、Linux(含 ARM64 单板机 / Steam Deck / Anbernic RG34XXSP)、Switch、Xbox Dev Mode、Android、iOS 上直接玩金/银并保留原汁原味的战斗机制。
  2. 保留原版"臭虫即特性"的玩法:内置 gen1_faithfulmodern_clean 两套 Gen I 战斗规则集——前者还原原版"100% 命中仍 255 概率 miss""focus energy 反向降暴击"等历史 bug,后者保留公式但移除这些歪打正着的怪癖。Gen II(金/银)始终跑自己 Gen 2 的规则,不受此开关影响。
  3. 可二次创作的 MOD 平台:自带原生的 mod 平台(内容注册表 / 事件钩子 / 每 mod 独立存档与选项 / 游戏内 mod 管理器),关卡可用 Tiled 编辑后导出为 mod;DRAMATIC_SHAPE 体素渲染器等官方示例 mod 已内置。
  4. 跨平台部署统一:同一份 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)

  1. 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.AppImagechmod +x 后运行; - 已有 LÖVE 11.5:Gen2Recomped-<ver>.lovelove Gen2Recomped-<ver>.love
  2. 首次启动选 .gb / .gbc 文件,导入约几秒(Gen 1)到数分钟(Gen 2),自动开始游戏。
  3. 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 / .gbc dump 拷进 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.mddocs/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.luaoptions.lua 与 ROM 衍生的 data/generatedassets/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.mdCONTRIBUTING-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。