From fc1b2bb85f52cb863ae9e1590383c3dae36d4d96 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Mon, 12 Nov 2007 02:00:27 +0000 Subject: [PATCH] =?UTF-8?q?LANG=5FBITMAP=E6=83=85=E5=A0=B1=E3=81=AE?= =?UTF-8?q?=E8=AA=BF=E6=95=B4=E3=80=82=EF=BC=88=E9=81=8E=E6=B8=A1=E6=9C=9F?= =?UTF-8?q?=E3=81=AA=E3=81=AE=E3=81=A7=E3=80=81=E6=9C=AAFIX=EF=BC=89?= 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@140 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../settings/ARM9/src/NTRSettings.c | 15 +++++++----- .../settings/ARM9/src/TWLSettings.c | 5 +++- .../sysmenu/ARM9/src/settingsAPI.c | 6 ++--- include/sysmenu/settings/common/TWLSettings.h | 23 +++++++++++-------- 4 files changed, 30 insertions(+), 19 deletions(-) diff --git a/build/libraries_sysmenu/settings/ARM9/src/NTRSettings.c b/build/libraries_sysmenu/settings/ARM9/src/NTRSettings.c index 39296cf7..7fd95cd3 100644 --- a/build/libraries_sysmenu/settings/ARM9/src/NTRSettings.c +++ b/build/libraries_sysmenu/settings/ARM9/src/NTRSettings.c @@ -93,10 +93,13 @@ NTRSettingsData *g_pNSD = &s_NSDStoreEx.nsd; NTRSettingsDataEx *g_pNSDEx = &s_NSDStoreEx.nsd_ex; // const data----------------------------------------------------------- -static const u16 s_validLangBitmapList[] = { - NTR_LANG_BITMAP_WW, - NTR_LANG_BITMAP_CHINA, - NTR_LANG_BITMAP_KOREA, +static const u16 s_validLangBitmapList[] = { // ※TWLに合わせた方が良さそう。 + NTR_LANG_BITMAP_WW, // TWL_REGION_JAPAN + NTR_LANG_BITMAP_WW, // TWL_REGION_AMERICA + 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算出。 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) ); // NTR設定データのライト @@ -294,7 +297,7 @@ static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStoreEx, u8 region ) { NTRSettingsData *pNSD = &pNSDStoreEx->nsd; NTRSettingsDataEx *pNSDEx = &pNSDStoreEx->nsd_ex; - u16 validLangBitmap = s_validLangBitmapList[ region & 0x03 ]; // ※WW,中,韓の3つのみにとりあえず対応 + u16 validLangBitmap = s_validLangBitmapList[ region ]; //pNSD->option; // NSDのlanguageチェック( NSD側のlanguageは、日・英・独・仏・伊・西の6言語のうちの、対応言語のみの値となる。) diff --git a/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c b/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c index cdac3819..7a0a3ec5 100644 --- a/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c +++ b/build/libraries_sysmenu/settings/ARM9/src/TWLSettings.c @@ -50,7 +50,10 @@ static const char *s_TSDPath[ TSD_FILE_MIRROR_NUM ] = { }; 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_KOREA, }; diff --git a/build/libraries_sysmenu/sysmenu/ARM9/src/settingsAPI.c b/build/libraries_sysmenu/sysmenu/ARM9/src/settingsAPI.c index c6efe675..9ea0ce56 100644 --- a/build/libraries_sysmenu/sysmenu/ARM9/src/settingsAPI.c +++ b/build/libraries_sysmenu/sysmenu/ARM9/src/settingsAPI.c @@ -171,8 +171,8 @@ static BOOL SYSMi_VerifyNTRSettings( void ) // 値が一致する必要があるもの if( ( NSD_GetRTCOffset() != TSD_GetRTCOffset() ) || - ( NSD_GetLanguageEx() != TSD_GetLanguage() ) || - ( NSD_GetLanguageBitmap() != TSD_GetLanguageBitmap() ) + ( NSD_GetLanguageEx() != TSD_GetLanguage() ) +// || ( NSD_GetLanguageBitmap() != TSD_GetLanguageBitmap() ) ) { isFailed = TRUE; } @@ -256,7 +256,7 @@ static void SYSMi_ConvertTWL2NTRSettings( void ) // 値が一致する必要があるもの NSD_SetRTCOffset( TSD_GetRTCOffset() ); NSD_SetLanguageEx( (NTRLangCode)TSD_GetLanguage() ); - NSD_SetLanguageBitmap( TSD_GetLanguageBitmap() ); +// NSD_SetLanguageBitmap( TSD_GetLanguageBitmap() ); // SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの if( TSD_GetLanguage() < TWL_LANG_CODE_MAX_WW ) { diff --git a/include/sysmenu/settings/common/TWLSettings.h b/include/sysmenu/settings/common/TWLSettings.h index 21e735ed..c4c8312a 100644 --- a/include/sysmenu/settings/common/TWLSettings.h +++ b/include/sysmenu/settings/common/TWLSettings.h @@ -59,8 +59,11 @@ typedef enum TWLLangCode{ TWL_LANG_CODE_MAX }TWLLangCode; +#define TWL_LANG_CODE_MAX_WW TWL_LANG_SPANISH + // NTR 言語との対応マップ -const u8 LangCodeMapFromTWLtoNTR[][] = { +#if 0 +const u8 LangCodeMapFromTWLtoNTR[][ 2 ] = { { TWL_LANG_JAPANESE, NTR_LANG_JAPANESE }, { TWL_LANG_ENGLISH, NTR_LANG_ENGLISH }, { TWL_LANG_FRENCH, NTR_LANG_FRENCH }, @@ -75,6 +78,7 @@ const u8 LangCodeMapFromTWLtoNTR[][] = { // { TWL_LANG_DUTCH, NTR_LANG_ENGLISH }, // { TWL_LANG_TRAD_CHINESE, NTR_LANG_CHINESE } }; +#endif #define TWL_LANG_BITMAP_JAPAN ( ( 0x0001 << TWL_LANG_JAPANESE ) ) // JPN版での対応言語ビットマップ #define TWL_LANG_BITMAP_AMERICA ( ( 0x0001 << TWL_LANG_AMERICAN_ENGLISH ) | \ @@ -160,14 +164,15 @@ typedef enum TWLRatingOgn { }TWLRatingOgn; typedef struct TWLParentalControl { -// u8 flags; // Wiiでは、PARENTAL_CONTROL_USEフラグのみ --> isSetParentalControl があるので現状必要なし - TWLRatingOgn ogn; // 審査団体 - u8 rating; // レーティング(年齢)値 - char password[ TWL_PARENTAL_CONTROL_PASSWORD_LENGTH ]; // 暗証番号、終端コードなし - u8 secretQuestion; // 秘密の質問文 ID - u16 secretAnswer[ TWL_PARENTAL_CONTROL_SECRET_ANSWER_LENGTH_MAX ]; // UTF16,秘密の質問への回答、終端コードなし - u16 secretAnswerLength; // 秘密の質問への回答文字数(Wiiでu16,LENGTH_MAX が保持できるからu8でもいいのでは?) -// u8 rsv[ 16 ]; // 削除予定(16バイトのレーティング情報を持つのはアプリ側のROMヘッダ) + TWLRatingOgn ogn; // 審査団体 +// u8 flags; // Wiiでは、PARENTAL_CONTROL_USEフラグのみ --> isSetParentalControl があるので現状必要なし + u8 rating; // レーティング(年齢)値 + char password[ TWL_PARENTAL_CONTROL_PASSWORD_LENGTH + 1 ]; // 暗証番号、終端コードあり + u8 secretQuestion; // 秘密の質問文 ID + u8 rsv_A; + u16 secretAnswer[ TWL_PARENTAL_CONTROL_SECRET_ANSWER_LENGTH_MAX + 1 ]; // UTF16,秘密の質問への回答、終端コードあり + u16 secretAnswerLength; // 秘密の質問への回答文字数(Wiiでu16,LENGTH_MAX が保持できるからu8でもいいのでは?) +// u8 rsv_B[ 16 ]; // 削除予定(16バイトのレーティング情報を持つのはアプリ側のROMヘッダ) }TWLParentalControl;