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でできなかった場合は是非試してみるといいだろう。