mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
SDカードのルートに設定ファイル nandinitializer.ini を用意しておくことでオート初期化時の リージョン及び強制ワイヤレスオプションを指定可能になりました。
nandinitializer.ini のフォーマットについては NandInitializerの分類について.txt を参照してください。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1416 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
63049ed8d4
commit
2beb4ad7b1
@ -60,11 +60,17 @@ enum {
|
|||||||
#define CURSOR_ORIGIN_X 32
|
#define CURSOR_ORIGIN_X 32
|
||||||
#define CURSOR_ORIGIN_Y 40
|
#define CURSOR_ORIGIN_Y 40
|
||||||
|
|
||||||
|
#define NANDINITIALIZER_SETTING_FILE_PATH_IN_SD "sdmc:/nandinitializer.ini"
|
||||||
|
|
||||||
|
#define ROUND_UP(value, alignment) \
|
||||||
|
(((u32)(value) + (alignment-1)) & ~(alignment-1))
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
内部変数定義
|
内部変数定義
|
||||||
*---------------------------------------------------------------------------*/
|
*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
static s8 sMenuSelectNo;
|
static s8 sMenuSelectNo;
|
||||||
|
static BOOL sWirelessForceOff;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
内部関数宣言
|
内部関数宣言
|
||||||
@ -73,11 +79,7 @@ static s8 sMenuSelectNo;
|
|||||||
static BOOL WriteHWNormalInfoFile( void );
|
static BOOL WriteHWNormalInfoFile( void );
|
||||||
static BOOL WriteHWSecureInfoFile( u8 region );
|
static BOOL WriteHWSecureInfoFile( u8 region );
|
||||||
//static BOOL DeleteHWInfoFile( void );
|
//static BOOL DeleteHWInfoFile( void );
|
||||||
|
static BOOL GetNandInitializerSetting(u8* region, u8* wireless);
|
||||||
const LCFGTWLHWNormalInfo *LCFG_THW_GetDefaultNormalInfo( void );
|
|
||||||
const LCFGTWLHWSecureInfo *LCFG_THW_GetDefaultSecureInfo( void );
|
|
||||||
const LCFGTWLHWNormalInfo *LCFG_THW_GetNormalInfo( void );
|
|
||||||
const LCFGTWLHWSecureInfo *LCFG_THW_GetSecureInfo( void );
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
/*---------------------------------------------------------------------------*
|
||||||
プロセス関数定義
|
プロセス関数定義
|
||||||
@ -157,7 +159,6 @@ void* HWInfoProcess1(void)
|
|||||||
// オート実行用
|
// オート実行用
|
||||||
if (gAutoFlag)
|
if (gAutoFlag)
|
||||||
{
|
{
|
||||||
sMenuSelectNo = 0;
|
|
||||||
return HWInfoProcess2;
|
return HWInfoProcess2;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
@ -204,6 +205,24 @@ void* HWInfoProcess2(void)
|
|||||||
int i;
|
int i;
|
||||||
BOOL result;
|
BOOL result;
|
||||||
|
|
||||||
|
#ifndef NAND_INITIALIZER_LIMITED_MODE
|
||||||
|
// オート実行用
|
||||||
|
if (gAutoFlag)
|
||||||
|
{
|
||||||
|
// SDカードのnandinitializer.iniより設定を取得
|
||||||
|
if (!GetNandInitializerSetting((u8 *)&sMenuSelectNo, (u8 *)&sWirelessForceOff))
|
||||||
|
{
|
||||||
|
// 設定の取得に失敗した場合はデフォルト設定(REGION_JAPAN/WIRELESS_ENABLE)
|
||||||
|
sMenuSelectNo = 0;
|
||||||
|
sWirelessForceOff = FALSE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
#endif
|
||||||
|
{
|
||||||
|
sWirelessForceOff = LCFG_THW_IsForceDisableWireless();
|
||||||
|
}
|
||||||
|
|
||||||
switch( sMenuSelectNo )
|
switch( sMenuSelectNo )
|
||||||
{
|
{
|
||||||
case MENU_REGION_JAPAN:
|
case MENU_REGION_JAPAN:
|
||||||
@ -212,8 +231,8 @@ void* HWInfoProcess2(void)
|
|||||||
case MENU_REGION_AUSTRALIA:
|
case MENU_REGION_AUSTRALIA:
|
||||||
case MENU_REGION_CHINA:
|
case MENU_REGION_CHINA:
|
||||||
case MENU_REGION_KOREA:
|
case MENU_REGION_KOREA:
|
||||||
OS_TPrintf( "Write Start.\n" );
|
|
||||||
result = WriteHWInfoFile( (u8)sMenuSelectNo, LCFG_THW_IsForceDisableWireless() );
|
result = WriteHWInfoFile( (u8)sMenuSelectNo, sWirelessForceOff );
|
||||||
|
|
||||||
// 全リージョンの結果をクリア
|
// 全リージョンの結果をクリア
|
||||||
for (i=0;i<NUM_OF_MENU_SELECT;i++)
|
for (i=0;i<NUM_OF_MENU_SELECT;i++)
|
||||||
@ -396,3 +415,96 @@ void UpdateNandBoxCount( void )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*---------------------------------------------------------------------------*
|
||||||
|
Name: GetNandInitializerSetting
|
||||||
|
|
||||||
|
Description: SDカードのnandinitializer.iniの設定を確認します
|
||||||
|
|
||||||
|
Arguments: None.
|
||||||
|
|
||||||
|
Returns: None.
|
||||||
|
*---------------------------------------------------------------------------*/
|
||||||
|
static BOOL GetNandInitializerSetting(u8* region, u8* wireless)
|
||||||
|
{
|
||||||
|
FSFile file;
|
||||||
|
BOOL open_is_ok;
|
||||||
|
BOOL read_is_ok;
|
||||||
|
void* pTempBuf;
|
||||||
|
char* pStr;
|
||||||
|
u8 temp_region;
|
||||||
|
u8 temp_wireless;
|
||||||
|
u32 file_size;
|
||||||
|
u32 alloc_size;
|
||||||
|
|
||||||
|
// ROMファイルオープン
|
||||||
|
FS_InitFile(&file);
|
||||||
|
open_is_ok = FS_OpenFile(&file, NANDINITIALIZER_SETTING_FILE_PATH_IN_SD);
|
||||||
|
if (!open_is_ok)
|
||||||
|
{
|
||||||
|
OS_Printf("%s is not exist.\n", NANDINITIALIZER_SETTING_FILE_PATH_IN_SD);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROMファイルリード
|
||||||
|
file_size = FS_GetFileLength(&file) ;
|
||||||
|
alloc_size = ROUND_UP(file_size, 32) ;
|
||||||
|
pTempBuf = OS_Alloc( alloc_size );
|
||||||
|
SDK_NULL_ASSERT(pTempBuf);
|
||||||
|
DC_InvalidateRange(pTempBuf, alloc_size);
|
||||||
|
read_is_ok = FS_ReadFile( &file, pTempBuf, (s32)file_size );
|
||||||
|
if (!read_is_ok)
|
||||||
|
{
|
||||||
|
OS_Printf("%s could not be read.\n", NANDINITIALIZER_SETTING_FILE_PATH_IN_SD);
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ROMファイルクローズ
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
|
||||||
|
// REGION: を読み取る
|
||||||
|
pStr = STD_SearchString( pTempBuf, "REGION:");
|
||||||
|
if (pStr == NULL)
|
||||||
|
{
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
pStr += STD_GetStringLength("REGION:");
|
||||||
|
temp_region = (u8)(*pStr - '0');
|
||||||
|
|
||||||
|
if (OS_TWL_REGION_JAPAN <= temp_region && temp_region < OS_TWL_REGION_MAX)
|
||||||
|
{
|
||||||
|
*region = temp_region;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 強制ワイヤレスOFF設定を読み取る
|
||||||
|
pStr = STD_SearchString( pTempBuf, "WIRELESS_FORCE_OFF:");
|
||||||
|
if (pStr == NULL)
|
||||||
|
{
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
pStr += STD_GetStringLength("WIRELESS_FORCE_OFF:");
|
||||||
|
temp_wireless = (u8)(*pStr - '0');
|
||||||
|
|
||||||
|
if (0 <= temp_wireless && temp_wireless <= 1)
|
||||||
|
{
|
||||||
|
*wireless = temp_wireless;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
OS_Free(pTempBuf);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|||||||
@ -55,6 +55,14 @@
|
|||||||
4. IMPORT TAD FROM SD -> OVERWRITE ALL
|
4. IMPORT TAD FROM SD -> OVERWRITE ALL
|
||||||
5. IMPORT NANDFIRM FROM SD -> 最初に見つけた*.nandファイル
|
5. IMPORT NANDFIRM FROM SD -> 最初に見つけた*.nandファイル
|
||||||
|
|
||||||
|
★ SDカードのルートにnandinitializer.iniというファイルを用意することで
|
||||||
|
初期化する際の Region と ワイヤレス設定を指定することができます。
|
||||||
|
nandinitializer.ini のフォーマットは以下のとおりです。
|
||||||
|
|
||||||
|
--- ここから ----
|
||||||
|
REGION:0 //(0:JAPAN, 1:AMERICA, 2:EUROPE, 3:AUSTRALIA, 4:CHINA, 5:KOREA)
|
||||||
|
WIRELESS_FORCE_OFF:0 //(0:Wireless Enable, 1:Wireless Disable)
|
||||||
|
--- ここまで ----
|
||||||
|
|
||||||
~~~ NandInitializer ~~~
|
~~~ NandInitializer ~~~
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user