mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・NTR設定データのAPI仕様を変更。一時バッファ用引数を必要としない形に変更。
・NTR設定データのTWLリージョンによる言語コードの取り回しの実装。 ・言語コード処理.xlsのドキュメント追加。 ・メモリマップ.vsd更新。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@355 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
09bef4a051
commit
698853c42d
@ -66,42 +66,49 @@ typedef struct IPL2HeaderPart {
|
|||||||
} IPL2HeaderPart; // 0x20bytes
|
} IPL2HeaderPart; // 0x20bytes
|
||||||
|
|
||||||
|
|
||||||
|
// NTR各種設定データのNVRAM保存時フォーマット
|
||||||
|
typedef struct NSDStore{
|
||||||
|
NTRSettingsData nsd; // NTR各種設定データ
|
||||||
|
u16 saveCount; // 0x00-0x7fをループしてカウントし、カウント値が新しいデータが有効。
|
||||||
|
u16 crc16; // NTR各種設定データの16bitCRC
|
||||||
|
u8 pad[ 128 - sizeof(NTRSettingsData) - 4];
|
||||||
|
}NSDStore; // 128byte // ※本来なら、saveCountとcrc16は256byteの最後に付加して、間にパディングを埋める方がいい。
|
||||||
|
|
||||||
|
|
||||||
|
// NTR各種設定データEXのNVRAM保存時フォーマット(上記NCDStoreと互換をとるための無理やり拡張)
|
||||||
|
typedef struct NSDStoreEx{
|
||||||
|
NTRSettingsData nsd; // NTR各種設定データ
|
||||||
|
u16 saveCount; // 0x00-0x7fをループしてカウントし、カウント値が新しいデータが有効。
|
||||||
|
u16 crc16; // NTR各種設定データの16bitCRC
|
||||||
|
NTRSettingsDataEx nsd_ex;
|
||||||
|
u16 crc16_ex;
|
||||||
|
}NSDStoreEx; // 256byte // ※本来なら、saveCountとcrc16は256byteの最後に付加して、間にパディングを埋める方がいい。
|
||||||
|
|
||||||
|
|
||||||
// function's prototype-------------------------------------------------
|
// function's prototype-------------------------------------------------
|
||||||
u32 NSD_GetNSDRomAddr( void ); // NTRSettingデータのNVRAM格納アドレスを取得
|
u32 NSD_GetNSDRomAddr( void ); // NTRSettingデータのNVRAM格納アドレスを取得
|
||||||
u8 NSD_GetIPL2Type( void ); // NTR-IPL2タイプを取得
|
u8 NSD_GetIPL2Type( void ); // NTR-IPL2タイプを取得
|
||||||
const u8 *NSD_GetIPL2Timestamp( void ); // NTR-IPL2のタイムスタンプを取得
|
const u8 *NSD_GetIPL2Timestamp( void ); // NTR-IPL2のタイムスタンプを取得
|
||||||
|
|
||||||
static void NSDi_ReadIPL2Header( void );
|
static void NSDi_ReadIPL2Header( void );
|
||||||
static BOOL NSDi_CheckCorrectNSD( NSDStoreEx (*pNSDStoreExArray)[2], u8 region );
|
static BOOL NSDi_CheckCorrectNSD( NSDStoreEx (*pNSDStoreExArray)[2], u32 validLangBitmap );
|
||||||
static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStore, u8 region );
|
static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStore, u32 validLangBitmap );
|
||||||
static BOOL NVRAMm_ExecuteCommand( int nvState, u32 addr, u16 size, u8 *pSrc );
|
static BOOL NVRAMm_ExecuteCommand( int nvState, u32 addr, u16 size, u8 *pSrc );
|
||||||
static void Callback_NVRAM( PXIFifoTag tag, u32 data, BOOL err );
|
static void Callback_NVRAM( PXIFifoTag tag, u32 data, BOOL err );
|
||||||
|
|
||||||
// static variables-----------------------------------------------------
|
// static variables-----------------------------------------------------
|
||||||
static NSDStoreEx s_NSDStoreEx ATTRIBUTE_ALIGN(32);
|
static NSDStoreEx s_NSDStoreEx[ 2 ] ATTRIBUTE_ALIGN(32);
|
||||||
static IPL2HeaderPart s_IPL2Header ATTRIBUTE_ALIGN(32);
|
static IPL2HeaderPart s_IPL2Header ATTRIBUTE_ALIGN(32);
|
||||||
static BOOL s_isReadIPL2H = FALSE;
|
static BOOL s_isReadIPL2H = FALSE;
|
||||||
static volatile BOOL s_nvCbOccurred;
|
static volatile BOOL s_nvCbOccurred;
|
||||||
static volatile u16 s_nvResult;
|
static volatile u16 s_nvResult;
|
||||||
static int s_indexNSD = NSD_NOT_CORRECT;
|
static int s_indexNSD = NSD_NOT_CORRECT;
|
||||||
|
|
||||||
#ifndef SDK_FINALROM
|
|
||||||
static NSDStoreEx (*s_pNSDStoreExArray)[2];
|
|
||||||
#endif
|
|
||||||
// global variables-----------------------------------------------------
|
// global variables-----------------------------------------------------
|
||||||
NTRSettingsData *g_pNSD = &s_NSDStoreEx.nsd;
|
NTRSettingsData *g_pNSD = &s_NSDStoreEx[ 0 ].nsd;
|
||||||
NTRSettingsDataEx *g_pNSDEx = &s_NSDStoreEx.nsd_ex;
|
NTRSettingsDataEx *g_pNSDEx = &s_NSDStoreEx[ 0 ].nsd_ex;
|
||||||
|
|
||||||
// const data-----------------------------------------------------------
|
// const data-----------------------------------------------------------
|
||||||
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
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
// function's description-----------------------------------------------
|
// function's description-----------------------------------------------
|
||||||
|
|
||||||
@ -153,25 +160,21 @@ BOOL NSD_IsReadSettings( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BOOL NSD_ReadSettings( u8 region, NSDStoreEx (*pTempBuffer)[2] )
|
BOOL NSD_ReadSettings( u32 validLangBitmap )
|
||||||
{
|
{
|
||||||
NSDStoreEx *pNSDStoreEx = (NSDStoreEx *)pTempBuffer;
|
DC_InvalidateRange( s_NSDStoreEx, sizeof(NSDStoreEx) * 2 );
|
||||||
#ifndef SDK_FINALROM
|
|
||||||
s_pNSDStoreExArray = pTempBuffer;
|
|
||||||
OS_TPrintf( "NSDStoreBuff : %08x %08x\n", &(*s_pNSDStoreExArray)[ 0 ], &(*s_pNSDStoreExArray)[ 1 ] );
|
|
||||||
#endif
|
|
||||||
|
|
||||||
DC_InvalidateRange( pNSDStoreEx, sizeof(NSDStoreEx) * 2 );
|
|
||||||
|
|
||||||
// フラッシュからニ重化されているNTR設定データを読み出す。
|
// フラッシュからニ重化されているNTR設定データを読み出す。
|
||||||
while( !NVRAMm_ExecuteCommand( COMM_RD, NSD_GetNSDRomAddr(), sizeof(NSDStoreEx), (u8 *)&pNSDStoreEx[ 0 ] ) ) {}
|
while( !NVRAMm_ExecuteCommand( COMM_RD, NSD_GetNSDRomAddr(), sizeof(NSDStoreEx), (u8 *)&s_NSDStoreEx[ 0 ] ) ) {}
|
||||||
while( !NVRAMm_ExecuteCommand( COMM_RD, NSD_GetNSDRomAddr() + SPI_NVRAM_PAGE_SIZE, sizeof(NSDStoreEx), (u8 *)&pNSDStoreEx[ 1 ] ) ) {}
|
while( !NVRAMm_ExecuteCommand( COMM_RD, NSD_GetNSDRomAddr() + SPI_NVRAM_PAGE_SIZE, sizeof(NSDStoreEx), (u8 *)&s_NSDStoreEx[ 1 ] ) ) {}
|
||||||
OS_TPrintf("NSD read addr=%08x\n", NSD_GetNSDRomAddr() );
|
OS_TPrintf("NSD read addr=%08x\n", NSD_GetNSDRomAddr() );
|
||||||
|
|
||||||
// 読み出したデータのどちらが有効かを判定する。
|
// 読み出したデータのどちらが有効かを判定する。
|
||||||
if( NSDi_CheckCorrectNSD( pTempBuffer, region ) ) {
|
if( NSDi_CheckCorrectNSD( &s_NSDStoreEx, validLangBitmap ) ) {
|
||||||
// 有効なNTR設定データを静的バッファに転送
|
// 有効なNTR設定データを先頭要素にコピー
|
||||||
MI_CpuCopyFast( (void *)&pNSDStoreEx[ s_indexNSD ], (void *)&s_NSDStoreEx, sizeof(NSDStoreEx) );
|
if( s_indexNSD == 1 ) {
|
||||||
|
MI_CpuCopyFast( (void *)&s_NSDStoreEx[ s_indexNSD ], (void *)&s_NSDStoreEx[ 0 ], sizeof(NSDStoreEx) );
|
||||||
|
}
|
||||||
}else {
|
}else {
|
||||||
// 有効なデータがないなら、バッファをクリアする
|
// 有効なデータがないなら、バッファをクリアする
|
||||||
OS_TPrintf( "NSD clear.\n" );
|
OS_TPrintf( "NSD clear.\n" );
|
||||||
@ -179,7 +182,7 @@ BOOL NSD_ReadSettings( u8 region, NSDStoreEx (*pTempBuffer)[2] )
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
OS_TPrintf("Use NSD[%d] : saveCount = %d\n", s_indexNSD, s_NSDStoreEx.saveCount);
|
OS_TPrintf("Use NSD[%d] : saveCount = %d\n", s_indexNSD, s_NSDStoreEx[ 0 ].saveCount );
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
@ -188,10 +191,11 @@ BOOL NSD_ReadSettings( u8 region, NSDStoreEx (*pTempBuffer)[2] )
|
|||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
// NTR設定データのライト
|
// NTR設定データのライト
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
BOOL NSD_WriteSettings( u8 region )
|
BOOL NSD_WriteSettings( void )
|
||||||
{
|
{
|
||||||
int retry;
|
int retry;
|
||||||
u32 nvramAddr;
|
u32 nvramAddr;
|
||||||
|
NSDStoreEx *pNSDStoreEx = &s_NSDStoreEx[ 0 ];
|
||||||
|
|
||||||
// まだNTR設定データがリードされていなければ、リードを行って必要な情報を取得する。
|
// まだNTR設定データがリードされていなければ、リードを行って必要な情報を取得する。
|
||||||
if( !NSD_IsReadSettings() ) {
|
if( !NSD_IsReadSettings() ) {
|
||||||
@ -200,24 +204,25 @@ BOOL NSD_WriteSettings( u8 region )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// NSD のCRC、セーブカウント値、ライトアドレスの算出。
|
// NSD のCRC、セーブカウント値、ライトアドレスの算出。
|
||||||
s_NSDStoreEx.nsd.version = NTR_SETTINGS_DATA_VERSION; // バージョンを現在のものに設定。
|
pNSDStoreEx->nsd.version = NTR_SETTINGS_DATA_VERSION; // バージョンを現在のものに設定。
|
||||||
s_NSDStoreEx.crc16 = SVC_GetCRC16( 0xffff, (const void *)&s_NSDStoreEx.nsd, sizeof(NTRSettingsData) );
|
pNSDStoreEx->crc16 = SVC_GetCRC16( 0xffff, (const void *)&pNSDStoreEx->nsd, sizeof(NTRSettingsData) );
|
||||||
s_NSDStoreEx.saveCount = (u8)( ( s_NSDStoreEx.saveCount + 1 ) & SAVE_COUNT_MASK );
|
pNSDStoreEx->saveCount = (u8)( ( pNSDStoreEx->saveCount + 1 ) & SAVE_COUNT_MASK );
|
||||||
|
|
||||||
// NSD_EXのCRC算出。
|
// NSD_EXのCRC算出。
|
||||||
s_NSDStoreEx.nsd_ex.version = NTR_SETTINGS_DATA_EX_VERSION; // バージョンを現在のものに設定。
|
pNSDStoreEx->nsd_ex.version = NTR_SETTINGS_DATA_EX_VERSION; // バージョンを現在のものに設定。
|
||||||
s_NSDStoreEx.nsd_ex.valid_language_bitmap = s_validLangBitmapList[ region ];
|
pNSDStoreEx->nsd_ex.valid_language_bitmap &= NTR_LANG_BITMAP_ALL; // NTR側は日英仏独伊西中韓のみ
|
||||||
s_NSDStoreEx.crc16_ex = SVC_GetCRC16( 0xffff, (const void *)&s_NSDStoreEx.nsd_ex, sizeof(NTRSettingsDataEx) );
|
pNSDStoreEx->nsd_ex.valid_language_bitmap |= ( 0x0001 << NTR_LANG_ENGLISH ); // 英語は強制ON(旧NTRアプリ対策)
|
||||||
|
pNSDStoreEx->crc16_ex = SVC_GetCRC16( 0xffff, (const void *)&pNSDStoreEx->nsd_ex, sizeof(NTRSettingsDataEx) );
|
||||||
|
|
||||||
// NTR設定データのライト
|
// NTR設定データのライト
|
||||||
DC_FlushRange( &s_NSDStoreEx, sizeof(NSDStoreEx) );
|
DC_FlushRange( pNSDStoreEx, sizeof(NSDStoreEx) );
|
||||||
retry = NVRAM_RETRY_NUM;
|
retry = NVRAM_RETRY_NUM;
|
||||||
while( retry-- ) {
|
while( retry-- ) {
|
||||||
s_indexNSD ^= 0x01; // リトライの度に書き込みアドレスを切り替える。
|
s_indexNSD ^= 0x01; // リトライの度に書き込みアドレスを切り替える。
|
||||||
nvramAddr = NSD_GetNSDRomAddr() + s_indexNSD * SPI_NVRAM_PAGE_SIZE;
|
nvramAddr = NSD_GetNSDRomAddr() + s_indexNSD * SPI_NVRAM_PAGE_SIZE;
|
||||||
OS_TPrintf("NSD write addr=%08x\n", nvramAddr );
|
OS_TPrintf("NSD write addr=%08x\n", nvramAddr );
|
||||||
|
|
||||||
if( NVRAMm_ExecuteCommand( COMM_WE, nvramAddr, sizeof(NSDStoreEx), (u8 *)&s_NSDStoreEx ) ) {
|
if( NVRAMm_ExecuteCommand( COMM_WE, nvramAddr, sizeof(NSDStoreEx), (u8 *)pNSDStoreEx ) ) {
|
||||||
OS_TPrintf("NVRAM Write succeeded.\n");
|
OS_TPrintf("NVRAM Write succeeded.\n");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -232,7 +237,7 @@ BOOL NSD_WriteSettings( u8 region )
|
|||||||
// ミラーリングされているNTR設定データのどちらが有効かを判定
|
// ミラーリングされているNTR設定データのどちらが有効かを判定
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
|
|
||||||
static BOOL NSDi_CheckCorrectNSD( NSDStoreEx (*pNSDStoreExArray)[2], u8 region )
|
static BOOL NSDi_CheckCorrectNSD( NSDStoreEx (*pNSDStoreExArray)[2], u32 validLangBitmap )
|
||||||
{
|
{
|
||||||
NSDStoreEx *pNSDStoreEx = (NSDStoreEx *)pNSDStoreExArray;
|
NSDStoreEx *pNSDStoreEx = (NSDStoreEx *)pNSDStoreExArray;
|
||||||
u16 i;
|
u16 i;
|
||||||
@ -264,7 +269,7 @@ static BOOL NSDi_CheckCorrectNSD( NSDStoreEx (*pNSDStoreExArray)[2], u8 region )
|
|||||||
|
|
||||||
// NSD, NSDExのCRCが正しいなら、データの中身をチェック。
|
// NSD, NSDExのCRCが正しいなら、データの中身をチェック。
|
||||||
if( !isInvalid ) {
|
if( !isInvalid ) {
|
||||||
if( NSDi_CheckDataValue( &pNSDStoreEx[ i ], region ) ) { // データがおかしい値でないかもチェック。
|
if( NSDi_CheckDataValue( &pNSDStoreEx[ i ], validLangBitmap ) ) { // データがおかしい値でないかもチェック。
|
||||||
nsd_valid |= 0x01 << i; // "有効"フラグをセット
|
nsd_valid |= 0x01 << i; // "有効"フラグをセット
|
||||||
s_indexNSD = i; // NCDのインデックスも切り替え。
|
s_indexNSD = i; // NCDのインデックスも切り替え。
|
||||||
}else {
|
}else {
|
||||||
@ -293,29 +298,29 @@ static BOOL NSDi_CheckCorrectNSD( NSDStoreEx (*pNSDStoreExArray)[2], u8 region )
|
|||||||
|
|
||||||
|
|
||||||
// NTR設定データの値が正しい値かチェック。 // FALSE:正しくない。TRUE:正しい。
|
// NTR設定データの値が正しい値かチェック。 // FALSE:正しくない。TRUE:正しい。
|
||||||
static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStoreEx, u8 region )
|
static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStoreEx, u32 validLangBitmap )
|
||||||
{
|
{
|
||||||
NTRSettingsData *pNSD = &pNSDStoreEx->nsd;
|
NTRSettingsData *pNSD = &pNSDStoreEx->nsd;
|
||||||
NTRSettingsDataEx *pNSDEx = &pNSDStoreEx->nsd_ex;
|
NTRSettingsDataEx *pNSDEx = &pNSDStoreEx->nsd_ex;
|
||||||
u16 validLangBitmap = s_validLangBitmapList[ region ];
|
|
||||||
|
// NTR標準6言語以外の言語に対応している場合は、対応言語に英語を追加する。(旧NTRアプリ対策)
|
||||||
|
if( validLangBitmap & ~NTR_LANG_BITMAP_WW ) {
|
||||||
|
validLangBitmap |= ( 0x0001 << NTR_LANG_ENGLISH );
|
||||||
|
}
|
||||||
|
|
||||||
//pNSD->option;
|
//pNSD->option;
|
||||||
// NSDのlanguageチェック( NSD側のlanguageは、日・英・独・仏・伊・西の6言語のうちの、対応言語のみの値となる。)
|
|
||||||
if( ~( NTR_LANG_BITMAP_WW & validLangBitmap ) & ( 0x0001 << pNSD->option.language ) ) {
|
// NSDおよびNSDExのlanguageチェック
|
||||||
|
if( ( ~validLangBitmap & ( 0x0001 << pNSD->option.language ) ) ||
|
||||||
|
( ~validLangBitmap & ( 0x0001 << pNSDEx->language ) )
|
||||||
|
) {
|
||||||
OS_TPrintf("NSD: invalid language : org:%02d ex:%02d bitmap:%04x\n",
|
OS_TPrintf("NSD: invalid language : org:%02d ex:%02d bitmap:%04x\n",
|
||||||
pNSD->option.language, pNSDEx->language, pNSDEx->valid_language_bitmap );
|
pNSD->option.language, pNSDEx->language, pNSDEx->valid_language_bitmap );
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// NSDExのlanguageチェック(こちらには、中・韓も入る)
|
|
||||||
if( ( ~validLangBitmap & ( 0x0001 << pNSDEx->language ) ) ||
|
|
||||||
( pNSDEx->valid_language_bitmap != validLangBitmap ) ) {
|
|
||||||
OS_TPrintf("NSDEx: invalid language : org:%02d ex:%02d bitmap:%04x\n",
|
|
||||||
pNSD->option.language, pNSDEx->language, pNSDEx->valid_language_bitmap );
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
//pNSD->owner;
|
//pNSD->owner;
|
||||||
|
|
||||||
// favoriteColorは4bitなので範囲外はない。
|
// favoriteColorは4bitなので範囲外はない。
|
||||||
|
|
||||||
// birthday
|
// birthday
|
||||||
@ -357,7 +362,7 @@ static BOOL NSDi_CheckDataValue( NSDStoreEx *pNSDStoreEx, u8 region )
|
|||||||
// NTR設定データのクリア
|
// NTR設定データのクリア
|
||||||
void NSD_ClearSettings( void )
|
void NSD_ClearSettings( void )
|
||||||
{
|
{
|
||||||
NSDStoreEx *pNSDStoreEx = &s_NSDStoreEx;
|
NSDStoreEx *pNSDStoreEx = &s_NSDStoreEx[ 0 ];
|
||||||
|
|
||||||
s_indexNSD = 1; // ライト前に反転されるので、"0"側が選択されるように"1"にしておく
|
s_indexNSD = 1; // ライト前に反転されるので、"0"側が選択されるように"1"にしておく
|
||||||
|
|
||||||
|
|||||||
@ -149,7 +149,7 @@ BOOL TSF_WriteFile( char *pPath, TSFHeader *pHeader, const void *pSrcBody, u8 *p
|
|||||||
pHeader->saveCount = 0;
|
pHeader->saveCount = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
OS_TPrintf( "Write > %s : 0x%02x\n", pPath, pHeader->saveCount );
|
OS_TPrintf( "Write > %s : %d\n", pPath, pHeader->saveCount );
|
||||||
|
|
||||||
// ファイルオープン
|
// ファイルオープン
|
||||||
if( !FS_OpenFileEx( &file, pPath, FS_FILEMODE_R | FS_FILEMODE_W ) ) { // R|Wモードで開くと、既存ファイルを残したまま更新。
|
if( !FS_OpenFileEx( &file, pPath, FS_FILEMODE_R | FS_FILEMODE_W ) ) { // R|Wモードで開くと、既存ファイルを残したまま更新。
|
||||||
|
|||||||
@ -31,21 +31,6 @@ static u8 MY_StrLen( const u16 *pStr );
|
|||||||
// static variables-----------------------------------------------------
|
// static variables-----------------------------------------------------
|
||||||
|
|
||||||
// const data-----------------------------------------------------------
|
// const data-----------------------------------------------------------
|
||||||
#if 0
|
|
||||||
// TWL言語->NTR 言語への対応マップ
|
|
||||||
const u8 s_langCodeMapFromTWLtoNTR[ TWL_LANG_CODE_MAX ] = {
|
|
||||||
NTR_LANG_JAPANESE // TWL_LANG_JAPANESE
|
|
||||||
NTR_LANG_ENGLISH // TWL_LANG_ENGLISH
|
|
||||||
NTR_LANG_FRENCH // TWL_LANG_FRENCH
|
|
||||||
NTR_LANG_GERMAN // TWL_LANG_GERMAN
|
|
||||||
NTR_LANG_ITALIAN // TWL_LANG_ITALIAN
|
|
||||||
NTR_LANG_SPANISH // TWL_LANG_SPANISH
|
|
||||||
NTR_LANG_CHINESE // TWL_LANG_SIMP_CHINESE
|
|
||||||
NTR_LANG_KOREAN // TWL_LANG_KOREAN
|
|
||||||
// NTR_LANG_ENGLISH // TWL_LANG_DUTCH
|
|
||||||
// NTR_LANG_CHINESE // TWL_LANG_TRAD_CHINESE
|
|
||||||
};
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// function's description-----------------------------------------------
|
// function's description-----------------------------------------------
|
||||||
|
|
||||||
@ -57,18 +42,11 @@ BOOL SYSM_ReadTWLSettingsFile( void )
|
|||||||
retval = TSD_ReadSettings();
|
retval = TSD_ReadSettings();
|
||||||
// NTR設定データのリード
|
// NTR設定データのリード
|
||||||
if( !NSD_IsReadSettings() ) {
|
if( !NSD_IsReadSettings() ) {
|
||||||
NSDStoreEx (*pTempBuffer)[2] = SYSM_Alloc( NSD_TEMP_BUFFER_SIZE );
|
(void)NSD_ReadSettings( THW_GetValidLanguageBitmap() );
|
||||||
if( pTempBuffer == NULL ) {
|
|
||||||
OS_TPrintf( "%s : malloc failed.\n", __FUNCTION__ );
|
|
||||||
goto RETURN;
|
|
||||||
}
|
|
||||||
(void)NSD_ReadSettings( THW_GetRegion(), pTempBuffer );
|
|
||||||
SYSM_Free( pTempBuffer );
|
|
||||||
#ifndef SDK_FINALROM
|
#ifndef SDK_FINALROM
|
||||||
(void)SYSMi_VerifyNTRSettings();
|
(void)SYSMi_VerifyNTRSettings(); // デバッグ用ベリファイ
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
RETURN:
|
|
||||||
SYSM_SetValidTSD( retval );
|
SYSM_SetValidTSD( retval );
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
@ -84,9 +62,9 @@ BOOL SYSM_WriteTWLSettingsFile( void )
|
|||||||
if( retval ) {
|
if( retval ) {
|
||||||
SYSM_SetValidTSD( TRUE );
|
SYSM_SetValidTSD( TRUE );
|
||||||
SYSMi_ConvertTWL2NTRSettings();
|
SYSMi_ConvertTWL2NTRSettings();
|
||||||
NSD_WriteSettings( THW_GetRegion() );
|
(void)NSD_WriteSettings();
|
||||||
#ifndef SDK_FINALROM
|
#ifndef SDK_FINALROM
|
||||||
(void)SYSM_VerifyAndRecoveryNTRSettings(); // ※デバッグ用 ベリファイして、NGならリカバリ
|
(void)SYSMi_VerifyNTRSettings(); // デバッグ用ベリファイ
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
return retval;
|
return retval;
|
||||||
@ -97,20 +75,15 @@ BOOL SYSM_WriteTWLSettingsFile( void )
|
|||||||
void SYSM_VerifyAndRecoveryNTRSettings( void )
|
void SYSM_VerifyAndRecoveryNTRSettings( void )
|
||||||
{
|
{
|
||||||
BOOL isRecovery = FALSE;
|
BOOL isRecovery = FALSE;
|
||||||
NSDStoreEx (*pTempBuffer)[2] = SYSM_Alloc( NSD_TEMP_BUFFER_SIZE );
|
|
||||||
|
|
||||||
// NVRAMからNTR設定データをロードして、TWL設定データとベリファイ
|
// NVRAMからNTR設定データをロードして、TWL設定データとベリファイ
|
||||||
if( pTempBuffer == NULL ) {
|
if( !NSD_ReadSettings( THW_GetValidLanguageBitmap() ) ||
|
||||||
OS_Panic( "%s : malloc error.\n", __FUNCTION__ );
|
|
||||||
}
|
|
||||||
if( !NSD_ReadSettings( THW_GetRegion(), pTempBuffer ) ||
|
|
||||||
!SYSMi_VerifyNTRSettings()
|
!SYSMi_VerifyNTRSettings()
|
||||||
) {
|
) {
|
||||||
// ロード or ベリファイ失敗なら、TWL設定データからNTR設定データを生成して、書き込み
|
// ロード or ベリファイ失敗なら、TWL設定データからNTR設定データを生成して、書き込み
|
||||||
SYSMi_ConvertTWL2NTRSettings();
|
SYSMi_ConvertTWL2NTRSettings();
|
||||||
NSD_WriteSettings( THW_GetRegion() );
|
NSD_WriteSettings();
|
||||||
}
|
}
|
||||||
SYSM_Free( pTempBuffer );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -118,8 +91,7 @@ void SYSM_VerifyAndRecoveryNTRSettings( void )
|
|||||||
BOOL SYSMi_VerifyNTRSettings( void )
|
BOOL SYSMi_VerifyNTRSettings( void )
|
||||||
{
|
{
|
||||||
BOOL isFailed = FALSE;
|
BOOL isFailed = FALSE;
|
||||||
// NTRAlarm zeroAlarm; // TWLでアラームをなくす場合は、ゼロ値アラームと比較させる。
|
u32 twlValidLangBitmap;
|
||||||
// MI_CpuClear( &zeroAlarm, sizeof(NTRAlarm) );
|
|
||||||
|
|
||||||
// 値が一致する必要があるもの
|
// 値が一致する必要があるもの
|
||||||
if( // NTR設定データバージョン
|
if( // NTR設定データバージョン
|
||||||
@ -177,26 +149,32 @@ BOOL SYSMi_VerifyNTRSettings( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 値が一致する必要があるもの
|
// 値が一致する必要があるもの
|
||||||
if( ( NSD_GetRTCOffset() != TSD_GetRTCOffset() ) ||
|
if( NSD_GetRTCOffset() != TSD_GetRTCOffset() ) {
|
||||||
( NSD_GetLanguageEx() != TSD_GetLanguage() )
|
|
||||||
// || ( NSD_GetLanguageBitmap() != TSD_GetLanguageBitmap() )
|
|
||||||
) {
|
|
||||||
isFailed = TRUE;
|
isFailed = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの
|
// SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの
|
||||||
{
|
twlValidLangBitmap = ( THW_GetValidLanguageBitmap() & NTR_LANG_BITMAP_ALL ) | ( 0x0001 << NTR_LANG_ENGLISH );
|
||||||
NTRLangCode language = ( TSD_GetLanguage() < NTR_LANG_CODE_MAX_WW ) ?
|
OS_TPrintf( "%08x %08x\n", twlValidLangBitmap, NSD_GetValidLanguageBitmap() );
|
||||||
NSD_GetLanguage() : NSD_GetLanguageEx();
|
if( twlValidLangBitmap != NSD_GetValidLanguageBitmap() ) {
|
||||||
// NSD側は、各リージョンの対応言語ビットマップのものしか取りえない。
|
// 対応言語ビットマップ不一致
|
||||||
if( ( THW_GetValidLanguageBitmap() & ( 0x0001 << language ) ) == 0 ) {
|
isFailed = TRUE;
|
||||||
|
}else if( !( twlValidLangBitmap & ( 0x0001 << NSD_GetLanguage() ) & ( 0x0001 << NSD_GetLanguageEx() ) ) ) {
|
||||||
|
// NSD側が対応言語ビットマップ外の値になっている
|
||||||
|
isFailed = TRUE;
|
||||||
|
}else if( TSD_GetLanguage() < NTR_LANG_CODE_MAX_WW ) {
|
||||||
|
if( ( NSD_GetLanguage() >= NTR_LANG_CODE_MAX_WW ) ||
|
||||||
|
( NSD_GetLanguageEx() >= NTR_LANG_CODE_MAX_WW ) ) {
|
||||||
isFailed = TRUE;
|
isFailed = TRUE;
|
||||||
}
|
}
|
||||||
if( TSD_GetLanguage() >= NTR_LANG_CODE_MAX_WW ) {
|
}else if( TSD_GetLanguage() <= NTR_LANG_KOREAN ) {
|
||||||
// TSD側がNTR標準6言語以外の時、NSD側のlanguageは強制ENGLISH(NCDEx側にちゃんとした値が入る)
|
if( ( NSD_GetLanguage() != NTR_LANG_ENGLISH ) ||
|
||||||
if( NSD_GetLanguage() != NTR_LANG_ENGLISH ) {
|
( NSD_GetLanguageEx() > NTR_LANG_KOREAN ) ) {
|
||||||
isFailed = TRUE;
|
isFailed = TRUE;
|
||||||
}
|
}
|
||||||
|
}else {
|
||||||
|
if( ( NSD_GetLanguage() != NTR_LANG_ENGLISH ) ||
|
||||||
|
( NSD_GetLanguageEx() != NTR_LANG_ENGLISH ) ) {
|
||||||
|
isFailed = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,21 +242,30 @@ void SYSMi_ConvertTWL2NTRSettings( void )
|
|||||||
|
|
||||||
// 値が一致する必要があるもの
|
// 値が一致する必要があるもの
|
||||||
NSD_SetRTCOffset( TSD_GetRTCOffset() );
|
NSD_SetRTCOffset( TSD_GetRTCOffset() );
|
||||||
NSD_SetLanguageEx( (NTRLangCode)TSD_GetLanguage() );
|
|
||||||
// NSD_SetLanguageBitmap( TSD_GetLanguageBitmap() );
|
|
||||||
|
|
||||||
// SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの
|
// SystemMenuのリージョンによって、ちょっと特殊な処理が必要なもの
|
||||||
if( TSD_GetLanguage() < NTR_LANG_CODE_MAX_WW ) {
|
if( TSD_GetLanguage() < NTR_LANG_CODE_MAX_WW ) {
|
||||||
// TSD側がNTR標準6言語の時、TSD側 == NSD側
|
// TSD側がNTR標準6言語の時、TSD側 == NSD側
|
||||||
NSD_SetLanguage( (NTRLangCode)TSD_GetLanguage() );
|
NSD_SetLanguage ( (NTRLangCode)TSD_GetLanguage() );
|
||||||
}else {
|
NSD_SetLanguageEx( (NTRLangCode)TSD_GetLanguage() );
|
||||||
|
}else if( TSD_GetLanguage() <= TWL_LANG_KOREAN ) {
|
||||||
// TSD側がNTR標準6言語以外の時、NSD側のlanguageは強制ENGLISH(NCDEx側にちゃんとした値が入る)
|
// TSD側がNTR標準6言語以外の時、NSD側のlanguageは強制ENGLISH(NCDEx側にちゃんとした値が入る)
|
||||||
NSD_SetLanguage( NTR_LANG_ENGLISH );
|
NSD_SetLanguage ( NTR_LANG_ENGLISH );
|
||||||
|
NSD_SetLanguageEx( (NTRLangCode)TSD_GetLanguage() );
|
||||||
|
}else {
|
||||||
|
// それ以外の時は強制ENGLISH
|
||||||
|
NSD_SetLanguage ( NTR_LANG_ENGLISH );
|
||||||
|
NSD_SetLanguageEx( NTR_LANG_ENGLISH );
|
||||||
|
}
|
||||||
|
// 言語ビットマップ
|
||||||
|
{
|
||||||
|
u16 validLangBitmap = (u16)( ( THW_GetValidLanguageBitmap() & NTR_LANG_BITMAP_ALL ) | ( 0x0001 << NTR_LANG_ENGLISH ) );
|
||||||
|
NSD_SetValidLanguageBitmap( validLangBitmap ); // ライト関数内部でもマスクされるが、ここでもしておく。
|
||||||
}
|
}
|
||||||
|
|
||||||
// 値が何でも問題ないもの
|
// 値が何でも問題ないもの
|
||||||
// ※※※※ TWL側のバックライト輝度レベルが4段階でない時は、変換が必要。※※※※
|
NSD_SetBacklightBrightness( TSD_GetBacklightBrightness() & 0x03 );
|
||||||
NSD_SetBacklightBrightness( TSD_GetBacklightBrightness() );
|
// [TODO:] TWL側のバックライト輝度レベルが4段階でない時は、変換が必要。
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -103,50 +103,6 @@ static u32 load_region_check_list[RELOCATE_INFO_NUM][RELOCATE_INFO_NUM * 2 - 1]
|
|||||||
NULL },
|
NULL },
|
||||||
};
|
};
|
||||||
|
|
||||||
#if 0
|
|
||||||
|
|
||||||
typedef struct RomReloadInfo {
|
|
||||||
void *pSrc;
|
|
||||||
void *pDst;
|
|
||||||
u32 length;
|
|
||||||
BOOL revCopy;
|
|
||||||
}RomReloadInfo;
|
|
||||||
|
|
||||||
static RomReloadInfo romReloadInfo[] = {
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
static BOOL SYSMi_OutOfRangeRomSegment( u32 start, u32 length, RomSegmentRange *pRange, ReloadInfo *pReload )
|
|
||||||
{
|
|
||||||
BOOL isReload = FALSE;
|
|
||||||
u32 end = (u32)start + length;
|
|
||||||
|
|
||||||
if( start < pRange->start ) {
|
|
||||||
if( end <= pRange->start ) {
|
|
||||||
isReload = TRUE;
|
|
||||||
pReload->revCopy = FALSE;
|
|
||||||
}else {
|
|
||||||
isReload = TRUE;
|
|
||||||
pReload->revCopy = TRUE;
|
|
||||||
}
|
|
||||||
}else if( start <= pRange->end ) {
|
|
||||||
if( end <= pRange->end ) {
|
|
||||||
if(u32)( pRange->start + length ) )
|
|
||||||
}else if( end > pRange->end ) {
|
|
||||||
isReload = TRUE;
|
|
||||||
pReload->revCopy = FALSE;
|
|
||||||
}
|
|
||||||
}else if( start > pRange->end ) {
|
|
||||||
isReload = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
if( isReload ) {
|
|
||||||
pReload->pDst = (void *)start;
|
|
||||||
pReload->pSrc = (void *)pRange->start;
|
|
||||||
pReload->length = length;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// ============================================================================
|
// ============================================================================
|
||||||
//
|
//
|
||||||
@ -174,10 +130,6 @@ void SYSM_Init( void *(*pAlloc)(u32), void (*pFree)(void*) )
|
|||||||
|
|
||||||
SYSM_SetAllocFunc( pAlloc, pFree );
|
SYSM_SetAllocFunc( pAlloc, pFree );
|
||||||
|
|
||||||
// WRAM<41>Ý’č‚Í‚˘‚é<E2809A>H
|
|
||||||
// MI_SetMainMemoryPriority(MI_PROCESSOR_ARM7);
|
|
||||||
// MI_SetWramBank(MI_WRAM_ARM7_ALL);
|
|
||||||
|
|
||||||
reg_OS_PAUSE |= REG_OS_PAUSE_CHK_MASK; // PAUSEレジスタのチェックフラグのセット
|
reg_OS_PAUSE |= REG_OS_PAUSE_CHK_MASK; // PAUSEレジスタのチェックフラグのセット
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
doc/言語コード処理.xls
Normal file
BIN
doc/言語コード処理.xls
Normal file
Binary file not shown.
@ -36,7 +36,6 @@ extern "C" {
|
|||||||
#define NTR_COMMENT_LENGTH 26 // コメント長
|
#define NTR_COMMENT_LENGTH 26 // コメント長
|
||||||
#define NTR_COMMENT_BUFFERSIZE ( NTR_COMMENT_LENGTH * 2 )
|
#define NTR_COMMENT_BUFFERSIZE ( NTR_COMMENT_LENGTH * 2 )
|
||||||
#define NTR_USER_COLOR_MAX_NUM 16 // ユーザーカラーの最大数
|
#define NTR_USER_COLOR_MAX_NUM 16 // ユーザーカラーの最大数
|
||||||
#define NSD_TEMP_BUFFER_SIZE ( sizeof(NSDStoreEx) * 2 ) // NSD_ReadSettingsで必要なTempBufferサイズ
|
|
||||||
|
|
||||||
// 言語設定コード
|
// 言語設定コード
|
||||||
typedef enum NTRLangCode{
|
typedef enum NTRLangCode{
|
||||||
@ -58,7 +57,7 @@ typedef enum NTRLangCode{
|
|||||||
( 0x0001 << NTR_LANG_FRENCH ) | \
|
( 0x0001 << NTR_LANG_FRENCH ) | \
|
||||||
( 0x0001 << NTR_LANG_GERMAN ) | \
|
( 0x0001 << NTR_LANG_GERMAN ) | \
|
||||||
( 0x0001 << NTR_LANG_ITALIAN ) | \
|
( 0x0001 << NTR_LANG_ITALIAN ) | \
|
||||||
( 0x0001 << NTR_LANG_SPANISH ) ) // SystemMenu-WW版での対応言語ビットマップ
|
( 0x0001 << NTR_LANG_SPANISH ) ) // NTR-IPL2-WW版での対応言語ビットマップ
|
||||||
|
|
||||||
|
|
||||||
#define NTR_LANG_BITMAP_CHINA ( ( 0x0001 << NTR_LANG_CHINESE ) | \
|
#define NTR_LANG_BITMAP_CHINA ( ( 0x0001 << NTR_LANG_CHINESE ) | \
|
||||||
@ -66,7 +65,7 @@ typedef enum NTRLangCode{
|
|||||||
( 0x0001 << NTR_LANG_FRENCH ) | \
|
( 0x0001 << NTR_LANG_FRENCH ) | \
|
||||||
( 0x0001 << NTR_LANG_GERMAN ) | \
|
( 0x0001 << NTR_LANG_GERMAN ) | \
|
||||||
( 0x0001 << NTR_LANG_ITALIAN ) | \
|
( 0x0001 << NTR_LANG_ITALIAN ) | \
|
||||||
( 0x0001 << NTR_LANG_SPANISH ) ) // SystemMenu-CN版での対応言語ビットマップ
|
( 0x0001 << NTR_LANG_SPANISH ) ) // NTR-IPL2-CN版での対応言語ビットマップ
|
||||||
|
|
||||||
|
|
||||||
#define NTR_LANG_BITMAP_KOREA ( ( 0x0001 << NTR_LANG_KOREAN ) | \
|
#define NTR_LANG_BITMAP_KOREA ( ( 0x0001 << NTR_LANG_KOREAN ) | \
|
||||||
@ -74,8 +73,16 @@ typedef enum NTRLangCode{
|
|||||||
( 0x0001 << NTR_LANG_ENGLISH ) | \
|
( 0x0001 << NTR_LANG_ENGLISH ) | \
|
||||||
( 0x0001 << NTR_LANG_FRENCH ) | \
|
( 0x0001 << NTR_LANG_FRENCH ) | \
|
||||||
( 0x0001 << NTR_LANG_GERMAN ) | \
|
( 0x0001 << NTR_LANG_GERMAN ) | \
|
||||||
( 0x0001 << NTR_LANG_SPANISH ) ) // SystemMenu-KR版での対応言語ビットマップ
|
( 0x0001 << NTR_LANG_SPANISH ) ) // NTR-IPL2-KR版での対応言語ビットマップ
|
||||||
|
|
||||||
|
#define NTR_LANG_BITMAP_ALL ( ( 0x0001 << NTR_LANG_JAPANESE ) | \
|
||||||
|
( 0x0001 << NTR_LANG_ENGLISH ) | \
|
||||||
|
( 0x0001 << NTR_LANG_FRENCH ) | \
|
||||||
|
( 0x0001 << NTR_LANG_GERMAN ) | \
|
||||||
|
( 0x0001 << NTR_LANG_ITALIAN ) | \
|
||||||
|
( 0x0001 << NTR_LANG_SPANISH ) | \
|
||||||
|
( 0x0001 << NTR_LANG_CHINESE ) | \
|
||||||
|
( 0x0001 << NTR_LANG_KOREAN ) ) // NTR-IPL2全体での対応言語ビットマップ
|
||||||
|
|
||||||
// 日付データ
|
// 日付データ
|
||||||
typedef struct NTRDate{
|
typedef struct NTRDate{
|
||||||
@ -170,42 +177,23 @@ typedef struct NTRSettingsDataEx{
|
|||||||
}NTRSettingsDataEx; // 138bytes
|
}NTRSettingsDataEx; // 138bytes
|
||||||
|
|
||||||
|
|
||||||
// NTR各種設定データのNVRAM保存時フォーマット
|
|
||||||
typedef struct NSDStore{
|
|
||||||
NTRSettingsData nsd; // NTR各種設定データ
|
|
||||||
u16 saveCount; // 0x00-0x7fをループしてカウントし、カウント値が新しいデータが有効。
|
|
||||||
u16 crc16; // NTR各種設定データの16bitCRC
|
|
||||||
u8 pad[ 128 - sizeof(NTRSettingsData) - 4];
|
|
||||||
}NSDStore; // 128byte // ※本来なら、saveCountとcrc16は256byteの最後に付加して、間にパディングを埋める方がいい。
|
|
||||||
|
|
||||||
|
|
||||||
// NTR各種設定データEXのNVRAM保存時フォーマット(上記NCDStoreと互換をとるための無理やり拡張)
|
|
||||||
typedef struct NSDStoreEx{
|
|
||||||
NTRSettingsData nsd; // NTR各種設定データ
|
|
||||||
u16 saveCount; // 0x00-0x7fをループしてカウントし、カウント値が新しいデータが有効。
|
|
||||||
u16 crc16; // NTR各種設定データの16bitCRC
|
|
||||||
NTRSettingsDataEx nsd_ex;
|
|
||||||
u16 crc16_ex;
|
|
||||||
}NSDStoreEx; // 256byte // ※本来なら、saveCountとcrc16は256byteの最後に付加して、間にパディングを埋める方がいい。
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef SDK_ARM9
|
#ifdef SDK_ARM9
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// グローバル変数
|
|
||||||
//=========================================================
|
|
||||||
extern NTRSettingsData *g_pNSD;
|
|
||||||
extern NTRSettingsDataEx *g_pNSDEx;
|
|
||||||
#define GetNSD() ( g_pNSD )
|
|
||||||
#define GetNSDEx() ( g_pNSDEx )
|
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
// NVRAMへのリードライト関数
|
// NVRAMへのリードライト関数
|
||||||
//=========================================================
|
//=========================================================
|
||||||
extern void NSD_ClearSettings( void );
|
extern void NSD_ClearSettings( void );
|
||||||
extern BOOL NSD_IsReadSettings( void );
|
extern BOOL NSD_IsReadSettings( void );
|
||||||
extern BOOL NSD_ReadSettings( u8 region, NSDStoreEx (*pTempBuffer)[2] ); // NSD_TEMP_BUFFER_SIZEのpTempBufferが必要。
|
extern BOOL NSD_ReadSettings( u32 validLangBitmap );
|
||||||
extern BOOL NSD_WriteSettings( u8 region ); // 先にNSD_ReadSettingsを実行しておく必要がある。
|
extern BOOL NSD_WriteSettings( void ); // 先にNSD_ReadSettingsを実行しておく必要がある。
|
||||||
|
|
||||||
|
//=========================================================
|
||||||
|
// グローバル変数
|
||||||
|
//=========================================================
|
||||||
|
extern NTRSettingsData *g_pNSD;
|
||||||
|
extern NTRSettingsDataEx *g_pNSDEx;
|
||||||
|
#define GetNSD() ( g_pNSD )
|
||||||
|
#define GetNSDEx() ( g_pNSDEx )
|
||||||
|
|
||||||
//=========================================================
|
//=========================================================
|
||||||
// データ取得(NSD_ReadSettingsで内部ワークに読み出した情報の取得)
|
// データ取得(NSD_ReadSettingsで内部ワークに読み出した情報の取得)
|
||||||
@ -313,7 +301,7 @@ static inline NTRLangCode NSD_GetLanguageEx( void )
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 対応言語ビットマップの取得
|
// 対応言語ビットマップの取得
|
||||||
static inline u16 NSD_GetLanguageBitmap( void )
|
static inline u16 NSD_GetValidLanguageBitmap( void )
|
||||||
{
|
{
|
||||||
return GetNSDEx()->valid_language_bitmap;
|
return GetNSDEx()->valid_language_bitmap;
|
||||||
}
|
}
|
||||||
@ -488,7 +476,7 @@ static inline void NSD_SetLanguageEx( NTRLangCode language )
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// 対応言語ビットマップのセット
|
// 対応言語ビットマップのセット
|
||||||
static inline void NSD_SetLanguageBitmap( u16 valid_language_bitmap )
|
static inline void NSD_SetValidLanguageBitmap( u16 valid_language_bitmap )
|
||||||
{
|
{
|
||||||
GetNSDEx()->valid_language_bitmap = valid_language_bitmap;
|
GetNSDEx()->valid_language_bitmap = valid_language_bitmap;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user