Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 【UMDファイル(iso)の良品判定】
- 1)isoの 8054h から4byteを見て、その数字に0800hをかけて10進数にする
- (この計算はWindowsの電卓でできる)
- 例) 01 23 45 67 → 01234567h * 800h = 91A2B3800h (= 39093745664 )
- 2) isoファイルのサイズがこの値より小さくないかチェック
- 小さかったら尻切れ確定
- CFWのUSB接続やUSBSSSで吸い出したものがこうなる
- その他状況によって以下の判定へ
- 3-a) isoファイルのサイズが上で計算した値より小さい場合
- isoファイルの終端を見る
- 00 00 00 ・・・なら、その後ろも00である可能性は高い
- 2048 Byte 00 データを足すことで正規のものと一致する可能性を持っているが、
- 切れている以上そこに何があったかは分からない
- たまたまそこが00データで後ろにデータがあるのに切れているパターンもある
- 無双オロチなどが該当し、起動しない/特定のケースでフリーズなどお祭り状態となる
- 00 00 00 ・・・ではないなら、データブッ千切れ確定
- コレはいかんともしようがない
- どのみち起動したらラッキー、遊んでいる間に不具合があっても当たり前
- 3-b) サイズが一致している場合
- isoファイルの終端を見る
- 00 00 00 ・・・なら
- 終端から0800h(2048 Byte)手前を見る
- そこでデータが途切れて唐突に00データが始まっていたら
- UMD DAX Dumperで吸った可能性が高い
- こいつはデータがあってもなくても終端2048Byteを0データで埋めてしまう
- データが自然に続いている
- PSP Filer、または手動補完によって完全に吸い出されたものと考えられる
- 0800h(2048 Byte)手前よりもっと前から00データが続いている
- 良品である可能性が高い
- が、3-a)後者のケース(データブッ千切れ)に00データを付加してしまうという
- 見分けがつかなくなることをUMD DAX Dumperがやってくれてしまうので判別不能
- コレも動いたらラッキー
- 3-c) ファイルサイズの方が大きい場合
- いわゆるオーバーダンプ。あまり見かけないが、手動補正でミスしている可能性も。
- 無害なものであれば良いが、いずれにしても正しいisoとはいえない
- まず主な吸出し方法の特徴まとめ、これを踏まえた上で次のISOの良品判定へ。
- ・サイズ欠損なし、データ欠損なしで正常ISOを吸い出せる。
- PSP Filer 3.9以降
- PSPlorer
- ・データがあった場合でも終端1セクタ(2048byte)分が欠損する。
- CFWのUSB-UMDリダイレクト機能
- ・データがあった場合でも終端1セクタ(2048byte) or 3セクタ(6144byte)分が欠損する。
- USBSSS
- ・データがあった場合でも終端1セクタ(2048byte) or 3セクタ(6144byte)分が欠損し、
- その欠損した分だけ0x00で埋めてしまう。ISOサイズ自体は正常の物と同一になる。
- Fastloader
- DAX UMD Dumper
- FILER3.8以前?
- ・オーバーDumpになる(オーバーした分を削れば正常ISOと同一になる)。
- UMD Operator
- ・正常なイメージが作れないもの、論外。
- UMDumper 020
- new-umd-dumper_0200
- 【UMD ISOファイルの良品判定】
- (1)ISOをバイナリエディタで開き、0x8054から0x8057の4byteに書かれているISOファイルのセクタサイズを見る。
- 4byteの値を10進数に直し、2048byteを乗じた値が正しいISOサイズになる。計算はWindowsの電卓でできる。
- 例) MHP 2nd Gの場合
- 00 06 AC 30 -> 6AC30(h) -> 10進数で 437296sector
- 437296 sector * 2048 byte/sector = 895,582,208 byte
- また正常なISOの場合セクタ数は16で割り切れる。 437296 sector / 16 = 27331
- もし割り切れない場合は何らかの改変が行われている(UPDATAを削除して再構築など)。
- (2)ISOをUMDGen v4.0で開き「Layout」タブの一番下に表示されているファイルのEndセクタを見る。
- 例) MHP 2nd Gの場合
- 437289 \PSP_GAME\USRDIR\DATA.BIN
- 従って(437289 + 1) * 2048 = 895,569,920 bytes -> 35615000(h)まではデータがある事が分かる。
- バイナリエディタでISOを開き0x35615000に移動してみると、0x35614FFFいっぱいまでデータが存在することが確認できる。
- また、いっぱいまでデータが無い場合でも手前1セクタ -> 2048byte -> 800(h) 分まで見れば(大抵は)データの存在が確認できる。
- 例のように計算したアドレスいっぱいまでデータがある事も有るし、ファイルの最後の方は00の場合も有るし、
- あるいは、ファイルの大部分が00で構成されていて800(h)以上手前を見ても00の場合も稀にある。
- (3)ISOのファイルサイズと(1)で計算したサイズと比べる。状況によって以下の判定へ。
- i)計算した値と一致した場合
- {(1)で計算したサイズ} - {(2)で計算したサイズ} >= 6144byte であれば、正常なISOである可能性が高い。
- (最も大きくデータ欠損するのはFastLoaderやDAX UMD Dumperを使った場合の6144byte分だと考えられるので)
- {(1)で計算したサイズ} - {(2)で計算したサイズ} = 4096byte の場合、エディタでISOの終端から4096byte分の
- 1000(h)手前を見て、そのアドレスまでデータが詰まっていれば正常なISOである可能性が高い。
- またデータが詰まっていなくても、そこからさらに800(h)手前までの間でデータが存在すれば正常なISOである可能性が高い。
- ISO終端から6144byte分の1800(h)手前まで見て、唐突にデータが切れて00が続いていればデータ欠損。
- (FastLoaderやDAX UMD Dumperで吸い出した場合、データが欠損するが00で埋めてしまう。欠損例として「街」などが該当)
- また1800(h)手前よりさらに手前から00が続いていても、その後ろにデータが存在していて00で埋められた可能性もある。
- {(1)で計算したサイズ} - {(2)で計算したサイズ} = 2048byte の場合、エディタでISOの終端から2048byte分の
- 800(h)手前を見て、そのアドレスまでデータが詰まっていれば正常なISOである可能性が高い。
- またデータ詰まっていなくても、そこからさらに800(h)手前までの間でデータが存在すれば正常なISOである可能性が高い。
- {(1)で計算したサイズ} = {(2)で計算したサイズ} の場合、ファイル終端までデータが存在しており最も欠損例が多い。
- ISOの終端から800(h)手前までの間にデータが存在していれば正常なISOである可能性が高い(PSP Filer3.9以降使用や手動で補完した場合)
- ISO終端から2048byte分の1800(h)手前まで見て、唐突にデータが切れて00が続いていればデータ欠損。
- また800(h)手前よりさらに手前から00が続いていても、その後ろにデータが存在していて00で埋められた可能性もある。
- (欠損例としては「無双ORICHI」)
- ii)計算した値よりも小さい場合
- a)ISOサイズが本来のサイズよりも2048byte小さい場合はCFWのリダイレクト機能を用いて吸い出されておりサイズ(データ)欠損している。
- {(1)で計算したサイズ} - {(2)で計算したサイズ} >= 2048byte であれば、ISO終端から
- 2048byte分00を付け加えれば正常なISOになる可能性が高い(元々00であった部分が欠損しただけなので)。
- {(1)で計算したサイズ} = {(2)で計算したサイズ} の場合、基本的にはデータ欠損しており00で埋めても正常なISOにはならない。
- ISOの終端を見てもデータが途切れていることが確認できる。
- (例外として確認できているのは「仮面のメイドガイ」。UMDGenで確認するとISOの終端までファイルが詰まっているが、
- そのファイルの大部分が00で構成されているため、サイズ欠損していても00で埋めるだけで正常なISOになる。)
- b)ISOサイズが本来のサイズよりも6144byte小さい場合はUSBSSSを用いて吸い出されておりサイズ(データ)欠損している。
- {(1)で計算したサイズ} - {(2)で計算したサイズ} >= 6144byte であれば、ISO終端から
- 6144byte分00を付け加えれば正常なISOになる可能性が高い。
- {(1)で計算したサイズ} - {(2)で計算したサイズ} = 4096 or 2048 or 0 byte の場合は
- 基本的にはデータ欠損しており00で埋めても正常なISOにはならない。
- iii)計算した値よりも大きい場合
- いわゆるオーバーダンプ。UMD Operatorを使用した場合や手動補完でミスしている可能性も。
- ISOを正しいサイズまで削れば正常なISOになる可能性は高い。
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement