diff --git a/build/tests/DisplaySystemInformation/ARM9/Makefile b/build/tests/DisplaySystemInformation/ARM9/Makefile index acb8aeb4..3019e69c 100644 --- a/build/tests/DisplaySystemInformation/ARM9/Makefile +++ b/build/tests/DisplaySystemInformation/ARM9/Makefile @@ -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 - -# 分岐条件 -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 ===== diff --git a/build/tests/DisplaySystemInformation/ARM9/src/control.c b/build/tests/DisplaySystemInformation/ARM9/src/control.c index fdfc4646..0e52072e 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/control.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/control.c @@ -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: diff --git a/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c b/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c index 5f700616..59721ba9 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/drawFunc.c @@ -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 ) { diff --git a/build/tests/DisplaySystemInformation/ARM9/src/main.c b/build/tests/DisplaySystemInformation/ARM9/src/main.c index 8170e4af..5ee1f97c 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/main.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/main.c @@ -11,8 +11,8 @@ in whole or in part, without the prior written consent of Nintendo. $Date:: $ - $Rev:$ - $Author:$ + $Rev$ + $Author$ *---------------------------------------------------------------------------*/ diff --git a/build/tests/DisplaySystemInformation/ARM9/src/strResource.c b/build/tests/DisplaySystemInformation/ARM9/src/strResource.c index 757eeacb..4617c4aa 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/strResource.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/strResource.c @@ -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 >", + "<Owner>", + "<Parental control>", + "<Other Info>", + "<Normal Hardware Info>", + "<Secure Hardware Info>", + "<SCFG Info (ARM7 side)>", + "<SCFG Info (ARM9 side)>", + "<Content Version>", "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, diff --git a/build/tests/DisplaySystemInformation/ARM9/src/strResource.h b/build/tests/DisplaySystemInformation/ARM9/src/strResource.h index a98dd88d..a8ac594e 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/strResource.h +++ b/build/tests/DisplaySystemInformation/ARM9/src/strResource.h @@ -18,20 +18,19 @@ #ifndef __DISPLAY_INFO_RESOURCE__ #define __DISPLAY_INFO_RESOURCE__ - - // メニュー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 // 行番号 #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 diff --git a/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c b/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c index 438ce703..90b1bff5 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c +++ b/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.c @@ -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; + } } diff --git a/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.h b/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.h index 785a78ff..e04c8045 100644 --- a/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.h +++ b/build/tests/DisplaySystemInformation/ARM9/src/viewSystemInfo.h @@ -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; // 項目名