LANG_BITMAP情報の調整。(過渡期なので、未FIX)

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@140 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2007-11-12 02:00:27 +00:00
parent b17b900e24
commit fc1b2bb85f
4 changed files with 30 additions and 19 deletions

View File

@ -93,10 +93,13 @@ NTRSettingsData *g_pNSD = &s_NSDStoreEx.nsd;
NTRSettingsDataEx *g_pNSDEx = &s_NSDStoreEx.nsd_ex; NTRSettingsDataEx *g_pNSDEx = &s_NSDStoreEx.nsd_ex;
// const data----------------------------------------------------------- // const data-----------------------------------------------------------
static const u16 s_validLangBitmapList[] = { static const u16 s_validLangBitmapList[] = { // ※TWLに合わせた方が良さそう。
NTR_LANG_BITMAP_WW, NTR_LANG_BITMAP_WW, // TWL_REGION_JAPAN
NTR_LANG_BITMAP_CHINA, NTR_LANG_BITMAP_WW, // TWL_REGION_AMERICA
NTR_LANG_BITMAP_KOREA, NTR_LANG_BITMAP_WW, // TWL_REGION_EUROPE
NTR_LANG_BITMAP_WW, // TWL_REGION_AUSTRALIA
NTR_LANG_BITMAP_CHINA, // TWL_REGION_CHINA
NTR_LANG_BITMAP_KOREA, // TWL_REGION_KOREA
}; };
@ -203,7 +206,7 @@ BOOL NSD_WriteSettings( u8 region )
// NSD_EXのCRC算出。 // NSD_EXのCRC算出。
s_NSDStoreEx.nsd_ex.version = NTR_SETTINGS_DATA_EX_VERSION; // バージョンを現在のものに設定。 s_NSDStoreEx.nsd_ex.version = NTR_SETTINGS_DATA_EX_VERSION; // バージョンを現在のものに設定。
s_NSDStoreEx.nsd_ex.valid_language_bitmap = s_validLangBitmapList[ region & 0x03 ]; // ※WW,中,韓の3つのみにとりあえず対応 s_NSDStoreEx.nsd_ex.valid_language_bitmap = s_validLangBitmapList[ region ];
s_NSDStoreEx.crc16_ex = SVC_GetCRC16( 0xffff, (const void *)&s_NSDStoreEx.nsd_ex, sizeof(NTRSettingsDataEx) ); s_NSDStoreEx.crc16_ex = SVC_GetCRC16( 0xffff, (const void *)&s_NSDStoreEx.nsd_ex, sizeof(NTRSettingsDataEx) );
// NTR設定データのライト // NTR設定データのライト
@ -294,7 +297,7 @@ static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStoreEx, u8 region )
{ {
NTRSettingsData *pNSD = &pNSDStoreEx->nsd; NTRSettingsData *pNSD = &pNSDStoreEx->nsd;
NTRSettingsDataEx *pNSDEx = &pNSDStoreEx->nsd_ex; NTRSettingsDataEx *pNSDEx = &pNSDStoreEx->nsd_ex;
u16 validLangBitmap = s_validLangBitmapList[ region & 0x03 ]; // ※WW,中,韓の3つのみにとりあえず対応 u16 validLangBitmap = s_validLangBitmapList[ region ];
//pNSD->option; //pNSD->option;
// NSDのlanguageチェック NSD側のlanguageは、日・英・独・仏・伊・西の言語のうちの、対応言語のみの値となる。 // NSDのlanguageチェック NSD側のlanguageは、日・英・独・仏・伊・西の言語のうちの、対応言語のみの値となる。

View File

@ -50,7 +50,10 @@ static const char *s_TSDPath[ TSD_FILE_MIRROR_NUM ] = {
}; };
static const u16 s_validLangBitmapList[] = { static const u16 s_validLangBitmapList[] = {
TWL_LANG_BITMAP_WW, TWL_LANG_BITMAP_JAPAN,
TWL_LANG_BITMAP_AMERICA,
TWL_LANG_BITMAP_EUROPE,
TWL_LANG_BITMAP_AUSTRALIA,
TWL_LANG_BITMAP_CHINA, TWL_LANG_BITMAP_CHINA,
TWL_LANG_BITMAP_KOREA, TWL_LANG_BITMAP_KOREA,
}; };

View File

@ -171,8 +171,8 @@ static BOOL SYSMi_VerifyNTRSettings( void )
// 値が一致する必要があるもの // 値が一致する必要があるもの
if( ( NSD_GetRTCOffset() != TSD_GetRTCOffset() ) || if( ( NSD_GetRTCOffset() != TSD_GetRTCOffset() ) ||
( NSD_GetLanguageEx() != TSD_GetLanguage() ) || ( NSD_GetLanguageEx() != TSD_GetLanguage() )
( NSD_GetLanguageBitmap() != TSD_GetLanguageBitmap() ) // || ( NSD_GetLanguageBitmap() != TSD_GetLanguageBitmap() )
) { ) {
isFailed = TRUE; isFailed = TRUE;
} }
@ -256,7 +256,7 @@ static void SYSMi_ConvertTWL2NTRSettings( void )
// 値が一致する必要があるもの // 値が一致する必要があるもの
NSD_SetRTCOffset( TSD_GetRTCOffset() ); NSD_SetRTCOffset( TSD_GetRTCOffset() );
NSD_SetLanguageEx( (NTRLangCode)TSD_GetLanguage() ); NSD_SetLanguageEx( (NTRLangCode)TSD_GetLanguage() );
NSD_SetLanguageBitmap( TSD_GetLanguageBitmap() ); // NSD_SetLanguageBitmap( TSD_GetLanguageBitmap() );
// SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの // SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの
if( TSD_GetLanguage() < TWL_LANG_CODE_MAX_WW ) { if( TSD_GetLanguage() < TWL_LANG_CODE_MAX_WW ) {

View File

@ -59,8 +59,11 @@ typedef enum TWLLangCode{
TWL_LANG_CODE_MAX TWL_LANG_CODE_MAX
}TWLLangCode; }TWLLangCode;
#define TWL_LANG_CODE_MAX_WW TWL_LANG_SPANISH
// NTR 言語との対応マップ // NTR 言語との対応マップ
const u8 LangCodeMapFromTWLtoNTR[][] = { #if 0
const u8 LangCodeMapFromTWLtoNTR[][ 2 ] = {
{ TWL_LANG_JAPANESE, NTR_LANG_JAPANESE }, { TWL_LANG_JAPANESE, NTR_LANG_JAPANESE },
{ TWL_LANG_ENGLISH, NTR_LANG_ENGLISH }, { TWL_LANG_ENGLISH, NTR_LANG_ENGLISH },
{ TWL_LANG_FRENCH, NTR_LANG_FRENCH }, { TWL_LANG_FRENCH, NTR_LANG_FRENCH },
@ -75,6 +78,7 @@ const u8 LangCodeMapFromTWLtoNTR[][] = {
// { TWL_LANG_DUTCH, NTR_LANG_ENGLISH }, // { TWL_LANG_DUTCH, NTR_LANG_ENGLISH },
// { TWL_LANG_TRAD_CHINESE, NTR_LANG_CHINESE } // { TWL_LANG_TRAD_CHINESE, NTR_LANG_CHINESE }
}; };
#endif
#define TWL_LANG_BITMAP_JAPAN ( ( 0x0001 << TWL_LANG_JAPANESE ) ) // JPN版での対応言語ビットマップ #define TWL_LANG_BITMAP_JAPAN ( ( 0x0001 << TWL_LANG_JAPANESE ) ) // JPN版での対応言語ビットマップ
#define TWL_LANG_BITMAP_AMERICA ( ( 0x0001 << TWL_LANG_AMERICAN_ENGLISH ) | \ #define TWL_LANG_BITMAP_AMERICA ( ( 0x0001 << TWL_LANG_AMERICAN_ENGLISH ) | \
@ -160,14 +164,15 @@ typedef enum TWLRatingOgn {
}TWLRatingOgn; }TWLRatingOgn;
typedef struct TWLParentalControl { typedef struct TWLParentalControl {
// u8 flags; // Wiiでは、PARENTAL_CONTROL_USEフラグのみ --> isSetParentalControl があるので現状必要なし TWLRatingOgn ogn; // 審査団体
TWLRatingOgn ogn; // 審査団体 // u8 flags; // Wiiでは、PARENTAL_CONTROL_USEフラグのみ --> isSetParentalControl があるので現状必要なし
u8 rating; // レーティング(年齢)値 u8 rating; // レーティング(年齢)値
char password[ TWL_PARENTAL_CONTROL_PASSWORD_LENGTH ]; // 暗証番号、終端コードなし char password[ TWL_PARENTAL_CONTROL_PASSWORD_LENGTH + 1 ]; // 暗証番号、終端コードあり
u8 secretQuestion; // 秘密の質問文 ID u8 secretQuestion; // 秘密の質問文 ID
u16 secretAnswer[ TWL_PARENTAL_CONTROL_SECRET_ANSWER_LENGTH_MAX ]; // UTF16,秘密の質問への回答、終端コードなし u8 rsv_A;
u16 secretAnswerLength; // 秘密の質問への回答文字数Wiiでu16,LENGTH_MAX が保持できるからu8でもいいのでは u16 secretAnswer[ TWL_PARENTAL_CONTROL_SECRET_ANSWER_LENGTH_MAX + 1 ]; // UTF16,秘密の質問への回答、終端コードあり
// u8 rsv[ 16 ]; // 削除予定16バイトのレーティング情報を持つのはアプリ側のROMヘッダ u16 secretAnswerLength; // 秘密の質問への回答文字数Wiiでu16,LENGTH_MAX が保持できるからu8でもいいのでは
// u8 rsv_B[ 16 ]; // 削除予定16バイトのレーティング情報を持つのはアプリ側のROMヘッダ
}TWLParentalControl; }TWLParentalControl;