From 4e4127c0206c1b40a81b7ddca80ba24fee8c25f7 Mon Sep 17 00:00:00 2001 From: nishikawa_takeshi Date: Thu, 19 Feb 2009 02:55:53 +0000 Subject: [PATCH] =?UTF-8?q?=E5=87=BA=E5=8A=9B=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=83=81=E3=82=A7=E3=83=83=E3=82=AB:ROM=E3=83=98?= =?UTF-8?q?=E3=83=83=E3=83=80=E3=81=AE=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF?= =?UTF-8?q?=E3=82=92=E8=BF=BD=E5=8A=A0=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/TwlToolsRED@165 7061adef-622a-194b-ae81-725974e89856 --- .../MasterEditorTWLChecker.ncb | Bin 6958080 -> 6958080 bytes .../MasterEditorTWLChecker.suo | Bin 26624 -> 32768 bytes .../MasterEditorTWLChecker/Debug/BuildLog.htm | Bin 11250 -> 11002 bytes .../MasterEditorTWLChecker/check_rom.cpp | 173 ++++++++++++++++++ 4 files changed, 173 insertions(+) diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker.ncb b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker.ncb index f56299d9d546b45fea1f9444db606546b389b3f9..da64d3052079c05e63ee4831d651323bc571587c 100644 GIT binary patch delta 15016 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 delta 12969 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 P$qWSy1)Js7FS7su^s*_g delta 345 zcmewr`YC)v5}TkogAs!{g9(EHkTzj3W-y!FD{H)Y8CwV2T9)x6-|g!UhbM=z2Ey z$}VTZD&ek>3ew?-p<}-yD@X^X#C2tJrpZl$dZEb-1whElz{QXZ_Ej=NHbXoE+=mQ$ iKygeJ$fBDK{urDzm}DSdDv+e>rw7!bw^?27G7A8Dd_+?K diff --git a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp index 5d21cf2..63ff894 100644 --- a/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp +++ b/build/tools/MasterEditor/MasterEditorTWLChecker/MasterEditorTWLChecker/check_rom.cpp @@ -1,6 +1,179 @@ #include "stdafx.h" +#include "check.h" +#include +#include +#include +#include +#include +#include +#include + +// +// ファイル名の文字列とリージョン/レーティングの値の対応づけ +// + +u32 getRegionBitmap( System::String ^region ) +{ + u32 bitmap = 0; + if( region == "JP" ) + { + bitmap = METWL_MASK_REGION_JAPAN; + } + else if( region == "US" ) + { + bitmap = METWL_MASK_REGION_AMERICA; + } + else if( region == "EU" ) + { + bitmap = METWL_MASK_REGION_EUROPE; + } + else if( region == "AU" ) + { + bitmap = METWL_MASK_REGION_AUSTRALIA; + } + else if( region == "EUAU" ) + { + bitmap = (METWL_MASK_REGION_EUROPE | METWL_MASK_REGION_AUSTRALIA); + } + else if( region == "USAU" ) + { + bitmap = (METWL_MASK_REGION_AMERICA | METWL_MASK_REGION_AUSTRALIA); + } + else if( region == "USEUAU" ) + { + bitmap = (METWL_MASK_REGION_AMERICA | METWL_MASK_REGION_EUROPE | METWL_MASK_REGION_AUSTRALIA); + } + else if( region == "CN" ) + { + bitmap = (METWL_MASK_REGION_CHINA); + } + else if( region == "KR" ) + { + bitmap = (METWL_MASK_REGION_KOREA); + } + else if( region == "ALL" ) + { + bitmap = METWL_MASK_REGION_ALL; + } + return bitmap; +} + +int getOgnNumber( System::String ^ogn ) +{ + int num = -1; + if( ogn == "CERO" ) + { + num = OS_TWL_PCTL_OGN_CERO; + } + if( ogn == "ESRB" ) + { + num = OS_TWL_PCTL_OGN_ESRB; + } + if( ogn == "USK" ) + { + num = OS_TWL_PCTL_OGN_USK; + } + if( ogn == "PEGI_GEN" ) + { + num = OS_TWL_PCTL_OGN_PEGI_GEN; + } + if( ogn == "PEGI_PRT" ) + { + num = OS_TWL_PCTL_OGN_PEGI_PRT; + } + if( ogn == "PEGI_BBFC" ) + { + num = OS_TWL_PCTL_OGN_PEGI_BBFC; + } + if( ogn == "OFLC" ) + { + num = OS_TWL_PCTL_OGN_OFLC; + } + if( ogn == "GRB" ) + { + num = OS_TWL_PCTL_OGN_GRB; + } + return num; +} + +u8 getRatingValue( System::String ^rating ) +{ + u8 val = 0; + if( rating == "RP" ) + { + val = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | OS_TWL_PCTL_OGNINFO_ALWAYS_MASK; + } + else + { + val = OS_TWL_PCTL_OGNINFO_ENABLE_MASK | (System::Byte::Parse(rating)); + } + return val; +} // // 出力SRLのチェック // +System::Void checkRom( FilenameItem ^fItem, System::String ^srlpath ) +{ + const char *chpath = + (const char*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi( srlpath ).ToPointer(); + // ROMヘッダの読み込み + ROM_Header rh; + FILE *fp = NULL; + if( fopen_s( &fp, chpath, "rb" ) != NULL ) + { + throw (gcnew System::Exception("Fail to Open SRL File.")); + return; + } + // 1バイトをsizeof(~)だけリード (逆だと返り値がsizeof(~)にならないので注意) + (void)fseek( fp, 0, SEEK_SET ); // ROMヘッダはsrlの先頭から + if( fread( (void*)&rh, 1, sizeof(ROM_Header), fp ) != sizeof(ROM_Header) ) + { + throw (gcnew System::Exception("Fail to Read ROM Header.")); + fclose(fp); + return; + } + fclose(fp); + + // リージョンのチェック + u32 region = getRegionBitmap( fItem->region ); + if( rh.s.card_region_bitmap != region ) + { + throw (gcnew System::Exception("Illegal Region in ROM Header.")); + return; + } + + // リージョンに含まれる団体のレーティングenableフラグが立っているかチェック + System::Collections::Generic::List ^ognlist = MasterEditorTWL::getOgnListInRegion( region ); + for each ( int ogn in ognlist ) + { + if( (rh.s.parental_control_rating_info[ogn] & OS_TWL_PCTL_OGNINFO_ENABLE_MASK) == 0 ) + { + throw (gcnew System::Exception("Rating Ogn " + ogn.ToString() + " is not Enabled.")); + return; + } + } + + // 設定したレーティングが正しいかどうかをチェック + int ogn = getOgnNumber( fItem->ogn ); // ファイル名から団体とレーティング値の真値を決定 + u8 rating = getRatingValue( fItem->rating ); + if( rh.s.parental_control_rating_info[ ogn ] != rating ) + { + throw (gcnew System::Exception("Mismatch Rating Ogn " + ogn.ToString() + ". " + + "filename = " + rating.ToString("2X") + + "srl = " + rh.s.parental_control_rating_info[ ogn ].ToString("2X") + ".")); + return; + } + + // リージョンに含まれない団体のレーティングがクリアされているかチェック + int i; + for( i=0; i < PARENTAL_CONTROL_INFO_SIZE; i++ ) + { + if( (ognlist->IndexOf(i) < 0) && (rh.s.parental_control_rating_info[i] != 0) ) + { + throw (gcnew System::Exception("Rating Ogn " + i.ToString() + " is not Cleared in ROM Header.")); + return; + } + } +}