{"text_format":"3","workbook":"xls","n_sheets":3,"sheets":["TWL-ROMヘッダ","TWL-SRL","TWL　ダイジェスト構造"],"not_rendered":{"external_links":1,"defined_names":1},"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"TWL-ROMヘッダ","index":0,"n_rows":63,"n_cols":20,"rows_kept":63,"merged":[[1,1,1,12],[1,13,1,16],[2,1,2,2],[2,6,2,12],[3,1,3,4],[3,5,3,8],[3,9,3,12],[3,13,3,16],[4,1,4,4],[4,5,4,8],[4,9,4,12],[4,13,4,16],[5,1,5,4],[5,5,5,8],[5,9,5,12],[5,13,5,16],[6,1,6,4],[6,5,6,8],[6,9,6,12],[6,13,6,16],[7,1,7,8],[7,9,7,12],[7,13,7,14],[7,15,7,16],[8,1,8,4],[8,5,8,8],[8,9,8,16],[9,1,9,4],[9,5,9,8],[9,9,9,12],[9,13,9,16],[10,1,10,2],[10,3,10,4],[10,5,10,6],[10,7,10,8],[10,10,10,16],[11,1,12,16],[13,1,21,16],[22,1,22,12],[22,13,22,14],[22,15,22,16],[23,1,24,16],[25,1,26,16],[27,1,27,16],[28,1,28,15],[29,1,29,4],[29,5,29,8],[29,9,29,12],[29,13,29,16],[30,1,30,4],[30,5,30,8],[30,9,30,12],[30,13,30,16],[31,1,31,4],[31,5,31,8],[31,9,31,12],[31,13,31,16],[32,1,32,4],[32,5,32,8],[32,9,32,12],[32,13,32,16],[33,1,33,4],[33,5,33,8],[33,9,33,12],[33,13,33,16],[34,1,34,4],[34,5,34,8],[34,9,34,12],[34,13,34,16],[35,1,35,4],[35,5,35,8],[35,9,35,12],[35,13,35,16],[36,1,36,4],[36,5,36,8],[36,9,36,12],[36,13,36,16],[37,1,37,16],[38,1,38,4],[39,1,39,4],[39,5,39,8],[40,1,40,8],[40,9,40,12],[41,1,41,12],[41,13,41,16],[42,1,42,16],[43,1,43,4],[44,1,44,4],[44,5,44,8],[45,1,45,8],[45,9,45,16],[46,1,50,16],[51,1,51,4],[51,5,51,8],[51,9,51,12],[51,13,51,16],[52,1,52,16],[53,1,53,16],[54,1,54,16],[55,1,55,16],[57,2,57,9],[58,2,58,9],[59,2,59,9],[60,2,60,9],[61,2,61,9],[62,2,62,9]],"flags":["formulas_cached_only"]}
[null,"0x0","0x1","0x2","0x3","0x4","0x5","0x6","0x7","0x8","0x9","0xa","0xb","0xc","0xd","0xe","0xf"]
["0x000","ソフトタイトル名",{"$nulls":11},"イニシャルコード"]
["0x010","メーカーコード",null,"アプリ\n種別","デバイス\nタイプ","デバイス\n容量","予約領域",{"$nulls":6},"TWL暗号\nフラグ","特定\n仕向地","ソフト\nバージョン","諸フラグ"]
["0x020","ARM9常駐モジュール\nROMオフセット",{"$nulls":3},"ARM9常駐モジュール\nエントリアドレス",{"$nulls":3},"ARM9常駐モジュール\nRAMアドレス",{"$nulls":3},"ARM9常駐モジュール\nROMサイズ"]
["0x030","ARM7常駐モジュール\nROMオフセット",{"$nulls":3},"ARM7常駐モジュール\nエントリアドレス",{"$nulls":3},"ARM7常駐モジュール\nRAMアドレス",{"$nulls":3},"ARM7常駐モジュール\nROMサイズ"]
["0x040","ファイルネームテーブル\nROMオフセット",{"$nulls":3},"ファイルネームテーブル\nROMサイズ",{"$nulls":3},"ファイルアロケーションテーブル\nROMオフセット",{"$nulls":3},"ファイルアロケーションテーブル\nROMサイズ"]
["0x050","ARM9オーバーレイテーブル\nROMオフセット",{"$nulls":3},"ARM9オーバーレイテーブル\nROMサイズ",{"$nulls":3},"ARM7オーバーレイテーブル\nROMオフセット",{"$nulls":3},"ARM7オーバーレイテーブル\nROMサイズ"]
["0x060","マスクROMコントロール情報",{"$nulls":7},"バナーファイル\nROMオフセット",{"$nulls":3},"セキュア領域\nCRC",null,"マスクROM\nコントロール情報"]
["0x070","ARM9オートロード完了時\n呼び出し関数RAMアドレス",{"$nulls":3},"ARM7オートロード完了時\n呼び出し関数RAMアドレス",{"$nulls":3},"マスクROM情報予約領域"]
["0x080","ROM実効サイズ\n(=認証コードROMアドレス)",{"$nulls":3},"ROMヘッダサイズ",{"$nulls":3},"ARM9モジュール\nパラメータアドレス",{"$nulls":3},"ARM7モジュール\nパラメータアドレス"]
["0x090","TWLノーマル領域\nROMオフセット",null,"TWL専用領域\nROMオフセット",null,"NANDカードDL領域\nROMオフセット",null,"NANDカードBK領域\nROMオフセット",null,"NANDカードフラグ"]
["0x0a0","予約領域"]
["0x0b0"]
["0x0c0","NINTENDOロゴ・イメージデータ"]
["0x0d0"]
["0x0e0"]
["0x0f0"]
["0x100"]
["0x110"]
["0x120"]
["0x130"]
["0x140"]
["0x150",{"$nulls":12},"NINTENDOロゴ\nCRC",null,"ROM内登録データCRC"]
["0x160","予約領域"]
["0x170"]
["0x180","ARM9-WRAM-A/B/C割り当てレジスタ設定値（SCFG-MBK1～8）"]
["0x190"]
["0x1a0","ARM7-WRAM-A/B/C/0/1割り当てレジスタ設定値（SCFG-MBK6～8、SCFG-MBK9、RBK_CNT1_H）"]
["0x1b0","予約領域",{"$nulls":14},"TWL拡張\n諸フラグ"]
["0x1c0","ARM9拡張常駐モジュール\nROMオフセット",{"$nulls":3},"予約領域",{"$nulls":3},"ARM9拡張常駐モジュール\nRAMアドレス",{"$nulls":3},"ARM9拡張常駐モジュール\nROMサイズ"]
["0x1d0","ARM7拡張常駐モジュール\nROMオフセット",{"$nulls":3},"予約領域",{"$nulls":3},"ARM7拡張常駐モジュール\nRAMアドレス",{"$nulls":3},"ARM7拡張常駐モジュール\nROMサイズ"]
["0x1e0","NTRハッシュ対象\nROMオフセット",{"$nulls":3},"NTRハッシュ対象\nサイズ",{"$nulls":3},"TWLハッシュ対象\nROMオフセット",{"$nulls":3},"TWLハッシュ対象\nサイズ"]
["0x1f0","FSハッシュ１テーブル\nROMオフセット",{"$nulls":3},"FSハッシュ１テーブル\nサイズ",{"$nulls":3},"FSハッシュ２テーブル\nROMオフセット",{"$nulls":3},"予約領域"]
["0x200","FSハッシュ１\nブロックサイズ",{"$nulls":3},"FSハッシュ２算出単位\n（FSハッシュ１の個数）",{"$nulls":3},"TWLバナー\nROMオフセット",{"$nulls":3},"TWLバナー\nサイズ"]
["0x210","TWL-ROM実効サイズ",{"$nulls":3},"予約領域",{"$nulls":3},"ARM9拡張モジュール\nパラメータアドレス",{"$nulls":3},"ARM7拡張モジュール\nパラメータアドレス"]
["0x220","AES対象領域\nROMオフセット",{"$nulls":3},"AES対象領域\nサイズ",{"$nulls":3},"AES対象領域2\nROMオフセット（予定）",{"$nulls":3},"AES対象領域2\nサイズ（予定）"]
["0x230","TitleID_Lo",{"$nulls":3},"TitleID_Hi",{"$nulls":3},"publicセーブデータ\nサイズ",{"$nulls":3},"privateセーブデータ\nサイズ"]
["0x240\n|\n0x2f0","予約領域"]
["0x300","ARM9常駐モジュールハッシュ\n(HMAC SHA-1)"]
["0x310",{"$nulls":4},"ARM7常駐モジュールハッシュ\n(HMAC SHA-1)"]
["0x320",{"$nulls":8},"FSハッシュ２テーブルハッシュ\n(HMAC SHA-1)"]
["0x330",{"$nulls":12},"TWLバナーハッシュ\n(HMAC SHA-1)"]
["0x340"]
["0x350","ARM9拡張常駐モジュールハッシュ\n(HMAC SHA-1)"]
["0x360",{"$nulls":4},"ARM7拡張常駐モジュールハッシュ\n(HMAC SHA-1)"]
["0x370"]
["0x380","予約領域"]
[":\n:"]
[":\n:"]
[":\n:",{"$nulls":18},"ROMヘッダ署名範囲"]
["0xdf0"]
["0xe00","マジックコード\n(固定値\"CERT\"の文字列)",{"$nulls":3},"コンテンツ証明書\nバージョン",{"$nulls":3},"シリアルNo.",{"$nulls":3},"イニシャルコード\n(アドレス0x0cの値と一致しないとダメ）"]
["0xe10\n|\n0xe70","予約領域",{"$nulls":17},"コンテンツ証明書"]
["0xe80\n|\n0xef0","ROMヘッダ署名\n公開鍵"]
["0xf00\n|\n0xf70","コンテンツ証明書\n署名"]
["0xf80\n|\n0xff0","ROMヘッダ\n署名"]
[]
[null,"種別","登録データ"]
[null,"FIX","ROMヘッダテンプレートの設定値をそのまま使用します。"]
[null,"RSF","ROMスペックファイルでの記述が makerom にて反映されます。\n指定がない場合は FIX と同じ扱いになります。"]
[null,"GEN","makerom で生成された値が書き込まれます。"]
[null,"TWL","makerom 及び makerom.TWL で生成された値が書き込まれます。"]
[null,"TWL","makerom 及び makerom.TWL で生成された値が書き込まれます。\n※DSダウンロードプレイの署名付加(attachsign)では、ROMヘッダは変更されないので、makerom時にROMヘッダに署名して、コンテンツ証明書を付加しておいても問題ない。"]

{"sheet":"TWL-SRL","index":1,"n_rows":72,"n_cols":13,"rows_kept":72,"merged":[[6,1,17,1],[6,2,7,3],[6,9,7,9],[6,10,7,11],[8,10,8,11],[9,9,34,9],[9,10,10,11],[11,10,12,11],[13,10,14,11],[14,2,15,3],[15,10,16,11],[17,10,18,11],[18,2,18,3],[19,1,60,1],[19,2,20,3],[19,10,20,11],[21,10,22,11],[23,10,24,11],[25,10,26,11],[26,2,27,3],[27,10,28,11],[28,2,29,3],[29,10,30,11],[30,2,31,3],[31,10,31,11],[32,2,33,3],[32,10,32,11],[33,10,33,11],[34,10,34,11],[39,2,40,3],[41,2,42,3],[43,2,44,3],[45,2,46,3],[47,2,48,3],[49,2,50,3],[51,2,52,3],[53,2,53,3],[54,2,54,3],[55,2,55,3],[56,2,57,3],[58,2,59,3],[60,2,60,3],[61,2,61,3],[62,1,71,1],[62,2,63,3],[64,2,64,3],[65,2,65,3],[66,2,67,3],[68,2,68,3],[69,2,69,3],[70,2,70,3],[71,2,71,3]],"flags":["formulas_cached_only"]}
[]
[null,"TWL-SRLフォーマット",{"$nulls":7},"NTR-SRLフォーマット"]
[]
[null,"・オーバーレイのブロック数を２、FSファイル数を５とした場合の例。",{"$nulls":7},"・オーバーレイのブロック数を２、FSファイル数を３とした場合の例。"]
[]
[null,"Card\nPartition",{"$nulls":7},"Card\nPartition"]
[null,"Boot\nSegment","ROM　Header",{"$nulls":6},"Boot\nSegment","ROM　Header"]
[]
[null,null,"ARM9 static digest",{"$nulls":6},"KeyTable","KeyTable",null,"※カードアプリの場合のみ存在"]
[null,null,"ARM7 static digest",{"$nulls":6},"NTR\n互換領域","ARM9 static"]
[null,null,"Banner TWL digest"]
[null,null,"Digest2 Table digest",{"$nulls":7},"ARM9 OVT"]
[null,null,"ARM9 Ltd static digest"]
[null,null,"ARM7 Ltd static digest",{"$nulls":7},"ARM9 Overlay0",null,"※オーバーレイは、サンプルとして２ブロックで表現。"]
[null,null,"ROM Header 署名"]
[{"$nulls":10},"ARM9 Overlay1"]
[null,null,"AES Key Seed"]
[null,null,"ROM Header digest",{"$nulls":7},"ARM7 static"]
[null,"KeyTable","KeyTable",null,"※カードアプリの場合のみ存在"]
[null,"NTR\n互換領域","ARM9 static",{"$nulls":7},"ARM7 OVT"]
[]
[null,null,"ARM9 OVT digest",{"$nulls":7},"ARM7 Overlay0"]
[null,null,"ARM9 Overlay0 digest"]
[null,null,"ARM9 Overlay1 digest",{"$nulls":7},"ARM7 Overlay1"]
[null,null,"ARM9 Ltd Overlay0 digest"]
[null,null,"ARM9 Ltd Overlay1 digest",{"$nulls":7},"FNT"]
[null,null,"ARM9 OVT"]
[{"$nulls":10},"FAT"]
[null,null,"ARM9 Overlay0",null,"※オーバーレイは、サンプルとして２ブロックで表現。"]
[{"$nulls":10},"Banner NTR"]
[null,null,"ARM9 Overlay1"]
[{"$nulls":10},"File1 NTR"]
[null,null,"ARM7 static",{"$nulls":7},"File2 NTR"]
[{"$nulls":10},"File3 NTR"]
[null,null,"ARM7 OVT digest",{"$nulls":7},"DS DownloadPlay署名"]
[null,null,"ARM7 Overlay0 digest"]
[null,null,"ARM7 Overlay1 digest"]
[null,null,"ARM7 Ltd Overlay0 digest"]
[null,null,"ARM7 Ltd Overlay1 digest"]
[null,null,"ARM7 OVT"]
[]
[null,null,"ARM7 Overlay0"]
[]
[null,null,"ARM7 Overlay1"]
[]
[null,null,"FNT"]
[]
[null,null,"FAT"]
[]
[null,null,"Banner NTR"]
[]
[null,null,"Banner TWL"]
[]
[null,null,"File1 NTR"]
[null,null,"File2 NTR"]
[null,null,"File5 NTR"]
[null,null,"Digest1 Table"]
[]
[null,null,"Digest2 Table"]
[]
[null,null,"DS DownloadPlay署名",null,"※DSダウンロードプレイに対応する場合のみ付加される。"]
[null,"KeyTable2","KeyTable2",null,"※カードアプリの場合のみ存在"]
[null,"TWL\n専用領域","ARM9 Ltd static"]
[]
[null,null,"ARM9 Ltd Overlay0"]
[null,null,"ARM9 Ltd Overlay1"]
[null,null,"ARM7 Ltd static"]
[]
[null,null,"ARM7 Ltd Overlay0"]
[null,null,"ARM7 Ltd Overlay1"]
[null,null,"File3 TWL",null,"※File1-5のうち、File3,4のみをTWL専用領域に配置するよう"]
[null,null,"File4 TWL",null,"   makeromで指定した場合の例。"]

{"sheet":"TWL　ダイジェスト構造","index":2,"n_rows":78,"n_cols":14,"rows_kept":78,"merged":[[12,4,23,4],[12,5,13,6],[20,5,21,6],[24,5,24,6],[25,1,31,1],[25,2,31,2],[25,4,66,4],[25,5,26,6],[32,1,33,1],[32,2,33,2],[32,5,33,6],[34,1,35,1],[34,2,35,2],[34,5,35,6],[36,1,37,1],[36,2,37,2],[36,5,37,6],[38,1,44,1],[38,2,44,2],[38,5,39,6],[45,1,46,1],[45,2,46,2],[45,5,46,6],[47,1,48,1],[47,2,48,2],[47,5,48,6],[49,1,50,1],[49,2,50,2],[49,5,50,6],[51,5,52,6],[53,5,54,6],[55,5,56,6],[57,1,58,1],[57,2,58,2],[57,5,58,6],[59,5,59,6],[60,5,60,6],[61,5,61,6],[62,5,63,6],[64,1,65,1],[64,2,65,2],[64,5,65,6],[66,5,66,6],[67,5,67,6],[68,1,69,1],[68,2,69,2],[68,4,77,4],[68,5,69,6],[70,5,70,6],[71,5,71,6],[72,1,73,1],[72,2,73,2],[72,5,73,6],[74,5,74,6],[75,5,75,6],[76,5,76,6],[77,5,77,6]],"flags":["formulas_cached_only"]}
[]
[null,"TWL-ROMダイジェストフォーマット"]
[]
[null,"・ダイジェストは、モジュール単位で取るものと、固定ブロック(digest1_block_size)単位で取る２種類のものがある。"]
[null,"・両方のダイジェストがカバーしている領域もある。"]
[null,"・固定ブロック単位のダイジェストは、NTR互換領域とTWL専用領域の有効範囲を示すパラメータ"]
[null," nitro_digest_area_rom_offset, nitro_digest_area_size　と　twl_digest_area_rom_offset, twl_digest_area_size　をROMヘッダに持つ。"]
[null,"・固定ブロック単位のダイジェストがモジュール単位でのダイジェストを持っているstaticやoverlayまでカバーしているのは、起動後のアプリでCARD_ReadRom関数でリードされた"]
[null,"　場合にもダイジェストチェックできるようにするため。"]
[null,"　IPLなど運用をこちらでコントロールできるものの場合は、カバー範囲を狭めてダイジェストテーブルサイズを小さくするのもあり。"]
[]
[{"$nulls":8},"ROMヘッダ内 digest パラメータ"]
[{"$nulls":4},"BootSegment","ROM　Header",null,null,"nitro_digest_area_rom_offset",null,null,"digest1_table_offset","digest1_block_size"]
[{"$nulls":8},"nitro_digest_area_size",null,null,"digest1_table_size","digest2_covered_digest1_num"]
[{"$nulls":5},"ARM9 static digest",null,null,"twl_digest_area_rom_offset",null,null,"digest2_table_offset"]
[{"$nulls":5},"ARM7 static digest",null,null,"twl_digest_area_size",null,null,"digest2_table_size"]
[{"$nulls":5},"Banner TWL digest"]
[{"$nulls":5},"Digest2 Table digest"]
[{"$nulls":5},"ARM9 Ltd static digest"]
[{"$nulls":5},"ARM7 Ltd static digest"]
[{"$nulls":5},"ROM Header 署名"]
[]
[{"$nulls":5},"AES Key Seed",null,null,"digest1_block_size単位で",null,null,"Digest1をdigest2_covered_digest1_num数"]
[null,"Digest","モジュール単位で",null,null,"ROM Header digest",null,null,"Digest1算出",null,null,"ごとにまとめてDigest2算出"]
[null,"格納場所","Digest算出",null,"Key","KeyTable",null,"nitro_digest_area_rom_offset",null,null,"Digest1 Table",null,"Digest2 Table"]
[null,"ROMヘッダ",null,null,"NTR互換領域","ARM9 static",{"$nulls":4},"Digest1",null,"Digest2"]
[]
[{"$nulls":5},"ARM9 OVT digest"]
[{"$nulls":5},"ARM9 Overlay0 digest"]
[{"$nulls":5},"ARM9 Overlay1 digest",{"$nulls":7},"　　"]
[{"$nulls":5},"ARM9 Ltd Overlay0 digest"]
[{"$nulls":5},"ARM9 Ltd Overlay1 digest"]
[null,"ARM9 static",{"$nulls":3},"ARM9 OVT"]
[]
[null,"ARM9 static",{"$nulls":3},"ARM9 Overlay0"]
[]
[null,"ARM9 static",{"$nulls":3},"ARM9 Overlay1"]
[]
[null,"ROMヘッダ",{"$nulls":3},"ARM7 static"]
[]
[{"$nulls":5},"ARM7 OVT digest"]
[{"$nulls":5},"ARM7 Overlay0 digest"]
[{"$nulls":5},"ARM7 Overlay1 digest"]
[{"$nulls":5},"ARM7 Ltd Overlay0 digest",{"$nulls":5},"："]
[{"$nulls":5},"ARM7 Ltd Overlay1 digest",{"$nulls":5},"："]
[null,"ARM7 static",{"$nulls":3},"ARM7 OVT",{"$nulls":5},"："]
[]
[null,"ARM7 static",{"$nulls":3},"ARM7 Overlay0"]
[]
[null,"ARM7 static",{"$nulls":3},"ARM7 Overlay1"]
[]
[{"$nulls":5},"FNT"]
[]
[{"$nulls":5},"FAT"]
[]
[{"$nulls":5},"Banner NTR"]
[]
[null,"ROMヘッダ",{"$nulls":3},"Banner TWL"]
[]
[{"$nulls":5},"File1 NTR"]
[{"$nulls":5},"File2 NTR"]
[{"$nulls":5},"File5 NTR"]
[{"$nulls":5},"Digest1 Table"]
[]
[null,"ROMヘッダ",{"$nulls":3},"Digest2 Table",{"$nulls":5},"："]
[{"$nulls":11},"："]
[{"$nulls":5},"DS DownloadPlay署名"]
[{"$nulls":4},"Key2","KeyTable2",null,"twl_digest_area_rom_offset"]
[null,"ROMヘッダ",null,null,"TWL専用領域","ARM9 Ltd static"]
[]
[null,"ARM9 static",{"$nulls":3},"ARM9 Ltd Overlay0"]
[null,"ARM9 static",{"$nulls":3},"ARM9 Ltd Overlay1"]
[null,"ROMヘッダ",{"$nulls":3},"ARM7 Ltd static"]
[]
[null,"ARM7 static",{"$nulls":3},"ARM7 Ltd Overlay0"]
[null,"ARM7 static",{"$nulls":3},"ARM7 Ltd Overlay1"]
[{"$nulls":5},"File3 TWL"]
[{"$nulls":5},"File4 TWL"]