diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb index bb22139..77aeb0c 100644 Binary files a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb and b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.ncb differ diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.suo b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.suo index d8ca790..c02e14c 100644 Binary files a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.suo and b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL.suo differ diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm index 22ee242..98364d5 100644 Binary files a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm and b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Debug/BuildLog.htm differ diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp index b1ab3f6..870839e 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/Form_srl.cpp @@ -199,7 +199,7 @@ void Form1::setSrlForms(void) } if( this->hSrl->IsCommonClientKeyForDebugger == true ) { - acc += "commonClientKey(Debug).\r\n"; + acc += "commonClientKey(Debugger).\r\n"; } this->tboxAccessOther->Text = acc; diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h index 7ba3a49..ea5702a 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/common.h @@ -6,7 +6,6 @@ #define METWL_LIGHT_CHECK // 提出条件を緩くするか // 定数 -#define METWL_ERRLIST_NORANGE 0 // エラーのアドレス範囲を指定しないことを表す特別な値 #define METWL_ROMSIZE_MIN 256 // 最小のデバイス容量 256Mbit #define METWL_ROMSIZE_MAX 4096 // 最大の.. 4Gbit #define METWL_ROMSIZE_MIN_NAND 1 diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/deliverable.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/deliverable.cpp index 5614c9a..18e1562 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/deliverable.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/deliverable.cpp @@ -117,7 +117,7 @@ ECDeliverableResult RCDeliverable::writeSpreadsheet( } if( hSrl->IsCommonClientKeyForDebugger ) { - access += "commonClientKey(Debug). "; + access += "commonClientKey(Debugger). "; } // 使用ライセンス diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_element.h b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_element.h index b1400bb..f759a63 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_element.h +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_element.h @@ -308,7 +308,7 @@ namespace MasterEditorTWL // gridViewの表示形式にあわせる cli::array^ getAll( System::Boolean isJapanese ) { - if( (this->begin == METWL_ERRLIST_NORANGE) && (this->end == METWL_ERRLIST_NORANGE) ) + if( (this->begin == 0) && (this->end == 0) ) { if( isJapanese ) return (gcnew array{this->hName, "-", "-", this->hMsg}); diff --git a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp index c199e16..f0e7bbf 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp +++ b/build/tools/MasterEditor/MasterEditorTWL/MasterEditorTWL/srl_mrc.cpp @@ -558,28 +558,110 @@ void RCSrl::mrcAccessControl(FILE *fp) if( (this->pRomHeader->s.access_control.game_card_on != 0) && (this->pRomHeader->s.access_control.game_card_nitro_mode != 0) ) { - this->hErrorList->Add( this->makeMrcError("CardAccess") ); + this->hErrorList->Add( this->makeMrcError("CardAccessSystem") ); + } + + if( this->pRomHeader->s.access_control.common_client_key != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Common Client Key") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot B for ES") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_C != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot C for NAM") ); + } + if( !this->IsMediaNand && (this->pRomHeader->s.access_control.nand_access != 0) ) // カードアプリのときのみ + { + this->hWarnList->Add( this->makeMrcError("NandAccessSystem") ); + } + if( this->pRomHeader->s.access_control.sd_card_access != 0 ) + { + this->hWarnList->Add( this->makeMrcError("SDAccessSystem") ); + } + if( this->pRomHeader->s.access_control.game_card_on != 0 ) + { + this->hWarnList->Add( this->makeMrcError("GameCardNormalAccessSystem") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot B (JPEG signature) for the launcher") ); + } + if( this->pRomHeader->s.access_control.game_card_nitro_mode != 0 ) + { + this->hWarnList->Add( this->makeMrcError("GameCardNTRAccessSystem") ); + } + if( !this->IsMediaNand && this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES SlotB (JPEG signature) for the user") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "HW AES Slot A for the SSL client certification") ); + } + if( this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0 ) + { + this->hWarnList->Add( this->makeMrcError("IllegalAccessSystem", "Common Client Key for the debugger system menu") ); + } + + // その他のビット + u32 okbits = 0x80001FFF; + u32 *p = (u32*)&(this->pRomHeader->s); + if( p[ 0x1b4 / 4 ] & ~okbits ) + { + this->hErrorList->Add( this->makeMrcError("AccessDefault") ); } } else // ユーザアプリ { + if( this->pRomHeader->s.access_control.common_client_key != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "Common Client Key") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_B != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot B for ES") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_C != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot C for NAM") ); + } + if( !this->IsMediaNand && (this->pRomHeader->s.access_control.nand_access != 0) ) // カードアプリのときのみ + { + this->hErrorList->Add( this->makeMrcError("NandAccessUser") ); + } if( this->pRomHeader->s.access_control.sd_card_access != 0 ) { - this->hErrorList->Add( this->makeMrcError("SDAccess") ); + this->hErrorList->Add( this->makeMrcError("SDAccessUser") ); } - if( !this->IsMediaNand ) // カードアプリのときのみ + if( this->pRomHeader->s.access_control.game_card_on != 0 ) { - this->hErrorList->Add( this->makeMrcError("NandAccess") ); + this->hErrorList->Add( this->makeMrcError("GameCardNormalAccessUser") ); } - u32 okbits; - if( !this->IsMediaNand ) + if( this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForLauncher != 0 ) { - okbits = 0x00000008 | 0x00000010 | 0x00000040; // NAND | SD | Shared2ファイル (それぞれ個別でチェックするためここではチェックしない) + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot B (JPEG signature) for the launcher") ); } - else + if( this->pRomHeader->s.access_control.game_card_nitro_mode != 0 ) { - okbits = 0x00000008 | 0x00000010 | 0x00000040 | 0x00000400; // NANDアプリのときはJpegSignフラグは許される + this->hErrorList->Add( this->makeMrcError("GameCardNTRAccessUser") ); } + if( !this->IsMediaNand && this->pRomHeader->s.access_control.hw_aes_slot_B_SignJPEGForUser != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES SlotB (JPEG signature) for the user") ); + } + if( this->pRomHeader->s.access_control.hw_aes_slot_A_SSLClientCert ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "HW AES Slot A for the SSL client certification") ); + } + if( this->pRomHeader->s.access_control.common_client_key_for_debugger_sysmenu != 0 ) + { + this->hErrorList->Add( this->makeMrcError("IllegalAccessUser", "Common Client Key for the debugger system menu") ); + } + + u32 okbits = 0x80001FFF; u32 *p = (u32*)&(this->pRomHeader->s); if( p[ 0x1b4 / 4 ] & ~okbits ) { diff --git a/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_e.xml b/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_e.xml index 4dd257c..90839ec 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_e.xml +++ b/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_e.xml @@ -222,46 +222,62 @@ - + Access Control Information Cannot set the Game Card access method to both Normal mode and NTR mode. 1b41b7FalseTrue - - - Access Control Information - Access to the SD Card is not permitted. - 1b41b7FalseTrue - - + + Access Control Information Access to the NAND flash is not permitted. 1b41b7FalseTrue - + + + Access Control Information + Access to the SD Card is not permitted. + 1b41b7FalseTrue + + + Access Control Information + The SD Card can be accessed. + 1b41b7FalseTrue + + + Access Control Information + Access to the Game Card is not permitted. + 1b41b7FalseTrue + + + Access Control Information + The Game Card can be accessed. + 1b41b7FalseTrue + + + Access Control Information + Access to the NTR-compatible region in the Game Card is not permitted. + 1b41b7FalseTrue + + + Access Control Information + The NTR-compatible region in the Game Card can be accessed. + 1b41b7FalseTrue + + + Access Control Information + Access to the {0} is not permitted. + 1b41b7FalseTrue + + + Access Control Information + The {0} can be accessed. + 1b41b7FalseTrue + Access Control Information - Configured not to allow access. + Illegal access bit(s) are set. This setting is not permitted. 1b41b7FalseTrue - - - Padding - Last {0} cannot be read. - 00FalseTrue - - - Padding - Last {0} must be padded by FFh. The limitations of {1} ROMs are not being observed. - 00FalseTrue - - - - - Reserved region - An illegal value is included. Pad this region with 00h only. - 00FalseTrue - - Shared2 file diff --git a/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_j.xml b/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_j.xml index 024ab6a..442752d 100644 --- a/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_j.xml +++ b/build/tools/MasterEditor/MasterEditorTWL/resource/mrc_msg_j.xml @@ -222,24 +222,59 @@ - + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア 繧イ繝シ繝繧ォ繝シ繝峨い繧ッ繧サ繧ケ險ュ螳壹↓繝弱シ繝槭Ν繝「繝シ繝峨→NTR繝「繝シ繝峨ョ荳。譁ケ繧定ィュ螳壹☆繧九%縺ィ縺ッ縺ァ縺阪∪縺帙s縲 1b41b7FalseTrue - - - 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア - SD繧ォ繝シ繝峨∈縺ョ繧「繧ッ繧サ繧ケ縺ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 - 1b41b7FalseTrue - - + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア 繧イ繝シ繝繧ォ繝シ繝臥畑繧ス繝輔ヨ縺ッNAND繝輔Λ繝繧キ繝・繝。繝「繝ェ縺ク縺ョ繧「繧ッ繧サ繧ケ繧定ィア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 1b41b7FalseTrue - + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + SD繧ォ繝シ繝峨∈縺ョ繧「繧ッ繧サ繧ケ縺ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + SD繧ォ繝シ繝峨∈繧「繧ッ繧サ繧ケ蜿ッ閭ス縺ォ縺ェ縺」縺ヲ縺縺セ縺吶 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + 繧イ繝シ繝繧ォ繝シ繝峨∈縺ョ繧「繧ッ繧サ繧ケ縺ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + 繧イ繝シ繝繧ォ繝シ繝峨∈繧「繧ッ繧サ繧ケ蜿ッ閭ス縺ォ縺ェ縺」縺ヲ縺縺セ縺吶 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + 繧イ繝シ繝繧ォ繝シ繝丑TR莠呈鋤鬆伜沺縺ク縺ョ繧「繧ッ繧サ繧ケ縺ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + 繧イ繝シ繝繧ォ繝シ繝丑TR莠呈鋤鬆伜沺縺ク繧「繧ッ繧サ繧ケ蜿ッ閭ス縺ォ縺ェ縺」縺ヲ縺縺セ縺吶 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + {0} 縺ク縺ョ繧「繧ッ繧サ繧ケ縺ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 + 1b41b7FalseTrue + + + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア + {0} 縺ク繧「繧ッ繧サ繧ケ蜿ッ閭ス縺ォ縺ェ縺」縺ヲ縺縺セ縺吶 + 1b41b7FalseTrue + 繧「繧ッ繧サ繧ケ繧ウ繝ウ繝医Ο繝シ繝ォ諠蝣ア - 險ア蜿ッ縺輔l縺ヲ縺縺ェ縺繧「繧ッ繧サ繧ケ縺瑚ィュ螳壹&繧後※縺縺セ縺吶ゅ%縺ョ險ュ螳壹ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 + 譛ェ螳夂セゥ縺ョ繧「繧ッ繧サ繧ケ繝薙ャ繝医′險ュ螳壹&繧後※縺縺セ縺吶ゅ%縺ョ險ュ螳壹ッ險ア蜿ッ縺輔l縺ヲ縺縺セ縺帙s縲 1b41b7FalseTrue