{"text_format":"3","workbook":"xls","n_sheets":5,"sheets":["入力の種類","オプションの種類","エラーコード対応表","変更箇所(ROMヘッダ)","変更箇所(ROMヘッダ以外)"],"not_rendered":{"external_links":1,"defined_names":1},"read":"whole","date_system":"1900","formulas":"cached_only"}

{"sheet":"入力の種類","index":0,"n_rows":11,"n_cols":4,"rows_kept":11,"merged":[[1,0,4,0],[5,0,6,0],[8,0,8,1],[9,0,9,1],[10,0,10,1]],"flags":["formulas_cached_only"]}
["プラットフォーム","アプリ区別","署名用秘密鍵の種類","例"]
["TWL対応\n(専用/NTR両対応)","User","Userアプリ用","市販のTWL対応ゲームソフト"]
[null,"System","Systemアプリ用","写真帳"]
[null,"Launcher","Launcherアプリ用","UIGランチャー"]
[null,"Secure","Secureアプリ用\n(-sオプションが指定されたときのみSDブート用)","本体設定ソフト"]
["NTR専用","TWL署名有効フラグ=0","Userアプリ用","市販のNTR専用ゲームソフト"]
[null,"TWL署名有効フラグ=1","TWL対応アプリとして判定","PictoChatおよびダウンロードプレイ"]
[]
["特殊な対応が必要な入力ファイル",null,"対応","関連オプション"]
["TWL対応かつゲームコードが\"NTRJ\"",null,"・KeyTable2の算出においてエラー終了\n・KeyTable1を強制的に上書き","t, g"]
["旧・開発用暗号フラグが使用されている",null,"・警告を出力\n・クローンブート署名の存在を調べて、\n  署名があるときにはエラー終了","p"]

{"sheet":"オプションの種類","index":1,"n_rows":11,"n_cols":2,"rows_kept":11,"flags":["formulas_cached_only"]}
["通常オプション","詳細"]
["h","usageを表示して終了する。"]
["v","中間メッセージを詳細に表示する。"]
["f","通常、出力ファイルが存在するときには上書き確認をするが、\n上書き確認をせずに処理を実行する。"]
["r","逆マスタリング。マスタリング後のSRLからマスタリング前のSRLを生成する。"]
[]
["特殊オプション","詳細"]
["s","SDカードブートアプリ専用の秘密鍵で署名をつける。\n入力ファイルがSecureアプリのときのみ指定可能。"]
["t","通常、入力ファイルのゲームコードが\"NTRJ\"のとき、KeyTable2の算出でエラーとなるが、\n強制的にKeyTable2を算出してライトする"]
["p","ROMヘッダ内の開発用暗号が旧バージョンで、かつROMファイルがクローンブート対応ソフトのとき、\nマスタリングによって署名に矛盾が生じるため、通常、エラー終了となるが、\n強制的に、マスタリングを実行する。"]
["g  NEW_GAME_CODE","入力ファイルのゲームコードとTitleIDを強制的にNEW_GAME_CODEで指定された文字列に置き換え、\nゲームコードがその文字列であるとみなして、以降のマスタリング処理を実行する。\n入力ファイルがTWL対応かつゲームコードが\"NTRJ\"のときのみ指定可能。"]

{"sheet":"エラーコード対応表","index":2,"n_rows":34,"n_cols":3,"rows_kept":34,"flags":["formulas_cached_only"]}
["エラーコード","区分","詳細"]
[0,"正常","エラーなし"]
[1,"入力が不正","ファイルのオープンに失敗(fopen)"]
[2,"入力が不正","ファイルのリードに失敗(fread)"]
[3,"入力が不正","ファイルのライトに失敗(fwrite)"]
[4,"入力が不正","ファイルサイズの取得に失敗(stat)"]
[5,"内部動作にバグ","メモリの割り当てに失敗(malloc)"]
[6,"内部動作にバグ","ダイジェスト(ハッシュ値)の算出ができなかった"]
[7,"入力が不正","算出したダイジェストとROMヘッダの署名を解除して得られるダイジェストが一致しなかった(SRLが改ざんされている)"]
[8,"内部動作にバグ","NULL参照エラー"]
[9,"内部動作にバグ","署名の計算/AES暗号の暗号化ができなかった"]
[10,"内部動作にバグ","署名の解除/AES暗号の複合化ができなかった"]
[11,"デバッグ用","署名を計算した後で公開鍵で解除したとき平文を抽出できない"]
[12,"デバッグ用","AES暗号化した後で復号したときに平文を抽出できない"]
[13,"入力エラー","アプリの種類がUser/System/Secure/Launcherのどれでもない"]
[14,"デバッグ用","鍵が不正"]
[15,"デバッグ用","鍵が不正"]
[16,"デバッグ用","鍵が不正"]
[17,"デバッグ用","鍵が不正"]
[18,"入力が不正","すでにマスタリングされたSRLが入力された"]
[19,"入力が不正","逆マスタリングモードで実行されているのにマスタリングされていないSRLが入力された"]
[20,"入力が不正","署名有効フラグが立っていないSRLが入力された"]
[21,"入力が不正","すでにマスタリングされたNTR専用SRLが入力された"]
[22,"入力が不正","逆マスタリングモードで実行されているのにマスタリングされていないNTR専用SRLが入力された"]
[23,"入力が不正","Secureアプリでないのにもかかわらず -s オプションが指定された"]
[24,"入力が不正","プラットフォームがNTR専用・NTR/TWLハイブリッド・TWL専用のどれでもない"]
[25,"入力が不正","KeyTable2の算出に失敗(ゲームコードが\"NTRJ\"のときなどに発生)"]
[26,"不使用","PCの物理アドレスの取得ができない"]
[27,"不使用","PCの物理アドレスが登録されていないので実行できない"]
[28,"デバッグ用","入力がNTR専用SRLであるにもかかわらずAES暗号上書きが必要と判定された"]
[29,"入力が不正","入力がNTR専用SRLであるにもかかわらず -t オプションが指定された"]
[30,"入力が不正","旧・開発用暗号フラグが使用されているにもかかわらずクローンブート署名がSRL中に存在する"]
[31,"入力が不正","入力がNTR専用SRLであるにもかかわらず -p オプションが指定された"]
[32,"入力が不正","入力が「TWL対応かつゲームコードが\"NTRJ\"」の条件を満たしていないにもかかわらず -g オプションが指定された"]

{"sheet":"変更箇所(ROMヘッダ)","index":3,"n_rows":62,"n_cols":22,"rows_kept":62,"merged":[[1,1,1,12],[1,13,1,16],[1,17,51,17],[1,18,22,18],[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,4],[28,5,28,8],[28,9,28,12],[28,13,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],[34,1,34,4],[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,16],[39,1,39,4],[40,1,40,4],[40,5,40,8],[41,1,41,8],[41,9,41,12],[42,1,42,12],[42,13,42,16],[43,1,43,16],[44,1,44,4],[45,1,45,4],[45,5,45,16],[46,1,46,8],[46,9,46,16],[47,1,47,12],[47,13,47,16],[48,1,48,16],[49,1,49,4],[50,1,51,16],[52,1,52,16],[53,1,53,16],[54,1,54,16],[56,2,56,9],[56,21,56,24],[57,2,57,9],[57,21,57,24],[58,2,58,9],[58,21,58,24],[59,2,59,9],[60,2,60,9],[61,2,61,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},"イニシャルコード(ゲームコード)",{"$nulls":3},"ROMヘッダ署名対象範囲","NTR互換領域 かつ クローンブート署名対象範囲"]
["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","NTR互換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）",{"$nulls":18}," "]
["0x1b0","カードリージョン",{"$nulls":3},"アクセスコントロール情報",{"$nulls":3},"ARM7 SCFG-EXTレジスタ\n設定値",{"$nulls":3},"予約領域",null,null,"TWL拡張\n諸フラグ"]
["0x1c0","ARM9拡張常駐モジュール\nROMオフセット",{"$nulls":3},"予約領域",{"$nulls":3},"ARM9拡張常駐モジュール\nRAMアドレス",{"$nulls":3},"ARM9拡張常駐モジュール\nROMサイズ"]
["0x1d0","ARM7拡張常駐モジュール\nROMオフセット",{"$nulls":3},"ARM7マウント情報\nRAMアドレス",{"$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},"FSハッシュ２テーブル\nサイズ"]
["0x200","FSハッシュ１\nブロックサイズ",{"$nulls":3},"FSハッシュ２算出単位\n（FSハッシュ１の個数）",{"$nulls":3},"バナーファイル\nサイズ",{"$nulls":3},"Shared2\nfile0_size","Shared2\nfile1_size","EULA同意バージョン","予約領域"]
["0x210","TWL-ROM実効サイズ",{"$nulls":3},"Shared2\nfile2_size","Shared2\nfile3_size","Shared2\nfile4_size","Shared2\nfile5_size","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|\n0x2e0","予約領域"]
["0x2f0","ペアレンタルコントロール情報"]
["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},"バナーハッシュ\n(HMAC SHA-1)"]
["0x340"]
["0x350","ARM9拡張常駐モジュールハッシュ\n(HMAC SHA-1)"]
["0x360",{"$nulls":4},"ARM7拡張常駐モジュールハッシュ\n(HMAC SHA-1)"]
["0x370",{"$nulls":8},"NTRホワイトリストチェック用　phase1 ハッシュ (ROMH, ARM9 static, ARM7 static)\n（HMAC SHA-1)"]
["0x380"]
["0x390","NTRホワイトリストチェック用　phase2 ハッシュ (ARM9 OVT, ARM9 Overlays, FAT)\n（HMAC SHA-1)"]
["0x3a0"]
[":\n:","予約領域"]
["0xdf0"]
["0xe00\n|\n0xef0","buryArg領域\n（SRLをデバッガ読み込みする時に、ここに可変パラメータを埋め込んで起動する仕組み。故に署名範囲外である必要がある。）"]
["0xf00\n|\n0xf70","予約領域"]
["0xf80\n|\n0xff0","ROMヘッダ\n署名"]
[]
[null,"種別","登録データ",{"$nulls":18},"マスタリングツールでは変更されません。"]
[null,"FIX","ROMヘッダテンプレートの設定値をそのまま使用します。",{"$nulls":18},"マスタリングツールで変更される箇所です。"]
[null,"RSF","ROMスペックファイルでの記述が makerom にて反映されます。\n指定がない場合は FIX と同じ扱いになります。",{"$nulls":18},"特殊なオプションでのみ変更される箇所です。"]
[null,"GEN","makerom で生成された値が書き込まれます。"]
[null,"TWL","makerom 及び makerom.TWL で生成された値が書き込まれます。"]
[null,"TWL","makerom 及び makerom.TWL で生成された値が書き込まれます。\n※DSダウンロードプレイの署名付加(attachsign)では、ROMヘッダは変更されないので、makerom時にROMヘッダに署名して、コンテンツ証明書を付加しておいても問題ない。"]

{"sheet":"変更箇所(ROMヘッダ以外)","index":4,"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,10,10,11],[10,9,34,9],[11,10,12,11],[13,10,14,11],[14,2,16,3],[15,10,16,11],[17,10,18,11],[18,2,18,3],[19,2,20,3],[19,10,20,11],[20,1,58,1],[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,51,3],[52,2,52,3],[53,2,53,3],[54,2,55,3],[56,2,57,3],[58,2,58,3],[59,2,59,3],[60,2,60,3],[61,1,69,1],[61,2,61,3],[62,2,62,3],[63,2,63,3],[64,2,64,3],[65,2,65,3],[66,2,66,3],[67,2,67,3],[68,2,68,3],[69,2,69,3],[70,2,70,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":5},"16KB固定","secure1","ARM9 static"]
[null,null,"Digest2 Table digest",{"$nulls":6},"NTR\n互換領域"]
[null,null,"Banner 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,"ROM Header digest",{"$nulls":7},"ARM7 static"]
[null,"KeyTable","KeyTable",null,"※カードアプリの場合のみ存在"]
["16KB固定","secure1","ARM9 static",{"$nulls":7},"ARM7 OVT"]
[null,"NTR\n互換領域"]
[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"]
[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"]
[]
[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,"※カードアプリの場合のみ存在"]
["16KB固定","secure2"]
[null,"TWL\n専用領域"]
[null,null,"ARM9 Ltd Overlay0"]
[null,null,"ARM9 Ltd Overlay1"]
[]
[]
[null,null,"ARM7 Ltd Overlay0"]
[null,null,"ARM7 Ltd Overlay1"]
[null,null,"File3 TWL"]
[null,null,"File4 TWL"]
[null,null,"※File1-5のうち、File3,4のみを\nTWL専用領域に配置するよう\nmakeromで指定した場合の例。"]
[null,null,"   "]