ntr_bootrom/trunk/doc/flashme_ipl2の構成と処理内容.txt
nakasima a685521c78 ドキュメント追加。
git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-09-09%20-%20platinum.7z%20+%20generic.7z%20+%20from_nintendo.rar/platinum/ntr_bootrom@3 75ba2c1e-421a-9847-b97b-53b085e6d9b8
2009-04-24 01:42:39 +00:00

60 lines
2.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

【偽IPL2圧縮暗号化適用
フラッシュヘッダアドレス : 0x00000000
ARM9フラッシュアドレス : 0x00000180
ARM7フラッシュアドレス : 0x000001A0
ARM9実行アドレス : 0x021F0000
ARM7実行アドレス : 0x0380F800
ARM9コードサイズ : 0x00000014
ARM7コードサイズ : 0x00000110
処理:
PMICのサウンド/バックライト電源ON
→ A/B/START/SELECT 同時押しでカートリッジ起動シーケンス1へ
→ 0x080000AC = "BOOT" 文字列一致でカートリッジ起動シーケンス1へ
→ 改変された正規版IPL2の先頭パッチを起動アドレス情報は下記参照
○カートリッジ起動シーケンス1
ARM7 がカートリッジ 0x080000C0 番地へジャンプ
→ ARM9 は無限ループへ入っており、ARM7 によってジャンプアドレスが
書き換えられるのを待つ
【改変された正規版IPL2圧縮のみ適用
ARM7フラッシュアドレス : 0x00029FA8
ARM9フラッシュアドレス : 0x000323B0
フラッシュヘッダアドレス : 0x0003FC80
ARM9実行アドレス : 0x0231FE00正規版は0x02320000
ARM7実行アドレス : 0x037FA600正規版は0x037FA800
ARM9コードサイズ : 0x00010F24
ARM7コードサイズ : 0x0000B1EC
先頭パッチ処理:
POWCNTレジスタでサウンド回路をON
→ サウンドバイアスをセット
→ POWCNTレジスタで各グラフィックス回路を全てONにし、画面出力を上下反転
→ SELECT 押しで改変IPL2起動シーケンスへ
→ A/B/X/Y 同時押しでカートリッジ起動シーケンス2へ
→ 0x080000A0 = "DSBooter" or 0x080000AC = "PASS" 文字列一致でカートリッジ起動シーケンス2へ
→ 上記以外は改変IPL2起動シーケンスへ
○改変IPL2起動シーケンス
→ PMICのバックライト電源OFF ←→ PMICのバックライト電源ON数回繰り返す
→ リンクレジスタへカードプログラムのエントリアドレス
0x027ffe24/0x027ffe34 番地のデータ)を格納
→ 改変IPL2起動正規版の実行アドレスへジャンプ
○カートリッジ起動シーケンス2
フラッシュメモリ 0x0003FE00 番地から0x180バイトオーナー情報x2+pad
メインメモリ 0x023FFC80 番地へロード
→ セーブカウントが新しい方のオーナー情報0x80バイトを 0x023FFC80 番地へコピー
→ ARM7 PAUSEレジスタの起動チェックフラグをセット
→ カートリッジ起動シーケンス1へ