Switch游戏原生移植与改数值

SKILL开发

原名 Switch 原生移植与数值修改 · 标识 switch-native-modding

开发 未标注权限 许可证不明确
安装这个技能

把 Switch 游戏原生移植到 macOS 或 iOS,并通过静态解析 UE 名字表定位数据,修改金钱、道具、经验、MP 等数值,适合做移植与本地化调试。

一句话选型结论

按资料字段整理

Switch游戏原生移植与改数值是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_3bd3856c/switch-native-modding
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_3bd3856c仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量5.9 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
游戏移植到macOS修改金钱道具数值调整经验与MP数据

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Switch游戏原生移植与改数值当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

5.9 KB
模型实际读到的说明书原文,来自技能仓库

Switch 原生移植与数值修改

把一个 Switch 游戏跑在 Mac / iPad 上,并永久修改游戏数值(不依赖修改器)。

什么时候用

  • 要把某个 Switch 游戏跑在 Mac 或 iPad 上(不是模拟器)
  • 要在游戏二进制里永久改数值(金钱、物品、经验、MP 等)
  • 要把 Windows 的存档迁到 Mac/iPad,并做多端同步
  • 要给某个游戏加"随时存档"这类便利功能

核心认知(先读这三条)

  1. 游戏逻辑 100% 在游戏的 main 二进制里,移植层只翻译系统调用。所有数值修改都必须落在游戏代码上。
  2. 不要用运行时调试找函数。先静态解析"函数名 → 地址"表,5 分钟能定位的东西,用调试器要几小时。
  3. 跳板(cave)写错会直接闪退或死循环。写之前先跑检查脚本。

工作流

第一步:确认可移植性

# 从 NSP/XCI 读 title ID、版本、引擎
python3 nxnative/scripts/build_ipa_from_nsp.py games/<游戏目录> -k keys/prod.keys --platform mac

首次运行会生成 survey(<title id>_survey/survey.md),里面写着引擎、图形 API、SDK 版本。

第二步:构建 Mac 版

# 开发用(快,4-5 分钟,命中缓存)
... --platform mac

# 打包 app(含游戏数据,10-25 分钟)
... --platform mac-app --gpu none

--gpu none 在着色器对接口不匹配时必须加(否则 pso_offline 报 metal-tt 失败)。

第三步:构建 iOS 版

bash prep_build.sh
xcrun devicectl device install app --device <UDID> <DmIOS.app>

iPad 必须插线;每次重装要在设备上重新信任开发者证书。

第四步:逆向找函数

关键方法:静态解析 UE 的名字表。

import sys, struct
sys.path.insert(0, 'nxnative/dm/tools'); import nso
img = bytes(nso.cli_read('<build>/extract/<ver>/ExeFS/main').image)
TEXT = 0x5e6b890          # 从 <build>/patched_<ver>/main.fixups.tsv 的 TEXT_END 读
names = {}
for o in range(0, len(img) - 16, 8):
    p, q = struct.unpack_from('<QQ', img, o)
    if 0x5e6c000 <= p < 0x67d6000 and 0 < q < TEXT:
        s = img[p:img.index(b'\0', p)].decode('ascii', 'ignore')
        names.setdefault(s, []).append(q)

每个名字通常有两个地址:跳板(做参数整理,最后 b <实现>)和真正实现。改功能要改实现。

第五步:写补丁

补丁放在 nxnative/dm/games/<title id>/patches.py:

CUTS = {
  '<build id>': [
    (0x地址, '原始字节', '新字节', '说明'),
  ],
}

空间不够时用跳板:

原指令处: b cave
cave:      原始指令
           自定义逻辑
           b 原指令的下一条

第六步:快速验证

不要每次都重新构建。 宿主直接读 <build>/patched_<ver>/main.patched.bin,改字节 + 重启宿主即可,秒级。

第七步:云存档(可选)

GET  /manifest.json      → 槽位哈希/时间/大小
GET  /files/<name>       → 下载
PUT  /files/<name>       → 上传(自动备份旧版本)
X-Token: <token>

规则:按 mtime 取新,不能只比哈希。触发点:启动时拉取、存档提交后上传。iOS 必须走 HTTPS(ATS 限制)。

优先单指令,别为凑数字写跳板

倍数 一条指令能做到?
×2 / ×4 / ×8 / ×16 ✅ lsl #n
×5 ✅ add wX, wY, wY, lsl #2
×3 / ×10 / 其他 ❌ 需要 mov + mul,即跳板

实战教训:金钱原本做 ×10(跳板),战斗结算 SIGILL 崩溃;改成 ×8(单指令)后稳定。
能单指令就不要跳板。

跳板四条铁律

  1. 回跳地址 = 补丁点下一条指令(写错会无限循环)
  2. 栈平衡:push/pop 对称;post-index 的 ldp 会多移 sp
  3. 寄存器冲突:跳板用到的寄存器,补丁点之后 5 条指令不能再读(w9 最容易踩)
  4. 易失寄存器不能跨 bl:中间值存栈或放 s16–s31

写完立刻检查:

python3 tools/cave_check.py <补丁点> <跳板> <长度>

数值修改的正确层次

以经验为例,有三种改法:

改法 结果
改倍率函数 只放大"加成"部分,不准
改结算中间值 可能只放大一项,不准
改最终获得量 精确 ✅

先找到"本次获得量"的最终值(通常是 新总 - 当前),再乘系数。

还要注意难度倍率:游戏可能在结算时再乘一层(HP/伤害/经验/MRP/金钱)。所以界面显示和实际发放可能天然不同——先确认是不是两套口径,再判断补丁对不对。

常见坑(按现象查)

现象 原因
黑屏 漏 DM_AOC_DIR / DM_NVN_SHMAP / DM_PSO_PAIRS
读档报 DLC 丢失 DLC 索引 0 不被接受;需要占位文件 + 改 aoc_load()
画面冻结但音频正常 游戏主线程死循环;用 F12 打线程栈
闪退 跳板栈不平衡 / 寄存器冲突
探针 SIGBUS 探针下在相对跳转指令上
内存扫描卡死 整块 vm_read,要分块
写入即崩 写到 key page(不可写区)
iPad 连不上服务器 iOS ATS 禁止明文 HTTP
旧档覆盖新档 只比哈希不比时间

参考

  • references/playbook.md — 完整实战手册(含命令、时间线、20 条坑)
  • references/cave_check.py — 跳板自检脚本
  • 引擎:nxnative

常见问题

5 问
答案由本站依据条目字段整理
Switch游戏原生移植与改数值怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_3bd3856c/switch-native-modding。安装方式为未标注。装完刷新技能列表或重开客户端。

Switch游戏原生移植与改数值支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Switch游戏原生移植与改数值权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Switch游戏原生移植与改数值收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Switch游戏原生移植与改数值用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。