システムメニューVer.ファイルからバージョン情報とユーザー領域MAXサイズを取得するよう変更。

FATALエラーにシステムメニューVer.リード失敗を追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1884 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
yosiokat 2008-07-14 12:48:47 +00:00
parent 4c5ec38e77
commit f4b85d7308
4 changed files with 50 additions and 7 deletions

View File

@ -446,7 +446,7 @@ BOOL ErrorLogi_SetString( char *buf, ErrorLogEntry *entry )
STD_TSNPrintf(buf, ERRORLOG_BUFSIZE, ERRORLOG_WRITE_FORMAT, STD_TSNPrintf(buf, ERRORLOG_BUFSIZE, ERRORLOG_WRITE_FORMAT,
entry->year, entry->month, entry->day, entry->week, entry->year, entry->month, entry->day, entry->week,
entry->hour, entry->minute, entry->second, entry->hour, entry->minute, entry->second,
entry->errorCode, s_strError[entry->errorCode] ); entry->errorCode, s_strError[entry->errorCode] ? s_strError[entry->errorCode] : "" );
// 余りをスペースで埋めて、改行で終端する // 余りをスペースで埋めて、改行で終端する
ErrorLogi_fillSpace( buf, ERRORLOG_BUFSIZE ); ErrorLogi_fillSpace( buf, ERRORLOG_BUFSIZE );
@ -548,7 +548,7 @@ static char *s_strWeek[] = {
"SAT" "SAT"
}; };
static char *s_strError[] = { static char *s_strError[ FATAL_ERROR_MAX ] = {
"FATAL_ERROR_UNDEFINED", "FATAL_ERROR_UNDEFINED",
"FATAL_ERROR_NAND", "FATAL_ERROR_NAND",
"FATAL_ERROR_HWINFO_NORMAL", "FATAL_ERROR_HWINFO_NORMAL",
@ -591,6 +591,7 @@ static char *s_strError[] = {
"FATAL_ERROR_LOAD_LOGOCRC_ERROR = 39", "FATAL_ERROR_LOAD_LOGOCRC_ERROR = 39",
"FATAL_ERROR_LOAD_READDLSIGN_FAILED", "FATAL_ERROR_LOAD_READDLSIGN_FAILED",
"FATAL_ERROR_LOAD_RELOCATEINFO_FAILED", "FATAL_ERROR_LOAD_RELOCATEINFO_FAILED",
"FATAL_ERROR_LOAD_READMODULE_FAILED" "FATAL_ERROR_LOAD_READMODULE_FAILED",
"FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED",
"FATAL_ERROR_SYSMENU_VERSION",
}; };

View File

@ -52,7 +52,7 @@ BG_DIR = ../../data
SRCS = main.c MachineSetting.c \ SRCS = main.c MachineSetting.c \
setRTC.c selectLanguage.c calibrationTP.c setOwnerInfo.c selectCountry.c \ setRTC.c selectLanguage.c calibrationTP.c setOwnerInfo.c selectCountry.c \
setParentalControl.c setFreeSoftBox.c setWireless.c cleanupMachine.c \ setParentalControl.c setFreeSoftBox.c setWireless.c cleanupMachine.c \
setEULA.c \ setEULA.c getSysMenuVersion.c \
CountryNameMappingData.c \ CountryNameMappingData.c \
$(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c \ $(MISC_DIR)/src/misc.c $(MISC_DIR)/src/cmn.c \
$(BG_DIR)/BGData_MachineSettings.c $(BG_DIR)/BGData_MachineSettings.c
@ -79,7 +79,8 @@ SDK_APPEND_LIBS = \
libsfs$(TWL_LIBSUFFIX).a \ libsfs$(TWL_LIBSUFFIX).a \
libnam$(TWL_LIBSUFFIX).a \ libnam$(TWL_LIBSUFFIX).a \
libsea$(TWL_LIBSUFFIX).a \ libsea$(TWL_LIBSUFFIX).a \
libsharedfont$(TWL_LIBSUFFIX).a libsharedfont$(TWL_LIBSUFFIX).a \
libna$(TWL_LIBSUFFIX).a
LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS) LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)

View File

@ -18,10 +18,13 @@
#include <twl.h> #include <twl.h>
#include <twl/sea.h> #include <twl/sea.h>
#include <twl/lcfg.h> #include <twl/lcfg.h>
#include <twl/na.h>
#include <nitro/fs/sysarea.h>
#include <sysmenu/namut.h> #include <sysmenu/namut.h>
#include <sysmenu/util.h> #include <sysmenu/util.h>
#include "misc.h" #include "misc.h"
#include "MachineSetting.h" #include "MachineSetting.h"
#include "getSysMenuVersion.h"
// extern data----------------------------------------------------------------- // extern data-----------------------------------------------------------------
@ -110,6 +113,7 @@ void TwlMain(void)
} }
}else { }else {
// リカバリ失敗時は、FALTALエラー // リカバリ失敗時は、FALTALエラー
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
g_isValidTSD = FALSE; g_isValidTSD = FALSE;
} }
Free( pBuffer ); Free( pBuffer );
@ -121,6 +125,42 @@ void TwlMain(void)
UTL_CaribrateTP( LCFG_TSD_GetTPCalibrationPtr() ); UTL_CaribrateTP( LCFG_TSD_GetTPCalibrationPtr() );
// ::::::::::::::::::::::::::::::::::::::::::::::
// SystemMenuバージョンおよびユーザー領域MAXサイズの読み込み
// ::::::::::::::::::::::::::::::::::::::::::::::
{
u8 *pBuffer = Alloc( NA_VERSION_INFO_WORK_SIZE );
if( pBuffer &&
ReadSystemMenuVersion( pBuffer, NA_VERSION_INFO_WORK_SIZE ) ) {
// リード成功
}else {
// FATALエラー
UTL_SetFatalError( FATAL_ERROR_TWLSETTINGS );
}
Free( pBuffer );
}
// バージョン情報の表示
{
u16 major = 65535;
u16 minor = 65535;
char str_ver[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
int len = sizeof(str_ver);
OS_TPrintf( "SystemMenuVersion\n" );
// 文字列
if( STD_ConvertStringUnicodeToSjis( str_ver, &len, GetSystemMenuVersionString(), NULL, NULL ) == STD_RESULT_SUCCESS ) {
OS_TPrintf( "\tstr: %s\n", str_ver );
}
// 数値
(void)GetSystemMenuMajorVersion( &major );
(void)GetSystemMenuMinorVersion( &minor );
OS_TPrintf( "\tnum: %d.%d\n", major, minor );
}
// ユーザー領域MAXサイズの表示
OS_TPrintf( "TotalUserAreadSize : 0x%08x\n", FSi_GetTotalUserAreaSize() );
InitBG(); InitBG();
GetAndDrawRTCData( &g_rtcDraw, TRUE ); GetAndDrawRTCData( &g_rtcDraw, TRUE );
MachineSettingInit(); MachineSettingInit();

View File

@ -73,8 +73,9 @@ typedef enum FatalErrorCode {
FATAL_ERROR_LOAD_RELOCATEINFO_FAILED = 41, FATAL_ERROR_LOAD_RELOCATEINFO_FAILED = 41,
FATAL_ERROR_LOAD_READMODULE_FAILED = 42, FATAL_ERROR_LOAD_READMODULE_FAILED = 42,
FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED = 43, FATAL_ERROR_NINTENDO_LOGO_CHECK_FAILED = 43,
FATAL_ERROR_SYSMENU_VERSION = 44,
FATAL_ERROR_MAX = 44 FATAL_ERROR_MAX = 45
}FatalErrorCode; }FatalErrorCode;