From 08ac99b0d1796bc22e37e7f2856921a6edd8aeea Mon Sep 17 00:00:00 2001 From: aoki_ryoma Date: Tue, 9 Sep 2008 13:55:26 +0000 Subject: [PATCH] =?UTF-8?q?=E7=84=A1=E7=B7=9A=E3=83=95=E3=82=A1=E3=83=BC?= =?UTF-8?q?=E3=83=A0=E6=83=85=E5=A0=B1=E3=81=AB=E9=A0=85=E7=9B=AE=E3=82=92?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=E3=80=82=20=E3=83=AA=E3=83=93=E3=82=B8?= =?UTF-8?q?=E3=83=A7=E3=83=B3=E6=83=85=E5=A0=B1=E3=81=8C=E8=BC=89=E3=81=9B?= =?UTF-8?q?=E3=82=89=E3=82=8C=E3=82=8B=E3=81=8B=E3=81=AE=E3=83=86=E3=82=B9?= =?UTF-8?q?=E3=83=88=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@2461 b08762b0-b915-fc4b-9d8c-17b2551a87ff --- .../ARM9/src/drawFunc.c | 2 +- .../ARM9/src/get_wl.c | 57 +++++++++++++++++-- .../ARM9/src/strResource.c | 5 +- .../ARM9/src/strResource.h | 24 ++------ .../ARM9/src/viewSystemInfo.c | 2 + 5 files changed, 66 insertions(+), 24 deletions(-) diff --git a/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c b/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c index 27b09bb2..7385f9c8 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c @@ -103,7 +103,7 @@ void drawHeader( int menu, int line) { u16 buf[256]; - PrintfSJISSub( HEADER_LEFT, HEADER_UP, TXT_COLOR_RED, "%s %d" , "DisplaySystemInfo", DISPINFO_BIN_IDX ); + PrintfSJISSub( HEADER_LEFT, HEADER_UP, TXT_COLOR_RED, "%s %d $Rev:$" , "DisplaySystemInfo", DISPINFO_BIN_IDX ); if( menu != MENU_ROOT ) diff --git a/build/tests/DisplaySystemInformation/ARM9/src/get_wl.c b/build/tests/DisplaySystemInformation/ARM9/src/get_wl.c index 3115df56..5532d3e8 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/get_wl.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/get_wl.c @@ -14,9 +14,19 @@ #define WL_FW_VERSION_SIZE 0x2 #define WL_NUM_FW_IDX 0x2 #define WL_NUM_FW_SIZE 0x2 +#define WL_FW1_OFFSET_IDX 0x4 #define WL_FW_TYPE_IDX 0xc #define WL_FW_TYPE_SIZE 0x4 +#define WL_FW2_OFFSET_IDX 0xc4 +#define WL_FW2_TYPE_IDX 0xcc + +#define WL_FW_SECTION_OFFSET 0x4 +#define WL_FW_VER_MINUSOFFSET 0x2c + +#define WL_FW_IDX_OFFSET 3 + + void getWLInfo( void ) @@ -32,6 +42,9 @@ void getWLInfo( void ) if( FS_OpenFileEx( &file, filePath, FS_FILEMODE_R ) ) { + int value; + s32 fwOffset, sectionOffset; + /* // バージョン情報の読み取り FS_SeekFile( &file, WL_FW_VERSION_OFFSET, FS_SEEK_SET ); @@ -70,16 +83,50 @@ void getWLInfo( void ) if( res == WL_FW_LOADSIZE ) { int value; - + snprintf( gAllInfo[MENU_WL][WL_VERSION].str.sjis, DISPINFO_BUFSIZE-1, "%d.%d", filebuf[WL_FW_VERSION_HI_IDX], filebuf[WL_FW_VERSION_LO_IDX] ); gAllInfo[MENU_WL][WL_NUM_FW].iValue = (int) MI_LoadLE8( &filebuf[WL_NUM_FW_IDX] ); gAllInfo[MENU_WL][WL_NUM_FW].isNumData = TRUE; + fwOffset = (s32)MI_LoadLE32( &filebuf[WL_FW1_OFFSET_IDX] ); + value = (int) MI_LoadLE32( &filebuf[WL_FW_TYPE_IDX] ); - gAllInfo[MENU_WL][WL_FW_TYPE].iValue = value; - gAllInfo[MENU_WL][WL_FW_TYPE].str.sjis = s_strWLFWType[ value ]; + gAllInfo[MENU_WL][WL_FW1_TYPE].iValue = value; + gAllInfo[MENU_WL][WL_FW1_TYPE].str.sjis = s_strWLFWType[ value ]; + + FS_SeekFile( &file, fwOffset, FS_SEEK_SET ); + FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE ); + sectionOffset = (s32)MI_LoadLE32( &filebuf[WL_FW_SECTION_OFFSET] ); + + FS_SeekFile( &file, fwOffset + sectionOffset - WL_FW_VER_MINUSOFFSET, FS_SEEK_SET ); + FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE ); + snprintf( gAllInfo[MENU_WL][WL_FW1_VER].str.sjis, DISPINFO_BUFSIZE-1, "%08x", + MI_LoadLE32( filebuf ) ); + } + + if( gAllInfo[MENU_WL][WL_NUM_FW].iValue == 2 ) + { + FS_SeekFile( &file, WL_FW2_OFFSET_IDX, FS_SEEK_SET ); + FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE ); + fwOffset = (s32)MI_LoadLE32( filebuf ); + + value = (int) MI_LoadLE32( &filebuf[WL_FW2_TYPE_IDX - WL_FW2_OFFSET_IDX] ); + gAllInfo[MENU_WL][WL_FW2_TYPE].str.sjis = s_strWLFWType[ value ]; + + FS_SeekFile( &file, fwOffset, FS_SEEK_SET ); + FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE ); + sectionOffset = (s32)MI_LoadLE32( &filebuf[WL_FW_SECTION_OFFSET] ); + + FS_SeekFile( &file, fwOffset + sectionOffset - WL_FW_VER_MINUSOFFSET, FS_SEEK_SET ); + FS_ReadFile( &file, filebuf, WL_FW_LOADSIZE ); + snprintf( gAllInfo[MENU_WL][WL_FW2_VER].str.sjis, DISPINFO_BUFSIZE-1, "%08x", + MI_LoadLE32( filebuf ) ); + } + else + { + STD_StrLCpy( gAllInfo[MENU_WL][WL_FW2_VER].str.sjis, s_strNA, DISPINFO_BUFSIZE ); } FS_CloseFile( &file ); @@ -88,6 +135,8 @@ void getWLInfo( void ) { // 読み込めなかったらとりあえずN/Aって入れておく STD_StrLCpy( gAllInfo[MENU_WL][WL_VERSION].str.sjis, s_strNA, DISPINFO_BUFSIZE ); + STD_StrLCpy( gAllInfo[MENU_WL][WL_FW2_VER].str.sjis, s_strNA, DISPINFO_BUFSIZE ); + STD_StrLCpy( gAllInfo[MENU_WL][WL_FW1_VER].str.sjis, s_strNA, DISPINFO_BUFSIZE ); } -} \ No newline at end of file +} diff --git a/build/tests/DisplaySystemInformation/ARM9/src/strResource.c b/build/tests/DisplaySystemInformation/ARM9/src/strResource.c index a6e4663d..0f6a2ce5 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/strResource.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/strResource.c @@ -264,7 +264,10 @@ const char *s_strFontMenu[] = { const char *s_strWLMenu[] = { "Version", "Num of FW", - "FW1 type" + "FW1 type", + "FW1 version", + "FW2 type", + "FW2 version" }; const char *s_strWhiteMenu[] = { diff --git a/build/tests/DisplaySystemInformation/ARM9/src/strResource.h b/build/tests/DisplaySystemInformation/ARM9/src/strResource.h index b620b294..c8a9794f 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/strResource.h +++ b/build/tests/DisplaySystemInformation/ARM9/src/strResource.h @@ -202,16 +202,19 @@ #define SYSMENU_HASH_IDX 5 -#define FONTMENU_SIZE 1 +#define FONTMENU_SIZE 1 #define FONT_TIMESTAMP 0 #define FONT_INFO 1 -#define WLMENU_SIZE 3 +#define WLMENU_SIZE 6 #define WL_VERSION 0 #define WL_NUM_FW 1 -#define WL_FW_TYPE 2 +#define WL_FW1_TYPE 2 +#define WL_FW1_VER 3 +#define WL_FW2_TYPE 4 +#define WL_FW2_VER 5 #define WHITEMENU_SIZE 2 @@ -222,21 +225,6 @@ #define VERSION_OTHER 0 - - - - - - - - - - - - - - - extern int s_numMenu[]; extern const char *s_strRootMenu[]; extern const char *s_strOwnerMenu[]; diff --git a/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c b/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c index 5f027b1f..56a629a6 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c @@ -130,6 +130,8 @@ void initInfo( void ) infoAlloc( gAllInfo[MENU_SCFG_ARM9], SCFG_ARM9_CHECK_ERROR7, DISPINFO_BUFSIZE, TRUE ); infoAlloc( gAllInfo[MENU_SCFG_ARM9], SCFG_ARM9_CHECK_ERROR9, DISPINFO_BUFSIZE, TRUE ); infoAlloc( gAllInfo[MENU_WL], WL_VERSION, DISPINFO_BUFSIZE, TRUE ); + infoAlloc( gAllInfo[MENU_WL], WL_FW1_VER, DISPINFO_BUFSIZE, TRUE ); + infoAlloc( gAllInfo[MENU_WL], WL_FW2_VER, DISPINFO_BUFSIZE, TRUE ); infoAlloc( gAllInfo[MENU_OTHER], OTHER_RTC_OFFSET, DISPINFO_BUFSIZE, TRUE); infoAlloc( gAllInfo[MENU_OTHER], OTHER_TP_RSV, DISPINFO_BUFSIZE, TRUE);