パラメータ変更Modの作成

※注意
この記事ではSwitch本体のハック・改造に関する内容を扱います。
興味のある方以外はブラウザバック推奨です。
本記事にはゲーム機の改造を推奨する意図はありません。
内容を実践する場合は、全て自己責任において行なってください。
本記事によって生じたいかなるトラブル・損失についても、当wikiは一切の責任を負わないものとします。
本記事からリンクなどによって他のサイトに移動された場合、移動先サイトで提供される情報、サービス等について一切の責任を負いません。


はじめに

本ページでは、スマブラSPの内部パラメータ*1を書き換えてゲームを起動する方法を解説する。
内部パラメータの項目や数値は、 Ultimate params を参照のこと。
なお、本ページで解説する方法はワザスクリプトの書き換えには対応していない。
また当wikiでは検証目的のMod作成・導入を想定しているため、テクスチャ・ミュージックハックはサポート外である。

導入にはSwitch本体のハックが必要である。
諸々のリスクや注意事項を心に留めた上で実践するように。

本ページの内容は、主に Guide to Getting Started Modding Ultimate を翻訳・補足したものです。


準備編

準備するもの
  • PC
  • SDカード(最低32GB。128GB以上あると安心)
  • USB Type-C ケーブル
  • ハックしたSwitchの操作方法
  • コマンドプロンプトが使えること

0. Switchのハック環境を整える。
以後、ハックに必要な環境がSDカードおよびPCに用意されている状況を想定して解説する。


1. キーをダンプする。
ソフトデータの吸出しに先立って、キーをダンプしておく必要がある。

以下のファイルをダウンロードする。
Lockpick_RCM.binをペイロードとして送信すると、SDカード内にキーがダンプされる。
ダンプが完了したら、電源ボタンでSwitchの電源を切る。

※ダンプしたキーは任天堂の著作物に該当するため、他人に配布しないこと。


2. ゲーム(data.arc)をSDカードに吸い出す。
以下のファイルをダウンロードし、nxdumptool.nroをSD>Switchフォルダ内に配置する。

SwitchをCFWによって起動し、nxdumptoolを起動する。
パッケージ版の場合:
Dump gamecard content > RomFS options > RomFS section data dump
ダウンロード版の場合:
Dump SD card / eMMC (NANDUSER) content > スマブラSPを選択 > RomFS options > RomFS section data dump
と操作して、ソフトを吸い出す。

吸出しが完了したら、Switchの電源を切る。
吸い出したファイル(data.arc)は、SDカードの以下のフォルダに分割されて保存される。
nxdumptool/RomFS/Super Smash Bros. Ultimate v0 (01006A800016E000)


3. 分割されたdata.arcを結合する。
吸い出したファイルをPCに移す。
コマンドプロンプトを起動し、カレントディレクトリがゲームファイルのあるフォルダとなっている状態で、
copy /b data.arc* data.arc
を実行する。
処理が終わると、スマブラSPのソフトデータ、 data.arc (約14GB)が生成される。


3.5 ファイルのチェックサムを確認する。
data.arcが正常に吸い出せたかどうかを確認するための行程。
コマンドプロンプトにて、
certutil -hashfile data.arc MD5
を実行する。
1分ほどして、ハッシュが出力される。
出力が以下の文字列であれば、正常に吸出しが完了している。
15a788783c82e6563d54f75d6e2c3a3f

+各バージョンの正常なハッシュ
後述の手順でdata.arcにアップデートパッチを挿入すると、チェックサムの値が変化する。
各バージョンに対応する正常なチェックサムは以下の通り。
アップデートしないdata.arcはver1.0.0に該当する。
data.arc (1.0.0)    15A788783C82E6563D54F75D6E2C3A3F
data.arc (1.1.0)    EB8BEB3ED8D84A6BD648C3F1AE560EB3
data.arc (1.2.0)    15FF393BE3658BF4EDBB51E53A7B331D
data.arc (1.2.1)    5FE3469414DC7DB0A4788E0115DD082F
data.arc (2.0.0)    4454CCFBAFAEAF6CB6B7F3446CD38250
data.arc (2.0.1)    B5B4B955001D2192006CEC6542F221A7
data.arc (2.0.2)    D594F5E5986C2191B68932310BA22226
data.arc (3.0.0)    1DF935124525AF928278EDDF518A2F9C
data.arc (3.0.1)    0B483FD9870464B770668DCD9B9AE0BD
data.arc (3.1.0)    0472A56A03C1800C4EFD12CA7D3F3E8D


4. data.arcに更新パッチを当てる。
吸い出したdata.arcは、ver1.0.0のROMデータである。
これにアップデートパッチを適用することで、任意のバージョンに対応するdata.arcを作成する。
パッチ適用は1.0.0のdata.arcにしかできないので、 元となる1.0.0のdata.arcはPC上にバックアップを取っておくこと。

以下のファイルをダウンロードする。
xdelta3はパッチを挿入するためのプログラム、xdelta Patchはパッチデータ。
xdelta Patchは、適用したいバージョンを選択する。

  • 1.0.0のdata.arcのファイル名を data_old.arc に変更
  • xdelta3のファイル名を xdelta3.exe に変更
  • xdelta Patchのファイル名を data_new.xdelta3 に変更
してから、以下のコマンドを実行する。
xdelta3 -d -s data_old.arc data_new.xdelta3 data.arc
処理が完了すると、パッチが適用された状態のdata.arcが生成される。



実践編

準備編で手に入れたdata.arcをもとに、Modファイルを作成する。
違うバージョンで検証したくなった時は、準備編・行程4だけを新しいパッチで再度やり直せばよい。

CrossArc

CrossArcは、data.arcを開いて中身の一部を展開するソフトである。

【ダウンロード】
作成したdata.arcのバージョンに対応するものを使うこと。
必要に応じて、CrossArcフォルダ内のHash.txtを以下の最新版に置き換える(任意)。

左上のOpen...からdata.arcファイルを開くと、ツリー形式でdata.arc内のファイル群が表示される。
この中から、編集したい.prcファイルを探す。
例えばbattle_objectは以下の場所にある。
root>fighter>common>battle_object.prc

ファイルを左クリックで選択すると、右のボックスにプロファイルが表示される。
編集したいファイルについては、このうち
  • Arc Offset
  • Compressed Size
の2つをメモしておくこと。特にArc Offsetはパッチのバージョンによって値が変わるので注意。

編集したいファイルの上で右クリックし、「Extract file(s)」を選択する。
すると、CrossArcフォルダ内にあるrootフォルダ以下に.prcファイルが展開される。


prcEditor

prcEditorは、(非圧縮の).prcファイルを開く・編集・保存できるソフトである。

【ダウンロード】
このページではprcEditorのみを解説する。paramXMLも同等の機能。
必要に応じて、prcEditorフォルダ内のParamLabels.csvを以下の最新版に置き換える(推奨)。

左上のOpenから.prcファイルを開く。
数値を見るには、root, もしくはリストを選択して Enterキー
Modファイルを作るには、Valueの値を編集して、Saveから名前を付けて保存する。


SmashPad

SmashPadは、.prcファイルを圧縮・解凍するプログラムである。
prcEditorで開く・保存できるのは、非圧縮の.prcファイルである。
一方、data.arc内の.prcファイルは圧縮された状態にある。
したがって、data.arcに.prcファイルを挿入する前に、編集した.prcを圧縮する必要がある。

【ダウンロード】

Smashpadの圧縮コマンドは以下の通り。
python smashpad.py [input] [size] [output]
例:python smashpad.py ui_spirits_battle_db.prc 0x140CD 0x103B7D0B8.prc
  • [input]には、非圧縮の.prcファイルを指定する。
  • [size]には、該当ファイルのCompressed Size(CrossArcで調べたもの)を"0xXXXXX"の形式で入力する。
  • [output]には、出力ファイル名を指定する。
処理が完了すると、圧縮された.prcファイルが出力される。


Modファイルのインストール

modinstal.pyは、圧縮した.prcファイル(Modファイル)をdata.arcにインストールするプログラムである。
念のため、インストール前にdata.arcのバックアップを取っておくことを推奨する。

【ダウンロード】

圧縮した.prcファイルの名前を、 0xOFFSET.prcに変更する。
OFFSETには、Arc Offsetの値(CrossArcで調べたもの)を代入する。
modinstall.py, data.arc, .prcファイルの3つを同じフォルダに入れた上で、以下のコマンドを実行。
python modinstall.py 0xOFFSET.prc

成功すると、.prcに該当するパラメータが書き換わったdata.arcが上書き出力される。
また、同時に 0xOFFSET.prc.backup が出力される。
このバックアップファイルは、書き換える前のdata.arc内の該当する.prcファイルである。
data.arcを元の状態に戻したいときは、".backup"を削除して上のコマンドを実行すればよい。

data.arcは容量が非常に大きくコピーに時間がかかるので、ModファイルのインストールはSDカード内のフォルダで行うとよい。


Mod適用

Modファイルをインストールしたdata.arcを、SDカードの所定の位置に配置する。

SDカードのフォーマット形式がexFATで、かつCFWにatmosphereを使っている場合、
atmosphere\titles\01006A800016E000\romfs
の中にdata.arcを入れる。ReiNX, SXOSでもこれに相当する場所に配置すればOK。
フォーマット形式がFAT32の場合、data.arcを分割する必要がある(現在元サイトに解説なし)。

SDカードをSwitchに入れて、CFWを経由して普通にソフトを起動すれば自動でModが読み込まれる。
ソフト選択から20~30秒経ってもソフトが起動しない場合、Modファイルなどにエラーがある可能性が高い。


コメント

名前:
コメント: