从《Nintendo Switch Sports》导出表情贴纸
最近一直奋战的Sports的保龄球里,虽说一直3局滚粗游戏体验不好吧,但是为了每周的装扮也是可以忍忍的。😄
游戏里的贴纸可以说非常的可爱,为了“永久的”获得这些有些贴纸,就考虑能不能从游戏数据里获取到原始的贴纸图片文件。
贴纸不是运行时从网络下载的,那就应该是封装在游戏数据里。只能解包游戏数据了。第一次解包ns的游戏数据,好多概念不太懂,不过好在工具比较“齐全”,操作起来还是比较容易的吧。。。
准备工作
要解包游戏,需要准备一下工具软件:
- Windows系统 —— 大部分工具都是windows系统的,在windows系统下操作比较方便。
- 游戏ROM文件 —— 包括xci本体和nsp升级文件,可以网盘见。
- hactool —— 解包ROM工具。GITHUB
- prod.key —— 配合hactool使用的解包密钥,与系统版本有关系,旧的密钥无法解包新的游戏,注意游戏版本。密钥不宜传播,还是自行搜索。
- NSCB —— 游戏包数据修改工具,功能很多,这里只用到nsz格式转nsp的功能。GITHUB
- Switch Toolbox —— 用来浏览解包后的数据。GITHUB
- WinHex —— 十六进制文本编辑工具。
解包游戏本体xci
这里准备了《Nintendo Switch Sports》的本体文件 Sports [0100d2f00d5c0000][v0].xci 。
- 解压 hactool,并把prod.keys和它放在同一目录下
- 打开命令行,输入以下命令从本体中提取nca文件
- 所有的文件被解压到nca文件夹中,如何找到主要的nca文件,就是看文件大小最大的那个
- 接着执行以下命令,提取主要nac中的文件资源
- ROM资源文件被提取到了romfs文件夹中,可以使用switch tool工具查看大部分的游戏文件。
解包游戏升级版本nsp
本体文件中的内容可能不是最新的,没有包含你想要的那部分资源。比如本体中的Sports只有最初的四款贴纸。这时候就要将升级文件当做补丁与本体结合产生最新的游戏ROM。这里准备了v1.2.0的更新包 Nintendo Switch Sports [0100D2F00D5C0800][v131072].nsz 。
如果更新包的格式是nsp,则可以跳过转换这一步,这里准备的是nsz,需要先转换成nsp文件。
- 打开准备的NSCB工具,第一次使用要将准备的prod.keys更名为keys.txt放置在ztools目录下
- 打开NSCB.bat会出现一个蓝色的界面,这里要解压,选择功能8

- 将准备的nsz文件拖动到窗口里,回车添加到处理列表。之后选择1开始处理。

- 稍等一段时间,等处理完成后在NSCB_output文件夹里就能找到处理后的文件。
处理好解压文件后,继续合并解压ROM文件:
- 打开命令行,输入以下命令,从升级文件中提取nca文件
- 文件被解压到update_nca_1.2.0文件夹中。在开始解压资源资源,还需要一个titlekey的数据,这个数据在update_nca_1.2.0文件夹中的一个tik后缀的文件中。用WinHex打开,从180位置处开始的32个字符就是titlekey。

- 接下来就是将升级文件的nca与本体的nca合并,解压出最终的ROM资源。同理这里升级文件nca也是找最大的那个。
这里的basenca参数就是之前解压的本体的nca路径。
查看资源文件
将romfs_1.2.0文件夹加载到Toolbox中,就可以查看解压出的大部分文件了。我在Model文件夹找到了需要的贴纸文件。
右键导出成png文件,就可以了。完美~