研究了一下游戏音频资源提取,顺利走完流程,在这里做下记录。
经过梳理,使用以下方法提取效果非常好并且很容易,有兴趣的同学跟着步骤做就可拿到。目前只测试提取王国之泪,其他游戏未测试,理论上大部分游戏都可以提取。
!
所需文件:
- hactool Releases · SciresM/hactool · GitHub
- vgmstream Releases · vgmstream/vgmstream · GitHub
- 游戏本体 .nsp 或 .xci
- 密钥 prod.keys(请勿贴出自己的密钥,这是违法的)
- tf.exe 用于获取 titlekey
- extract_nxn.bat(自制解包器)
- convert_btw.bat(格式转换器)
以上 1 2 3 4 需要自行解决,5 6 7 本贴底部有下载
解包流程(只需简单5步):
- 把 hactool.exe 、prod.keys 、tf.exe、extract_nxn.bat、convert_btw.bat 和 vgmstream 文件夹放在同一目录下:
!
- 使用 extract_nxn.bat 提取游戏本体 .nsp 文件中的 nca 文件:
!
双击运行 extract_nxn.bat,按照提示输入1,提取游戏本体 .nsp .xci 文件中的 .nca 文件,此步骤自动完成。
- 继续下一步,按照提示输入2,提取游戏升级 .nsp 文件中的 .nca 文件:
!
如果没有游戏升级包,则不需要操作。
这里 hactool 会提示:“[WARN] prod.keys does not exist.”,请无视之
- 使用 extract_nxn.bat 按照提示输入3【最新2.0版本要输入7】,开始转储 RomFs
!
!
所有的资源内容将被提取到 romfs 文件夹。请注意,这就是解包后的所有文件。
所有音效资源路径在这里:X:\hactool\romfs_nxn\Sound\Resource\Stream
还发现一个语音资源路径:X:\hactool\romfs_nxn\Voice\Resource
!
5. 最重要的步骤(也是最后一步):
获取到音频资源后,你会发现所有音频文件并不是常用的音频格式,而是没见过的 BWAV 文件。
科普:
BWAV(或BCWAV)是一种Nintendo专有的音频文件格式,主要用于Nintendo 3DS和Nintendo Switch的游戏。BWAV文件可以存储多个音频流,以支持多语言和立体声音频,其中可能包含ADPCM或PCM编码的音频。
本文中我使用了 vgmstream 进行格式转换。为此,我写了一个批处理脚本 convert_btw.bat 以配合 vgmstream 工作,现在转换WAV变得非常简单,只需要两步,双击 convert_btw.bat:
1、填写需要转WAV的文件夹路径(支持将文件夹拖拽到命令行);
2、确认执行转换(将会创建一个带“_btw”命名的转换文件夹)
提示转换完成之后,在"音频文件夹_btw"就会看到已转换好的大量WAV文件,大功告成!
提取的 Sound 和 Voice 音频资源总计:
34,577 个文件,962 个文件夹
23.0 GB (24,772,050,944 字节)
extract_nxn.bat 版本更新:
1686334116041-extract_nxn-v2.3.bat.zip (2.98 KB) – 修复 游戏主体解密错误
1686140467028-extract_nxn-v2.2.bat.zip (2.91 KB) – 新增 主体无titlekey时自动解包
1685881509675-extract_nxn-v2.1.bat.zip (2.88 KB) – 优化 功能调优
1685788664892-extract_nxn-v2.0.bat.zip (2.87 KB) – 优化 XCI自动化提取,升级包提取+自动解密本体,新增检测titlekey功能
1685740642854-extract_nxn-v1.9.bat.zip (2.67 KB) – 新增 XCI支持,游戏升级包提取优化
1685640178901-extract_nxn-v1.8.bat.zip (2.08 KB) – 优化 同时提取本体+升级NCA
1685554433654-extract_nxn-v1.7.bat.zip (1.89 KB) – 新增 只提取游戏本体或升级包
1685526124949-extract_nxn-v1.6.bat.zip (1.76 KB) – 修复 引号路径问题
1685452302675-extract_nxn-v1.5.bat.zip (1.68 KB) – 新增 提取DLC
1685438567324-extract_nxn-v1.4.bat.zip (1.49 KB) – 优化 根据titlekey的存在与否,决定NCA模块自动填写
1685438306945-extract_nxn-v1.3.bat.zip (1.45 KB) – 新增 支持自动获取游戏本体文件名,自动填写
1685383916735-extract_nxn-v1.2.bat.zip (1.27 KB) – 新增 支持自动获取titlekey,自动填写
1685379602271-extract_nxn-v1.1.bat.zip (999 Bytes)
1685379582023-extract_nxn-v1.0.bat.zip (988 Bytes)
convert_btw.bat 版本更新:
1686412286226-convert_btw-v1.8.bat.zip (963 Bytes) – 新增 .wem 支持
1685602095663-convert_btw-v1.7.bat.zip (957 Bytes) – 优化 代码文本内容
1685545027950-convert_btw-v1.6.bat.zip (962 Bytes) – 新增 支持 *.bfwav 格式转 .wav
1685496556687-convert_btw-v1.5.bat.zip (956 Bytes) – 新增 支持 *.bwav, *.bfstm 格式转 .wav
1685427189173-convert_btw-v1.4.bat.zip (936 Bytes) – 修复 引号路径问题
1685399342285-convert_btw-v1.3.bat.zip (925 Bytes) – 新增 支持在指定文件夹创建同级转换文件夹_btw
1685389367576-convert_btw-v1.2.bat.zip (787 Bytes)
bars-to-bfwav.bat 版本更新:(使用该脚本需要安装 Python )
1685872546298-bars-to-bfwav-v1.0.zip (2.93 KB) 转换 .bars 为 bfwav(再用 convert_btw.bat 继续转 wav)
bars-to-bwav.bat 版本更新:(使用该脚本需要安装 Python )
1685872588615-bars-to-bwav-v1.0.zip (1.92 KB) 转换 .bars 为 bwav(再用 convert_btw.bat 继续转 wav)
bfsar_split.bat 版本更新:
1686102801414-bfsar_split-v1.1.zip (3.54 KB) – 新增 .bfgrp 格式支持
1685601848219-bfsar_split-v1.0.zip (3.54 KB) – 转换 .bfsar 为 bfwav/bfstp/bfseq(再用 convert_btw.bat 继续转 wav)
tf.exe
1685383983262-tf.zip (1.82 KB)
aras-to-bfsar.bat - 将 aras 文件转为 bfsar
1686031933955-sarc_tool_aras-to-bfsar.7z (4.6 MB)
文件前缀管理器 – 将文件移动到对应前缀的文件夹
1685581797401-file_prefix_folder_manager.zip (521 Bytes)
批量删除空文件夹
1685871668296-delete_empty_folders.zip (635 Bytes)
批量移除指定文件夹文件名中的字符内容
1686031810860-remove_subfolder_string.zip (662 Bytes)
ZS解压工具
1685881420595-zsdt-v1.0.zip (1.63 MB)
其他:
Wwise Unpacker 解包 bnk 为 OGG 格式
1686414794082-unpack-to-wav.zip (368 Bytes) – 追加这个脚本可以新增 转为 wem 格式(再用 convert_btw.bat 继续转 wav)
VGMTrans_WTL.exe – brsar 解包工具(天空之剑)
nus3audio_extractor.py – 将 nus3audio 转为 wav,需要配合 vgmstream 使用 (任天堂明星大乱斗特别版)
1686242958629-nus3audio_extractor-v1.3.py.zip (1.6 KB)
PKZ 提取器 – (Bayonetta 3)
1686384060688-pkz_extract.zip (112 KB)