[Hack] Packファイルの扱い方

Romfsについて

スプラトゥーンのRomfsの中身は以下のようになっています。

Paramフォルダ内にはたくさんのフォルダやファイルがあるのですが、はスプラトゥーンのパラメータファイルが入っているのですが、実はここのファイルは全く使われておらず、実際にはPackフォルダの中身が使われています。

また、同様にMapフォルダについても中身は全く使われていません。

何で使われていないのかはよくわからない!

Packファイルについて

Packフォルダの中身を見ると以下のような五つのファイルが見つかると思います。

  • Map.pack
    • Mapファイルが入っている
  • Mush.release.pack
    • ブキデータファイルが入っている
  • Param.pack
    • 様々なパラメータファイルが入っている
  • Rumble.pack
    • 特に使い道なし
  • Sound.release.pack
    • 特に使い道なし

ここからの流れ

実際にファイルを編集するには以下のような流れが必要になってきます。

TheFourthDimension

元々はマリオ用の復号化ツールなのだが、スプラトゥーンにも使える便利なツールです。名前が長いので、記事内ではT4Dと省略して呼びます。

このツールはBPRMやBYMLやBYAMLをXMLに復号するために使います。

SARC-Tool

Packファイルを展開したり、Packファイルに圧縮したりするツールです。

NisasystSharp

BYMLの種類によってはT4Dだけでは解除できない暗号化が施されている場合があります。

それを解除するのがNisasystSharpですが、今回の作業では不要です。

VSCode

現時点で最強と思われるエディタ。なくてもいいけど、使い慣れておいたほうがいいと思います。

Switch-Toolbox

T4Dでファイルを復号化して再暗号化するのがおすすめの手順ですが、それをどうしてもやりたくない方向けのツールです。

これがあればSARC-ToolもT4Dも不要です。

ただ、試してないので実際に使えるかどうかは不明。

内部ファイルを直接編集して保存するだけ

手順

まず、Packフォルダの中身が以下のようになっていることを確認してください。

今回はメインブキの性能を変えたいと思います。メインブキに関するパラメータはMush.release.pack内のファイルで決められているので、まずはMush.release.packを展開しましょう。

Packの展開

展開するのはとても簡単で、PackファイルをSARC-Toolにドラッグアンドドロップするだけです。

一瞬で終わって、以下のようにMush.releaseというフォルダができていたら成功です。

展開されたMush.releaseフォルダの中にはMushというフォルダがあるので、更にその中を見ると以下のようになっています。

メインブキに関するパラメータファイルはWeaponInfo_Main.release.bymlなのでこれを編集しましょう。

ただし、これはそのままでは編集できないので一度XMLに変換する必要があります。そこで必要となるのがT4Dというわけです。

BYMLファイルの復号

ダウンロードしたTheFourthDimensionの中には以下のようなファイルがあると思うのですが、今回必要となるのはThe4Dimension.exeのみです。

TheFourthDimension

ややこしくなってもめんどくさいので、T4Dを適当なフォルダをつくってそこに移動させましょう。

The4Dimension.exe batch <BYML File>というコマンドで暗号化を解除できるのでこのコマンドをコマンドプロンプトから打ってもいいのですが、バッチファイルをつくってしまうほうが楽なのでつくってしまいましょう。

作り方がわからんっていう方はこのリンクの記事を参考にどうぞ。

@echo off
%~dp0/The4Dimension.exe batch %~1

echo(%~x1)
if %~x1==.byml (
move %~1.xml %~n1.xml
) else (
move %~1.byml %~n1.byml
)

上のコードを書いてBatch.batとして保存してTheFourthDimension.exeと同じ場所においておきましょう。

TheFourthDimension.exeと作成したバッチファイルが同じ場所にあればどこにおいてあっても良いです。

バッチファイルの意味としてはBYMLがドラッグアンドドロップされたら復号して、XMLがドラッグアンドドロップされたら暗号化せよっていう内容です。ファイルが強制的に上書きされるのでオリジナルファイルは必ず別のところに保存しておきましょう。

あとはこのバッチファイルに復号したいBYMLファイルを突っ込めばOKです。

復号に成功!

今回はBYMLファイルをT4Dと同じフォルダにコピーしてドラッグアンドドロップしましたが、どこからでも変換できるので同じフォルダにおいておく必要はないです。

XMLの編集

VSCodeであれば簡単にXMLが編集できます。

XMLをひらいたところ

XMLの暗号化

先程作成したBatch.batファイルにXMLをドラッグアンドドロップすれば暗号化できます。

特に難しい点もないので省略。

編集したファイルの配置

空のファイルを作成したりしなければいけなくて多少めんどくさいかなと思ったので、ダウンロードしてコピペすればそのまま使えるファイル集を作りました。

ダウンロードして解凍すると以下のようになっていると思います。

Packフォルダは全く使わないので触らないようにしましょう。

ここで少々ややこしいのは、他のファイルと違ってPackファイルは元々ファイルがあった場所に上書きしないということです。

つまり、もともとBYMLファイルはPackフォルダ内にあったのだから「SDカードにPackファイルをつくって、そこに改造したXMLをBYMLに変換したものを同梱したMush.release.packを配置すればいい」と勘違いしやすいということです。

実際にはその方法でも確かにできますし、以前の記事でも解説はしているのですがあまりおすすめしません。なぜかというと「BYMLファイルをPackファイルに戻す」という余計な一手間が必要な上に、戻す際に圧縮率指定をすると読み込めずにゲームがクラッシュするという問題点があるからです。

今回の手法が便利なのはPackファイルに戻すという最もめんどくさい手順を省略できることです。

ファイル構造

じゃあどこに改造したBYMLファイルを戻せばいいかということなのですが、以下の図のとおりにすればいけます。

フォルダ構造自体は上で紹介したダウンロードリンクからromfsをダウンロードすればそのまま再現してあるので、あとはromfs内にBYMLやBPRMファイルをコピーしてSDカードにコピーすればおしまいです。

動画化しといた

まとめ

ここの手順がわからないという方が数人いらっしゃったので説明させていただきました。

最後に大英図書館特殊工作部の紙使いのお姉さんを紹介して締めたいと思います。