SDK3790に対応中。

BOOTTYPEの仕様変更に対応。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@508 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-01-23 12:00:21 +00:00
parent 301b8c21f9
commit 90d2377e65
11 changed files with 93 additions and 78 deletions

View File

@ -35,10 +35,10 @@
// extern data----------------------------------------------------------------- // extern data-----------------------------------------------------------------
// function's prototype-------------------------------------------------------- // function's prototype--------------------------------------------------------
static void SYSMi_SetBootSRLPath( OSBootType bootType, NAMTitleId titleID ); static void SYSMi_SetBootSRLPath( LauncherBootType bootType, NAMTitleId titleID );
static void SYSMi_SetMountInfoCore( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pSrc ); static void SYSMi_SetMountInfoCore( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pSrc );
static void SYSMi_ModifySaveDataMount( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ); static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt );
static void SYSMi_ModifySaveDataMountForLauncher( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ); static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt );
// global variable------------------------------------------------------------- // global variable-------------------------------------------------------------
// static variable------------------------------------------------------------- // static variable-------------------------------------------------------------
@ -74,16 +74,16 @@ void SYSMi_SetLauncherMountInfo( void )
NAMTitleId titleID = TITLE_ID_LAUNCHER; NAMTitleId titleID = TITLE_ID_LAUNCHER;
// ※とりあえず自身はROMブートで。[TODO:]後で修正 // ※とりあえず自身はROMブートで。[TODO:]後で修正
// SYSMi_SetBootSRLPath( OS_BOOTTYPE_NAND, titleID ); // ※SDK2623では、BootSRLPathを"rom:"としたらFSi_InitRomArchiveでNANDアプリ扱いされてアクセス例外で落ちる。 // SYSMi_SetBootSRLPath( LAUNCHER_BOOTTYPE_NAND, titleID ); // ※SDK2623では、BootSRLPathを"rom:"としたらFSi_InitRomArchiveでNANDアプリ扱いされてアクセス例外で落ちる。
// セーブデータ有無によるマウント情報の編集 // セーブデータ有無によるマウント情報の編集
// ※このタイミングではFSは動かせないので、FSを使わない特別版で対応。 // ※このタイミングではFSは動かせないので、FSを使わない特別版で対応。
SYSMi_ModifySaveDataMountForLauncher( OS_BOOTTYPE_NAND, SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND,
titleID, titleID,
&s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] ); &s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] );
// マウント情報のセット // マウント情報のセット
SYSMi_SetMountInfoCore( OS_BOOTTYPE_NAND, SYSMi_SetMountInfoCore( LAUNCHER_BOOTTYPE_NAND,
titleID, titleID,
&s_defaultMountList[0] ); &s_defaultMountList[0] );
} }
@ -98,16 +98,16 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
} }
// 起動アプリのSRLパスをセット // 起動アプリのSRLパスをセット
SYSMi_SetBootSRLPath( (OSBootType)pBootTitle->flags.bootType, SYSMi_SetBootSRLPath( (LauncherBootType)pBootTitle->flags.bootType,
pBootTitle->titleID ); pBootTitle->titleID );
// セーブデータ有無によるマウント情報の編集 // セーブデータ有無によるマウント情報の編集
SYSMi_ModifySaveDataMount( (OSBootType)pBootTitle->flags.bootType, SYSMi_ModifySaveDataMount( (LauncherBootType)pBootTitle->flags.bootType,
pBootTitle->titleID, pBootTitle->titleID,
&s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] ); &s_defaultMountList[ PRV_SAVE_DATA_MOUNT_INDEX ] );
// マウント情報のセット // マウント情報のセット
SYSMi_SetMountInfoCore( (OSBootType)pBootTitle->flags.bootType, SYSMi_SetMountInfoCore( (LauncherBootType)pBootTitle->flags.bootType,
pBootTitle->titleID, pBootTitle->titleID,
&s_defaultMountList[0] ); &s_defaultMountList[0] );
@ -121,18 +121,18 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle )
// 起動SRLパスをシステム領域にセット // 起動SRLパスをシステム領域にセット
static void SYSMi_SetBootSRLPath( OSBootType bootType, NAMTitleId titleID ) static void SYSMi_SetBootSRLPath( LauncherBootType bootType, NAMTitleId titleID )
{ {
static char path[ FS_ENTRY_LONGNAME_MAX ]; static char path[ FS_ENTRY_LONGNAME_MAX ];
switch( bootType ) switch( bootType )
{ {
case OS_BOOTTYPE_NAND: case LAUNCHER_BOOTTYPE_NAND:
if( NAM_GetTitleBootContentPathFast( path, titleID ) != NAM_OK ) { if( NAM_GetTitleBootContentPathFast( path, titleID ) != NAM_OK ) {
OS_TPrintf( "ERROR: BootContentPath Get failed.\n" ); OS_TPrintf( "ERROR: BootContentPath Get failed.\n" );
} }
break; break;
case OS_BOOTTYPE_TEMP: case LAUNCHER_BOOTTYPE_TEMP:
STD_TSNPrintf( path, 31, "nand:/tmp/%.16llx.srl", titleID ); STD_TSNPrintf( path, 31, "nand:/tmp/%.16llx.srl", titleID );
break; break;
default: default:
@ -151,7 +151,7 @@ static void SYSMi_SetBootSRLPath( OSBootType bootType, NAMTitleId titleID )
// マウント情報をシステム領域に書き込み // マウント情報をシステム領域に書き込み
static void SYSMi_SetMountInfoCore( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pSrc ) static void SYSMi_SetMountInfoCore( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pSrc )
{ {
#pragma unused(bootType) #pragma unused(bootType)
@ -185,16 +185,16 @@ static void SYSMi_SetMountInfoCore( OSBootType bootType, NAMTitleId titleID, OSM
// タイトルIDをもとにセーブデータ有無を判定して、マウント情報を編集する。 // タイトルIDをもとにセーブデータ有無を判定して、マウント情報を編集する。
static void SYSMi_ModifySaveDataMount( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ) static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt )
{ {
int i; int i;
// ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。 // ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。
// セーブデータ有無を判定して、パスをセット // セーブデータ有無を判定して、パスをセット
if( ( ( bootType == OS_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時 if( ( ( bootType == LAUNCHER_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時
( titleID & TITLEID_MEDIA_NAND_FLAG ) ) || ( titleID & TITLEID_MEDIA_NAND_FLAG ) ) ||
( ( bootType == OS_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時 ( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時
( titleID & TITLEID_MEDIA_NAND_FLAG ) && ( titleID & TITLEID_MEDIA_NAND_FLAG ) &&
( SYSMi_GetWork()->isOnDebugger ) ) ( SYSMi_GetWork()->isOnDebugger ) )
) { ) {
@ -229,16 +229,16 @@ static void SYSMi_ModifySaveDataMount( OSBootType bootType, NAMTitleId titleID,
// タイトルIDをもとにセーブデータ有無を判定して、マウント情報を編集する。 // タイトルIDをもとにセーブデータ有無を判定して、マウント情報を編集する。
static void SYSMi_ModifySaveDataMountForLauncher( OSBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ) static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt )
{ {
int i; int i;
// ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。 // ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。
// セーブデータ有無を判定して、パスをセット // セーブデータ有無を判定して、パスをセット
if( ( ( bootType == OS_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時 if( ( ( bootType == LAUNCHER_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時
( titleID & TITLEID_MEDIA_NAND_FLAG ) ) || ( titleID & TITLEID_MEDIA_NAND_FLAG ) ) ||
( ( bootType == OS_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時 ( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時
( titleID & TITLEID_MEDIA_NAND_FLAG ) && ( titleID & TITLEID_MEDIA_NAND_FLAG ) &&
( SYSMi_GetWork()->isOnDebugger ) ) ( SYSMi_GetWork()->isOnDebugger ) )
) { ) {

View File

@ -157,6 +157,7 @@ TitleProperty *SYSM_ReadParameters( void )
if( !LCFG_ReadHWSecureInfo() ) { if( !LCFG_ReadHWSecureInfo() ) {
OS_TPrintf( "HW Secure Info Broken!\n" ); OS_TPrintf( "HW Secure Info Broken!\n" );
SYSMi_GetWork()->isBrokenHWSecureInfo = TRUE; SYSMi_GetWork()->isBrokenHWSecureInfo = TRUE;
SYSMi_GetWork()->isFatalError = TRUE;
} }
//----------------------------------------------------- //-----------------------------------------------------
@ -209,7 +210,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
s_bootTitle.flags.isAppLoadCompleted = TRUE; s_bootTitle.flags.isAppLoadCompleted = TRUE;
s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす s_bootTitle.flags.isInitialShortcutSkip = TRUE; // 初回起動シーケンスを飛ばす
s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす s_bootTitle.flags.isLogoSkip = TRUE; // ロゴデモを飛ばす
s_bootTitle.flags.bootType = OS_BOOTTYPE_ROM; s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_ROM;
s_bootTitle.flags.isValid = TRUE; s_bootTitle.flags.isValid = TRUE;
s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo ); s_bootTitle.titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip ); SYSM_SetLogoDemoSkip( s_bootTitle.flags.isLogoSkip );
@ -228,7 +229,7 @@ static TitleProperty *SYSMi_CheckShortcutBoot( void )
!LCFG_TSD_IsSetUserColor() || !LCFG_TSD_IsSetUserColor() ||
!LCFG_TSD_IsSetNickname() ) { !LCFG_TSD_IsSetNickname() ) {
s_bootTitle.titleID = TITLE_ID_MACHINE_SETTINGS; s_bootTitle.titleID = TITLE_ID_MACHINE_SETTINGS;
s_bootTitle.flags.bootType = OS_BOOTTYPE_NAND; s_bootTitle.flags.bootType = LAUNCHER_BOOTTYPE_NAND;
s_bootTitle.flags.isValid = TRUE; s_bootTitle.flags.isValid = TRUE;
return &s_bootTitle; return &s_bootTitle;
} }

View File

@ -36,6 +36,13 @@ static OSThread s_thread;
static TWLBannerFile s_bannerBuf[ LAUNCHER_TITLE_LIST_NUM ] ATTRIBUTE_ALIGN(32); static TWLBannerFile s_bannerBuf[ LAUNCHER_TITLE_LIST_NUM ] ATTRIBUTE_ALIGN(32);
// const data------------------------------------------------------------------ // const data------------------------------------------------------------------
static const OSBootType s_launcherToOSBootType[ LAUNCHER_BOOTTYPE_MAX ] = {
OS_BOOTTYPE_ILLEGAL, // ILLEGAL
OS_BOOTTYPE_ROM, // ROM
OS_BOOTTYPE_NAND, // TEMP
OS_BOOTTYPE_NAND, // NAND
OS_BOOTTYPE_MEMORY, // MEMORY
};
// ============================================================================ // ============================================================================
// //
@ -81,41 +88,13 @@ BOOL SYSM_GetCardTitleList( TitleProperty *pTitleList_Card )
} }
// タイトル情報フラグのセット // タイトル情報フラグのセット
pTitleList_Card->flags.bootType = OS_BOOTTYPE_ROM; pTitleList_Card->flags.bootType = LAUNCHER_BOOTTYPE_ROM;
pTitleList_Card->titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo ); pTitleList_Card->titleID = *(u64 *)( &SYSM_GetCardRomHeader()->titleID_Lo );
return retval; return retval;
} }
// Žwèƒtƒ@ƒCƒƒŠ<C692>[ƒh
static s32 ReadFile(FSFile* pf, void* buffer, s32 size)
{
u8* p = (u8*)buffer;
s32 remain = size;
while( remain > 0 )
{
const s32 len = MATH_IMin(1024, remain);
const s32 readLen = FS_ReadFile(pf, p, len);
if( readLen < 0 )
{
return readLen;
}
if( readLen != len )
{
return size - remain + readLen;
}
remain -= readLen;
p += readLen;
}
return size;
}
// NANDタイトルリストの取得 // NANDタイトルリストの取得
int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum ) int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
{ {
@ -214,7 +193,7 @@ int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
pTitleList_Nand[l+1].pBanner = &s_bannerBuf[l]; pTitleList_Nand[l+1].pBanner = &s_bannerBuf[l];
if( titleIdArray[l] ) { if( titleIdArray[l] ) {
pTitleList_Nand[l+1].flags.isValid = TRUE; pTitleList_Nand[l+1].flags.isValid = TRUE;
pTitleList_Nand[l+1].flags.bootType = OS_BOOTTYPE_NAND; pTitleList_Nand[l+1].flags.bootType = LAUNCHER_BOOTTYPE_NAND;
} }
} }
// return : *TitleProperty Array // return : *TitleProperty Array
@ -222,6 +201,34 @@ int SYSM_GetNandTitleList( TitleProperty *pTitleList_Nand, int listNum )
} }
// 指定ファイルリード
static s32 ReadFile(FSFile* pf, void* buffer, s32 size)
{
u8* p = (u8*)buffer;
s32 remain = size;
while( remain > 0 )
{
const s32 len = MATH_IMin(1024, remain);
const s32 readLen = FS_ReadFile(pf, p, len);
if( readLen < 0 )
{
return readLen;
}
if( readLen != len )
{
return size - remain + readLen;
}
remain -= readLen;
p += readLen;
}
return size;
}
// ============================================================================ // ============================================================================
// //
// アプリ起動 // アプリ起動
@ -250,22 +257,21 @@ static void SYSMi_LoadTitleThreadFunc( TitleProperty *pBootTitle )
FSFile file[1]; FSFile file[1];
BOOL bSuccess; BOOL bSuccess;
BOOL isTwlApp = TRUE; BOOL isTwlApp = TRUE;
if(pBootTitle->flags.bootType == OS_BOOTTYPE_NAND)
{ switch( pBootTitle->flags.bootType )
{
case LAUNCHER_BOOTTYPE_NAND:
// NAND // NAND
NAM_GetTitleBootContentPathFast(path, pBootTitle->titleID); NAM_GetTitleBootContentPathFast(path, pBootTitle->titleID);
} break;
else if(pBootTitle->flags.bootType == OS_BOOTTYPE_ROM) case LAUNCHER_BOOTTYPE_ROM:
{
// TODO:CARD未読の場合の処理 // TODO:CARD未読の場合の処理
} break;
else if(pBootTitle->flags.bootType == OS_BOOTTYPE_TEMP) case LAUNCHER_BOOTTYPE_TEMP:
{
// tmpフォルダ // tmpフォルダ
STD_TSNPrintf( path, 31, "nand:/tmp/%.16llx.srl", pBootTitle->titleID ); STD_TSNPrintf( path, 31, "nand:/tmp/%.16llx.srl", pBootTitle->titleID );
} break;
else default:
{
// unknown // unknown
return; return;
} }
@ -394,7 +400,7 @@ OS_TPrintf("RebootSystem failed: cant read file(%d, %d)\n", source[i], len);
(void)FS_CloseFile(file); (void)FS_CloseFile(file);
if(pBootTitle->flags.bootType == OS_BOOTTYPE_TEMP) if(pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_TEMP)
{ {
// tmpアプリの場合はファイル削除 // tmpアプリの場合はファイル削除
// TODO:その他読み込み等の失敗時にもDeleteする必要あり // TODO:その他読み込み等の失敗時にもDeleteする必要あり
@ -432,7 +438,7 @@ void SYSM_StartLoadTitle( TitleProperty *pBootTitle )
SYSMi_GetWork()->isLoadSucceeded = TRUE; SYSMi_GetWork()->isLoadSucceeded = TRUE;
} }
if( pBootTitle->flags.bootType == OS_BOOTTYPE_ROM ) { if( pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_ROM ) {
SYSMi_GetWork()->isCardBoot = TRUE; SYSMi_GetWork()->isCardBoot = TRUE;
}else if(pBootTitle->flags.isAppLoadCompleted) }else if(pBootTitle->flags.isAppLoadCompleted)
{ {
@ -525,6 +531,14 @@ AuthResult SYSM_AuthenticateTitle( TitleProperty *pBootTitle )
} }
#endif #endif
// BOOTTYPE_MEMORYでNTRモードのFSありでブートすると、旧NitroSDKでビルドされたアプリの場合、
// ROMアーカイブにカードが割り当てられて、FSで関係ないカードにアクセスにいってしまうので、それを防止する。
if( ( pBootTitle->flags.bootType == LAUNCHER_BOOTTYPE_MEMORY ) &&
( ( (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->platform_code ) == 0 ) &&
( ( (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->fat_size ) > 0 )
) {
return AUTH_RESULT_TITLE_BOOTTYPE_ERROR;
}
// ※ROMヘッダ認証 // ※ROMヘッダ認証
@ -533,16 +547,14 @@ AuthResult SYSM_AuthenticateTitle( TitleProperty *pBootTitle )
SYSMi_SetBootAppMountInfo( pBootTitle ); SYSMi_SetBootAppMountInfo( pBootTitle );
// HW_WM_BOOT_BUFへのブート情報セット // HW_WM_BOOT_BUFへのブート情報セット
{ ( (OSBootInfo *)OS_GetBootInfo() )->boot_type = s_launcherToOSBootType[ pBootTitle->flags.bootType ];
OSBootInfo *pBootInfo = (OSBootInfo *)OS_GetBootInfo();
pBootInfo->boot_type = (OSBootType)pBootTitle->flags.bootType;
}
BOOT_Ready(); // never return. BOOT_Ready(); // never return.
return AUTH_RESULT_SUCCEEDED; return AUTH_RESULT_SUCCEEDED;
} }
#if 0 #if 0
// 指定タイトルの認証&ロード ※1フレームじゃ終わらん。 // 指定タイトルの認証&ロード ※1フレームじゃ終わらん。
// もしかすると使わないかも // もしかすると使わないかも

View File

@ -509,7 +509,7 @@ static TitleProperty *ProcessPads( TitleProperty *pTitleList )
u16 dummy; u16 dummy;
u16 tp_lr = 3; u16 tp_lr = 3;
TitleProperty *ret = NULL; TitleProperty *ret = NULL;
LauncherBootFlags tempflag = {TRUE, OS_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, LAUNCHER_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0};
// バックライト関係のキー処理 // バックライト関係のキー処理
ProcessBackLightPads(); ProcessBackLightPads();

View File

@ -188,7 +188,7 @@ int MachineSettingMain( void )
{ {
BOOL tp_select; BOOL tp_select;
LauncherBootFlags tempflag = {TRUE, OS_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, LAUNCHER_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP(); ReadTP();

View File

@ -439,7 +439,7 @@ static void MenuScene(void)
{ {
BOOL tp_select = FALSE; BOOL tp_select = FALSE;
static TPData tgt = (TPData){0,0,0,0}; static TPData tgt = (TPData){0,0,0,0};
LauncherBootFlags tempflag = {TRUE, OS_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, LAUNCHER_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP(); ReadTP();

View File

@ -124,7 +124,7 @@ static void MenuInit( void )
static void MenuScene(void) static void MenuScene(void)
{ {
BOOL tp_select = FALSE; BOOL tp_select = FALSE;
LauncherBootFlags tempflag = {TRUE, OS_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, LAUNCHER_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP(); ReadTP();

View File

@ -439,7 +439,7 @@ static void MenuScene(void)
{ {
BOOL tp_select = FALSE; BOOL tp_select = FALSE;
static TPData tgt = (TPData){0,0,0,0}; static TPData tgt = (TPData){0,0,0,0};
LauncherBootFlags tempflag = {TRUE, OS_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, LAUNCHER_BOOTTYPE_NAND, TRUE, FALSE, FALSE, FALSE, 0};
ReadTP(); ReadTP();

View File

@ -134,7 +134,7 @@ static BOOL LoadTitle( NAMTitleId bootTitleID )
static void MenuScene(void) static void MenuScene(void)
{ {
BOOL tp_select = FALSE; BOOL tp_select = FALSE;
LauncherBootFlags tempflag = {TRUE, OS_BOOTTYPE_NAND, TRUE, FALSE, TRUE, FALSE, 0}; LauncherBootFlags tempflag = {TRUE, LAUNCHER_BOOTTYPE_NAND, TRUE, FALSE, TRUE, FALSE, 0};
ReadTP(); ReadTP();

View File

@ -65,7 +65,8 @@ typedef enum AuthResult {
AUTH_RESULT_TITLE_LOAD_FAILED = 2, AUTH_RESULT_TITLE_LOAD_FAILED = 2,
AUTH_RESULT_TITLE_POINTER_ERROR = 3, AUTH_RESULT_TITLE_POINTER_ERROR = 3,
AUTH_RESULT_AUTHENTICATE_FAILED = 4, AUTH_RESULT_AUTHENTICATE_FAILED = 4,
AUTH_RESULT_ENTRY_ADDRESS_ERROR = 5 AUTH_RESULT_ENTRY_ADDRESS_ERROR = 5,
AUTH_RESULT_TITLE_BOOTTYPE_ERROR = 6
}AuthResult; }AuthResult;

View File

@ -70,6 +70,7 @@ typedef struct ISD_RomEmuInfo {
// SYSM共有ワーク構造体 // SYSM共有ワーク構造体
typedef struct SYSM_work { typedef struct SYSM_work {
Relocate_Info romRelocateInfo[RELOCATE_INFO_NUM]; // ROM再配置情報arm9,arm7それぞれltdとflxで最大4つ Relocate_Info romRelocateInfo[RELOCATE_INFO_NUM]; // ROM再配置情報arm9,arm7それぞれltdとflxで最大4つ
vu32 isFatalError :1; // FATALエラー
vu32 isARM9Start :1; // ARM9スタートフラグ vu32 isARM9Start :1; // ARM9スタートフラグ
vu32 isHotStart :1; // Hot/Coldスタート判定 vu32 isHotStart :1; // Hot/Coldスタート判定
vu32 isValidLauncherParam :1; // リセットパラメータ有効 vu32 isValidLauncherParam :1; // リセットパラメータ有効
@ -86,9 +87,9 @@ typedef struct SYSM_work {
#ifdef DEBUG_USED_CARD_SLOT_B_ #ifdef DEBUG_USED_CARD_SLOT_B_
vu32 isValidCardBanner :1; vu32 isValidCardBanner :1;
vu32 is1stCardChecked :1; vu32 is1stCardChecked :1;
vu32 rsv :18; vu32 rsv :17;
#else #else
vu32 rsv :20; vu32 rsv :19;
#endif #endif
u16 cardHeaderCrc16; // カード検出時に算出したROMヘッダCRC16ARM9側でコピーして使用する側 u16 cardHeaderCrc16; // カード検出時に算出したROMヘッダCRC16ARM9側でコピーして使用する側