mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
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
60 lines
2.0 KiB
Plaintext
60 lines
2.0 KiB
Plaintext
|
||
【偽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へ
|
||
|