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

Hack

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に復号するために使います。

Releases · exelix11/TheFourthDimension
A super mario 3d land level editor. Contribute to exelix11/TheFourthDimension development by creating an account on GitHub.

SARC-Tool

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

aboood40091/SARC-Tool
Tool for extracting and packing SARC files present in Nintendo EAD games. - aboood40091/SARC-Tool

NisasystSharp

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

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

OatmealDome/NisasystSharp
Decrypts nisasyst files from Splatoon 2. Contribute to OatmealDome/NisasystSharp development by creating an account on GitHub.

VSCode

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

Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and availa...

Switch-Toolbox

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

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

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

Releases · KillzXGaming/Switch-Toolbox
A tool to edit many video game file formats. Contribute to KillzXGaming/Switch-Toolbox development by creating an account on GitHub.
内部ファイルを直接編集して保存するだけ

手順

まず、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カードにコピーすればおしまいです。

動画化しといた

まとめ

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

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

失礼、噛みました集

コメント

  1. 新人 より:

    記事ありがとうございます。
    早速やってみましかがやはりファイルの配置が分かりません。
    それ以外はお陰様で出来ました
    自分で色々配置してみたのですが、ソフトがエラーで終了したり、改造したのに反映されてなかったです。
    えむいーさんの記事通りにやったつもりですが…
    そもそもromfsフォルダはatmosphere/contents/タイトルID/romfsでいいんでしょうか?

    • えむいー より:

      おっとすみません。フォルダ名はMush.releaseではなくMushが正しいです。フォルダ名を変更すれば反映されると思います。

    • 新人 より:

      出来ました!ありがとうございます

    • えむいー より:

      お役に立てたようで何よりです。

  2. Urachan より:

    記事ありがとうございます
    バッチファイルに
    @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のダウンロードリンクを修正してバッチファイルやその他の便利そうなツールを同梱しました。

      再度お試しいただけないでしょうか?

  3. かぴ より:

    コメント失礼します。
    最後の動画にあるクマさん武器はどうやって入手するのでしょうか?
    コードなら教えられないと思うので大丈夫ですが、今回のような書き換えなら方法を教えてくださると幸いです。

    • えむいー より:

      コードでも実装できると思うのですがややこしくなるのでファイル書き換えで対応しています。

      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

      に値(好きなもので構いません)を設定する必要があります。

  4. かぴ より:

    返信ありがとうございます。
    WeaponInfo_Main.release.bymlの下のほうにある開放したいクマさん武器のパラメータの
    Lock -> None
    IsPressRelease -> 0
    CoopAddition -> 1
    Rank -> 0
    を書き換えるでよろしいでしょうか?

  5. 匿名 より:

    SARC-ToolにMush.release.packをD&DしたらMush.release.binというものができるんですが、
    なぜでしょうか?

タイトルとURLをコピーしました