マスタエディタ:MRCメッセージをxmlタグに置き換え。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@196 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
nishikawa_takeshi 2009-03-03 07:53:42 +00:00
parent 4e5142aaef
commit b27db67cff
14 changed files with 8464 additions and 8913 deletions

View File

@ -280,9 +280,6 @@
<data name="cboxIsInputPerson2.Text" xml:space="preserve">
<value>Enter Contact 2 (optional)</value>
</data>
<data name="gboxPerson2.Text" xml:space="preserve">
<value>Contact 2</value>
</data>
<data name="labArbit4.Size" type="System.Drawing.Size, System.Drawing">
<value>55, 12</value>
</data>
@ -295,8 +292,8 @@
<data name="labArbit3.Text" xml:space="preserve">
<value>(Optional)</value>
</data>
<data name="gboxPerson1.Text" xml:space="preserve">
<value>Contact 1</value>
<data name="gboxPerson2.Text" xml:space="preserve">
<value>Contact 2</value>
</data>
<data name="labArbit2.Size" type="System.Drawing.Size, System.Drawing">
<value>55, 12</value>
@ -310,8 +307,11 @@
<data name="labArbit1.Text" xml:space="preserve">
<value>(Optional)</value>
</data>
<data name="gboxSubmitWay.Text" xml:space="preserve">
<value>Submission Method</value>
<data name="gboxPerson1.Text" xml:space="preserve">
<value>Contact 1</value>
</data>
<data name="gboxUsage.Text" xml:space="preserve">
<value>Usage</value>
</data>
<data name="rSubmitHand.Size" type="System.Drawing.Size, System.Drawing">
<value>62, 16</value>
@ -319,6 +319,9 @@
<data name="rSubmitHand.Text" xml:space="preserve">
<value>Internet</value>
</data>
<data name="gboxSubmitWay.Text" xml:space="preserve">
<value>Submission Method</value>
</data>
<data name="labSubmiteDate.Location" type="System.Drawing.Point, System.Drawing">
<value>9, 143</value>
</data>
@ -358,15 +361,15 @@
<data name="labProductCodeForeign.Location" type="System.Drawing.Point, System.Drawing">
<value>9, 74</value>
</data>
<data name="gboxShared2Size.Text" xml:space="preserve">
<value>Shared 2 File Size</value>
</data>
<data name="cboxIsShared2.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 16</value>
</data>
<data name="cboxIsShared2.Text" xml:space="preserve">
<value>Use of Shared 2 File</value>
</data>
<data name="gboxShared2Size.Text" xml:space="preserve">
<value>Shared 2 File Size</value>
</data>
<data name="labLib.Size" type="System.Drawing.Size, System.Drawing">
<value>161, 12</value>
</data>
@ -415,15 +418,15 @@
<data name="cboxIsTmpJump.Text" xml:space="preserve">
<value>Permit Tmp Jump Landing</value>
</data>
<data name="gboxAccess.Text" xml:space="preserve">
<value>Access Control Information</value>
</data>
<data name="labAccessOther.Size" type="System.Drawing.Size, System.Drawing">
<value>33, 12</value>
</data>
<data name="labAccessOther.Text" xml:space="preserve">
<value>Other</value>
</data>
<data name="gboxAccess.Text" xml:space="preserve">
<value>Access Control Information</value>
</data>
<data name="labIsGameCardOn2.Size" type="System.Drawing.Size, System.Drawing">
<value>119, 11</value>
</data>
@ -502,17 +505,11 @@
<data name="stripItemMiddlewareHtml.Text" xml:space="preserve">
<value>Create middleware list only (HTML format)</value>
</data>
<data name="tabRomInfo.Text" xml:space="preserve">
<value>Basic ROM Info</value>
</data>
<data name="tboxGuideRomInfo.Text" xml:space="preserve">
<value>Information on this tab cannot be edited. If data errors exist, review the ROM's build settings.</value>
</data>
<data name="tabTWLInfo.Text" xml:space="preserve">
<value>TWL Extended Info</value>
</data>
<data name="gboxLaunch.Text" xml:space="preserve">
<value>Launch Control on DSi Menu</value>
<data name="tabRomInfo.Text" xml:space="preserve">
<value>Basic ROM Info</value>
</data>
<data name="labConnectIcon.Size" type="System.Drawing.Size, System.Drawing">
<value>198, 12</value>
@ -520,18 +517,18 @@
<data name="labConnectIcon.Text" xml:space="preserve">
<value>Display Connection Icon on DSi Menu</value>
</data>
<data name="gboxLaunch.Text" xml:space="preserve">
<value>Launch Control on DSi Menu</value>
</data>
<data name="tboxGuideTWLInfo.Text" xml:space="preserve">
<value>Information on this tab cannot be edited. If data errors exist, review the ROM's build settings.</value>
</data>
<data name="tabNandSizeInfo.Text" xml:space="preserve">
<value>DSiWare Info</value>
<data name="tabTWLInfo.Text" xml:space="preserve">
<value>TWL Extended Info</value>
</data>
<data name="tboxGuideNandSizeInfo.Text" xml:space="preserve">
<value>Information on this tab is required to confirm the amount of space a given Nintendo DSiWare title (NAND application) uses in the system memory. &lt;newline&gt;If the media of the application is a Game Card, there is no need to check the amount of system memory used.</value>
</data>
<data name="gboxNandSize.Text" xml:space="preserve">
<value>Amount of System NAND Memory Used by DSiWare Application</value>
</data>
<data name="labNandSize.Location" type="System.Drawing.Point, System.Drawing">
<value>154, 23</value>
</data>
@ -592,11 +589,11 @@
<data name="labTmdSize.Text" xml:space="preserve">
<value>Other</value>
</data>
<data name="tabRomEditInfo.Text" xml:space="preserve">
<value>Market and Rating</value>
<data name="gboxNandSize.Text" xml:space="preserve">
<value>Amount of System NAND Memory Used by DSiWare Application</value>
</data>
<data name="gboxOtherSpec.Text" xml:space="preserve">
<value>Other ROM Specifications</value>
<data name="tabNandSizeInfo.Text" xml:space="preserve">
<value>DSiWare Info</value>
</data>
<data name="cboxIsUGC.Size" type="System.Drawing.Size, System.Drawing">
<value>227, 16</value>
@ -604,23 +601,26 @@
<data name="cboxIsUGC.Text" xml:space="preserve">
<value>UGC (User Generated Content) Support</value>
</data>
<data name="gboxOtherSpec.Text" xml:space="preserve">
<value>Other ROM Specifications</value>
</data>
<data name="butSetBack.Text" xml:space="preserve">
<value>Restore Initial Settings</value>
</data>
<data name="tboxGuideRomEditInfo.Text" xml:space="preserve">
<value>You must complete all items on this tab to create a submission checklist and Master ROM. &lt;newline&gt;This information is used as ROM registration data when the Master ROM is created (excluding "Other ROM Specifications").</value>
</data>
<data name="gboxParental.Text" xml:space="preserve">
<value>Market and Rating Information</value>
</data>
<data name="cboxIsUnnecessaryRating.Size" type="System.Drawing.Size, System.Drawing">
<value>195, 16</value>
</data>
<data name="cboxIsUnnecessaryRating.Text" xml:space="preserve">
<value>Rating Not Required (Tools Only)</value>
</data>
<data name="tabSubmitInfo.Text" xml:space="preserve">
<value>Submission Info</value>
<data name="gboxParental.Text" xml:space="preserve">
<value>Market and Rating Information</value>
</data>
<data name="tabRomEditInfo.Text" xml:space="preserve">
<value>Market and Rating</value>
</data>
<data name="labProductNameLimit.Text" xml:space="preserve">
<value>(30 characters or less)</value>
@ -629,9 +629,6 @@
<value>You must complete all items on this tab to create a submission checklist.
</value>
</data>
<data name="gboxForeign.Text" xml:space="preserve">
<value>Foreign Version</value>
</data>
<data name="labProductNameLimitForeign.Text" xml:space="preserve">
<value>(30 characters or less)</value>
</data>
@ -641,27 +638,30 @@
<data name="labMultiForeign2.Text" xml:space="preserve">
<value>(When for &gt;1 market)</value>
</data>
<data name="tabCompanyInfo.Text" xml:space="preserve">
<value>Company Info</value>
<data name="gboxForeign.Text" xml:space="preserve">
<value>Foreign Version</value>
</data>
<data name="tabSubmitInfo.Text" xml:space="preserve">
<value>Submission Info</value>
</data>
<data name="tboxGuideCompanyInfo.Text" xml:space="preserve">
<value>You must complete all items on this tab to create a submission checklist. Enter all information.</value>
</data>
<data name="tabErrorInfo.Text" xml:space="preserve">
<value>Error Info</value>
<data name="tabCompanyInfo.Text" xml:space="preserve">
<value>Company Info</value>
</data>
<data name="tboxGuideErrorInfo.Text" xml:space="preserve">
<value>This tab lists problems in the ROM data file and editing mistakes made when using this program. &lt;newline&gt;Items in red cannot be corrected using this program. You must modify the ROM build settings. &lt;newline&gt;Items in blue indicate problems with the ROM data that can be can corrected using this program. &lt;newline&gt;Items in black indicate errors or omissions in the Submission Info and Company Info tabs.</value>
</data>
<data name="gboxErrorTiming.Text" xml:space="preserve">
<value>Display Information From</value>
</data>
<data name="rErrorCurrent.Size" type="System.Drawing.Size, System.Drawing">
<value>121, 16</value>
</data>
<data name="rErrorCurrent.Text" xml:space="preserve">
<value>Apply current input</value>
</data>
<data name="gboxErrorTiming.Text" xml:space="preserve">
<value>Display Information From</value>
</data>
<data name="labWarn.Size" type="System.Drawing.Size, System.Drawing">
<value>466, 12</value>
</data>
@ -686,4 +686,7 @@
<data name="colErrorBegin.HeaderText" xml:space="preserve">
<value>Start</value>
</data>
<data name="tabErrorInfo.Text" xml:space="preserve">
<value>Error Info</value>
</data>
</root>

View File

@ -28,8 +28,8 @@ using namespace MasterEditorTWL;
void Form1::construct(void)
{
// フィールド初期化
this->hSrl = gcnew (RCSrl);
this->hDeliv = gcnew (RCDeliverable);
this->hSrl = gcnew RCSrl( this->getMrcMessageFileJ(), this->getMrcMessageFileE() );
this->hDeliv = gcnew RCDeliverable;
this->IsLoadTad = false;
this->hErrorList = gcnew System::Collections::Generic::List<RCMrcError^>();
this->hErrorList->Clear();

View File

@ -19,12 +19,12 @@ using namespace MasterEditorTWL;
// ****************************************************************
// constructor
RCSrl::RCSrl()
RCSrl::RCSrl( System::String ^msgfileJ, System::String ^msgfileE )
{
this->pRomHeader = new (ROM_Header);
std::memset( pRomHeader, 0, sizeof(ROM_Header) );
this->hMrcExternalCheckItems = gcnew RCMrcExternalCheckItems();
this->hMrcMsg = gcnew RCMessageBank( msgfileJ, msgfileE );
}
// destructor
@ -48,11 +48,11 @@ RCSrl::!RCSrl()
//
// @arg [in] 入力ファイル名
// -------------------------------------------------------------------
ECSrlResult RCSrl::readFromFile( System::String ^filename )
ECSrlResult RCSrl::readFromFile( System::String ^srlfile )
{
FILE *fp = NULL;
const char *pchFilename =
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( filename ).ToPointer();
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( srlfile ).ToPointer();
ECSrlResult r;
// ファイルを開いてROMヘッダのみ読み出す
@ -133,11 +133,11 @@ ECSrlResult RCSrl::readFromFile( System::String ^filename )
//
// @arg [in] 出力ファイル名
// -------------------------------------------------------------------
ECSrlResult RCSrl::writeToFile( System::String ^filename )
ECSrlResult RCSrl::writeToFile( System::String ^srlfile )
{
FILE *fp = NULL;
const char *pchFilename =
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( filename ).ToPointer();
(const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( srlfile ).ToPointer();
ECSrlResult result;
// ROMヘッダにROM固有情報を反映させる
@ -366,16 +366,12 @@ bool RCSrl::setRegionInfo( u32 region )
// リージョンに含まれる団体がなかったらリージョンは不正
if( MasterEditorTWL::getOgnListInRegion( region ) == nullptr )
{
this->hParentalErrorList->Add( gcnew RCMrcError(
"リージョン", 0x1b0, 0x1b3, "仕向地の組み合わせが不正です。ペアレンタルコントロール情報は無視して読み込まれました。",
"Region", "Illigal Region. Parental Control Information is ignored in reading.", true, true ) );
this->hParentalErrorList->Add( this->makeMrcError("IllegalRegion") );
return false;
}
if( !this->IsAppUser && (region == METWL_MASK_REGION_ALL) )
{
this->hParentalWarnList->Add( gcnew RCMrcError(
"リージョン", 0x1b0, 0x1b3, "読み込み時のROMでは全リージョンが設定されています。仕向地別に設定する必要がないかご確認ください。",
"Region", "All Region is set in reading ROM. Please check necessity for setting each region individually.", true, true ) );
this->hParentalWarnList->Add( this->makeMrcError("AllRegion") );
}
return true;
}
@ -412,18 +408,11 @@ void RCSrl::setUnnecessaryRatingInfo( u32 region )
if( !noerror )
{
this->IsUnnecessaryRating = false; // エラーのときはROMヘッダに不要と登録されていても無視する
this->hParentalErrorList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", 0x1b0, 0x1b3, "レーティング表示が不要かどうかを判断できません。再設定してください。",
"Parental Control Info.", "Can't judge wheather rating display is unnecessary.", true, true ) );
this->hParentalErrorList->Add( this->makeMrcError("UnnecessaryRatingIllegal") );
}
else
{
this->hParentalWarnList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"読み込み時のROMにはレーティング表示が不要であると設定されています。この指定は、ソフトがゲームでないツール類のときのみ選択可能です。レーティング表示が不要であるかどうかは弊社窓口にご相談ください。",
"Parental Control",
"In the loaded ROM, rating is unnecessary. This selection is available for only tool application which is not game. Please contact Nintendo for checking validation of this selection",
true, true ) );
this->hParentalWarnList->Add( this->makeMrcError("UnnecessaryRatingSetting") );
}
}
@ -463,11 +452,7 @@ void RCSrl::setOneRatingOrgInfo( int ogn )
if( !enable ) // 未定義
{
index = -1;
this->hParentalErrorList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", 0x2f0, 0x2ff,
name + ": 未定義です。",
"Parental Control Info.",
name + ": Undefined.", true, true ) );
this->hParentalErrorList->Add( this->makeMrcError("RatingUndefine", name) );
}
else
{
@ -476,20 +461,12 @@ void RCSrl::setOneRatingOrgInfo( int ogn )
if( age == 0 ) // 年齢が0のときは審査中とみなす
{
index = ages->Length; // 配列の最後の要素の次が「審査中」
this->hParentalWarnList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
name + ": 読み込み時のROMには審査中であると指定されています。審査が決まりしだい、再提出してください。",
"Parental Control",
name + ": In the loaded ROM, no rating yet. Please submit again when rating is dicided.", true, true ) );
this->hParentalWarnList->Add( this->makeMrcError("RatingPendingSetting", name) );
}
else
{
index = -1; // それ以外はエラー
this->hParentalErrorList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", 0x2f0, 0x2ff,
name + ": 審査中指定とレーティング年齢が同時に設定されています。",
"Parental Control Info.",
name + ": Both the Rating-Peding setting and the rating age are setting.", true, true ) );
this->hParentalErrorList->Add( this->makeMrcError("RatingPendingConcurrent", name) );
}
}
else
@ -505,11 +482,7 @@ void RCSrl::setOneRatingOrgInfo( int ogn )
}
if( index < 0 )
{
this->hParentalErrorList->Add( gcnew RCMrcError(
"ペアレンタルコントロール情報", 0x2f0, 0x2ff,
name + ": レーティング年齢が団体によって指定された値ではありません。",
"Parental Control Info.",
name + ": An age isn't accepted by the organization.", true, true ) );
this->hParentalErrorList->Add( this->makeMrcError("IllegalRating", name) );
}
}
}
@ -980,3 +953,31 @@ void RCSrl::calcNandUsedSize(FILE *fp)
//System::Diagnostics::Debug::WriteLine( "SUB " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->SubBannerSizeRoundUp) );
//System::Diagnostics::Debug::WriteLine( "ALL " + MasterEditorTWL::transSizeToString(this->hNandUsedSize->NandUsedSize) );
}//RCSrl::calcNandUsedSize()
// -------------------------------------------------------------------
// MRCメッセージを取得
// -------------------------------------------------------------------
RCMrcError^ RCSrl::makeMrcError( System::String ^tag, ... cli::array<System::String^> ^args )
{
// パラメータも取得(日本語版から)
System::UInt32 beg = System::UInt32::Parse( this->hMrcMsg->getMessage( tag+"/begin", "J" ), System::Globalization::NumberStyles::HexNumber );
System::UInt32 end = System::UInt32::Parse( this->hMrcMsg->getMessage( tag+"/end", "J" ), System::Globalization::NumberStyles::HexNumber );
System::Boolean isEnableModify = System::Boolean::Parse( this->hMrcMsg->getMessage( tag+"/modify", "J" ) );
System::Boolean isAffectRom = System::Boolean::Parse( this->hMrcMsg->getMessage( tag+"/affect", "J" ) );
return (this->makeMrcError( beg, end, isEnableModify, isAffectRom, tag, args ));
}
RCMrcError^ RCSrl::makeMrcError( System::UInt32 beg, System::UInt32 end, System::Boolean isEnableModify, System::Boolean isAffectRom,
System::String ^tag, ... cli::array<System::String^> ^args )
{
// 外部ファイルから項目名を取得
System::String ^nameJ = this->hMrcMsg->getMessage( tag+"/name", "J" );
System::String ^nameE = this->hMrcMsg->getMessage( tag+"/name", "E" );
// メッセージを取得
System::String ^fmtJ = this->hMrcMsg->getMessage( tag+"/sentence", "J" ); // メッセージファイルから書式を取得
System::String ^msgJ = System::String::Format( fmtJ, args ); // 書式をStringに展開
System::String ^fmtE = this->hMrcMsg->getMessage( tag+"/sentence", "E" );
System::String ^msgE = System::String::Format( fmtE, args );
return (gcnew RCMrcError( nameJ, beg, end, msgJ, nameE, msgE, isEnableModify, isAffectRom ));
}

View File

@ -10,6 +10,7 @@
#include "srl_const.h"
#include "srl_element.h"
#include "utility.h"
#include "message_bank.h"
namespace MasterEditorTWL
{
@ -115,9 +116,14 @@ namespace MasterEditorTWL
// MRC追加項目
property RCMrcExternalCheckItems ^hMrcExternalCheckItems;
// MRCメッセージ
property RCMessageBank ^hMrcMsg;
// constructor / destructor / finalizer
private:
RCSrl(){};
public:
RCSrl();
RCSrl( System::String ^msgfileJ, System::String ^msgfileE ); // MRCメッセージのファイルを指定する
~RCSrl();
!RCSrl();
@ -129,8 +135,8 @@ namespace MasterEditorTWL
//
// @arg [in/out] 入出力ファイル名
//
ECSrlResult readFromFile ( System::String ^filename );
ECSrlResult writeToFile( System::String ^filename );
ECSrlResult readFromFile( System::String ^srlfile );
ECSrlResult writeToFile( System::String ^srlfile );
// internal method
private:
@ -171,6 +177,11 @@ namespace MasterEditorTWL
void mrcShared2( FILE *fp );
void mrcSDKVersion( FILE *fp );
// MRCメッセージを追加
RCMrcError^ makeMrcError( System::String ^tag, ... cli::array<System::String^> ^args );
RCMrcError^ makeMrcError( System::UInt32 beg, System::UInt32 end, System::Boolean isEnableModify, System::Boolean isAffectRom,
System::String ^tag, ... cli::array<System::String^> ^args );
}; // end of ref class RCSrl
} // end of namespace MasterEditorTWL

View File

@ -64,9 +64,7 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if( !result )
{
this->hErrorList->Add( gcnew RCMrcError(
"ソフトタイトル", 0x0, 0xb, "使用不可のASCIIコードが使用されています。",
"Game Title", "Unusable ASCII code is used.", false, true ) );
this->hErrorList->Add( this->makeMrcError("TitleNameAscii") );
}
result = true;
@ -84,9 +82,7 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if( !result )
{
this->hErrorList->Add( gcnew RCMrcError(
"ソフトタイトル", 0x0, 0xb, "末尾の未使用部分には00hを登録してください。",
"Game Title", "Please use 00h for an unused part.", false, true ) );
this->hErrorList->Add( this->makeMrcError("TitleNameSuffix") );
}
result = true;
@ -102,9 +98,7 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if( !result )
{
this->hErrorList->Add( gcnew RCMrcError(
"ソフトタイトル", 0x0, 0xb, "スペース部分には20hを登録してください。",
"Game Title", "Please use 20h for an space part.", false, true ) );
this->hErrorList->Add( this->makeMrcError("TitleNameSpace") );
}
// ゲームコードの文字コードチェック
@ -119,15 +113,11 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if( !result )
{
this->hErrorList->Add( gcnew RCMrcError(
"イニシャルコード", 0xc, 0xf, "使用不可のASCIIコードが使用されています。",
"Game Code", "Unusable ASCII code is used.", false, true ) );
this->hErrorList->Add( this->makeMrcError("InitialCodeAscii") );
}
if( memcmp( this->pRomHeader->s.game_code, "NTRJ", GAME_CODE_MAX ) == 0 )
{
this->hErrorList->Add( gcnew RCMrcError(
"イニシャルコード", 0xc, 0xf, "SDKデフォルトのコード(NTRJ)が使用されています。",
"Game Code", "SDK default code(NTRJ) is used.", false, true ) );
this->hErrorList->Add( this->makeMrcError("InitialCodeSDKDefault") );
}
// メーカコードの文字コードチェック
@ -142,40 +132,30 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if( !result )
{
this->hErrorList->Add( gcnew RCMrcError(
"メーカーコード", 0x10, 0x11, "使用不可のASCIIコードが使用されています。",
"Maker Code", "Unusable ASCII code is used.", false, true ) );
this->hErrorList->Add( this->makeMrcError("MakerCodeAscii") );
}
// デバイスタイプは不使用なので00h固定
if( this->pRomHeader->s.rom_type != 0x00 )
{
this->hErrorList->Add( gcnew RCMrcError(
"デバイスタイプ", 0x13, 0x13, "不正な値です。00hを設定してください。",
"Device Type", "Invalid data. Please set 00h.", false, true ) );
this->hErrorList->Add( this->makeMrcError("DeviceType") );
}
// リマスターバージョンが16進2桁のときエラー
u8 romver = this->pRomHeader->s.rom_version;
if( ((romver < 0x00) || (0x0f < romver)) && (romver != 0xE0) )
{
this->hErrorList->Add( gcnew RCMrcError(
"リマスターバージョン", 0x1e, 0x1e, "不正な値です。正式版では01h-0Fhのいずれかの値、事前版ではE0hを設定してください。",
"Release Ver.", "Invalid data. Please set either one of 01h-0Fh(Regular ver.), or E0h(Preliminary ver.)", false, true ) );
this->hErrorList->Add( this->makeMrcError("RemasterVersion") );
}
// 必ず設定されていなければならないパラメータ
if( this->pRomHeader->s.banner_offset == 0 )
{
this->hErrorList->Add( gcnew RCMrcError(
"バナーオフセット", 0x68, 0x6b, "バナーデータが設定されていません。",
"Banner Offset.", "Banner data is not set.", false, true ) );
this->hErrorList->Add( this->makeMrcError("BannerOffset") );
}
if( this->pRomHeader->s.rom_valid_size == 0 )
{
this->hErrorList->Add( gcnew RCMrcError(
"ROM実効サイズ", 0x80, 0x83, "値が設定されていません。",
"ROM Valid Size.", "Data is not set.", false, true ) );
this->hErrorList->Add( this->makeMrcError("RomValidSize") );
}
// CRC
@ -192,9 +172,7 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if (secure_size <= 0)
{
this->hErrorList->Add( gcnew RCMrcError(
"セキュア領域CRC", 0x15e, 0x15f, "セキュア領域のアドレス指定が不正です。",
"Secure Area CRC.", "Illegal address of secure area.", false, true ) );
this->hErrorList->Add( this->makeMrcError("SecureCRCAddress") );
}
secures = new u8[secure_size]; // never return if not allocated
fseek( fp, (u32)this->pRomHeader->s.main_rom_offset, SEEK_SET );
@ -207,9 +185,7 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
delete []secures;
if( crc != this->pRomHeader->s.secure_area_crc16 )
{
this->hErrorList->Add( gcnew RCMrcError(
"セキュア領域CRC", 0x07c, 0x07d, "計算結果と一致しません。セキュア領域が改ざんされた可能性があります。",
"Secure Area CRC.", "Calclated CRC is different from Registered one.", false, true ) );
this->hErrorList->Add( this->makeMrcError("SecureCRCVerify") );
}
}
@ -217,18 +193,14 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
crc = 0xcf56;
if( crc != this->pRomHeader->s.nintendo_logo_crc16 )
{
this->hErrorList->Add( gcnew RCMrcError(
"キャラクターデータCRC", 0x15c, 0x15d, "計算結果と一致しません。キャラクターデータが改ざんされた可能性があります。",
"Charactor Data CRC.", "Calclated CRC is different from Registered one.", false, true ) );
this->hErrorList->Add( this->makeMrcError("LogoCRC") );
}
// ヘッダCRC
crc = calcCRC( CRC16_INIT_VALUE, (u8*)this->pRomHeader, CALC_CRC16_SIZE );
if( crc != this->pRomHeader->s.header_crc16 )
{
this->hErrorList->Add( gcnew RCMrcError(
"ROMヘッダCRC", 0x15e, 0x15f, "計算結果と一致しません。ROMヘッダが改ざんされた可能性があります。",
"ROM Header CRC.", "Calclated CRC is different from Registered one.", false, true ) );
this->hErrorList->Add( this->makeMrcError("HeaderCRC") );
}
// ROMヘッダ以外の領域のチェック (ファイルから適宜リードする)
@ -248,9 +220,7 @@ ECSrlResult RCSrl::mrcNTR( FILE *fp )
}
if( i == 32 ) // 全部0
{
this->hErrorList->Add( gcnew RCMrcError(
"システムコールライブラリ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, "SDKデフォルトです。",
"System-Call Library", "This Library is SDK default one.", false, true ) );
this->hErrorList->Add( this->makeMrcError("Syscall") );
}
return ECSrlResult::NOERROR;
} // mrcNTR()
@ -277,33 +247,18 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
{
if( !this->HasDSDLPlaySign && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_HYBLID) )
{
this->hErrorList->Add( gcnew RCMrcError(
"NANDアプリのHYBRID条件", 0x12, 0x12,
"クローンブート対応でないNANDアプリをHYBRID版として作成することは許可されていません。",
"HYBRID NAND application",
"Building HYBRID NAND Application supported Clone Boot is not permitted.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("NandHybrid") );
}
if( this->HasDSDLPlaySign && (this->pRomHeader->s.platform_code == PLATFORM_CODE_TWL_LIMITED) )
{
this->hErrorList->Add( gcnew RCMrcError(
"NANDアプリのLIMITED条件", 0x12, 0x12,
"クローンブート対応のNANDアプリをLIMITED版として作成することは許可されていません。",
"LIMITED NAND application",
"Building LIMITED NAND Application supported Clone Boot is not permitted.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("NandLimited") );
}
}
// 旧開発用暗号フラグとクローンブートの組み合わせはマスタリングで矛盾が生じる
if( this->IsOldDevEncrypt && this->HasDSDLPlaySign )
{
this->hErrorList->Add( gcnew RCMrcError(
"旧開発用暗号フラグ", 0x1c, 0x1c,
"このROMはクローンブート対応アプリですが、製品用本体ではクローンブートができなくなります。",
"Old Development Flag",
"This ROM supports Clone-Boot, and the flag is old type. Therefore, Clone-Boot can't be done.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("OldDevFlag") );
}
// デバイス容量と実ファイルサイズ
@ -315,54 +270,36 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
u32 filesizeMb = (filesize / (1024*1024)) * 8; // 単位をMbitに直す
if( romsize < filesizeMb )
{
this->hErrorList->Add( gcnew RCMrcError(
"デバイス容量", 0x14, 0x14, "実ファイルサイズよりも小さい値が指定されています。",
"Device Capacity", "Setting data is less than the actual file size.", false, true ) );
this->hErrorList->Add( this->makeMrcError("CapacityCardLess") );
}
else if( filesizeMb < romsize )
{
this->hWarnList->Add( gcnew RCMrcError( // 警告
"デバイス容量", 0x14, 0x14, "実ファイルサイズに比べて無駄のある値が設定されています。",
"Device Capacity", "Setting data is larger than the actual file size.", false, true ) );
this->hWarnList->Add( this->makeMrcError("CapacityCardWaste") );
}
if( (romsize < METWL_ROMSIZE_MIN) || (METWL_ROMSIZE_MAX < romsize) )
{
this->hErrorList->Add( gcnew RCMrcError(
"デバイス容量", 0x14, 0x14, "指定可能な容量ではありません。",
"Device Capacity", "Invalid capacity.", false, true ) );
this->hErrorList->Add( this->makeMrcError("CapacityCardRange") );
}
if( (filesizeMb < 1) || (MasterEditorTWL::countBits(filesizeMb) != 1) )
{
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 ) );
this->hWarnList->Add( this->makeMrcError("CapacityCardFraction") );
}
} //if( *(this->hIsNAND) == false )
else // NANDアプリのときのみのチェック
{
if( (romsize < METWL_ROMSIZE_MIN_NAND) || (METWL_ROMSIZE_MAX_NAND < romsize) )
{
this->hErrorList->Add( gcnew RCMrcError(
"デバイス容量", 0x14, 0x14, "NANDアプリに対して指定可能な容量ではありません。",
"Device Capacity", "Invalid capacity.", false, true ) );
this->hErrorList->Add( this->makeMrcError("CapacityNandRangel") );
}
//u32 allsize = filesize + this->pRomHeader->s.public_save_data_size + this->pRomHeader->s.private_save_data_size;
u32 allsize = this->hNandUsedSize->NandUsedSize; // TMDやサブバナーのサイズを含める
if( allsize > METWL_ALLSIZE_MAX_NAND )
{
this->hErrorList->Add( gcnew RCMrcError(
"NAND領域の使用サイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が32MBを超えています。",
"Actual File Size",
"NAND size used by NAND application, including Save Data, exceeds 32MB.", false, true ) );
this->hErrorList->Add( this->makeMrcError("UsedNandSizeLimit") );
}
if( (allsize > METWL_ALLSIZE_MAX_NAND_LIC) && this->IsAppUser ) // ユーザアプリのときのみ
{
this->hWarnList->Add( gcnew RCMrcError( // 運用上問題あるがシステム上では問題ないので警告にしておく
"NAND領域の使用サイズ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が16MBを超えています。",
"Used NAND Size",
"NAND size used by NAND application, including Save Data, exceeds 16MB.", false, true ) );
this->hErrorList->Add( this->makeMrcError("UsedNandSizeExceed") );
}
}
@ -377,10 +314,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
BOOL crcret = getSeg3CRCInFp( fp, &crcseg3 );
if( !crcret || (crcseg3 != METWL_SEG3_CRC) )
{
this->hErrorList->Add( gcnew RCMrcError(
"セグメント3 CRC", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"セグメント3領域に誤りがあります。",
"Segment-3 CRC", "Invalid data exist in Segment-3 area.", false, true ) );
this->hErrorList->Add( this->makeMrcError("Seg3CRC") );
}
}
@ -391,12 +325,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
u16 KA = this->pRomHeader->s.twl_card_keytable_area_rom_offset;
if( (NA == 0) || (KA == 0) || (NA > KA) )
{
this->hErrorList->Add( gcnew RCMrcError(
"TWL ROMオフセット", 0x90, 0x93,
"TWLーマル領域ROMオフセット(NA)およびTWL専用領域ROMオフセット(KA)はともに1以上で、かつNAはKAを超えてはいけません。",
"TWL ROM Offset",
"Both TWL Normal Area ROM Offset(NA) and TWL Limited Area ROM Offset(KA) are bigger than 0. And NA must be smaller than KA, or equals to KA.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("TwlRomOffset") );
}
}
@ -406,24 +335,14 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
{
if( this->pRomHeader->s.disable_debug == 0 )
{
this->hWarnList->Add( gcnew RCMrcError(
"デバッガ動作禁止フラグ", 0x1f, 0x1f,
"デバッガ上で解析可能な設定になっています。デバッガ向けソフトとしてROMをリリースする場合にはセキュリティ上の問題がないかご確認ください。",
"Disable Launch on Debugger Flag",
"This ROM can be analyzed on the debugger. If the ROM is released for the debugger, please check the security settings.",
false, true ) );
this->hWarnList->Add( this->makeMrcError("DisableDebugSystem") );
}
}
else
{
if( this->pRomHeader->s.disable_debug != 0 )
{
this->hErrorList->Add( gcnew RCMrcError(
"デバッガ動作禁止フラグ", 0x1f, 0x1f,
"デバッガ上で解析不可な設定になっています。この設定は許可されていません。",
"Disable Launch on Debugger Flag",
"This ROM can't be analyzed on the debugger. This setting is unavailable.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("DisableDebugUser") );
}
}
@ -433,24 +352,14 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
u8 *p = (u8*)&(this->pRomHeader->s);
if( p[0x1d] & ~okbits )
{
this->hErrorList->Add( gcnew RCMrcError(
"特定仕向地", 0x1d, 0x1d,
"不正なビットが立っています。この設定は許可されていません。",
"Extra Region Code",
"Illegal bit is setting. This setting is unavailable.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("ExtraRegion") );
}
if( this->IsAppUser )
{
if( (this->pRomHeader->s.permit_landing_normal_jump != 0) &&
!this->hMrcExternalCheckItems->IsPermitNormalJump ) // 設定ファイルでアクセス許可されていないときにチェック
{
this->hErrorList->Add( gcnew RCMrcError(
"ノーマルアプリジャンプ", 0x1d, 0x1d,
"ノーマルアプリジャンプは許可されていません。",
"Normal App Jump",
"This setting is not permitted.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("NormalJump") );
}
}
}
@ -458,16 +367,12 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
// NANDアプリのときにはROMの種類(MROM/1TROM)が設定されていなくてもよい
if( (this->pRomHeader->s.warning_no_spec_rom_speed != 0) && !this->IsMediaNand )
{
this->hErrorList->Add( gcnew RCMrcError(
"諸フラグ", 0x1f, 0x1f, "rsfファイルでROMSpeedTypeが設定されていません。",
"Setting Flags", "In a RSF file, the item \"ROMSpeedType\" is not set.", false, true ) );
this->hErrorList->Add( this->makeMrcError("RomSpeedType") );
}
// 1TROMのみ許可(ROMの種類が設定されないときデフォルトで1TROMとなる)
if( (this->pRomHeader->s.game_cmd_param & CARD_LATENCY_MASK) != CARD_1TROM_GAME_LATENCY )
{
this->hErrorList->Add( gcnew RCMrcError(
"ROMコントロール情報", 0x60, 0x67, "TWLではマスクROMは用意されていません。ワンタイムPROM設定にしてください。",
"ROM Control Info.", "Mask ROM can be set. Please set One-time PROM.", false, true ) );
this->hErrorList->Add( this->makeMrcError("RomControl") );
}
// AESがかかっていないとエラー
@ -475,18 +380,14 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
{
if( (this->pRomHeader->s.enable_aes == 0) || (this->pRomHeader->s.aes_target_size == 0) )
{
this->hErrorList->Add( gcnew RCMrcError(
"AES暗号", 0x60, 0x67, "AES暗号が無効になっています。セキュリティ上の問題があります。",
"AES Encryption", "AES Encryption is disable. It is a security problem.", false, true ) );
this->hErrorList->Add( this->makeMrcError("AES") );
}
}
else // NANDアプリ
{
if( (this->pRomHeader->s.enable_aes == 0) || (this->pRomHeader->s.aes_target_size == 0) || (this->pRomHeader->s.aes_target2_size == 0) )
{
this->hErrorList->Add( gcnew RCMrcError(
"AES暗号", 0x60, 0x67, "AES暗号が無効になっています。セキュリティ上の問題があります。",
"AES Encryption", "AES Encryption is disable. It is a security problem.", false, true ) );
this->hErrorList->Add( this->makeMrcError("AES") );
}
}
@ -500,23 +401,13 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
// NTRホワイトリスト署名
if( this->IsWL )
{
this->hErrorList->Add( gcnew RCMrcError(
"TWL拡張諸フラグ", 0x1bf, 0x1bf,
"本来、立つはずのないフラグが立てられています。ビルド時の設定をご確認ください。",
"TWL Extended Flag",
"Unavailable flag is set. Please check building option.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("WhiteList") );
}
// 通信アイコン表示
if( this->IsWiFiIcon && this->IsWirelessIcon )
{
this->hErrorList->Add( gcnew RCMrcError(
"アイコン表示フラグ", 0x1bf, 0x1bf,
"ワイヤレス通信アイコンとWi-Fi通信アイコンは同時に表示できません。",
"Icon Displaying Flag",
"Icon displayed on menu is either Wireless Icon or Wi-Fi Connection Icon.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("ConnectIcon") );
}
// TWL Limited static の位置が KeyTable 領域よりも前にあってはいけない
@ -526,21 +417,14 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
u32 actual = this->pRomHeader->s.main_ltd_rom_offset;
if( ideal > actual )
{
this->hErrorList->Add( gcnew RCMrcError(
"拡張常駐モジュール", 0x1c0, 0x1c3,
"TWL拡張常駐モジュールの配置に問題があります。弊社窓口にご連絡ください。",
"Extended Static Module",
"Alignment of TWL Extended Static Module is illegal. Please contact us, sorry.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("LimitedStatic") );
}
}
// ランチャー以外はSCFGにアクセスしてはならない
if( !this->IsAppLauncher && this->IsSCFGAccess )
{
this->hWarnList->Add( gcnew RCMrcError(
"SCFG設定", 0x1b8, 0x1bb, "SCFGレジスタへアクセス可能になっています。",
"SCFG Setting", "In this setting, SCFG register is accessible.", false, true ) );
this->hWarnList->Add( this->makeMrcError("SCFGAccess") );
}
// TitleID Lo はゲームコードの逆順
@ -549,9 +433,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
(this->pRomHeader->s.titleID_Lo[2] != this->pRomHeader->s.game_code[1]) ||
(this->pRomHeader->s.titleID_Lo[3] != this->pRomHeader->s.game_code[0]) )
{
this->hWarnList->Add( gcnew RCMrcError(
"タイトルID", 0x230, 0x233, "下位4バイトがイニシャルコードと一致しません。",
"Title ID", "Lower 4 bytes don't match ones of Game Code.", false, true ) );
this->hWarnList->Add( this->makeMrcError("TitleID") );
}
// カードアプリでPublic/Privateセーブデータを設定してはいけない
@ -559,11 +441,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
{
if( (this->PublicSize > 0) || (this->PrivateSize) )
{
this->hErrorList->Add( gcnew RCMrcError(
"Pubilc/Privateセーブデータ", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"ゲームカード向けソフトではPublicセーブデータおよびPrivateセーブデータのサイズを指定することはできません。",
"Public/Private Save Data",
"Application for GameCard can not have Public Save Data or Private Save Data.", false, true ) );
this->hErrorList->Add( this->makeMrcError("SaveData") );
}
}
@ -578,11 +456,7 @@ ECSrlResult RCSrl::mrcTWL( FILE *fp )
{
if( lic->Publisher->Equals( "NINTENDO" ) && lic->Name->Equals( "DEBUG" ) )
{
this->hErrorList->Add( gcnew RCMrcError(
"Debug/Releaseビルド", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"FINALROMビルドのROMではありません。必ずFINALROMビルドのROMを作成してご提出ください。",
"Debug/Release Build",
"This ROM isn't FINALROM-build. Please submit a FINALROM-build ROM.", false, true ) );
this->hErrorList->Add( this->makeMrcError("DebugBuild") );
}
}
@ -604,8 +478,7 @@ void RCSrl::mrcAppType(FILE *fp)
const int appSystem = 1;
const int appSecure = 2;
const int appLauncher = 3;
System::String ^appstrJ = gcnew System::String("");
System::String ^appstrE = gcnew System::String("");
System::String ^appstr = gcnew System::String("");
idH = this->pRomHeader->s.titleID_Hi;
memcpy( idL, &(this->pRomHeader->s.titleID_Lo[0]), 4 );
@ -613,26 +486,22 @@ void RCSrl::mrcAppType(FILE *fp)
if( (idL[3]=='H') && (idL[2]=='N') && (idL[1]=='A') ) // ランチャアプリかどうかはTitleID_Loの値で決定
{
apptype = appLauncher;
appstrJ = "ランチャーアプリ";
appstrE = "Launcher-App.";
appstr = "Launcher";
}
else if( idH & TITLE_ID_HI_SECURE_FLAG_MASK ) // 立ってたらセキュアアプリ
{
apptype = appSecure;
appstrJ = "セキュアアプリ";
appstrE = "Secure-App.";
appstr = "Secure";
}
else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 1 ) // 立ってたらシステムアプリ
{
apptype = appSystem;
appstrJ = "システムアプリ";
appstrE = "System-App.";
appstr = "System";
}
else if( (idH & TITLE_ID_HI_APP_TYPE_MASK) == 0 ) // 残るはユーザアプリ
{
apptype = appUser;
appstrJ = "ユーザアプリ";
appstrE = "User-App.";
appstr = "User";
}
else
{
@ -641,9 +510,7 @@ void RCSrl::mrcAppType(FILE *fp)
if( apptype < 0 )
{
this->hWarnList->Add( gcnew RCMrcError(
"アプリ種別", 0x230, 0x237, "不正な値です。",
"Application Type", "Illigal type.", false, true ) );
this->hWarnList->Add( this->makeMrcError("IllegalAppType") );
}
System::Boolean bApp = false;
@ -677,9 +544,7 @@ void RCSrl::mrcAppType(FILE *fp)
if( !bApp )
{
this->hWarnList->Add( gcnew RCMrcError(
"アプリ種別", 0x230, 0x237, "このROMデータは" + appstrJ + "です。本プログラムでは非対応です。",
"Application Type", "This ROM is " + appstrE + " which is unsurpported by this editor.", false, true ) );
this->hWarnList->Add( this->makeMrcError("DifferentAppType", appstr) );
}
} //RCSrl::mrcAppType()
@ -693,33 +558,18 @@ 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( gcnew RCMrcError(
"アクセスコントロール情報", 0x1b4, 0x1b7, "ゲームカードアクセス設定にーマルモードとNTRモードの両方を設定することはできません。",
"Access Control Info.", "Game card access setting is either normal mode or NTR mode.", false, true ) );
this->hErrorList->Add( this->makeMrcError("CardAccess") );
}
}
else // ユーザアプリ
{
if( this->pRomHeader->s.access_control.sd_card_access != 0 )
{
this->hErrorList->Add( gcnew RCMrcError(
"アクセスコントロール情報", 0x1b4, 0x1b7,
"SDカードへのアクセスは許可されていません。",
"Access Control Info.",
"Application for Game Card doesn't access to NAND frash memory.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("SDAccess") );
}
if( !this->IsMediaNand ) // カードアプリのときのみ
{
if( this->pRomHeader->s.access_control.nand_access != 0 )
{
this->hErrorList->Add( gcnew RCMrcError(
"アクセスコントロール情報", 0x1b4, 0x1b7,
"ゲームカード用ソフトは、NANDフラッシュメモリへのアクセスを許可されていません。",
"Access Control Info.",
"Application for Game Card doesn't access to NAND frash memory.",
false, true ) );
}
this->hErrorList->Add( this->makeMrcError("NandAccess") );
}
u32 okbits;
if( !this->IsMediaNand )
@ -733,12 +583,7 @@ void RCSrl::mrcAccessControl(FILE *fp)
u32 *p = (u32*)&(this->pRomHeader->s);
if( p[ 0x1b4 / 4 ] & ~okbits )
{
this->hErrorList->Add( gcnew RCMrcError(
"アクセスコントロール情報", 0x1b4, 0x1b7,
"許可されていないアクセスが設定されています。この設定は許可されていません。",
"Access Control Info.",
"Illegal Access is setting. This setting is unavailable.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("AccessDefault") );
}
}
} //RCSrl::mrcAccessControl()
@ -750,28 +595,24 @@ void RCSrl::mrcPadding(FILE *fp)
{
u32 romsize = 1 << (this->pRomHeader->s.rom_size); // ROM容量
u32 padsize = 0; // 単位はByte
System::String ^padstrJ = gcnew System::String("");
System::String ^padstrE = gcnew System::String("");
System::String ^padstr = gcnew System::String("");
System::String ^romstr = gcnew System::String("");
switch( romsize )
{
case 1024:
padsize = 0x00280000; // 20Mbit = 2.5MB
padstrJ = "最終20Mbit";
padstrE = "Last 20Mbit";
padstr = "20Mbit";
romstr = "1Gbit";
break;
case 2048:
padsize = 0x00500000; // 40Mbit = 5MB
padstrJ = "最終40Mbit";
padstrE = "Last 40Mbit";
padstr = "40Mbit";
romstr = "2Gbit";
break;
case 4096:
padsize = 0x00A60000; // 83Mbit = 10.375MB
padstrJ = "最終83Mbit";
padstrE = "Last 83Mbit";
padstr = "83Mbit";
romstr = "4Gbit";
break;
default:
@ -788,10 +629,7 @@ void RCSrl::mrcPadding(FILE *fp)
u32 offset = ((romsize / 8) * 1024 * 1024) - padsize;
if( (offset + padsize) > filesize )
{
this->hErrorList->Add( gcnew RCMrcError(
padstrJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"読み出すことができませんでした。",
padstrE, "This area couldn't be read", false, true ) );
this->hErrorList->Add( this->makeMrcError("PaddingRead", padstr) );
return;
}
@ -799,10 +637,7 @@ void RCSrl::mrcPadding(FILE *fp)
fseek( fp, offset, SEEK_SET );
if( padsize != fread( buf, 1, padsize, fp ) )
{
this->hErrorList->Add( gcnew RCMrcError(
padstrJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"読み出すことができませんでした。",
padstrE, "This area couldn't be read", false, true ) );
this->hErrorList->Add( this->makeMrcError("PaddingRead", padstr) );
delete []buf;
return;
}
@ -818,12 +653,7 @@ void RCSrl::mrcPadding(FILE *fp)
}
if( !bResult )
{
this->hErrorList->Add( gcnew RCMrcError(
padstrJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"FFh以外の値が格納されています。 " + romstr + " ROMの容量制限が守られていません。",
padstrE,
"This area includes illegai data. " + romstr + " Volume constraint is violated.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("PaddingValue", padstr, romstr) );
}
delete []buf;
} //RCSrl::mrcPadding
@ -852,9 +682,7 @@ void RCSrl::mrcReservedArea(FILE *fp)
}
if( !bReserved )
{
this->hErrorList->Add( gcnew RCMrcError(
"予約領域", begin, end, "不正な値が含まれています。この領域をすべて0で埋めてください。",
"Reserved Area", "Invalid data is included. Please set 0 into this area.", false, true ) );
this->hErrorList->Add( this->makeMrcError(begin, end, false, true, "ReservedArea") );
}
} //for each
}
@ -871,12 +699,7 @@ void RCSrl::mrcShared2(FILE *fp)
if( (this->hShared2SizeArray[0] != 0) || (this->hShared2SizeArray[1] != 0) || (this->hShared2SizeArray[2] != 0) ||
(this->hShared2SizeArray[3] != 0) || (this->hShared2SizeArray[4] != 0) || (this->hShared2SizeArray[5] != 0) )
{
this->hErrorList->Add( gcnew RCMrcError(
"Shared2ファイル", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"Shared2ファイルへのアクセスが指定されていないにもかかわらずファイルサイズが設定されています。",
"Shared2 File",
"Although access to Shared2 files is not setting, file size is setting.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("Shared2Disable") );
}
return;
}
@ -886,12 +709,7 @@ void RCSrl::mrcShared2(FILE *fp)
if( (this->hShared2SizeArray[0] == 0) && (this->hShared2SizeArray[1] == 0) && (this->hShared2SizeArray[2] == 0) &&
(this->hShared2SizeArray[3] == 0) && (this->hShared2SizeArray[4] == 0) && (this->hShared2SizeArray[5] == 0) )
{
this->hErrorList->Add( gcnew RCMrcError(
"Shared2ファイル", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"Shared2ファイルへのアクセスが指定されているにもかかわらずファイルサイズが設定されていません。",
"Shared2 File",
"Although access to Shared2 files is setting, file size is not setting.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("Shared2Enable") );
return;
}
@ -902,57 +720,28 @@ void RCSrl::mrcShared2(FILE *fp)
{
if( this->hShared2SizeArray[i] > 0 ) // 0以外の値が設定されている = そのファイルを使用したい を意味する
{
System::String ^filenoJ = "Shared2ファイル(No." + i.ToString() + ")";
System::String ^filenoE = "Shared File(No." + i.ToString() + ")";
if( !this->hMrcExternalCheckItems->hIsPermitShared2Array[i] )
{
// 一般公開されていないのにファイルを使用する場合を考慮してシステムアプリのときのメッセージを変更する
if( !this->IsAppUser )
{
this->hWarnList->Add( gcnew RCMrcError(
filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
filenoJ + "へのアクセス(非公開)が設定されています。"
+ "アクセス許可されているかご確認ください。",
filenoE,
filenoE + " is not revealed to licencies. Please check permission of access to this file.",
false, true ) );
this->hWarnList->Add( this->makeMrcError("Shared2AccessSystem", i.ToString()) );
}
else
{
this->hErrorList->Add( gcnew RCMrcError(
filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
filenoJ + "へのアクセスは許可されていません。",
filenoE,
"Access to " + filenoE + " is not permitted.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("Shared2AccessUser", i.ToString()) );
}
}
if( this->hShared2SizeArray[i] != this->hMrcExternalCheckItems->hShared2SizeArray[i] )
{
if( !this->IsAppUser )
{
this->hWarnList->Add( gcnew RCMrcError( // システムのとき警告
filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
filenoJ + "のファイルサイズが "
+ MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + " に設定されています。"
+ "正しい値かどうかをご確認ください。",
filenoE,
"File size of " + filenoE + " is "
+ MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + "."
+ " Please check validation of this size.",
false, true ) );
this->hWarnList->Add( this->makeMrcError("Shared2SizeSystem",
i.ToString(), MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i])) );
}
{
this->hErrorList->Add( gcnew RCMrcError( // ユーザのときエラー
filenoJ, METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
filenoJ + "のファイルサイズが "
+ MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + " に設定されています。"
+ "正しい値かどうかをご確認ください。",
filenoE,
"File size of " + filenoE + " is "
+ MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i]) + "."
+ " Please check validation of this size.",
false, true ) );
this->hWarnList->Add( this->makeMrcError("Shared2SizeUser",
i.ToString(), MasterEditorTWL::transSizeToString(this->hShared2SizeArray[i])) );
}
}
} //if( this->hShared2SizeArray[i] > 0 )
@ -982,21 +771,15 @@ void RCSrl::mrcSDKVersion(FILE *fp)
}
if( isOld )
{
this->hWarnList->Add( gcnew RCMrcError(
"SDKバージョン", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, "設定ファイルに登録されているバージョンよりも古いバージョンです。",
"SDK Version", "Older version (comparing with a setting file)", false, true ) );
this->hWarnList->Add( this->makeMrcError("SDKVersionOld") );
}
if( isPR )
{
this->hWarnList->Add( gcnew RCMrcError(
"SDKバージョン", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, "ご使用のSDKバージョンはPR版です。",
"SDK Version", "Used version is PR.", false, true ) );
this->hWarnList->Add( this->makeMrcError("SDKVersionPR") );
}
if( isRC )
{
this->hWarnList->Add( gcnew RCMrcError(
"SDKバージョン", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE, "ご使用のSDKバージョンはRC版です。",
"SDK Version", "Used version is RC.", false, true ) );
this->hWarnList->Add( this->makeMrcError("SDKVersionRC") );
}
}
@ -1051,12 +834,7 @@ void RCSrl::mrcBanner(FILE *fp)
fseek( fp, this->pRomHeader->s.banner_offset, SEEK_SET );
if( size != fread( banner, 1, size, fp ) )
{
this->hErrorList->Add( gcnew RCMrcError(
"バナーファイル", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"読み出すことができませんでした。",
"Banner File",
"The file can't be read.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("BannerRead") );
}
// バナーの各文字がマップに登録されているかチェック
@ -1081,12 +859,7 @@ void RCSrl::mrcBanner(FILE *fp)
}
if( !bResult )
{
this->hErrorList->Add( gcnew RCMrcError(
"バナーファイル", METWL_ERRLIST_NORANGE, METWL_ERRLIST_NORANGE,
"使用不可能な文字セットが使用されています。",
"Banner File",
"A set of illegal charactor code is used.",
false, true ) );
this->hErrorList->Add( this->makeMrcError("BannerChar") );
}
delete []banner;
} //RCSrl::mrcBanner()

View File

@ -78,4 +78,26 @@ Exception:{0}
<!-- Load Temp File -->
<E_LoadTemp>Failed to read temporary information.</E_LoadTemp>
<!-- Check -->
<TextBoxInput>Input omission: Input data.</TextBoxInput>
<NumRangeInput>Input omission: Illegal value.</NumRangeInput>
<ComboBoxInput>Input omission: Select data.</ComboBoxInput>
<LabelProductName>Product Name</LabelProductName>
<LabelProductCode>Product Code</LabelProductCode>
<LabelCountryCode>Product Code(Region Code)</LabelCountryCode>
<LabelProductNameForeign>Product Name(Roreign Version)</LabelProductNameForeign>
<LabelProductNameForeign>Product Code(Roreign Version)</LabelProductNameForeign>
<LabelUsage>Usage</LabelUsage>
<LabelBackup>Backup Memory</LabelBackup>
<LabelPerson1>Contact1</LabelPerson1>
<LabelCompany1>Company(Contact1)</LabelCompany1>
<LabelDepart1>Dept.(Contact1)</LabelDepart1>
<LabelTel1>TEL(Contact1)</LabelTel1>
<LabelMail1>e-mail(Contact1)</LabelMail1>
<LabelPerson2>Contact2</LabelPerson2>
<LabelCompany2>Company(Contact2)</LabelCompany2>
<LabelDepart2>Dept.(Contact2)</LabelDepart2>
<LabelTel2>TEL(Contact2)</LabelTel2>
<LabelMail2>e-mail(Contact2)</LabelMail2>
</message>

View File

@ -78,4 +78,26 @@
<!-- Load Temp File -->
<E_LoadTemp>一時情報の読み込みに失敗しました。</E_LoadTemp>
<!-- Check -->
<TextBoxInput>入力漏れ: 入力してください。</TextBoxInput>
<NumRangeInput>入力漏れ: 値が不正です。</NumRangeInput>
<ComboBoxInput>入力漏れ: 選択してください。</ComboBoxInput>
<LabelProductName>製品名</LabelProductName>
<LabelProductCode>製品コード</LabelProductCode>
<LabelCountryCode>製品コード(仕向地仕様コード)</LabelCountryCode>
<LabelProductNameForeign>製品名(海外版)</LabelProductNameForeign>
<LabelProductNameForeign>製品コード(海外版)</LabelProductNameForeign>
<LabelUsage>目的</LabelUsage>
<LabelBackup>バックアップメモリ</LabelBackup>
<LabelPerson1>ご氏名(担当者1)</LabelPerson1>
<LabelCompany1>貴社名(担当者1)</LabelCompany1>
<LabelDepart1>部署名(担当者1)</LabelDepart1>
<LabelTel1>TEL(担当者1)</LabelTel1>
<LabelMail1>e-mail(担当者1)</LabelMail1>
<LabelPerson2>ご氏名(担当者2)</LabelPerson2>
<LabelCompany2>貴社名(担当者2)</LabelCompany2>
<LabelDepart2>部署名(担当者2)</LabelDepart2>
<LabelTel2>TEL(担当者2)</LabelTel2>
<LabelMail2>e-mail(担当者2)</LabelMail2>
</message>

View File

@ -0,0 +1,369 @@
<?xml version="1.0" encoding="UTF-8"?>
<message>
<!-- NTR Compatible Area -->
<TitleNameAscii>
<name>ソフトタイトル</name>
<sentence>使用不可のASCIIコードが使用されています。</sentence>
<begin>0</begin><end>b</end><modify>False</modify><affect>True</affect>
</TitleNameAscii>
<TitleNameSuffix>
<name>ソフトタイトル</name>
<sentence>末尾の未使用部分には00hを登録してください。</sentence>
<begin>0</begin><end>b</end><modify>False</modify><affect>True</affect>
</TitleNameSuffix>
<TitleNameSpace>
<name>ソフトタイトル</name>
<sentence>スペース部分には20hを登録してください。</sentence>
<begin>0</begin><end>b</end><modify>False</modify><affect>True</affect>
</TitleNameSpace>
<InitialCodeAscii>
<name>イニシャルコード</name>
<sentence>使用不可のASCIIコードが使用されています。</sentence>
<begin>c</begin><end>f</end><modify>False</modify><affect>True</affect>
</InitialCodeAscii>
<InitialCodeSDKDefault>
<name>イニシャルコード</name>
<sentence>SDKデフォルトのコード(NTRJ)が使用されています。</sentence>
<begin>c</begin><end>f</end><modify>False</modify><affect>True</affect>
</InitialCodeSDKDefault>
<MakerCodeAscii>
<name>メーカーコード</name>
<sentence>使用不可のASCIIコードが使用されています。</sentence>
<begin>10</begin><end>11</end><modify>False</modify><affect>True</affect>
</MakerCodeAscii>
<DeviceType>
<name>デバイスタイプ</name>
<sentence>不正な値です。00hを設定してください</sentence>
<begin>13</begin><end>13</end><modify>False</modify><affect>True</affect>
</DeviceType>
<RemasterVersion>
<name>リマスターバージョン</name>
<sentence>不正な値です。正式版では01h-0Fhのいずれかの値、事前版ではE0hを設定してください。</sentence>
<begin>1e</begin><end>1e</end><modify>False</modify><affect>True</affect>
</RemasterVersion>
<BannerOffset>
<name>バナーオフセット</name>
<sentence>バナーデータが設定されていません。</sentence>
<begin>68</begin><end>6b</end><modify>False</modify><affect>True</affect>
</BannerOffset>
<RomValidSize>
<name>ROM実効サイズ</name>
<sentence>値が設定されていません。</sentence>
<begin>80</begin><end>83</end><modify>False</modify><affect>True</affect>
</RomValidSize>
<SecureCRCAddress>
<name>セキュア領域CRC</name>
<sentence>セキュア領域のアドレス指定が不正です。</sentence>
<begin>7c</begin><end>7d</end><modify>False</modify><affect>True</affect>
</SecureCRCAddress>
<SecureCRCVerify>
<name>セキュア領域CRC</name>
<sentence>計算結果と一致しません。セキュア領域が改ざんされた可能性があります。</sentence>
<begin>7c</begin><end>7d</end><modify>False</modify><affect>True</affect>
</SecureCRCVerify>
<LogoCRC>
<name>キャラクターデータCRC</name>
<sentence>計算結果と一致しません。キャラクターデータが改ざんされた可能性があります。</sentence>
<begin>15c</begin><end>15d</end><modify>False</modify><affect>True</affect>
</LogoCRC>
<HeaderCRC>
<name>ROMヘッダCRC</name>
<sentence>計算結果と一致しません。ROMヘッダが改ざんされた可能性があります。</sentence>
<begin>15e</begin><end>15f</end><modify>False</modify><affect>True</affect>
</HeaderCRC>
<Syscall>
<name>システムコールライブラリ</name>
<sentence>SDKデフォルトです。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Syscall>
<!-- TWL Unique Area -->
<NandHybrid>
<name>NANDアプリのHYBRID条件</name>
<sentence>クローンブート対応でないNANDアプリをHYBRID版として作成することは許可されていません。</sentence>
<begin>12</begin><end>12</end><modify>False</modify><affect>True</affect>
</NandHybrid>
<NandLimited>
<name>NANDアプリのLIMITED条件</name>
<sentence>クローンブート対応のNANDアプリをLIMITED版として作成することは許可されていません。</sentence>
<begin>12</begin><end>12</end><modify>False</modify><affect>True</affect>
</NandLimited>
<OldDevFlag>
<name>旧開発用暗号フラグ</name>
<sentence>このROMはクローンブート対応アプリですが、製品用本体ではクローンブートができなくなります。</sentence>
<begin>1c</begin><end>1c</end><modify>False</modify><affect>True</affect>
</OldDevFlag>
<CapacityCardLess>
<name>デバイス容量</name>
<sentence>実ファイルサイズよりも小さい値が指定されています。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardLess>
<CapacityCardWaste>
<name>デバイス容量</name>
<sentence>実ファイルサイズに比べて無駄のある値が設定されています。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardWaste>
<CapacityCardRange>
<name>デバイス容量</name>
<sentence>指定可能な容量ではありません。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardRange>
<CapacityCardFraction>
<name>デバイス容量</name>
<sentence>中途半端な値です。通常では2のべき乗[Mbit]の値です。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardFraction>
<CapacityNandRange>
<name>デバイス容量</name>
<sentence>NANDアプリに対して指定可能な容量ではありません。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityNandRange>
<UsedNandSizeLimit>
<name>NAND領域の使用サイズ</name>
<sentence>NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が32MBを超えています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</UsedNandSizeLimit>
<UsedNandSizeExceed>
<name>NAND領域の使用サイズ</name>
<sentence>NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が16MBを超えています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</UsedNandSizeExceed>
<Seg3CRC>
<name>セグメント3 CRC</name>
<sentence>セグメント3領域に誤りがあります。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Seg3CRC>
<TwlRomOffset>
<name>TWL ROMオフセット</name>
<sentence>TWLーマル領域ROMオフセット(NA)およびTWL専用領域ROMオフセット(KA)はともに1以上で、かつNAはKAを超えてはいけません。</sentence>
<begin>90</begin><end>93</end><modify>False</modify><affect>True</affect>
</TwlRomOffset>
<DisableDebugSystem>
<name>デバッガ動作禁止フラグ</name>
<sentence>デバッガ上で解析可能な設定になっています。デバッガ向けソフトとしてROMをリリースする場合にはセキュリティ上の問題がないかご確認ください。</sentence>
<begin>1f</begin><end>1f</end><modify>False</modify><affect>True</affect>
</DisableDebugSystem>
<DisableDebugUser>
<name>デバッガ動作禁止フラグ</name>
<sentence>デバッガ上で解析不可な設定になっています。この設定は許可されていません。</sentence>
<begin>1f</begin><end>1f</end><modify>False</modify><affect>True</affect>
</DisableDebugUser>
<ExtraRegion>
<name>特定仕向地</name>
<sentence>不正なビットが立っています。この設定は許可されていません。</sentence>
<begin>1d</begin><end>1d</end><modify>False</modify><affect>True</affect>
</ExtraRegion>
<NormalJump>
<name>ノーマルアプリジャンプ</name>
<sentence>ノーマルアプリジャンプは許可されていません</sentence>
<begin>1d</begin><end>1d</end><modify>False</modify><affect>True</affect>
</NormalJump>
<RomSpeedType>
<name>諸フラグ</name>
<sentence>rsfファイルでROMSpeedTypeが設定されていません。</sentence>
<begin>1f</begin><end>1f</end><modify>False</modify><affect>True</affect>
</RomSpeedType>
<RomControl>
<name>ROMコントロール情報</name>
<sentence>TWLではマスクROMは用意されていません。ワンタイムPROM設定にしてください。</sentence>
<begin>60</begin><end>67</end><modify>False</modify><affect>True</affect>
</RomControl>
<AES>
<name>AES暗号</name>
<sentence>AES暗号が無効になっています。セキュリティ上の問題があります。</sentence>
<begin>220</begin><end>22f</end><modify>False</modify><affect>True</affect>
</AES>
<WhiteList>
<name>TWL拡張諸フラグ</name>
<sentence>本来、立つはずのないフラグが立てられています。ビルド時の設定をご確認ください。</sentence>
<begin>1bf</begin><end>1bf</end><modify>False</modify><affect>True</affect>
</WhiteList>
<ConnectIcon>
<name>アイコン表示フラグ</name>
<sentence>ワイヤレス通信アイコンとWi-Fi通信アイコンは同時に表示できません。</sentence>
<begin>1bf</begin><end>1bf</end><modify>False</modify><affect>True</affect>
</ConnectIcon>
<LimitedStatic>
<name>拡張常駐モジュール</name>
<sentence>TWL拡張常駐モジュールの配置に問題があります。弊社窓口にご連絡ください。</sentence>
<begin>1c0</begin><end>1c3</end><modify>False</modify><affect>True</affect>
</LimitedStatic>
<SCFGAccess>
<name>SCFG設定</name>
<sentence>SCFGレジスタへアクセス可能になっています。</sentence>
<begin>1b8</begin><end>1bb</end><modify>False</modify><affect>True</affect>
</SCFGAccess>
<TitleID>
<name>タイトルID</name>
<sentence>下位4バイトがイニシャルコードと一致しません。</sentence>
<begin>230</begin><end>233</end><modify>False</modify><affect>True</affect>
</TitleID>
<SaveData>
<name>Pubilc/Privateセーブデータ</name>
<sentence>ゲームカード向けソフトではPublicセーブデータおよびPrivateセーブデータのサイズを指定することはできません。</sentence>
<begin>238</begin><end>23f</end><modify>False</modify><affect>True</affect>
</SaveData>
<DebugBuild>
<name>Debug/Releaseビルド</name>
<sentence>FINALROMビルドのROMではありません。必ずFINALROMビルドのROMを作成してご提出ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</DebugBuild>
<!-- Application Type -->
<IllegalAppType>
<name>アプリ種別</name>
<sentence>不正な値です。</sentence>
<begin>230</begin><end>237</end><modify>False</modify><affect>True</affect>
</IllegalAppType>
<DifferentAppType>
<name>アプリ種別</name>
<sentence>アプリ種別は「{0}」です。本プログラムでは非対応です。</sentence>
<begin>230</begin><end>237</end><modify>False</modify><affect>True</affect>
</DifferentAppType>
<!-- Access Control -->
<CardAccess>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードアクセス設定にーマルモードとNTRモードの両方を設定することはできません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</CardAccess>
<SDAccess>
<name>アクセスコントロール情報</name>
<sentence>SDカードへのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccess>
<NandAccess>
<name>アクセスコントロール情報</name>
<sentence>ゲームカード用ソフトはNANDフラッシュメモリへのアクセスを許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</NandAccess>
<AccessDefault>
<name>アクセスコントロール情報</name>
<sentence>許可されていないアクセスが設定されています。この設定は許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</AccessDefault>
<!-- Padding -->
<PaddingRead>
<name>パディング</name>
<sentence>最終{0}を読み出すことができませんでした。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</PaddingRead>
<PaddingValue>
<name>パディング</name>
<sentence>最終{0}にFFh以外の値が格納されています。{1} ROMの制限が守られていません。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</PaddingValue>
<!-- Reserved Area -->
<ReservedArea>
<name>予約領域</name>
<sentence>不正な値が含まれています。この領域をすべて0で埋めてください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</ReservedArea>
<!-- Shared2 file -->
<Shared2Disable>
<name>Shared2ファイル</name>
<sentence>Shared2ファイルへのアクセスが指定されていないにもかかわらずファイルサイズが設定されています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2Disable>
<Shared2Enable>
<name>Shared2ファイル</name>
<sentence>Shared2ファイルへのアクセスが指定されているにもかかわらずファイルサイズが設定されていません。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2Enable>
<Shared2AccessSystem>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})へのアクセス(非公開)が設定されています。アクセス許可されているかご確認ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2AccessSystem>
<Shared2AccessUser>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})へのアクセスは許可されていません。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2AccessUser>
<Shared2SizeSystem>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})のファイルサイズが {1} に設定されています。正しい値かどうかをご確認ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2SizeSystem>
<Shared2SizeUser>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})のファイルサイズが {1} に設定されています。正しい値かどうかをご確認ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2SizeUser>
<!-- SDK Version -->
<SDKVersionOld>
<name>SDKバージョン</name>
<sentence>設定ファイルに登録されているバージョンよりも古いバージョンです。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</SDKVersionOld>
<SDKVersionPR>
<name>SDKバージョン</name>
<sentence>ご使用のSDKバージョンはPR版です。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</SDKVersionPR>
<SDKVersionRC>
<name>SDKバージョン</name>
<sentence>ご使用のSDKバージョンはRC版です。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</SDKVersionRC>
<!-- Banner -->
<BannerRead>
<name>バナーファイル</name>
<sentence>読み出すことができませんでした。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</BannerRead>
<BannerChar>
<name>バナーファイル</name>
<sentence>使用不可能な文字セットが使用されています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</BannerChar>
<!-- Region -->
<IllegalRegion>
<name>リージョン</name>
<sentence>仕向地の組み合わせが不正です。ペアレンタルコントロール情報は無視して読み込まれました。</sentence>
<begin>1b0</begin><end>1b4</end><modify>True</modify><affect>True</affect>
</IllegalRegion>
<AllRegion>
<name>リージョン</name>
<sentence>読み込み時のROMでは全リージョンが設定されています。仕向地別に設定する必要がないかご確認ください。</sentence>
<begin>1b0</begin><end>1b4</end><modify>True</modify><affect>True</affect>
</AllRegion>
<!-- Rating -->
<UnnecessaryRatingIllegal>
<name>レーティング</name>
<sentence>レーティング表示が不要かどうかを判断できません。再設定してください。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</UnnecessaryRatingIllegal>
<UnnecessaryRatingSetting>
<name>レーティング</name>
<sentence>読み込み時のROMにはレーティング表示が不要であると設定されています。この指定は、ソフトがゲームでないツール類のときのみ選択可能です。レーティング表示が不要であるかどうかは弊社窓口にご相談ください。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</UnnecessaryRatingSetting>
<RatingUndefine>
<name>レーティング</name>
<sentence>{0}: 未定義です。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</RatingUndefine>
<RatingPendingSetting>
<name>レーティング</name>
<sentence>{0}: 読み込み時のROMには審査中であると指定されています。審査が決まりしだい、再提出してください。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</RatingPendingSetting>
<RatingPendingConcurrent>
<name>レーティング</name>
<sentence>{0}: 審査中指定とレーティング年齢が同時に設定されています。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</RatingPendingConcurrent>
<IllegalRating>
<name>レーティング</name>
<sentence>{0}: レーティング年齢が団体によって指定された値ではありません。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</IllegalRating>
</message>

View File

@ -0,0 +1,369 @@
<?xml version="1.0" encoding="UTF-8"?>
<message>
<!-- NTR Compatible Area -->
<TitleNameAscii>
<name>ソフトタイトル</name>
<sentence>使用不可のASCIIコードが使用されています。</sentence>
<begin>0</begin><end>b</end><modify>False</modify><affect>True</affect>
</TitleNameAscii>
<TitleNameSuffix>
<name>ソフトタイトル</name>
<sentence>末尾の未使用部分には00hを登録してください。</sentence>
<begin>0</begin><end>b</end><modify>False</modify><affect>True</affect>
</TitleNameSuffix>
<TitleNameSpace>
<name>ソフトタイトル</name>
<sentence>スペース部分には20hを登録してください。</sentence>
<begin>0</begin><end>b</end><modify>False</modify><affect>True</affect>
</TitleNameSpace>
<InitialCodeAscii>
<name>イニシャルコード</name>
<sentence>使用不可のASCIIコードが使用されています。</sentence>
<begin>c</begin><end>f</end><modify>False</modify><affect>True</affect>
</InitialCodeAscii>
<InitialCodeSDKDefault>
<name>イニシャルコード</name>
<sentence>SDKデフォルトのコード(NTRJ)が使用されています。</sentence>
<begin>c</begin><end>f</end><modify>False</modify><affect>True</affect>
</InitialCodeSDKDefault>
<MakerCodeAscii>
<name>メーカーコード</name>
<sentence>使用不可のASCIIコードが使用されています。</sentence>
<begin>10</begin><end>11</end><modify>False</modify><affect>True</affect>
</MakerCodeAscii>
<DeviceType>
<name>デバイスタイプ</name>
<sentence>不正な値です。00hを設定してください</sentence>
<begin>13</begin><end>13</end><modify>False</modify><affect>True</affect>
</DeviceType>
<RemasterVersion>
<name>リマスターバージョン</name>
<sentence>不正な値です。正式版では01h-0Fhのいずれかの値、事前版ではE0hを設定してください。</sentence>
<begin>1e</begin><end>1e</end><modify>False</modify><affect>True</affect>
</RemasterVersion>
<BannerOffset>
<name>バナーオフセット</name>
<sentence>バナーデータが設定されていません。</sentence>
<begin>68</begin><end>6b</end><modify>False</modify><affect>True</affect>
</BannerOffset>
<RomValidSize>
<name>ROM実効サイズ</name>
<sentence>値が設定されていません。</sentence>
<begin>80</begin><end>83</end><modify>False</modify><affect>True</affect>
</RomValidSize>
<SecureCRCAddress>
<name>セキュア領域CRC</name>
<sentence>セキュア領域のアドレス指定が不正です。</sentence>
<begin>7c</begin><end>7d</end><modify>False</modify><affect>True</affect>
</SecureCRCAddress>
<SecureCRCVerify>
<name>セキュア領域CRC</name>
<sentence>計算結果と一致しません。セキュア領域が改ざんされた可能性があります。</sentence>
<begin>7c</begin><end>7d</end><modify>False</modify><affect>True</affect>
</SecureCRCVerify>
<LogoCRC>
<name>キャラクターデータCRC</name>
<sentence>計算結果と一致しません。キャラクターデータが改ざんされた可能性があります。</sentence>
<begin>15c</begin><end>15d</end><modify>False</modify><affect>True</affect>
</LogoCRC>
<HeaderCRC>
<name>ROMヘッダCRC</name>
<sentence>計算結果と一致しません。ROMヘッダが改ざんされた可能性があります。</sentence>
<begin>15e</begin><end>15f</end><modify>False</modify><affect>True</affect>
</HeaderCRC>
<Syscall>
<name>システムコールライブラリ</name>
<sentence>SDKデフォルトです。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Syscall>
<!-- TWL Unique Area -->
<NandHybrid>
<name>NANDアプリのHYBRID条件</name>
<sentence>クローンブート対応でないNANDアプリをHYBRID版として作成することは許可されていません。</sentence>
<begin>12</begin><end>12</end><modify>False</modify><affect>True</affect>
</NandHybrid>
<NandLimited>
<name>NANDアプリのLIMITED条件</name>
<sentence>クローンブート対応のNANDアプリをLIMITED版として作成することは許可されていません。</sentence>
<begin>12</begin><end>12</end><modify>False</modify><affect>True</affect>
</NandLimited>
<OldDevFlag>
<name>旧開発用暗号フラグ</name>
<sentence>このROMはクローンブート対応アプリですが、製品用本体ではクローンブートができなくなります。</sentence>
<begin>1c</begin><end>1c</end><modify>False</modify><affect>True</affect>
</OldDevFlag>
<CapacityCardLess>
<name>デバイス容量</name>
<sentence>実ファイルサイズよりも小さい値が指定されています。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardLess>
<CapacityCardWaste>
<name>デバイス容量</name>
<sentence>実ファイルサイズに比べて無駄のある値が設定されています。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardWaste>
<CapacityCardRange>
<name>デバイス容量</name>
<sentence>指定可能な容量ではありません。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardRange>
<CapacityCardFraction>
<name>デバイス容量</name>
<sentence>中途半端な値です。通常では2のべき乗[Mbit]の値です。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityCardFraction>
<CapacityNandRange>
<name>デバイス容量</name>
<sentence>NANDアプリに対して指定可能な容量ではありません。</sentence>
<begin>14</begin><end>14</end><modify>False</modify><affect>True</affect>
</CapacityNandRange>
<UsedNandSizeLimit>
<name>NAND領域の使用サイズ</name>
<sentence>NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が32MBを超えています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</UsedNandSizeLimit>
<UsedNandSizeExceed>
<name>NAND領域の使用サイズ</name>
<sentence>NANDアプリによるNAND領域の使用サイズ(セーブデータ含む)が16MBを超えています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</UsedNandSizeExceed>
<Seg3CRC>
<name>セグメント3 CRC</name>
<sentence>セグメント3領域に誤りがあります。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Seg3CRC>
<TwlRomOffset>
<name>TWL ROMオフセット</name>
<sentence>TWLーマル領域ROMオフセット(NA)およびTWL専用領域ROMオフセット(KA)はともに1以上で、かつNAはKAを超えてはいけません。</sentence>
<begin>90</begin><end>93</end><modify>False</modify><affect>True</affect>
</TwlRomOffset>
<DisableDebugSystem>
<name>デバッガ動作禁止フラグ</name>
<sentence>デバッガ上で解析可能な設定になっています。デバッガ向けソフトとしてROMをリリースする場合にはセキュリティ上の問題がないかご確認ください。</sentence>
<begin>1f</begin><end>1f</end><modify>False</modify><affect>True</affect>
</DisableDebugSystem>
<DisableDebugUser>
<name>デバッガ動作禁止フラグ</name>
<sentence>デバッガ上で解析不可な設定になっています。この設定は許可されていません。</sentence>
<begin>1f</begin><end>1f</end><modify>False</modify><affect>True</affect>
</DisableDebugUser>
<ExtraRegion>
<name>特定仕向地</name>
<sentence>不正なビットが立っています。この設定は許可されていません。</sentence>
<begin>1d</begin><end>1d</end><modify>False</modify><affect>True</affect>
</ExtraRegion>
<NormalJump>
<name>ノーマルアプリジャンプ</name>
<sentence>ノーマルアプリジャンプは許可されていません</sentence>
<begin>1d</begin><end>1d</end><modify>False</modify><affect>True</affect>
</NormalJump>
<RomSpeedType>
<name>諸フラグ</name>
<sentence>rsfファイルでROMSpeedTypeが設定されていません。</sentence>
<begin>1f</begin><end>1f</end><modify>False</modify><affect>True</affect>
</RomSpeedType>
<RomControl>
<name>ROMコントロール情報</name>
<sentence>TWLではマスクROMは用意されていません。ワンタイムPROM設定にしてください。</sentence>
<begin>60</begin><end>67</end><modify>False</modify><affect>True</affect>
</RomControl>
<AES>
<name>AES暗号</name>
<sentence>AES暗号が無効になっています。セキュリティ上の問題があります。</sentence>
<begin>220</begin><end>22f</end><modify>False</modify><affect>True</affect>
</AES>
<WhiteList>
<name>TWL拡張諸フラグ</name>
<sentence>本来、立つはずのないフラグが立てられています。ビルド時の設定をご確認ください。</sentence>
<begin>1bf</begin><end>1bf</end><modify>False</modify><affect>True</affect>
</WhiteList>
<ConnectIcon>
<name>アイコン表示フラグ</name>
<sentence>ワイヤレス通信アイコンとWi-Fi通信アイコンは同時に表示できません。</sentence>
<begin>1bf</begin><end>1bf</end><modify>False</modify><affect>True</affect>
</ConnectIcon>
<LimitedStatic>
<name>拡張常駐モジュール</name>
<sentence>TWL拡張常駐モジュールの配置に問題があります。弊社窓口にご連絡ください。</sentence>
<begin>1c0</begin><end>1c3</end><modify>False</modify><affect>True</affect>
</LimitedStatic>
<SCFGAccess>
<name>SCFG設定</name>
<sentence>SCFGレジスタへアクセス可能になっています。</sentence>
<begin>1b8</begin><end>1bb</end><modify>False</modify><affect>True</affect>
</SCFGAccess>
<TitleID>
<name>タイトルID</name>
<sentence>下位4バイトがイニシャルコードと一致しません。</sentence>
<begin>230</begin><end>233</end><modify>False</modify><affect>True</affect>
</TitleID>
<SaveData>
<name>Pubilc/Privateセーブデータ</name>
<sentence>ゲームカード向けソフトではPublicセーブデータおよびPrivateセーブデータのサイズを指定することはできません。</sentence>
<begin>238</begin><end>23f</end><modify>False</modify><affect>True</affect>
</SaveData>
<DebugBuild>
<name>Debug/Releaseビルド</name>
<sentence>FINALROMビルドのROMではありません。必ずFINALROMビルドのROMを作成してご提出ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</DebugBuild>
<!-- Application Type -->
<IllegalAppType>
<name>アプリ種別</name>
<sentence>不正な値です。</sentence>
<begin>230</begin><end>237</end><modify>False</modify><affect>True</affect>
</IllegalAppType>
<DifferentAppType>
<name>アプリ種別</name>
<sentence>アプリ種別は「{0}」です。本プログラムでは非対応です。</sentence>
<begin>230</begin><end>237</end><modify>False</modify><affect>True</affect>
</DifferentAppType>
<!-- Access Control -->
<CardAccess>
<name>アクセスコントロール情報</name>
<sentence>ゲームカードアクセス設定にーマルモードとNTRモードの両方を設定することはできません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</CardAccess>
<SDAccess>
<name>アクセスコントロール情報</name>
<sentence>SDカードへのアクセスは許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</SDAccess>
<NandAccess>
<name>アクセスコントロール情報</name>
<sentence>ゲームカード用ソフトはNANDフラッシュメモリへのアクセスを許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</NandAccess>
<AccessDefault>
<name>アクセスコントロール情報</name>
<sentence>許可されていないアクセスが設定されています。この設定は許可されていません。</sentence>
<begin>1b4</begin><end>1b7</end><modify>False</modify><affect>True</affect>
</AccessDefault>
<!-- Padding -->
<PaddingRead>
<name>パディング</name>
<sentence>最終{0}を読み出すことができませんでした。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</PaddingRead>
<PaddingValue>
<name>パディング</name>
<sentence>最終{0}にFFh以外の値が格納されています。{1} ROMの制限が守られていません。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</PaddingValue>
<!-- Reserved Area -->
<ReservedArea>
<name>予約領域</name>
<sentence>不正な値が含まれています。この領域をすべて0で埋めてください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</ReservedArea>
<!-- Shared2 file -->
<Shared2Disable>
<name>Shared2ファイル</name>
<sentence>Shared2ファイルへのアクセスが指定されていないにもかかわらずファイルサイズが設定されています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2Disable>
<Shared2Enable>
<name>Shared2ファイル</name>
<sentence>Shared2ファイルへのアクセスが指定されているにもかかわらずファイルサイズが設定されていません。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2Enable>
<Shared2AccessSystem>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})へのアクセス(非公開)が設定されています。アクセス許可されているかご確認ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2AccessSystem>
<Shared2AccessUser>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})へのアクセスは許可されていません。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2AccessUser>
<Shared2SizeSystem>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})のファイルサイズが {1} に設定されています。正しい値かどうかをご確認ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2SizeSystem>
<Shared2SizeUser>
<name>Shared2ファイル</name>
<sentence>Shared2ファイル(No.{0})のファイルサイズが {1} に設定されています。正しい値かどうかをご確認ください。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</Shared2SizeUser>
<!-- SDK Version -->
<SDKVersionOld>
<name>SDKバージョン</name>
<sentence>設定ファイルに登録されているバージョンよりも古いバージョンです。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</SDKVersionOld>
<SDKVersionPR>
<name>SDKバージョン</name>
<sentence>ご使用のSDKバージョンはPR版です。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</SDKVersionPR>
<SDKVersionRC>
<name>SDKバージョン</name>
<sentence>ご使用のSDKバージョンはRC版です。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</SDKVersionRC>
<!-- Banner -->
<BannerRead>
<name>バナーファイル</name>
<sentence>読み出すことができませんでした。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</BannerRead>
<BannerChar>
<name>バナーファイル</name>
<sentence>使用不可能な文字セットが使用されています。</sentence>
<begin>0</begin><end>0</end><modify>False</modify><affect>True</affect>
</BannerChar>
<!-- Region -->
<IllegalRegion>
<name>リージョン</name>
<sentence>仕向地の組み合わせが不正です。ペアレンタルコントロール情報は無視して読み込まれました。</sentence>
<begin>1b0</begin><end>1b4</end><modify>True</modify><affect>True</affect>
</IllegalRegion>
<AllRegion>
<name>リージョン</name>
<sentence>読み込み時のROMでは全リージョンが設定されています。仕向地別に設定する必要がないかご確認ください。</sentence>
<begin>1b0</begin><end>1b4</end><modify>True</modify><affect>True</affect>
</AllRegion>
<!-- Rating -->
<UnnecessaryRatingIllegal>
<name>レーティング</name>
<sentence>レーティング表示が不要かどうかを判断できません。再設定してください。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</UnnecessaryRatingIllegal>
<UnnecessaryRatingSetting>
<name>レーティング</name>
<sentence>読み込み時のROMにはレーティング表示が不要であると設定されています。この指定は、ソフトがゲームでないツール類のときのみ選択可能です。レーティング表示が不要であるかどうかは弊社窓口にご相談ください。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</UnnecessaryRatingSetting>
<RatingUndefine>
<name>レーティング</name>
<sentence>{0}: 未定義です。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</RatingUndefine>
<RatingPendingSetting>
<name>レーティング</name>
<sentence>{0}: 読み込み時のROMには審査中であると指定されています。審査が決まりしだい、再提出してください。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</RatingPendingSetting>
<RatingPendingConcurrent>
<name>レーティング</name>
<sentence>{0}: 審査中指定とレーティング年齢が同時に設定されています。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</RatingPendingConcurrent>
<IllegalRating>
<name>レーティング</name>
<sentence>{0}: レーティング年齢が団体によって指定された値ではありません。</sentence>
<begin>2f0</begin><end>2ff</end><modify>True</modify><affect>True</affect>
</IllegalRating>
</message>