mirror of
https://github.com/rvtr/TwlToolsRED.git
synced 2025-10-31 06:41:18 -04:00
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/TwlToolsRED@23 7061adef-622a-194b-ae81-725974e89856
This commit is contained in:
parent
82b6e48205
commit
74963c2299
89
build/tools/sctools/common/src/menu_version.c
Normal file
89
build/tools/sctools/common/src/menu_version.c
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
#include <twl.h>
|
||||||
|
#include "menu_version.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define TWL_SYSMENU_VER_STR_LEN 28 // システムメニューバージョン文字列MAX bytes
|
||||||
|
#define FS_VERSION_FILE "verdata:/version.bin"
|
||||||
|
#define FS_TIMESTAMP_FILE "verdata:/time_stamp.bin"
|
||||||
|
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
typedef struct SystemMenuVersion {
|
||||||
|
u16 major;
|
||||||
|
u16 minor;
|
||||||
|
u16 str[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||||
|
} SystemMenuVersion;
|
||||||
|
|
||||||
|
SystemMenuVersion s_version;
|
||||||
|
u32 s_timestamp;
|
||||||
|
char str_ver[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||||
|
int len = sizeof(str_ver);
|
||||||
|
// STD_MemSet((void *)s_version, 0, sizeof(TWL_SYSMENU_VER_STR_LEN);
|
||||||
|
STD_MemSet((void *)str_ver, 0, TWL_SYSMENU_VER_STR_LEN);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef struct SystemMenuVersion {
|
||||||
|
u16 major;
|
||||||
|
u16 minor;
|
||||||
|
u16 str[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||||
|
} SystemMenuVersion;
|
||||||
|
|
||||||
|
BOOL Read_SystemMenuVersion(u16 *major, u16 *minor, u32 *ts)
|
||||||
|
{
|
||||||
|
|
||||||
|
FSFile file;
|
||||||
|
BOOL retval = TRUE;
|
||||||
|
SystemMenuVersion s_version;
|
||||||
|
u32 s_timestamp;
|
||||||
|
char str_ver[ TWL_SYSMENU_VER_STR_LEN / sizeof(u16) ];
|
||||||
|
int file_len;
|
||||||
|
int len = sizeof(str_ver);
|
||||||
|
|
||||||
|
if( major == NULL || minor == NULL || ts == NULL ) {
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
// STD_MemSet((void *)s_version, 0, sizeof(TWL_SYSMENU_VER_STR_LEN);
|
||||||
|
STD_MemSet((void *)str_ver, 0, TWL_SYSMENU_VER_STR_LEN);
|
||||||
|
|
||||||
|
FS_InitFile(&file);
|
||||||
|
|
||||||
|
if (!FS_OpenFileEx(&file, FS_VERSION_FILE, FS_FILEMODE_R)) {
|
||||||
|
retval = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
file_len = FS_ReadFile(&file, &s_version, (s32)sizeof(s_version));
|
||||||
|
if (file_len < 0) {
|
||||||
|
retval = FALSE;
|
||||||
|
*major = 0;
|
||||||
|
*minor = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*major = s_version.major;
|
||||||
|
*minor = s_version.minor;
|
||||||
|
}
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
|
||||||
|
|
||||||
|
if( STD_ConvertStringUnicodeToSjis( str_ver, &len, s_version.str, NULL, NULL ) != STD_RESULT_SUCCESS ) {
|
||||||
|
retval = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (!FS_OpenFileEx(&file, FS_TIMESTAMP_FILE, FS_FILEMODE_R)) {
|
||||||
|
retval = FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
file_len = FS_ReadFile(&file, &s_timestamp, (s32)sizeof(s_timestamp));
|
||||||
|
if (file_len < 0) {
|
||||||
|
retval = FALSE;
|
||||||
|
*ts = 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
*ts = s_timestamp;
|
||||||
|
}
|
||||||
|
|
||||||
|
FS_CloseFile(&file);
|
||||||
|
|
||||||
|
return retval;
|
||||||
|
}
|
||||||
|
|
||||||
14
build/tools/sctools/common/src/menu_version.h
Normal file
14
build/tools/sctools/common/src/menu_version.h
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#ifndef _MENU_VERSION_H_
|
||||||
|
#define _MENU_VERSION_H_
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
BOOL Read_SystemMenuVersion(u16 *major, u16 *minor, u32 *ts);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
} /* extern "C" */
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif /* _MENU_VERSION_H_ */
|
||||||
@ -1322,8 +1322,27 @@ BOOL SDCardValidation(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* 過去にショップに接続したかどうか */
|
|
||||||
BOOL CheckShopRecord(FSFile *log_fd)
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
過去にショップに接続したかどうか
|
||||||
|
リージョンコードは以下のファイルで定義
|
||||||
|
c:/twlsdk/include/twl/os/common/ownerInfoEx.h
|
||||||
|
typedef enum OSTWLRegionCode
|
||||||
|
{
|
||||||
|
OS_TWL_REGION_JAPAN = 0,
|
||||||
|
OS_TWL_REGION_AMERICA = 1,
|
||||||
|
OS_TWL_REGION_EUROPE = 2,
|
||||||
|
OS_TWL_REGION_AUSTRALIA = 3,
|
||||||
|
OS_TWL_REGION_CHINA = 4,
|
||||||
|
OS_TWL_REGION_KOREA = 5,
|
||||||
|
OS_TWL_REGION_MAX
|
||||||
|
} OSTWLRegion;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
BOOL CheckShopRecord(u8 region, FSFile *log_fd)
|
||||||
{
|
{
|
||||||
#pragma unused(log_fd)
|
#pragma unused(log_fd)
|
||||||
|
|
||||||
@ -1338,6 +1357,7 @@ BOOL CheckShopRecord(FSFile *log_fd)
|
|||||||
if( ! bSuccess ) {
|
if( ! bSuccess ) {
|
||||||
if( FS_RESULT_NO_ENTRY == FS_GetArchiveResultCode(path) ) {
|
if( FS_RESULT_NO_ENTRY == FS_GetArchiveResultCode(path) ) {
|
||||||
}
|
}
|
||||||
|
/* キーペアファイルがない */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
(void)FS_CloseFile(&f);
|
(void)FS_CloseFile(&f);
|
||||||
@ -1353,19 +1373,58 @@ BOOL CheckShopRecord(FSFile *log_fd)
|
|||||||
(void)FS_CloseFile(&f);
|
(void)FS_CloseFile(&f);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// STD_StrCpy(path, "nand:/title/00030015/484e4641/data/ec.cfg"); /* ショップアカウント情報 */
|
// STD_StrCpy(path, "nand:/title/00030015/484e464a/data/ec.cfg"); /* ショップアカウント情報 */
|
||||||
STD_StrCpy(path, "nand:/title/00030015/484e464a/data/ec.cfg"); /* ショップアカウント情報 */
|
/* 海外だと変わってくる・・ */
|
||||||
|
/* リージョンコードと合わせる-> リージョンコードは変えられないから。 */
|
||||||
|
/*
|
||||||
|
J(0x4a) - Japan
|
||||||
|
E(0x45) - America
|
||||||
|
P(0x50) - Europe
|
||||||
|
U(0x41) - Australia
|
||||||
|
C(0x43) - China
|
||||||
|
K(0x4b) - Korea
|
||||||
|
*/
|
||||||
|
|
||||||
|
// STD_StrCpy(path, "nand:/title/00030015/484e4641/data/ec.cfg");
|
||||||
|
switch( region ) {
|
||||||
|
case OS_TWL_REGION_JAPAN:
|
||||||
|
/* J(0x4a) - Japan */
|
||||||
|
STD_StrCpy(path, "nand:/title/00030015/484e464a/data/ec.cfg");
|
||||||
|
break;
|
||||||
|
case OS_TWL_REGION_AMERICA:
|
||||||
|
/* E(0x45) - America */
|
||||||
|
STD_StrCpy(path, "nand:/title/00030015/484e4645/data/ec.cfg");
|
||||||
|
break;
|
||||||
|
case OS_TWL_REGION_EUROPE:
|
||||||
|
/* P(0x50) - Europe */
|
||||||
|
STD_StrCpy(path, "nand:/title/00030015/484e4650/data/ec.cfg");
|
||||||
|
break;
|
||||||
|
case OS_TWL_REGION_AUSTRALIA:
|
||||||
|
/* U(0x41) - Australia */
|
||||||
|
STD_StrCpy(path, "nand:/title/00030015/484e4641/data/ec.cfg");
|
||||||
|
break;
|
||||||
|
case OS_TWL_REGION_CHINA:
|
||||||
|
/* C(0x43) - China */
|
||||||
|
STD_StrCpy(path, "nand:/title/00030015/484e4643/data/ec.cfg");
|
||||||
|
break;
|
||||||
|
case OS_TWL_REGION_KOREA:
|
||||||
|
/* K(0x4b) - Korea */
|
||||||
|
STD_StrCpy(path, "nand:/title/00030015/484e464b/data/ec.cfg");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
bSuccess = FS_OpenFileEx(&f, path, (FS_FILEMODE_R));
|
bSuccess = FS_OpenFileEx(&f, path, (FS_FILEMODE_R));
|
||||||
if( ! bSuccess ) {
|
if( ! bSuccess ) {
|
||||||
if( FS_RESULT_NO_ENTRY == FS_GetArchiveResultCode(path) ) {
|
if( FS_RESULT_NO_ENTRY == FS_GetArchiveResultCode(path) ) {
|
||||||
}
|
}
|
||||||
|
/* ショップアカウント情報ファイルがない */
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
(void)FS_CloseFile(&f);
|
(void)FS_CloseFile(&f);
|
||||||
|
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int get_title_id(MY_DIR_ENTRY_LIST **headp, const char *path_src, int *save_parent_dir_info_flag, char *log_file_name, int level )
|
int get_title_id(MY_DIR_ENTRY_LIST **headp, const char *path_src, int *save_parent_dir_info_flag, char *log_file_name, int level )
|
||||||
@ -1914,44 +1973,40 @@ int copy_r( MY_DIR_ENTRY_LIST **headp, const char *path_dst, const char *path_sr
|
|||||||
void write_debug_data(void)
|
void write_debug_data(void)
|
||||||
{
|
{
|
||||||
// CopyFile( dst <= src );
|
// CopyFile( dst <= src );
|
||||||
CopyFile("nand:/tmp/m00.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m00.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m01.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m01.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m02.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m02.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m03.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m03.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m04.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m04.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m05.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m05.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m06.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m06.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m07.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m07.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m08.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m08.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m09.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m09.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m10.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m10.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m11.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m11.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m12.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m12.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m13.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m13.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m14.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m14.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m15.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m15.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m16.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m16.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m17.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m17.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m18.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m18.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m19.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m19.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m20.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m20.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m22.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m22.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m23.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m23.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m24.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m24.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m25.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m25.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m26.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m26.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m27.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m27.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m28.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m28.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m29.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m29.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m30.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m30.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m31.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m31.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m32.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m32.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m33.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m33.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/tmp/m34.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
CopyFile("sdmc:/m34.sav" , "nand:/sys/log/sysmenu.log", NULL);
|
||||||
CopyFile("nand:/sys/miya.log", "sdmc:/miya.log", NULL);
|
|
||||||
CopyFile("nand:/shared1/miya.log", "sdmc:/miya.log", NULL);
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
PrintDirEntryListBackword-----Start
|
PrintDirEntryListBackword-----Start
|
||||||
|
|||||||
@ -35,7 +35,7 @@ BOOL RestoreDirEntryList( char *path, char *log_file_name);
|
|||||||
BOOL ClearDirEntryList( MY_DIR_ENTRY_LIST **headp );
|
BOOL ClearDirEntryList( MY_DIR_ENTRY_LIST **headp );
|
||||||
void write_debug_data(void);
|
void write_debug_data(void);
|
||||||
BOOL SDCardValidation(void);
|
BOOL SDCardValidation(void);
|
||||||
BOOL CheckShopRecord(FSFile *log_fd);
|
BOOL CheckShopRecord(u8 region, FSFile *log_fd);
|
||||||
BOOL MydataSave(const char *path, void *pData, int size, FSFile *log_fd);
|
BOOL MydataSave(const char *path, void *pData, int size, FSFile *log_fd);
|
||||||
BOOL MydataLoad(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
BOOL MydataLoad(const char *path, void *pBuffer, int size, FSFile *log_fd);
|
||||||
void GetDirEntryList( MY_DIR_ENTRY_LIST *head, u64 **pBuffer, int *size);
|
void GetDirEntryList( MY_DIR_ENTRY_LIST *head, u64 **pBuffer, int *size);
|
||||||
|
|||||||
@ -1,503 +0,0 @@
|
|||||||
#include <twl.h>
|
|
||||||
#include <twl/sea.h>
|
|
||||||
#include <twl/na.h>
|
|
||||||
// #include <TwlWiFi/nuc.h>
|
|
||||||
|
|
||||||
#include "netconnect.h"
|
|
||||||
#include "sitedefs.h"
|
|
||||||
#include "nuc.h"
|
|
||||||
#include "nuc_error_msg.h"
|
|
||||||
|
|
||||||
// Network Updateのフェーズを表す
|
|
||||||
typedef enum{
|
|
||||||
|
|
||||||
PHASE_INIT, // 初期状態
|
|
||||||
PHASE_READY, // 開始
|
|
||||||
PHASE_CONNECTING_NETWORK, // ネットワーク接続中
|
|
||||||
PHASE_TEST_READY, // 接続テスト開始
|
|
||||||
PHASE_TEST_PROCESS, // 接続テスト中
|
|
||||||
PHASE_TEST_GETTING_WII_ID, // Wii ID取得処理
|
|
||||||
PHASE_TEST_FINISHED, // 接続テスト完了
|
|
||||||
PHASE_TEST_CLEANUP, // 接続テスト後処理
|
|
||||||
PHASE_NUP_BREAK, // <キー入力待ち>アップデート前確認待ち
|
|
||||||
PHASE_NUP_READY, // ネットワークアップデート開始
|
|
||||||
PHASE_NUP_CHECK, // ネットワークアップデート更新情報取得中
|
|
||||||
PHASE_NUP_DOWNLOAD, // ネットワークアップデート ダウンロード開始
|
|
||||||
PHASE_NUP_PROCESS, // ネットワークアップデート中
|
|
||||||
PHASE_NUP_FINISHED, // ネットワークアップデート完了
|
|
||||||
PHASE_NUP_CLEANUP, // ネットワークアップデート後処理
|
|
||||||
PHASE_NUP_SKIPPED, // ネットワークアップデートがスキップされた
|
|
||||||
PHASE_CLEANING_UP, // 後処理
|
|
||||||
PHASE_FINISHED, // 完了
|
|
||||||
PHASE_ERROR_OCCURRED // エラー発生
|
|
||||||
} NucPhaseState;
|
|
||||||
|
|
||||||
|
|
||||||
// ネットワーク接続状態
|
|
||||||
typedef enum{
|
|
||||||
NET_CONNECT_NONE,
|
|
||||||
NET_CONNECT_OK,
|
|
||||||
NET_CONNECT_ERROR
|
|
||||||
} NetConnectState;
|
|
||||||
|
|
||||||
static volatile NetConnectState NetConnect = NET_CONNECT_NONE;
|
|
||||||
|
|
||||||
// state管理
|
|
||||||
static struct
|
|
||||||
{
|
|
||||||
NucPhaseState state;
|
|
||||||
u32 count;
|
|
||||||
} TestState;
|
|
||||||
|
|
||||||
static inline void ChangeState(NucPhaseState state)
|
|
||||||
{
|
|
||||||
TestState.state = state;
|
|
||||||
TestState.count = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// titleID 取得用
|
|
||||||
static NUCTitleId TitleIds[NUC_MAX_TITLE_UPDATE_COUNT];
|
|
||||||
static u32 TitleIdNum;
|
|
||||||
|
|
||||||
static u8 WorkForNA[NA_VERSION_DATA_WORK_SIZE];
|
|
||||||
|
|
||||||
static BOOL AllocFailTest = FALSE;
|
|
||||||
|
|
||||||
static void *alloc(u32 size, int align)
|
|
||||||
{
|
|
||||||
u32 *ptr = NULL, *realPtr = NULL;
|
|
||||||
u32 realSize;
|
|
||||||
OSIntrMode old;
|
|
||||||
|
|
||||||
old = OS_DisableInterrupts();
|
|
||||||
|
|
||||||
/* realSize is size plus alignment and header */
|
|
||||||
if (align < 4)
|
|
||||||
{
|
|
||||||
align = 4;
|
|
||||||
}
|
|
||||||
realSize = size + align + 4;
|
|
||||||
|
|
||||||
realPtr = (u32 *) OS_Alloc(realSize);
|
|
||||||
ptr = (u32 *)((((u32) realPtr) + 4 + align - 1) & ~(align - 1));
|
|
||||||
|
|
||||||
*((u32 *)(((u32)ptr) - 4)) = (u32) realPtr;
|
|
||||||
(void)OS_RestoreInterrupts( old );
|
|
||||||
|
|
||||||
end:
|
|
||||||
SDK_ASSERT(((u32)ptr & (align - 1)) == 0);
|
|
||||||
return (void *) ptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void free(void *p)
|
|
||||||
{
|
|
||||||
u32 realPtr = *((u32 *)(((u32)p) - 4));
|
|
||||||
OS_Free((void *) realPtr);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: InitNupLib
|
|
||||||
Description: NUCライブラリを開始します。
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static BOOL InitNupLib()
|
|
||||||
{
|
|
||||||
BOOL ret;
|
|
||||||
|
|
||||||
ret = NUC_Init(alloc, free);
|
|
||||||
|
|
||||||
if (ret == FALSE) {
|
|
||||||
OS_TPrintf("NUC_Init() failed, error code=%d\n", NUC_GetLastError());
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: StartNupCheck
|
|
||||||
Description: ダウンロードリスト一覧の取得を開始します。
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static BOOL StartNupCheck(void)
|
|
||||||
{
|
|
||||||
BOOL ret;
|
|
||||||
TitleIdNum = sizeof(TitleIds) / sizeof(TitleIds[0]);
|
|
||||||
|
|
||||||
ret = NUC_CheckAsync(TitleIds, &TitleIdNum);
|
|
||||||
if (ret == FALSE)
|
|
||||||
{
|
|
||||||
OS_TPrintf("NUC_CheckAsync() failed, error code=%d\n", NUC_GetLastError());
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: ProgressNupCheck
|
|
||||||
Description: ダウンロードリスト一覧の取得状況を確認します
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static NucStatus ProgressNupCheck(void)
|
|
||||||
{
|
|
||||||
u64 CurrentSize, TotalSize;
|
|
||||||
NucStatus status;
|
|
||||||
|
|
||||||
NUC_GetProgress(&CurrentSize, &TotalSize, &status);
|
|
||||||
if (status == NUC_STATUS_ERROR)
|
|
||||||
{
|
|
||||||
OS_TPrintf("NUC_GetProgress() failed in checking, error code=%d\n", NUC_GetLastError());
|
|
||||||
}
|
|
||||||
#if 0
|
|
||||||
if (TestState.count++ % STRING_ANIM_CNT == 0)
|
|
||||||
{
|
|
||||||
u32 num = (TestState.count / STRING_ANIM_CNT) % 3;
|
|
||||||
const char* msg[] = {
|
|
||||||
"Now checking list. ",
|
|
||||||
"Now checking list.. ",
|
|
||||||
"Now checking list... "};
|
|
||||||
|
|
||||||
PrintString(TEXT_X, TEXT_Y, COLOR_WHITE, msg[num]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: StartNupDownload
|
|
||||||
Description: ダウンロードを開始します。
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static BOOL StartNupDownload(void)
|
|
||||||
{
|
|
||||||
/* こいつが呼ばれたらFSが切り離されてしまうのでリブートが必要 */
|
|
||||||
BOOL ret = NUC_DownloadAsync(TitleIds, TitleIdNum);
|
|
||||||
|
|
||||||
if (ret == FALSE)
|
|
||||||
{
|
|
||||||
OS_TPrintf("NUP_DownloadAsync() failed, error code=%d\n", NUC_GetLastError());
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: ProgressNupDownload
|
|
||||||
Description: ダウンロードの進行状況を表示します。
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static NucStatus ProgressNupDownload(void)
|
|
||||||
{
|
|
||||||
u64 CurrentSize, TotalSize;
|
|
||||||
NucStatus status;
|
|
||||||
|
|
||||||
NUC_GetProgress(&CurrentSize, &TotalSize, &status);
|
|
||||||
if (status == NUC_STATUS_ERROR)
|
|
||||||
{ // エラー発生
|
|
||||||
OS_TPrintf("NUC_GetProgress() failed in download, error code=%d\n", NUC_GetLastError());
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
#if 0
|
|
||||||
// ダウンロード状況を描画
|
|
||||||
int dw = (int)((CurrentSize * BAR_W)/TotalSize);
|
|
||||||
FillRect(BAR_X, BAR_Y, dw, BAR_H, GX_RGBA(31, 16, 16, 1));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (TestState.count++ % STRING_ANIM_CNT == 0)
|
|
||||||
{
|
|
||||||
u32 num = (TestState.count / STRING_ANIM_CNT) % 3;
|
|
||||||
const char* msg[] = {
|
|
||||||
"Now downloading. ",
|
|
||||||
"Now downloading.. ",
|
|
||||||
"Now downloading... "};
|
|
||||||
PrintString(TEXT_X, TEXT_Y, COLOR_WHITE, msg[num]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return status;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: CleanNupLib
|
|
||||||
Description: NUCライブラリを終了します。
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static BOOL CleanNupLib()
|
|
||||||
{
|
|
||||||
BOOL ret = NUC_Cleanup(TitleIds, TitleIdNum);
|
|
||||||
if (ret == FALSE)
|
|
||||||
{
|
|
||||||
OS_TPrintf("NUP_CleanUp() failed, error code=%d\n", NUC_GetLastError());
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*
|
|
||||||
Name: ProgressNetConnect
|
|
||||||
Description: ネットワーク接続を待ちます。
|
|
||||||
*---------------------------------------------------------------------------*/
|
|
||||||
static void ProgressNetConnect(void)
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
if (TestState.count++ % STRING_ANIM_CNT == 0)
|
|
||||||
{
|
|
||||||
u32 num = (TestState.count / STRING_ANIM_CNT) % 3;
|
|
||||||
const char* msg[] = {
|
|
||||||
"Connecting network. ",
|
|
||||||
"Connecting network.. ",
|
|
||||||
"Connecting network..."};
|
|
||||||
PrintString(TEXT_X, TEXT_Y, COLOR_WHITE, msg[num]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void ShowErrorMsg(int error_code)
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
PrintString(TEXT_X, TEXT_Y, COLOR_WHITE, "Error Occurred ");
|
|
||||||
#endif
|
|
||||||
if (error_code > 0)
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
PrintString(TEXT_X, TEXT_Y + 10, COLOR_WHITE, "Error Code:%d", error_code);
|
|
||||||
PrintString(TEXT_X, TEXT_Y + 12, COLOR_WHITE, "%s", GetPublicMsg(error_code));
|
|
||||||
PrintString(TEXT_X, TEXT_Y + 15, COLOR_WHITE, "%s", GetPrivateMsg(error_code));
|
|
||||||
#endif
|
|
||||||
OS_TPrintf( "Error Code:%d\n", error_code);
|
|
||||||
OS_TPrintf( "%s\n", GetPublicMsg(error_code));
|
|
||||||
OS_TPrintf( "%s\n", GetPrivateMsg(error_code));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OS_TPrintf( "%s\n", "Network Error occurred.\nTry again later.");
|
|
||||||
#if 0
|
|
||||||
// ネットワークエラー時の表示メッセージ(暫定)
|
|
||||||
PrintString(TEXT_X, TEXT_Y + 10, COLOR_WHITE, "%s", "Network Error occurred.\nTry again later.");
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// ネットワーク接続関連
|
|
||||||
#define STACK_SIZE (1024*4)
|
|
||||||
static OSThread NetThread;
|
|
||||||
static u64 NetStack[STACK_SIZE / sizeof(u64)];
|
|
||||||
#define THREAD1_PRIO 24
|
|
||||||
static volatile BOOL NetHTTPEnd = FALSE;
|
|
||||||
|
|
||||||
|
|
||||||
static void NetConnectProc(void *arg)
|
|
||||||
{
|
|
||||||
#pragma unused(arg)
|
|
||||||
BOOL ret;
|
|
||||||
NucStatus status;
|
|
||||||
int error_code = 0;
|
|
||||||
|
|
||||||
|
|
||||||
/* Start networking */
|
|
||||||
NcStart(SITEDEFS_DEFAULTCLASS);
|
|
||||||
|
|
||||||
NetConnect = NET_CONNECT_OK;
|
|
||||||
//OS_TPrintf("%s %d\n",__FUNCTION__,__LINE__);
|
|
||||||
// 終了の呼び出しを待つ
|
|
||||||
// OS_SleepThread(NULL);
|
|
||||||
|
|
||||||
while(1) {
|
|
||||||
OS_Sleep( 16 ); /* OS_WaitVBlankIntrの代わり */
|
|
||||||
|
|
||||||
switch ( TestState.state ) {
|
|
||||||
case PHASE_CONNECTING_NETWORK:
|
|
||||||
ProgressNetConnect();
|
|
||||||
if (NetConnect == NET_CONNECT_OK)
|
|
||||||
{
|
|
||||||
ChangeState(PHASE_NUP_BREAK);
|
|
||||||
}
|
|
||||||
else if (NetConnect == NET_CONNECT_ERROR)
|
|
||||||
{ // ネットワーク接続エラー
|
|
||||||
error_code = -1;
|
|
||||||
ChangeState(PHASE_ERROR_OCCURRED);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case PHASE_NUP_BREAK: // AボタンでNUPライブラリを初期化します。
|
|
||||||
ret = InitNupLib();
|
|
||||||
if (ret == FALSE)
|
|
||||||
{ // エラー発生
|
|
||||||
ChangeState(PHASE_ERROR_OCCURRED);
|
|
||||||
error_code = NUC_GetLastError();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChangeState(PHASE_NUP_READY);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_NUP_READY: // 更新情報の取得を開始します。
|
|
||||||
ret = StartNupCheck();
|
|
||||||
if (ret == FALSE)
|
|
||||||
{ // エラー発生
|
|
||||||
error_code = NUC_GetLastError();
|
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChangeState(PHASE_NUP_CHECK);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_NUP_CHECK: // 更新情報の取得状況を表示します。
|
|
||||||
status = ProgressNupCheck();
|
|
||||||
if (status == NUC_STATUS_ERROR)
|
|
||||||
{ // エラー発生
|
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
|
||||||
error_code = NUC_GetLastError();
|
|
||||||
}
|
|
||||||
else if (status == NUC_STATUS_COMPLETED)
|
|
||||||
{ // 更新リスト 取得終了
|
|
||||||
if (TitleIdNum > 0 )
|
|
||||||
{ // ダウンロードへ
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < TitleIdNum; i++)
|
|
||||||
{
|
|
||||||
OS_TPrintf("DL list:%3d:0x%llx", i, TitleIds[i]);
|
|
||||||
}
|
|
||||||
ChangeState(PHASE_NUP_DOWNLOAD);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ // 更新すべきものがない
|
|
||||||
OS_TPrintf("No title to update\n");
|
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_NUP_DOWNLOAD: // ダウンロードを開始します。
|
|
||||||
ret = StartNupDownload();
|
|
||||||
if (ret == FALSE)
|
|
||||||
{ // エラー発生
|
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
|
||||||
error_code = NUC_GetLastError();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChangeState(PHASE_NUP_PROCESS);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_NUP_PROCESS: // ダウンロードの進行状況を表示します。
|
|
||||||
status = ProgressNupDownload();
|
|
||||||
if (status == NUC_STATUS_ERROR)
|
|
||||||
{ // エラー発生
|
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
|
||||||
error_code = NUC_GetLastError();
|
|
||||||
}
|
|
||||||
else if (status == NUC_STATUS_COMPLETED)
|
|
||||||
{ // ダウンロード完了
|
|
||||||
ChangeState(PHASE_NUP_CLEANUP);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_NUP_CLEANUP: // NUPライブラリのクリーンアップ
|
|
||||||
ret = CleanNupLib();
|
|
||||||
if (ret == FALSE && error_code == 0)
|
|
||||||
{ // 他でエラーが起こっていない場合のみ上書きします。
|
|
||||||
error_code = NUC_GetLastError();
|
|
||||||
}
|
|
||||||
// ネットの切断と後始末
|
|
||||||
OS_WakeupThreadDirect(&NetThread);
|
|
||||||
ChangeState(PHASE_CLEANING_UP);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_CLEANING_UP: // ネットの切断終了を待ちます
|
|
||||||
if (NetConnect == NET_CONNECT_NONE)
|
|
||||||
{ // 切断終了
|
|
||||||
if (error_code == 0)
|
|
||||||
{ // 正常終了
|
|
||||||
ChangeState(PHASE_FINISHED);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ChangeState(PHASE_ERROR_OCCURRED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_FINISHED: // ネットワークアップデートが正常終了しました。
|
|
||||||
OS_TPrintf("Network Update Completed\n");
|
|
||||||
if (TitleIdNum > 0)
|
|
||||||
{
|
|
||||||
OS_TPrintf("%d file is updated\n", TitleIdNum);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
OS_TPrintf("Nothing is updated\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TitleIdNum > 0)
|
|
||||||
{ // 再起動する
|
|
||||||
OS_TPrintf("再起動します\n");
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{ // メッセージを表示して戻る
|
|
||||||
OS_TPrintf("アップデートするものがなかったので戻ります\n");
|
|
||||||
}
|
|
||||||
goto end;
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case PHASE_ERROR_OCCURRED: // エラーが発生しています。
|
|
||||||
|
|
||||||
ShowErrorMsg(error_code);
|
|
||||||
goto end;
|
|
||||||
#if 0
|
|
||||||
if (Trg == PAD_BUTTON_A)
|
|
||||||
{
|
|
||||||
OS_TPrintf("エラーが発生したので戻ります\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
OS_TPrintf("%s %d\n",__FUNCTION__,__LINE__);
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
end:
|
|
||||||
NcFinish();
|
|
||||||
NetConnect = NET_CONNECT_NONE;
|
|
||||||
|
|
||||||
OS_TPrintf("Network Connection ended\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* ********************** */
|
|
||||||
void nuc_main(void)
|
|
||||||
{
|
|
||||||
|
|
||||||
ChangeState(PHASE_INIT);
|
|
||||||
// NcGlobalInit(); in netconnect.c
|
|
||||||
|
|
||||||
/* クライアント証明書の初期化 */
|
|
||||||
SEA_Init();
|
|
||||||
// あらかじめWRAMにロードしておきます
|
|
||||||
if (!NA_LoadVersionDataArchive(WorkForNA, NA_VERSION_DATA_WORK_SIZE)) {
|
|
||||||
OS_TPrintf("NA load error\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!NUC_LoadCert()) {
|
|
||||||
// WRAMにロード
|
|
||||||
OS_TPrintf("Client cert load error\n");
|
|
||||||
goto end;
|
|
||||||
}
|
|
||||||
|
|
||||||
(void)NA_UnloadVersionDataArchive();
|
|
||||||
|
|
||||||
|
|
||||||
/* 接続設定スレッドの作成 */
|
|
||||||
OS_CreateThread(&NetThread, NetConnectProc,
|
|
||||||
NULL, NetStack + STACK_SIZE / sizeof(u64),
|
|
||||||
STACK_SIZE, THREAD1_PRIO);
|
|
||||||
OS_WakeupThreadDirect(&NetThread);
|
|
||||||
ChangeState(PHASE_CONNECTING_NETWORK);
|
|
||||||
|
|
||||||
end:
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
@ -26,7 +26,7 @@ SRCS = main.c mfiler.c key.c font.c text.c mprintf.c logprintf.c \
|
|||||||
gfx.c hwi.c mynvram.c my_fs_util.c \
|
gfx.c hwi.c mynvram.c my_fs_util.c \
|
||||||
hatamotolib.cpp \
|
hatamotolib.cpp \
|
||||||
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
||||||
mynuc.c nuc_error_msg.c stream.c myfilename.c
|
mynuc.c nuc_error_msg.c stream.c myfilename.c menu_version.c
|
||||||
|
|
||||||
TARGET_BIN = copy_dst.srl
|
TARGET_BIN = copy_dst.srl
|
||||||
ROM_SPEC = copy_dst.rsf
|
ROM_SPEC = copy_dst.rsf
|
||||||
|
|||||||
Binary file not shown.
@ -42,6 +42,7 @@
|
|||||||
|
|
||||||
#include "myfilename.h"
|
#include "myfilename.h"
|
||||||
#include "mfiler.h"
|
#include "mfiler.h"
|
||||||
|
#include "menu_version.h"
|
||||||
|
|
||||||
|
|
||||||
//================================================================================
|
//================================================================================
|
||||||
@ -51,6 +52,9 @@ static BOOL sd_card_flag = FALSE;
|
|||||||
|
|
||||||
static u8 WorkForNA[NA_VERSION_DATA_WORK_SIZE];
|
static u8 WorkForNA[NA_VERSION_DATA_WORK_SIZE];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void SDEvents(void *userdata, FSEvent event, void *arg)
|
static void SDEvents(void *userdata, FSEvent event, void *arg)
|
||||||
{
|
{
|
||||||
(void)userdata;
|
(void)userdata;
|
||||||
@ -703,6 +707,20 @@ void TwlMain(void)
|
|||||||
mprintf("NA load error\n");
|
mprintf("NA load error\n");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
|
{
|
||||||
|
u16 s_major, s_minor;
|
||||||
|
u32 s_timestamp;
|
||||||
|
if( TRUE == Read_SystemMenuVersion(&s_major, &s_minor, &s_timestamp) ) {
|
||||||
|
OS_TPrintf( "SystemMenuVersionData\n" );
|
||||||
|
// •¶Žš—ñ
|
||||||
|
// <20>”’l
|
||||||
|
OS_TPrintf( " Version(num) : %d.%d\n", s_major, s_minor );
|
||||||
|
// OS_TPrintf( " Version(str) : %s\n", s_version.str_ver );
|
||||||
|
OS_TPrintf( " Timestamp : %08x\n", s_timestamp );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!NUC_LoadCert()) {
|
if (!NUC_LoadCert()) {
|
||||||
// WRAM‚Ƀ<C389><C692>[ƒh
|
// WRAM‚Ƀ<C389><C692>[ƒh
|
||||||
OS_TPrintf("Client cert load error\n");
|
OS_TPrintf("Client cert load error\n");
|
||||||
|
|||||||
@ -25,7 +25,7 @@ SRCDIR = ../common/src ./src
|
|||||||
SRCS = main.c key.c font.c text.c mprintf.c logprintf.c \
|
SRCS = main.c key.c font.c text.c mprintf.c logprintf.c \
|
||||||
gfx.c hwi.c mynvram.c my_fs_util.c \
|
gfx.c hwi.c mynvram.c my_fs_util.c \
|
||||||
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
sitedefs.c wcm_control.c netconnect.c mywlan.c \
|
||||||
nuc_error_msg.c stream.c myfilename.c
|
stream.c myfilename.c menu_version.c
|
||||||
|
|
||||||
TARGET_BIN = copy_org.srl
|
TARGET_BIN = copy_org.srl
|
||||||
ROM_SPEC = copy_org.rsf
|
ROM_SPEC = copy_org.rsf
|
||||||
|
|||||||
Binary file not shown.
@ -28,7 +28,6 @@
|
|||||||
#include "mynvram.h"
|
#include "mynvram.h"
|
||||||
#include "stream.h"
|
#include "stream.h"
|
||||||
#include "hwi.h"
|
#include "hwi.h"
|
||||||
// #include "hatamotolib.h"
|
|
||||||
#include "ecdl.h"
|
#include "ecdl.h"
|
||||||
#include "mywlan.h"
|
#include "mywlan.h"
|
||||||
#include "mydata.h"
|
#include "mydata.h"
|
||||||
@ -144,7 +143,9 @@ static BOOL SDBackupToSDCard4(void)
|
|||||||
nand:/shared2/*
|
nand:/shared2/*
|
||||||
*/
|
*/
|
||||||
mprintf("App. shared files backup ");
|
mprintf("App. shared files backup ");
|
||||||
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetAppSharedSaveDirName() , "nand:/shared2" , MyFile_GetAppSharedLogFileName(), 0) ) {
|
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetAppSharedSaveDirName() ,
|
||||||
|
"nand:/shared2" , MyFile_GetAppSharedLogFileName(), 0) ) {
|
||||||
|
|
||||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||||
mydata.num_of_shared2_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetAppSharedListFileName() );
|
mydata.num_of_shared2_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetAppSharedListFileName() );
|
||||||
m_set_palette(tc[0], 0x2); /* green */
|
m_set_palette(tc[0], 0x2); /* green */
|
||||||
@ -170,7 +171,9 @@ static BOOL SDBackupToSDCard5(void)
|
|||||||
nand2:/photo/*.*
|
nand2:/photo/*.*
|
||||||
*/
|
*/
|
||||||
mprintf("Photo files backup ");
|
mprintf("Photo files backup ");
|
||||||
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetPhotoSaveDirName() , "nand2:/photo" , MyFile_GetPhotoLogFileName(),0 ) ) {
|
if( 0 == copy_r( &dir_entry_list_head, MyFile_GetPhotoSaveDirName() ,
|
||||||
|
"nand2:/photo" , MyFile_GetPhotoLogFileName(),0 ) ) {
|
||||||
|
|
||||||
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
// PrintDirEntryListBackward( dir_entry_list_head, NULL );
|
||||||
mydata.num_of_photo_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetPhotoListFileName() );
|
mydata.num_of_photo_files = SaveDirEntryList( dir_entry_list_head, MyFile_GetPhotoListFileName() );
|
||||||
m_set_palette(tc[0], 0x2); /* green */
|
m_set_palette(tc[0], 0x2); /* green */
|
||||||
@ -298,7 +301,7 @@ static BOOL SDBackupToSDCard8(void)
|
|||||||
RTCTime rtc_time;
|
RTCTime rtc_time;
|
||||||
|
|
||||||
/* オリジナルのデータのバックアップ */
|
/* オリジナルのデータのバックアップ */
|
||||||
if( TRUE == CheckShopRecord(NULL) ) {
|
if( TRUE == CheckShopRecord( hws_info.region, NULL ) ) {
|
||||||
mydata.shop_record_flag = TRUE;
|
mydata.shop_record_flag = TRUE;
|
||||||
OS_TPrintf("shop record exist - you don't have to connect the network.\n");
|
OS_TPrintf("shop record exist - you don't have to connect the network.\n");
|
||||||
mprintf(" (--shop record exist--)\n");
|
mprintf(" (--shop record exist--)\n");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user