From f1c7436d2b977b93a4f1e54cd20cf8d327269048 Mon Sep 17 00:00:00 2001 From: yosiokat Date: Mon, 4 Aug 2008 13:14:08 +0000 Subject: [PATCH] =?UTF-8?q?=E3=82=A2=E3=83=97=E3=83=AA=E3=82=92=E3=83=96?= =?UTF-8?q?=E3=83=BC=E3=83=88=E3=81=99=E3=82=8B=E9=9A=9B=E3=81=AEdataPub,?= =?UTF-8?q?=20dataPrv=E3=81=AE=E3=83=9E=E3=82=A6=E3=83=B3=E3=83=88?= =?UTF-8?q?=E6=83=85=E5=A0=B1=E3=82=92=E4=BD=9C=E6=88=90=E3=81=99=E3=82=8B?= =?UTF-8?q?=E9=9A=9B=E3=81=AB=E3=80=81=20=E3=83=A9=E3=83=B3=E3=83=81?= =?UTF-8?q?=E3=83=A3=E3=83=BC=E8=87=AA=E8=BA=AB=E3=81=AEROM=E3=83=98?= =?UTF-8?q?=E3=83=83=E3=83=80=E3=82=92=E5=8F=82=E7=85=A7=E3=81=97=E3=81=A6?= =?UTF-8?q?=E3=82=BB=E3=83=BC=E3=83=96=E3=83=87=E3=83=BC=E3=82=BF=E6=9C=89?= =?UTF-8?q?=E7=84=A1=E3=82=92=E5=88=A4=E5=AE=9A=E3=81=97=E3=81=A6=E3=81=84?= =?UTF-8?q?=E3=81=9F=20=E4=B8=8D=E5=85=B7=E5=90=88=E3=82=92=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E3=80=82?= 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@2092 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../sysmenu/common/src/mountInfo.c | 74 ++++--------------- 1 file changed, 13 insertions(+), 61 deletions(-) diff --git a/build/libraries_sysmenu/sysmenu/common/src/mountInfo.c b/build/libraries_sysmenu/sysmenu/common/src/mountInfo.c index b2b3637b..01aea2fe 100644 --- a/build/libraries_sysmenu/sysmenu/common/src/mountInfo.c +++ b/build/libraries_sysmenu/sysmenu/common/src/mountInfo.c @@ -47,8 +47,7 @@ // function's prototype-------------------------------------------------------- static void SYSMi_SetBootSRLPath( LauncherBootType bootType, NAMTitleId titleID ); static void SYSMi_SetMountInfoCore( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pSrc, OSMountInfo *pDst ); -static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ); -static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ); +static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt, ROM_Header_Short *pROMH ); static void SYSMi_ModifyShared2FileMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ); // global variable------------------------------------------------------------- @@ -93,9 +92,11 @@ void SYSMi_SetLauncherMountInfo( void ) // セーブデータ有無によるマウント情報の編集 // ※このタイミングではFSは動かせないので、FSを使わない特別版で対応。 - SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND, + SYSMi_ModifySaveDataMount( LAUNCHER_BOOTTYPE_NAND, titleID, - &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ] ); + &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ], + ( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF + ); #ifdef USE_SHARED2_FILE_OLD_FORMAT // 2008.06.20 shared2仕様変更に伴い、無効にする // Shared2のアプリ間共有ファイルセット(LAUNCHERで使うかどうかは微妙) @@ -179,15 +180,11 @@ void SYSMi_SetBootAppMountInfo( TitleProperty *pBootTitle ) // セーブデータ有無によるマウント情報の編集 // ※ARM7ではNAMは動かせないので、NAMを使わないバージョンで対応。 - SYSMi_ModifySaveDataMountForLauncher( LAUNCHER_BOOTTYPE_NAND, + SYSMi_ModifySaveDataMount( LAUNCHER_BOOTTYPE_NAND, pBootTitle->titleID, - &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ] ); -/* - // セーブデータ有無によるマウント情報の編集 - SYSMi_ModifySaveDataMount( (LauncherBootType)pBootTitle->flags.bootType, - pBootTitle->titleID, - &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ] ); -*/ + &mountListBuffer[ PRV_SAVE_DATA_MOUNT_INDEX ], + ( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF + ); #if 0 // 2008.06.20 shared2仕様変更に伴い、無効にする @@ -293,52 +290,9 @@ static void SYSMi_ModifyShared2FileMount( LauncherBootType bootType, NAMTitleId } #endif -// タイトルIDをもとにセーブデータ有無を判定して、マウント情報を編集する。 -static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ) -{ - int i; - - // ※カードからブートされた場合でも、titleIDが"NANDアプリ"の場合は、セーブデータをマウントするようにしている。 - - // セーブデータ有無を判定して、パスをセット - if( ( ( bootType == LAUNCHER_BOOTTYPE_NAND ) && // NANDアプリがNANDからブートされた時 - ( titleID & TITLEID_MEDIA_NAND_FLAG ) ) || - ( ( bootType == LAUNCHER_BOOTTYPE_ROM ) && // ISデバッガ上で、NANDアプリがROM からブートされた時 - ( titleID & TITLEID_MEDIA_NAND_FLAG ) && - SYSM_IsRunOnDebugger() ) - ) { - char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ]; - u32 saveDataSize[ 2 ]; - saveDataSize[ 0 ] = (( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF)->private_save_data_size; - saveDataSize[ 1 ] = (( ROM_Header_Short *)SYSM_APP_ROM_HEADER_BUF)->public_save_data_size; - - // セーブデータのファイルパスを取得 - NAM_GetTitleSaveFilePath( saveFilePath[ 1 ], saveFilePath[ 0 ], titleID ); - - // "ROMヘッダのNANDセーブファイルサイズ > 0" かつ そのファイルを開ける場合のみマウント情報を登録 - for( i = 0; i < 2; i++ ) { - FSFile file[1]; - FS_InitFile( file ); - if( saveDataSize[ i ] && - FS_OpenFileEx( file, saveFilePath[ i ], FS_FILEMODE_R) ) { - FS_CloseFile( file ); - STD_CopyLStringZeroFill( pMountTgt->path, saveFilePath[ i ], OS_MOUNT_PATH_LEN ); - }else { - pMountTgt->drive[ 0 ] = 0; - } - pMountTgt++; - } - }else { - // タイトルID指定なしのカードアプリの場合は、セーブデータ無効 - for( i = 0; i < 2; i++ ) { - pMountTgt->drive[ 0 ] = 0; - } - } -} - // タイトルIDをもとにセーブデータ有無を判定して、マウント情報を編集する。 -static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt ) +static void SYSMi_ModifySaveDataMount( LauncherBootType bootType, NAMTitleId titleID, OSMountInfo *pMountTgt, ROM_Header_Short *pROMH ) { int i; @@ -353,8 +307,8 @@ static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAM ) { char saveFilePath[ 2 ][ FS_ENTRY_LONGNAME_MAX ]; u32 saveDataSize[ 2 ]; - saveDataSize[ 0 ] = (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->private_save_data_size; - saveDataSize[ 1 ] = (( ROM_Header_Short *)HW_TWL_ROM_HEADER_BUF)->public_save_data_size; + saveDataSize[ 0 ] = pROMH->private_save_data_size; + saveDataSize[ 1 ] = pROMH->public_save_data_size; // セーブデータのファイルパスを取得 STD_TSNPrintf( saveFilePath[ 0 ], FS_ENTRY_LONGNAME_MAX, @@ -362,9 +316,7 @@ static void SYSMi_ModifySaveDataMountForLauncher( LauncherBootType bootType, NAM STD_TSNPrintf( saveFilePath[ 1 ], FS_ENTRY_LONGNAME_MAX, "nand:/title/%08x/%08x/data/public.sav", (u32)( titleID >> 32 ), titleID ); - //[TODO:]実際にファイルを開いてみて、開けるかどうかチェック - - // "ROMヘッダのNANDセーブファイルサイズ > 0" かつ そのファイルを開ける場合のみマウント情報を登録 + // "ROMヘッダのNANDセーブファイルサイズ > 0" の場合のみマウント情報を登録 for( i = 0; i < 2; i++ ) { if( saveDataSize[ i ] ) { STD_CopyLStringZeroFill( pMountTgt->path, saveFilePath[ i ], OS_MOUNT_PATH_LEN );