Contents
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のみです。

ややこしくなってもめんどくさいので、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の暗号化
先程作成したBatch.batファイルにXMLをドラッグアンドドロップすれば暗号化できます。
特に難しい点もないので省略。
編集したファイルの配置
空のファイルを作成したりしなければいけなくて多少めんどくさいかなと思ったので、ダウンロードしてコピペすればそのまま使えるファイル集を作りました。
ダウンロードして解凍すると以下のようになっていると思います。

Packフォルダは全く使わないので触らないようにしましょう。
ここで少々ややこしいのは、他のファイルと違ってPackファイルは元々ファイルがあった場所に上書きしないということです。
つまり、もともとBYMLファイルはPackフォルダ内にあったのだから「SDカードにPackファイルをつくって、そこに改造したXMLをBYMLに変換したものを同梱したMush.release.packを配置すればいい」と勘違いしやすいということです。
実際にはその方法でも確かにできますし、以前の記事でも解説はしているのですがあまりおすすめしません。なぜかというと「BYMLファイルをPackファイルに戻す」という余計な一手間が必要な上に、戻す際に圧縮率指定をすると読み込めずにゲームがクラッシュするという問題点があるからです。
今回の手法が便利なのはPackファイルに戻すという最もめんどくさい手順を省略できることです。
ファイル構造
じゃあどこに改造したBYMLファイルを戻せばいいかということなのですが、以下の図のとおりにすればいけます。
フォルダ構造自体は上で紹介したダウンロードリンクからromfsをダウンロードすればそのまま再現してあるので、あとはromfs内にBYMLやBPRMファイルをコピーしてSDカードにコピーすればおしまいです。

動画化しといた
まとめ
ここの手順がわからないという方が数人いらっしゃったので説明させていただきました。
最後に大英図書館特殊工作部の紙使いのお姉さんを紹介して締めたいと思います。
自身を天才と信じて疑わないマッドサイエンティスト。二つ上の姉は大英図書館特殊工作部勤務、額の十字架の疵は彼女につけられた。
コメント
記事ありがとうございます。
早速やってみましかがやはりファイルの配置が分かりません。
それ以外はお陰様で出来ました
自分で色々配置してみたのですが、ソフトがエラーで終了したり、改造したのに反映されてなかったです。
えむいーさんの記事通りにやったつもりですが…
そもそもromfsフォルダはatmosphere/contents/タイトルID/romfsでいいんでしょうか?
おっとすみません。フォルダ名はMush.releaseではなくMushが正しいです。フォルダ名を変更すれば反映されると思います。
出来ました!ありがとうございます
お役に立てたようで何よりです。
記事ありがとうございます
バッチファイルに
@echo off
%~dp0/The4Dimension.exe batch %~1
echo(%~x1)
if %~x1==.byml (
move %~1.xml %~n1.xml
) else (
move %~1.byml %~n1.byml
)
を書いてBYMLを突っ込んでも、xmlが出ません。
なぜですか?
romfsのダウンロードリンクを修正してバッチファイルやその他の便利そうなツールを同梱しました。
再度お試しいただけないでしょうか?
コメント失礼します。
最後の動画にあるクマさん武器はどうやって入手するのでしょうか?
コードなら教えられないと思うので大丈夫ですが、今回のような書き換えなら方法を教えてくださると幸いです。
コードでも実装できると思うのですがややこしくなるのでファイル書き換えで対応しています。
Packフォルダの中にMush.release.packがあると思うのでそれを展開した上で、WeaponInfo_Main.release.bymlをThe Fourth Dimensionなどでxmlに変換します(もしくはbymlエディタでも大丈夫です)。
クマサンブキなどはここのページの解説中部のLockというパラメータでブキチの店に並ばない設定になっているので、
Lock -> None
IsPressRelease -> 0
CoopAddition -> 1
Rank -> 0
このように値を変更してあげる必要があります。また、あるアップデートからスペシャルとサブが指定されていないと表示されるようになったので、
Special -> 例えばSuperLanding
Sub -> 例えばBomb_Splash
に値(好きなもので構いません)を設定する必要があります。
返信ありがとうございます。
WeaponInfo_Main.release.bymlの下のほうにある開放したいクマさん武器のパラメータの
Lock -> None
IsPressRelease -> 0
CoopAddition -> 1
Rank -> 0
を書き換えるでよろしいでしょうか?
無事解放することができました!
わざわざありがとうございました
上手くいったようで何よりです!
SARC-ToolにMush.release.packをD&DしたらMush.release.binというものができるんですが、
なぜでしょうか?