しーすのブログ

ハックやらなんやらの忘備録

WiiU Wiiモード(vWii)のVC,Wiiウェアを抽出する

WiiUWiiモードで購入したVCとWiiウェアを抽出する方法です。
この方法ではROM吸い出し先のPCとWiiUが同じネットワークに接続されている必要があります。

用意するもの

  • CFW導入済みWiiU:Wiiモードをハックする必要はありません。
    予めWiiモードに吸い出したいROMをダウンロードしておいてください。

  • ftpiiu-everywhere:解凍後、wiiuフォルダをSDカードのルートにコピー。

  • ShowMiiWads: ダウンロード後、解凍。

VCを抽出する場合

  • Python 2.x
    Python 3.0未満のバージョンが必要です。
    特にこだわりが無ければPython 2.7.18 のインストールをおすすめします。

手順

  1. HBLからftpiiu-everywhereを起動すると以下のような画面が表示されます。 下線部のIPアドレスは接続しているネットワークによって異なります。

  2. PCでエクスプローラーを起動し、アドレスバーに以下のように入力します。 下線部は自身のWiiUに表示されたものを入力してください。
    入力後Enterするを押下すると以下のようなファイルが表示されます。
    これらのファイルはWiiUのシステムファイルですので、書き込みを行うとWiiUがブリックする可能性があります。
    必要なファイル以外は操作しないよう注意して作業してください。

  3. slccmpt01というファイルをコピーして、PC上に貼り付け。 貼り付け場所はどこでも構いません。
    コピーにはかなり時間がかかるので気長に待ちましょう。
    コピーが完了したら、エクスプローラーとftpiiuを終了します。 ftpiiuはホームボタンを押すと終了できます。このあとWiiUは使用しません。

  4. ShowMiiWadsを起動。
    警告が出てきますが、上を選択。
    起動後、Options → Launuage → Japaneseを選択。
    日本語になります。

    次に、 ツール → Common-Keyを作成を選択。指示に従って"45e"を入力してOK。
    その後、Options → "NANDバックアップのパスを変更"を選択。 先程コピーしたslccmpt01を選択してOK。

    モード → ShowMiiNandを選択すると、Wiiモードに入っていたチャンネル、VC、Wiiウェアが出現します。

  5. チャンネル、Wiiウェアを抽出します。VCだけ吸い出したい方は読み飛ばしてください。 吸い出したいタイトルを選択、右クリック → WADをパック。
    保存するフォルダはお好みで。
    保存されたWADファイルはGCWiiエミュレータの「Dolphin」で起動することができます。
    この方法でVCを抽出すると、Dolphin上でVCを起動できるはずです。(未検証)
    ROMファイルを抽出したい方は、下記方法を実行してください。

  6. FCの抽出
    nes_rom_extract.pyをダウンロード
    ShowMiiNandから、抽出するソフトのパスを確認します。 エクスプローラーでslccmpt01を開き、
    title→ShowMiiNandで確認したパス→ShowMiiNandで確認したパス→contentへ移動、00000001.appをコピー
    nes_rom_extract.pyと同じフォルダに貼り付け
    上記フォルダのアドレスバーにて"cmd"と入力
    コマンドプロンプト
    py -2 nes_rom_extract.py 00000001.app ファイル名.nes
    と入力してEnter。ファイル名は自由です。 Done!と表示されたら同じフォルダにnes形式のROMが出力されています。

  7. SFCの抽出
    snesrestore.py
    brrencode3.pyをダウンロードしてください。
    ShowMiiNandからSFCタイトルのパスを確認。
    ツール → U8アーカイブをアンパックを選択。

    slccmpt01 → title → SFCタイトルのパス → content → 00000005.appを開く(スーパーマリオRPGは0000000a.app) 抽出先はお好みで。00000005_app_OUTが生成されます。
    app_OUT内の.pcmファイルと.romファイルをコピーして.pyと同じフォルダに貼り付け。
    ファイルの先頭に付いている圧縮形式を確認しておきましょう。
    ファイル名が4文字の場合は圧縮されていません。
    上記フォルダのアドレスバーにて"cmd"と入力

    • ファイルがエンコードされていない場合
      py -2 snesrestore.py xxxx.rom xxxx.pcm ファイル名.smc
      xxxxはpcmファイルとromファイルの名前、ファイル名は自由に決めてください。 入力してEnter。しばらく待つとsmc形式のROMが出力されます。
    • 圧縮されている場合:
      • lzh8.py
      • huf8.py
      • lz77.py
        必要な物をダウンロードしてください。 スーパーマリオRPGはhuf8とlz77
        星のカービィSDXはlzh8が使用されています。
        SFCタイトルに合わせてダウンロードしてください。
        py -2 圧縮形式.py 圧縮形式xxxx.pcm ファイル名.pcm
        py -2 圧縮形式.py 圧縮形式xxxx.rom ファイル名.rom
        を実行。その後snesrestoreを使用してsmcファイルを出力してください。 下記はlzh8の例です。
        星のカービィSDXなどは普通に結合すると下記のエラーが出ます。
        その際は、copy /b JCCJ.pcm+JCCJ.pcm JCCJ1.pcmと入力して
        pcm同士を結合後、romと結合するとsmcファイルが出力されます。
  8. N64の抽出
    ShowMiiNandからN64タイトルのパスを確認
    ツール → U8アーカイブをアンパックを選択
    画像はSFCですがN64でも同様です。
    slccmpt01 → title → N64タイトルのパス → content → 00000005.appを開く
    抽出先はお好みで。00000005_app_OUTが生成されます。

    • app_OUT内にromファイルがある場合 romファイルを「ファイル名.n64」にリネームして終了です。 ファイル名は任意で構いません。
    • app_OUT内にromcファイルがある場合
    • RomChu 0.6をダウンロード、解凍後
      romchu.exeと同じファイルにromcファイルを移動
      上記ファイルにてエクスプローラーのアドレスバーに"cmd"と入力
      romchu romc 出力ファイル名.n64
      と入力しEnter。成功するとn64ファイルが出力されます。
    • 上記方法でエラーが出る場合
      • romc.pyをダウンロード
        romcファイルをコピーしてromc.pyと同じファイルに保存
        上記ファイルでエクスプローラーのアドレスバーに"cmd"と入力
        py -2 romc.py romc 出力ファイル名.n64
        と入力しEnter。成功するとn64ファイルが出力されるはず...
        筆者の手持ちのN64VCでは2つ目の方法ですべて出力できました。

以下のサイトを参考にさせていただきました。
Wiiバーチャルコンソールからのゲームデータ抽出 - SWEATSHOP 2号店
http://gametricks.blog40.fc2.com/blog-entry-52.html