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_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 WriteHWSecureInfoFile( u8 region );
|
||||
//static BOOL DeleteHWInfoFile( void );
|
||||
|
||||
const LCFGTWLHWNormalInfo *LCFG_THW_GetDefaultNormalInfo( void );
|
||||
const LCFGTWLHWSecureInfo *LCFG_THW_GetDefaultSecureInfo( void );
|
||||
const LCFGTWLHWNormalInfo *LCFG_THW_GetNormalInfo( void );
|
||||
const LCFGTWLHWSecureInfo *LCFG_THW_GetSecureInfo( void );
|
||||
static BOOL GetNandInitializerSetting(u8* region, u8* wireless);
|
||||
|
||||
/*---------------------------------------------------------------------------*
|
||||
プロセス関数定義
|
||||
@ -157,7 +159,6 @@ void* HWInfoProcess1(void)
|
||||
// オート実行用
|
||||
if (gAutoFlag)
|
||||
{
|
||||
sMenuSelectNo = 0;
|
||||
return HWInfoProcess2;
|
||||
}
|
||||
#endif
|
||||
@ -204,6 +205,24 @@ void* HWInfoProcess2(void)
|
||||
int i;
|
||||
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 )
|
||||
{
|
||||
case MENU_REGION_JAPAN:
|
||||
@ -212,8 +231,8 @@ void* HWInfoProcess2(void)
|
||||
case MENU_REGION_AUSTRALIA:
|
||||
case MENU_REGION_CHINA:
|
||||
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++)
|
||||
@ -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
|
||||
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 ~~~
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user