[PS2] MechaConにパッチを書き込むことでDTL化/リージョン変更が可能な MechaPwn の使用手順

2021/04/11 01:02 PS2 2
balika011氏が、SCPH-5000xからSCPH-9000xまでのPS2のMechaConのEEPROMにパッチを書き込む事で本体をDTL(DEX)化したりリージョンの変更が可能な MechaPwn をリリースしていました。
https://github.com/MechaResearch/MechaPwn/releases/
MechaConはPS2のセキュリティチップの事で、DTLはPS2の開発機に使われる名称です。
DTL化/リージョン変更によって、別リージョンのディスクやMaster Discの起動が可能となります。
私は別リージョンのディスクが今手元に無いのでリージョン関連の恩恵を享受できない身ではありますが、とりあえず試してみたので記事にしました。MechaPwnはHomebrewが起動出来る環境なら使用可能です。
(※MechaPwnはDTL実機向けではありません。リテール機(SCPH)向けです)




●目次
この記事で紹介する作業は全て自己責任で行ってください。
PS2が壊れたとしても開発者や私は責任を負いません。



●前置き/MechaPwnの概要

説明が少し長くなりますがご容赦ください。
また、実際の作業に入る前に、READMEかこの記事を必ずざっと読んでください。
MechaPwnはある程度理解した上で触った方が良いと感じたので。

まずMechaPwnの必要性についてざっくりと説明しておきます。
PS2のハックにおいて別リージョンのゲームは、PS2のゲームならOPL/ESR/SwapMagicなんかで起動が可能なはずですし、PS1のゲームもPOPStarterで起動が可能なはず、ではあります。
あと万人向けではありませんがmodchipも。そう。そういう所がこれまでは問題だったんです。
私が知らないだけかもしれないので無いとは言いませんが、SwapMagicやmodchipのような特殊な例を除けば別リージョンの"正規ディスク"の起動方法というのは少なくとも一般に普及していませんでした。
そこで使用するのがMechaPwnです。SCPH-7000xまでのNTSC-J機及びPAL機には制限こそありますが、それでもMechaPwnによって別リージョンの正規ディスクの起動がかなり現実的になりました。

別リージョンのディスクとは別にMaster Discの起動も可能になります。DLT実機ではMaster Discというテスト用のディスクを起動出来るようになっているのですが、Master Discというのは専用のイメージをただ単に焼いただけの物で、焼くための特別な環境は不要です。また、市販のゲームのISOに手を加えてやればMaster Discのイメージに出来るため、そのためのツール(DiscPatcher)が存在します。
自分で焼いたディスクを使いたいDTL実機ユーザーはそうやって起動を実現しているのですが、MechaPwnによってリテール機でもMaster Discの起動が可能になりました。DTL実機とは違ってリテール機の場合はMaster Discの起動にuLaunchELFが必要ではありますが…(これの理由はFAQで触れられています)
(Master DiscとESRは別物です。ESRで問題がある場合、Master Discを試す価値があります)

以上がMechaPwnの必要性の説明です。ピンと来た人は使用してみても良いと思います。

MechaPwnはMechaConのEEPROMにパッチを書き込むHomebrewです。
MechaConのEEPROMには暗号化された状態で本体のリージョンや設定フラグが格納されているらしく、それとは別にパッチ領域も存在するようで、パッチ領域にデータを書き込むのがMechaPwnです。パッチ領域には書き込み保護が存在するそうですが、writeconfigという関数においてバグが見つかり、パッチ領域に任意のデータを書き込めるようになった事でMechaPwnが実現したそうです。

サポート対象のモデルはSCPH-500xx以降です。それより前のモデルはサポートされていません。
SCPH-500xx以降のMechaConにはDragonと呼ばれるチップが採用されており、そのDragonが標的となっています。Dragonより前のモデルをサポートする予定は無いそうです。MechaPwnの前にリリースされたmechadumpのREADMEを読むに、SCPH-500xxより前のモデルはMechaConに書き換え不可のマスクROMが採用されているそうなので、それが理由なのでしょう。
なお、記事執筆時点ではPSX(DESR)には未対応ですが、Dragonなので対応を計画しているとの事です。

DTL実機ではMechaPwnを使用しないでください。リテール機向けです。DTL実機で使用してしまうとリテールのkeystoreの使用を強制するQAフラグが設定され、メモカとの互換性が無くなるそうです。
なお、公開されているバージョンには安全のため実際のDEX(non QA)のフラグは含めていないとの事です。

MechaPwnはDTL化/リージョン変更を実現すると書きましたが、ユーザー的にはこれは型番の変換です。
PS2は型番によってリージョンが異なり、MechaPwnでは型番が変更出来るようになります。
CEXオプションとDEXオプションが存在し、前者はSCPH-xxxxyのy部分を変えるだけで、それだとあまり意味は無いようです。後者のオプションではQAフラグ付きでDTLの型番に変換可能です。
DTL化によってMaster Discが起動可能になり、さらに目的のリージョンのDTLの型番を選ぶ事で、CEXオプションでは実現出来ない別リージョンのディスクの起動も実現出来るようになるようです。

MechaPwnはHomebrew(ELF)が起動出来る環境であれば使用可能です。
FreeDVDBoot/Fortuna/OpenTuna、あとはSwapMagic3.6/3.8とかも使えると思います。
(ディスク関連のトラブルに備えるため、なるべくメモカを使う方法を取る事をオススメします)
FMCB環境で使用する場合は必ず "multi install" で構築したメモカを用意してください。
これは、FMCBはインストール時の選択によっては使用出来るリージョンが限定されてしまうためです。
(つまりMechaPwnのリージョン変更とFMCBのmulti installは相性が良い)

手順に入る前に、予め知っておいたほうが良いであろう注意点が5つあります。

  • 型番選択時、型番の数字の○xxxxの○部分を自分のPS2に必ず合わせる事。
    (例:SCPH-9000xを使用しているならDTL-H9000xを選択する)
    (合わせないと予期せぬ問題が発生する可能性があります)
  • Force Unlockは明確な目的が無い限り有効にはしない事。基本的にはNoを選択。
    (Force Unlockの概要についてはFAQで触れられています)
  • FMCBを使用する場合はFMCBv1.9以上を使用する事。
    (理由はFAQで触れられています)
  • SCPH-7000xまでのモデルでリージョンを変更した場合、リージョンロックが施されたDVDプレーヤーが起動出来なくなり、DVDビデオやFreeDVDBootが使用出来なくなるようです。これを頭に入れておいてください。リージョン変更状態でDVDプレーヤーを使用したい場合、DVDプレーヤーのアップデートをメモカにインストールする必要があるそうです。リージョンロックに引っかかってるだけなので、FMCB等でMechaPwnを起動してその本体の本来のリージョンを選択すれば再びDVDプレーヤーは使用できるようになります。また、通常のゲームの起動とDVDプレーヤーは無関係なので、DVDプレーヤーが使えない状態でもゲームは普通に遊べます。
  • 私の環境の問題かもしれませんが、SCPH-90000をDTL-H90000にした際(つまりリージョンは変えてない)、DVDビデオとFreeDVDBootが使用出来なくなりました。こういうトラブルがあった場合に備え、なるべくFMCB/Fortuna/OpenTunaといったメモカでHomebrewが起動出来る環境を用意する事をオススメします。なお、ゲームの起動は特に問題無く、SCPHに戻すとDVDプレーヤーの問題は解消しました。また、SCPH-50000をDTL化した場合にはDVDビデオが再生出来ました。





●DTL化/リージョン変更の手順

●用意するもの
  • PS2本体 (SCPH-5000x ~ SCPH-9000x)
  • Homebrew(ELF)が起動出来る環境 (FMCB等)
  • USBストレージ (FAT32)
  • MechaPwn.elf

事前にHomebrew(ELF)が起動出来る環境を用意しておいてください。
この記事ではそこの解説はしません。
また、自分のPS2の型番を把握しておいてください。
USBストレージはEEPROMのバックアップ先として指定されているため必要になります。
※PS2のキャプチャー環境が無いため手順中の画像は直撮りです。

●手順
  1. PS2にUSBストレージを挿しておく。
  2. MechaPwn.elf を起動すると地図の画面になるので×ボタンを押して進む。
    mpwn_20210410_1.jpg
    ×ボタンを押した直後にEEPROMのバックアップ処理があります。すぐに終わります。
    バックアップはnvm.binとしてUSBストレージのルートに作成されます。
    ※USBストレージを挿していない場合、MechaPwnはUSBストレージ待機状態になります。
  3. ○ボタンを押してexploitをインストールする。
    mpwn_20210410_2.jpg
  4. 電源コードを抜く。
    mpwn_20210410_3.jpg
    (MechaConを一度オフにする必要があり、電源コードが挿さった状態ではオフにならないため。)
  5. 電源コードを挿し、電源を入れ、再度 MechaPwn.elf を起動する。
  6. 地図の画面になるので×ボタンを押して進む。
  7. "Change region" を選択する。
    mpwn_20210410_4.jpg
  8. "Retail-DEX" を選択する。
    mpwn_20210410_5.jpg
  9. 自分のPS2に合った型番を選択する。
    mpwn_20210410_6.jpg
    ここは間違えないように注意してください。
  10. 好きなリージョンを選択する。
    mpwn_20210410_7.jpg
    (私はリージョン変更が目的では無かったので今回はJapanを選択しました)
  11. Force Unlockは明確な目的が無い限り "No" を選択する。
    mpwn_20210410_8.jpg
  12. 電源コードを抜く。
    mpwn_20210410_9.jpg
  13. 電源コードを挿し、電源を入れる。
  14. PS2のメニュー上で△ボタンを押し、型番を見てDTL化が成功している事を確認する。
    mpwn_20210410_10.jpg
  15. nvm.bin をPC等に保存する。(上書き/紛失時の保険)

次回以降MechaPwnを使用する際はバックアップの上書きを問われるので、上書きはしないようにしてください。
まあnvm.binに関しては最悪無くてもMechaPwnでCEXに変換出来るので問題無いとは思いますが…

とりあえずメルブラのISOにMaster Discのパッチを当てて焼いたらuLaunchELFで起動出来ました。
(FileBrowser → MISC → PS2Disc)




●DTL化した本体をSCPHとしてリストアする手順

USBストレージのルートにnvm.binを用意しておいてください。
紛失してしまったりDTL状態で上書きしてしまった場合は、リストアではなくCEXに変換してください。おそらく問題無いとは思います。こちらで紹介する手順はリストアの手順となります。
今回私はただ単にMechaPwnを試したかっただけなのですぐにリストアしましたが、通常はDTL化したままでも特に問題は無いと思います。DTL化した環境で何か不都合があればリストア/CEX化すると良いと思います。

●用意するもの
  • PS2本体 (DTL化済み)
  • Homebrew(ELF)が起動出来る環境 (FMCB等)
  • USBストレージ (FAT32)
  • MechaPwn.elf
  • nvm.bin (SCPHでのバックアップ)

●手順
  1. PS2にUSBストレージを挿しておく。
  2. MechaPwn.elf を起動すると地図の画面になるので×ボタンを押して進む。
  3. バックアップを上書きするかどうか問われるので "Keep the current backup" を選択する。
    mpwn_20210410_11.jpg
    (ここで上書きしてしまっては意味がありません。)
  4. ○ボタンを押してexploitをインストールする。
    mpwn_20210410_12.jpg
  5. 電源コードを抜く。
    mpwn_20210410_13.jpg
  6. 電源コードを挿し、電源を入れ、再度 MechaPwn.elf を起動する。
  7. 地図の画面になるので×ボタンを押して進む。
  8. "Restore NVM backup" を選択する。
    mpwn_20210410_14.jpg
  9. リストアが終了するまで待つ。mpwn_20210410_15.jpg
    すぐに終わると思います。
  10. 電源コードを抜く
    mpwn_20210410_16.jpg
  11. 電源コードを挿し、電源を入れる。
  12. PS2のメニュー上で△ボタンを押し、型番を見てSCPHに戻っている事を確認する。
    mpwn_20210410_17.jpg

Master Discのメルブラが起動出来なくなっていたのでリストア成功という事で良いでしょう。




●翻訳:各モデルで実現出来る事

※以下は記事執筆時点(2021/4/11)でのREADMEのざっくりとした翻訳になります。
※"オリジナルディスク"は"正規のディスク"という意味です。
※OSDはPS2のメニューの事です。つまり"OSDから起動"は"普通に起動出来る"という意味です。


SCPH-500xx及びSCPH-700xxの場合
  • ディスクリージョンチェックを無効に
    (全リージョンのPS1/PS2ディスク及びMaster Discをマウント可能に)
  • 本体が報告するリージョンを変更し、同様にMechaConが許可するディスク/KELFリージョンを変更
  • NTSC-J機にて、OSDからNTSC-J/NTSC-UリージョンのオリジナルPS2ディスクを起動可能
  • NTSC-U機/ASIA機(非NTSC-J機)にて、OSDから全リージョンのオリジナルPS2ディスクを起動可
  • ロゴチェックをスキップして全リージョンのオリジナルPS2ディスク/Master Discを起動可能
    (ulaunchelf等を使用してディスクをロード)
  • NTSC-J機/PAL機にて、本体の本来のリージョンのオリジナルPS1ディスクを起動可能
  • NTSC-U機/ASIA機(非NTSC-J機)にて、全リージョンのオリジナルPS1ディスクを起動可能

SCPH-7500x以降のモデルの場合
  • ディスクリージョンチェックを無効に
    (全リージョンのPS1/PS2ディスク及びMaster Discをマウント可能に)
  • IOP ROMリージョンを変更
    (ROMはMechaConのリージョンフラグに従って特定のバンクを設定)
  • 本体が報告するリージョンを変更し、同様にMechaConが許可するディスク/KELFリージョンを変更
  • OSDから全リージョンのオリジナルPS2ディスクを起動可能
  • ロゴチェックをスキップして全リージョンのオリジナルPS2ディスク/Master Discを起動可能
    (ulaunchelf等を使用してディスクをロード)
  • 全リージョンのオリジナルPS1ディスクを起動可能




●翻訳:FAQ

※以下は記事執筆時点(2021/4/11)でのREADMEのざっくりとした翻訳になります。


Q:
SCPH-7000xまでで、PAL機がNTSCディスクを、NTSC-J機がPALのディスクを起動出来ないのはなぜですか?
A:
それらの本体のIOP ROMはPS1とPS2両方のBIOSで厳格なロゴ復号チェックを行うためです。
これはNTSC-U機及びASIA機のBIOSにはありません。

Q:
OSDから直接Master Discを起動出来ないのはなぜですか?
A:
リテール機とデバッグ機にはDSPに異なる追加の保護が存在し、デバック機ではMechaConがmasterdisc xor keyを レジスタに格納出来ますが、リテール機では出来ません。
ロゴチェックをバイパスすると先述の保護がバイパスされます。
(uLaunchELFや、将来的にはHomebrewを使用したcdvdmanパッチによって起動可能です)

Q:
私のPS2にはmodchipが実装されていますが、それでもMechaPwnは動作しますか?
A:
分かりません。それは使用しているmodchipによって変わります。
modbo 4.0の一部のリビジョンは無効にしても完全には無効にならずMechaPwnのリージョン変更と競合する問題が報告されていますが、無効化が意図したとおりに機能するmodbo 5.0では動作する事を確認しました。
(MechaPwnで改造された本体で有効にした場合でもmodbo 5.0の全機能が動作します)

Q:
PS2でDVDが再生されなくなった/FreeDVDBootが機能しなくなったのはなぜですか?
A:
BootROM(BIOS)内のDVDプレーヤーのKELFはSCPH-7000xまでのモデルにおいてリージョンロックが施されています。MechaPwnで本体のリージョンを変更したためにそのファイルが実行出来ません。
これを修正するにはメモリーカードにDVDプレーヤーのアップデートをインストールする必要があります。

Q:
FMCBが機能しなくなったのはなぜですか?
A:
バージョン1.8はDVDプレーヤーのKELFを利用しており、上の質問と同じ問題になります。
バージョン1.9はサポートされていますが、マルチリージョン(multi install)バージョンである必要があります。

Q:
Force Unlockとは何ですか?
A:
Force UnlockはネオジオエミュレーションやPS2 Linux等でCDとDVDを読み取るためにHomebrewに必要な機能です。これはアクセスのためにディスクドライブのロックを解除する事を意味します。Force Unlockを有効にすると全てのCDとDVDがPS2ディスクとして認識され、PS1ゲームとDVDビデオが機能しなくなります。




●PS1のバックアップディスクに関して

v1.01の頃のREADMEにはPS1のバックアップディスクが起動出来るとあったのですが、v1.02以降のREADMEからはその記述が消えています。balika011氏はissue(#15)で「MechaPwnはバックアップではなく別リージョンのゲームを起動するための物」と言っており、v1.01の頃のREADMEはMathieulh氏が書いたっぽいです。
DTL実機でPS1のバックアップディスクを起動出来るというのは有名な話ですが、DTL化で同じ事が出来るにしてもbalika011氏はそれを意図してなかった、という事なのでしょうか。

まあそれは良いんですよ。しかし、この記事を書くにあたってDTL化したSCPH-90000で試してみると、PS1のバックアップディスクは起動しなかったんですよ。で、READMEから消えてるし自分の環境じゃ起動出来ないしで触れなくてもいいかと思って初公開時の記事ではPS1のバックアップディスクについては触れませんでした。

しかし記事を書いた後にDTL化したSCPH-50000にPS1のバックアップディスクを入れてみると、起動したんですよね。それでこの項目を追加した次第です。この事を前置き/MechaPwnの概要の項目に含めるのはちょっと微妙かなという判断です。SCPH-90000の方で起動出来なかったのはまぐれか?と思って再度試してみましたが、結局起動出来ませんでした。もちろん正規のPS1のディスクは起動出来ます。ちなみ試したのはサルゲッチュとゼビウス3D/G+のバックアップディスクです。また、DTL化した際のリージョンはどちらもJapanです。

う~ん…、何が悪いんでしょうね…?ディスクの相性とか、焼く際の速度設定の問題なのでしょうか…?
まあ、少なくとも私の環境ではこうだったという話です。SCPH-50000の方では起動出来たので、READMEから消されたと言っても起動出来ないから消されたというわけではなさそうですね。




●FMCB環境でDVDプレーヤーをアップデートする手順

ここで書く手順は以下のどれかに当てはまる人に向けです。
  • DVDプレーヤー3.04/3.11へのアップデートに興味がある人
  • MechPwnの影響でDVDプレーヤーが使用出来なくなった人
  • マクロビジョンのコピーガード(APS)と、RGBの緑画面への対処が行われたDVDプレーヤーに興味がある人

通常、DVDプレーヤーのアップデートには専用のディスクを使用しますが、FMCBが使用出来る場合はkrHACKen氏が公開しているDVDプレーヤー3.04/3.11に署名をしてメモカにアップデートとして配置する事が可能です。
(FMCBインストール時に作成されるファイルが署名の際に必要なため、FMCBが必要)
BIOSがv2.30以上(=FMCBが使用出来ない機体)の場合、そもそもDVDプレーヤーのアップデートが検出されないようになっているので、アップデートとしては使用出来ません。メモカ用(=アップデート用)及びUSBストレージ用(=Homebrewとして起動用)が用意されており、BIOSがv2.30以上の場合は後者のみ使用可能です。
USBストレージ用を使用する場合、DVD Players.7zから必要な物を取り出せばそれでOKです。
JPN.ELFとUS_EU.ELFは○×の割り当てが異なります。With Progressive Hackはマクロビジョンのコピーガード(APS)と、RGBの緑画面への対処が行われたバージョンです。興味が無ければWithoutの方を使用してください。
以降、メモカ用を使用する人向けの内容となります。

●用意するもの
FMCBはv1.966をmulti installでインストールしておいてください。

●手順
  1. PS2を起動し、uLaunchELFを起動する。
  2. PS2にUSBストレージを挿す。
  3. メモカの B*EXEC-SYSTEMフォルダ にある osdmain.elf をUSBストレージにコピーする。
    *部分はFMCBインストール時の本体のリージョンによって変わります。
  4. PS2を再起動する。(或いはMISC→OSDSYS)
  5. △ボタンを押し、DVDプレーヤーのバージョン末尾のアルファベットを確認する。
    (リージョンがJapanの場合、アルファベットはありません)
  6. 以下の対応表を見てDVDプレーヤーのリージョンを把握する。
    (ROMの所がDVDプレーヤーのバージョン末尾のアルファベット)
    https://i.postimg.cc/66v5dv94/5708568706.jpg
    (例えばバージョンが3.11Uなら、リージョンはNORTH AMERICA)
    以降、署名完了までPCでの作業になります。
  7. PCで作業用のフォルダを作成する。(この手順中ではsignフォルダとします)
  8. DVD_Players.7z をDL, 解凍する。
  9. 以下にある B*EXEC-DVDPLAYERフォルダ をsignフォルダにコピーする。
    ("PS2 DVD Players/MC/(Progressive Hackの有無)/(バージョン)/(リージョン)/English/")
    Progressive Hackは、興味が無ければWithoutの方を選んでください。
    バージョンは、3.04を使用する理由が無ければ3.11Jを選んでください。
    リージョンは、対応表で確認したリージョンを選んでください。
    言語はどれでも構わないと思われますが、Englishが無難です。
  10. [140202]KELFTwinSigner-bin.7z をDL, 解凍し、KelfTwinSigner.exeをsignフォルダにコピーする。
  11. PCにUSBストレージを挿し、signフォルダにosdmain.elfをコピーする。
    signフォルダにB*EXEC-DVDPLAYERフォルダ、KelfTwinSigner.exe、osdmain.elfがあればOKです。
  12. コマンドプロンプトで以下のように実行してdvdplayer.elfを署名する。
    KelfTwinSigner.exe osdmain.elf B*EXEC-DVDPLAYER\dvdplayer.elf
    *部分はsignフォルダにあるフォルダ名に合わせてください。
    "Kbit and Kc transferred successfully!" と表示されたら署名成功です。
  13. B*EXEC-DVDPLAYERフォルダをUSBストレージにコピーする。
    以降、PS2での作業になります。
  14. uLaunchELFを起動する。
  15. PS2にUSBストレージを挿す。
  16. USBストレージ内のB*EXEC-DVDPLAYERフォルダをメモカにコピーする。
  17. PS2を再起動する。
  18. △ボタンを押し、DVDプレーヤーのバージョンが変わっている事が確認出来れば成功。
    ps2_dvdplayer_20210418_1.jpg

PSXが手元に無いため、"PSX DVD Players"フォルダの中身をどう使えば良いのかは把握していません。


PS2_MechaPwn, kood

▼コメント


せんどら 2022/11/16 16:57
dtl-h90000からscph-90000へ戻すにはどうすればいいでしょうか。fmcbを読み込まないためリカバリーが出来ません。
 2023/01/14 13:13
このコメントは管理者の承認待ちです


▼コメントを投稿












※「英数字90%以上」のコメントを規制中です。コメントを投稿する際は日本語でお願いします。
※確認ボタンを押すと投稿確認フォームに移ります。投稿確認フォームの送信ボタンを押してください。
※確認フォームにある「メールアドレス」に入力された内容は管理人のみ確認可能です。空欄で構いません。
※確認フォームにある「タイトル」「パスワード」は当ブログでは使用していません。空欄で構いません。
※確認フォームにある「URL」は名前のリンクとして機能します。空欄で構いません。
※確認フォームには非公開コメントのチェック項目がありますが、非公開コメントは受け付けていません。
メールフォームより連絡頂ければメールにてお返事致します。