# 纯白交响曲素材提取 **Repository Path**: glaze-decor/material-extraction ## Basic Information - **Project Name**: 纯白交响曲素材提取 - **Description**: 提取纯白psp版的素材使用到的工具和代码。 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-06-28 - **Last Updated**: 2023-06-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 素材提取 #### 介绍 提取纯白psp版的素材使用到的工具和代码。 **只针对psp版本的纯白交响曲** #### 软件架构 这套提取工具是多个目的分别用不同的方案进行开发的,包括: 1. 解包语音文件:iso:\PSP_GAME\USRDIR\voice.mrg和iso:\PSP_GAME_USRDIR\voice2.mrg 2. 解包总包文件:iso:\PSP_GAME\INSDIR\ALLPAC.MRG,里面包含有纯白的剧本,文本和图片素材 3. 解包总包中的图片素材:总包解包后有很多后缀为MZP的文件,即是素材文件,需要转码为png #### 安装教程 1. 解包语音文件的代码放在`material-extraction/ voice-extraction`下,需要下载nodejs方可运行,版本尽量控制在12以上吧 2. 解包总包文件的代码放在`material-extraction/ allpac-extraction`下,使用纯c所写,建议使用wsl环境下的cc编译器,当然用msvc也可以编译 3. 解包图片素材的代码放在`material-extraction/ image-extraction / tools_pshunex`下,这时原来就有人使用过的工具,但是原工具不支持纯白的素材,这里修正了这个问题 #### 使用说明 1. 解包语音文件方案 - 在wsl下安装好nodejs,确保能够在对应控制台运行node -v能打印出nodejs的版本出来 - 随便找个地方新建目录,名字叫voice,然后拷贝`material-extraction/ voice-extraction / extract.js`到voice目录下 - 拷贝声音文件iso:\PSP_GAME\USRDIR\voice.mrg和声音数据划分文件iso:\PSP_GAME\USRDIR\voice.hed到voice目录下 - 打开wsl,cd进入voice的目录,然后执行命令 `for i in {0..19999}; do node extract voice $i; mv voice.at3 voice-$i.at3; done` 等待命令运行结束。 **这个过程会比较久,大概要运行30-40分钟** - 完成后,会在voice目录里留下voice-0.at3至voice-19999.at3共20000个音频文件。这个文件可以使用potplayer直接播放的 - 然后再新建一个目录,名字叫voice2,然后拷贝`material-extraction/ voice-extraction / extract.js`到voice2目录下 - 拷贝声音文件iso:\PSP_GAME\USRDIR\voice2.mrg和声音数据划分文件iso:\PSP_GAME\USRDIR\voice2.hed到voice2目录下 - 打开wsl,cd进入voice2的目录,然后执行命令 `for i in {0..10448}; do node extract voice2 $i; mv voice2.at3 voice2-$i.at3; done` 等待命令运行结束。 - 完成后,会在voice2目录里留下voice2-0.at3至voice-10448.at3总共10449个音频文件。 - 纯白psp游戏中所有的音频就是这些voice-*.at3和voice2-*.at3了。这些at3文件可以从网上找到工具转码成aac/mp3/wav等音频格式 2. 解包总包文件方案 - 在wsl下输入`gcc -v`看看有没有输出版本,没有的话,找教程安装gcc - 随便找个地方新建目录,名字叫allpac,然后拷贝`material-extraction/ allpac-extraction`目录下的main.c、dec_frame.c、decode.c和key.bin到allpac目录下 - 拷贝总包文件(iso:\PSP_GAME\INSDIR\ALLPAC.MRG)到allpac目录下 - 拷贝总包数据划分文件(iso:\PSP_GAME\USRDIR\allpac.hed)到allpac目录下 - 拷贝拆包文件名索引文件(iso:\PSP_GAME\USRDIR\allpac.nam)到allpac目录下 - 打开wsl,cd进入allpac目录,执行命令`gcc main.c dec_frame.c decode.c -o unpack-allpac`,成功后allpac目录下出现一个新文件unpack-allpac - 继续保留在wsl,执行`./unpack-allpac`,等待命令运行结束 - 完成后,allpac目录里面会留下许多mzp和mzx结尾的文件。起重mzp是图片素材,mzx是压缩过的文本。SC开头的mzx文件是游戏场景剧情文本(日语编码) 3. 解包图片素材 - 需要先安装python2.7 - 按照https://github.com/Remonade/PS-HuneX_Tools这个项目的文档正常使用即可 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目 5. Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help) 6. Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)