From 59e3269b2eec0647cfeeef306e7d33cc064f1af9 Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Wed, 24 Sep 2008 10:33:46 +0000 Subject: [PATCH] =?UTF-8?q?=E3=83=9E=E3=82=B9=E3=82=BF=E3=82=A8=E3=83=87?= =?UTF-8?q?=E3=82=A3=E3=82=BF:MRC=E3=83=87=E3=83=90=E3=83=83=E3=82=B0?= =?UTF-8?q?=E3=81=A7=E5=87=BA=E3=81=9F=E3=83=90=E3=82=B0=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2546 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../tools/MasterEditorTWL/MasterEditorTWL.ncb | Bin 11242496 -> 11242496 bytes .../tools/MasterEditorTWL/MasterEditorTWL.suo | Bin 56320 -> 59904 bytes .../MasterEditorTWL/Debug/BuildLog.htm | Bin 17502 -> 11580 bytes .../MasterEditorTWL/MasterEditorTWL/Form1.h | 2 +- .../MasterEditorTWL/deliverable.cpp | 9 +++++++- .../MasterEditorTWL/MasterEditorTWL/srl.cpp | 19 +++++++++++------ .../MasterEditorTWL/utility.cpp | 20 ++++++++++++++++++ .../MasterEditorTWL/MasterEditorTWL/utility.h | 9 ++++++++ 8 files changed, 51 insertions(+), 8 deletions(-) diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL.ncb b/build/tools/MasterEditorTWL/MasterEditorTWL.ncb index 5fa48671a3273cc4d6d474c34fa10a4f16a7cb95..a9f054854541828c94df3b2341040e2fcc341ae5 100644 GIT binary patch delta 32291 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 z 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 delta 1817 zcmZvce^69a6vy9r@9i$E{McO&yncna|vN&O7&> z?>+Cnqui2|i&F0?5njO$MKf&0>ta$+nji=-5HArsiF9H!kwI8+wG>b?>u@-7$SNRm ziI<5GVmt9Fv4hAXc-$`Mm``INv730E*hB0kQi**;5%C65OzbC0h&ZA(Yl~ej@hZ>p z9)CCRDoEr~wzFEfUG(SMr;yFJ;G(%u?qlJa05>(z%;AM#_QBE^16pJ?DnH9uic9<>}wu~?L6f!Wrq7~f~eT1z}jtRrFxdQpj) zJBwQL)0U_OUJ~I~`ikhCzieK*1iddyJ!cT-xk&|Hxs!;Qz8=goEf!E;FpTB?CTxmu z1Hi|T2e7p0Wd9xz5qg^zE@tO@vjF?f=i$H+0|cV}_#~EBYSFV-rx64b>5&nZH*^<+ zHIxk3Le;1Qp^Z2^&)?`R2xkccv+nnkVTtQUz^byQ{x%~pQ~N!zx0}#-e1buh1DK;a zP86pF7GJX(v@^7&4L8wP9j+ zA`afvp?#zjhtiH>RLoMzovVwV0WX{k%)%-ElNe?7XWgfEsW7>69hO(KyulOl zo5Qj@!X)?v-+Dho6-)L;S9wc(D8$IaxVqwMT5ZI(;YXmsO(8QNv4)Czz|s;UGamXK zu%+z~+H7v@$gxhq?~2;lz?sc}-}-e?eHs@zQPQWE`_CEyjbB97&*cz)p@FC4=3VDp zA_w>JDjc4?<`FU2s{$#Pt5lPy?}Or9XkGkJlg!scn}E*#i&Y<{a>2r|kE-KfolhWSj` uBqr~bmfp-~q6gCDjG@cl^d)u)Z*xl~?jnX920eykh609y&0FnPvH$>e>^A5C delta 1907 zcmcIlOK1~O6upTxT1(PsTGKfFj8iEQYyh$hXlC(<~lVsjK=iYOFFN;`fP!!KjYQbjK{#J9wv*6)+UDfIYjnNo?p)^)cP=+p23QvZnDMEP*k9lkP zTcwKY<*I|PyhMY*rDbI35RH;S!_-H%H`z~I+2HVl4mJ%=O7_FwZ<3TrUQ^UhBa|$_ z>M~YwybeI0$Y!zt{V-JHXb2?`IRUko=>n9ez>xF?+mT%wXTubSZJIg}dx%EOz1~jO za+NjbeB;8fbA^&$ak~=c@3s5O$}=>8OonL6_Ek!m^PT7KSNZw#x-#8>h&0k3gn$S> zr|_t>9Yq%Mjzju{mB=6+h1(305!M9GhtXcq)Ipl9{3;sm&H0)ljkb}-H`g}vS2ay; zP1y5=-hn7N+$jmSyQbcy@%4?0tt%^vC+itNTn*(sL0u@;LFy)*I&dP?QcwQ}U8bvzkvh}xsvfnFG>ks%}U3s$(USHnTxvsvAn_e4c&D!h~JxnxbP z*!@Z%>+l_H!I~EN8H4r==1j^#ic++;MckpK36;32L@wE5OXPegB#B&ckF8KE>~Vou zll@_@*(__A@W-3GBCtg)?nm|pmIbELXZ8%go&saCAM72w&qu>SFT-%=E&Q+Vn^-a| zhFDm!WGWqIH`)BHEL*&jWi#wFb2HHbo1@YPc8}d>U*PxG&=H_GOETR;=2WQgar^A` zu3nt=vc4sLL0qWQ(11Ny5gmh);FXo1vUcMNm-&C`vGXaY4v$xC$f^{k9@>g5deP_+ zTm+-IZ_{|U&wH$DIhUAx1Um3CQwZsJYURWQeJR~tYk zaS>+LS%D4;0ldE=(4BK`03BX*51#3?A|E LaJBg)e5>pq0K=bj diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h index 84489851..9107edd0 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/Form1.h @@ -3899,7 +3899,7 @@ private: System::Windows::Forms::DataGridViewTextBoxColumn^ colErrorCause; this->sucMsg( "Step1/2: ROMデータファイル(SRL)と提出確認書の情報を一致させるため、まず、入力情報を反映させたROMデータファイルを作成します。\n(キャンセルされたとき、SRLおよび提出確認書は作成されません。)\n" + "\n ROMデータファイル名は \"" + srlfile + "\"となります。\n" + "\nROMデータファイルを保存するフォルダを選択してください。", - "Step1/2: Firstly, We save ROM file(SRL) because several information in a submission sheet are match those in the ROM data file.\n(When it is canceled, both the SRL and a submission sheet are not made.)" + "Step1/2: Firstly, We save ROM file(SRL) because several information in a submission sheet are match those in the ROM data file.\n(When it is canceled, both the SRL and a submission sheet are not made.)\n" + "\n ROM data file name is \"" + srlfile + "\".\n" + "\nPlease select a folder in which the ROM data is saved." ); } diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.cpp b/build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.cpp index 55a6e60c..16c6e119 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.cpp +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/deliverable.cpp @@ -205,9 +205,16 @@ ECDeliverableResult RCDeliverable::writeSpreadsheet( if( node->FirstChild->Value->Equals( "TagRomVersion" ) ) { if( *(hSrl->hRomVersion) != 0xE0 ) + { node->FirstChild->Value = hSrl->hRomVersion->ToString(); + } else - node->FirstChild->Value = gcnew System::String( "E" ); + { + if( english ) + node->FirstChild->Value = gcnew System::String( "E (Preliminary ver.)" ); + else + node->FirstChild->Value = gcnew System::String( "E (事前版)" ); + } } if( node->FirstChild->Value->Equals( "TagSubmitVersion" ) ) { diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp index ebe06742..be155f80 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/srl.cpp @@ -1175,13 +1175,14 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) u32 romsize = 1 << (this->pRomHeader->s.rom_size); // ROM容量 if( *(this->hIsMediaNand) == false ) // カードアプリのときのみのチェック { - if( (romsize*1024*1024/8) < filesize ) + u32 filesizeMb = (filesize / (1024*1024)) * 8; + if( romsize < filesizeMb ) { this->hErrorList->Add( gcnew RCMrcError( "デバイス容量", 0x14, 0x14, "実ファイルサイズよりも小さい値が指定されています。", "Device Capacity", "Setting data is less than the actual file size.", false, true ) ); } - else if( filesize < (romsize*1024*1024/8) ) + else if( filesizeMb < romsize ) { this->hWarnList->Add( gcnew RCMrcError( // 警告 "デバイス容量", 0x14, 0x14, "実ファイルサイズに比べて無駄のある値が設定されています。", @@ -1193,10 +1194,10 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) "デバイス容量", 0x14, 0x14, "指定可能な容量ではありません。", "Device Capacity", "Invalid capacity.", false, true ) ); } - if( (filesize % 2) != 0 ) + if( (filesizeMb < 1) || (MasterEditorTWL::countBits(filesizeMb) != 1) ) { - this->hErrorList->Add( gcnew RCMrcError( - "実ファイルサイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, "中途半端な値です。通常では2のべき乗の値です。", + this->hWarnList->Add( gcnew RCMrcError( + "実ファイルサイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, "中途半端な値です。通常では2のべき乗[Mbit]の値です。", "Actual File Size", "Invalid size. This size is usually power of 2.", false, true ) ); } // 1Gbit以上のときの最終領域が固定値かどうか @@ -1424,7 +1425,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp ) { this->hErrorList->Add( gcnew RCMrcError( "アクセスコントロール情報", 0x1b4, 0x1b7, - "ゲームカード用ソフトは、NANDフラッシュとSDカードへアクセスできません。アクセスが必要な場合は、弊社業務部にまでご連絡ください。", + "ゲームカード用ソフトは、NANDフラッシュとSDカードへアクセスできません。アクセスが必要な場合は、弊社窓口にご相談ください。", "Access Control Info.", "Game soft for Game Card does'nt access to NAND frash memory and SD Card. If the soft wish to access them, please contact us.", false, true ) ); @@ -1634,6 +1635,12 @@ void RCSrl::mrcBanner(FILE *fp) return; } + // バナーオフセットにエラーがあるときには調べない + if( this->pRomHeader->s.banner_offset == 0 ) + { + return; + } + // 使用可能な文字のマップをつくる // 文字コードをインデックスとして使用可能なら 1 が入る // そうでないなら 0 が入る diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/utility.cpp b/build/tools/MasterEditorTWL/MasterEditorTWL/utility.cpp index 17f060f7..cdd0ea49 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/utility.cpp +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/utility.cpp @@ -362,3 +362,23 @@ void MasterEditorTWL::appendXmlTag( System::Xml::XmlDocument ^doc, System::Xml:: node->AppendChild( doc->CreateTextNode( text ) ); parent->AppendChild( node ); } + +// +// ビット数をカウントする +// +// @arg [in] 値 +// +// @ret ビット数 +// +u32 MasterEditorTWL::countBits( const u32 val ) +{ + // 分割統治法:隣り合うかたまりごとにビット数をカウントしていく + u32 n = val; + + n = ((n>>1) & 0x55555555) + (n & 0x55555555); + n = ((n>>2) & 0x33333333) + (n & 0x33333333); + n = ((n>>4) & 0x0f0f0f0f) + (n & 0x0f0f0f0f); + n = ((n>>8) & 0x00ff00ff) + (n & 0x00ff00ff); + n = (n>>16) + (n & 0x0000ffff); + return n; +} diff --git a/build/tools/MasterEditorTWL/MasterEditorTWL/utility.h b/build/tools/MasterEditorTWL/MasterEditorTWL/utility.h index 8fe8a6f1..180a888a 100644 --- a/build/tools/MasterEditorTWL/MasterEditorTWL/utility.h +++ b/build/tools/MasterEditorTWL/MasterEditorTWL/utility.h @@ -124,4 +124,13 @@ namespace MasterEditorTWL void appendXmlTag( System::Xml::XmlDocument ^doc, System::Xml::XmlElement ^parent, System::String ^tag, System::String ^text ); + // + // ビット数をカウントする + // + // @arg [in] 値 + // + // @ret ビット数 + // + u32 countBits( const u32 val ); + } // end of namespace MasterEditorTWL