mirror of
https://github.com/rvtr/TwlIPL.git
synced 2025-10-31 06:01:12 -04:00
・ランチャーでシステムメニューバージョンデータにアクセスするために、
SYSMi_makeTitleIdList関数からシステムメニューバージョンデータアクセスのための制御データセット部分を 抜き出した関数SYSM_SetSystemMenuVersionControlData関数を追加する。 ・REDランチャーでRED本体設定からシステムメニューバージョン読み出しのコードを持ってきて、 読み出しを行うようにする。 git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@2144 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
parent
4c67a56ea9
commit
9ade22f088
@ -1796,23 +1796,7 @@ static void SYSMi_makeTitleIdList( void )
|
||||
}
|
||||
|
||||
gamecode = (char *)&(id);
|
||||
// バージョン情報の特殊処理
|
||||
if( ( 0 == STD_CompareNString( &gamecode[1], "LNH", 3 ) ) )
|
||||
{
|
||||
char path[ FS_ENTRY_LONGNAME_MAX ];
|
||||
char *p;
|
||||
NAM_GetTitleBootContentPathFast(path, id);
|
||||
p = STD_SearchString( path, ".app" );
|
||||
if( p == NULL)
|
||||
{
|
||||
// 失敗
|
||||
continue;
|
||||
}
|
||||
MI_CpuCopy8( p-8, (void *)HW_SYSM_VER_INFO_CONTENT_ID, 8 );
|
||||
((char *)HW_SYSM_VER_INFO_CONTENT_ID )[8] = '\0';
|
||||
((char *)HW_SYSM_VER_INFO_CONTENT_ID )[9] = gamecode[0];
|
||||
}
|
||||
|
||||
|
||||
// ランチャーはリストに入れない
|
||||
if( ( 0 == STD_CompareNString( &gamecode[1], "ANH", 3 ) )
|
||||
#ifdef DEV_UIG_LAUNCHER
|
||||
@ -1888,6 +1872,42 @@ static void SYSMi_makeTitleIdList( void )
|
||||
}
|
||||
|
||||
|
||||
// システムメニューバージョン情報制御データのセット
|
||||
void SYSM_SetSystemMenuVersionControlData( void )
|
||||
{
|
||||
int l;
|
||||
int max = AMN_getRomHeaderListLength();
|
||||
|
||||
for(l=0;l<max;l++)
|
||||
{
|
||||
char *gamecode;
|
||||
OSTitleId id;
|
||||
ROM_Header_Short *pe_hs;
|
||||
|
||||
pe_hs = &((AMN_getRomHeaderList())[l]);
|
||||
id = pe_hs->titleID;
|
||||
|
||||
gamecode = (char *)&(id);
|
||||
// バージョン情報の特殊処理
|
||||
if( ( 0 == STD_CompareNString( &gamecode[1], "LNH", 3 ) ) )
|
||||
{
|
||||
char path[ FS_ENTRY_LONGNAME_MAX ];
|
||||
char *p;
|
||||
NAM_GetTitleBootContentPathFast(path, id);
|
||||
p = STD_SearchString( path, ".app" );
|
||||
if( p == NULL)
|
||||
{
|
||||
// 失敗
|
||||
continue;
|
||||
}
|
||||
MI_CpuCopy8( p-8, (void *)HW_SYSM_VER_INFO_CONTENT_ID, 8 );
|
||||
((char *)HW_SYSM_VER_INFO_CONTENT_ID )[8] = '\0';
|
||||
((char *)HW_SYSM_VER_INFO_CONTENT_ID )[9] = gamecode[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 指定タイトルがブート可能なポインタかチェック
|
||||
static BOOL SYSMi_CheckTitlePointer( TitleProperty *pBootTitle )
|
||||
{
|
||||
|
||||
@ -81,13 +81,15 @@ SRCS = main.c launcher.c sound.c loadWlanFirm.c \
|
||||
loadSharedFont.c scanWDS.c \
|
||||
$(addprefix $(LOGO_DIR)/, $(SRCS_LOGO)) \
|
||||
$(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c \
|
||||
$(BG_DIR)/BGData_Launcher.c
|
||||
$(BG_DIR)/BGData_Launcher.c \
|
||||
../../MachineSettings/ARM9/src/getSysMenuVersion.c
|
||||
|
||||
LINCLUDES = $(MISC_DIR)/include \
|
||||
$(SRCDIR)/$(LOGO_DIR) \
|
||||
$(ROOT)/build/libraries/wm/common.TWL/inc \
|
||||
$(ROOT)/build/libraries/wm/ARM9.TWL/nwm/inc \
|
||||
$(ROOT)/build/libraries/reboot/common/include
|
||||
$(ROOT)/build/libraries/reboot/common/include \
|
||||
../../MachineSettings/ARM9/src
|
||||
|
||||
SYSMENU_LIBS = \
|
||||
liblcfg$(TWL_LIBSUFFIX).a \
|
||||
|
||||
@ -29,6 +29,10 @@
|
||||
#include "loadSharedFont.h"
|
||||
#include "scanWDS.h"
|
||||
|
||||
#include <nitro/fs/sysarea.h>
|
||||
#include <twl/na.h>
|
||||
#include "getSysMenuVersion.h"
|
||||
|
||||
// extern data-----------------------------------------------------------------
|
||||
|
||||
// define data-----------------------------------------------------------------
|
||||
@ -51,6 +55,7 @@ void SYSM_DeleteTempDirectory( TitleProperty *pBootTitle );
|
||||
static BOOL IsCommandSelected(void);
|
||||
static void PrintPause(void);
|
||||
static void PrintError(void);
|
||||
static void PrintSystemMenuVersion( void );
|
||||
|
||||
// global variable-------------------------------------------------------------
|
||||
|
||||
@ -467,6 +472,14 @@ MAIN_LOOP_START:
|
||||
LogoMain() &&
|
||||
SYSM_isNandTitleListReady() // NANDタイトル取得完了かどうかチェック
|
||||
) {
|
||||
// ::::::::::::::::::::::::::::::::::::::::::::::
|
||||
// SystemMenuバージョンetc.の読み込み
|
||||
// ::::::::::::::::::::::::::::::::::::::::::::::
|
||||
|
||||
// NANDタイトルリスト取得が完了した時点で、その情報をもとにSystemMenuVersionデータにアクセスするための制御情報をセットする。
|
||||
SYSM_SetSystemMenuVersionControlData();
|
||||
PrintSystemMenuVersion();
|
||||
|
||||
if( !direct_boot ) {
|
||||
sp_titleList = SYSM_GetTitlePropertyList();// TitlePropertyListの取得
|
||||
state = LAUNCHER_INIT;
|
||||
@ -677,6 +690,45 @@ static void PrintError( void )
|
||||
GXS_DispOn();
|
||||
}
|
||||
|
||||
|
||||
// システムメニューバージョンのプリント
|
||||
static void PrintSystemMenuVersion( void )
|
||||
{
|
||||
u8 *pBuffer = SYSM_Alloc( NA_VERSION_DATA_WORK_SIZE );
|
||||
|
||||
if( pBuffer &&
|
||||
ReadSystemMenuVersionData( pBuffer, NA_VERSION_DATA_WORK_SIZE ) ) {
|
||||
// リード成功
|
||||
}else {
|
||||
// FATALエラー
|
||||
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
|
||||
}
|
||||
SYSM_Free( pBuffer );
|
||||
|
||||
// バージョン情報の表示
|
||||
{
|
||||
char str_ver[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||
int len = sizeof(str_ver);
|
||||
MI_CpuClear8( str_ver, sizeof(str_ver) );
|
||||
OS_TPrintf( "SystemMenuVersionData\n" );
|
||||
// 文字列
|
||||
if( STD_ConvertStringUnicodeToSjis( str_ver, &len, GetSystemMenuVersionString(), NULL, NULL ) == STD_RESULT_SUCCESS ) {
|
||||
OS_TPrintf( " Version(str) : %s\n", str_ver );
|
||||
}
|
||||
// 数値
|
||||
OS_TPrintf( " Version(num) : %d.%d\n", GetSystemMenuMajorVersion(), GetSystemMenuMinorVersion() );
|
||||
// ユーザー領域MAXサイズの表示
|
||||
OS_TPrintf( " TotalUserAreadSize : 0x%08x\n", FSi_GetTotalUserAreaSize() );
|
||||
// EULA URLの表示
|
||||
OS_TPrintf( " EULA URL : %s\n", GetEULA_URL() );
|
||||
// NUP HostNameの表示
|
||||
OS_TPrintf( " NUP HostName : %s\n", GetNUP_HostName() );
|
||||
// SystemMenuVersion情報のタイムスタンプの取得
|
||||
OS_TPrintf( " Timestamp : %08x\n", GetSystemMenuVersionTimeStamp() );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ============================================================================
|
||||
// 割り込み処理
|
||||
// ============================================================================
|
||||
|
||||
@ -95,12 +95,16 @@ extern void SYSM_MakeNandTitleListAsync( void ); //
|
||||
extern void SYSM_MakeNandTitleListMakerInfoAsync( void ); // 非同期版アプリ引き渡しタイトルリスト作成用情報の作成
|
||||
extern BOOL SYSM_isNandTitleListReady( void ); // 非同期版が終了したかどうかの判定に使う
|
||||
extern TitleProperty *SYSM_GetTitlePropertyList( void ); // SYSM_MakeNandTitleListAsyncで作成されたアプリリストのポインタを取得
|
||||
extern void SYSM_SetSystemMenuVersionControlData( void ); // SystemMenuVersionデータアクセスのための制御情報のセット
|
||||
|
||||
// アプリ起動
|
||||
extern void SYSM_StartLoadTitle( TitleProperty *pBootTitle ); // 指定したTitlePropertyを別スレッドでロード開始
|
||||
extern BOOL SYSM_IsLoadTitleFinished( void ); // SYSM_StartLoadTitleで起動したスレッドが終了したかどうかを確認
|
||||
extern BOOL SYSM_IsLoadTitlePaused(void); // ローディングスレッドが一時停止しているか?
|
||||
extern void SYSM_ResumeLoadingThread( BOOL force ); // ローディングスレッドが一時停止していたら再開
|
||||
extern void SYSM_StartAuthenticateTitle( TitleProperty *pBootTitle ); // 指定したTitlePropertyを別スレッドで検証開始
|
||||
extern BOOL SYSM_IsAuthenticateTitleFinished( void ); // SYSM_StartAuthenticateTitleで起動したスレッドが終了したかどうかを確認
|
||||
extern s32 SYSMi_getCheckTitleLaunchRightsResult( void ); // CheckTitleLaunchRightsの結果を返す(デバグ用)
|
||||
extern void SYSM_TryToBootTitle( TitleProperty *pBootTitle ); // pBootTitleで指定したタイトルをブート。never return.
|
||||
|
||||
// AES領域デクリプト
|
||||
@ -113,13 +117,7 @@ extern BOOL SYSM_CheckNintendoLogo( u16 *pLogoData ); // Nintendo
|
||||
extern void SYSM_LoadNintendoLogo2D( u16 *pLogoData, u16 *pDst, int paletteColorIndex ); // NintendoロゴデータをOBJ_2D形式でロード(pTempBufferには0x700bytes必要)
|
||||
extern void SYSM_LoadNintendoLogo1D( u16 *pLogoData, u16 *pDst, int paletteColorIndex ); // NintendoロゴデータをOBJ_1D形式でロード(同上)
|
||||
|
||||
extern s32 SYSMi_getCheckTitleLaunchRightsResult( void ); // CheckTitleLaunchRightsの結果を返す(デバグ用)
|
||||
|
||||
extern BOOL SYSM_IsLoadTitlePaused(void); // ローディングスレッドが一時停止しているか?
|
||||
extern void SYSM_ResumeLoadingThread( BOOL force ); // ローディングスレッドが一時停止していたら再開
|
||||
|
||||
extern BOOL SYSM_MakeTitleListMakerInfoFromHeader( TitleListMakerInfo *info, ROM_Header_Short *hs);
|
||||
// アプリ引き渡しタイトルリスト作成用情報をヘッダ情報から作成
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user