メニュー周りを再構成。

LCFGから取得する項目を何点か追加。

git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlIPL/trunk@1945 b08762b0-b915-fc4b-9d8c-17b2551a87ff
This commit is contained in:
aoki_ryoma 2008-07-18 07:41:21 +00:00
parent 2b493cc966
commit 0c707ec625
8 changed files with 243 additions and 216 deletions

View File

@ -1,93 +1,32 @@
#/*---------------------------------------------------------------------------*
# Project: TwlIPL - tests - DisplaySystemInformation
# File: makefile
#
# Copyright **** Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Date:: $
# $Rev$
# $Author$
# *---------------------------------------------------------------------------*/
TARGET_FIRM = SYSTEMMENU
TARGET_PLATFORM = TWL
TWL_ARCHGEN = LIMITED
# •ªŠò<C5A0>ðŒ<C3B0>
DEFAULT_COMP_ARM7 = armadillo
ROM_SPEC = main_$(DEFAULT_COMP_ARM7).rsf
DISP_INFO = $(call eupath,$(TWL_IPL_RED_ROOT)/build/tests/DisplaySystemInformation)
SUBDIRS =
MISC_DIR = ../../../systemMenu_RED/misc
SRCS = main.c viewSystemInfo.c drawFunc.c control.c\
strResource.c misc.c \
$(MISC_DIR)/src/cmn.c
LINCLUDES += $(MISC_DIR)/include \
$(DISP_INFO)/common/include
SYSMENU_LIBS = \
liblcfg$(TWL_LIBSUFFIX).a \
libsysmenu$(TWL_LIBSUFFIX).a \
libsysmmcu$(TWL_LIBSUFFIX).a \
libsysmutil$(TWL_LIBSUFFIX).a \
libboot$(TWL_LIBSUFFIX).a \
libds$(TWL_LIBSUFFIX).a \
libhotsw$(TWL_LIBSUFFIX).a \
libdht$(TWL_LIBSUFFIX).a \
libreloc_info$(TWL_LIBSUFFIX).a \
libnamut$(TWL_LIBSUFFIX).a \
libsharedfont_launcher$(TWL_LIBSUFFIX).a \
WDS$(TWL_LIBSUFFIX).a
SDK_APPEND_LIBS = \
libes$(TWL_LIBSUFFIX).a \
libboc$(TWL_LIBSUFFIX).a \
libsfs$(TWL_LIBSUFFIX).a \
libnam$(TWL_LIBSUFFIX).a \
libsea$(TWL_LIBSUFFIX).a \
libreboot$(TWL_LIBSUFFIX).a \
LLIBRARIES += $(SYSMENU_LIBS) $(SDK_APPEND_LIBS)
TARGET_BIN = DisplaySystemInfo.srl
include $(TWL_IPL_RED_ROOT)/build/buildtools/commondefs
MAKEROM = $(TWL_TOOLSDIR)/bin/makerom.TWL.secure.exe
DEFAULT_MAKEROM_ARM7_BASE = ../ARM7_$(DEFAULT_COMP_ARM7)/bin/$(TWL_BUILDTYPE_ARM7)/$(DEFAULT_COMP_ARM7)
DEFAULT_MAKEROM_ARM7 = $(DEFAULT_MAKEROM_ARM7_BASE).$(TWL_ELF_EXT)
MACRO_FLAGS += -DCOMP_ARMADILLO=TRUE
ifeq ($(DEFAULTCOMP_ARM7), armadillo)
MACRO_FLAGS += -DCOMP_ARMADILLO
endif
#! make -f
#----------------------------------------------------------------------------
do-build: $(TARGETS)
# Project: TwlSDK - demos - simpleShoot-1
# File: Makefile
#
# Copyright 2007 Nintendo. All rights reserved.
#
# These coded instructions, statements, and computer programs contain
# proprietary information of Nintendo of America Inc. and/or Nintendo
# Company Ltd., and are protected by Federal copyright law. They may
# not be disclosed to third parties or copied or duplicated in any form,
# in whole or in part, without the prior written consent of Nintendo.
#
# $Date:: $
# $Rev$
# $Author$
#----------------------------------------------------------------------------
SUBDIRS =
SUBMAKES = Makefile.racoon_SCFG Makefile.racoon_noSCFG Makefile.armadillo
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/commondefs
#----------------------------------------------------------------------------
do-build : $(TARGETS)
include $(TWL_IPL_RED_ROOT)/build/buildtools/modulerules
#include $(TWLSDK_ROOT)/build/buildtools/modulerules
#include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/modulerules
include $(TWL_IPL_RED_ROOT)/build/tests/RelocateChecker/buildtools/modulerules
#----------------------------------------------------------------------------
#===== End of Makefile =====

View File

@ -210,6 +210,7 @@ BOOL control( int *menu, int *line, int *changeLine, int *changeMode )
case MENU_ROOT :
case MENU_OWNER:
case MENU_PARENTAL:
case MENU_OTHER:
case MENU_NORMAL_HW:
case MENU_SECURE_HW:
case MENU_SCFG_ARM7:

View File

@ -177,15 +177,23 @@ void printKindName( int menu, int entryLine, int drawOffset, int selected )
void printValue( int menu,int entryLine, int drawOffset, DispInfoEntry *entry )
{
int txtColor = TXT_COLOR_BLACK;
if( entry->fromLCFG )
{
// LCFG経由で取得したデータは青にする
txtColor = TXT_COLOR_BLUE;
}
// 特殊描画を行う必要がある場合の処理
if( menu == MENU_OWNER && entryLine == OWNER_COLOR )
{
PrintfSJIS( VALUE_LEFT , VALUE_UP + LINE_OFFSET*drawOffset, TXT_UCOLOR_G0 + entry->iValue , "" );
printData( VALUE_LEFT + LINE_OFFSET , VALUE_UP + LINE_OFFSET*drawOffset, TXT_COLOR_BLACK, entry );
printData( VALUE_LEFT + LINE_OFFSET , VALUE_UP + LINE_OFFSET*drawOffset, txtColor, entry );
return;
}
if( menu == MENU_SECURE_HW && entryLine == SECURE_HW_UNIQUE_ID )
if( menu == MENU_NORMAL_HW && entryLine == NORMAL_HW_UNIQUE_ID )
{
printUniqueID( drawOffset, entry->str.sjis );
entry->numLines = 4;
@ -194,22 +202,20 @@ void printValue( int menu,int entryLine, int drawOffset, DispInfoEntry *entry )
if( menu == MENU_PARENTAL && entryLine == PARENTAL_PASSWORD )
{
PrintfSJIS( VALUE_LEFT, VALUE_UP + LINE_OFFSET*drawOffset, TXT_COLOR_BLACK, "%04d", entry->iValue );
PrintfSJIS( VALUE_LEFT, VALUE_UP + LINE_OFFSET*drawOffset, txtColor, "%04d", entry->iValue );
return;
}
// 通常の値の描画
if( entry->isAligned )
{
printData( VALUE_LEFT, VALUE_UP + LINE_OFFSET*drawOffset, TXT_COLOR_BLACK, entry );
printData( VALUE_LEFT, VALUE_UP + LINE_OFFSET*drawOffset, txtColor, entry );
}
else
{
// 項目名が長くて字下げが必要な場合
printData( VALUE_LEFT, VALUE_UP + LINE_OFFSET* ( drawOffset + 1 ), TXT_COLOR_BLACK, entry );
printData( VALUE_LEFT, VALUE_UP + LINE_OFFSET* ( drawOffset + 1 ), txtColor, entry );
}
}
@ -495,15 +501,14 @@ void drawMenu( int menu, int line, int changeLine, BOOL isChangeMode )
if( menu == MENU_VERSION )
{
drawVersion( gDrawIdx[menu], line );
return;
}
for( i = gDrawIdx[menu] ; i < s_numMenu[menu] && lineNum < DISP_NUM_LINES ; i++ )
{
{
// 項目名の描画
printKindName( menu, i, lineNum, line );
// 値の描画
if( menu == MENU_SCFG_ARM7 && !gSelectedARM7SCFGReg )
{

View File

@ -11,8 +11,8 @@
in whole or in part, without the prior written consent of Nintendo.
$Date:: $
$Rev:$
$Author:$
$Rev$
$Author$
*---------------------------------------------------------------------------*/

View File

@ -18,20 +18,11 @@
#include "drawFunc.h"
const int s_pageOffset[ROOTMENU_SIZE][MAXPAGE] = {
{ 0, OWNERMENU_SIZE }, // owner
{ 0, 7, PARENTALMENU_SIZE }, // parental
{ 0, NORMAL_HW_MENU_SIZE }, // normal hw
{ 0, SECURE_HW_MENU_SIZE }, // secure hw
{ 0, SCFG_ARM7_MENU_SIZE }, // scfg arm7
{ 0, SCFG_ARM9_MENU_SIZE }, // scfg arm9
{ 0, VERSIONMENU_SIZE } // fuse
};
// VERSION_MENU_SIZEだけコンテンツ数に応じて可変なのでconstではない
int s_numMenu[] = {
OWNERMENU_SIZE,
PARENTALMENU_SIZE,
OTHERMENU_SIZE,
NORMAL_HW_MENU_SIZE,
SECURE_HW_MENU_SIZE,
SCFG_ARM7_MENU_SIZE,
@ -39,7 +30,6 @@ int s_numMenu[] = {
VERSIONMENU_SIZE,
0,
0,
0,
ROOTMENU_SIZE
};
@ -67,16 +57,16 @@ const char *s_strSCFGViewMode[] = {
};
const char *s_strRootMenu[] = {
"< Owner >",
"< Parental control >",
"< Normal Hardware Info >",
"< Secure Hardware Info >",
"< SCFG Info (ARM7 side) >",
"< SCFG Info (ARM9 side) >",
"< Content Version >",
"<EFBFBD>ƒOwner<EFBFBD>",
"<EFBFBD>ƒParental control<6F>",
"<EFBFBD>ƒOther Info<66>",
"<EFBFBD>ƒNormal Hardware Info<66>",
"<EFBFBD>ƒSecure Hardware Info<66>",
"<EFBFBD>ƒSCFG Info (ARM7 side)<29>",
"<EFBFBD>ƒSCFG Info (ARM9 side)<29>",
"<EFBFBD>ƒContent Version<6F>",
"Reset HW Setting to Default",
"break HW Setting",
"Reset"
"break HW Setting"
};
const char *s_strOwnerMenu[] = {
@ -103,23 +93,32 @@ const char *s_strParentalMenu[] = {
"Answer"
};
const char *s_strNormalHWMenu[] = {
"Wireless",
"RTC Offset",
const char *s_strOtherMenu[] = {
"Agree EULA",
"Eula Version"
"EULA Version",
"Wireless",
"Finished Initial Setting",
"Finished Initial Setting(Launcher)",
"Broken Setting Flag",
"Installed Softbox Count",
"Free Softbox Count",
"Last Boot Soft Index",
"Last Boot Soft Platform",
"Last Boot Soft ID"
};
const char *s_strNormalHWMenu[] = {
"RTC Offset",
"Unique ID"
};
const char *s_strSecureHWMenu[] = {
"Force Disable Wireless",
"Region",
"Unique ID",
"Serial No",
"Language Bitmap",
"Fuse Data",
"Finished Initial Setting",
"Finished Initial Setting(Launcher)",
"Broken Setting Flag"
"Launcher TitleID Lo"
};
const char *s_strSCFGArm9Menu[] = {
@ -225,6 +224,7 @@ const char *s_strVersionMenu[] = {
const char **s_strMetaMenu[] = {
s_strOwnerMenu,
s_strParentalMenu,
s_strOtherMenu,
s_strNormalHWMenu,
s_strSecureHWMenu,
s_strSCFGArm7Menu,

View File

@ -18,20 +18,19 @@
#ifndef __DISPLAY_INFO_RESOURCE__
#define __DISPLAY_INFO_RESOURCE__
// ƒ<>ƒjƒ…<C692>[ID
#define MENU_ROOT 10
#define MENU_ROOT 11
#define MENU_OWNER 0
#define MENU_PARENTAL 1
#define MENU_NORMAL_HW 2
#define MENU_SECURE_HW 3
#define MENU_SCFG_ARM7 4
#define MENU_SCFG_ARM9 5
#define MENU_VERSION 6
#define MENU_RESET_INFO 7
#define MENU_BREAK_DATA 8
#define MENU_RESET 9
#define MENU_OTHER 2
#define MENU_NORMAL_HW 3
#define MENU_SECURE_HW 4
#define MENU_SCFG_ARM7 5
#define MENU_SCFG_ARM9 6
#define MENU_VERSION 7
#define MENU_RESET_INFO 8
#define MENU_BREAK_DATA 9
#define MENU_RESET 10
// <20>s”Ô<E2809D>
#define OWNER_LANGUAGE 0
@ -54,20 +53,27 @@
#define PARENTAL_QUESTION_ID 10
#define PARENTAL_ANSWER 11
#define NORMAL_HW_WIRELESS 0
#define NORMAL_HW_RTC_OFFSET 1
#define NORMAL_HW_AGREE_EULA 2
#define NORMAL_HW_EULA_VERSION 3
#define OTHER_AGREE_EULA 0
#define OTHER_EULA_VERSION 1
#define OTHER_WIRELESS 2
#define OTHER_INITIAL_SETTINGS 3
#define OTHER_INITIAL_LAUNCHER 4
#define OTHER_BROKEN_SETTINGS 5
#define OTHER_LCFG_INSTALLED_SOFTBOX 6
#define OTHER_LCFG_FREE_SOFTBOX 7
#define OTHER_LCFG_LASTBOOT_IDX 8
#define OTHER_LCFG_LASTBOOT_PLATFORM 9
#define OTHER_LCFG_LASTBOOT_ID 10
#define NORMAL_HW_RTC_OFFSET 0
#define NORMAL_HW_UNIQUE_ID 1
#define SECURE_HW_FORCE_DISABLE 0
#define SECURE_HW_REGION 1
#define SECURE_HW_UNIQUE_ID 2
#define SECURE_HW_SERIAL 3
#define SECURE_HW_LANGUAGE 4
#define SECURE_HW_FUSE 5
#define SECURE_HW_INITIAL_SETTINGS 6
#define SECURE_HW_INITIAL_LAUNCHER 7
#define SECURE_HW_BROKEN_SETTINGS 8
#define SECURE_HW_SERIAL 2
#define SECURE_HW_LANGUAGE 3
#define SECURE_HW_FUSE 4
#define SECURE_HW_TITLEID_LO 5
#define SCFG_ARM9_ROM_SEC 0
#define SCFG_ARM9_ROM_STATE 1
@ -153,8 +159,9 @@
#define ROOTMENU_SIZE 10
#define OWNERMENU_SIZE 6
#define PARENTALMENU_SIZE 12
#define NORMAL_HW_MENU_SIZE 4
#define SECURE_HW_MENU_SIZE 9
#define OTHERMENU_SIZE 11
#define NORMAL_HW_MENU_SIZE 2
#define SECURE_HW_MENU_SIZE 6
#define SCFG_ARM7_MENU_SIZE 47
#define SCFG_ARM9_MENU_SIZE 24
#define VERSIONMENU_SIZE 3

View File

@ -35,6 +35,7 @@ void infoAlloc( DispInfoEntry *p, u8 index, u8 size, BOOL isSjis );
void printAllInfo ( void );
void getOwnerInfo( void );
void getParentalInfo( void );
void getOtherInfo();
void getNormalHWInfo( void );
void getSecureHWInfo( void );
void getSCFGARM9Info( void );
@ -59,6 +60,8 @@ u16 *gContentsVersion; // gContentsTitle
u8 gArm7SCFGReg[DISPINFO_SHARED_SCFG_REG_SIZE];
u8 gArm7SCFGShared[DISPINFO_SHARED_SCFG_WRAM_SIZE];
// LCFGデータを読み込むためのバッファ
u8 *bufLCFG;
/* static data ---------------------------------- */
@ -94,6 +97,7 @@ void displayInfoMain( void )
if( ccResult == CHANGE_VALUE_CHANGED )
{
// 値が更新されたときは全部取得しなおす
LCFG_WriteTWLSettings( (u8 (*) [LCFG_WRITE_TEMP] ) bufLCFG );
getAllInfo();
}
@ -119,10 +123,12 @@ void initInfo( void )
infoAlloc( gAllInfo[MENU_OWNER], OWNER_BIRTHDAY, DISPINFO_BUFSIZE , TRUE );
infoAlloc( gAllInfo[MENU_SECURE_HW], SECURE_HW_UNIQUE_ID, OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN*3 , TRUE );
infoAlloc( gAllInfo[MENU_OTHER], OTHER_LCFG_LASTBOOT_ID, DISPINFO_BUFSIZE , TRUE );
infoAlloc( gAllInfo[MENU_NORMAL_HW], NORMAL_HW_UNIQUE_ID, OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN*3 , TRUE );
infoAlloc( gAllInfo[MENU_SECURE_HW], SECURE_HW_SERIAL , OS_TWL_HWINFO_SERIALNO_LEN_MAX + 1, TRUE );
infoAlloc( gAllInfo[MENU_SECURE_HW], SECURE_HW_LANGUAGE, DISPINFO_BUFSIZE , TRUE );
infoAlloc( gAllInfo[MENU_SECURE_HW], SECURE_HW_FUSE, DISPINFO_BUFSIZE , TRUE );
infoAlloc( gAllInfo[MENU_SECURE_HW], SECURE_HW_TITLEID_LO, DISPINFO_BUFSIZE, TRUE );
infoAlloc( gAllInfo[MENU_SCFG_ARM7], SCFG_ARM7_MI_CC, DISPINFO_BUFSIZE , TRUE );
infoAlloc( gAllInfo[MENU_SCFG_ARM7], SCFG_ARM7_MI_CA, DISPINFO_BUFSIZE , TRUE );
@ -133,7 +139,6 @@ void initInfo( void )
OS_TPrintf( "information alloc succeeded\n" );
}
void infoAlloc( DispInfoEntry *p, u8 index, u8 size, BOOL isSjis )
// initInfoの作業用関数。isSjis=trueだとcharを、falseならu16を割り当てる
@ -164,6 +169,7 @@ void getAllInfo( void )
getOwnerInfo();
getParentalInfo();
getOtherInfo();
getNormalHWInfo();
getSecureHWInfo();
getSCFGARM7InfoReg();
@ -216,9 +222,14 @@ void displayInfoInit( void )
gAllInfo[loop1][loop2].isAligned = TRUE;
gAllInfo[loop1][loop2].str.sjis = s_strNA;
gAllInfo[loop1][loop2].changable = FALSE;
gAllInfo[loop1][loop2].fromLCFG = FALSE;
}
}
bufLCFG = (u8*) Alloc ( LCFG_READ_TEMP );
SDK_ASSERT( bufLCFG );
LCFG_ReadTWLSettings( (u8 (*)[ LCFG_READ_TEMP ]) bufLCFG );
GXS_SetVisiblePlane( GX_PLANEMASK_BG0 );
GX_DispOn();
GXS_DispOn();
@ -325,23 +336,120 @@ void getParentalInfo( void )
gAllInfo[MENU_PARENTAL][PARENTAL_ANSWER].isSjis = FALSE;
}
void getOtherInfo( void )
{
int value;
value = OS_IsAgreeEULA();
gAllInfo[MENU_OTHER][OTHER_AGREE_EULA].iValue = value;
gAllInfo[MENU_OTHER][OTHER_AGREE_EULA].str.sjis = s_strBool[value];
gAllInfo[MENU_OTHER][OTHER_EULA_VERSION].iValue = OS_GetAgreedEULAVersion();
gAllInfo[MENU_OTHER][OTHER_EULA_VERSION].isNumData = TRUE;
value = OS_IsAvailableWireless();
gAllInfo[MENU_OTHER][OTHER_WIRELESS].iValue = value;
gAllInfo[MENU_OTHER][OTHER_WIRELESS].str.sjis = s_strEnable[value];
value = LCFG_TSD_IsFinishedInitialSetting();
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].iValue = value;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].str.sjis = s_strBool[ value ];
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].changable = TRUE;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].changeFunc.cBool = LCFG_TSD_SetFlagFinishedInitialSetting;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].argType = ARG_BOOL;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].kindNameList = s_strBool;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].numKindName = 2;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_INITIAL_SETTINGS].fromLCFG = TRUE;
value = LCFG_TSD_IsFinishedInitialSetting_Launcher();
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].iValue = value;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].str.sjis = s_strBool[ value ];
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].changable = TRUE;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].changeFunc.cBool = LCFG_TSD_SetFlagFinishedInitialSetting_Launcher;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].argType = ARG_BOOL;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].kindNameList = s_strBool;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].numKindName = 2;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_INITIAL_LAUNCHER].fromLCFG = TRUE;
value = LCFG_TSD_IsFinishedBrokenTWLSettings();
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].iValue = value;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].str.sjis = s_strBool[ value ];
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].changable = TRUE;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].changeFunc.cBool = LCFG_TSD_SetFlagFinishedBrokenTWLSettings;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].argType = ARG_BOOL;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].kindNameList = s_strBool;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].numKindName = 2;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_BROKEN_SETTINGS].fromLCFG = TRUE;
value = LCFG_TSD_GetInstalledSoftBoxCount();
gAllInfo[MENU_OTHER][OTHER_LCFG_INSTALLED_SOFTBOX].iValue = value;
gAllInfo[MENU_OTHER][OTHER_LCFG_INSTALLED_SOFTBOX].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_LCFG_INSTALLED_SOFTBOX].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_LCFG_INSTALLED_SOFTBOX].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_LCFG_INSTALLED_SOFTBOX].fromLCFG = TRUE;
value = LCFG_TSD_GetFreeSoftBoxCount();
gAllInfo[MENU_OTHER][OTHER_LCFG_FREE_SOFTBOX].iValue = value;
gAllInfo[MENU_OTHER][OTHER_LCFG_FREE_SOFTBOX].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_LCFG_FREE_SOFTBOX].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_LCFG_FREE_SOFTBOX].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_LCFG_FREE_SOFTBOX].fromLCFG = TRUE;
value = LCFG_TSD_GetLastTimeBootSoftIndex();
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_IDX].iValue = value;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_IDX].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_IDX].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_IDX].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_IDX].fromLCFG = TRUE;
value = LCFG_TSD_GetLastTimeBootSoftPlatform();
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_PLATFORM].iValue = value;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_PLATFORM].isNumData = TRUE;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_PLATFORM].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_PLATFORM].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_PLATFORM].fromLCFG = TRUE;
{
u64 buf = LCFG_TSD_GetLastTimeBootSoftTitleID();
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_ID].isAligned = FALSE;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_ID].numLines = 2;
gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_ID].fromLCFG = TRUE;
snprintf( gAllInfo[MENU_OTHER][OTHER_LCFG_LASTBOOT_ID].str.sjis, DISPINFO_BUFSIZE, "%016llx", buf );
}
}
void getNormalHWInfo( void )
{
int value;
value = OS_IsAvailableWireless();
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_WIRELESS].iValue = value;
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_WIRELESS].str.sjis = s_strEnable[value];
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_OFFSET].iValue = (int) OS_GetOwnerRtcOffset();
value = (int) OS_GetOwnerRtcOffset();
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_OFFSET].iValue = (int) value;
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_RTC_OFFSET].isNumData = TRUE;
value = OS_IsAgreeEULA();
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_AGREE_EULA].iValue = value;
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_AGREE_EULA].str.sjis = s_strBool[value];
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_EULA_VERSION].iValue = OS_GetAgreedEULAVersion();
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_EULA_VERSION].isNumData = TRUE;
{
int i;
char ascii[] = "0123456789abcdef";
const u8 *unq = OS_GetMovableUniqueIDPtr();
// 16進で1バイトずつ詰めていく
// バッファが長さの3倍長なのは、データを"%02x-%02x-%02x..."に置換するため
for(i=0; i < OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN*3; i += 3, unq++ )
{
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_UNIQUE_ID].str.sjis[i] = ascii[(*unq>>4) & 0x0f];
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_UNIQUE_ID].str.sjis[i+1] = ascii[*unq & 0x0f];
gAllInfo[MENU_NORMAL_HW][NORMAL_HW_UNIQUE_ID].str.sjis[i+2] =
(i+2) == (OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN*3 - 1) ? (char)'\0' : (char)'-' ;
OS_TPrintf("uniqid: %d\n", *unq);
}
}
}
void getSecureHWInfo( void )
@ -357,24 +465,7 @@ void getSecureHWInfo( void )
value = OS_GetRegion();
gAllInfo[MENU_SECURE_HW][SECURE_HW_REGION].iValue = value;
gAllInfo[MENU_SECURE_HW][SECURE_HW_REGION].str.sjis = s_strRegion[ value ];
{
int i;
char ascii[] = "0123456789abcdef";
const u8 *unq = OS_GetMovableUniqueIDPtr();
// 16進で1バイトずつ詰めていく
// バッファが長さの3倍長なのは、データを"%02x-%02x-%02x..."に置換するため
for(i=0; i < OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN*3; i += 3, unq++ )
{
gAllInfo[MENU_SECURE_HW][SECURE_HW_UNIQUE_ID].str.sjis[i] = ascii[(*unq>>4) & 0x0f];
gAllInfo[MENU_SECURE_HW][SECURE_HW_UNIQUE_ID].str.sjis[i+1] = ascii[*unq & 0x0f];
gAllInfo[MENU_SECURE_HW][SECURE_HW_UNIQUE_ID].str.sjis[i+2] =
(i+2) == (OS_TWL_HWINFO_MOVABLE_UNIQUE_ID_LEN*3 - 1) ? (char)'\0' : (char)'-' ;
OS_TPrintf("uniqid: %d\n", *unq);
}
}
{
u8 serialBuf[OS_TWL_HWINFO_SERIALNO_LEN_MAX];
OS_GetSerialNo( serialBuf );
@ -398,38 +489,21 @@ void getSecureHWInfo( void )
}
value = LCFG_TSD_IsFinishedInitialSetting();
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].iValue = value;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].str.sjis = s_strBool[ value ];
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].changable = TRUE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].changeFunc.cBool = LCFG_TSD_SetFlagFinishedInitialSetting;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].argType = ARG_BOOL;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].kindNameList = s_strBool;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].numKindName = 2;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].isAligned = FALSE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_SETTINGS].numLines = 2;
value = LCFG_TSD_IsFinishedInitialSetting_Launcher();
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].iValue = value;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].str.sjis = s_strBool[ value ];
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].changable = TRUE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].changeFunc.cBool = LCFG_TSD_SetFlagFinishedInitialSetting_Launcher;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].argType = ARG_BOOL;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].kindNameList = s_strBool;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].numKindName = 2;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].isAligned = FALSE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_INITIAL_LAUNCHER].numLines = 2;
value = LCFG_TSD_IsFinishedBrokenTWLSettings();
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].iValue = value;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].str.sjis = s_strBool[ value ];
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].changable = TRUE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].changeFunc.cBool = LCFG_TSD_SetFlagFinishedBrokenTWLSettings;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].argType = ARG_BOOL;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].kindNameList = s_strBool;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].numKindName = 2;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].isAligned = FALSE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_BROKEN_SETTINGS].numLines = 2;
// ランチャのタイトルIDLoの取得
if( LCFG_ReadHWSecureInfo() )
{
const u8 *titleIDLo = LCFG_THW_GetLauncherTitleID_LoPtr();
value = ( int )( titleIDLo[0] << 8*3 |
titleIDLo[1] << 8*2 |
titleIDLo[2] << 8*1 |
titleIDLo[3] << 8*0 );
gAllInfo[MENU_SECURE_HW][SECURE_HW_TITLEID_LO].iValue = value;
gAllInfo[MENU_SECURE_HW][SECURE_HW_TITLEID_LO].isNumData = TRUE;;
gAllInfo[MENU_SECURE_HW][SECURE_HW_TITLEID_LO].isAligned = FALSE;
gAllInfo[MENU_SECURE_HW][SECURE_HW_TITLEID_LO].numLines = 2;
gAllInfo[MENU_SECURE_HW][SECURE_HW_TITLEID_LO].fromLCFG = TRUE;
}
}

View File

@ -11,8 +11,8 @@
in whole or in part, without the prior written consent of Nintendo.
$Date:: $
$Rev:$
$Author:$
$Rev$
$Author$
*---------------------------------------------------------------------------*/
#ifndef __LOAD_VIEW_INFO__
@ -39,6 +39,7 @@ typedef struct DispInfoEntry
BOOL isNumData; // 表示するときは数値データか文字列データか
BOOL isSjis; // UTF16で描画するデータだけFALSE isNumData=TRUEなら未定義
BOOL isAligned; // 一列に表示できるならTRUE、字下げが必要ならFALSE
BOOL fromLCFG; // LCFGから取得したデータは色つけて表示
int numLines; // 項目名、項目内容を表示するのに必要な行数
const char *kind; // 項目名