ciaファイルからのromfs抽出と展開

romfsとは、ゲームソフトにおける音楽やモデルのデータなどさまざまなものが入っているファイルである。ciaファイルにはromfsの他にもう1つ、exefsというものがあるが今回は触れない。romfsの抽出、展開はよくHackingToolkit9DSなどを用いて行われることが多い。しかし、HackingToolkit9DSでは稀にromfsの展開が上手くいかないことがある。実際に私もこの状況に遭遇したので、今回はHackingToolkit9DSを使用しないromfsの展開方法を紹介する。

前置きが長くなったが、実際にromfsを抽出していこう。

必要なもの

復号化済みのcia
・ctrtool
・3dstool

ciaの復号化はGodMode9にて行うことができる。

1.ciaからcontentsを抽出

ctrtool --contents=contents ファイル名.cia

ciaファイルがあるフォルダ上で上記のコマンドを実行してcontentsを抽出する。ファイル名にはciaの名前を入力。このコマンドを実行すると、ファイルが複数出てくることもあるが、今回重要になるのは、contents.0000.XXXXXXXX(XXXXXXXXには特定の数)という形をとる名前のファイルだけである。

2.contentsからromfs.binを抽出

3dstool -xvtf cxi contentsファイル --romfs romfs.bin

を実行し、romfs.binを抽出する。contentsファイルの部分には先程説明したファイルの名前を入力。するとromfs.binが出てくる。

3.romfs.binを展開

3dstool -xvtf romfs romfs.bin --romfs-dir romfs

を実行し、romfs.binを展開する。するとromfsフォルダに展開したものが入っている。

これでciaファイルからromfsを抽出し、展開することができる。HackingToolkit9DSでできなかった場合は是非試してみるといいだろう。