From 944b201f44adb1575152a79d914c55a77d3b80f5 Mon Sep 17 00:00:00 2001 From: N2614 Date: Wed, 29 Jun 2011 04:13:24 +0000 Subject: [PATCH] =?UTF-8?q?1st=20NUP=E5=AF=BE=E5=BF=9C=E7=89=88=202=20TWL?= =?UTF-8?q?=E9=A0=98=E5=9F=9F=E3=81=AE=E5=88=9D=E6=9C=9F=E5=8C=96=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=20=E3=82=BF=E3=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_Repair@346 385bec56-5757-e545-9c3a-d8741f4650f1 --- .../documents/CTR修理フロー_1stNUP.vsd | Bin 0 -> 222720 bytes .../documents/CTR本体データ移行ツール説明.doc | Bin 0 -> 770048 bytes .../1stNUP_2/documents/Readme.txt | 17 + .../sources/ConsoleBackup/ConsoleBackup.bsf | Bin 0 -> 2302 bytes .../sources/ConsoleBackup/ConsoleBackup.cpp | 301 +++ .../sources/ConsoleBackup/ConsoleBackup.rsf | 54 + .../sources/ConsoleBackup/Controller.cpp | 339 +++ .../sources/ConsoleBackup/Controller.h | 51 + .../sources/ConsoleBackup/Exporter.cpp | 932 +++++++++ .../1stNUP_2/sources/ConsoleBackup/Exporter.h | 57 + .../1stNUP_2/sources/ConsoleBackup/OMakefile | 80 + .../sources/ConsoleBackup/banner/model.cbmd | Bin 0 -> 198785 bytes .../sources/ConsoleBackup/banner/sound.cbsd | Bin 0 -> 198785 bytes .../ConsoleBackup/banner/unknown24x24.ctpk | 1 + .../ConsoleBackup/banner/unknown48x48.ctpk | 1 + .../sources/ConsoleBackup/genversion.sh | 4 + .../sources/ConsoleRestore/ConsoleRestore.bsf | Bin 0 -> 2302 bytes .../sources/ConsoleRestore/ConsoleRestore.cpp | 354 ++++ .../sources/ConsoleRestore/ConsoleRestore.rsf | 54 + .../sources/ConsoleRestore/Controller.cpp | 1644 +++++++++++++++ .../sources/ConsoleRestore/Controller.h | 73 + .../sources/ConsoleRestore/Importer.cpp | 1864 +++++++++++++++++ .../sources/ConsoleRestore/Importer.h | 159 ++ .../sources/ConsoleRestore/NtpClient.cpp | 376 ++++ .../sources/ConsoleRestore/NtpClient.h | 33 + .../1stNUP_2/sources/ConsoleRestore/OMakefile | 85 + .../1stNUP_2/sources/ConsoleRestore/Shop.cpp | 560 +++++ .../1stNUP_2/sources/ConsoleRestore/Shop.h | 68 + .../ConsoleRestore/TitleDownloader.cpp | 261 +++ .../sources/ConsoleRestore/TitleDownloader.h | 65 + .../sources/ConsoleRestore/Updater.cpp | 251 +++ .../1stNUP_2/sources/ConsoleRestore/Updater.h | 41 + .../sources/ConsoleRestore/banner/model.cbmd | Bin 0 -> 198785 bytes .../sources/ConsoleRestore/banner/sound.cbsd | Bin 0 -> 198785 bytes .../ConsoleRestore/banner/unknown24x24.ctpk | 1 + .../ConsoleRestore/banner/unknown48x48.ctpk | 1 + .../sources/ConsoleRestore/genversion.sh | 4 + .../1stNUP_2/sources/OMakefile | 27 + .../1stNUP_2/sources/OMakeroot | 73 + .../1stNUP_2/sources/common/Aes_define.h | 76 + .../1stNUP_2/sources/common/CommonLogger.cpp | 117 ++ .../1stNUP_2/sources/common/CommonLogger.h | 116 + .../sources/common/DrawSystemState.cpp | 187 ++ .../1stNUP_2/sources/common/DrawSystemState.h | 80 + .../1stNUP_2/sources/common/FileChecker.cpp | 153 ++ .../1stNUP_2/sources/common/FileChecker.h | 88 + .../1stNUP_2/sources/common/FileName.h | 102 + .../1stNUP_2/sources/common/FileTransfer.cpp | 883 ++++++++ .../1stNUP_2/sources/common/FileTransfer.h | 62 + .../sources/common/HardwareStateManager.cpp | 81 + .../sources/common/HardwareStateManager.h | 51 + .../1stNUP_2/sources/common/HeapManager.cpp | 38 + .../1stNUP_2/sources/common/HeapManager.h | 40 + .../1stNUP_2/sources/common/LogConsole.cpp | 172 ++ .../1stNUP_2/sources/common/LogConsole.h | 79 + .../sources/common/LogConsole_Private.h | 28 + .../1stNUP_2/sources/common/OMakefile | 18 + .../sources/common/PlayHistoryManager.cpp | 224 ++ .../sources/common/PlayHistoryManager.h | 45 + .../1stNUP_2/sources/common/ProgramId.h | 28 + .../1stNUP_2/sources/common/ResFont.cpp | 417 ++++ .../1stNUP_2/sources/common/ResFont.h | 40 + .../1stNUP_2/sources/common/SdLogger.cpp | 268 +++ .../1stNUP_2/sources/common/SdLogger.h | 67 + .../sources/common/SdMountManager.cpp | 67 + .../1stNUP_2/sources/common/SdMountManager.h | 42 + .../sources/common/SdReaderWriter.cpp | 252 +++ .../1stNUP_2/sources/common/SdReaderWriter.h | 80 + .../1stNUP_2/sources/common/SimplePlayer.cpp | 240 +++ .../1stNUP_2/sources/common/SimplePlayer.h | 44 + .../1stNUP_2/sources/common/Util.cpp | 333 +++ .../1stNUP_2/sources/common/Util.h | 152 ++ .../1stNUP_2/sources/common/VersionDetect.cpp | 120 ++ .../1stNUP_2/sources/common/VersionDetect.h | 31 + .../1stNUP_2/sources/common/common_Types.h | 121 ++ .../1stNUP_2/sources/common/configLoader.cpp | 181 ++ .../1stNUP_2/sources/common/configLoader.h | 78 + .../sources/common/romfiles/annotation.wav | Bin 0 -> 28636 bytes .../sources/common/romfiles/cursor.wav | Bin 0 -> 29996 bytes .../1stNUP_2/sources/common/romfiles/lc.bcfnt | Bin 0 -> 16840 bytes .../1stNUP_2/sources/common/romfiles/ng.wav | Bin 0 -> 141180 bytes .../romfiles/nnfont_RectDrawerShader.shbin | Bin 0 -> 964 bytes .../1stNUP_2/sources/common/romfiles/ok.wav | Bin 0 -> 158700 bytes .../1stNUP_2/sources/common/wave.cpp | 150 ++ .../1stNUP_2/sources/common/wave.h | 148 ++ .../tests/ConsoleBackup/Exporter/OMakefile | 63 + .../ConsoleBackup/Exporter/test_Exporter.cpp | 113 + .../sources/tests/ConsoleBackup/OMakefile | 20 + .../sources/tests/ConsoleRestore/OMakefile | 20 + .../ConsoleRestore/TitleDownloader/OMakefile | 65 + .../TitleDownloader/test_TitleDownloader.cpp | 109 + .../1stNUP_2/sources/tests/OMakefile | 20 + .../1stNUP_2/sources/tests/common/OMakefile | 20 + .../sources/tests/common/util/OMakefile | 55 + .../sources/tests/common/util/test_Util.cpp | 174 ++ .../ExportedDataVerifier.bsf | Bin 0 -> 2302 bytes .../ExportedDataVerifier.rsf | 50 + .../tools/ExportedDataVerifier/OMakefile | 65 + .../ExportedDataVerifier/banner/model.cbmd | Bin 0 -> 198785 bytes .../ExportedDataVerifier/banner/sound.cbsd | Bin 0 -> 198785 bytes .../banner/unknown24x24.ctpk | 1 + .../banner/unknown48x48.ctpk | 1 + .../tools/ExportedDataVerifier/main.cpp | 496 +++++ .../1stNUP_2/sources/tools/OMakefile | 16 + 104 files changed, 14618 insertions(+) create mode 100644 tags/ConsoleDataMigration/1stNUP_2/documents/CTR修理フロー_1stNUP.vsd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/documents/CTR本体データ移行ツール説明.doc create mode 100644 tags/ConsoleDataMigration/1stNUP_2/documents/Readme.txt create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/ConsoleBackup.bsf create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/ConsoleBackup.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/ConsoleBackup.rsf create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/banner/model.cbmd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/banner/sound.cbsd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/banner/unknown24x24.ctpk create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/banner/unknown48x48.ctpk create mode 100755 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/genversion.sh create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.bsf create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.rsf create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/banner/model.cbmd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/banner/sound.cbsd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/banner/unknown24x24.ctpk create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/banner/unknown48x48.ctpk create mode 100755 tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/genversion.sh create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/OMakeroot create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/Aes_define.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/FileName.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole_Private.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/ProgramId.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/common_Types.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/annotation.wav create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/cursor.wav create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/lc.bcfnt create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/ng.wav create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/nnfont_RectDrawerShader.shbin create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/ok.wav create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.h create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/test_Exporter.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/test_TitleDownloader.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/test_Util.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/ExportedDataVerifier.bsf create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/ExportedDataVerifier.rsf create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/OMakefile create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/banner/model.cbmd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/banner/sound.cbsd create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/banner/unknown24x24.ctpk create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/banner/unknown48x48.ctpk create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/main.cpp create mode 100644 tags/ConsoleDataMigration/1stNUP_2/sources/tools/OMakefile diff --git a/tags/ConsoleDataMigration/1stNUP_2/documents/CTR修理フロー_1stNUP.vsd b/tags/ConsoleDataMigration/1stNUP_2/documents/CTR修理フロー_1stNUP.vsd new file mode 100644 index 0000000000000000000000000000000000000000..a3d6b8900896e5522f538aecffd6eb7a91fe5882 GIT binary patch literal 222720 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 z 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 z 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¥IbroH9A+ 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 z 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%0A5>Q0#+L?1W7-so4Pv1B*80%DN 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
3=|Th$EIWv8%B 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 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "demo.h" + +#include +#include + +#include "DrawSystemState.h" +#include "FileName.h" +#include "Controller.h" +#include "SimplePlayer.h" +#include "Exporter.h" +#include "CommonLogger.h" +#include "SDMountManager.h" +#include "HeapManager.h" +#include "PlayHistoryManager.h" +#include "common_Types.h" +#include "VersionDetect.h" +#include "Util.h" +#include "ResFont.h" +#include "HardwareStateManager.h" + +// svnリビジョン埋め込み用 +#include "../../generated/ConsoleBackup/version.h" +#ifndef BACKUP_VERSION_NUM +#define BACKUP_VERSION_NUM 0 +#endif + +namespace { + +// グラフィックスに割り当てるメモリ +const size_t s_GxHeapSize = 0x800000; + +common::Util s_HwUtility; + +} // namespace + +namespace ConsoleBackup{ + + +extern "C" void nnMain(void) +{ + nn::Result result; + + // os の初期化 + nn::os::Initialize(); + + // fs の初期化 + nn::fs::Initialize(); + + // appletの初期化 + nn::applet::Enable( false ); + + // hid の初期化 + result = nn::hid::Initialize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // ndmの初期化 + result = nn::ndm::Initialize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // 全デーモンの自律動作をacの自動接続も含めて止める + result = nn::ndm::SuspendScheduler(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // cfg の初期化 + nn::cfg::CTR::init::Initialize(); + nn::cfg::CTR::system::Initialize(); + + // 時計設定用ptm初期化 + nn::ptm::CTR::InitializeForSystemMenu(); + + // ps の初期化 + nn::ps::Initialize(); + + // amの初期化 + nn::am::InitializeForSystemMenu(); + + // ヒープの確保 + common::HeapManager::GetHeap()->Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR); + + // RenderSystem の準備 + uptr heapForGx = reinterpret_cast(common::HeapManager::GetHeap()->Allocate(s_GxHeapSize)); + demo::RenderSystemDrawing renderSystem; + renderSystem.Initialize(heapForGx, s_GxHeapSize); + + // ResFontの初期化 + common::InitializeResFont(); + + // サウンドスレッドの起動 + common::InitializeSimplePlayer(); + + // ログ描画の初期化 + common::Logger::GetLoggerInstance()->Initialize(common::CONSOLE_WIDTH, common::CONSOLE_HEIGHT, + common::CONSOLE_MAX_LINE, &renderSystem); + + // RenderSystemを作ってからログが出せる + common::Logger::InitializeEjectThread(); + common::Logger::SetEjectHandler(OnSdEjected); + // 起動時に削除 + common::Logger::GetLoggerInstance()->ClearSdLog(); + + COMMON_LOGGER("\n"); + COMMON_LOGGER("CTR Console Backup start\n"); + + // ボタン入力 + nn::hid::PadReader s_PadReader; + nn::hid::PadStatus padStatus; + + // データの準備 + s_HwUtility.Initialize(); + common::HardwareStateManager manager(s_HwUtility); + + // 情報出力 + COMMON_LOGGER("CTR Console Backup %s Rev.%s\n", __DATE__, BACKUP_VERSION_NUM); + COMMON_LOGGER("System Ver. %d.%d.%d-%d\n", + s_HwUtility.GetCupMajorVersion(), + s_HwUtility.GetCupMinorVersion(), + s_HwUtility.GetCupMicroVersion(), + s_HwUtility.GetNupVersion()); + COMMON_LOGGER("System Region %s\n", s_HwUtility.GetRegionCodeA3()); + COMMON_LOGGER("Serial Number %s\n", s_HwUtility.GetSerialNumber()); + COMMON_LOGGER("Device ID %llu\n", s_HwUtility.GetInfraDeviceId()); + COMMON_LOGGER("MAC Address %s\n", s_HwUtility.GetMacAddress()); + COMMON_LOGGER("Friend Code %04u-%04u-%04u\n", + static_cast(s_HwUtility.GetFriendcode() / 100000000ULL % 10000ULL), + static_cast(s_HwUtility.GetFriendcode() / 10000ULL % 10000ULL), + static_cast(s_HwUtility.GetFriendcode() % 10000ULL) ); + + + bool flip = false; + bool continueBackup = false; + + for(;;) + { + bool nextStep = false; + s_PadReader.ReadLatest(&padStatus); + + // AまたはSTARTボタンで進行 + if(padStatus.trigger & nn::hid::BUTTON_A || + padStatus.trigger & nn::hid::BUTTON_START) + { + nextStep = true; + } + + // LまたはRボタンで上下画面フリップ + if(padStatus.trigger & nn::hid::BUTTON_R || + padStatus.trigger & nn::hid::BUTTON_L) + { + flip = !flip; + } + + // コンソールスクロール + if(padStatus.hold & nn::hid::BUTTON_UP) + { + common::Logger::GetLoggerInstance()->ScrollUp(); + } + + // コンソールスクロール + if(padStatus.hold & nn::hid::BUTTON_DOWN) + { + common::Logger::GetLoggerInstance()->ScrollDown(); + } + + if(padStatus.hold & nn::hid::BUTTON_LEFT) + { + common::Logger::GetLoggerInstance()->ScrollToBegin(); + } + + if(padStatus.hold & nn::hid::BUTTON_RIGHT) + { + common::Logger::GetLoggerInstance()->ScrollToEnd(); + } + + + // 情報更新 + // ACアダプタ + std::string adapterState; + if(manager.IsAdapterConnected()) + { + adapterState += ::std::string("Connected"); + } + else + { + adapterState += ::std::string("Not Connected"); + } + + // 操作用メッセージ + // 進捗確認メッセージを兼ねる? + ::std::vector operationMessage; + + ControlState(manager, operationMessage, nextStep, continueBackup); + + nn::util::FloatColor titleColor; + + titleColor.r = 0.3f; + titleColor.g = 0.f; + titleColor.b = 0.2f; + + // 上画面表示 + common::DrawSystemState("CTR Console Backup", + renderSystem, + titleColor, + flip, + adapterState, + BACKUP_VERSION_NUM, + s_HwUtility.GetCupMajorVersion(), + s_HwUtility.GetCupMinorVersion(), + s_HwUtility.GetCupMicroVersion(), + s_HwUtility.GetNupVersion(), + s_HwUtility.GetBatteryRemain(), + s_HwUtility.GetInfraDeviceId(), + s_HwUtility.GetFriendcode(), + GetProgress(), + IsBackupFailed(), + IsBackupSucceeded(), + s_HwUtility.GetMacAddress(), + operationMessage, + s_HwUtility.GetRegion(), + s_HwUtility.GetSerialNumber() + ); + + renderSystem.SwapBuffers(); + + // デフォルトで下画面に描画するもの + renderSystem.SetRenderTarget(common::GetRenderTarget(NN_GX_DISPLAY1, flip)); + if(IsBackupSucceeded()) + { + renderSystem.SetClearColor(common::GetRenderTarget(NN_GX_DISPLAY1, flip), SUCCESS_COLOR); + } + if(IsBackupFailed()) + { + renderSystem.SetClearColor(common::GetRenderTarget(NN_GX_DISPLAY1, flip), FAIL_COLOR); + } + renderSystem.Clear(); + renderSystem.SetColor(1.f, 1.f, 1.f); + + common::Logger::GetLoggerInstance()->DrawConsole(); + renderSystem.SwapBuffers(); + + + renderSystem.WaitVsync(NN_GX_DISPLAY_BOTH); + + // 電源長押しで終了 + if ( nn::applet::IsExpectedToCloseApplication()) + { + common::Logger::GetLoggerInstance()->Finalize(); + // アンマウント + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + nn::fs::Unmount(common::SDMC_ARCHIVE_NAME); + renderSystem.Finalize(); + + nn::ps::Finalize(); + nn::ptm::CTR::FinalizeForSystemMenu(); + nn::cfg::CTR::system::Finalize(); + nn::cfg::CTR::init::Finalize(); + nn::hid::Finalize(); + nn::fs::Finalize(); + + nn::applet::PrepareToCloseApplication(); + nn::applet::CloseApplication(); + } + } +} + + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/ConsoleBackup.rsf b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/ConsoleBackup.rsf new file mode 100644 index 0000000..3b10ee6 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/ConsoleBackup.rsf @@ -0,0 +1,54 @@ +BasicInfo: + Title : ConsoleBackup + ProductCode: CTR-P-22TA + BackupMemoryType: None + +TitleInfo: + Use: Evaluation + Category: Application + UniqueId: 0xf8021 + Version: 0 + +SystemControlInfo: + AppType : Application + StackSize : 0x4000 + Dependency : + - gpio + - pdn + - spi + - i2c + - mcu + - ptm + - codec + - cfg + - hid + - gsp + - friends + - nim + - ac + - ndm + +AccessControlInfo: + Priority : 16 + DisableDebug : true + + FileSystemAccess: + - DirectSdmc + - Debug + - Core + - CategoryFileSystemTool + + IoAccessControl: + - FsMountCardSpi + - FsMountNand + - FsMountTwln + +Option: + FreeProductCode: true + +CardInfo: + CardDevice: None + +Rom: + # ROM に含めるファイルシステムのルートパスを指定します。 + HostRoot: "$(ROMFS_ROOT)" \ No newline at end of file diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.cpp new file mode 100644 index 0000000..c612f5e --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.cpp @@ -0,0 +1,339 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Controller.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "Controller.h" +#include "FileChecker.h" +#include "Exporter.h" +#include "SimplePlayer.h" +#include "CommonLogger.h" + +#include + +namespace ConsoleBackup +{ + +namespace +{ + +typedef enum BackupState +{ + STARTUP, // 初期値 + EXPORT_TWL_NAND, // TWLセーブデータ領域の吸出し中 + EXPORT_TWL_SOUND, // TWLサウンド領域の吸出し中 + EXPORT_TWL_PHOTO, // TWL写真領域の吸出し中 + EXPORT_CTR_NAND, // 吸出し中 + DELETE_NIM, // nimのシステムセーブデータ削除 + DONE, // 吸出し完了 + FINISHED, // SDカード抜き完了 + FAIL // 失敗 +} BackupState; + + +// APSettingの書式が無い警告サウンドを鳴らしたかどうか +bool s_ExistAPSettingAnnotation = false; +// SDに書き込みできない警告サウンドを鳴らしたかどうか +bool s_SdWriteProetctAnnotation = false; + +BackupState s_BackupState = STARTUP; +bool s_PlayedStartCursor = false; +bool s_PlayedSdPullOutCursor = false; +bool s_PlayedFinishedSound = false; +bool s_PlayedFailSound = false; + +} // namespace + +bool NeedsAcAdapter(common::HardwareStateManager& manager) +{ + return manager.IsBatteryLower() && !manager.IsAdapterConnected(); +} + +void ControlState(common::HardwareStateManager& manager, ::std::vector& operationMessage, bool& nextStep, + bool& continueBackup) +{ + // 状態遷移Controller + switch (s_BackupState) + { + + // 起動時 + case STARTUP: + { + bool error = false; + // 完全性検証SEEDを読めるか? + if (manager.CanReadIvs()) + { + // SDカードが挿入されているか? + if (nn::fs::IsSdmcInserted()) + { + // SDカードに書き込みできるか? + if (!nn::fs::IsSdmcWritable()) + { + if (!s_SdWriteProetctAnnotation) + { + s_SdWriteProetctAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + operationMessage.push_back(::std::string("Can*t Write SD Card!!\n")); + break; + } + + // 無線設定ファイルがあるか? + if (common::ExistsAPSetting()) + { + // 書き込み中に抜かないように + if (nextStep) + { + // シリアルナンバーを読み取れるか? + if (!manager.CanReadSerialNumber()) + { + common::PlaySound(common::SOUND_ANNOTATION); + COMMON_LOGGER("Can't Read Serial Number\n"); + } + } + } + else + { + error = true; + if (!s_ExistAPSettingAnnotation) + { + s_ExistAPSettingAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + operationMessage.push_back(::std::string("Accsess_Point_Setting does not exist!")); + } + } + else + { + error = true; + operationMessage.push_back(::std::string("Insert SD Card!!")); + } + } + else + { + error = true; + operationMessage.push_back(::std::string("Can't Read SDCI!!")); + } + + // ACアダプタが必要か? + if (NeedsAcAdapter(manager)) + { + error = true; + operationMessage.push_back(::std::string("Connect AC Adapter!!")); + } + + // エラーが無ければ進行用メッセージ表示 + if(!error) + { + operationMessage.push_back(::std::string("Push A or START Button")); + if(!s_PlayedStartCursor) + { + common::PlaySound(common::SOUND_CURSOR); + s_PlayedStartCursor = true; + } + } + + if (nextStep && !error) + { + COMMON_LOGGER("Start Export Data\n"); + + s_BackupState = EXPORT_TWL_NAND; + } + } + break; + + + // TWLセーブデータ領域の吸出し中 + case EXPORT_TWL_NAND: + { + static bool init = true; + if(init) + { + // コンテキストを初期化する + InitializeFileListContext(); + + // データを書き込む + ExportTwlSaveData(); + init = false; + } + + // 処理が完了した + if (IsExportThreadFinished()) + { + FinalizeExportThread(); + s_BackupState = EXPORT_TWL_SOUND; + } + } + break; + + // TWLサウンド領域の吸出し中 + case EXPORT_TWL_SOUND: + { + static bool init = true; + if(init) + { + // データを書き込む + ExportTwlSoundData(); + init = false; + } + + // 処理が完了した + if (IsExportThreadFinished()) + { + FinalizeExportThread(); + s_BackupState = EXPORT_TWL_PHOTO; + } + } + break; + + // TWL写真領域の吸出し中 + case EXPORT_TWL_PHOTO: + { + static bool init = true; + if(init) + { + // データを書き込む + ExportTwlPhotoData(); + init = false; + } + + // 処理が完了した + if (IsExportThreadFinished()) + { + FinalizeExportThread(); + s_BackupState = EXPORT_CTR_NAND; + } + } + break; + + // 吸出し中 + case EXPORT_CTR_NAND: + { + continueBackup = true; + + // ACアダプタが必要か? + if (NeedsAcAdapter(manager)) + { + continueBackup = false; + operationMessage.push_back(::std::string("Connect AC Adapter!!")); + } + + // データを書き込む + ExportData(manager); + + // 処理が完了した + if (continueBackup && IsExportThreadFinished()) + { + FinalizeExportThread(); + COMMON_LOGGER("Export NAND Data Finished.\n"); + + if(GetProgress() > 99) + { + s_BackupState = DELETE_NIM; + } + else + { + s_BackupState = FAIL; + } + + } + } + break; + + // nimのシステムセーブデータ削除 + case DELETE_NIM: + { + DeleteNimSaveData(); + s_BackupState = DONE; + } + break; + + // 吸出し完了 + case DONE: + { + operationMessage.push_back(::std::string("Backup Done. Pull Out SD Card.")); + if(!s_PlayedSdPullOutCursor) + { + common::PlaySound(common::SOUND_CURSOR); + s_PlayedSdPullOutCursor = true; + } + } + break; + + // SDカード抜き完了 + case FINISHED: + { + operationMessage.push_back(::std::string("Backup Succeeded!!\n")); + if(!s_PlayedFinishedSound) + { + common::PlaySound(common::SOUND_OK); + s_PlayedFinishedSound = true; + } + } + break; + + // 吸出し失敗 + case FAIL: + { + operationMessage.push_back(::std::string("Backup Failed.")); + if(!s_PlayedFailSound) + { + common::PlaySound(common::SOUND_NG); + s_PlayedFailSound = true; + } + } + break; + + } +} + +bool InProgress() +{ + return s_BackupState == EXPORT_CTR_NAND; +} + +bool IsBackupSucceeded() +{ + return s_BackupState == FINISHED; +} + +bool IsBackupFailed() +{ + return s_BackupState == FAIL; +} + +void OnSdEjected() +{ + if(s_BackupState == DONE || s_BackupState == FINISHED) + { + s_BackupState = FINISHED; + } + else + { + common::InitializeFileCheck(); + InitializeState(); + } +} + +void InitializeState() +{ + s_BackupState = STARTUP; + s_PlayedFailSound = false; + s_PlayedFinishedSound = false; + s_ExistAPSettingAnnotation = false; + s_PlayedStartCursor = false; + s_PlayedSdPullOutCursor = false; + s_SdWriteProetctAnnotation = false; +} + +} // namespace ConsoleBackup diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.h new file mode 100644 index 0000000..b60d065 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Controller.h @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Contoroller.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef CONTOROLLER_H_ +#define CONTOROLLER_H_ + +#include +#include +#include "HardwareStateManager.h" + +namespace ConsoleBackup +{ + +// 状態遷移を管理する +// manager ハードウェア情報を取得するためのラッパ +// operationMessage 操作情報として表示したい文字列 +// nextStep 次の状態に遷移してもよいかどうか +// continueBackup 処理を続けてもよいかどうか +void ControlState(common::HardwareStateManager& manager, ::std::vector& operationMessage, bool& nextStep, + bool& continueBackup); + +// バックアップ処理中かどうか +bool InProgress(); + +// バックアップが完了したかどうか +bool IsBackupSucceeded(); + +// バックアップが失敗したかどうか +bool IsBackupFailed(); + +// SDカードが抜き出されたときに実行したい関数 +void OnSdEjected(); + +// 状態を初期化する +void InitializeState(); + +} + +#endif /* CONTOROLLER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.cpp new file mode 100644 index 0000000..d9186df --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.cpp @@ -0,0 +1,932 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Exporter.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include // cfg:norの初期化に必要 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Exporter.h" +#include "CommonLogger.h" +#include "SDMountManager.h" +#include "HeapManager.h" +#include "SdReaderWriter.h" +#include "FileName.h" +#include "FileTransfer.h" +#include "common_Types.h" +#include "Aes_define.h" +#include "PlayHistoryManager.h" +#include "VersionDetect.h" +#include "Util.h" + +namespace ConsoleBackup +{ + +namespace +{ + +common::SdReaderWriter s_SdWriter; +common::NtrNorData s_NtrNorData; +common::CfgCountryLanguage s_CountryLanguage; + +const size_t EXPORT_THREAD_STACK_SIZE = 0x4000; +nn::os::Thread s_ExportThread; +nn::os::StackBuffer s_ExportThreadStack; + +wchar_t s_RootName[256]; + +nn::crypto::Sha256Context s_FileListContext; + +} + +void AddCmac(nn::fs::FileOutputStream* file, nn::crypto::Sha256Context* context); + +void DeleteTrash(std::wstring currentDirectory) +{ + // TODO: リードオンリーのファイルが消去できない + + COMMON_LOGGER("Delete Trash.\n"); + + nn::fs::FileInputStream fis; + nn::fs::Directory dir; + nn::Result result; + std::vector entryList; //カレントディレクトリのエントリ一覧を格納 + std::vector::iterator entryIndex; + + common::SdMountManager::Mount(); + + result = dir.TryInitialize(currentDirectory.c_str()); + + if (result.IsSuccess()) + { + nn::fs::DirectoryEntry entry; + s32 numEntry; + for (;;) + { + result = dir.TryRead(&numEntry, &entry, 1); + if (result.IsFailure()) + { + dir.Finalize(); + } + if (numEntry == 0) + { + // ルートディレクトリを閉じる + dir.Finalize(); + + // ルートディレクトリの子を開く + for (entryIndex = entryList.begin(); entryIndex != entryList.end(); entryIndex++) + { + // ディレクトリなら削除する + if (entryIndex->attributes.isDirectory) + { + NN_LOG("Try Delete %ls%ls/\n", currentDirectory.c_str(), entryIndex->entryName); + result = nn::fs::TryDeleteDirectoryRecursively((currentDirectory + ::std::wstring( + entryIndex->entryName)).c_str()); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + } + // ファイルならログとAP設定以外は削除する + else + { + if (std::wcscmp(entryIndex->entryName, common::AP_SETTING_FILENAME) != 0 && std::wcscmp( + entryIndex->entryName, common::LOG_FILENAME) != 0) + { + NN_LOG("Try Delete %ls%ls\n", currentDirectory.c_str(), entryIndex->entryName); + result = nn::fs::TryDeleteFile( + (currentDirectory + ::std::wstring(entryIndex->entryName)).c_str()); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + } + } + + // 削除完了 + break; + } + else + { + // vectorに保存する + entryList.push_back(entry); + if (entry.attributes.isDirectory) + { + NN_LOG("%ls%ls/\n", currentDirectory.c_str(), entry.entryName); + } + else + { + NN_LOG("%ls%ls\n", currentDirectory.c_str(), entry.entryName); + } + } + } + } + else + { + NN_LOG("failed initialize directory\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + dir.Finalize(); + } + + common::SdMountManager::Unmount(); +} + +void WriteTwlTitleList(std::vector& programIdList) +{ + COMMON_LOGGER("Export TwlTitle List.\n"); + + size_t heapSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + char* titleListBuf = reinterpret_cast (common::HeapManager::GetHeap()->Allocate(heapSize)); + + size_t writeSize = 0; + if (titleListBuf != NULL) + { + for (std::vector::iterator it = programIdList.begin(); it != programIdList.end(); it++) + { + nn::nstd::TSNPrintf(titleListBuf + writeSize, heapSize - writeSize, "%s\n", common::GetCharStr(it->c_str())); + NN_LOG("%ls\n", it->c_str()); + writeSize += it->size() + sizeof('\n'); + } + } + + nn::Result result = s_SdWriter.WriteBufWithCmac(common::TWL_TITLELIST_PATHNAME, titleListBuf, writeSize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + common::HeapManager::GetHeap()->Free(titleListBuf); +} + + +void WriteRegionData() +{ + COMMON_LOGGER("Export Region Data.\n"); + + nn::cfg::CTR::CfgRegionCode region; + region = nn::cfg::CTR::GetRegion(); + + s_SdWriter.WriteBufWithCmac(common::REGION_DATA_PATHNAME, ®ion, sizeof(nn::cfg::CTR::CfgRegionCode)); +} + +void WriteCountryLanguageData() +{ + COMMON_LOGGER("Export Country and Language Data.\n"); + + nn::Result result; + + nn::cfg::nor::CTR::Initialize(); + + // 国設定 + s_CountryLanguage.country = nn::cfg::CTR::GetCountry(); + if (s_CountryLanguage.country != nn::cfg::CTR::CFG_COUNTRY_UNKNOWN) + { + // 言語設定 + s_CountryLanguage.language = nn::cfg::CTR::GetLanguage(); + + s_SdWriter.WriteBufWithCmac(common::COUNTRY_SETTING_PATHNAME, &s_CountryLanguage, sizeof(s_CountryLanguage)); + } +} + +void WriteNorData() +{ + COMMON_LOGGER("Export NOR Data.\n"); + + nn::Result result; + + nn::cfg::nor::CTR::Initialize(); + + NN_LOG("Get NTR User Setting\n"); + + // NTR設定 + result = nn::cfg::nor::CTR::GetNtrSetting(&s_NtrNorData.ntrConfig.ncd, &s_NtrNorData.ntrConfig.ncd_ex); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // TWL WiFi設定 + result = nn::cfg::nor::CTR::ReadTwlWifiSetting(0, s_NtrNorData.TwlWiFiSetting, common::TWL_WIFI_SETTING_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // NTR WiFi設定 + result = nn::cfg::nor::CTR::ReadNtrWifiSetting(0, s_NtrNorData.NtrWiFiSetting, common::NTR_WIFI_SETTING_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + s_SdWriter.WriteBufWithCmac(common::NOR_PATHNAME, &s_NtrNorData, sizeof(common::NtrNorData)); +} + +void WriteSerialNumber(common::HardwareStateManager& manager) +{ + COMMON_LOGGER("Export Serial Number.\n"); + + u8* serial; + size_t size; + manager.GetSerialNumber(&serial, &size); + + s_SdWriter.WriteBufWithCmac(common::SERIAL_PATHNAME, serial, size); +} + +void WriteDeviceId(common::HardwareStateManager& manager) +{ + COMMON_LOGGER("Export Device ID.\n"); + + bit32 deviceId = manager.GetDeviceId(); + + s_SdWriter.WriteBufWithCmac(common::DEVICE_ID_PATHNAME, &deviceId, sizeof(deviceId)); +} + +void WriteIvs(common::HardwareStateManager& manager) +{ + COMMON_LOGGER("Export SDCI.\n"); + + void* ivs; + size_t size; + manager.GetIvs(&ivs, &size); + + void* enc; + nn::Result result; + enc = common::HeapManager::GetHeap()->Allocate(size); + if(enc != NULL) + { + // AES暗号化する + nn::crypto::Initialize(); + + nn::crypto::SwAesCtrContext swAesCtrContest; + + swAesCtrContest.Initialize(common::iv, common::key, sizeof(common::key)); + swAesCtrContest.Encrypt(enc, ivs, size); + + s_SdWriter.WriteBufWithCmac(common::IVS_PATHNAME, enc, size); + + common::HeapManager::GetHeap()->Free(enc); + } +} + +void CreateTwlDirectory(enum common::TWL_PATH_INDEX path) +{ + NN_ASSERT(path < common::TWL_PATHNAME_MAX); + + s_SdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + + std::wstring(common::SD_TWL_ROOTNAME_TABLE[path])).c_str()); +} + +void ListTwlSaveData(std::wstring currentDirectory, std::vector* list) +{ + nn::fs::Directory dir; + nn::fs::DirectoryEntry entry; + s32 numEntry; + + nn::Result result = dir.TryInitialize(currentDirectory.c_str()); + if(result.IsSuccess()) + { + for(;;) + { + result = dir.TryRead(&numEntry, &entry, 1); + if(result.IsFailure()) + { + dir.Finalize(); + break; + } + + if(numEntry == 0) + { + dir.Finalize(); + } + else + { + common::SavePathInfo pathInfo; + pathInfo.name = currentDirectory + std::wstring(L"/") + std::wstring(entry.entryName); + pathInfo.isDirectory = false; + list->push_back(pathInfo); + } + } + } +} + +void AddCurrentProgramIdPath(std::vector* programIdList, std::wstring currentDir) +{ + std::wstring currentPath(currentDir); + std::wstring token(common::NAND_TWL_DATA_ROOT_PATHNAME_WITHOUT_SLASH); + + std::wstring::size_type pos; + pos = currentPath.find(token); + if(pos != std::wstring::npos) + { + std::wstring subStr = currentPath.substr(token.size()); + + std::wstring slash(L"/"); + pos = subStr.find(slash); + while(pos != std::wstring::npos) + { + subStr.erase(pos, slash.size()); + pos = subStr.find(slash); + } + + std::wstring ctrProgramIdHi(L"00048"); + subStr.replace(0, ctrProgramIdHi.size(), ctrProgramIdHi); + + programIdList->push_back(subStr); + } + else + { + NN_LOG("Can't find %ls\n", common::NAND_TWL_DATA_ROOT_PATHNAME_WITHOUT_SLASH); + } + +} + +void AddCurrentDirectory(std::vector* list, std::wstring currentDir, wchar_t* currentEntry) +{ + common::SavePathInfo pathInfo; + + pathInfo.name = currentDir + std::wstring(L"/") + std::wstring(currentEntry) + std::wstring(L"/"); + pathInfo.isDirectory = true; + list->push_back(pathInfo); +} + + +bool ListTwlSaveDataDirectory(std::wstring currentDirectory, u32 level, std::vector* list, + std::vector* programIdList) +{ + nn::fs::FileInputStream fis; + nn::fs::Directory dir; + nn::Result result; + std::vector entryList; //カレントディレクトリのエントリ一覧を格納 + std::vector::iterator entryIndex; + const u8 TWL_SAVEDATA_DIRECTORY_LEVEL = 2; // data ディレクトリまでの階層 + const wchar_t* const TWL_SAVEDATA_DIRECTORY_NAME = L"data"; + + result = dir.TryInitialize(currentDirectory.c_str()); + if (result.IsSuccess()) + { + nn::fs::DirectoryEntry entry; + s32 numEntry; + for (;;) + { + result = dir.TryRead(&numEntry, &entry, 1); + if (result.IsFailure()) + { + dir.Finalize(); + } + if (numEntry == 0) + { + dir.Finalize(); + + bool retValue = false; + for (entryIndex = entryList.begin(); entryIndex != entryList.end(); entryIndex++) + { + // レベル2未満のディレクトリなら再帰的に開く + if(level < TWL_SAVEDATA_DIRECTORY_LEVEL) + { + if (entryIndex->attributes.isDirectory) + { + if (ListTwlSaveDataDirectory( + currentDirectory + std::wstring(L"/") + std::wstring(entryIndex->entryName), + level + 1, list, programIdList)) + { + NN_LOG("%ls/%ls has data directory.\n", currentDirectory.c_str(), entryIndex->entryName); + retValue = true; + + AddCurrentDirectory(list, currentDirectory, entryIndex->entryName); + } + } + } + // レベル2のディレクトリなら data かどうかチェック + else if(level == TWL_SAVEDATA_DIRECTORY_LEVEL && entryIndex->attributes.isDirectory) + { + if (std::wcscmp(entryIndex->entryName, TWL_SAVEDATA_DIRECTORY_NAME) == 0) + { + // ファイル一覧を取得する + retValue = true; + ListTwlSaveData(currentDirectory + std::wstring(L"/") + std::wstring(entryIndex->entryName), list); + + AddCurrentDirectory(list, currentDirectory, entryIndex->entryName); + AddCurrentProgramIdPath(programIdList, currentDirectory); + } + } + else + { + return false; + } + } + + if(level != 0) + { + return retValue; + } + + break; + } + else + { + // vectorに保存する + entryList.push_back(entry); + } + } + } + else + { + NN_LOG("failed initialize directory\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + dir.Finalize(); + } + + return false; +} + + +void WriteTwlData(enum common::TWL_PATH_INDEX path) +{ + NN_ASSERT(path < common::TWL_PATHNAME_MAX); + + nn::Result result; + + result = nn::fs::MountSpecialArchive(common::TWL_ARCHIVE_NAME_TABLE[path], common::TWL_FS_ARCHIVE_KIND[path]); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); + + u32 fileNum = 0; + s64 fileSize = 0; + common::CalculateFileNum(::std::wstring(common::NAND_TWL_ROOT_PATHNAME_WITH_SLASH_TABLE[path]), fileNum, fileSize); + + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + + NN_LOG("File Number = %d\n", fileNum); + NN_LOG("File Size = %d\n", fileSize); + // 進捗表示用 + common::InitializeTransferProgress(fileSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + nn::fs::FileOutputStream list; + result = list.TryInitialize(common::FILE_LIST_PATHNAME, true); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + result = list.TryGetSize(&fileSize); + if (result.IsSuccess()) + { + // 末尾に移動 + result = list.TrySetPosition(fileSize); + if (result.IsSuccess()) + { + wchar_t archiveName[nn::fs::MAX_FILE_PATH_LENGTH]; + ::std::mbstowcs(archiveName, common::TWL_ARCHIVE_NAME_TABLE[path], + std::strlen(common::TWL_ARCHIVE_NAME_TABLE[path]) + 1); + std::wstring archiveString(archiveName); + common::CopyDirectory( + NULL, + (archiveString + ::std::wstring(L"/")).c_str(), + (common::SDMC_ROOT_DIRECTORY_PATH + ::std::wstring(common::SD_TWL_ROOTNAME_TABLE[path])).c_str(), + buf, bufSize, true, &list, &s_FileListContext); + } + + list.TryFlush(); + list.Finalize(); + } + } + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + nn::fs::Unmount(common::TWL_ARCHIVE_NAME_TABLE[path]); +} + +void CalculateTwlSaveData(std::vector* fileList, s64* fileSize) +{ + NN_NULL_ASSERT(fileList); + NN_NULL_ASSERT(fileSize); + + *fileSize = 0; + nn::Result result; + + for (std::vector::iterator it = fileList->begin(); it != fileList->end(); it++) + { + if(!it->isDirectory) + { + nn::fs::FileInputStream file; + result = file.TryInitialize(it->name.c_str()); + if(result.IsSuccess()) + { + s64 size; + result = file.TryGetSize(&size); + if(result.IsSuccess()) + { + *fileSize += size; + } + } + } + } + +} + +void WriteTwlSaveData() +{ + nn::Result result; + std::vector fileList; + std::vector programIdList; + + COMMON_LOGGER("Export Twl Save Data.\n"); + + // ディレクトリ作成 + s_SdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + + std::wstring(common::SD_SAVEDATA_TWL_ROOT_NAME)).c_str()); + + // セーブデータを含むディレクトリ一覧を生成 + result = nn::fs::MountSpecialArchive(common::NAND_TWL_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_TWL_NAND); + COMMON_LOGGER_RESULT_IF_FAILED(result); + ListTwlSaveDataDirectory(std::wstring(common::NAND_TWL_DATA_ROOT_PATHNAME_WITHOUT_SLASH), 0, &fileList, & programIdList); + + NN_LOG("No Twl Savedata\n"); + if(fileList.size() == 0) + { + return; + } + + NN_LOG("listup Twl Savedata Directory\n"); + for (std::vector::reverse_iterator it = fileList.rbegin(); it != fileList.rend(); it++) + { + NN_LOG("%ls\n", it->name.c_str()); + } + + WriteTwlTitleList(programIdList); + + // 合計サイズ取得 + s64 fileSize; + CalculateTwlSaveData(&fileList, &fileSize); + common::InitializeTransferProgress(fileSize); + + NN_LOG("\n"); + // SDに書き出し + result = common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + nn::fs::FileOutputStream list; + result = list.TryInitialize(common::FILE_LIST_PATHNAME, true); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + result = list.TryGetSize(&fileSize); + if (result.IsSuccess()) + { + // 末尾に移動 + result = list.TrySetPosition(fileSize); + if (result.IsSuccess()) + { + wchar_t archiveName[nn::fs::MAX_FILE_PATH_LENGTH]; + ::std::mbstowcs(archiveName, common::NAND_TWL_ARCHIVE_NAME, + std::strlen(common::NAND_TWL_ARCHIVE_NAME) + 1); + std::wstring archiveString(archiveName); + + for (std::vector::reverse_iterator it = fileList.rbegin(); it + != fileList.rend(); it++) + { + // twln:/title/をsdmc:/CTR_Console_Repair/TWLBackup/に置換 + std::wstring toPath(it->name.c_str()); + toPath.replace( + 0, + std::wcslen(common::NAND_TWL_DATA_ROOT_PATHNAME_WITHOUT_SLASH) + 1, + std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + std::wstring( + common::SD_SAVEDATA_TWL_ROOT_NAME)); + + if(it->isDirectory) + { + common::ExportTwlSaveDirectory(toPath.c_str(), &list, &s_FileListContext); + } + else + { + common::ExportTwlSaveFile(it->name.c_str(), toPath.c_str(), buf, bufSize, &list, + &s_FileListContext); + } + } + } + + list.TryFlush(); + list.Finalize(); + } + } + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + + nn::fs::Unmount( common::NAND_TWL_ARCHIVE_NAME); +} + +void WriteTwlPhotoData() +{ + COMMON_LOGGER("Export Twl Photo Data.\n"); + CreateTwlDirectory(common::TWL_PHOTO); + WriteTwlData(common::TWL_PHOTO); +} + +void WriteTwlSoundData() +{ + COMMON_LOGGER("Export Twl Sound Data.\n"); + CreateTwlDirectory(common::TWL_SOUND); + WriteTwlData(common::TWL_SOUND); +} + +void InitializeFileListContext() +{ + nn::crypto::Initialize(); + s_FileListContext.Initialize(); +} + +void ExportTwlSaveData() +{ + // 不要なデータを削除する + DeleteTrash((std::wstring(common::LOG_ROOT_DIRECTORY_PATH) + std::wstring(L"/")).c_str()); + + s_ExportThread.Start(WriteTwlSaveData, s_ExportThreadStack); +} + +void ExportTwlPhotoData() +{ + s_ExportThread.Start(WriteTwlPhotoData, s_ExportThreadStack); +} + +void ExportTwlSoundData() +{ + s_ExportThread.Start(WriteTwlSoundData, s_ExportThreadStack); +} + + +void WriteMcuRtcData(common::HardwareStateManager& manager) +{ + COMMON_LOGGER("Export RTC Data.\n"); + nn::Result result; + nn::Handle handle = manager.GetMcuHandle(); + + if(handle.IsValid()) + { + nn::mcu::CTR::HwCheck mcu(handle); + + nn::mcu::CTR::RtcData rtc; + result = mcu.GetRtcAll(&rtc); + const u8 RETRY = 10; + for (u8 i = 0; i < RETRY; i++) + { + if (result.IsSuccess()) + { + NN_LOG("RTC = 20%02d/%02d/%02d %02d:%02d:%02d\n", rtc.m_Year, rtc.m_Month, rtc.m_Day, rtc.m_Hour, rtc.m_Minute, rtc.m_Second); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + s_SdWriter.WriteBufWithCmac(common::MCU_RTC_PATHNAME, &rtc, sizeof(rtc)); + break; + } + nn::os::Thread::Sleep( + nn::fnd::TimeSpan::FromMilliSeconds( + nn::os::Tick::GetSystemCurrent().ToTimeSpan().GetMilliSeconds() % 100)); + } + } + else + { + NN_LOG("invalid handle\n"); + } +} + +void ExportThreadFunc() +{ + nn::Result result; + + result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + nn::fs::FileOutputStream list; + result = list.TryInitialize(common::FILE_LIST_PATHNAME, true); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + s64 fileSize; + result = list.TryGetSize(&fileSize); + if (result.IsSuccess()) + { + // 末尾に移動 + result = list.TrySetPosition(fileSize); + if (result.IsSuccess()) + { + common::CopyDirectory( + NULL, + ::std::wstring(common::NAND_DATA_ROOT_PATHNAME_WITH_SLASH).c_str(), + (std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring( + common::SD_SAVEDATA_ROOT_NAME)).c_str(), buf, bufSize, true, &list, + &s_FileListContext); + + AddCmac(&list, &s_FileListContext); + list.TryFlush(); + list.Finalize(); + } + } + } + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + + NN_LOG("Export Thread Finalize\n"); +} + +nn::Result WriteSaveData(::std::string& sysSaveRoot) +{ + // NANDからSDカードに書き出し + nn::Result result; + + result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + u32 fileNum = 0; + s64 fileSize = 0; + common::CalculateFileNum(::std::wstring(common::NAND_DATA_ROOT_PATHNAME_WITH_SLASH), fileNum, fileSize); + + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + + NN_LOG("File Number = %d\n", fileNum); + NN_LOG("File Size = %d\n", fileSize); + // 進捗表示用 + common::InitializeTransferProgress(fileSize); + + ::std::mbstowcs(s_RootName, sysSaveRoot.c_str(), sysSaveRoot.size() + 1); + + NN_LOG("%ls\n", (::std::wstring(common::NAND_DATA_ROOT_PATHNAME_WITH_SLASH) + ::std::wstring(s_RootName) + ::std::wstring(L"/")).c_str()); + + // セーブデータディレクトリ以下のデータをSDカードにコピー + // コピー用ディレクトリ作成 + s_SdWriter.CreateDirectory((::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring( + common::SD_SAVEDATA_ROOT_NAME)).c_str()); + + COMMON_LOGGER("Export NAND Data Start...\n"); + + // SDにコピーするためのスレッドの作成 + s_ExportThread.Start(ExportThreadFunc, s_ExportThreadStack); + + return result; +} + +void FinalizeExportThread() +{ + s_ExportThread.Join(); + s_ExportThread.Finalize(); +} + +void WriteVersionData(common::HardwareStateManager& manager) +{ + COMMON_LOGGER("Export Version Data.\n"); + + common::VerDef versionData; + manager.GetVersionData(&versionData); + + s_SdWriter.WriteBufWithCmac(common::VERSION_DATA_PATHNAME, &versionData, sizeof(common::VerDef)); +} + +void WritePlayHistory() +{ + common::PlayHistoryManager historyManager; + + COMMON_LOGGER("Export PlayHistory\n"); + historyManager.Export(); +} + +void DeleteNimSaveData() +{ + nn::Result result; + ::std::wstring nimSaveDataPath = + ::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + + ::std::wstring(common::SD_SAVEDATA_ROOT_NAME) + + ::std::wstring(s_RootName) + + ::std::wstring(L"/") + + std::wstring(common::NIM_SAVEDATA_DIRECTORY_NAME); + + common::SdMountManager::Mount(); + + NN_LOG("%ls\n", nimSaveDataPath.c_str()); + result = nn::fs::TryDeleteDirectoryRecursively(nimSaveDataPath.c_str()); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + common::SdMountManager::Unmount(); +} + +void AddShutDownPtmEvent() +{ + nn::pl::CTR::NotifyPlayEvent(nn::pl::CTR::EVENTTYPE_TERMINATE, nn::CTR::INVALID_PROGRAM_ID, + nn::fnd::DateTime::GetNow()); +} + +void ExportData(common::HardwareStateManager& manager) +{ + static bool init = true; + + if (init) + { + // リージョンデータをSDに書き込む + WriteRegionData(); + + // 国データと言語データをSDに書き込む + WriteCountryLanguageData(); + + // NORデータをSDカードに書き込む + WriteNorData(); + + // シリアルナンバーをSDカードに書き込む + WriteSerialNumber(manager); + + // デバイスIDをSDカードに書き込む + WriteDeviceId(manager); + + // 完全性検証SEEDをSDカードに書き込む + WriteIvs(manager); + + ::std::string systemSaveRoot; + void* ivs; + size_t size; + manager.GetIvs(&ivs, &size); + // IVSからセーブデータディレクトリ名を計算 + common::Util::GetSaveDataDirectoryRoot(systemSaveRoot, ivs, size); + + // プレイ履歴をSDに書き出す + //WritePlayHistory(); + + // 電源断の履歴をptmに追加する + AddShutDownPtmEvent(); + + // RTCをSDに書き出す + WriteMcuRtcData(manager); + + // バージョン情報をSDに書き出す + WriteVersionData(manager); + + // NANDのセーブデータをSDに書き出す + WriteSaveData(systemSaveRoot); + + init = false; + } +} + +u32 GetProgress() +{ + return common::GetProgress(); +} + +bool IsExportThreadFinished() +{ + return s_ExportThread.IsValid() && !s_ExportThread.IsAlive(); +} + +//!@ brief ファイルにSHA256から計算したAES-CMACを付加します +//!@ param[in] file CMACを付加したいInitialize済みのファイル +//!@ param[in] context CMAC計算元のSHA256コンテキスト +void AddCmac(nn::fs::FileOutputStream* file, nn::crypto::Sha256Context* context) +{ + nn::Result result; + + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + context->GetHash(sha256Hash); + + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, nn::crypto::Sha256Context::HASH_SIZE, common::cmacKey); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + s32 writeSize; + result = file->TryWrite(&writeSize, cmac, sizeof(cmac), false); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.h new file mode 100644 index 0000000..83d39d3 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/Exporter.h @@ -0,0 +1,57 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Exporter.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef EXPORTER_H_ +#define EXPORTER_H_ + +#include +#include "HardwareStateManager.h" + +namespace ConsoleBackup +{ + +// 出力ファイルリストのコンテキストを初期化する。出力ファイルリストを +// 生成する前に必ず呼び出す必要がある +void InitializeFileListContext(); + +// 新たにスレッドを起動して、DSiWareのセーブデータをSDカードに出力する +void ExportTwlSaveData(); + +// 新たにスレッドを起動して、TWL写真領域のデータをSDカードに出力する +void ExportTwlPhotoData(); + +// 新たにスレッドを起動して、TWLサウンド領域のデータをSDカードに出力する +void ExportTwlSoundData(); + +// 本体固有情報をSDカードに出力する +// 新たにスレッドを起動して、CTR領域のセーブデータをSDカードに出力する +void ExportData(common::HardwareStateManager& manager); + +// NIMのセーブデータをSDカードから削除する +void DeleteNimSaveData(); + +// 出力スレッドの進捗を返す +u32 GetProgress(); + +// 出力スレッドが終了したかどうか +bool IsExportThreadFinished(); + +// 出力スレッドを終了する +void FinalizeExportThread(); + + +} + +#endif /* EXPORTER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/OMakefile new file mode 100644 index 0000000..7bd1982 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/OMakefile @@ -0,0 +1,80 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +SUPPORTED_TARGETS = CTR-T*.Process.MPCore.* +CTR_APPTYPE = CARD + +TARGET_PROGRAM = ConsoleBackup + +SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) +INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \ + ../common + +SOURCES[] = + ConsoleBackup.cpp + Controller.cpp + Exporter.cpp + ../common/Util.cpp + ../common/DrawSystemState.cpp + ../common/FileTransfer.cpp + ../common/FileChecker.cpp + ../common/SdReaderWriter.cpp + ../common/HeapManager.cpp + ../common/SdLogger.cpp + ../common/wave.cpp + ../common/SimplePlayer.cpp + ../common/LogConsole.cpp + ../common/CommonLogger.cpp + ../common/SdMountManager.cpp + ../common/PlayHistoryManager.cpp + ../common/VersionDetect.cpp + ../common/ResFont.cpp + ../common/HardwareStateManager.cpp + +CTR_BANNER_SPEC = $(TARGET_PROGRAM).bsf + +ROMFS_ROOT = ../common/romfiles + +SHADER_BIN = nnfont_RectDrawerShader.shbin +SHADER_PATH = $(ROMFS_ROOT)/$(SHADER_BIN) + +ROMFS_DEPENDENCIES = $(SHADER_PATH) + +LIBS += libnn_cfg \ + libnn_crypto \ + libnn_mcu \ + libnn_i2c \ + libnn_ps \ + lib_demo \ + libnn_nwm \ + libnn_friends \ + libnn_nim \ + libnn_am \ + +INSTALL_SDK_TOOL = true + +ROM_SPEC_FILE = $(TARGET_PROGRAM).rsf +DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/RepairTool.desc + +include $(ROOT_OMAKE)/modulerules + +VERSION_H = $(file ../../generated/$(TARGET_PROGRAM)/version.h) + +$(VERSION_H): $(SOURCES) + section + bash genversion.sh + +RequireSetup($(VERSION_H)) +build: $(VERSION_H) $(DEFAULT_TARGETS) diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/banner/model.cbmd b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleBackup/banner/model.cbmd new file mode 100644 index 0000000000000000000000000000000000000000..f1c7b6279e13f5278c419d615d7d03d5660005e5 GIT binary patch literal 198785 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 MDvwobWH ../generated/ConsoleBackup/version.h diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.bsf b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.bsf new file mode 100644 index 0000000000000000000000000000000000000000..104a94da96cd5d963d349ca5c6fcce26ae7e3cbb GIT binary patch literal 2302 zcmb7@%}&BV6ov0r6Q4m6H@Z+KhJ|rsM6B@-iN&}UA&7ugsXvL2;Tss=z?CbPK7-HU z)`;f}40Xb^b~0(1PS3sfyQi1I&zzJblt2oys8<2cr*etalpCCea)sR)c7e2|i~WpD z%Rcro7N2+UHiF)~Uy~`R|H-i|w|LvZ70EsBD^ipPeP2RkjQky)vxJ;2?`%a`MK<2; zYzL^;09`kOt2fp#wk|zHu)7fFWNu`{_Q#rGY=0EX_#@P9p&Pog2InT%2DrMq)-it1 z5bM@4GJuy|>5rV>09lO8Ax`gbHW_E@jjjxRjO#yrP0mrF2RAOE<`)kz2d6kOwUp*I z93`+s$UK?1hPc}iwV4q^!TDfENmN43p675qs~7dEzSM{MR`2Q)_czs1k9R9iC+b3# z6`dZs&Cc53ZE5GPQMHZQ&9SRVZt6E>3%bKUwF@%riEnqMis|N;Ye~iGdv;(iqYmL% zgnF^1x3#kaqppIk4p-ag{~U}rnxmrmV?1-}BHb4wwvf|Jvo7{BYB!CoUDx@U+m9xI zZ~1Ac&QC+NAI&!0$)cen)MPOjjbG&*sbyA9+-82Nvlu4Tel%g~#LiszPN!@7sdh7@sr_j7@Sk?igDXGP`DhB-LF)Z@%5t2-lYH^vj#EOln +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "demo.h" + +#include +#include + +#include "DrawSystemState.h" +#include "Controller.h" +#include "SimplePlayer.h" +#include "CommonLogger.h" +#include "SDMountManager.h" +#include "HeapManager.h" +#include "VersionDetect.h" +#include "Util.h" +#include "ResFont.h" +#include "HardwareStateManager.h" + +// svnリビジョン埋め込み用 +#include "../../generated/ConsoleRestore/version.h" +#ifndef RESTORE_VERSION_NUM +#define RESOTRE_VERSION_NUM 0 +#endif + +namespace { + +// グラフィックスに割り当てるメモリ +const size_t s_GxHeapSize = 0x800000; + +common::Util s_HwUtility; + +demo::RenderSystemDrawing s_RenderSystem; + +} // namespace + +namespace ConsoleRestore{ + +void FinalizeAll(common::HardwareStateManager& manager) +{ + common::Logger::GetLoggerInstance()->Finalize(); + // アンマウント + nn::fs::Unmount("nand:"); + nn::fs::Unmount("sdmc:"); + s_RenderSystem.Finalize(); + + manager.Finalize(); + nn::ps::Finalize(); + nn::ptm::CTR::FinalizeForSystemMenu(); + nn::cfg::CTR::system::Finalize(); + nn::cfg::CTR::init::Finalize(); + nn::hid::Finalize(); + nn::fs::Finalize(); + + nn::applet::PrepareToCloseApplication(); + nn::applet::CloseApplication(); +} + +extern "C" void nnMain(void) +{ + nn::Result result; + + // os の初期化 + nn::os::Initialize(); + + // fs の初期化 + nn::fs::Initialize(); + + // appletの初期化 + nn::applet::Enable( false ); + + // hid の初期化 + result = nn::hid::Initialize(); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + + // ndmの初期化 + result = nn::ndm::Initialize(); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + + // デーモンの自律動作を停止 + result = nn::ndm::Suspend(nn::ndm::DN_CEC); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + result = nn::ndm::Suspend(nn::ndm::DN_BOSS); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + result = nn::ndm::Suspend(nn::ndm::DN_FRIENDS); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + result = nn::ndm::Suspend(nn::ndm::DN_NIM); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + + // cfg の初期化 + nn::cfg::CTR::init::Initialize(); + nn::cfg::CTR::system::Initialize(); + + // 時計設定用ptm初期化 + nn::ptm::CTR::InitializeForSystemMenu(); + + // ps の初期化 + nn::ps::Initialize(); + + // amの初期化 + nn::am::InitializeForSystemMenu(); + + // ヒープの確保 + common::HeapManager::GetHeap()->Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR); + + // RenderSystem の準備 + uptr heapForGx = reinterpret_cast(common::HeapManager::GetHeap()->Allocate(s_GxHeapSize)); + s_RenderSystem.Initialize(heapForGx, s_GxHeapSize); + + // ResFontの初期化 + common::InitializeResFont(); + + // サウンドスレッドの起動 + common::InitializeSimplePlayer(); + + // ログ描画の初期化 + common::Logger::GetLoggerInstance()->Initialize(common::CONSOLE_WIDTH, common::CONSOLE_HEIGHT, + common::CONSOLE_MAX_LINE, &s_RenderSystem); + + // RenderSystemを作ってからログが出せる + common::Logger::InitializeEjectThread(); + common::Logger::SetEjectHandler(OnSdEjected); + common::Logger::SetInsertHandler(OnSdInserted); + COMMON_LOGGER("\n"); + COMMON_LOGGER("CTR Console Restore start\n"); + + // ボタン入力 + nn::hid::PadReader s_PadReader; + nn::hid::PadStatus padStatus; + + // データの準備 + s_HwUtility.Initialize(); + common::HardwareStateManager manager(s_HwUtility); + + // 情報出力 + COMMON_LOGGER("CTR Console Restore %s Rev.%s\n", __DATE__, RESTORE_VERSION_NUM); + COMMON_LOGGER("System Ver. %d.%d.%d-%d\n", s_HwUtility.GetCupMajorVersion(), + s_HwUtility.GetCupMinorVersion(), + s_HwUtility.GetCupMicroVersion(), + s_HwUtility.GetNupVersion()); + COMMON_LOGGER("System Region %s\n", s_HwUtility.GetRegionCodeA3()); + COMMON_LOGGER("Serial Number %s\n", s_HwUtility.GetSerialNumber()); + COMMON_LOGGER("Device ID %llu\n", s_HwUtility.GetInfraDeviceId()); + COMMON_LOGGER("MAC Address %s\n", s_HwUtility.GetMacAddress()); + COMMON_LOGGER("Friend Code %04u-%04u-%04u\n", + static_cast(s_HwUtility.GetFriendcode() / 100000000ULL % 10000ULL), + static_cast(s_HwUtility.GetFriendcode() / 10000ULL % 10000ULL), + static_cast(s_HwUtility.GetFriendcode() % 10000ULL) ); + + + bool flip = false; + InitializeState(); + + for(;;) + { + bool nextStep = false; + + s_PadReader.ReadLatest(&padStatus); + + // AまたはSTARTボタンで進行 + if(padStatus.trigger & nn::hid::BUTTON_A || + padStatus.trigger & nn::hid::BUTTON_START) + { + nextStep = true; + } + + // LまたはRボタンで上下画面フリップ + if(padStatus.trigger & nn::hid::BUTTON_R || + padStatus.trigger & nn::hid::BUTTON_L) + { + flip = !flip; + } + + // コンソールスクロール + if(padStatus.hold & nn::hid::BUTTON_UP) + { + common::Logger::GetLoggerInstance()->ScrollUp(); + } + + // コンソールスクロール + if(padStatus.hold & nn::hid::BUTTON_DOWN) + { + common::Logger::GetLoggerInstance()->ScrollDown(); + } + + if(padStatus.hold & nn::hid::BUTTON_LEFT) + { + common::Logger::GetLoggerInstance()->ScrollToBegin(); + } + + if(padStatus.hold & nn::hid::BUTTON_RIGHT) + { + common::Logger::GetLoggerInstance()->ScrollToEnd(); + } + + // 情報更新 + // ACアダプタ + std::string adapterState; + if(manager.IsAdapterConnected()) + { + adapterState += ::std::string("Connected"); + } + else + { + adapterState += ::std::string("Not Connected"); + } + + // 操作用メッセージ + // 進捗確認メッセージを兼ねる? + ::std::vector operationMessage; + + ControlState(manager, operationMessage, nextStep); + + nn::util::FloatColor titleColor; + + if(GetRestoreMode() == RESTORE_MODE_RESTORE) + { + titleColor.r = 0.1f; + titleColor.g = 0.25f; + titleColor.b = 0.1f; + } + else if(GetRestoreMode() == RESTORE_MODE_NUP_ONLY) + { + titleColor.r = 0.35f; + titleColor.g = 0.35f; + titleColor.b = 0.f; + } + else if(GetRestoreMode() == RESTORE_MODE_GET_IVS) + { + titleColor.r = 1.0f; + titleColor.g = 0.2f; + titleColor.b = 0.2f; + } + else if(GetRestoreMode() == RESTORE_MODE_CHECK_SD) + { + titleColor.r = 0.2f; + titleColor.g = 0.2f; + titleColor.b = 1.2f; + } + + // 上画面表示 + common::DrawSystemState("CTR Console Restore", + s_RenderSystem, + titleColor, + flip, + adapterState, + RESTORE_VERSION_NUM, + s_HwUtility.GetCupMajorVersion(), + s_HwUtility.GetCupMinorVersion(), + s_HwUtility.GetCupMicroVersion(), + s_HwUtility.GetNupVersion(), + s_HwUtility.GetBatteryRemain(), + s_HwUtility.GetInfraDeviceId(), + s_HwUtility.GetFriendcode(), + GetProgress(), + IsRestoreFailed(), + IsRestoreSucceeded(), + s_HwUtility.GetMacAddress(), + operationMessage, + s_HwUtility.GetRegion(), + s_HwUtility.GetSerialNumber() + ); + + if (GetRestoreMode() != RESTORE_MODE_RESTORE) + { + const u8 spaceSize = 10; + const u8 lineBottom = 23; + const u32 screenWidth = 400; + + s_RenderSystem.SetColor(1.f, 1.f, 1.f); + + if (GetRestoreMode() == RESTORE_MODE_NUP_ONLY) + { + s_RenderSystem.DrawText(0, lineBottom * spaceSize, "NUP-Only Mode"); + } + else if (GetRestoreMode() == RESTORE_MODE_GET_IVS) + { + s_RenderSystem.DrawText(0, lineBottom * spaceSize, "GET-SDCI Mode"); + } + else if (GetRestoreMode() == RESTORE_MODE_CHECK_SD) + { + s_RenderSystem.DrawText(0, lineBottom * spaceSize, "CHECK-SD Mode"); + } + + s_RenderSystem.SetColor(titleColor.r, titleColor.g, titleColor.b); + s_RenderSystem.FillRectangle(0, lineBottom * spaceSize, screenWidth, spaceSize); + s_RenderSystem.SetColor(1.f, 1.f, 1.f); + } + + s_RenderSystem.SwapBuffers(); + + // デフォルトで下画面に描画するもの + s_RenderSystem.SetRenderTarget(common::GetRenderTarget(NN_GX_DISPLAY1, flip)); + if(IsRestoreSucceeded()) + { + s_RenderSystem.SetClearColor(common::GetRenderTarget(NN_GX_DISPLAY1, flip), SUCCESS_COLOR); + } + else if(IsRestoreFailed()) + { + s_RenderSystem.SetClearColor(common::GetRenderTarget(NN_GX_DISPLAY1, flip), FAIL_COLOR); + } + else + { + s_RenderSystem.SetClearColor(common::GetRenderTarget(NN_GX_DISPLAY1, flip), NORMAL_COLOR); + } + s_RenderSystem.Clear(); + s_RenderSystem.SetColor(1.f, 1.f, 1.f); + + common::Logger::GetLoggerInstance()->DrawConsole(); + s_RenderSystem.SwapBuffers(); + + + s_RenderSystem.WaitVsync(NN_GX_DISPLAY_BOTH); + + // 電源長押しで終了 + if ( nn::applet::IsExpectedToCloseApplication()) + { + FinalizeAll(manager); + } + } +} + + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.rsf b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.rsf new file mode 100644 index 0000000..981df7c --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/ConsoleRestore.rsf @@ -0,0 +1,54 @@ +BasicInfo: + Title : ConsoleRestore + ProductCode: CTR-P-22UA + BackupMemoryType: None + +TitleInfo: + Use: Evaluation + Category: Application + UniqueId: 0xf8022 + Version: 0 + +SystemControlInfo: + AppType : Application + StackSize : 0x4000 + Dependency : + - gpio + - pdn + - spi + - i2c + - mcu + - ptm + - codec + - cfg + - hid + - gsp + - friends + - nim + - ac + - ndm + +AccessControlInfo: + Priority : 16 + DisableDebug : true + + FileSystemAccess: + - DirectSdmc + - Debug + - Core + - CategoryFileSystemTool + + IoAccessControl: + - FsMountCardSpi + - FsMountNand + - FsMountTwln + +Option: + FreeProductCode: true + +CardInfo: + CardDevice: None + +Rom: + # ROM に含めるファイルシステムのルートパスを指定します。 + HostRoot: "$(ROMFS_ROOT)" \ No newline at end of file diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.cpp new file mode 100644 index 0000000..560c971 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.cpp @@ -0,0 +1,1644 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Controller.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Controller.h" +#include "FileChecker.h" +#include "SimplePlayer.h" +#include "CommonLogger.h" +#include "Importer.h" +#include "Updater.h" +#include "NtpClient.h" +#include "TitleDownloader.h" +#include "Shop.h" +#include "Util.h" + +namespace ConsoleRestore +{ + +namespace +{ + +// ネットワーク設定ファイルを読んだかどうか +bool s_ReadSettingDone = false; +// インターネット設定を読んだ結果 +bool s_ReadSettingIsSuccess = false; +// NUP専用モードかどうか +bool s_NupOnlyMode = false; +// IVS取得専用モードかどうか +bool s_GetIvsOnlyMode = false; +// SDカード確認専用モード +bool s_CheckSdOnlyMode = false; +// NUPスキップモードかどうか +bool s_SkipNupMode = false; + +// APSettingの書式が無い警告サウンドを鳴らしたかどうか +bool s_ExistAPSettingAnnotation = false; +// APSettingの書式が違っている警告サウンドを鳴らしたかどうか +bool s_APSettingAnnotation = false; +// シリアルナンバーがない警告サウンドを鳴らしたかどうか +bool s_SerialNumberAnnotation = false; +// 失敗サウンドを鳴らしたかどうか +bool s_PlayedFailSound = false; +// 操作開始サウンドを鳴らしたかどうか +bool s_PlayedStartCursor = false; +// リブート開始前サウンドを鳴らしたかどうか +bool s_PlayedRebootCursor = false; +// SD抜き出し前サウンドを鳴らしたかどうか +bool s_PlayedSdPullOutCursor = false; +// SDに書き込みできない警告サウンドを鳴らしたかどうか +bool s_SdWriteProetctAnnotation = false; +// WiFiがOFFである警告サウンドを鳴らしたかどうか +bool s_WifiStatusOffAnnotation = false; + +// ネットワークアップデートを開始したかどうか +bool s_ExecuteFgNup = false; +// FGNUPを何回リトライしたか +u32 s_FgNupRetryCount = 0; +// 時計同期モードかどうか +bool s_IsSyncClock = false; +// TWLタイトルのダウンロードを開始したかどうか +bool s_ExecuteTitleDownload = false; +// TWLタイトルのダウンロードを何回リトライしたか +u32 s_TitleDownloadRetryCount = 0; + +// ショップ処理を開始したかどうか +bool s_ShopOperationExecuted[SHOP_OPERATION_NUM_MAX]; +// ショップ処理を何回リトライしたか +u32 s_ShopOperationRetryCount[SHOP_OPERATION_NUM_MAX]; + +void PutAliveMessage(::std::vector& operationMessage, const char* str); +bool CheckAndReadAPSetting(::std::vector& operationMessage); + +bool NeedsAcAdater(common::HardwareStateManager& manager) +{ + return manager.IsBatteryLower() && !manager.IsAdapterConnected(); +} + +bool HasValidRtcData() +{ + return !s_CheckSdOnlyMode && !s_NupOnlyMode && !s_GetIvsOnlyMode; +} + +typedef enum RestoreState +{ + STARTUP, // 初期値 + INITIALIZE_CONSOLE, // セーブデータ領域のNAND初期化を行う + SERIAL_IS_NOT_IN_SD, // シリアルナンバーファイルがSDカードにないことを表示 + WAIT_START_UPDATE, // アップデート開始入力待ち + WAIT_START_IMPORT, // 書き込み開始入力待ち + WAIT_START_SYNC_CLOCK, // 時計合わせ開始入力待ち + IMPORT_RTC, // RTC同期 + UPDATE_IN_PROGRESS, // アップデート中 + UPDATE_DONE, // アップデート完了 + NUP_ONLY_WAIT_SD_EJECT, // NUP_ONLYモードでSDカード抜き待ち + NUP_ONLY_WAIT_NEXT, // NUP_ONLYモードでキー入力待ち + WAIT_START_TRANSFER_ACCOUNT, // アカウント転送開始入力まち + TRANSFER_ACCOUNT, // アカウント転送を完了させる + TRANSFER_ACCOUNT_DONE, // アカウント転送完了 + DOWNLOAD_IVS, // インフラからIVSを取得する + DOWNLOAD_IVS_DONE, // インフラからIVSを取得完了 + DOWNLOAD_IVS_WAIT_NEXT, // IVS取得モードでキー入力待ち + CHECK_IVS, // IVSとSDカードのセーブデータディレクトリの一致を確認 + CHECK_SD_DIRECTORY, // SDカードのIVS依存ディレクトリを探す + CHECK_SD_DIRECTORY_SUCCESS, // SDカードのIVS依存ディレクトリチェック完了 + CHECK_SD_DIRECTORY_FAIL, // SDカードのIVS依存ディレクトリが見つからなかった + WAIT_START_DELETE_ACCOUNT, // ショップアカウント削除開始入力待ち, + DELETE_ACCOUNT, // ショップアカウントを削除する + DELETE_ACCOUNT_DONE, // ショップアカウント削除完了 + SYNC_TICKET, // eTicketを同期する + READ_FILELIST, // ファイル一覧の読み込み + RESTORE_TWL_NAND, // TWL NANDの書き込み中 + RESTORE_TWL_SOUND, // TWLサウンドの書き込み中 + RESTORE_TWL_PHOTO, // TWL写真の書き込み中 + RESTORE_IN_PROGRESS, // 書き込み中 + POST_RESTORE, // 書き込み後の処理 + RESTORE_DONE, // 書き込み完了 + REBOOTING, // 再起動を行う + ERASE, // 削除処理を行う + RESTORE_CAL, // cfgの一部をcal値で上書きする + TIME_ADJUST, // 時計あわせを行う + DOWNLOAD_TWL, // TWLアプリ本体をダウンロードする + WAIT_SD_EJECT, // SDカードぬき待ち + ALL_DONE, // すべて完了 + INITIALIZE_AND_SHUTDOWN, // 本体初期化後にシャットダウン中 + FAIL // 失敗 +} RestoreState; + + + +// Restore状態管理 +RestoreState s_RestoreState = STARTUP; +// Restoreモード管理 +RestoreMode s_RestoreMode = RESTORE_MODE_RESTORE; + +void CheckSdInserted(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckAcAdapter(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckSdWritable(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckApSetting(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckNupExecuted(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckDownloadIvs(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckAccountDeleted(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckAccountTransfered(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckWriteFinished(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckReadIvs(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckConsoleInitialized(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckExistsSerialNumber(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckIvsinSd(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); +void CheckRegioinSd(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep); + +// SDカード挿入チェック +void CheckSdInserted(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + if (nn::fs::IsSdmcInserted()) + { + CheckAcAdapter(manager, message, goNextStep); + } + else + { + message.push_back(::std::string("Insert SD Card!!")); + s_RestoreState = STARTUP; + } +} + +// ACアダプタが必要かどうかチェック +void CheckAcAdapter(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + // ACアダプタが必要か? + if (NeedsAcAdater(manager)) + { + message.push_back(::std::string("Connect AC Adapter!!")); + s_RestoreState = STARTUP; + } + else + { + CheckSdWritable(manager, message, goNextStep); + } +} + +// SDカード書き込みチェック +void CheckSdWritable(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + // SDカードに書き込みできるか? + if (nn::fs::IsSdmcWritable()) + { + CheckApSetting(manager, message, goNextStep); + } + else + { + if (!s_SdWriteProetctAnnotation) + { + s_SdWriteProetctAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + message.push_back(::std::string("Can't Write SD Card!!\n")); + s_RestoreState = STARTUP; + } +} + + +// 設定ファイル書式チェック +void CheckApSetting(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + NN_UNUSED_VAR(manager); + NN_UNUSED_VAR(goNextStep); + + if (CheckAndReadAPSetting(message)) + { + s_RestoreState = IMPORT_RTC; + } + else + { + s_RestoreState = STARTUP; + } +} + +// NUP済みかどうかチェック +void CheckNupExecuted(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + if (common::ExistsUpdateCheckedFile()) + { + if (s_NupOnlyMode) + { + s_RestoreState = WAIT_START_DELETE_ACCOUNT; + } + else + { + CheckAccountDeleted(manager, message, goNextStep); + } + } + else + { + // NUPを実行 + if (CheckAndReadAPSetting(message)) + { + if (nn::nwm::CTR::IsWifiOn()) + { + // ネットワークアップデートを行う + s_RestoreState = WAIT_START_UPDATE; + } + else + { + if (!s_WifiStatusOffAnnotation) + { + s_WifiStatusOffAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + + message.push_back(::std::string("Wireless is Off\n")); + s_RestoreState = STARTUP; + } + } + } +} + +// インフラからIVS取得済みかチェック +void CheckDownloadIvs(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + NN_UNUSED_VAR(message); + NN_UNUSED_VAR(goNextStep); + + // IVS取得確認ファイルがあるか? + if (common::ExistsDownloadIvsCheckedFile()) + { + if(s_GetIvsOnlyMode) + { + s_RestoreState = DOWNLOAD_IVS_WAIT_NEXT; + } + else + { + CheckWriteFinished(manager, message, goNextStep); + } + } + else + { + COMMON_LOGGER("Download SDCI\n"); + s_RestoreState = DOWNLOAD_IVS; + } + +} + +// アカウント削除済みかチェック +void CheckAccountDeleted(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + // アカウント削除確認ファイルがあるか? + if (common::ExistsDeleteAccountChecked()) + { + CheckAccountTransfered(manager, message, goNextStep); + } + else + { + // 同一本体下記書き戻しの場合はアカウント削除しない + if(EqualsDeviceIdFileandDeviceId(manager).IsSuccess()) + { + // IVS専用モードならばIVSを取得させる + if(s_GetIvsOnlyMode) + { + CheckDownloadIvs(manager, message, goNextStep); + } + else + { + CheckAccountTransfered(manager, message, goNextStep); + } + } + else + { + s_RestoreState = WAIT_START_DELETE_ACCOUNT; + } + } +} + +// アカウント移行済みかチェック +void CheckAccountTransfered(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + // アカウント移行確認ファイルがあるか? + if (common::ExistsTransferAccountChecked()) + { + CheckDownloadIvs(manager, message, goNextStep); + } + else + { + s_RestoreState = WAIT_START_TRANSFER_ACCOUNT; + } +} + +// 書き込み完了かどうかチェック +void CheckWriteFinished(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + NN_UNUSED_VAR(goNextStep); + + // SDカードに書き込み完了ファイルがあるか? + if (common::ExistsWriteFinishedFile()) + { + if (CheckAndReadAPSetting(message)) + { + if (nn::nwm::CTR::IsWifiOn()) + { + // 削除処理を行う + s_RestoreState = WAIT_START_SYNC_CLOCK; + } + else + { + if (!s_WifiStatusOffAnnotation) + { + s_WifiStatusOffAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + message.push_back(::std::string("Wireless is Off\n")); + } + } + } + else + { + CheckReadIvs(manager, message, goNextStep); + } +} + +// IVSを読めるかどうかチェック +void CheckReadIvs(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + // IVSを読めるか? + if (manager.CanReadIvs()) + { + CheckConsoleInitialized(manager, message, goNextStep); + } + else + { + s_RestoreState = FAIL; + COMMON_LOGGER("Can't Read SDCI!!"); + } +} + +// 本体初期化済みかどうかチェック +void CheckConsoleInitialized(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + // 本体初期化完了ファイルがあるか? + if (common::ExistsConsoleInitializedFile()) + { + CheckRegioinSd(manager, message, goNextStep); + } + else + { + CheckIvsinSd(manager, message, goNextStep); + } +} + +// シリアルナンバーがあるかどうかチェック +void CheckExistsSerialNumber(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + NN_UNUSED_VAR(manager); + NN_UNUSED_VAR(message); + NN_UNUSED_VAR(goNextStep); + + + // SDカードにシリアルナンバーがあるか? + if (common::ExistsSerialNumberFile()) + { + u8 serial[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + nn::Result result = ReadSerialNumber(serial); + if (result.IsSuccess()) + { + s_RestoreState = WAIT_START_IMPORT; + } + else + { + s_RestoreState = FAIL; + } + } + else + { + COMMON_LOGGER("Can't Read Serial Number in SD Card!!\n"); + s_RestoreState = SERIAL_IS_NOT_IN_SD; + } +} + +// SDカードにIVSがあるかどうかチェック +void CheckIvsinSd(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + NN_UNUSED_VAR(manager); + NN_UNUSED_VAR(message); + NN_UNUSED_VAR(goNextStep); + + if (common::ExistsIVSFile()) + { + s_RestoreState = INITIALIZE_CONSOLE; + } + else + { + // 移行不能なのでFAIL + COMMON_LOGGER("Can't Read SDCI in SD Card!!\n"); + s_RestoreState = FAIL; + } +} + +// SDカードにリージョンデータがあるかどうかチェック +void CheckRegioinSd(common::HardwareStateManager& manager, ::std::vector& message, bool& goNextStep) +{ + NN_UNUSED_VAR(message); + NN_UNUSED_VAR(goNextStep); + + // SDカードにリージョンデータがあるか? + if (common::ExistsRegionData()) + { + // リージョンデータは一致しているか? + if (EqualsRegionDataandRegion().IsFailure()) + { + COMMON_LOGGER("Current Region and Region in SD differ!!\n"); + s_RestoreState = FAIL; + } + else + { + CheckExistsSerialNumber(manager, message, goNextStep); + } + + } + else + { + // 移行不能なのでFAIL + COMMON_LOGGER("Can't Read Region in SD Card!!\n"); + s_RestoreState = FAIL; + } +} + +void ShopOperationSuccess(ShopOperation op, const char* logMessage, RestoreState nextState) +{ + COMMON_LOGGER("%s", logMessage); + if (op == SHOP_OPERATION_UNREGISTER || op == SHOP_OPERATION_FORCE_UNREGISTER) + { + CreateDeleteAccountFinishedFile(); + } + else if (op == SHOP_OPERATION_GET_IVS) + { + CreateDownloadIvsFinishedFile(); + } + + s_RestoreState = nextState; + +} + +void ShopOperationSingleTemplate( + common::HardwareStateManager& manager, + std::vector& message, + ShopOperation op, + const char* aliveMessage, + const char* logMessage, + const char* retryLogMessage, + RestoreState nextState + ) +{ + // ACアダプタが必要か? + if (NeedsAcAdater(manager)) + { + message.push_back(::std::string("Connect AC Adapter!!")); + } + + // アップデートを行う + if (!s_ShopOperationExecuted[op]) + { + if (ImportCountryLanguageData().IsSuccess()) + { + StartShopOperationSingle(op); + s_ShopOperationExecuted[op] = true; + } + else + { + s_RestoreState = FAIL; + } + } + + // 動いていることを表示 + { + PutAliveMessage(message, aliveMessage); + } + + if (IsShopOperationSingleFinished()) + { + FinalizeShopOperationSingle(); + // エラーがあったら表示する + if (GetShopOperationSingleResult().IsSuccess()) + { + ShopOperationSuccess(op, logMessage, nextState); + } + // IVSがアップロードされていない場合もあるため + // IVSを取得できない状況も成功として扱う + // IVSサイズが違う場合も成功として扱う + else if(op == SHOP_OPERATION_GET_IVS && ( GetShopOperationSingleResult() == nn::nim::ResultCannotGetIvs() || + GetShopOperationSingleResult() == nn::nim::ResultInvalidData() + )) + { + ShopOperationSuccess(op, logMessage, nextState); + } + else if(op == SHOP_OPERATION_CONNECT && nextState == TRANSFER_ACCOUNT_DONE && + GetShopOperationSingleResult() == nn::nim::ResultNeedGetIvs()) + + { + NN_LOG("ResultNeedGetIvs\n"); + ShopOperationSuccess(op, logMessage, nextState); + } + else + { + if (GetShopOperationSingleResult().IsFailure()) + { + if (GetShopOperationSingleResult() == nn::ac::ResultFailedConnectAp()) + { + COMMON_LOGGER("Failed Connect AccesPoint."); + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromSeconds(5)); + } + + + // APが見つからない + if (GetUpdateResult() == nn::ac::ResultNotFoundAccessPoint()) + { + COMMON_LOGGER("No Access Point Found!"); + } + } + + if (s_ShopOperationRetryCount[op]++ < RETRY_MAX) + { + // エラーのためやり直す + COMMON_LOGGER_RESULT_IF_FAILED(GetShopOperationSingleResult()); + COMMON_LOGGER("%s %d\n", retryLogMessage, s_ShopOperationRetryCount[op]); + + // スレッドを作るとこからやり直し + s_ShopOperationExecuted[op] = false; + } + else + { + s_RestoreState = FAIL; + } + } + + } +} + +void UpdateOperation(common::HardwareStateManager& manager, ::std::vector& message, RestoreState nextState) +{ + // ACアダプタが必要か? + if (NeedsAcAdater(manager)) + { + message.push_back(::std::string("Connect AC Adapter!!")); + } + + // アップデートを行う + if (!s_ExecuteFgNup) + { + if (ImportCountryLanguageData().IsSuccess()) + { + StartFGNetworkUpdate(); + s_ExecuteFgNup = true; + } + else + { + s_RestoreState = FAIL; + } + } + + // 動いていることを表示 + { + PutAliveMessage(message, "Updating"); + } + + if (IsNetworkUpdateFinished()) + { + FinishFGNetworkUpdate(); + // エラーがあったら表示する + if (GetUpdateResult().IsFailure()) + { + // APが見つからない + if (GetUpdateResult() == nn::ac::ResultNotFoundAccessPoint()) + { + COMMON_LOGGER("No Access Point Found!"); + } + } + + if (GetUpdateResult().IsSuccess()) + { + COMMON_LOGGER("Network Update Finished.\n"); + if(nextState == UPDATE_DONE) + { + // アップデート完了ファイルを作成 + CreateUpdateFinishedFile(); + } + + s_RestoreState = nextState; + } + else + { + if (s_FgNupRetryCount++ < RETRY_MAX) + { + // エラーのためやり直す + COMMON_LOGGER_RESULT_IF_FAILED(GetUpdateResult()); + COMMON_LOGGER("Network Update Failed. Retrying... %d\n", s_FgNupRetryCount); + + // FGNUP用のスレッドを作るとこからやり直し + s_ExecuteFgNup = false; + } + else + { + s_RestoreState = FAIL; + } + } + + } +} + +bool CheckAndReadAPSetting(::std::vector& operationMessage) +{ + using namespace common; + + if (!ExistsAPSetting()) + { + if(!s_ExistAPSettingAnnotation) + { + s_ExistAPSettingAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + operationMessage.push_back(::std::string("Accsess_Point_Setting does not exist!")); + return false; + } + + // 設定ファイルからAP設定を読み込む + if (!s_ReadSettingDone) + { + s_ReadSettingDone = true; + s_ReadSettingIsSuccess = ReadSetting(&s_NupOnlyMode, &s_GetIvsOnlyMode, &s_CheckSdOnlyMode, &s_SkipNupMode); + } + + if (s_NupOnlyMode && s_GetIvsOnlyMode + || s_GetIvsOnlyMode && s_CheckSdOnlyMode + || s_CheckSdOnlyMode && s_NupOnlyMode) + { + operationMessage.push_back("Only one special mode setting is valid!!"); + s_ReadSettingIsSuccess = false; + } + else if(s_NupOnlyMode && s_SkipNupMode) + { + operationMessage.push_back("Both NUP_ONLY and SKIP_NUP are described!!"); + s_ReadSettingIsSuccess = false; + } + else + { + if (s_NupOnlyMode) + { + s_RestoreMode = RESTORE_MODE_NUP_ONLY; + } + + if (s_GetIvsOnlyMode) + { + s_RestoreMode = RESTORE_MODE_GET_IVS; + } + + if(s_CheckSdOnlyMode) + { + s_RestoreMode = RESTORE_MODE_CHECK_SD; + } + } + + if (!s_ReadSettingIsSuccess) + { + operationMessage.push_back(::std::string("Invalid Accsess_Point_Setting format!")); + if(!s_APSettingAnnotation) + { + s_APSettingAnnotation = true; + common::PlaySound(common::SOUND_ANNOTATION); + } + } + + return s_ReadSettingIsSuccess; +} + +void PutAliveMessage(::std::vector& operationMessage, const char* str) +{ + std::string message = std::string(str); + static u8 i = 0; + if (i < 0xff / 4) + { + operationMessage.push_back(message + std::string(" /")); + } + else if (i < 0xff * 2 / 4) + { + operationMessage.push_back(message + std::string(" |")); + } + else if (i < 0xff * 3 / 4) + { + operationMessage.push_back(message + std::string(" \\")); + } + else + { + operationMessage.push_back(message + std::string(" -")); + } + i += 4; +} + +nn::Result ExecSyncMcuRtc(common::HardwareStateManager& manager) +{ + nn::Result result = nn::ResultSuccess(); + if(!common::ExistsRtcSyncFinishedFile()) + { + result = ImportMcuRtc(manager); + if(result.IsSuccess()) + { + // RTCを同期完了ファイルを作る + CreateRtcSyncFinishedFile(); + } + } + + return result; +} + +} // namespace + +void ControlState(common::HardwareStateManager& manager, ::std::vector& operationMessage, bool& nextStep) +{ + using namespace common; + nn::Result result; + + // 状態遷移Controller + switch (s_RestoreState) + { + // 起動時 + case STARTUP: + { + CheckSdInserted(manager, operationMessage, nextStep); + } + break; + + + case INITIALIZE_CONSOLE: + { + COMMON_LOGGER("Initialize Console\n"); + + // 本体初期化完了ファイルを作る + CreateConsoleInitializedFile(); + + // ファイルシステムの初期化を行う + InitializeFileSystem(); + s_RestoreState = REBOOTING; + } + break; + + case WAIT_START_UPDATE: + { + operationMessage.push_back(::std::string("Push A or START Button")); + operationMessage.push_back(::std::string("Network Update Mode")); + if (!s_PlayedStartCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedStartCursor = true; + } + + if (nextStep) + { + COMMON_LOGGER("Start Network Update\n"); + s_RestoreState = UPDATE_IN_PROGRESS; + } + } + break; + + case WAIT_START_IMPORT: + { + u8 serial[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + result = ReadSerialNumber(serial); + if (result.IsSuccess()) + { + ::std::string serialStr(reinterpret_cast (serial)); + operationMessage.push_back(::std::string("Serial Number in SD : ") + serialStr); + } + else + { + s_RestoreState = FAIL; + } + + operationMessage.push_back(::std::string("Push A or START Button")); + operationMessage.push_back(::std::string("Import Data Mode")); + if (!s_PlayedStartCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedStartCursor = true; + } + + if (nextStep) + { + s_RestoreState = READ_FILELIST; + } + } + break; + + case WAIT_START_SYNC_CLOCK: + { + operationMessage.push_back(::std::string("Push A or START Button")); + operationMessage.push_back(::std::string("DownLoad Twl Title and Clock Sync Mode")); + if (!s_PlayedStartCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedStartCursor = true; + } + + if (nextStep) + { + COMMON_LOGGER("Erase Trash\n"); + s_RestoreState = ERASE; + } + } + break; + + case IMPORT_RTC: + { + result = nn::ResultSuccess(); + if (HasValidRtcData()) + { + result = ExecSyncMcuRtc(manager); + if (result <= nn::fs::ResultVerificationFailed()) + { + s_RestoreState = FAIL; + } + else + { + if (s_SkipNupMode) + { + CheckAccountTransfered(manager, operationMessage, nextStep); + } + else + { + CheckNupExecuted(manager, operationMessage, nextStep); + } + } + } + else + { + if (s_CheckSdOnlyMode) + { + s_RestoreState = CHECK_IVS; + } + else + { + CheckNupExecuted(manager, operationMessage, nextStep); + } + } + } + break; + + // シリアルナンバーがSDカードにないこと警告 + case SERIAL_IS_NOT_IN_SD: + { + operationMessage.push_back(::std::string("Serial Number Is Not In SD Card")); + operationMessage.push_back(::std::string("Push A or START Button")); + operationMessage.push_back(::std::string("Import Data Mode")); + + if (!s_SerialNumberAnnotation) + { + s_SerialNumberAnnotation = true; + PlaySound(SOUND_ANNOTATION); + } + + if (nextStep) + { + s_RestoreState = READ_FILELIST; + } + } + break; + + // アップデート中 + case UPDATE_IN_PROGRESS: + { + UpdateOperation(manager, operationMessage, UPDATE_DONE); + } + break; + + // アップデート完了 + case UPDATE_DONE: + { + operationMessage.push_back(::std::string("Network Update Done.")); + operationMessage.push_back(::std::string("Press A or START Button to Reboot")); + + if (!s_PlayedRebootCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedRebootCursor = true; + } + + if (nextStep) + { + s_RestoreState = REBOOTING; + } + } + break; + + case DOWNLOAD_IVS: + { + ShopOperationSingleTemplate(manager, operationMessage, SHOP_OPERATION_GET_IVS, "Get SDCI", + "Get SDCI Finished.\n", "Get SDCI Failed. Retrying...", DOWNLOAD_IVS_DONE); + } + break; + + + case DOWNLOAD_IVS_DONE: + { + operationMessage.push_back(::std::string("Get SDCI Done.")); + operationMessage.push_back(::std::string("Press A or START Button to Reboot")); + + if (!s_PlayedRebootCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedRebootCursor = true; + } + + if (nextStep) + { + s_RestoreState = REBOOTING; + } + } + break; + + case CHECK_IVS: + { + operationMessage.push_back(::std::string("Insert User's SD Card")); + } + break; + + case CHECK_SD_DIRECTORY: + { + if (nn::fs::IsSdmcInserted()) + { + NN_LOG("Check User's SD Card\n"); + // ユーザのSDカードにはAP設定ファイルは無いはず + if (ExistsAPSetting()) + { + NN_LOG("AP Setting Exists. Retry\n"); + s_RestoreState = CHECK_IVS; + } + else + { + NN_LOG("Read User's SD Card\n"); + void* ivs; + size_t size; + manager.GetIvs(&ivs, &size); + std::string sysSaveRoot; + + common::Util::GetSaveDataDirectoryRoot(sysSaveRoot, ivs, size); + if (ExistsIvsDirectory(sysSaveRoot)) + { + s_RestoreState = CHECK_SD_DIRECTORY_SUCCESS; + } + else + { + s_RestoreState = CHECK_SD_DIRECTORY_FAIL; + } + } + } + } + break; + + case CHECK_SD_DIRECTORY_SUCCESS: + { + operationMessage.push_back(::std::string("Check User's SD Card Succeeded.")); + operationMessage.push_back(::std::string("Pull Out SD Card")); + } + break; + + case CHECK_SD_DIRECTORY_FAIL: + { + operationMessage.push_back(::std::string("Check User's SD Card Failed.")); + operationMessage.push_back(::std::string("Pull Out SD Card")); + } + break; + + case WAIT_START_TRANSFER_ACCOUNT: + { + if(s_SkipNupMode) + { + operationMessage.push_back(::std::string("After Operating BMS Account Transfer,")); + } + + operationMessage.push_back(::std::string("Push A or START Button")); + operationMessage.push_back(::std::string("Transfer Account Mode")); + if (!s_PlayedStartCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedStartCursor = true; + } + + if (nextStep) + { + COMMON_LOGGER("Transfer Account\n"); + s_RestoreState = TRANSFER_ACCOUNT; + } + } + break; + + case TRANSFER_ACCOUNT: + { + ShopOperationSingleTemplate(manager, operationMessage, SHOP_OPERATION_CONNECT, "Transfer Account", + "Transfer Account Finished.\n", "Transfer Account Failed. Retrying...", TRANSFER_ACCOUNT_DONE); + } + break; + + case TRANSFER_ACCOUNT_DONE: + { + CreateTransferAccountFinishedFile(); + s_RestoreState = STARTUP; + } + break; + + case WAIT_START_DELETE_ACCOUNT: + { + operationMessage.push_back(::std::string("Push A or START Button")); + operationMessage.push_back(::std::string("Delete Account Mode")); + if (!s_PlayedStartCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedStartCursor = true; + } + + if (nextStep) + { + COMMON_LOGGER("Delete Account\n"); + s_RestoreState = DELETE_ACCOUNT; + } + } + break; + + case DELETE_ACCOUNT: + { + if(s_NupOnlyMode) + { + ShopOperationSingleTemplate(manager, operationMessage, SHOP_OPERATION_FORCE_UNREGISTER, "Deleting Account", + "Delete Account Finished.\n", "Delete Account Failed. Retrying...", DELETE_ACCOUNT_DONE); + + } + else + { + ShopOperationSingleTemplate(manager, operationMessage, SHOP_OPERATION_UNREGISTER, "Deleting Account", + "Delete Account Finished.\n", "Delete Account Failed. Retrying...", DELETE_ACCOUNT_DONE); + } + } + break; + + case DELETE_ACCOUNT_DONE: + { + if(s_NupOnlyMode) + { + s_RestoreState = NUP_ONLY_WAIT_SD_EJECT; + + // リストア状態チェックファイルをすべて削除 + DeleteAllCheckFiles(); + } + else + { + operationMessage.push_back(::std::string("Delete Account Done.")); + operationMessage.push_back(::std::string("Operate BMS.")); + operationMessage.push_back(::std::string("")); + operationMessage.push_back(::std::string("Press A or START Button to Continue")); + + if (!s_PlayedRebootCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedRebootCursor = true; + } + + if (nextStep) + { + s_RestoreState = STARTUP; + } + } + } + break; + + case READ_FILELIST: + { + result = SetupFileList(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + if (result.IsSuccess()) + { + if (s_IsSyncClock) + { + s_RestoreState = RESTORE_TWL_NAND; + } + else + { + s_RestoreState = RESTORE_TWL_SOUND; + } + + } + else + { + s_RestoreState = FAIL; + } + } + break; + + // TWLサウンド領域の書き込み中 + case RESTORE_TWL_SOUND: + { + static bool init = true; + if (init) + { + // データを書き込む + ImportTwlSoundData(); + init = false; + } + + PutAliveMessage(operationMessage, "Importing TWL Sound Data"); + + // 処理が完了した + if (IsImportThreadFinished()) + { + FinalizeImportThread(); + s_RestoreState = RESTORE_TWL_PHOTO; + } + } + break; + + // TWL写真領域の書き込み + case RESTORE_TWL_PHOTO: + { + static bool init = true; + if (init) + { + // データを書き込む + ImportTwlPhotoData(); + init = false; + } + + PutAliveMessage(operationMessage, "Importing TWL Photo Data"); + + // 処理が完了した + if (IsImportThreadFinished()) + { + FinalizeImportThread(); + s_RestoreState = RESTORE_IN_PROGRESS; + } + } + break; + + // 書き込み中 + case RESTORE_IN_PROGRESS: + { + // ACアダプタが必要か? + if (NeedsAcAdater(manager)) + { + operationMessage.push_back(::std::string("Connect AC Adapter!!")); + } + + // データを読み込む + if (ImportData().IsFailure()) + { + s_RestoreState = FAIL; + } + + PutAliveMessage(operationMessage, "Importing Nand Data"); + + // 処理が完了した + if (!NeedsAcAdater(manager) && IsImportThreadFinished()) + { + COMMON_LOGGER("Import NAND Data Finished.\n"); + + if (GetProgress() > 99) + { + s_RestoreState = POST_RESTORE; + } + else + { + s_RestoreState = FAIL; + } + + } + } + break; + + // リブート中 + case REBOOTING: + { + static bool init = true; + + if (init) + { + // ErrDispから引用 + result = nn::ns::CTR::InitializeForShell(); + if (result.IsSuccess()) + { + COMMON_LOGGER("System Reboot.\n"); + + nn::ns::CTR::HardwareResetAsync(nn::CTR::MEMORY_ARRANGE_NORMAL); + while (!nn::applet::IsExpectedToCloseApplication()) + { + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(5)); + } + + nn::ns::CTR::FinalizeForShell(); + + // INFO: リブートは非同期のため処理は継続 + } + init = false; + } + } + break; + + // 書き込み後の処理 + case POST_RESTORE: + { + operationMessage.push_back(::std::string("Post Process...")); + // 書き込み完了ファイルを作成 + CreateWriteFinishedFile(); + + s_RestoreState = RESTORE_DONE; + } + break; + + // 書き込み完了 + case RESTORE_DONE: + { + operationMessage.push_back(::std::string("Restore Done.")); + operationMessage.push_back(::std::string("Press A or START Button to Reboot")); + + if (!s_PlayedRebootCursor) + { + PlaySound(SOUND_CURSOR); + s_PlayedRebootCursor = true; + } + + if (nextStep) + { + s_RestoreState = REBOOTING; + } + } + break; + + // 削除処理 + case ERASE: + { + Cleanup(); + s_RestoreState = RESTORE_CAL; + } + break; + + // 削除処理 + case RESTORE_CAL: + { + // ptmのセーブデータ移行後に時計を無効化する + nn::ptm::CTR::InvalidateSystemTime(); + + // cfgの本体固有値をcal値で初期化する + result = InitializeHardwareDependentSetting(); + if (result.IsFailure()) + { + s_RestoreState = FAIL; + } + + COMMON_LOGGER("Sync eTicket\n"); + s_RestoreState = SYNC_TICKET; + } + break; + + case SYNC_TICKET: + { + if(s_GetIvsOnlyMode) + { + ShopOperationSingleTemplate(manager, operationMessage, SHOP_OPERATION_CONNECT, "Shop Connect", + "Shop Connect Finished.\n", "Shop Connect Failed. Retrying...", WAIT_SD_EJECT); + } + else + { + ShopOperationSingleTemplate(manager, operationMessage, SHOP_OPERATION_CONNECT, "Shop Connect", + "Shop Connect Finished.\n", "Shop Connect Failed. Retrying...", DOWNLOAD_TWL); + } + } + break; + + case DOWNLOAD_TWL: + { + // ファイルリストがなければ次へ + if( !ExistsTwlTitleListFile()) + { + s_IsSyncClock = true; + s_RestoreState = READ_FILELIST; + } + else + { + if (!s_ExecuteTitleDownload) + { + COMMON_LOGGER("Download Twl Title\n"); + s_ExecuteTitleDownload = true; + StartTitleDownload(); + } + + // 動いていることを表示 + { + PutAliveMessage(operationMessage, "Download Twl Title"); + } + + if (IsDownloadTitleFinished()) + { + FinalizeTitleDownload(); + if (DownloadTitleSucceeded()) + { + s_IsSyncClock = true; + s_RestoreState = READ_FILELIST; + } + else + { + if (s_TitleDownloadRetryCount++ < RETRY_MAX) + { + // エラーのためやり直す + COMMON_LOGGER_RESULT_IF_FAILED(GetShopOperationSingleResult()); + COMMON_LOGGER("Download Twl Title Failed. Retrying... %d\n", s_TitleDownloadRetryCount); + + s_ExecuteTitleDownload = false; + } + else + { + s_RestoreState = FAIL; + } + } + } + } + } + break; + + // TWL NAND領域の書き込み中 + case RESTORE_TWL_NAND: + { + static bool init = true; + if (init) + { + // データを書き込む + ImportTwlSaveData(); + init = false; + } + + PutAliveMessage(operationMessage, "Importing TWL SaveData"); + + // 処理が完了した + if (IsImportThreadFinished()) + { + FinalizeImportThread(); + s_RestoreState = TIME_ADJUST; + } + } + break; + + // 時計あわせ + case TIME_ADJUST: + { + static bool init = true; + if (init) + { + COMMON_LOGGER("Adjust Time\n"); + AdjustTime(); + init = false; + } + + // 動いていることを表示 + { + PutAliveMessage(operationMessage, "Sync Clock"); + } + + if (IsTimeAdjustFinished()) + { + if (IsTimeAdjustSuccessed()) + { + s_RestoreState = WAIT_SD_EJECT; + } + else + { + s_RestoreState = FAIL; + } + + // リストア状態チェックファイルをすべて削除 + DeleteAllCheckFiles(); + } + } + break; + + // すべて完了 + case WAIT_SD_EJECT: + { + operationMessage.push_back(::std::string("ALL Done. Pull Out SD Card.")); + // SDカード抜けのみで次の状態に遷移する + + if (!s_PlayedSdPullOutCursor) + { + common::PlaySound(common::SOUND_CURSOR); + s_PlayedSdPullOutCursor = true; + } + + } + break; + + // すべて完了 + case ALL_DONE: + { + operationMessage.push_back(::std::string("Restore Succeeded!!")); + static bool init = true; + if (init) + { + PlaySound(SOUND_OK); + init = false; + } + } + break; + + // 書き込み失敗 + case FAIL: + { + static bool init = true; + if (init) + { + // 状態初期化 + DeleteAllCheckFiles(); + init = false; + } + + operationMessage.push_back(::std::string("Failed.")); + if (!s_PlayedFailSound) + { + PlaySound(SOUND_NG); + s_PlayedFailSound = true; + } + } + break; + + case NUP_ONLY_WAIT_SD_EJECT: + { + operationMessage.push_back(::std::string("Update Done. Pull Out SD Card.")); + + // SDカード抜けのみで次の状態に遷移する + if (!s_PlayedSdPullOutCursor) + { + common::PlaySound(common::SOUND_CURSOR); + s_PlayedSdPullOutCursor = true; + } + } + break; + + case DOWNLOAD_IVS_WAIT_NEXT: + { + operationMessage.push_back(::std::string("Press A or START Button to Continue.")); + if(nextStep) + { + s_RestoreState = SYNC_TICKET; + DeleteAllCheckFiles(); + } + } + break; + + case NUP_ONLY_WAIT_NEXT: + { + operationMessage.push_back(::std::string("Press A or START Button to Shutdown.")); + + if (nextStep) + { + s_RestoreState = INITIALIZE_AND_SHUTDOWN; + } + } + break; + + case INITIALIZE_AND_SHUTDOWN: + { + // 本体初期化を行う + InitializeFileSystem(); + + // シャットダウンする + nn::ptm::CTR::ShutdownAsync(0, nn::fnd::TimeSpan::FromSeconds(0)); + } + break; + + } +} + +bool InProgress() +{ + return s_RestoreState == RESTORE_IN_PROGRESS; +} + +bool IsRestoreSucceeded() +{ + return s_RestoreState == ALL_DONE; +} + +bool IsRestoreFailed() +{ + return s_RestoreState == FAIL; +} + +void OnSdEjected() +{ + if (s_RestoreState == WAIT_SD_EJECT || s_RestoreState == ALL_DONE || s_RestoreState == CHECK_SD_DIRECTORY_SUCCESS) + { + s_RestoreState = ALL_DONE; + } + else if (s_RestoreState == NUP_ONLY_WAIT_SD_EJECT || s_RestoreState == NUP_ONLY_WAIT_NEXT) + { + s_RestoreState = NUP_ONLY_WAIT_NEXT; + } + // ユーザのSDが抜かれてからFAILにする + else if (s_RestoreState == CHECK_SD_DIRECTORY_FAIL) + { + s_RestoreState = FAIL; + } + // FAILのときは一旦電源を切らないと動かないようにしておく + // IVSチェック時はユーザのSDカードを挿入してもらうため + else if (s_RestoreState != FAIL && s_RestoreState != CHECK_IVS) + { + InitializeState(); + ClearFileReadResult(); + } +} + +void OnSdInserted() +{ + if(s_RestoreState == CHECK_IVS) + { + // SDカードが変わるのでファイルチェックは初期化する + common::InitializeFileCheck(); + s_RestoreState = CHECK_SD_DIRECTORY; + } +} + +void InitializeState() +{ + s_RestoreState = STARTUP; + s_RestoreMode = RESTORE_MODE_RESTORE; + + for(u32 i = 0; i < SHOP_OPERATION_NUM_MAX; i++) + { + s_ShopOperationExecuted[i] = false; + s_ShopOperationRetryCount[i] = 0; + } + + common::InitializeFileCheck(); + + s_ExistAPSettingAnnotation = false; + s_ReadSettingDone = false; + s_ReadSettingIsSuccess = false; + s_APSettingAnnotation = false; + s_SerialNumberAnnotation = false; + s_PlayedFailSound = false; + s_ExecuteFgNup = false; + s_FgNupRetryCount = 0; + s_PlayedStartCursor = false; + s_PlayedRebootCursor = false; + s_PlayedSdPullOutCursor = false; + s_NupOnlyMode = false; + s_GetIvsOnlyMode = false; + s_SdWriteProetctAnnotation = false; + s_WifiStatusOffAnnotation = false; + s_CheckSdOnlyMode = false; + s_SkipNupMode = false; +} + +u32 GetProgress() +{ + if(s_RestoreState == RESTORE_TWL_SOUND || + s_RestoreState == RESTORE_TWL_PHOTO || + s_RestoreState == RESTORE_TWL_NAND || + s_RestoreState == RESTORE_IN_PROGRESS || + s_RestoreState == POST_RESTORE || + s_RestoreState == RESTORE_DONE) + { + return GetImportProgress(); + } + else if(s_RestoreState == UPDATE_IN_PROGRESS || + s_RestoreState == UPDATE_DONE) + { + return GetUpdateProgress(); + } + else if(s_RestoreState == DOWNLOAD_TWL) + { + return GetTitleDownloadProgress(); + } + else + { + return 0; + } + +} + +RestoreMode GetRestoreMode() +{ + return s_RestoreMode; +} + +} // namespace ConsoleRestore diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.h new file mode 100644 index 0000000..bc8400b --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Controller.h @@ -0,0 +1,73 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Contoroller.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef CONTOROLLER_H_ +#define CONTOROLLER_H_ + +#include +#include +#include +#include "HardwareStateManager.h" + +namespace ConsoleRestore +{ + +typedef enum RestoreMode +{ + RESTORE_MODE_RESTORE, + RESTORE_MODE_NUP_ONLY, + RESTORE_MODE_GET_IVS, + RESTORE_MODE_CHECK_SD + +} RestoreMode; + +// ネットワーク処理のリトライ回数の最大値 +const u32 RETRY_MAX = 3; + +// 状態遷移を管理する +// manager ハードウェア情報を取得するためのラッパ +// operationMessage 操作情報として表示したい文字列 +// nextStep 次の状態に遷移してもよいかどうか +// continueBackup 処理を続けてもよいかどうか +void ControlState(common::HardwareStateManager& manager, ::std::vector& operationMessage, bool& nextStep); + +// リストア処理中かどうか +bool InProgress(); + +// リストアが完了したかどうか +bool IsRestoreSucceeded(); + +// リストアが失敗したかどうか +bool IsRestoreFailed(); + +// 書き込みスレッドの進捗を返す +u32 GetProgress(); + + +// SDカードが抜き出されたときに実行したい関数 +void OnSdEjected(); + +// SDカードが挿入されたときに実行したい関数 +void OnSdInserted(); + +// 状態を初期化する +void InitializeState(); + +// リストア状態を取得する +RestoreMode GetRestoreMode(); + +} + +#endif /* CONTOROLLER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.cpp new file mode 100644 index 0000000..aa7589e --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.cpp @@ -0,0 +1,1864 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Importer.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include // cfg:norの初期化に必要 +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "FileName.h" +#include "Importer.h" +#include "SdMountManager.h" +#include "HeapManager.h" +#include "SdReaderWriter.h" +#include "CommonLogger.h" +#include "FileTransfer.h" +#include "common_Types.h" +#include "Aes_define.h" +#include "configLoader.h" +#include "PlayHistoryManager.h" +#include "FileChecker.h" +#include "VersionDetect.h" + +#include +#include + +namespace ConsoleRestore +{ +namespace +{ +const size_t IMPORT_THREAD_STACK_SIZE = 0x4000; +nn::os::Thread s_ImportThread; +nn::os::StackBuffer s_ImportThreadStack; + +const size_t TIME_ZONE_LENGTH = 9; // "+23:45" +char s_TimeZoneStr[TIME_ZONE_LENGTH]; + +TimeZone s_TimeZone; +const size_t NTP_SERVER_NAME_LENGTH = 256; +char s_NtpServerName[NTP_SERVER_NAME_LENGTH]; + +bool s_CheckedEqualsDeviceIdFileandDeviceId = false; +bool s_CheckedEqualsRegionDataandRegion = false; +bool s_ReadSerialNumber = false; + +struct SdFileSize +{ + s64 totalFileSize; + s64 twlFileSize; + s64 twlSoundFileSize; + s64 twlPhotoFileSize; + s64 ctrFileSize; +}; + +SdFileSize s_SdFileSize; + +// シリアルナンバー +u8 s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + +// 空のファイルを作成する +bool CreateEmptyFile(const wchar_t* path); +// SDからNANDにセーブデータをコピーする +void ImportSaveData(); +// SDからNORにNORデータをコピーする +nn::Result ImportNorData(); + +// SDカードに保存してあるバージョン情報 +common::VerDef s_SDVersionData; + +// SDカードから読み込んだファイル一覧 +common::ImportDataList s_FileLists; + +} + +// SDからファイル一覧を読み込む +nn::Result ReadFileList(SdFileSize* sdFileSize, common::ImportDataList* fileList); + +CheckedNetworkSetting s_CurrentNetowrkSetting1; + +void ConvertTimeZoneString(const char* str) +{ + s_TimeZone.hour = 0; + s_TimeZone.minutes = 0; + s_TimeZone.isMinus = false; + + bool hour = true; + bool ten = true; + u32 count = 0; + for(u32 i = 0; i < TIME_ZONE_LENGTH && count < 2; i++) + { + switch (str[i]) + { + case ':': + { + hour = false; + } + break; + + case '"': + { + // 2回読んだら終了 + count++; + } + break; + + case '+': + { + s_TimeZone.isMinus = false; + } + break; + + case '-': + { + s_TimeZone.isMinus = true; + } + break; + + default: + { + if(hour) + { + if(ten) + { + s_TimeZone.hour += (str[i] - '0') * 10; + ten = false; + } + else + { + s_TimeZone.hour += str[i] - '0'; + ten = true; + } + } + else + { + if(ten) + { + s_TimeZone.minutes += (str[i] - '0') * 10; + ten = false; + } + else + { + s_TimeZone.minutes += str[i] - '0'; + ten = true; + } + } + } + break; + } + } + + + NN_LOG("Converted TimeZone = "); + if(s_TimeZone.isMinus) + { + NN_LOG("-"); + } + NN_LOG("%02d:%02d\n", s_TimeZone.hour, s_TimeZone.minutes); + +} + +namespace +{ + +bool CreateEmptyFile(const wchar_t* path) +{ + nn::Result result; + bool create = false; + result = common::SdMountManager::Mount(); + + if (result.IsSuccess()) + { + nn::fs::FileOutputStream fos; + + result = fos.TryInitialize(path, true); + if(result.IsSuccess()) + { + fos.TryFlush(); + create = true; + } + fos.Finalize(); + } + + common::SdMountManager::Unmount(); + + return create; +} + +} + +nn::Result ReadSerialNumber(u8* serial) +{ + static nn::Result result = nn::ResultSuccess(); + + if(s_ReadSerialNumber) + { + std::memcpy(serial, s_SerialNo, sizeof(s_SerialNo)); + return result; + } + + COMMON_LOGGER("Read Serial Number in SD.\n"); + + size_t readSize; + common::SdReaderWriter sdReader; + size_t bufSize = 1024; + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if(buf != NULL) + { + result = sdReader.ReadBufWithCmac(common::SERIAL_PATHNAME, buf, bufSize, &readSize); + if(result.IsSuccess()) + { + std::memcpy(s_SerialNo, buf, sizeof(s_SerialNo)); + std::memcpy(serial, s_SerialNo, sizeof(s_SerialNo)); + s_ReadSerialNumber = true; + } + common::HeapManager::GetHeap()->Free(buf); + } + else + { + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + return result; +} + +nn::Result EqualsDeviceIdFileandDeviceId(common::HardwareStateManager& manager) +{ + static nn::Result result = nn::ResultSuccess(); + + if(s_CheckedEqualsDeviceIdFileandDeviceId) + { + return result; + } + + COMMON_LOGGER("Check Device Id\n"); + + bit32 sdDeviceId; + common::SdReaderWriter sdReader; + size_t totalSize; + size_t bufSize = 1024; + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + result = sdReader.ReadBufWithCmac(common::DEVICE_ID_PATHNAME, buf, bufSize, &totalSize); + if (result.IsSuccess()) + { + s_CheckedEqualsDeviceIdFileandDeviceId = true; + std::memcpy(&sdDeviceId, buf, sizeof(sdDeviceId)); + + if (manager.GetDeviceId() == sdDeviceId) + { + result = nn::ResultSuccess(); + } + else + { + result = nn::Result(nn::Result::LEVEL_STATUS, nn::Result::SUMMARY_INVALID_RESULT_VALUE, + nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_INVALID_RESULT_VALUE); + } + } + common::HeapManager::GetHeap()->Free(buf); + } + else + { + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + return result; +} + +nn::Result EqualsRegionDataandRegion() +{ + static nn::Result result = nn::ResultSuccess(); + + if(s_CheckedEqualsRegionDataandRegion) + { + return result; + } + + COMMON_LOGGER("Check Region\n"); + + nn::cfg::CTR::CfgRegionCode region; + region = nn::cfg::CTR::GetRegion(); + + nn::cfg::CTR::CfgRegionCode sdRegion; + common::SdReaderWriter sdReader; + size_t readSize; + size_t bufSize = 1024; + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + result = sdReader.ReadBufWithCmac(common::REGION_DATA_PATHNAME, buf, bufSize, &readSize); + if (result.IsSuccess()) + { + std::memcpy(&sdRegion, buf, sizeof(sdRegion)); + s_CheckedEqualsRegionDataandRegion = true; + if(region == sdRegion) + { + result = nn::ResultSuccess(); + } + else + { + result = nn::Result(nn::Result::LEVEL_STATUS, nn::Result::SUMMARY_INVALID_RESULT_VALUE, + nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_INVALID_RESULT_VALUE); + } + } + common::HeapManager::GetHeap()->Free(buf); + } + else + { + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + return result; +} + +void SetCountry(nn::cfg::CTR::CfgCountryCode countryCode) +{ + using namespace nn::cfg::CTR; + using namespace nn::cfg::CTR::detail; + + SimpleAddressIdCfgData simpleAddressId; + TwlCountryCodeCfgData countryData; + + nn::cfg::CTR::system::Initialize(); + + NN_UTIL_PANIC_IF_FAILED(nn::cfg::CTR::system::GetConfig(&simpleAddressId, sizeof(SimpleAddressIdCfgData), GET_CFG_KEY(NN_CFG_SIMPLE_ADDRESS, NN_CFG_SIMPLE_ADDRESS_ID))); + NN_UTIL_PANIC_IF_FAILED(nn::cfg::CTR::system::GetConfig(&countryData, sizeof(TwlCountryCodeCfgData), GET_CFG_KEY(NN_CFG_TWL, NN_CFG_TWL_COUNTRY_CODE))); + nn::cfg::CTR::system::Finalize(); + + simpleAddressId.id = (countryCode << CFG_SIMPLE_ADDRESS_ID_COUNTRY_SHIFT) | (1 + << CFG_SIMPLE_ADDRESS_ID_REGION_SHIFT); + countryData.country = countryCode; + + nn::cfg::CTR::system::Initialize(); + NN_UTIL_PANIC_IF_FAILED(nn::cfg::CTR::system::SetConfig(GET_CFG_KEY(NN_CFG_SIMPLE_ADDRESS, NN_CFG_SIMPLE_ADDRESS_ID), &simpleAddressId, sizeof(SimpleAddressIdCfgData))); + NN_UTIL_PANIC_IF_FAILED(nn::cfg::CTR::system::SetConfig(GET_CFG_KEY(NN_CFG_TWL, NN_CFG_TWL_COUNTRY_CODE), &countryData, sizeof(TwlCountryCodeCfgData))); + nn::cfg::CTR::system::FlushConfig(); + nn::cfg::CTR::system::Finalize(); +} + +void SetLanguage(nn::cfg::CTR::CfgLanguageCode languageCode) +{ + NN_UTIL_PANIC_IF_FAILED(nn::cfg::CTR::init::SetConfig( + GET_CFG_KEY(nn::cfg::CTR::detail::NN_CFG_USER_INFO, + nn::cfg::CTR::detail::NN_CFG_USER_INFO_LANGUAGE), + &languageCode, + sizeof(nn::cfg::CTR::detail::LanguageCfgData))); + NN_UTIL_PANIC_IF_FAILED(nn::cfg::CTR::init::FlushConfig()); + nn::cfg::nor::CTR::Initialize(); + NN_UTIL_PANIC_IF_FAILED(nn::cfg::nor::CTR::SetLanguage(static_cast(languageCode))); + nn::cfg::nor::CTR::Finalize(); +} + +nn::Result ImportCountryLanguageData() +{ + nn::Result result = nn::ResultSuccess(); + + if (common::ExistsCountryLanguageFile()) + { + size_t bufSize = 1024; + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::COUNTRY_SETTING_PATHNAME, buf, bufSize, &readSize); + if (result.IsSuccess()) + { + // SDから読み出し成功 + SetCountry(reinterpret_cast (buf)->country); + + SetLanguage(reinterpret_cast (buf)->language); + } + common::HeapManager::GetHeap()->Free(buf); + + NN_UTIL_RETURN_IF_FAILED(result); + } + } + else + { + // リージョンから適当な国を指定する + nn::cfg::CTR::CfgRegionCode region; + region = nn::cfg::CTR::GetRegion(); + NN_LOG("Country Setting does not exist. Use Default Setting\n"); + switch(region) + { + case nn::cfg::CTR::CFG_REGION_JAPAN: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_JAPAN); + } + break; + + case nn::cfg::CTR::CFG_REGION_AMERICA: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_UNITED_STATES); + } + break; + + case nn::cfg::CTR::CFG_REGION_EUROPE: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_FRANCE); + } + break; + + case nn::cfg::CTR::CFG_REGION_AUSTRALIA: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_AUSTRALIA); + } + break; + + case nn::cfg::CTR::CFG_REGION_CHINA: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_CHINA); + } + break; + + case nn::cfg::CTR::CFG_REGION_KOREA: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_SOUTH_KOREA); + } + break; + + case nn::cfg::CTR::CFG_REGION_TAIWAN: + { + SetCountry(nn::cfg::CTR::CFG_COUNTRY_TAIWAN); + } + break; + } + + } + + return result; +} + +inline u8 DecimalToBcd(u8 param) +{ + u8 theTen, theOne; + theTen = param / 10; + theOne = param - theTen * 10; + return (theTen << 4 | theOne); +} + +nn::Result ImportMcuRtc(common::HardwareStateManager& manager) +{ + COMMON_LOGGER("Import RTC Data.\n"); + nn::Result result = nn::ResultSuccess(); + nn::Handle handle = manager.GetMcuHandle(); + + if(handle.IsValid()) + { + if (common::CheckFileExists(common::MCU_RTC_PATHNAME)) + { + size_t bufSize = 1024; + NN_LOG("AllocatableSize = %d\n", bufSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::MCU_RTC_PATHNAME, buf, bufSize, &readSize); + if (result.IsSuccess()) + { + // mcuを使ってセットする + nn::mcu::CTR::HwCheck mcu(handle); + nn::mcu::CTR::RtcData* rtc = reinterpret_cast (buf); + NN_LOG("RTC = 20%02d/%02d/%02d %02d:%02d:%02d\n", rtc->m_Year, rtc->m_Month, rtc->m_Day, rtc->m_Hour, rtc->m_Minute, rtc->m_Second); + + // BCD変換が必要 + + size_t RTC_PARAM_SIZE = sizeof(nn::mcu::CTR::RtcData); + u8 bcd[RTC_PARAM_SIZE]; + for (int i = 0; i < RTC_PARAM_SIZE; i++) + { + bcd[i] = DecimalToBcd(reinterpret_cast (rtc)[i]); + } + + const u8 RETRY = 10; + for (u8 i = 0; i < RETRY; i++) + { + result = mcu.WriteBySend(nn::drivers::mcu::CTR::MCU_RTC_SEC_ADDR, bcd, RTC_PARAM_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + if(result.IsSuccess()) + { + break; + } + nn::os::Thread::Sleep( + nn::fnd::TimeSpan::FromMilliSeconds( + nn::os::Tick::GetSystemCurrent().ToTimeSpan().GetMilliSeconds() % 100)); + + } + } + + common::HeapManager::GetHeap()->Free(buf); + NN_UTIL_RETURN_IF_FAILED(result); + } + else + { + COMMON_LOGGER("Failed Allocate Heap!!\n"); + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + } + } + else + { + result = nn::Result(nn::Result::LEVEL_PERMANENT, nn::Result::SUMMARY_INVALID_STATE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_INVALID_HANDLE); + } + + return result; +} + +void InitializeFileSystem() +{ + nn::Result result; + + for (u32 i = 0; i < common::TWL_PATHNAME_MAX; i++) + { + result = nn::fs::MountSpecialArchive(common::TWL_ARCHIVE_NAME_TABLE[i], common::TWL_FS_ARCHIVE_KIND[i]); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + nn::fs::Directory dir; + std::vector entryList; //カレントディレクトリのエントリ一覧を格納 + std::vector::iterator entryIndex; + + std::wstring currentDirectory = common::NAND_TWL_ROOT_PATHNAME_WITH_SLASH_TABLE[i]; + result = dir.TryInitialize(currentDirectory.c_str()); + + nn::fs::DirectoryEntry entry; + s32 numEntry; + for (;;) + { + result = dir.TryRead(&numEntry, &entry, 1); + if (result.IsFailure()) + { + dir.Finalize(); + } + if (numEntry == 0) + { + // ルートディレクトリを閉じる + dir.Finalize(); + + // ルートディレクトリの子を開く + for (entryIndex = entryList.begin(); entryIndex != entryList.end(); entryIndex++) + { + // ディレクトリなら削除する + if (entryIndex->attributes.isDirectory) + { + NN_LOG("Try Delete %ls%ls/\n", currentDirectory.c_str(), entryIndex->entryName); + result = nn::fs::TryDeleteDirectoryRecursively((currentDirectory + ::std::wstring( + entryIndex->entryName)).c_str()); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + } + // ファイルなら削除する + else + { + NN_LOG("Try Delete %ls%ls\n", currentDirectory.c_str(), entryIndex->entryName); + result = nn::fs::TryDeleteFile( + (currentDirectory + ::std::wstring(entryIndex->entryName)).c_str()); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + } + + // 削除完了 + break; + } + else + { + // vectorに保存する + entryList.push_back(entry); + if (entry.attributes.isDirectory) + { + NN_LOG("%ls%ls/\n", currentDirectory.c_str(), entry.entryName); + } + else + { + NN_LOG("%ls%ls\n", currentDirectory.c_str(), entry.entryName); + } + } + } + } + nn::fs::Unmount(common::TWL_ARCHIVE_NAME_TABLE[i]); + } + + result = nn::am::DeleteAllTwlUserPrograms(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + nn::fs::InitializeCtrFileSystem(); +} + +nn::Result ImportIvs() +{ + nn::Result result = nn::ResultSuccess(); + nn::fs::FileOutputStream fos; + + size_t bufSize = 1024; + void* enc = common::HeapManager::GetHeap()->Allocate(bufSize); + if (enc != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::IVS_PATHNAME, enc, bufSize, &readSize); + if(result.IsSuccess()) + { + // SDから読み出し成功 + result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + if (result.IsSuccess()) + { + void *dec = common::HeapManager::GetHeap()->Allocate(readSize); + if (dec != NULL) + { + // AES復号化する + nn::crypto::Initialize(); + nn::crypto::SwAesCtrContext swAesCtrContest; + + swAesCtrContest.Initialize(common::iv, common::key, sizeof(common::key)); + swAesCtrContest.Decrypt(dec, enc, readSize); + + // IVS書き込み + result = fos.TryInitialize(common::IVS_NAND_PATHNAME, true); + if (result.IsSuccess()) + { + if (result.IsSuccess()) + { + s32 writeSize; + result = fos.TryWrite(&writeSize, dec, readSize, true); + if (result.IsSuccess()) + { + COMMON_LOGGER("Import SDCI.\n"); + } + } + } + common::HeapManager::GetHeap()->Free(dec); + } + else + { + COMMON_LOGGER("Failed Allocate Heap!!\n"); + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + } + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + } + common::HeapManager::GetHeap()->Free(enc); + NN_UTIL_RETURN_IF_FAILED(result); + } + else + { + COMMON_LOGGER("Failed Allocate Heap!!\n"); + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + return result; +} + +void ImportThreadFunc() +{ + nn::Result result; + + result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = common::SdMountManager::Mount(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + + common::CopyDirectory( + &s_FileLists, + (::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(common::SD_SAVEDATA_ROOT_NAME)).c_str(), + common::NAND_DATA_ROOT_PATHNAME_WITH_SLASH, + buf, bufSize, false, NULL, NULL); + + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + + NN_LOG("Import Thread Finalize\n"); +} + +namespace +{ + +void ImportSaveData() +{ + // SDカードからNANDに読み込み + nn::Result result; + + // ファイルサイズ設定 + common::InitializeTransferProgress(s_SdFileSize.ctrFileSize); + + // SDカードにあるセーブデータディレクトリ以下のデータをNANDにコピー + COMMON_LOGGER("Import NAND Data Start...\n"); + s_ImportThread.Start(ImportThreadFunc, s_ImportThreadStack); + +} + +nn::Result ImportNorData() +{ + COMMON_LOGGER("Import NOR Data.\n"); + + nn::Result result = nn::ResultSuccess(); + + nn::cfg::nor::CTR::Initialize(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize() / 2; + NN_LOG("AllocatableSize = %d\n", bufSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::NOR_PATHNAME, buf, bufSize, &readSize); + if(result.IsSuccess()) + { + // cfgを使ってセットする + result = nn::cfg::nor::CTR::SetNtrSetting(&reinterpret_cast(buf)->ntrConfig.ncd, + &reinterpret_cast(buf)->ntrConfig.ncd_ex); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // WiFiコネクションIDが仮の値であればWiFi設定は移行しない + // TWL修理に準拠している + u64 attestedUserId1 = 0; + u64 attestedUserId2 = 0; + const u32 WIFI_CONNECTION_USERID_OFFSET1 = 0xf0; + const u32 WIFI_CONNECTION_USERID_OFFSET2 = 0x1f0; + const u32 USERID_SIZE = 6; + const bit64 USERID_MASK = 0x7FFFFFFFFFF; // 43bit + + + void* NtrWifiSettingAddr = &reinterpret_cast(buf)->NtrWiFiSetting; + std::memcpy(&attestedUserId1, + &reinterpret_cast(NtrWifiSettingAddr)[WIFI_CONNECTION_USERID_OFFSET1], + USERID_SIZE); + attestedUserId1 &= USERID_MASK; + + std::memcpy(&attestedUserId2, + &reinterpret_cast(NtrWifiSettingAddr)[WIFI_CONNECTION_USERID_OFFSET2], + USERID_SIZE); + attestedUserId2 &= USERID_MASK; + + if (attestedUserId1 == attestedUserId2 && attestedUserId1 != 0) + { + // TWL WiFi設定 + result = nn::cfg::nor::CTR::WriteTwlWifiSetting(0, + reinterpret_cast (buf)->TwlWiFiSetting, common::TWL_WIFI_SETTING_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // NTR WiFi設定 + result = nn::cfg::nor::CTR::WriteNtrWifiSetting(0, + reinterpret_cast (buf)->NtrWiFiSetting, common::NTR_WIFI_SETTING_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + } + + common::HeapManager::GetHeap()->Free(buf); + + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + } + else + { + COMMON_LOGGER("Failed Allocate Heap!!\n"); + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + return result; +} + + +} + +nn::Result ReadVersionData() +{ + nn::Result result = nn::ResultSuccess(); + std::memset(&s_SDVersionData, 0, sizeof(common::VerDef)); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize() / 2; + NN_LOG("AllocatableSize = %d\n", bufSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::VERSION_DATA_PATHNAME, buf, bufSize, &readSize); + if(result.IsSuccess()) + { + // バージョン情報を保持する + std::memcpy(&s_SDVersionData, buf, readSize); + NN_LOG("SD Version = %02d.%02d.%02d-%02d\n", s_SDVersionData.cup.majorVersion, + s_SDVersionData.cup.minorVersion, + s_SDVersionData.cup.microVersion, + s_SDVersionData.nup.majorVersion); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + } + + common::HeapManager::GetHeap()->Free(buf); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + } + else + { + COMMON_LOGGER("Failed Allocate Heap!!\n"); + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + return result; +} + +bool ExistsIvsDirectory(std::string& ivsRoot) +{ + nn::Result result; + nn::fs::Directory dir; + + common::SdMountManager::Mount(); + + result = dir.TryInitialize(common::SD_NINTENDO_3DS_ROOT_PATH); + if(result.IsFailure()) + { + NN_DBG_PRINT_RESULT(result); + common::SdMountManager::Unmount(); + return false; + } + + wchar_t ivs[34]; + std::mbstowcs(ivs, ivsRoot.c_str(), ivsRoot.size() + 1); + + nn::fs::DirectoryEntry entry; + s32 numEntry; + for (;;) + { + result = dir.TryRead(&numEntry, &entry, 1); + if (result.IsFailure()) + { + dir.Finalize(); + common::SdMountManager::Unmount(); + return false; + } + if (numEntry == 0) + { + dir.Finalize(); + common::SdMountManager::Unmount(); + return false; + } + else + { + // 比較する + if (entry.attributes.isDirectory) + { + NN_LOG("%ls\n", entry.entryName); + if(std::wcscmp(ivs, entry.entryName) == 0) + { + common::SdMountManager::Unmount(); + return true; + } + } + } + } +} + +void Cleanup() +{ + nn::Result result; + bool execCleanup; + + result = nn::am::NeedsCleanup(&execCleanup, nn::fs::MEDIA_TYPE_NAND); + if(result.IsSuccess()) + { + if(execCleanup) + { + COMMON_LOGGER("Cleanup NAND\n"); + nn::am::DoCleanup(nn::fs::MEDIA_TYPE_NAND); + } + } + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); +} + +void DeleteAllCheckFiles() +{ + nn::Result result; + common::SdMountManager::Mount(); + + for(u32 i = 0; i < sizeof(CHECK_FILENAME_TABLE) / sizeof(CHECK_FILENAME_TABLE[0]); i++) + { + if(common::CheckFileExists(CHECK_FILENAME_TABLE[i])) + { + result = nn::fs::TryDeleteFile(CHECK_FILENAME_TABLE[i]); + COMMON_LOGGER_RESULT_IF_FAILED(result); + } + } + common::SdMountManager::Unmount(); +} + +void FinalizeImportThread() +{ + s_ImportThread.Join(); + s_ImportThread.Finalize(); +} + +bool IsImportThreadFinished() +{ + return s_ImportThread.IsValid() && !s_ImportThread.IsAlive(); +} + +void CreateWriteFinishedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_WRITE_FINISHED]); + common::ClearFileCheck(common::EXISTS_WRITE_FINISHED); +} + +void CreateConsoleInitializedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_CONSOLE_INTIALIZED]); + common::ClearFileCheck(common::EXISTS_CONSOLE_INTIALIZED); +} + +void CreateUpdateFinishedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_UPDATE_FINISHED]); + common::ClearFileCheck(common::EXISTS_UPDATE_FINISHED); +} + +void CreateRtcSyncFinishedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_RTC_SYNC_FINISHED]); + common::ClearFileCheck(common::EXISTS_RTC_SYNC_FINISHED); +} + +void CreateDownloadIvsFinishedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_DOWNLOAD_IVS]); + common::ClearFileCheck(common::EXISTS_DOWNLOAD_IVS); +} + +void CreateDeleteAccountFinishedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_DELETE_ACCOUNT]); + common::ClearFileCheck(common::EXISTS_DELETE_ACCOUNT); + +} + +void CreateTransferAccountFinishedFile() +{ + CreateEmptyFile(common::FILENAME_TABLE[common::EXISTS_TRANSFER_ACCOUNT]); + common::ClearFileCheck(common::EXISTS_TRANSFER_ACCOUNT); +} + +u32 GetImportProgress() +{ + return common::GetProgress(); +} + +bool UpdateNetworkSetting(nn::ac::NetworkSetting& networkSetting) +{ + nn::Result result; + bool retval = true; + + result = nn::ac::InitializeInternal(); + if(result.IsFailure()) + { + retval = false; + COMMON_LOGGER("Error: nn::ac::InitializeInternal() failed\n"); + } + else + { + //特に入力させる必要のない自動で設定する項目 + networkSetting.wireless.enable = true; + networkSetting.wireless.multiSsid.enable = false; + networkSetting.ip.enableDHCP = true; + networkSetting.scanlessConnect.hasConnected = false; + networkSetting.proxy.enable = false; + networkSetting.other.enableUPnP = false; + + // 現在のインターネット設定1を一時的に保持 + result = nn::ac::LoadNetworkSetting(0, s_CurrentNetowrkSetting1.setting); + if(result.IsSuccess()) + { + s_CurrentNetowrkSetting1.isValid = true; + } + else + { + s_CurrentNetowrkSetting1.isValid = false; + } + + result = nn::ac::UpdateNetworkSetting( 0, networkSetting ); + if(!result.IsSuccess()) + { + retval = false; + COMMON_LOGGER("Error: SetNetworkSetting (Update Error)\n"); + } + else + { + result = nn::ac::FinalizeInternal(); + if (!result.IsSuccess()) + { + retval = false; + COMMON_LOGGER("Error: SetNetworkSetting (Finalize Error)\n"); + } + } + } + + return retval; +} + +bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup) +{ + nn::Result result; + bool retval = true; + common::ConfigFileLoader configfileLoader; + + common::SdMountManager::Mount(); + size_t size = 10240; + void* heapAddr = common::HeapManager::GetHeap()->Allocate(size); + + if(heapAddr != NULL) + { + result = configfileLoader.Initialize(common::AP_SETTING_PATHNAME, heapAddr, size); + if (result.IsSuccess()) + { + nn::ac::NetworkSetting networkSetting; + + { + const char* ssid = configfileLoader.ReadAsChar(L"SSID"); // SSID + if(ssid == NULL) + { + COMMON_LOGGER("SSID: is missing\n"); + retval = false; + } + else + { + std::strncpy(reinterpret_cast (networkSetting.wireless.essidSecurity.ssid), ssid, 32); + networkSetting.wireless.essidSecurity.ssidLength = std::strlen(ssid) % 33; + COMMON_LOGGER("SSID = %s\n", networkSetting.wireless.essidSecurity.ssid); + } + } + + + { + const char* mode = configfileLoader.ReadAsChar(L"MODE"); // MODE + if(mode == NULL) + { + COMMON_LOGGER("MODE: is missing\n"); + retval = false; + } + else + { + if (std::strcmp(mode, "OPEN") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::OPEN; + } + else if (std::strcmp(mode, "WEP40") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WEP_40BIT; + } + else if (std::strcmp(mode, "WEP104") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WEP_104BIT; + } + else if (std::strcmp(mode, "WEP128") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WEP_128BIT; + } + else if (std::strcmp(mode, "WPA-TKIP") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WPA_TKIP; + } + else if (std::strcmp(mode, "WPA2-TKIP") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WPA2_TKIP; + } + else if (std::strcmp(mode, "WPA-AES") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WPA_AES; + } + else if (std::strcmp(mode, "WPA2-AES") == 0) + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::WPA2_AES; + } + else + { + networkSetting.wireless.essidSecurity.securityMode = nn::ac::OPEN; + } + + switch (networkSetting.wireless.essidSecurity.securityMode) + { + case nn::ac::OPEN: + { + COMMON_LOGGER("MODE = OPEN\n"); + } + break; + + case nn::ac::WEP_40BIT: + { + COMMON_LOGGER("MODE = WEP_40BIT\n"); + } + break; + + case nn::ac::WEP_104BIT: + { + COMMON_LOGGER("MODE = WEP_104BIT\n"); + } + break; + + case nn::ac::WEP_128BIT: + { + COMMON_LOGGER("MODE = WEP_128BIT\n"); + } + break; + + case nn::ac::WPA_TKIP: + { + COMMON_LOGGER("MODE = WPA_TKIP\n"); + } + break; + + case nn::ac::WPA2_TKIP: + { + COMMON_LOGGER("MODE = WPA2_TKIP\n"); + } + break; + + case nn::ac::WPA_AES: + { + COMMON_LOGGER("MODE = WPA_AES\n"); + } + break; + + case nn::ac::WPA2_AES: + { + COMMON_LOGGER("MODE = WPA2_AES\n"); + } + break; + + } + + } + } + + { + const char* pass = configfileLoader.ReadAsChar(L"PASS"); // PASS + if(pass == NULL) + { + COMMON_LOGGER("PASS: is missing\n"); + retval = false; + } + else + { + switch (networkSetting.wireless.essidSecurity.securityMode) + { + case nn::ac::WEP_40BIT: + case nn::ac::WEP_104BIT: + case nn::ac::WEP_128BIT: + { + std::strncpy(reinterpret_cast (networkSetting.wireless.essidSecurity.passphrase), + pass, 64); + std::memcpy(networkSetting.wireless.essidSecurity.key, + networkSetting.wireless.essidSecurity.passphrase, 64); + } + break; + + case nn::ac::WPA_TKIP: + case nn::ac::WPA2_TKIP: + case nn::ac::WPA_AES: + case nn::ac::WPA2_AES: + { + std::strncpy(reinterpret_cast (networkSetting.wireless.essidSecurity.passphrase), + pass, 64); + size_t phrase_size = std::strlen( + reinterpret_cast (networkSetting.wireless.essidSecurity.passphrase)); + + nn::nwm::Ssid ssid(reinterpret_cast (networkSetting.wireless.essidSecurity.ssid)); + nn::nwm::ConvertPasswordToPsk( + reinterpret_cast (networkSetting.wireless.essidSecurity.passphrase), + phrase_size, ssid, networkSetting.wireless.essidSecurity.key); + } + break; + + case nn::ac::OPEN: + default: + { + //do nothing + } + break; + } + } + } + + + { + s32 dnsAuto; // DNS_AUTO + if(configfileLoader.ReadAsChar(L"DNS_AUTO") == NULL) + { + COMMON_LOGGER("DNS_AUTO: is missing\n"); + retval = false; + } + else + { + dnsAuto = configfileLoader.ReadAsInteger(L"DNS_AUTO"); + if (dnsAuto == 1) + { + networkSetting.ip.autoDNSSetting = true; + } + else + { + networkSetting.ip.autoDNSSetting = false; + } + + COMMON_LOGGER("DNS_AUTO = %d\n", networkSetting.ip.autoDNSSetting); + + } + } + + { + const char* dnsPrimary = configfileLoader.ReadAsChar(L"DNS_PRI"); // プライマリDNS + if(!networkSetting.ip.autoDNSSetting) + { + if (dnsPrimary == NULL) + { + COMMON_LOGGER("DNS_PRI: is missing\n"); + retval = false; + + } + else + { + u8 dns[4]; + nn::socket::InAddr addr; + if (1 == nn::socket::InetAtoN(dnsPrimary, &addr)) + { + dns[3] = (0xff & (addr.addr >> 24)); + dns[2] = (0xff & (addr.addr >> 16)); + dns[1] = (0xff & (addr.addr >> 8)); + dns[0] = (0xff & (addr.addr)); + } + std::memcpy(networkSetting.ip.dns[0], dns, 4); + COMMON_LOGGER("DNS_PRI = %03d.%03d.%03d.%03d\n", networkSetting.ip.dns[0][0], + networkSetting.ip.dns[0][1], + networkSetting.ip.dns[0][2], + networkSetting.ip.dns[0][3]); + + } + } + } + + { + const char* dnsSecondary = configfileLoader.ReadAsChar(L"DNS_SEC"); // セカンダリDNS + if(!networkSetting.ip.autoDNSSetting) + { + if(dnsSecondary == NULL) + { + COMMON_LOGGER("DNS_SEC: is missing\n"); + retval = false; + } + else + { + u8 dns[4]; + nn::socket::InAddr addr; + if (1 == nn::socket::InetAtoN(dnsSecondary, &addr)) + { + dns[3] = (0xff & (addr.addr >> 24)); + dns[2] = (0xff & (addr.addr >> 16)); + dns[1] = (0xff & (addr.addr >> 8)); + dns[0] = (0xff & (addr.addr)); + } + std::memcpy(networkSetting.ip.dns[1], dns, 4); + COMMON_LOGGER("DNS_SEC = %03d.%03d.%03d.%03d\n", networkSetting.ip.dns[1][0], + networkSetting.ip.dns[1][1], + networkSetting.ip.dns[1][2], + networkSetting.ip.dns[1][3]); + + } + } + } + + { + const char* ntpServerName = configfileLoader.ReadAsChar(L"NTPSRV"); // NTPサーバ + if(ntpServerName == NULL) + { + COMMON_LOGGER("NTPSRV: is missing\n"); + retval = false; + } + else + { + std::strlcpy(s_NtpServerName, ntpServerName, sizeof(s_NtpServerName)); + COMMON_LOGGER("NTPSRV = %s\n", s_NtpServerName); + } + + + } + + { + const char* timeZone = configfileLoader.ReadAsChar(L"TIMEZONE"); // タイムゾーン + if(timeZone == NULL) + { + COMMON_LOGGER("TIMEZONE: is missing\n"); + retval = false; + } + else + { + std::strlcpy(s_TimeZoneStr, timeZone, sizeof(s_TimeZoneStr)); + COMMON_LOGGER("TIMEZONE = %s\n", s_TimeZoneStr); + ConvertTimeZoneString(s_TimeZoneStr); + } + + } + + { + const wchar_t* const NUP_ONLY_STR = L"NUP_ONLY"; + NN_NULL_ASSERT(nupOnly); + if (configfileLoader.ReadAsChar(NUP_ONLY_STR) != NULL) + { + s32 num = configfileLoader.ReadAsInteger(NUP_ONLY_STR); + if (num == 1) + { + *nupOnly = true; + COMMON_LOGGER("NUP Only Mode.\n"); + } + } + } + + { + const wchar_t* const GET_IVS_STR = L"GET_SDCI"; + NN_NULL_ASSERT(getIvs); + if (configfileLoader.ReadAsChar(GET_IVS_STR) != NULL) + { + s32 num = configfileLoader.ReadAsInteger(GET_IVS_STR); + if (num == 1) + { + *getIvs = true; + COMMON_LOGGER("GET SDCI Mode.\n"); + } + } + } + + { + const wchar_t* const CHECK_SD_STR = L"CHECK_SD"; + NN_NULL_ASSERT(checkSd); + if (configfileLoader.ReadAsChar(CHECK_SD_STR) != NULL) + { + s32 num = configfileLoader.ReadAsInteger(CHECK_SD_STR); + if (num == 1) + { + *checkSd = true; + COMMON_LOGGER("CHECK SD Mode.\n"); + } + } + } + + { + const wchar_t* const SKIP_NUP_STR = L"SKIP_NUP"; + NN_NULL_ASSERT(skipNup); + if (configfileLoader.ReadAsChar(SKIP_NUP_STR) != NULL) + { + s32 num = configfileLoader.ReadAsInteger(SKIP_NUP_STR); + if (num == 1) + { + *skipNup = true; + COMMON_LOGGER("Skip NUP Mode.\n"); + } + } + } + + configfileLoader.Finalize(); + + // 書き込み完了しなければfalse + if(!UpdateNetworkSetting(networkSetting)) + { + retval = false; + } + + } + else + { + NN_LOG("configfileLoader Initialize Failed\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + retval = false; + } + common::HeapManager::GetHeap()->Free(heapAddr); + } + else + { + NN_LOG("Can't Allocate Heap\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + retval = false; + } + + common::SdMountManager::Unmount(); + return retval; +} + +char* GetNtpServerName() +{ + return s_NtpServerName; +} + +TimeZone GetTimeZone() +{ + return s_TimeZone; +} + +CheckedNetworkSetting* GetTempNetworkSetting() +{ + return &s_CurrentNetowrkSetting1; +} + +void ImportTwlData(enum common::TWL_PATH_INDEX path, s64 fileSize) +{ + NN_ASSERT(path < common::TWL_PATHNAME_MAX); + + nn::Result result; + + result = nn::fs::MountSpecialArchive(common::TWL_ARCHIVE_NAME_TABLE[path], common::TWL_FS_ARCHIVE_KIND[path]); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); + + // ファイルサイズ設定 + common::InitializeTransferProgress(fileSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + wchar_t archiveName[nn::fs::MAX_FILE_PATH_LENGTH]; + ::std::mbstowcs(archiveName, common::TWL_ARCHIVE_NAME_TABLE[path], std::strlen(common::TWL_ARCHIVE_NAME_TABLE[path]) + 1); + std::wstring archiveString(archiveName); + common::CopyDirectory( + &s_FileLists, + (::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(common::SD_TWL_ROOTNAME_TABLE[path])).c_str(), + (archiveString + ::std::wstring(L"/")).c_str(), + buf, bufSize, false, NULL, NULL); + + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + nn::fs::Unmount(common::TWL_ARCHIVE_NAME_TABLE[path]); + +} + +void ImportTwlTitleSaveData(s64 fileSize) +{ + nn::Result result; + + result = nn::fs::MountSpecialArchive(common::NAND_TWL_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_TWL_NAND); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + NN_LOG("AllocatableSize = %d\n", bufSize); + + // ファイルサイズ設定 + common::InitializeTransferProgress(fileSize); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + common::CopyDirectory( + &s_FileLists, + (::std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(common::SD_SAVEDATA_TWL_ROOT_NAME)).c_str(), + (std::wstring(common::NAND_TWL_DATA_ROOT_PATHNAME_WITHOUT_SLASH) + ::std::wstring(L"/")).c_str(), + buf, bufSize, false, NULL, NULL); + + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + nn::fs::Unmount(common::NAND_TWL_ARCHIVE_NAME); +} + +void ImportTwlPhotoDataFunc() +{ + COMMON_LOGGER("Import Twl Photo Data.\n"); + ImportTwlData(common::TWL_PHOTO, s_SdFileSize.twlPhotoFileSize); +} + +void ImportTwlSoundDataFunc() +{ + COMMON_LOGGER("Import Twl Sound Data.\n"); + ImportTwlData(common::TWL_SOUND, s_SdFileSize.twlSoundFileSize); +} + +void ImportTwlSaveDataFunc() +{ + COMMON_LOGGER("Import Twl Save Data.\n"); + ImportTwlTitleSaveData(s_SdFileSize.twlFileSize); +} + +void ImportTwlPhotoData() +{ + s_ImportThread.Start(ImportTwlPhotoDataFunc, s_ImportThreadStack); +} + +void ImportTwlSoundData() +{ + s_ImportThread.Start(ImportTwlSoundDataFunc, s_ImportThreadStack); +} + +void ImportTwlSaveData() +{ + s_ImportThread.Start(ImportTwlSaveDataFunc, s_ImportThreadStack); +} + + +void ClearFileReadResult() +{ + s_CheckedEqualsDeviceIdFileandDeviceId = false; + s_CheckedEqualsRegionDataandRegion = false; + s_ReadSerialNumber = false; +} + +void ImportPlayHistoryThreadFunc() +{ + common::PlayHistoryManager historyManager; + + COMMON_LOGGER("Import PlayHistory\n"); + historyManager.Import(); +} + +void ImportPlayHistory() +{ + s_ImportThread.Start(ImportPlayHistoryThreadFunc, s_ImportThreadStack); +} + +void ExportCalData() +{ + using namespace nn::cfg::CTR::detail; + + nn::Result result; + common::CfgCalData cfgCalData; + common::SdReaderWriter sdWriter; + + COMMON_LOGGER("Export CalData\n"); + + common::SdMountManager::Mount(); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.touchPanelCfgData, sizeof(TouchPanelCfgData), + GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.lcdFlickerCfgData, sizeof(LcdFlickerCfgData), + GET_CFG_KEY(NN_CFG_LCD, NN_CFG_LCD_CAL_FLICKER)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.fcramCfgData, sizeof(FcramCfgData), + GET_CFG_KEY(NN_CFG_FCRAM, NN_CFG_FCRAM_CAL_DELAY)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.rtcCfgData, sizeof(RtcCfgData), + GET_CFG_KEY(NN_CFG_RTC, NN_CFG_RTC_CAL_COMPENSATION)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.gyroscopeCfgData, sizeof(GyroscopeCfgData), + GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_GYROSCOPE)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.accelCfgData, sizeof(AccelCfgData), + GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_ACCELEROMETER)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.codecCfgData, sizeof(CodecCfgData), + GET_CFG_KEY(NN_CFG_CODEC, NN_CFG_CODEC_CAL)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::GetConfig(&cfgCalData.mcuSlideVolumeRangeCfgData, sizeof(McuSlideVolumeRangeCfgData), + GET_CFG_KEY(NN_CFG_MCU, NN_CFG_MCU_SLIDE_VOLUME)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + sdWriter.WriteBufWithCmac(common::CFG_CALIBRATION_PATHNAME, &cfgCalData, sizeof(cfgCalData)); + + common::SdMountManager::Unmount(); +} + +nn::Result ImportCalData(common::CfgCalData *data) +{ + using namespace nn::cfg::CTR::detail; + + nn::Result result = nn::ResultSuccess(); + + COMMON_LOGGER("Import CalData\n"); + + common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize() / 2; + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::CFG_CALIBRATION_PATHNAME, buf, bufSize, &readSize); + if(result.IsSuccess()) + { + // SDから読み出し成功 + std::memcpy(data, buf, readSize); + } + common::HeapManager::GetHeap()->Free(buf); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + } + else + { + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + common::SdMountManager::Unmount(); + return result; +} + +nn::Result InitializeHardwareDependentSetting() +{ + using namespace nn::cfg::CTR::detail; + nn::Result result = nn::ResultSuccess(); + + common::CfgCalData cfgCalData; + result = ImportCalData(&cfgCalData); + NN_UTIL_RETURN_IF_FAILED(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_TOUCHPANEL), + &cfgCalData.touchPanelCfgData, sizeof(TouchPanelCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_LCD, NN_CFG_LCD_CAL_FLICKER), + &cfgCalData.lcdFlickerCfgData, sizeof(LcdFlickerCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_FCRAM, NN_CFG_FCRAM_CAL_DELAY), &cfgCalData.fcramCfgData, + sizeof(FcramCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_RTC, NN_CFG_RTC_CAL_COMPENSATION), + &cfgCalData.rtcCfgData, sizeof(RtcCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_GYROSCOPE), + &cfgCalData.gyroscopeCfgData, sizeof(GyroscopeCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_HID, NN_CFG_HID_CAL_ACCELEROMETER), + &cfgCalData.accelCfgData, sizeof(AccelCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_CODEC, NN_CFG_CODEC_CAL), &cfgCalData.codecCfgData, + sizeof(CodecCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = nn::cfg::CTR::init::SetConfig(GET_CFG_KEY(NN_CFG_MCU, NN_CFG_MCU_SLIDE_VOLUME), + &cfgCalData.mcuSlideVolumeRangeCfgData, sizeof(McuSlideVolumeRangeCfgData)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + NN_LOG("Set cfgCalData\n"); + + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + nn::cfg::CTR::init::ResetCameraCalibration(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + nn::cfg::CTR::init::ResetAnalogStickCalibration(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + return result; +} + +nn::Result SetupFileList() +{ + std::memset(&s_SdFileSize, 0, sizeof(s_SdFileSize)); + + // ファイル一覧を読み込む + nn::Result result = ReadFileList(&s_SdFileSize, &s_FileLists); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +nn::Result ReadFileList(SdFileSize* sdFiles, common::ImportDataList* fileList) +{ + nn::Result result = nn::ResultSuccess(); + + COMMON_LOGGER("Read File List\n"); + + size_t readSize; + common::SdReaderWriter sdReader; + s64 fileSize; + { + nn::fs::FileInputStream file; + + // サイズ取得のため一時的に開く + result = file.TryInitialize(common::FILE_LIST_PATHNAME); + NN_UTIL_RETURN_IF_FAILED(result); + + result = file.TryGetSize(&fileSize); + if (result.IsFailure()) + { + file.Finalize(); + return result; + } + file.Finalize(); + } + + void* buf = common::HeapManager::GetHeap()->Allocate(fileSize); + if(buf != NULL) + { + result = sdReader.ReadBufWithCmac(common::FILE_LIST_PATHNAME, buf, fileSize, &readSize); + if(result.IsSuccess()) + { + // ファイル一覧 + const char comma[] = ","; + const char newLine[] = "\n"; + char *token = NULL; + token = std::strtok(reinterpret_cast(buf), comma); + bool parseFileName = false; + common::ImportDataEntry entry; + + entry.fileName = std::string(token); + while( token != NULL) + { + if(parseFileName) + { + token = std::strtok(NULL, comma); + if(token != NULL) + { + entry.fileName = std::string(token); + } + } + else + { + token = std::strtok(NULL, newLine); + if(token != NULL) + { + s64 size = std::atoll(token); + if(size != -1) + { + entry.isDirectory = false; + sdFiles->totalFileSize += size; + + wchar_t wcToken[nn::fs::MAX_FILE_PATH_LENGTH]; + if(std::mbstowcs(wcToken, entry.fileName.c_str(), entry.fileName.size()) != entry.fileName.size() - 1) + { + if(std::wcsstr(wcToken, common::SD_SAVEDATA_ROOT_NAME) != NULL) + { + sdFiles->ctrFileSize += size; + } + else if(std::wcsstr(wcToken, common::SD_SAVEDATA_TWL_PHOTO_ROOT_NAME) != NULL) + { + sdFiles->twlPhotoFileSize += size; + } + else if(std::wcsstr(wcToken, common::SD_SAVEDATA_TWL_SOUND_ROOT_NAME) != NULL) + { + sdFiles->twlSoundFileSize += size; + } + else if(std::wcsstr(wcToken, common::SD_SAVEDATA_TWL_ROOT_NAME) != NULL) + { + sdFiles->twlFileSize += size; + } + } + } + else + { + entry.isDirectory = true; + } + + fileList->push_back(entry); + } + } + parseFileName = !parseFileName; + + } + + } + common::HeapManager::GetHeap()->Free(buf); + } + else + { + result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + return result; + +} + +nn::Result ImportData() +{ + static nn::Result result = nn::ResultSuccess(); + static bool init = true; + if(init) + { + init = false; + + // NANDのごみを削除する + Cleanup(); + + // SDカードのIVSファイルを書き込む + result = ImportIvs(); + NN_UTIL_RETURN_IF_FAILED(result); + + // NORデータを書き込む + result = ImportNorData(); + NN_UTIL_RETURN_IF_FAILED(result); + + // 固体固有calLデータをSDカードに出力する + // 本体初期化後はcal値が設定されている + ExportCalData(); + + // SDカードのセーブデータをNANDに書き込む + ImportSaveData(); + } + + return result; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.h new file mode 100644 index 0000000..cbe3cb5 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Importer.h @@ -0,0 +1,159 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Importer.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef IMPORTER_H_ +#define IMPORTER_H_ + +#include +#include "FileName.h" +#include +#include +#include "HardwareStateManager.h" + +namespace ConsoleRestore +{ + +// SDカードのデバイスIDファイルと本体のデバイスIDが一致しているかどうか +nn::Result EqualsDeviceIdFileandDeviceId(common::HardwareStateManager& manager); + +// SDカードのリージョンと本体のリージョンが一致しているかどうか +nn::Result EqualsRegionDataandRegion(); + +// シリアルナンバーを取得する +nn::Result ReadSerialNumber(u8* serial); + +// 出力ファイル一覧を読み込む +nn::Result SetupFileList(); + +// インポート用のスレッドを終了する +void FinalizeImportThread(); + +// インポート用のスレッドが終了したかどうか +bool IsImportThreadFinished(); + +// 新たにスレッドを立て、TWLサウンド領域をインポートする +void ImportTwlSoundData(); + +// 新たにスレッドを立て、TWL-NAND領域をインポートする +void ImportTwlSaveData(); + +// 新たにスレッドを立て、TWL写真領域をインポートする +void ImportTwlPhotoData(); + +// 本体固有データを読み込む +// 新たにスレッドを立て、CTRセーブデータ領域をインポートする +nn::Result ImportData(); + +// インポート完了ファイルを作る +void CreateWriteFinishedFile(); + +// ネットワークアップデート完了ファイルを作る +void CreateUpdateFinishedFile(); + +// 本体初期化完了ファイルを作る +void CreateConsoleInitializedFile(); + +// RTC書き込み完了ファイルを作る +void CreateRtcSyncFinishedFile(); + +// IVSダウンロード完了ファイルを作る +void CreateDownloadIvsFinishedFile(); + +// アカウント削除完了ファイルを作る +void CreateDeleteAccountFinishedFile(); + +// アカウント移行完了ファイルを作る +void CreateTransferAccountFinishedFile(); + +// インポートスレッドの進捗を取得する +u32 GetImportProgress(); + +// NANDのごみを削除する +void Cleanup(); + + +// ファイルが存在するかどうか確認するためのテーブル +const wchar_t* const CHECK_FILENAME_TABLE[] = +{ + common::UPDATE_CHECK_PATHNAME, + common::INITIALIZED_CHECK_PATHNAME, + common::WRITE_FINISHED_CHECK_PATHNAME, + common::RTC_SYNC_CHECK_PATHNAME, + common::DOWNLOAD_IVS_CHECK_PATHNAME, + common::DELETE_ACCOUNT_CHECK_PATHNAME, + common::TRANSFER_ACCOUNT_CHECK_PATHNAME +}; + +// ファイル存在確認をクリアする +void DeleteAllCheckFiles(); + +struct TimeZone +{ + u32 hour; + u32 minutes; + bool isMinus; + NN_PADDING3; +}; + +// ネットワーク設定ファイルを読み込む +bool ReadSetting(bool* nupOnly, bool* getIvs, bool* checkSd, bool* skipNup); + +// ネットワーク設定ファイルからNTPサーバの名前を取得する +// 先にReadSettingが成功している必要がある +char* GetNtpServerName(); + +// ネットワーク設定ファイルからタイムゾーンを取得する +// 先にReadSettingが成功している必要がある +TimeZone GetTimeZone(); + +struct CheckedNetworkSetting +{ + nn::ac::CTR::NetworkSetting setting; + bool isValid; + NN_PADDING3; +}; + +// SDカードから読み込んだネットワーク設定ファイルから生成した +// インターネット設定へのポインタを取得する +// インターネット設定は内部のバッファに読み込む +CheckedNetworkSetting* GetTempNetworkSetting(); + +// 国設定を読み込む +nn::Result ImportCountryLanguageData(); + +// RTCを読み込む +nn::Result ImportMcuRtc(common::HardwareStateManager& manager); + +// TWL写真領域を初期化してから本体初期化を行う +void InitializeFileSystem(); + +// SDカードのファイルと本体情報の比較結果をクリアする +void ClearFileReadResult(); + +// プレイ履歴を読み込みます。ptmのセーブデータ移行後に呼び出す必要があります +void ImportPlayHistory(); + +// cfgのハードウェア固有領域をcal値で初期化します +nn::Result InitializeHardwareDependentSetting(); + +// SDカード上のバージョン情報を読みます +nn::Result ReadVersionData(); + +// SDカードのNintendo 3DS以下ににIVSと一致するディレクトリがあるかどうか +bool ExistsIvsDirectory(std::string& ivsRoot); + +} + +#endif /* IMPORTER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.cpp new file mode 100644 index 0000000..f2a5114 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.cpp @@ -0,0 +1,376 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: NtpClient.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Importer.h" +#include "CommonLogger.h" + +namespace ConsoleRestore +{ + +namespace { + +const size_t NTP_THREAD_STACK_SIZE = 0x1000; +nn::os::Thread s_NtpThread; +nn::os::StackBuffer s_NtpThreadStack; +bool s_NtpSyncSuccessed = false; + + +struct NTP_Packet{ // NTPパケット + u32 controlWord; + u32 rootDelay; + u32 rootDispersion; + u32 referenceId; + s64 referenceTimestamp; + s64 startTimestamp; + s64 receiveTimestamp; + u32 transmitTimestampSeconds; + u32 transmitTimestampFractions; +}; + +const size_t TIMEOUT_MILLISECOND = 5000; // タイムアウト ミリ秒数 +NTP_Packet s_NTPSendPacket; // 送信するNTPパケット +NTP_Packet s_NTPRecvPacket; // 受信するNTPパケット +const u32 NTP_PORT_NUM = 123; + +nn::Result InitializeNetwork(void) +{ + nn::Result result; + nn::ac::Config config; + + result = nn::ac::Initialize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // 接続要求用のパラメータを作成 + result = nn::ac::CreateDefaultConfig(&config); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return result; + } + + // デバッグ用に接続テストを無効化 + nn::ac::DebugSetNetworkArea(&config, nn::ac::NETWORK_AREA_LAN); + + // 接続要求を発行 + result = nn::ac::ConnectWithoutEula(config); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return result; + } + + return nn::ResultSuccess(); +} + +nn::Result FinalizeNetwork(void) +{ + nn::Result result; + + // 接続要求用のパラメータを作成 + result = nn::ac::Close(); + NN_UTIL_RETURN_IF_FAILED(result); + + result = nn::ac::Finalize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + return nn::ResultSuccess(); +} + +bool GetNtpTime(u32* ntpTime) +{ + nn::Result result; + + bool retval = true; + NN_LOG("Initializing network.\n"); + + // 本体に書き込まれているネットワーク設定を使ってネットワーク接続を初期化 + result = InitializeNetwork(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + { + NN_LOG("Initializing socket..\n"); + + // 一つのスレッドからソケット API を利用する + const s32 sessionCount = 1; + // ソケットの送受信バッファとして 64 KB を割り当て + const size_t bufferSizeForSockets = 65536; + // ソケットライブラリに必要なワークサイズを求める + const size_t workSizeForLibrary = nn::socket::GetRequiredMemorySize(bufferSizeForSockets, sessionCount); + + // ワークメモリを確保して 4KB にアラインにする + u8* pWorkMemory = new u8[workSizeForLibrary + 4096]; + uptr workMemoryAddress = nn::math::RoundUp(reinterpret_cast (pWorkMemory), 4096); + + // ソケットライブラリの初期化 + result = nn::socket::Initialize(workMemoryAddress, workSizeForLibrary, bufferSizeForSockets, sessionCount); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + { + s32 ret; + nn::socket::InAddr addr, netmask; + ret = nn::socket::GetPrimaryAddress(reinterpret_cast (&addr), reinterpret_cast (&netmask)); + NN_ASSERT(ret == 0); + COMMON_LOGGER("host : %s\n", nn::socket::InetNtoA(addr)); + COMMON_LOGGER("netmask : %s\n", nn::socket::InetNtoA(netmask)); + + nn::socket::InAddr dns1, dns2; + ret = nn::socket::GetResolver(reinterpret_cast (&dns1), reinterpret_cast (&dns2)); + if (ret == 0) + { + COMMON_LOGGER("dns1 : %s\n", nn::socket::InetNtoA(dns1)); + COMMON_LOGGER("dns2 : %s\n", nn::socket::InetNtoA(dns2)); + } + + nn::socket::InAddr gateway; + ret = nn::socket::GetDefaultGateway(reinterpret_cast (&gateway)); + if (ret == 0) + { + COMMON_LOGGER("gateway : %s\n", nn::socket::InetNtoA(gateway)); + } + + COMMON_LOGGER("\n"); +#ifndef NN_SWITCH_DISABLE_DEBUG_PRINT + nn::socket::DumpRoutingTable(); +#endif + } + + { + s32 socket = nn::socket::Socket(nn::socket::PF_INET, nn::socket::SOCK_DGRAM, 0); + NN_LOG("socket = %d\n", socket); + + // クライアントアドレスの設定 + nn::socket::SockAddrIn host_addr; + host_addr.len = sizeof(nn::socket::SockAddrIn); + host_addr.family = nn::socket::AF_INET; + host_addr.addr.addr = 0; + host_addr.port = nn::socket::HtoNs(NTP_PORT_NUM); + + // ローカルアドレスをバインド + s32 ret = nn::socket::Bind(socket, &host_addr); + NN_LOG("bind = %d\n", ret); + + // ******************************************************************************** + // NTPパケットを生成して送る + // ******************************************************************************** + + // サーバアドレスの設定 + nn::socket::SockAddrIn serverSockAddrIn; + serverSockAddrIn.len = sizeof(nn::socket::SockAddrIn); + serverSockAddrIn.family = nn::socket::AF_INET; + + // GetHostByNameを使う場合 + nn::socket::HostEnt* serverHostent; + u64 serveraddr = 0; + serverHostent = nn::socket::GetHostByName(GetNtpServerName()); + if (serverHostent == NULL) + { + COMMON_LOGGER("Error: GetHostByName %s\n", GetNtpServerName()); + retval = false; + } + else + { + // サーバのホスト情報からIPアドレスをコピー + serveraddr = *(reinterpret_cast (serverHostent->addrList[0])); + } + serverSockAddrIn.addr.addr = serveraddr; + COMMON_LOGGER("Destination address: %s\n", nn::socket::InetNtoA(serverSockAddrIn.addr)); + serverSockAddrIn.port = nn::socket::HtoNs(NTP_PORT_NUM); // ポート番号 + + // NTPパケットをSNTP用に初期化する + s_NTPSendPacket.controlWord = nn::socket::HtoNl(0x0B000000); + s_NTPSendPacket.rootDelay = 0; + s_NTPSendPacket.rootDispersion = 0; + s_NTPSendPacket.referenceId = 0; + s_NTPSendPacket.referenceTimestamp = 0; + s_NTPSendPacket.startTimestamp = 0; + s_NTPSendPacket.receiveTimestamp = 0; + s_NTPSendPacket.transmitTimestampSeconds = 0; + s_NTPSendPacket.transmitTimestampFractions = 0; + + // サーバを指定してNTPパケットを送信する + if ((ret = nn::socket::SendTo(socket, reinterpret_cast (&s_NTPSendPacket), sizeof(s_NTPSendPacket), 0, + &serverSockAddrIn)) < 0) + { + COMMON_LOGGER("Error: Failed Send to Server, %d\n", ret); + retval = false; + } + + NN_LOG("SendTo finished\n"); + + // 受信待ち + nn::socket::PollFd pollFd; + pollFd.fd = socket; + pollFd.events = nn::socket::POLLRDNORM; + if ((ret = nn::socket::Poll(&pollFd, 1, TIMEOUT_MILLISECOND)) < 0) + { + COMMON_LOGGER("Error: recv error, %d\n", ret); + retval = false; + } + + NN_LOG("Poll Finished\n"); + + switch (pollFd.revents) + { + case nn::socket::POLLERR: // ソケットにエラーが発生しました。 + COMMON_LOGGER("Error: POLLERR %s %d\n", __FILE__, __LINE__); + retval = false; + break; + case nn::socket::POLLHUP: // ストリーム・ソケットが未接続です。 + COMMON_LOGGER("Error: POLLHUP %s %d\n", __FILE__, __LINE__); + retval = false; + break; + case nn::socket::POLLNVAL: // 不正なソケット記述子です。 + COMMON_LOGGER("Error: POLLNVAL %s %d\n", __FILE__, __LINE__); + retval = false; + break; + default: + break; + } + + // サーバから時刻情報を受信する + // サーバを指定して受信を行う + // 受信するまで待たされる + if ((ret = nn::socket::RecvFrom(socket, reinterpret_cast (&s_NTPRecvPacket), sizeof(s_NTPRecvPacket), nn::socket::MSG_DONTWAIT, + &serverSockAddrIn)) < 0) + { + COMMON_LOGGER("Error: RecvFrom, %d\n", ret); + retval = false; + } + + NN_LOG("RecvFrom finished\n"); + + // NTPサーバから取得した時刻を現地時間に変換する + *ntpTime = nn::socket::NtoHl(s_NTPRecvPacket.transmitTimestampSeconds) - 2208988800; /* 1970/01/01 からの秒数に変換 */ + NN_LOG("ntp_time = %d\n", ntpTime); + + nn::socket::Close(socket); + NN_UNUSED_VAR(ret); + } + + NN_LOG("Finalizing socket..\n"); + // ソケットライブラリの終了 + result = nn::socket::Finalize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + + NN_LOG("Finalizing network.\n"); + result = FinalizeNetwork(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + return retval; +} + +void RestoreCurrentInternetSetting() +{ + COMMON_LOGGER("Restore Current Internet Setting\n"); + nn::Result result; + if (GetTempNetworkSetting()->isValid) + { + result = nn::ac::CTR::UpdateNetworkSetting(0, GetTempNetworkSetting()->setting); + COMMON_LOGGER_RESULT_IF_FAILED(result); + } + else + { + // 無効の場合は消去しておく + result = nn::ac::CTR::RemoveNetworkSetting(0); + COMMON_LOGGER_RESULT_IF_FAILED(result); + } + + result = nn::ac::FlushNetworkSetting(); + COMMON_LOGGER_RESULT_IF_FAILED(result); + + result = nn::ac::FinalizeInternal(); + COMMON_LOGGER_RESULT_IF_FAILED(result); +} + +} + +void NtpThreadFunc() +{ + // NTP時間を取得する + u32 ntpTime; + if (GetNtpTime(&ntpTime)) + { + // タイムゾーンを考慮してDateTimeに変換する + TimeZone timeZone = GetTimeZone(); + + // 1970/01/01 + nn::fnd::DateTime utc = nn::fnd::DateTime(1970, 1, 1, 0, 0, 0, 0); + nn::fnd::DateTime current = utc + nn::fnd::TimeSpan::FromSeconds(ntpTime); + + if (timeZone.isMinus) + { + current -= (nn::fnd::TimeSpan::FromHours(timeZone.hour) + nn::fnd::TimeSpan::FromMinutes(timeZone.minutes)); + } + else + { + current += nn::fnd::TimeSpan::FromHours(timeZone.hour) + nn::fnd::TimeSpan::FromMinutes(timeZone.minutes); + } + + // SWCを書き込む + nn::ptm::CTR::SetUserTime(current); + + COMMON_LOGGER("Set User Time %04d/%02d/%02d %02d:%02d:%02d\n", + current.GetYear(), current.GetMonth(), current.GetDay(), current.GetHour(), current.GetMinute(), current.GetSecond()); + + s_NtpSyncSuccessed = true; + } + else + { + COMMON_LOGGER("Failed Get Ntp Time\n"); + s_NtpSyncSuccessed = false; + } + + // インターネット設定を元に戻す + RestoreCurrentInternetSetting(); +} + +bool IsTimeAdjustFinished() +{ + // Initialize済みかつ終了 + return s_NtpThread.IsValid() && !s_NtpThread.IsAlive(); +} + +bool IsTimeAdjustSuccessed() +{ + return s_NtpSyncSuccessed; +} + +void AdjustTime() +{ + nn::Result result; + + result = nn::ac::CTR::InitializeInternal(); + COMMON_LOGGER_RESULT_IF_FAILED(result); + + if(IsTimeAdjustFinished()) + { + s_NtpThread.Join(); + s_NtpThread.Finalize(); + } + s_NtpThread.Start( NtpThreadFunc, s_NtpThreadStack); +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.h new file mode 100644 index 0000000..0e9514e --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/NtpClient.h @@ -0,0 +1,33 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: NtpClient.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef NTPCLIENT_H_ +#define NTPCLIENT_H_ + +namespace ConsoleRestore +{ + +// 新たにスレッドを立て、NTPサーバと同期する +u32 AdjustTime(); + +// NTPサーバとの同期が終了したかどうか +bool IsTimeAdjustFinished(); + +// NTPサーバとの同期が完了したかどうか +bool IsTimeAdjustSuccessed(); + +} + +#endif /* NTPCLIENT_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/OMakefile new file mode 100644 index 0000000..4420d61 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/OMakefile @@ -0,0 +1,85 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +SUPPORTED_TARGETS = CTR-T*.Process.MPCore.* +CTR_APPTYPE = CARD + +TARGET_PROGRAM = ConsoleRestore + +SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) +INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \ + ../common + +SOURCES[] = + ConsoleRestore.cpp + Controller.cpp + Importer.cpp + Updater.cpp + Ntpclient.cpp + TitleDownloader.cpp + Shop.cpp + ../common/Util.cpp + ../common/DrawSystemState.cpp + ../common/FileTransfer.cpp + ../common/FileChecker.cpp + ../common/SdReaderWriter.cpp + ../common/HeapManager.cpp + ../common/SdLogger.cpp + ../common/wave.cpp + ../common/SimplePlayer.cpp + ../common/LogConsole.cpp + ../common/CommonLogger.cpp + ../common/SdMountManager.cpp + ../common/configLoader.cpp + ../common/PlayHistoryManager.cpp + ../common/VersionDetect.cpp + ../common/ResFont.cpp + ../common/HardwareStateManager.cpp + +CTR_BANNER_SPEC = $(TARGET_PROGRAM).bsf + +ROMFS_ROOT = ../common/romfiles + +SHADER_BIN = nnfont_RectDrawerShader.shbin +SHADER_PATH = $(ROMFS_ROOT)/$(SHADER_BIN) + +ROMFS_DEPENDENCIES = $(SHADER_PATH) + +LIBS += libnn_cfg \ + libnn_crypto \ + libnn_mcu \ + libnn_ps \ + lib_demo \ + libnn_nwm \ + libnn_friends \ + libnn_ns \ + libnn_am \ + libnn_nim \ + +INSTALL_SDK_TOOL = true + +ROM_SPEC_FILE = $(TARGET_PROGRAM).rsf +DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/RepairTool.desc + +include $(ROOT_OMAKE)/modulerules + +VERSION_H = $(file ../../generated/$(TARGET_PROGRAM)/version.h) + +$(VERSION_H): $(SOURCES) + section + bash genversion.sh + +RequireSetup($(VERSION_H)) +build: $(VERSION_H) $(DEFAULT_TARGETS) diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.cpp new file mode 100644 index 0000000..3a1b0bd --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.cpp @@ -0,0 +1,560 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Shop.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Shop.h" +#include "CommonLogger.h" + +using namespace ES_NAMESPACE; +using namespace EC_NAMESPACE; + +#define NIM_SHOP_RESULT_CHECK(result) \ +do { \ + if (result.IsFailure()) \ + { \ + ECCustomerSupportCode csc; \ + nn::nim::Shop::GetCustomerSupportCode(&csc); \ + COMMON_LOGGER("CSCode: %d\n", csc); \ + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); \ + NN_DBG_PRINT_RESULT(result); \ + COMMON_LOGGER_DETAIL("Result = %08X\n", result.GetPrintableBits()); \ + s_ShopResult = result; \ + return; \ + } \ +} while(0) +namespace +{ + +nn::Result s_ShopResult = nn::ResultSuccess(); + +const size_t SHOP_OPERATION_THREAD_STACK_SIZE = 0x1000; +nn::os::Thread s_ShopOperationThread; +nn::os::StackBuffer s_ShopOperationThreadStack; + +const size_t EC_BUFFER_SIZE = 128 * 1024; +u8 s_EcBufffer[EC_BUFFER_SIZE]; +bool s_IsNimShopInitialized = false; + +struct ShopThreadParam +{ + ConsoleRestore::ShopOperation op; + nn::nim::TitleConfig config; +}; + +// TitleProgress の ==, != を定義 +bool operator==( + nn::nim::TitleProgress& lhs, + nn::nim::TitleProgress& rhs) +{ + return (lhs.state == rhs.state && + lhs.lastResult == rhs.lastResult && + lhs.downloadedSize == rhs.downloadedSize && + lhs.totalSize == rhs.totalSize); +} + +bool operator!=( + nn::nim::TitleProgress& lhs, + nn::nim::TitleProgress& rhs) +{ + return (! (lhs == rhs)); +} + +// TitleState の文字列を取得 +#ifdef COMMON_LOGGER_DETAIL_ENABLE +const char* GetTitleStateString(nn::nim::TitleState state) +{ + switch (state) + { + case nn::nim::TITLE_STATE_NOT_INITIALIZED: + return "NOT_INITIALIZED"; + case nn::nim::TITLE_STATE_INITIALIZED: + return "INITIALIZED"; + case nn::nim::TITLE_STATE_DOWNLOAD_TMD: + return "DOWNLOAD_TMD"; + case nn::nim::TITLE_STATE_PREPARE_SAVE_DATA: + return "PREPARE_SAVE_DATA"; + case nn::nim::TITLE_STATE_DOWNLOAD_CONTENTS: + return "DOWNLOAD_CONTENTS"; + case nn::nim::TITLE_STATE_WAIT_COMMIT: + return "WAIT_COMMIT"; + case nn::nim::TITLE_STATE_COMMITTING: + return "COMMITTING"; + case nn::nim::TITLE_STATE_FINISHED: + return "FINISHED"; + case nn::nim::TITLE_STATE_VERSION_MISMATCH: + return "VERSION_MISMATCH"; + default: + return "UNKNOWN"; + } +} +#endif + + +// 空文字列と NULL ポインタをそれぞれ と NULL として返す +#ifdef COMMON_LOGGER_DETAIL_ENABLE +const char* Cstr(const char* p) +{ + return p ? (p[0] ? p : "") : "NULL"; +} +#endif + +// ECTicketVersions を出力 +void PrintECTicketVersions(const ECTicketVersions& ticketVersions) +{ + if (ticketVersions.nTicketVersions == 0) + { + COMMON_LOGGER_DETAIL("No TicketVersions\n"); + return; + } + + COMMON_LOGGER_DETAIL("----- ECTicketVersions -----\n"); + for (u32 i = 0; i < ticketVersions.nTicketVersions; i++) + { +#ifdef COMMON_LOGGER_DETAIL_ENABLE + ECTicketVersion version = ticketVersions.ticketVersions[i]; +#endif + COMMON_LOGGER_DETAIL("%03d: 0x%016llx v%d\n", i, version.ticketId, version.version); + } + COMMON_LOGGER_DETAIL("---------------------------\n"); +} + +// ECAccountInfo の情報を出力 +void PrintECAccountInfo(const ECAccountInfo& accountInfo) +{ + COMMON_LOGGER_DETAIL("========== ECAccountInfo ==========\n"); + + COMMON_LOGGER_DETAIL("accountId\n %s\n", Cstr(accountInfo.accountId)); + + COMMON_LOGGER_DETAIL("accountStatus\n %s\n", Cstr(accountInfo.accountStatus)); + + if (accountInfo.accountBalance == NULL) + { + COMMON_LOGGER_DETAIL("accountBalance\n NULL\n"); + } + else + { + COMMON_LOGGER_DETAIL("accountBalance->amount\n %s\n", + Cstr(accountInfo.accountBalance->amount)); + COMMON_LOGGER_DETAIL("accountBalance->currency\n %s\n", + Cstr(accountInfo.accountBalance->currency)); + } + + if (accountInfo.agreedEULAVersion == NULL) + { + COMMON_LOGGER_DETAIL("agreedEULAVersion\n NULL\n"); + } + else + { + COMMON_LOGGER_DETAIL("agreedEULAVersion\n %lld\n", + *accountInfo.agreedEULAVersion); + } + + if (accountInfo.latestEULAVersion == NULL) + { + COMMON_LOGGER_DETAIL("latestEULAVersion\n NULL\n"); + } + else + { + COMMON_LOGGER_DETAIL("latestEULAVersion\n %lld\n", + *accountInfo.latestEULAVersion); + } + + COMMON_LOGGER_DETAIL("country\n %s\n", Cstr(accountInfo.country)); + + COMMON_LOGGER_DETAIL("extAccountId\n %s\n", Cstr(accountInfo.extAccountId)); + + COMMON_LOGGER_DETAIL("deviceToken\n %s\n", Cstr(accountInfo.deviceToken)); + + COMMON_LOGGER_DETAIL("weakToken\n %s\n", Cstr(accountInfo.weakToken)); + + COMMON_LOGGER_DETAIL("isStandbyMode\n %d\n", accountInfo.isStandbyMode); + + if (accountInfo.owned == NULL) + { + COMMON_LOGGER_DETAIL("owned\n NULL\n"); + } + else + { + PrintECTicketVersions(*(accountInfo.owned)); + } +} + +nn::Result PrintNetworkSetting() +{ + nn::Result result; + nn::ac::NetworkSetting networkSetting; + result = nn::ac::LoadNetworkSetting(0, networkSetting); + COMMON_LOGGER("SSID: %s\n", networkSetting.wireless.essidSecurity.ssid); + COMMON_LOGGER("DNS : %d.%d.%d.%d\n", + networkSetting.ip.dns[0][0], networkSetting.ip.dns[0][1], + networkSetting.ip.dns[0][2], networkSetting.ip.dns[0][3]); + return result; +} + + +nn::Result ConnectNetwork() +{ + nn::Result result; + nn::ac::Config config; + + result = nn::ac::CreateDefaultConfig(&config); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + + result = nn::ac::ConnectWithoutEula(config); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + + COMMON_LOGGER_DETAIL("Success nn::ac::ConnectWithoutEula\n"); + + result = PrintNetworkSetting(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +nn::Result InitializeInternal() +{ + nn::Result result; + + result = nn::ac::InitializeInternal(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + + result = ConnectNetwork(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +nn::Result FinalizeInternal() +{ + nn::Result result = nn::ResultSuccess(); + + nn::ac::CloseAll(); + + result = nn::ac::FinalizeInternal(); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +} + + +namespace ConsoleRestore{ + +nn::Result ShopOperationConnect(); +nn::Result ShopOperationFinalize(); + + +nn::Result CheckStandbyMode(s32 isStandbyMode) +{ + if(isStandbyMode) + { + COMMON_LOGGER("Shop is Standby Mode\n"); + return nn::MakePermanentResult(nn::Result::SUMMARY_INVALID_STATE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_NOT_AUTHORIZED); + } + else + { + return nn::ResultSuccess(); + } +} + +nn::Result ShopOperationConnect(ECAccountInfo** pAccountInfo) +{ + nn::Result result = nn::ResultSuccess(); + + /* ------------------------------------------------------------------- + Connect + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("nim::Shop::Connect\n"); + result = nn::nim::Shop::Connect(pAccountInfo, s_EcBufffer, EC_BUFFER_SIZE); + NN_UTIL_RETURN_IF_FAILED(result); + result = CheckStandbyMode((*pAccountInfo)->isStandbyMode); + NN_UTIL_RETURN_IF_FAILED(result); + + PrintECAccountInfo(**pAccountInfo); + COMMON_LOGGER_DETAIL("\n"); + + return result; +} + +nn::Result ShopOperationInitialize() +{ + nn::Result result = nn::ResultSuccess(); + + /* ------------------------------------------------------------------- + Initialize + -------------------------------------------------------------------- */ + if (!s_IsNimShopInitialized) + { + COMMON_LOGGER_DETAIL("nim::InitializeForShop\n"); + result = nn::nim::InitializeForShop(); + NN_UTIL_RETURN_IF_FAILED(result); + s_IsNimShopInitialized = true; + } + + /* ------------------------------------------------------------------- + SetParameter + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("nim::Shop::SetApplication Id\n"); + + nn::nim::Shop::SetApplicationId(); + NN_UTIL_RETURN_IF_FAILED(result); + + COMMON_LOGGER_DETAIL("nim::Shop::SetTIN\n"); + result = nn::nim::Shop::SetTin(CONSOLE_RESTORE_TIN); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +nn::Result ShopOperationConnect() +{ + nn::Result result; + result = ShopOperationInitialize(); + NN_UTIL_RETURN_IF_FAILED(result); + + /* ------------------------------------------------------------------- + Connect + -------------------------------------------------------------------- */ + ECAccountInfo* pAccountInfo; + result = ShopOperationConnect(&pAccountInfo); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +nn::Result ShopOperationFinalize() +{ + nn::Result result = nn::ResultSuccess(); + + /* ------------------------------------------------------------------- + Finalize + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("nim::FinalizeForShop\n"); + result = nn::nim::FinalizeForShop(); + NN_UTIL_RETURN_IF_FAILED(result); + s_IsNimShopInitialized = false; + + COMMON_LOGGER_DETAIL("util::ac::Finalize\n"); + result = FinalizeInternal(); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +namespace +{ + +void ShopOperationUnregisterCore(bool force) +{ + nn::Result result; + result = ShopOperationInitialize(); + NIM_SHOP_RESULT_CHECK(result); + ECAccountInfo* pAccountInfo; + result = ShopOperationConnect(&pAccountInfo); + NIM_SHOP_RESULT_CHECK(result); + if (force) + { + if (pAccountInfo->accountStatus && (pAccountInfo->accountStatus[0] == 'R' || pAccountInfo->accountStatus[0] + == 'T')) + { + COMMON_LOGGER_DETAIL("nim::Shop::Unregister\n"); + result = nn::nim::Shop::Unregister(); + NIM_SHOP_RESULT_CHECK(result); + } + } + else + { + if (pAccountInfo->accountStatus && (pAccountInfo->accountStatus[0] == 'R')) + { + COMMON_LOGGER_DETAIL("nim::Shop::Unregister\n"); + result = nn::nim::Shop::Unregister(); + NIM_SHOP_RESULT_CHECK(result); + } + else + { + COMMON_LOGGER_DETAIL("Not registered.\n"); + } + } +} + +// メイン関数 +void ShopOperationSingleThreadFunc(ShopThreadParam param) +{ + nn::Result result; + + s_ShopResult = nn::ResultSuccess(); + + COMMON_LOGGER_DETAIL("util::ac::Initialize\n"); + result = InitializeInternal(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + NIM_SHOP_RESULT_CHECK(result); + + switch(param.op) + { + case SHOP_OPERATION_CONNECT: + { + result = ShopOperationConnect(); + NIM_SHOP_RESULT_CHECK(result); + } + break; + + case SHOP_OPERATION_GET_IVS: + { + result = ShopOperationInitialize(); + NIM_SHOP_RESULT_CHECK(result); + // IVSを取得する + result = nn::nim::Shop::ImportIvsFromInfrastructure(); + NIM_SHOP_RESULT_CHECK(result); + } + break; + + case SHOP_OPERATION_UNREGISTER: + { + ShopOperationUnregisterCore(false); + } + break; + + case SHOP_OPERATION_FORCE_UNREGISTER: + { + ShopOperationUnregisterCore(true); + } + break; + + case SHOP_OPERATION_CONNECT_WITHOUT_CLOSE: + { + result = ShopOperationConnect(); + NIM_SHOP_RESULT_CHECK(result); + return; + } + + + { + case SHOP_OPERATION_DOWNLOAD_TITLE: + COMMON_LOGGER_DETAIL("Try Download %016llx\n", param.config.titleId); + result = nn::nim::Shop::StartDownload(param.config); + + if (result == nn::nim::ResultBusy() || result == nn::nim::ResultAlreadyDone()) + { + COMMON_LOGGER("Download Content -> Nim is busy\n"); + } + else if (result == nn::nim::ResultInvalidTitle()) + { + COMMON_LOGGER("Download Content -> Invalid Title\n"); + } + else if (result.IsFailure()) + { + COMMON_LOGGER("Download Content -> Failure %x\n", result.GetPrintableBits()); + } + + /* ------------------------------------------------------------------- + GetProgress + -------------------------------------------------------------------- */ + + COMMON_LOGGER_DETAIL("nim::Shop::GetProgress()\n"); + nn::nim::TitleProgress before; + nn::nim::TitleProgress latest; + while (true) + { + result = nn::nim::Shop::GetProgress(&latest); + + NIM_SHOP_RESULT_CHECK(result); + NIM_SHOP_RESULT_CHECK(latest.lastResult); + + // Print progress + if (latest != before) + { + COMMON_LOGGER_DETAIL("%8lld / %8lld (%d:%s)\n", + latest.downloadedSize, + latest.totalSize, + latest.state.Get(), + GetTitleStateString(latest.state)); + + if (latest.state == nn::nim::TITLE_STATE_FINISHED) + { + COMMON_LOGGER_DETAIL("Finished Download\n"); + break; + } + + before = latest; + } + + // あまりにも頻繁に GetProgress を呼ぶと、ダウンロード処理の速度に + // 影響が出てしまいます。少なくとも数フレーム以上の間隔をあけて + // GetProgress することを推奨します。 + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(100)); + } + } + break; + } + + result = ShopOperationFinalize(); + NIM_SHOP_RESULT_CHECK(result); +} + +} + +void StartShopOperationSingle(ShopOperation op, nn::nim::TitleConfig config) +{ + COMMON_LOGGER_DETAIL("Start ShopOperationSingle, %s\n", SHOP_OPERATION_STR[op]); + + ShopThreadParam param; + param.op = op; + param.config = config; + s_ShopOperationThread.Start(ShopOperationSingleThreadFunc, param, s_ShopOperationThreadStack); +} + +void StartShopOperationSingle(ShopOperation op) +{ + ShopThreadParam param; + param.op = op; + + COMMON_LOGGER_DETAIL("Start ShopOperationSingle, %s\n", SHOP_OPERATION_STR[op]); + s_ShopOperationThread.Start(ShopOperationSingleThreadFunc, param, s_ShopOperationThreadStack); +} + +void FinalizeShopOperationSingle() +{ + COMMON_LOGGER_DETAIL("Finalize ShopOperationSingle\n"); + s_ShopOperationThread.Join(); + s_ShopOperationThread.Finalize(); +} + +bool IsShopOperationSingleFinished() +{ + return s_ShopOperationThread.IsValid() && !s_ShopOperationThread.IsAlive(); +} + +nn::Result GetShopOperationSingleResult() +{ + return s_ShopResult; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.h new file mode 100644 index 0000000..1cf5eac --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Shop.h @@ -0,0 +1,68 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Shop.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef SHOP_H_ +#define SHOP_H_ + +#include +#include + +namespace ConsoleRestore +{ + +// ショップサーバにConsoleResotoreが接続するためのTINコード +const char* const CONSOLE_RESTORE_TIN = "987654321"; + +typedef enum SHOP_OPERATION +{ + SHOP_OPERATION_CONNECT, // Shop::ConnectしてCloseするだけ + SHOP_OPERATION_GET_IVS, // Shop::ImportIvsFromInfrastructureを実行 + SHOP_OPERATION_UNREGISTER, // Shop::Unregisterを実行 + SHOP_OPERATION_FORCE_UNREGISTER, // アカウント移行後でもUnregisterを実行 + SHOP_OPERATION_CONNECT_WITHOUT_CLOSE, // Shop::ConnectしてCloseしない + SHOP_OPERATION_DOWNLOAD_TITLE, // Titleをダウンロードする + SHOP_OPERATION_NUM_MAX + +} ShopOperation; + +// ショップ操作のモード表示用文字列(デバッグ用) +const char* const SHOP_OPERATION_STR[] = +{ + "Connect", + "Get SDCI", + "Unregister", + "Force Unregister", + "Connect Without Close", + "Download Title" +}; + +// 新たにスレッドを立て、ショップ操作を開始する +void StartShopOperationSingle(ShopOperation op, nn::nim::TitleConfig config); + +// 新たにスレッドを立て、ショップ操作を開始する +void StartShopOperationSingle(ShopOperation op); + +// ショップ操作スレッドを終了する +void FinalizeShopOperationSingle(); + +// ショップ操作スレッドが終了したかどうか +bool IsShopOperationSingleFinished(); + +// ショップ操作のResultを取得する +nn::Result GetShopOperationSingleResult(); + +} + +#endif /* SHOP_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.cpp new file mode 100644 index 0000000..2019e70 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.cpp @@ -0,0 +1,261 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: TitleDownloader.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include + +#include "FileName.h" +#include "CommonLogger.h" +#include "HeapManager.h" +#include "TitleDownloader.h" +#include "Shop.h" +#include "SdReaderWriter.h" + + +namespace +{ + +bit8 s_buffer1[400 * 1024]; + +const size_t TITLE_DOWNLOADER_STACK_SIZE = 0x1000; +nn::os::Thread s_TitleDownloaderThread; +nn::os::StackBuffer s_TitleDownloaderThreadStack; +u64 s_Progress; + +nn::fs::MediaType GetMediaType(const ES_NAMESPACE::ESTitleId titleId) +{ + return (nn::CTR::IsTwlApp(titleId)) ? + nn::fs::MEDIA_TYPE_NAND : nn::fs::MEDIA_TYPE_SDMC; +} + +const char *GetAttribute(EC_NAMESPACE::ECNameValuePair *attributes, u32 nAttributes, const char *attributeName) +{ + for(int i=0; inEntries == 1) + { + *entry = &(titleCatalog->entries[0]); + } + else + { + return nn::MakeStatusResult(nn::Result::SUMMARY_NOT_FOUND, nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_NOT_FOUND); + } + + } + return result; +} + +nn::Result GetTitleConfig(const ES_NAMESPACE::ESTitleId titleId, nn::nim::TitleConfig *titleConfig) +{ + EC_NAMESPACE::ECTitleCatalogEntry *entry; + NN_UTIL_RETURN_IF_FAILED(GetEntry(titleId, &entry)); + + titleConfig->titleId=titleId; + titleConfig->version=std::strtoull(GetAttribute(entry->attributes, entry->nAttributes, "Version"), NULL, 10); + titleConfig->ratingAge=0; + titleConfig->media=GetMediaType(titleId); + + COMMON_LOGGER_DETAIL("titleId : 0x%016llx\n", titleConfig->titleId); + COMMON_LOGGER_DETAIL("version : %lld\n" , titleConfig->version); + COMMON_LOGGER_DETAIL("ratingAge : %d\n" , titleConfig->ratingAge); + COMMON_LOGGER_DETAIL("media : %d\n" , titleConfig->media); + + + return nn::ResultSuccess(); +} + + +} // namespace + +namespace ConsoleRestore +{ + +nn::Result TitleDownloader::m_Result = nn::ResultSuccess(); + +void TitleDownloaderThreadFunc() +{ + TitleDownloader TwlTitleDownloader; + + s_Progress = 0; + TwlTitleDownloader.Start(); +} + +void StartTitleDownload() +{ + s_TitleDownloaderThread.Start(TitleDownloaderThreadFunc, s_TitleDownloaderThreadStack); +} + +bool IsDownloadTitleFinished() +{ + return s_TitleDownloaderThread.IsValid() && !s_TitleDownloaderThread.IsAlive(); +} + +void FinalizeTitleDownload() +{ + s_TitleDownloaderThread.Join(); + s_TitleDownloaderThread.Finalize(); +} + +bool DownloadTitleSucceeded() +{ + return TitleDownloader::m_Result.IsSuccess() && GetShopOperationSingleResult().IsSuccess(); +} + +u32 GetTitleDownloadProgress() +{ + return s_Progress; +} + + +TitleDownloader::TitleDownloader() : m_TwlTiteNum(0) +{ + for(u32 i = 0; i < TWL_IMPORTABLE_TITLE_MAX; i++) + { + m_ProgramIdList[i] = 0; + } + +} + +TitleDownloader::~TitleDownloader() +{ + +} + + +nn::Result WaitCancelled() +{ + nn::nim::TitleProgress progress; + while(true) + { + // キャンセルがResultとして返ってくる / ダウンロード終了まで待つ + NN_UTIL_RETURN_IF_FAILED(nn::nim::Shop::GetProgress(&progress)); + if(progress.lastResult==nn::nim::ResultCancelRequested() || progress.state==nn::nim::TITLE_STATE_FINISHED) + { + break; + } + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(100)); + } + return nn::ResultSuccess(); +} + +void WaitShopOperationAndFinalize() +{ + while (!IsShopOperationSingleFinished()) + { + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(100)); + } + + FinalizeShopOperationSingle(); +} + +void TitleDownloader::Start() +{ + m_Result = ListUp(); + if(m_Result.IsFailure()) + { + return; + } + + for(u8 i = 0; i < m_TwlTiteNum; i++) + { + s_Progress = i * 100 / m_TwlTiteNum; + StartShopOperationSingle(SHOP_OPERATION_CONNECT_WITHOUT_CLOSE); + WaitShopOperationAndFinalize(); + + nn::nim::TitleConfig config; + m_Result = GetTitleConfig(m_ProgramIdList[i], &config); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(m_Result); + if (m_Result.IsSuccess()) + { + StartShopOperationSingle(SHOP_OPERATION_DOWNLOAD_TITLE, config); + WaitShopOperationAndFinalize(); + } + } +} + +nn::Result TitleDownloader::ListUp() +{ + COMMON_LOGGER("Read TwlTitle List.\n"); + + size_t heapSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + char* titleListBuf = reinterpret_cast (common::HeapManager::GetHeap()->Allocate(heapSize)); + + size_t readSize = 0; + if (titleListBuf != NULL) + { + common::SdReaderWriter sdReader; + m_Result = sdReader.ReadBufWithCmac(common::TWL_TITLELIST_PATHNAME, titleListBuf, heapSize, &readSize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(m_Result); + if (m_Result.IsSuccess()) + { + u32 listHead = 0; + for (u32 i = 0; i < readSize; i++) + { + if (titleListBuf[i] == '\n') + { + char ProgramIdStr[32]; + char *error; + std::memcpy(ProgramIdStr, &titleListBuf[listHead], i - listHead); + m_ProgramIdList[m_TwlTiteNum] = std::strtoull(ProgramIdStr, &error, 16); + m_TwlTiteNum++; + COMMON_LOGGER_DETAIL("%016llx\n", m_ProgramIdList[m_TwlTiteNum - 1]); + + listHead = i + 1; + } + } + } + COMMON_LOGGER("%d Title(s) found.\n", m_TwlTiteNum); + common::HeapManager::GetHeap()->Free(titleListBuf); + } + else + { + m_Result = nn::Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_OUT_OF_MEMORY); + } + + return m_Result; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.h new file mode 100644 index 0000000..cd1818e --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/TitleDownloader.h @@ -0,0 +1,65 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: TitleDownloader.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef TITLEDOWNLOADER_H_ +#define TITLEDOWNLOADER_H_ + +#include + +namespace ConsoleRestore +{ + +// 新たにスレッドを立て、タイトルのダウンロードを開始する +void StartTitleDownload(); + +// タイトルのダウンロードスレッドが終了したかどうか +bool IsDownloadTitleFinished(); + +// タイトルのダウンロードスレッドが成功したかどうか +bool DownloadTitleSucceeded(); + +// タイトルのダウンロードスレッドを終了する +void FinalizeTitleDownload(); + +// タイトルダウンロードの進捗を取得する +u32 GetTitleDownloadProgress(); + +// ショップからタイトルをダウンロードするためのクラス +class TitleDownloader +{ +public: + TitleDownloader(); + virtual ~TitleDownloader(); + + // タイトルのダウンロードを開始する + void Start(); + + NN_PADDING4; + static nn::Result m_Result; + +private: + nn::Result ListUp(); + + static const size_t TWL_IMPORTABLE_TITLE_MAX = 30; + + nn::ProgramID m_ProgramIdList[TWL_IMPORTABLE_TITLE_MAX]; + u32 m_TwlTiteNum; + + +}; + +} + +#endif /* TITLEDOWNLOADER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.cpp new file mode 100644 index 0000000..55addb4 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.cpp @@ -0,0 +1,251 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Updater.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "CommonLogger.h" + +namespace ConsoleRestore +{ + +using namespace ES_NAMESPACE; +using namespace EC_NAMESPACE; + +/* ------------------------------------------------------------------- + GetCustomerSupportCode +-------------------------------------------------------------------- */ +#define NIM_UPDATER_RESULT_CHECK(result) \ +do { \ + if (result.IsFailure()) \ + { \ + ECCustomerSupportCode csc; \ + NN_UTIL_PANIC_IF_FAILED( \ + nn::nim::Updater::GetCustomerSupportCode(&csc)); \ + COMMON_LOGGER("CSCode: %d\n", csc); \ + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); \ + NN_DBG_PRINT_RESULT(result); \ + COMMON_LOGGER_DETAIL("Result = %08X\n", result.GetPrintableBits()); \ + s_Result = result; \ + goto LABEL_FINALIZE; \ + } \ +} while(0) + +namespace +{ + +nn::Result s_Result = nn::ResultSuccess(); + +const size_t UPDATER_THREAD_STACK_SIZE = 0x1000; +nn::os::Thread s_UpdaterThread; +nn::os::StackBuffer s_UpdaterThreadStack; + +u64 s_Progress = 0; + +nn::Result PrintNetworkSetting() +{ + nn::ac::NetworkSetting networkSetting; + NN_UTIL_RETURN_IF_FAILED(nn::ac::LoadNetworkSetting(0, networkSetting)); + COMMON_LOGGER("SSID: %s\n", networkSetting.wireless.essidSecurity.ssid); + COMMON_LOGGER("DNS : %d.%d.%d.%d\n", + networkSetting.ip.dns[0][0], networkSetting.ip.dns[0][1], + networkSetting.ip.dns[0][2], networkSetting.ip.dns[0][3]); + return nn::ResultSuccess(); +} + + +nn::Result ConnectNetwork() +{ + nn::Result result = nn::ResultSuccess(); + nn::ac::Config config; + + result = nn::ac::CreateDefaultConfig(&config); + NN_UTIL_RETURN_IF_FAILED(result); + + result = nn::ac::ConnectWithoutEula(config); + NN_UTIL_RETURN_IF_FAILED(result); + + COMMON_LOGGER_DETAIL("Success nn::ac::ConnectWithoutEula\n"); + + NN_UTIL_RETURN_IF_FAILED(PrintNetworkSetting()); + + return result; +} + +nn::Result InitializeInternal() +{ + nn::Result result = nn::ResultSuccess(); + + result = nn::ac::InitializeInternal(); + NN_UTIL_RETURN_IF_FAILED(result); + + result = ConnectNetwork(); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +nn::Result FinalizeInternal() +{ + nn::Result result = nn::ResultSuccess(); + + nn::ac::CloseAll(); + + result = nn::ac::FinalizeInternal(); + NN_UTIL_RETURN_IF_FAILED(result); + + return result; +} + +} + +void UpdateThreadFunc() +{ + nn::Result result; + + COMMON_LOGGER_DETAIL("********************UpdateThreadFunc Start********************\n"); + nn::cfg::CTR::init::Initialize(); + nn::cfg::CfgCountryCode country; + nn::cfg::CfgRegionCode region; + const char *regionStr; + const char *countryStr; + NN_UNUSED_VAR(regionStr); + NN_UNUSED_VAR(countryStr); + + country = nn::cfg::GetCountry(); + region = nn::cfg::GetRegion(); + countryStr = nn::cfg::GetCountryCodeA2(country); + regionStr = nn::cfg::GetRegionCodeA3(region); + + COMMON_LOGGER("[Updater] country:%2d:%s\n", country, countryStr); + COMMON_LOGGER("[Updater] region :%2d:%s\n", region, regionStr); + + /* ------------------------------------------------------------------- + Initialize + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("[Updater] nn::nim::InitializeForUpdater\n"); + result = nn::nim::InitializeForUpdater(); + NIM_UPDATER_RESULT_CHECK(result); + + COMMON_LOGGER_DETAIL("[Updater] InitializeInternal\n"); + result = InitializeInternal(); + NIM_UPDATER_RESULT_CHECK(result); + + + /* ------------------------------------------------------------------- + StartNetworkUpdate + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("[Updater] nn::nim::Updater::StartNetworkUpdate()\n"); + result = nn::nim::Updater::StartNetworkUpdate(); + NIM_UPDATER_RESULT_CHECK(result); + + /* ------------------------------------------------------------------- + GetProgress + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("[Updater] nn::nim::Updater::GetProgress()\n"); + + while(true) + { + nn::nim::NetworkUpdateProgress progress; + NIM_UPDATER_RESULT_CHECK(nn::nim::Updater::GetProgress(&progress)); + NIM_UPDATER_RESULT_CHECK(progress.lastResult); + COMMON_LOGGER_DETAIL("\x1b[1A\x1b[K"); + COMMON_LOGGER_DETAIL("Downloading %2lld/%2lld %8lld/%8lld (%d)\n", + progress.downloadedTitleNum, + progress.totalTitleNum, + progress.currentDownloadedSize, + progress.currentTotalSize, + static_cast(progress.state)); + + // ゼロ除算を防ぐ + if(progress.totalTitleNum == 0) + { + progress.totalTitleNum++; + progress.downloadedTitleNum++; + } + if(progress.state > nn::nim::CTR::NUP_STATE_CHECKING) + { + s_Progress = progress.downloadedTitleNum * 100 / progress.totalTitleNum; + } + + if (progress.state == nn::nim::NUP_STATE_NO_NEED) + { + COMMON_LOGGER("[Updater] No need to NetworkUpdate\n"); + s_Progress = 100; + break; + } + if (progress.state == nn::nim::NUP_STATE_FINISHED) + { + COMMON_LOGGER("[Updater] Finished NetworkUpdate\n"); + s_Progress = 100; + break; + } + + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(300)); + } + + LABEL_FINALIZE: + + /* ------------------------------------------------------------------- + Finalize + -------------------------------------------------------------------- */ + COMMON_LOGGER_DETAIL("[Updater] nn::nim::FinalizeForUpdater\n"); + result = nn::nim::FinalizeForUpdater(); + NIM_UPDATER_RESULT_CHECK(result); + + result = FinalizeInternal(); + NIM_UPDATER_RESULT_CHECK(result); + + COMMON_LOGGER_DETAIL("[Updater] Finish nim Updater demo.\n"); + +} + +void StartFGNetworkUpdate() +{ + COMMON_LOGGER_DETAIL("Start FGNetworkUpdate\n"); + s_Result = nn::ResultSuccess(); + s_UpdaterThread.Start(UpdateThreadFunc, s_UpdaterThreadStack); +} + +void FinishFGNetworkUpdate() +{ + COMMON_LOGGER_DETAIL("Finalize FGNetworkUpdate\n"); + s_UpdaterThread.Join(); + s_UpdaterThread.Finalize(); +} + +bool IsNetworkUpdateFinished() +{ + return s_UpdaterThread.IsValid() && !s_UpdaterThread.IsAlive(); +} + +u32 GetUpdateProgress() +{ + return s_Progress; +} + +nn::Result GetUpdateResult() +{ + return s_Result; +} + + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.h b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.h new file mode 100644 index 0000000..7802590 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/Updater.h @@ -0,0 +1,41 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Updater.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef UPDATER_H_ +#define UPDATER_H_ + +#include + +namespace ConsoleRestore +{ + +// 新たにスレッドを立て、ネットワークアップデートを開始する +void StartFGNetworkUpdate(); + +// ネットワークアップデートスレッドを終了する +void FinishFGNetworkUpdate(); + +// ネットワークアップデートスレッドが終了したかどうか +bool IsNetworkUpdateFinished(); + +// ネットワークアップデートの進捗を取得する +u32 GetUpdateProgress(); + +// ネットワークアップデートのResultを取得する +nn::Result GetUpdateResult(); + +} + +#endif /* UPDATER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/banner/model.cbmd b/tags/ConsoleDataMigration/1stNUP_2/sources/ConsoleRestore/banner/model.cbmd new file mode 100644 index 0000000000000000000000000000000000000000..f1c7b6279e13f5278c419d615d7d03d5660005e5 GIT binary patch literal 198785 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 MDvwobWH ../generated/ConsoleRestore/version.h diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/OMakefile new file mode 100644 index 0000000..0ebeff4 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/OMakefile @@ -0,0 +1,27 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- + +.SUBDIRS: $(exist-dirs \ + common \ + ConsoleBackup \ + ConsoleRestore \ + tools \ + ) + +if $(IsTestBuild) + .SUBDIRS: $(exist-dirs tests) + +DefineDefaultRules() diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/OMakeroot b/tags/ConsoleDataMigration/1stNUP_2/sources/OMakeroot new file mode 100644 index 0000000..7ee1cb5 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/OMakeroot @@ -0,0 +1,73 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakeroot +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev:$ +#---------------------------------------------------------------------------- + +# fBNgCAEgɂ‚Ă̐ +# +# a) \[XR[h[gfBNgɔzuꍇ +# : +# /OMakeroot +# /foo/bar/OMakefile +# +# : +# OMakefile ƓfBNgȉ objects images ܂B +# +# /foo/bar/objects/... +# /foo/bar/images/.. +# +# +# b) \[XR[h sources ȉɔzuꍇ +# : +# /OMakeroot +# /sources/foo/bar/OMakefile +# +# : +# [gfBNgȉ objects images ܂B +# +# /objects/foo/bar/... +# /images/foo/bar/... +# +# + +# [g‹ϐ̎擾 +public.HORIZON_ROOT = +if $(defined-env HORIZON_ROOT) + HORIZON_ROOT = $(absname $(getenv HORIZON_ROOT)) + export + +if $(defined-env CTRSDK_ROOT) + CTRSDK_ROOT = $(absname $(getenv CTRSDK_ROOT)) + if $(and $(defined-env HORIZON_ROOT), $(not $(equal $(HORIZON_ROOT), $(CTRSDK_ROOT)))) + eprintln(HORIZON_ROOT CTRSDK_ROOT v܂BpXݒ肷邩Aǂ炩`ĉB) + exit(1) + HORIZON_ROOT = $(CTRSDK_ROOT) + export + +if $(not $(HORIZON_ROOT)) + eprintln($"$$CTRSDK_ROOT `Ă܂") + exit(1) + +include $(HORIZON_ROOT)/build/omake/commondefs + +DefineCommandVars() + +.PHONY: all build clean clobber +.PHONY: run run-scripts run-emumem + +# +# OMakefile ̓ǂݍ +# +.SUBDIRS: . + diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/Aes_define.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/Aes_define.h new file mode 100644 index 0000000..68a4cc6 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/Aes_define.h @@ -0,0 +1,76 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Aes_define.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef AES_DEFINE_H_ +#define AES_DEFINE_H_ + +//マスタリング用ビルド時に有効にする +//#define USE_PROD_KEY + +#ifdef NN_BUILD_RELEASE +#ifndef USE_PROD_KEY +#warning !! Using Development Key on Release Build !! +#endif +#endif + +#include + +namespace common +{ + +#ifndef USE_PROD_KEY + + const bit8 key[AES_KEY_SIZE] NN_ATTRIBUTE_ALIGN(4) = + { + 0x81, 0x35, 0xc6, 0x54, 0x19, 0x1a, 0x47, 0x2a, + 0x6b, 0x78, 0xbe, 0x25, 0x90, 0xf6, 0xee, 0x74 + }; + + const bit8 cmacKey[AES_KEY_SIZE] = + { + 0x87, 0xdd, 0xc6, 0xd6, 0xf2, 0xe0, 0x2c, 0xa6, + 0x04, 0x21, 0x9c, 0x5e, 0x33, 0x8c, 0x3d, 0xaa + }; + + const bit8 iv[AES_BLOCK_SIZE] NN_ATTRIBUTE_ALIGN(4) = + { + 0xdf, 0x0f, 0xf9, 0x1b, 0x34, 0x47, 0x70, 0x7f, + 0x7d, 0x06, 0x85, 0xe6, 0xe7, 0xb6, 0x4e, 0xe9 + }; + +#else + const bit8 key[AES_KEY_SIZE] NN_ATTRIBUTE_ALIGN(4) = + { + 0x64, 0x02, 0x6d, 0xbd, 0x9f, 0xb6, 0x62, 0x39, + 0x86, 0x90, 0x67, 0x8a, 0xe2, 0xfa, 0xe1, 0x6e + }; + + const bit8 cmacKey[AES_KEY_SIZE] = + { + 0xdf, 0x3c, 0x58, 0xeb, 0xeb, 0xbf, 0x45, 0x6d, + 0xc9, 0xbe, 0xe3, 0x10, 0xe2, 0x23, 0xfc, 0x30 + }; + + const bit8 iv[AES_BLOCK_SIZE] NN_ATTRIBUTE_ALIGN(4) = + { + 0xe4, 0xcf, 0x58, 0xe5, 0xc9, 0xd6, 0xac, 0x7d, + 0xf1, 0xb9, 0x82, 0xf9, 0xa2, 0xd8, 0xda, 0x7b + }; +#endif + + +} + +#endif /* AES_DEFINE_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.cpp new file mode 100644 index 0000000..373230e --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.cpp @@ -0,0 +1,117 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: CommonLogger.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "CommonLogger.h" +#include "LogConsole_Private.h" + +namespace common +{ + +namespace Logger +{ + +namespace +{ + static CommonLogger s_CommonLogger; + +} + +CommonLogger::CommonLogger() +{ + + +} + +CommonLogger::~CommonLogger() +{ + +} + +void CommonLogger::Initialize(u32 width, u32 height, u32 maxLine, demo::RenderSystemDrawing* renderSystem) +{ + m_CriticalSection.Initialize(); + GetConsoleInstance()->Initialize(width, height, maxLine, renderSystem); +} + +void CommonLogger::Finalize() +{ + +} + +void CommonLogger::Print(const char* fmt, ...) +{ + nn::os::CriticalSection::ScopedLock sdLock(m_CriticalSection); + va_list vlist; + + va_start(vlist, fmt); + + NN_LOGV(fmt, vlist); + GetSdInstance()->Print(fmt, vlist); + GetConsoleInstance()->AddText(fmt, vlist); + + va_end(vlist); +} + +void CommonLogger::PrintResultSdLog(const char* fmt, ...) +{ + nn::os::CriticalSection::ScopedLock sdLock(m_CriticalSection); + va_list vlist; + + va_start(vlist, fmt); + + GetSdInstance()->Print(fmt, vlist); + + va_end(vlist); +} + +void CommonLogger::ClearSdLog() +{ + nn::os::CriticalSection::ScopedLock sdLock(m_CriticalSection); + GetSdInstance()->Clear(); +} + +void CommonLogger::ScrollUp() +{ + GetConsoleInstance()->ScrollUp(); +} + +void CommonLogger::ScrollDown() +{ + GetConsoleInstance()->ScrollDown(); +} + +void CommonLogger::ScrollToBegin() +{ + GetConsoleInstance()->ScrollToBegin(); +} + +void CommonLogger::ScrollToEnd() +{ + GetConsoleInstance()->ScrollToEnd(); +} + +void CommonLogger::DrawConsole() +{ + GetConsoleInstance()->Print(); +} + +CommonLogger* GetLoggerInstance() +{ + return &s_CommonLogger; +} + +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.h new file mode 100644 index 0000000..e16ac9a --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/CommonLogger.h @@ -0,0 +1,116 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: CommonLogger.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef COMMONLOGGER_H_ +#define COMMONLOGGER_H_ + +#include +#include "demo.h" + +#include "SdLogger.h" + +#define COMMON_LOGGER( ... ) (void)common::Logger::GetLoggerInstance()->Print(__VA_ARGS__) +#define COMMON_LOGGER_RESULT(result, func) \ + NN_DBG_PRINT_RESULT(result); \ + (void)common::Logger::GetLoggerInstance()->PrintResultSdLog("Func = %s\n", func); \ + (void)common::Logger::GetLoggerInstance()->PrintResultSdLog("Result = %X\n", result.GetPrintableBits()); \ + +#ifndef NN_SWITCH_DISABLE_DEBUG_PRINT +#define COMMON_LOGGER_DEBUG( ... ) COMMON_LOGGER(__VA_ARGS__) +#else // ifndef NN_SWITCH_DISABLE_DEBUG_PRINT +#define COMMON_LOGGER_DEBUG( ... ) ((void)0) +#endif // ifndef NN_SWITCH_DISABLE_DEBUG_PRINT else + +#ifndef NN_SWITCH_DISABLE_DEBUG_PRINT +#ifdef COMMON_LOGGER_DETAIL_ENABLE +#define COMMON_LOGGER_DETAIL(...) COMMON_LOGGER(__VA_ARGS__) +#else +#define COMMON_LOGGER_DETAIL( ... ) ((void)0) +#endif +#else +#define COMMON_LOGGER_DETAIL( ... ) ((void)0) +#endif + + +#define COMMON_LOGGER_RESULT_WITH_LINE(result, line, func) \ + NN_LOG("%s\n", func); \ + NN_LOG("%d\n", line); \ + NN_DBG_PRINT_RESULT(result); \ + (void)common::Logger::GetLoggerInstance()->PrintResultSdLog("Func = %s\n", func); \ + (void)common::Logger::GetLoggerInstance()->PrintResultSdLog("line = %d\n", line); \ + (void)common::Logger::GetLoggerInstance()->PrintResultSdLog("Result = %X\n", result.GetPrintableBits()); \ + +#define COMMON_LOGGER_RESULT_IF_FAILED(result) \ + if(result.IsFailure()) \ + { \ + COMMON_LOGGER_RESULT(result, __func__); \ + } \ + +#define COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result) \ + if(result.IsFailure()) \ + { \ + COMMON_LOGGER_RESULT_WITH_LINE(result, __LINE__, __func__); \ + } \ + +namespace common +{ + +namespace Logger +{ + +// SDカードのログと下画面ログを同時に扱うためのクラス +class CommonLogger +{ +public: + CommonLogger(); + ~CommonLogger(); + + void Initialize(u32 width, u32 height, u32 maxLine, demo::RenderSystemDrawing* renderSystem); + void Finalize(); + + // SDログに書き込み、下画面ログ出力のためのバッファに溜め込む + void Print(const char* fmt, ...); + + // SDログのみにResult値を出力する + void PrintResultSdLog(const char* fmt, ...); + + // SDカードのログファイルを消去する + void ClearSdLog(); + + // 下画面ログを上スクロールする + void ScrollUp(); + + // 下画面ログを下スクロールする + void ScrollDown(); + + // 下画面ログの先頭にスクロールする + void ScrollToBegin(); + + // 下画面ログの末尾にスクロールする + void ScrollToEnd(); + + // バッファに溜め込まれた文字列を下画面ログに書き込む + void DrawConsole(); +private: + nn::os::CriticalSection m_CriticalSection; +}; + +CommonLogger* GetLoggerInstance(); + +} + +} + +#endif /* COMMONLOGGER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.cpp new file mode 100644 index 0000000..d1457c4 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.cpp @@ -0,0 +1,187 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: DrawSystemState.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "DrawSystemState.h" +#include "ResFont.h" + +#include + +const u16 PROGRESS_MAX_LINES = 129; + +namespace common +{ + +namespace +{ +u8 s_CupMajor; +u8 s_CupMinor; +u8 s_CupMicro; +u8 s_NupMajor; +nn::cfg::CTR::CfgRegionCode s_Region; +u8 s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN + 1]; +bit64 s_DeviceId; +char8 s_MacAddress[nn::nwm::Mac::MAC_STRING_SIZE]; +u64 s_FriendCode; +u8 s_BatteryRemain; +std::string s_AdapterState; +u8 s_Progress; +::std::vector* s_OperationMessage; + +} + +u32 GetRenderTarget(u32 target, bool flip) +{ + if(flip) + { + if(target == NN_GX_DISPLAY0) + { + return NN_GX_DISPLAY1; + } + else + { + return NN_GX_DISPLAY0; + } + } + else + { + return target; + } +} + +void SetTextWriterCore() +{ + GetTextWriter()->Print("\n"); + + GetTextWriter()->Printf("System Ver. %d.%d.%d-%d\n", s_CupMajor, s_CupMinor, s_CupMicro, s_NupMajor); + GetTextWriter()->Printf("System Region %s\n", nn::cfg::CTR::GetRegionCodeA3(s_Region)); + GetTextWriter()->Printf("Serial No. %s\n", s_SerialNo); + GetTextWriter()->Printf("Device ID %llu\n", s_DeviceId); + GetTextWriter()->Printf("MAC Address %s\n", s_MacAddress); + GetTextWriter()->Printf("Friend Code %04u-%04u-%04u\n", static_cast (s_FriendCode + / 100000000ULL % 10000ULL), static_cast (s_FriendCode / 10000ULL % 10000ULL), + static_cast (s_FriendCode % 10000ULL)); + + GetTextWriter()->Printf("Battery %d%%\n", s_BatteryRemain); + GetTextWriter()->Printf("AC Adapter %s\n", s_AdapterState.c_str()); + GetTextWriter()->Printf("Progress %02d%%\n", s_Progress); + GetTextWriter()->Print("\n"); + + ::std::vector::iterator it; + for (it = s_OperationMessage->begin(); it != s_OperationMessage->end(); it++) + { + GetTextWriter()->Printf("%s\n", it->c_str()); + } + + +} + +void DrawSystemState +( + const char* toolName, + demo::RenderSystemDrawing& renderSystem, + nn::util::FloatColor titleColor, + bool flip, + std::string& adapterState, + const char* toolVersion, + u8 cupMajorVersion, + u8 cupMinorVersion, + u8 cupMicroVersion, + u8 nupVersion, + u8 batteryRemain, + u64 deviceId, + u64 friendCode, + u32 progress, + bool isBackupFailed, + bool isBackupSucceeded, + char8* macAddress, + ::std::vector& operationMessage, + nn::cfg::CTR::CfgRegionCode region, + u8* serialNo +) +{ + // パラメータ保存 + s_AdapterState = adapterState; + s_CupMajor = cupMajorVersion; + s_CupMinor = cupMinorVersion; + s_CupMicro = cupMicroVersion; + s_NupMajor = nupVersion; + s_BatteryRemain = batteryRemain; + s_DeviceId = deviceId; + s_FriendCode = friendCode; + s_Progress = progress; + std::memcpy(s_MacAddress, macAddress, sizeof(s_MacAddress)); + s_Region = region; + std::memcpy(s_SerialNo, serialNo, sizeof(s_SerialNo)); + s_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN] = '\0'; + s_OperationMessage = &operationMessage; + + + // デフォルトで上画面に描画するもの + renderSystem.SetRenderTarget(GetRenderTarget(NN_GX_DISPLAY0, flip)); + if (isBackupSucceeded) + { + renderSystem.SetClearColor(GetRenderTarget(NN_GX_DISPLAY0, flip), SUCCESS_COLOR); + } + else if (isBackupFailed) + { + renderSystem.SetClearColor(GetRenderTarget(NN_GX_DISPLAY0, flip), FAIL_COLOR); + } + else + { + renderSystem.SetClearColor(GetRenderTarget(NN_GX_DISPLAY0, flip), NORMAL_COLOR); + } + + + renderSystem.Clear(); + renderSystem.SetColor(1.f, 1.f, 1.f); + u32 line = 0; + + size_t fontwidth = 8; + size_t fontheight = fontwidth + 2; + + SetDrawTextHandler(SetTextWriterCore); + DrawResFont(GetRenderTarget(NN_GX_DISPLAY0, flip)); + + renderSystem.SetFontSize(fontwidth); + + // ツール名、ハイライト + renderSystem.DrawText(0, line++ * fontheight, "%s %s Rev.%s", toolName, __DATE__, toolVersion); + renderSystem.SetColor(titleColor.r, titleColor.g, titleColor.b); + renderSystem.FillRectangle(0, (line - 1) * fontheight, 400, fontheight); + renderSystem.SetColor(1.f, 1.f, 1.f); + renderSystem.DrawText(0, line++ * fontheight, ""); + + // プログレスバー + fontwidth = 8; + fontheight = 14; + line += 9; + const u8 offset = 19; + const u8 diff = 4; + renderSystem.SetColor(0.f, 0.2f, 0.f); + renderSystem.DrawLine(offset * fontwidth, (line - 1) * fontheight - diff, offset * fontwidth + PROGRESS_MAX_LINES, (line - 1) + * fontheight - diff); + renderSystem.DrawLine(offset * fontwidth, (line - 1) * fontheight - diff, offset * fontwidth, (line) * fontheight - diff); + renderSystem.DrawLine(offset * fontwidth, (line) * fontheight - diff, offset * fontwidth + PROGRESS_MAX_LINES, (line) * fontheight - diff); + renderSystem.DrawLine(offset * fontwidth + PROGRESS_MAX_LINES, (line - 1) * fontheight - diff, offset * fontwidth + + PROGRESS_MAX_LINES, (line) * fontheight + 1 - diff); + renderSystem.SetColor(0.f, 0.5f, 0.f); + renderSystem.FillRectangle(offset * fontwidth, (line - 1) * fontheight - diff, progress * PROGRESS_MAX_LINES / 100 + 1, + fontheight); + + renderSystem.SetColor(1.f, 1.f, 1.f); + renderSystem.DrawText(0, line++ * fontheight, ""); +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.h new file mode 100644 index 0000000..8acab14 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/DrawSystemState.h @@ -0,0 +1,80 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: DrawSystemState.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef DRAWSYSTEMSTATE_H_ +#define DRAWSYSTEMSTATE_H_ + +#include +#include "demo.h" +#include +#include +#include +#include +#include +#include + +#include +#include + +#include "common_Types.h" + +// 描画色の定義 +#define WHITE_COLOR 1.f, 1.f, 1.f, 1.f +#define GRAY_COLOR 0.5, 0.5, 0.5, 1.f +#define RED_COLOR 1.f, 0.f, 0.f, 1.f +#define GREEN_COLOR 0.f, 1.f, 0.f, 1.f +#define BLUE_COLOR 0.f, 0.f, 1.f, 1.f +#define SUCCESS_COLOR 0.f, 0.6f,0.f, 1.f +#define FAIL_COLOR 0.6f, 0.f,0.f, 1.f +#define NORMAL_COLOR 0.f, 0.f, 0.f, 1.f + +namespace common +{ + +// 現在の描画先ディスプレイを返す +// target NN_GX_DISPLAY0 または NN_GX_DISPLAY1 +// flip 上下画面を入れ替えているかどうか +u32 GetRenderTarget(u32 target, bool flip = false); + +// システム状態を描画する +// InitializeResFont()、demo::RenderSystemDrawing.Initializeが呼び出されている必要がある +void DrawSystemState +( + const char* toolName, + demo::RenderSystemDrawing& renderSystem, + nn::util::FloatColor titleColor, + bool flip, + std::string& adapterState, + const char* toolVersion, + u8 cupMajorVersion, + u8 cupMinorVersion, + u8 cupMicroVersion, + u8 nupVersion, + u8 batteryRemain, + u64 deviceId, + u64 friendCode, + u32 progress, + bool isBackupFailed, + bool isBackupSucceeded, + char8* macAddress, + ::std::vector& operationMessage, + nn::cfg::CTR::CfgRegionCode region, + u8* s_SerialNo +); + +} + + +#endif /* DRAWSYSTEMSTATE_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.cpp new file mode 100644 index 0000000..80893ed --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.cpp @@ -0,0 +1,153 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: FileChecker.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include "FileChecker.h" +#include "SdMountManager.h" + +namespace common +{ + +bool s_FileExistsChecked[EXISTS_MAX]; +bool s_FileExistsCheckeResult[EXISTS_MAX]; + +bool CheckFileExists(const wchar_t* path) +{ + nn::Result result; + bool exist = false; + result = common::SdMountManager::Mount(); + + if (result.IsSuccess()) + { + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(path); + if(result.IsSuccess()) + { + exist = true; + } + fis.Finalize(); + } + + common::SdMountManager::Unmount(); + + + return exist; +} + +bool ExistsFile(FileExistsCheck index) +{ + if(index > EXISTS_MAX) + { + NN_LOG("Invalid File index!!\n"); + return false; + } + + if(s_FileExistsChecked[index]) + { + return s_FileExistsCheckeResult[index]; + } + + s_FileExistsChecked[index] = true; + s_FileExistsCheckeResult[index] = CheckFileExists(FILENAME_TABLE[index]); + return s_FileExistsCheckeResult[index]; +} + +void ClearFileCheck(FileExistsCheck index) +{ + if(index > EXISTS_MAX) + { + NN_LOG("Invalid File index!!\n"); + return; + } + + s_FileExistsChecked[index] = false; +} + +bool ExistsUpdateCheckedFile() +{ + return ExistsFile(EXISTS_UPDATE_FINISHED); +} + +bool ExistsSerialNumberFile() +{ + return ExistsFile(EXISTS_SERIAL_NUMBER); +} + +bool ExistsIVSFile() +{ + return ExistsFile(EXISTS_IVS); +} + +bool ExistsConsoleInitializedFile() +{ + return ExistsFile(EXISTS_CONSOLE_INTIALIZED); +} + +bool ExistsWriteFinishedFile() +{ + return ExistsFile(EXISTS_WRITE_FINISHED); +} + +bool ExistsAPSetting() +{ + return ExistsFile(EXISTS_AP_SETTING); +} + +bool ExistsRtcSyncFinishedFile() +{ + return ExistsFile(EXISTS_RTC_SYNC_FINISHED); +} + +bool ExistsCountryLanguageFile() +{ + return ExistsFile(EXISTS_COUNTRY_LANGUAGE); +} + +bool ExistsRegionData() +{ + return ExistsFile(EXISTS_REGION_DATA); +} + +bool ExistsDeleteAccountChecked() +{ + return ExistsFile(EXISTS_DELETE_ACCOUNT); +} + +bool ExistsTransferAccountChecked() +{ + return ExistsFile(EXISTS_TRANSFER_ACCOUNT); +} + +bool ExistsDownloadIvsCheckedFile() +{ + return ExistsFile(EXISTS_DOWNLOAD_IVS); +} + +bool ExistsTwlTitleListFile() +{ + return ExistsFile(EXISTS_TWL_TITLELIST); +} + +void InitializeFileCheck() +{ + for(u32 i = 0; i < EXISTS_MAX; i++) + { + s_FileExistsChecked[i] = false; + } +} + + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.h new file mode 100644 index 0000000..2172ec1 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileChecker.h @@ -0,0 +1,88 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: FileChecker.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef FILECHECKER_H_ +#define FILECHECKER_H_ + +#include "FileName.h" + +namespace common +{ + +// チェックしたいファイルのリスト +typedef enum FILE_EXISTS_CHECK +{ + EXISTS_UPDATE_FINISHED, // ネットワークアップデート完了 + EXISTS_SERIAL_NUMBER, // シリアルナンバー + EXISTS_IVS, // IVS + EXISTS_CONSOLE_INTIALIZED, // 本体初期化完了 + EXISTS_WRITE_FINISHED, // 書き込み完了 + EXISTS_AP_SETTING, // 無線設定ファイル + EXISTS_RTC_SYNC_FINISHED, // RTC書き込み完了 + EXISTS_COUNTRY_LANGUAGE, // 国設定書き込み完了 + EXISTS_REGION_DATA, // リージョン + EXISTS_DELETE_ACCOUNT, // アカウント削除完了 + EXISTS_TRANSFER_ACCOUNT, // アカウント移行完了 + EXISTS_DOWNLOAD_IVS, // IVSダウロード完了 + EXISTS_TWL_TITLELIST, // TWLタイトルリストファイル + EXISTS_MAX +} FileExistsCheck; + +// チェックしたいファイルのリストに対応したパス +const wchar_t* const FILENAME_TABLE[EXISTS_MAX] = +{ + common::UPDATE_CHECK_PATHNAME, + common::SERIAL_PATHNAME, + common::IVS_PATHNAME, + common::INITIALIZED_CHECK_PATHNAME, + common::WRITE_FINISHED_CHECK_PATHNAME, + common::AP_SETTING_PATHNAME, + common::RTC_SYNC_CHECK_PATHNAME, + common::COUNTRY_SETTING_PATHNAME, + common::REGION_DATA_PATHNAME, + common::DELETE_ACCOUNT_CHECK_PATHNAME, + common::TRANSFER_ACCOUNT_CHECK_PATHNAME, + common::DOWNLOAD_IVS_CHECK_PATHNAME, + common::TWL_TITLELIST_PATHNAME +}; + +// ファイルが存在するかどうか +bool CheckFileExists(const wchar_t* path); + +bool ExistsUpdateCheckedFile(); +bool ExistsSerialNumberFile(); +bool ExistsIVSFile(); +bool ExistsConsoleInitializedFile(); +bool ExistsWriteFinishedFile(); +bool ExistsAPSetting(); +bool ExistsRtcSyncFinishedFile(); +bool ExistsCountryLanguageFile(); +bool ExistsRegionData(); +bool ExistsDeleteAccountChecked(); +bool ExistsTransferAccountChecked(); +bool ExistsDownloadIvsCheckedFile(); +bool ExistsTwlTitleListFile(); + +// ファイルチェックの結果を初期化する +// 一度チェックするとその結果を保持するため +// ファイルを作成したり削除した時に呼ぶ必要がある +void ClearFileCheck(FileExistsCheck index); + +// 全てのファイルチェックの結果を初期化する +void InitializeFileCheck(); + +} + +#endif /* FILECHECKER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileName.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileName.h new file mode 100644 index 0000000..0d45e9c --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileName.h @@ -0,0 +1,102 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: FileName.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef FILENAME_H_ +#define FILENAME_H_ + +#include + +namespace common +{ + +const char* const NAND_ARCHIVE_NAME = "nand:"; +const char* const SDMC_ARCHIVE_NAME = "sdmc:"; +const char* const NAND_TWL_PHOTO_ARCHIVE_NAME = "twlp:"; +const char* const NAND_TWL_SOUND_ARCHIVE_NAME = "twls:"; +const char* const NAND_TWL_ARCHIVE_NAME = "twln:"; + +const wchar_t* const LOG_ROOT_DIRECTORY_PATH = L"sdmc:/CTR_Console_Repair"; +const wchar_t* const SD_SAVEDATA_ROOT_NAME = L"CTR_Console_Repair/CTRBackup/"; +const wchar_t* const SD_SAVEDATA_TWL_PHOTO_ROOT_NAME = L"CTR_Console_Repair/TWLPhotoBackup/"; +const wchar_t* const SD_SAVEDATA_TWL_SOUND_ROOT_NAME = L"CTR_Console_Repair/TWLSoundBackup/"; +const wchar_t* const SD_SAVEDATA_TWL_ROOT_NAME = L"CTR_Console_Repair/TWLBackup/"; +const wchar_t* const NIM_SAVEDATA_DIRECTORY_NAME = L"sysdata/0001002c"; +const wchar_t* const LOG_PATHNAME = L"CTR_Console_Repair/Migration_Log.txt"; +const wchar_t* const LOG_FILENAME = L"Migration_Log.txt"; +const wchar_t* const COUNTRY_SETTING_PATHNAME = L"sdmc:/CTR_Console_Repair/CountrySetting.bin"; +const wchar_t* const AP_SETTING_FILENAME = L"CTR_Repair_Accsess_Point_Setting.txt"; +const wchar_t* const AP_SETTING_PATHNAME = L"sdmc:/CTR_Repair_Accsess_Point_Setting.txt"; +const wchar_t* const NOR_PATHNAME = L"sdmc:/CTR_Console_Repair/NtrNorSetting.bin"; +const wchar_t* const SERIAL_PATHNAME = L"sdmc:/CTR_Console_Repair/serial.bin"; +const wchar_t* const MCU_RTC_PATHNAME = L"sdmc:/CTR_Console_Repair/rtc.bin"; +const wchar_t* const IVS_NAND_PATHNAME = L"nand:/private/movable.sed"; +const wchar_t* const IVS_PATHNAME = L"sdmc:/CTR_Console_Repair/movable.sed"; +const wchar_t* const NAND_DATA_ROOT_PATHNAME_WITH_SLASH = L"nand:/data/"; +const wchar_t* const NAND_TWL_PHOTO_DATA_ROOT_PATHNAME_WITH_SLASH = L"twlp:/"; +const wchar_t* const NAND_TWL_SOUND_DATA_ROOT_PATHNAME_WITH_SLASH = L"twls:/"; +const wchar_t* const NAND_TWL_DATA_ROOT_PATHNAME_WITHOUT_SLASH = L"twln:/title"; +const wchar_t* const SDMC_ROOT_DIRECTORY_PATH = L"sdmc:/"; +const wchar_t* const WRITE_FINISHED_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/WriteFinished"; +const wchar_t* const UPDATE_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/UpdateFinished"; +const wchar_t* const DELETE_ACCOUNT_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/AccountDeletedChecked"; +const wchar_t* const TRANSFER_ACCOUNT_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/AccountTransferedChecked"; +const wchar_t* const DOWNLOAD_IVS_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/DownloadSDCIFinished"; +const wchar_t* const INITIALIZED_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/ConsoleInitialized"; +const wchar_t* const RTC_SYNC_CHECK_PATHNAME = L"sdmc:/CTR_Console_Repair/RtcSyncFinished"; +const wchar_t* const PLAYHISTORY_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistory.bin"; +const wchar_t* const PLAYHISTORY_COUNT_PATHNAME = L"sdmc:/CTR_Console_Repair/playhistoryCount.bin"; +const wchar_t* const CFG_CALIBRATION_PATHNAME = L"sdmc:/CTR_Console_Repair/cfgCalibration.bin"; +const wchar_t* const VERSION_DATA_PATHNAME = L"sdmc:/CTR_Console_Repair/version.bin"; +const wchar_t* const REGION_DATA_PATHNAME = L"sdmc:/CTR_Console_Repair/Region.bin"; +const wchar_t* const DEVICE_ID_PATHNAME = L"sdmc:/CTR_Console_Repair/deviceId.bin"; +const wchar_t* const FILE_LIST_PATHNAME = L"sdmc:/CTR_Console_Repair/FileList.txt"; +const wchar_t* const TWL_TITLELIST_PATHNAME = L"sdmc:/CTR_Console_Repair/TwlTitleList.txt"; +const wchar_t* const SD_NINTENDO_3DS_ROOT_PATH = L"sdmc:/Nintendo 3DS/"; + +enum TWL_PATH_INDEX +{ + TWL_PHOTO = 0, + TWL_SOUND, + TWL_PATHNAME_MAX +}; + +const char* const TWL_ARCHIVE_NAME_TABLE[TWL_PATHNAME_MAX] = +{ + common::NAND_TWL_PHOTO_ARCHIVE_NAME, + common::NAND_TWL_SOUND_ARCHIVE_NAME + +}; + +const wchar_t* const SD_TWL_ROOTNAME_TABLE[TWL_PATHNAME_MAX] = +{ + common::SD_SAVEDATA_TWL_PHOTO_ROOT_NAME, + common::SD_SAVEDATA_TWL_SOUND_ROOT_NAME +}; + +const wchar_t* const NAND_TWL_ROOT_PATHNAME_WITH_SLASH_TABLE[TWL_PATHNAME_MAX] = +{ + common::NAND_TWL_PHOTO_DATA_ROOT_PATHNAME_WITH_SLASH, + common::NAND_TWL_SOUND_DATA_ROOT_PATHNAME_WITH_SLASH +}; + +const u32 TWL_FS_ARCHIVE_KIND[TWL_PATHNAME_MAX] = +{ + nn::fs::CTR::ARCHIVE_TYPE_TWL_PHOTO, + nn::fs::CTR::ARCHIVE_TYPE_TWL_SOUND +}; + +} + +#endif /* FILENAME_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.cpp new file mode 100644 index 0000000..4678c06 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.cpp @@ -0,0 +1,883 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: FileTransfer.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include + +#include +#include +#include +#include + +#include "Aes_define.h" +#include "FileTransfer.h" +#include "CommonLogger.h" +#include "common_Types.h" +#include "FileName.h" + +namespace common +{ + +namespace +{ + +u64 s_TotalFileSize; +u64 s_FinishedFileSize = 0; +u64 s_Progress = 0; + +} + +bool VerifyMac(nn::fs::FileInputStream* sdFile, nn::fs::FileStream* nandFile, s64 sdFileSize, s64 nandFileSize, + const wchar_t* nandPath, void* buf, size_t bufSize); +bool ConfirmFile(nn::fs::FileInputStream* from_file, nn::fs::FileStream* to_file, s64 sdFileSize, s64 nandFileSize, + void* buf, size_t bufSize, const wchar_t* sdPath, const wchar_t* tmpPath, const wchar_t* truePath); +void AddPkcsPadding(u8* paddingSize, void* buf, size_t bufSize, s32* readSize); +void AddPathNameAndUpdateContext(nn::fs::FileOutputStream* file, const wchar_t *str, s64 fileSize, + nn::crypto::Sha256Context* context); + +const char* GetCharStr(const wchar_t* path) +{ + static char filename[nn::fs::MAX_FILE_PATH_LENGTH]; + std::memset(filename, 0, sizeof(filename)); + std::wcstombs(filename, path, sizeof(filename)); + filename[sizeof(filename) - 1] = '\0'; + return filename; +} + +nn::Result CalculateFileNum(std::wstring currentDirectory, u32& fileNum, s64& fileSize) +{ + nn::fs::FileInputStream fis; + nn::fs::Directory dir; + nn::Result result; + std::vector entryList; //カレントディレクトリのエントリ一覧を格納 + std::vector::iterator entryIndex; + + result = dir.TryInitialize(currentDirectory.c_str()); + + if(result.IsSuccess()) + { + nn::fs::DirectoryEntry entry; + s32 numEntry; + for(;;) + { + result = dir.TryRead(&numEntry, &entry, 1); + if(result.IsFailure()) + { + dir.Finalize(); + return result; + } + if(numEntry == 0) + { + // カレントディレクトリを閉じる + dir.Finalize(); + + // カレントディレクトリの子を開く + for(entryIndex = entryList.begin(); entryIndex != entryList.end(); entryIndex++) + { + if(entryIndex->attributes.isDirectory) + { + CalculateFileNum(currentDirectory + std::wstring(entryIndex->entryName) + std::wstring(L"/"), fileNum, fileSize); + } + } + + return nn::ResultSuccess(); + } + + entryList.push_back(entry); + fileNum++; + fileSize+= entry.entrySize; + } + } + else + { + NN_LOG("failed initialize directory\n"); + dir.Finalize(); + return result; + } + +} + +bool ExistsInList(ImportDataList* fileList, const wchar_t* path, bool isDirectory) +{ + std::wstring sdPath(path); + if(isDirectory) + { + sdPath += std::wstring(L"/"); + } + + char str[nn::fs::MAX_FILE_PATH_LENGTH]; + std::strlcpy(str, GetCharStr(sdPath.c_str()), sizeof(str)); + + bool returnValue = false; + for(ImportDataList::iterator it = fileList->begin(); it != fileList->end(); it++) + { + if(std::strcmp(str, it->fileName.c_str()) == 0) + { + returnValue = true; + NN_LOG("%s exists in FileList.txt\n", str); + break; + } + } + + return returnValue; +} + +void ExportTwlSaveDirectory(const wchar_t* dirPath, nn::fs::FileOutputStream* list, + nn::crypto::Sha256Context* listContext) +{ + NN_LOG("Create Directory %ls\n", dirPath); + + nn::Result result = nn::fs::TryCreateDirectory(dirPath); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + AddPathNameAndUpdateContext(list, dirPath, -1, listContext); +} + +bool ExportTwlSaveFile(const wchar_t* from_path, const wchar_t* to_path, void* buf, const size_t bufSize, + nn::fs::FileOutputStream* list, nn::crypto::Sha256Context* listContext) +{ + NN_LOG("from = %ls\n", from_path); + NN_LOG("to = %ls\n", to_path); + + nn::Result result; + + bool ret_value = true; + // ファイル作成 + nn::fs::FileInputStream from_file; + nn::fs::FileStream to_file; + s64 filesize; + s32 readsize; + s32 writesize; + + NN_LOG("Copy File %ls\n", from_path); + + // 読み込み対象ファイル開く + result = from_file.TryInitialize(from_path); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + else + { + // 読み込み対象ファイルのサイズ取得 + result = from_file.TryGetSize(&filesize); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + else + { + AddPathNameAndUpdateContext(list, to_path, filesize, listContext); + + nn::crypto::SwAesCtrContext swAesCtrContext; + swAesCtrContext.Initialize(iv, common::key, sizeof(key)); + + size_t totalReadSize = 0; + nn::crypto::Sha256Context context; + context.Initialize(); + + // ファイルサイズをヘッダに書いておく + // 書き込み対象ファイル作成 + result = nn::fs::TryCreateFile(to_path, filesize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + result = to_file.TryInitialize(to_path, + nn::fs::OPEN_MODE_READ | nn::fs::OPEN_MODE_WRITE | nn::fs::OPEN_MODE_CREATE); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + // フルパスをハッシュに含める + context.Update(from_path, std::wcslen(from_path) * sizeof(wchar_t)); + + BackupDataHeader header; + BackupDataHeader enc; + std::memset(&header, 0, sizeof(header)); + std::memset(&enc, 0, sizeof(enc)); + header.size = filesize; + result = swAesCtrContext.Encrypt(&enc, &header, sizeof(header)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + context.Update(&enc, sizeof(enc)); + s32 writeSize; + result = to_file.TryWrite(&writeSize, &enc, sizeof(enc), false); + if (result.IsFailure()) + { + ret_value = false; + return ret_value; + } + + while (1) + { + // バッファの後半半分を暗号・復号用に使う + result = from_file.TryRead(&readsize, buf, bufSize / 2); + totalReadSize += readsize; + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + return ret_value; + } + else + { + if (readsize == 0) + { + NN_LOG("Add CMAC %ls\n", from_path); + // SHA256を計算してCMACを付加する + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + context.GetHash(sha256Hash); + + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, nn::crypto::Sha256Context::HASH_SIZE, + common::cmacKey); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = to_file.TryWrite(&writesize, cmac, sizeof(cmac)); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + result = to_file.TryFlush(); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + break; + } + else + { + NN_LOG("EncryptSize = %d\n", readsize); + + u8 paddingSize = 0; + AddPkcsPadding(&paddingSize, reinterpret_cast (buf), bufSize / 2, &readsize); + + // 暗号化後SHA256を計算しつつ書き込み + result = swAesCtrContext.Encrypt(reinterpret_cast (buf) + bufSize / 2, buf, readsize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + context.Update(reinterpret_cast (buf) + bufSize / 2, readsize); + + result = to_file.TryWrite(&writesize, reinterpret_cast (buf) + bufSize / 2, readsize, + false); + + // 事前計算したファイルサイズに一致させるためパディング分減算 + readsize -= paddingSize; + + s_FinishedFileSize += readsize; + s_Progress = s_FinishedFileSize * 100 / s_TotalFileSize; + NN_LOG("finish = %lld, total = %lld, progress = %lld\n", s_FinishedFileSize, s_TotalFileSize, s_Progress); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + } + } + } + to_file.Finalize(); + } + } + from_file.Finalize(); + + return ret_value; +} + + +bool CopyDirectory(ImportDataList* fileList, const wchar_t * from_path, const wchar_t * to_path, void* buf, + const size_t bufSize, bool encode, nn::fs::FileOutputStream* list, nn::crypto::Sha256Context* listContext) +{ + nn::fs::Directory from_dir; + nn::fs::DirectoryEntry entry; + s32 numread = 0; + std::wostringstream target_from; + std::wostringstream target_to; + bool ret_value = true; + + nn::Result result = from_dir.TryInitialize(from_path); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + + while (1) + { + result = from_dir.TryRead(&numread, &entry, 1); + if (result.IsFailure() || numread != 1) + { + break; + } + + if (std::wcscmp(entry.entryName, L".") == 0 || std::wcscmp(entry.entryName, L"..") == 0) + { + continue; + } + + target_from.str(L""); + target_from.clear(std::stringstream::goodbit); + target_from << from_path << entry.entryName; + + target_to.str(L""); + target_to.clear(std::stringstream::goodbit); + target_to << to_path << entry.entryName; + + // NAND書き込みの場合はリストに存在するかチェックする + if (!encode) + { + if (!ExistsInList(fileList, target_from.str().c_str(), entry.attributes.isDirectory)) + { + NN_LOG("============No such file %ls in FileList.txt. Skip=============\n", target_from.str().c_str()); + continue; + } + } + + // ディレクトリの場合 + if (entry.attributes.isDirectory) + { + // ディレクトリ作成 + NN_LOG("Create Directory %ls\n", target_to.str().c_str()); + result = nn::fs::TryCreateDirectory(target_to.str().c_str()); + if (result.IsSuccess() || result.IsFailure() && result <= nn::fs::ResultAlreadyExists()) + { + target_from << L"/"; + target_to << L"/"; + if(encode) + { + AddPathNameAndUpdateContext(list, target_to.str().c_str(), -1, listContext); + } + + // 再帰処理 + if (!CopyDirectory(fileList, target_from.str().c_str(), target_to.str().c_str(), buf, bufSize, encode, list, listContext)) + { + ret_value = false; + } + } + else + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + } + // ファイルの場合 + else + { + std::wostringstream target_tmp; + target_tmp.str(L""); + target_tmp.clear(std::stringstream::goodbit); + + if(!encode) + { + target_tmp << to_path << L"_" << entry.entryName; + } + else + { + target_tmp << target_to.str(); + } + + // ファイル作成 + nn::fs::FileInputStream from_file; + nn::fs::FileStream to_file; + s64 filesize; + s64 fileSizeWithoutHeaderAndFooter; + s32 readsize; + s32 writesize; + + NN_LOG("Copy File %ls\n", target_from.str().c_str()); + + // 読み込み対象ファイル開く + result = from_file.TryInitialize(target_from.str().c_str()); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + else + { + // 読み込み対象ファイルのサイズ取得 + result = from_file.TryGetSize(&filesize); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + else + { + if(encode) + { + AddPathNameAndUpdateContext(list, target_to.str().c_str(), filesize, listContext); + } + + nn::crypto::SwAesCtrContext swAesCtrContext; + swAesCtrContext.Initialize(iv, common::key, sizeof(key)); + + size_t totalReadSize = 0; + nn::crypto::Sha256Context context; + context.Initialize(); + + // ファイルサイズをヘッダに書いておく + if (encode) + { + // 書き込み対象ファイル作成 + result = nn::fs::TryCreateFile(target_tmp.str().c_str(), filesize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + result = to_file.TryInitialize(target_tmp.str().c_str(), + nn::fs::OPEN_MODE_READ | nn::fs::OPEN_MODE_WRITE | nn::fs::OPEN_MODE_CREATE); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + // フルパスをハッシュに含める + context.Update(target_from.str().c_str(), target_from.str().size() * sizeof(wchar_t)); + + BackupDataHeader header; + BackupDataHeader enc; + std::memset(&header, 0, sizeof(header)); + std::memset(&enc, 0, sizeof(enc)); + header.size = filesize; + result = swAesCtrContext.Encrypt(&enc, &header, sizeof(header)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + context.Update(&enc, sizeof(enc)); + s32 writeSize; + result = to_file.TryWrite(&writeSize, &enc, sizeof(enc), false); + if (result.IsFailure()) + { + ret_value = false; + continue; + } + } + else + { + // ヘッダを読む + // ハッシュの計算は終わっているので復号化のみ + BackupDataHeader header; + BackupDataHeader dec; + std::memset(&header, 0, sizeof(header)); + std::memset(&dec, 0, sizeof(dec)); + s32 readSize; + result = from_file.TryRead(&readSize, &header, sizeof(header)); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + continue; + } + swAesCtrContext.Decrypt(&dec, &header, sizeof(header)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + fileSizeWithoutHeaderAndFooter = dec.size; + + // 書き込み対象ファイル作成 + result = nn::fs::TryCreateFile(target_tmp.str().c_str(), fileSizeWithoutHeaderAndFooter); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + result = to_file.TryInitialize(target_tmp.str().c_str(), + nn::fs::OPEN_MODE_READ | nn::fs::OPEN_MODE_WRITE | nn::fs::OPEN_MODE_CREATE); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + } + + while (1) + { + // バッファの後半半分を暗号・復号用に使う + result = from_file.TryRead(&readsize, buf, bufSize / 2); + totalReadSize += readsize; + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + break; + } + else + { + if (readsize == 0) + { + if (encode) + { + NN_LOG("Add CMAC %ls\n", target_from.str().c_str()); + // SHA256を計算してCMACを付加する + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + context.GetHash(sha256Hash); + + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, + nn::crypto::Sha256Context::HASH_SIZE, common::cmacKey); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = to_file.TryWrite(&writesize, cmac, sizeof(cmac)); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + } + + result = to_file.TryFlush(); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + // 復号済みなら検証する + if (!encode) + { + if (!ConfirmFile(&from_file, &to_file, filesize, fileSizeWithoutHeaderAndFooter, + buf, bufSize, target_from.str().c_str(), target_tmp.str().c_str(), + target_to.str().c_str())) + { + ret_value = false; + } + } + + break; + } + else + { + if (encode) + { + NN_LOG("EncryptSize = %d\n", readsize); + + u8 paddingSize = 0; + AddPkcsPadding(&paddingSize, reinterpret_cast(buf), bufSize / 2, &readsize); + + // 暗号化後SHA256を計算しつつ書き込み + result = swAesCtrContext.Encrypt(reinterpret_cast (buf) + bufSize / 2, buf, + readsize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + context.Update(reinterpret_cast (buf) + bufSize / 2, readsize); + + result = to_file.TryWrite(&writesize, reinterpret_cast (buf) + bufSize / 2, + readsize, false); + + // 事前計算したファイルサイズに一致させるためパディング分減算 + readsize -= paddingSize; + + s_FinishedFileSize += readsize; + s_Progress = s_FinishedFileSize * 100 / s_TotalFileSize; + NN_LOG("finish = %lld, total = %lld, progress = %lld\n", s_FinishedFileSize, s_TotalFileSize, s_Progress); + } + else + { + // ハッシュ検証は通っているので復号化しつつ書き込み + // パディング以降は書き込まないよう書き込みサイズを変更する + + NN_LOG("DecryptSize = %d\n", readsize); + result = swAesCtrContext.Decrypt(reinterpret_cast (buf) + bufSize / 2, buf, + readsize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // パディングまで読んだかどうか + bool readDone = false; + // パディングまで読んでいたら書き込みサイズを減らす + if (fileSizeWithoutHeaderAndFooter < totalReadSize) + { + readsize -= totalReadSize - fileSizeWithoutHeaderAndFooter; + readDone = true; + } + + result = to_file.TryWrite(&writesize, reinterpret_cast (buf) + bufSize / 2, + readsize, false); + s_FinishedFileSize += readsize; + s_Progress = s_FinishedFileSize * 100 / s_TotalFileSize; + NN_LOG("finish = %lld, total = %lld, progress = %lld\n", s_FinishedFileSize, s_TotalFileSize, s_Progress); + + // 読みきったので次のファイルへ + if (readDone) + { + result = to_file.TryFlush(); + if (result.IsFailure()) + { + ret_value = false; + } + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + if (!ConfirmFile(&from_file, &to_file, filesize, + fileSizeWithoutHeaderAndFooter, buf, bufSize, + target_from.str().c_str(), target_tmp.str().c_str(), + target_to.str().c_str())) + { + s_FinishedFileSize -= readsize; + ret_value = false; + } + break; + } + } + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + + } + } + } + to_file.Finalize(); + } + } + from_file.Finalize(); + } + } + + from_dir.Finalize(); + return ret_value; +} + +u32 GetProgress() +{ + return s_Progress; +} + +void InitializeTransferProgress(u64 totalSize) +{ + s_TotalFileSize = totalSize; + s_FinishedFileSize = 0; +} + +bool CalculateAndCompareCmac(nn::crypto::Sha256Context* context, bit8* sdCmac) +{ + nn::Result result; + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + + context->GetHash(sha256Hash); + context->Finalize(); + + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, sizeof(sha256Hash), common::cmacKey); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + + return std::memcmp(cmac, sdCmac, sizeof(cmac)) == 0; +} + + +bool VerifyMac(nn::fs::FileInputStream* sdFile, nn::fs::FileStream* nandFile, s64 sdFileSize, s64 nandFileSize, + const wchar_t* nandPath, void* buf, size_t bufSize) +{ + nn::Result result; + bit8 sdCmac[nn::crypto::AES_CMAC_MAC_SIZE]; + + // ハッシュが付加されていないとエラー + if(sdFileSize < nn::crypto::AES_CMAC_MAC_SIZE) + { + return false; + } + + s32 readSize; + // ハッシュを取得する + nn::crypto::Initialize(); + result = sdFile->TrySetPosition(sdFileSize - nn::crypto::AES_CMAC_MAC_SIZE); + if (result.IsSuccess()) + { + result = sdFile->TryRead(&readSize, sdCmac, sizeof(sdCmac)); + if(result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + } + else + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + + sdFile->Finalize(); + + nandFile->SetPosition(0); + + // ハッシュを計算する + nn::crypto::SwAesCtrContext swAesCtrContext; + swAesCtrContext.Initialize(iv, common::key, sizeof(key)); + + nn::crypto::Sha256Context context; + context.Initialize(); + + // NAND上のフルパスをハッシュに含めている + context.Update(nandPath, std::wcslen(nandPath) * sizeof(wchar_t)); + + BackupDataHeader header; + BackupDataHeader enc; + std::memset(&header, 0, sizeof(header)); + std::memset(&enc, 0, sizeof(enc)); + header.size = nandFileSize; + result = swAesCtrContext.Encrypt(&enc, &header, sizeof(header)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + context.Update(&enc, sizeof(enc)); + + bool ret_value = false; + + size_t totalReadSize = 0; + while (1) + { + result = nandFile->TryRead(&readSize, buf, bufSize / 2); + totalReadSize += readSize; + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + break; + } + else + { + if (readSize == 0) + { + ret_value = CalculateAndCompareCmac(&context, sdCmac); + break; + } + else + { + u8 paddingSize = 0; + AddPkcsPadding(&paddingSize, reinterpret_cast(buf), bufSize / 2, &readSize); + result = swAesCtrContext.Encrypt(reinterpret_cast(buf) + bufSize / 2, buf, readSize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + context.Update(reinterpret_cast(buf) + bufSize / 2 , readSize); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + } + } + } + nn::crypto::Finalize(); + nandFile->Finalize(); + + return ret_value; +} + +bool ConfirmFile(nn::fs::FileInputStream* from_file, nn::fs::FileStream* to_file, s64 sdFileSize, s64 nandFileSize, + void* buf, size_t bufSize, const wchar_t* sdPath, const wchar_t* tmpPath, const wchar_t* truePath) +{ + nn::Result result; + + bool ret_value = true; + NN_LOG("Verify CMAC %ls\n", sdPath); + if (!VerifyMac(from_file, to_file, sdFileSize, nandFileSize, truePath, buf, bufSize)) + { + // 検証に失敗したので削除する + s_FinishedFileSize -= nandFileSize; + COMMON_LOGGER("**********Verification Failed %s, Delete**********\n", GetCharStr(sdPath)); + result = nn::fs::TryDeleteFile(tmpPath); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + } + else + { + NN_LOG("Verification Success %s, Rename\n", GetCharStr(sdPath)); + // 削除する + nn::fs::TryDeleteFile(truePath); + // リネームする + result = nn::fs::TryRenameFile(tmpPath, truePath); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED(result); + s_FinishedFileSize -= nandFileSize; + ret_value = false; + } + } + + return ret_value; +} + +//! @brief 入力データの末尾16バイトをPKCS5で必要バイト数パディングする +//! @param[out] paddingSize パディングしたバイト数 +//! @param[in] buf 入力データの入ったバッファ +//! @param[in] bufSize バッファサイズ +//! @param[inout] readSize バッファに読み込んだバイト数。書き込み時に参照するためパディングしたら増加させる +void AddPkcsPadding(u8* paddingSize, void* buf, size_t bufSize, s32* readSize) +{ + if (*readSize < bufSize) + { + if ((*readSize % AES_BLOCK_SIZE) != 0) + { + *paddingSize = AES_BLOCK_SIZE - *readSize % AES_BLOCK_SIZE; + std::memset(reinterpret_cast(buf) + *readSize, *paddingSize, *paddingSize); + *readSize += *paddingSize; + } + } +} + +//! @brief パスにnimのセーブデータディレクトリが含まれているかどうかを返します +//! @param[in] str パス +//! @return パスにnimのセーブデータディレクトリが含まれているか +bool ContainsNimSaveDataDir(const wchar_t* str) +{ + return std::wcsstr(str, common::NIM_SAVEDATA_DIRECTORY_NAME) != NULL; +} + +//! @brief ファイルに文字列とサイズをカンマ区切り、改行付きで追加します +//! @param[in] file 文字列を出力したいファイル +//! @param[in] str 入力文字列 +//! @param[in] fileSize サイズ +//! @param[in] context SHA-256計算用コンテキスト +void AddPathNameAndUpdateContext(nn::fs::FileOutputStream* file, const wchar_t *str, s64 fileSize, + nn::crypto::Sha256Context* context) +{ + nn::Result result; + s32 writeSize; + + if(ContainsNimSaveDataDir(str)) + { + return; + } + + std::string output(GetCharStr(str)); + result = file->TryWrite(&writeSize, output.c_str(), output.size(), true); + context->Update(output.c_str(), output.size()); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + char comma = ','; + result = file->TryWrite(&writeSize, &comma, sizeof(comma), true); + context->Update(&comma, sizeof(comma)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + char sizeStr[10]; + std::memset(sizeStr, 0, sizeof(sizeStr)); + s32 sizeStrSize = std::snprintf(sizeStr, sizeof(sizeStr), "%lld", fileSize); + result = file->TryWrite(&writeSize, sizeStr, sizeStrSize, true); + context->Update(sizeStr, sizeStrSize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + char newLine = '\n'; + result = file->TryWrite(&writeSize, &newLine, sizeof(newLine), true); + context->Update(&newLine, sizeof(newLine)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.h new file mode 100644 index 0000000..625b65a --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/FileTransfer.h @@ -0,0 +1,62 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: FileTransfer.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef FILETRANSFER_H_ +#define FILETRANSFER_H_ + +#include +#include +#include +#include "common_Types.h" + +namespace common +{ + +// currentDirectory以下のファイル数、ファイルサイズを再帰的に計算する +nn::Result CalculateFileNum(std::wstring currentDirectory, u32& fileNum, s64& fileSize); + +// 単一のディレクトリを作成する +// アーカイブはマウント済みにしておく +void ExportTwlSaveDirectory(const wchar_t* dirPath, nn::fs::FileOutputStream* list, + nn::crypto::Sha256Context* listContext); + +// 単一のファイルをコピーする +// アーカイブはマウント済みにしておく +bool ExportTwlSaveFile(const wchar_t* from_path, const wchar_t* to_path, void* buf, const size_t bufSize, + nn::fs::FileOutputStream* list, nn::crypto::Sha256Context* listContext); + +// ディレクトリ間のコピー +// アーカイブ越しのコピーが可能 +// アーカイブにマウントした状態で呼び出す必要あり +// 書き込み先のディレクトリはあらかじめ消去しておくこと。 +// 引数はスラッシュ付き +// TODO:分割して短くする +bool CopyDirectory(ImportDataList* fileList, const wchar_t * from_path, const wchar_t * to_path, void* buf, + const size_t bufSize, bool encode, nn::fs::FileOutputStream* list, nn::crypto::Sha256Context* listContext); + +// ファイル転送の進捗を取得する +// InitializeTransferProgress で設定した値を100とする割合が返される +u32 GetProgress(); + +// ファイル転送の目標値を設定する +void InitializeTransferProgress(u64 totalSize); + +// wchar_t* を char* に変換する。 +// 内部のバッファを使用するためスレッドアンセーフ +const char* GetCharStr(const wchar_t* path); + +} + +#endif /* FILETRANSFER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.cpp new file mode 100644 index 0000000..aa633ee --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.cpp @@ -0,0 +1,81 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: HardwareStateManager.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "HardwareStateManager.h" + +namespace common +{ + +HardwareStateManager::HardwareStateManager(Util& hwUtility) +{ + m_pUtil = &hwUtility; +} + +HardwareStateManager::~HardwareStateManager() +{ + +} + +void HardwareStateManager::Finalize() +{ + m_pUtil->Finalize(); +} + +bool HardwareStateManager::CanReadIvs() +{ + return m_pUtil->CanReadIVS(); +} + +bool HardwareStateManager::CanReadSerialNumber() +{ + return m_pUtil->CanReadSerialNumber(); +} + +bool HardwareStateManager::IsBatteryLower() +{ + return m_pUtil->IsBatteryLower(); +} + +bool HardwareStateManager::IsAdapterConnected() +{ + return m_pUtil->IsAdapterConnected(); +} + +bit32 HardwareStateManager::GetDeviceId() +{ + return m_pUtil->GetDeviceId(); +} + +void HardwareStateManager::GetIvs(void** ivs, size_t* size) +{ + return m_pUtil->GetIvs(ivs, size); +} + +nn::Handle HardwareStateManager::GetMcuHandle() +{ + return m_pUtil->GetMcuHandle(); +} + +void HardwareStateManager::GetSerialNumber(u8** serial, size_t* size) +{ + return m_pUtil->GetSerialNumber(serial, size); +} + +void HardwareStateManager::GetVersionData(common::VerDef* version) +{ + return m_pUtil->GetVersionData(version); +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.h new file mode 100644 index 0000000..65b6525 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HardwareStateManager.h @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: HardwareStateManager.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef HARDWARESTATEMANAGER_H_ +#define HARDWARESTATEMANAGER_H_ + +#include "Util.h" + + +namespace common +{ + +// ハードウェア状態に依存するAPIをクッション +class HardwareStateManager +{ +public: + explicit HardwareStateManager(Util& hwUtility); + virtual ~HardwareStateManager(); + + void Finalize(); + + bool CanReadIvs(); + bool CanReadSerialNumber(); + bool IsBatteryLower(); + bool IsAdapterConnected(); + bit32 GetDeviceId(); + void GetIvs(void** ivs, size_t* size); + nn::Handle GetMcuHandle(); + void GetSerialNumber(u8** serial, size_t* size); + void GetVersionData(common::VerDef* version); + +private: + NN_PADDING4; + Util* m_pUtil; +}; + +} + +#endif /* HARDWARESTATEMANAGER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.cpp new file mode 100644 index 0000000..22b8e87 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.cpp @@ -0,0 +1,38 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: HeapManager.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "HeapManager.h" + +namespace common +{ + +nn::fnd::ThreadSafeExpHeap HeapManager::s_AppHeap; + +HeapManager::HeapManager() +{ + +} + +HeapManager::~HeapManager() +{ + +} + +nn::fnd::ThreadSafeExpHeap* HeapManager::GetHeap() +{ + return &s_AppHeap; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.h new file mode 100644 index 0000000..b9fc469 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/HeapManager.h @@ -0,0 +1,40 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: HeapManager.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef HEAPMANAGER_H_ +#define HEAPMANAGER_H_ + +#include + +namespace common +{ + +class HeapManager +{ +public: + HeapManager(); + virtual ~HeapManager(); + + static nn::fnd::ThreadSafeExpHeap* GetHeap(); + +private: + // デバイスメモリ管理用拡張ヒープ + static nn::fnd::ThreadSafeExpHeap s_AppHeap; + +}; + +} // namespace common + +#endif /* HEAPMANAGER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.cpp new file mode 100644 index 0000000..0af3ee8 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.cpp @@ -0,0 +1,172 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: LogConsole.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "LogConsole.h" +#include + +namespace common +{ + +const size_t FONT_WIDTH = 8; +const size_t FONT_HEIGHT = 10; + +static LogConsole s_LogConsole; + +LogConsole* GetConsoleInstance() +{ + return &s_LogConsole; +} + +LogConsole::LogConsole() +{ + +} + +LogConsole::~LogConsole() +{ + +} + +void LogConsole::Initialize(u32 width, u32 height, u32 maxLine, demo::RenderSystemDrawing* renderSystem) +{ + m_Width = width; + m_Height = height; + m_MaxLine = maxLine; + m_RenderSystem = renderSystem; + m_CurrentViewLine = 0; + m_LineNum = 0; +} + +void LogConsole::AddText(const char* fmt, ::std::va_list arg) +{ + s32 stringSize; + const size_t STRING_BUFFER_SIZE = 256; + char formatStr[STRING_BUFFER_SIZE]; + + stringSize = nn::nstd::TVSNPrintf(formatStr, sizeof(formatStr), fmt, arg); + ::std::string str(formatStr); + + size_t addedText = 0; + while (addedText < stringSize) + { + if(m_LineNum >= m_MaxLine) + { + // 満杯なので先頭を削除する + ::std::vector::iterator it; + it = m_Log.begin(); + m_Log.erase(it); + m_LineNum--; + } + + // 部分文字列を追加 + AddWrapedText(str.substr(addedText, m_Width).c_str()); + m_LineNum++; + + // 画面領域の末尾を描画中 かつ + // 画面領域以上追加したら末尾にスクロールする + if(m_CurrentViewLine == (m_LineNum - m_Height - 1) && m_LineNum > m_Height) + { + ScrollToEnd(); + } + + + if(stringSize - addedText > m_Width) + { + addedText += m_Width; + } + else + { + addedText += stringSize - addedText; + } + } +} + +void LogConsole::ScrollUp() +{ + if(m_CurrentViewLine > 0) + { + m_CurrentViewLine--; + } +} + + + +void LogConsole::ScrollDown() +{ + if (m_LineNum > m_Height) + { + if (m_CurrentViewLine < m_LineNum - m_Height) + { + m_CurrentViewLine++; + } + + } +} + +void LogConsole::ScrollToBegin() +{ + m_CurrentViewLine = 0; +} + +void LogConsole::ScrollToEnd() +{ + if(m_LineNum > m_Height) + { + m_CurrentViewLine = m_LineNum - m_Height; + } +} + + +void LogConsole::Print() +{ + ::std::vector::iterator it; + + it = m_Log.begin(); + it += m_CurrentViewLine; + + u32 count = 0; + for(; it != m_Log.end() && count < m_Height && count < m_MaxLine; it++) + { + m_RenderSystem->DrawText(0, count++ * 10, "%s", it->c_str()); + } + + if(m_LineNum > m_Height) + { + DrawScrollBar(); + } +} + + +void LogConsole::AddWrapedText(const char* str) +{ + m_Log.push_back(::std::string(str)); +} + +void LogConsole::DrawScrollBar() +{ + m_RenderSystem->SetColor(0.4f, 0.4f, 0.4f); + m_RenderSystem->DrawLine((m_Width + 1) * FONT_WIDTH, 0, (m_Width + 2) * FONT_WIDTH - 1, 0); + m_RenderSystem->DrawLine((m_Width + 1)* FONT_WIDTH, 0, (m_Width + 1)* FONT_WIDTH, m_Height * FONT_HEIGHT); + m_RenderSystem->DrawLine((m_Width + 2) * FONT_WIDTH - 1, 0, (m_Width + 2) * FONT_WIDTH - 1, m_Height * FONT_HEIGHT); + m_RenderSystem->DrawLine((m_Width + 1)* FONT_WIDTH, m_Height * FONT_HEIGHT - 1, (m_Width + 2) * FONT_WIDTH - 1, m_Height * FONT_HEIGHT - 1); + + u32 y = (m_Height * FONT_HEIGHT - 2) * m_CurrentViewLine / m_MaxLine; + m_RenderSystem->SetColor(0.7f, 0.7f, 0.7f); + m_RenderSystem->FillRectangle((m_Width + 1) * FONT_WIDTH, y + 1, FONT_WIDTH - 1, FONT_HEIGHT - 4); + + m_RenderSystem->SetColor(1.f, 1.f, 1.f); +} + +} //namespace ConsoleBackup diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.h new file mode 100644 index 0000000..9b120bc --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole.h @@ -0,0 +1,79 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: LogConsole.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef LOGCONSOLE_H_ +#define LOGCONSOLE_H_ + +#include +#include +#include +#include "demo.h" + +namespace common +{ + +//! @brief 画面にテキストコンソールを描画します +class LogConsole +{ + +public: + LogConsole(); + ~LogConsole(); + + void Initialize(u32 width, u32 height, u32 maxLine, demo::RenderSystemDrawing* renderSystem); + + // コンソールに描画する文字列を追加する + void AddText(const char* fmt, ::std::va_list arg); + + // 上スクロールする + void ScrollUp(); + + // 下スクロールする + void ScrollDown(); + + // 先頭にスクロールする + void ScrollToBegin(); + + // 末尾にスクロールする + void ScrollToEnd(); + + // AddTextで追加された文字列を描画する + void Print(); + +private: + void AddWrapedText(const char* str); + void DrawScrollBar(); + + ::std::vector m_Log; + + //! @brief コンソールの列数 + u32 m_Width; + //! @brief コンソールの行数 + u32 m_Height; + //! @brief コンソールのログの最大行数 + u32 m_MaxLine; + //! @brief 描画のためのRenderSystemDrawingへのポインタ + demo::RenderSystemDrawing* m_RenderSystem; + //! @brief 追加したログの行数 + u32 m_LineNum; + //! @brief 表示を開始するログの行数 + u32 m_CurrentViewLine; + + +}; + +} + +#endif /* LOGCONSOLE_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole_Private.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole_Private.h new file mode 100644 index 0000000..8fbdd42 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/LogConsole_Private.h @@ -0,0 +1,28 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: LogConsole_Private.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef LOGCONSOLE_PRIVATE_H_ +#define LOGCONSOLE_PRIVATE_H_ + +#include "LogConsole.h" + +namespace common +{ + +LogConsole* GetConsoleInstance(); + +} + +#endif /* LOGCONSOLE_PRIVATE_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/common/OMakefile new file mode 100644 index 0000000..e874cbc --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/OMakefile @@ -0,0 +1,18 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +include $(ROOT_OMAKE)/modulerules + +DefineDefaultRules() diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.cpp new file mode 100644 index 0000000..c846745 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.cpp @@ -0,0 +1,224 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: PlayHistoryManager.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include + +#include "PlayHistoryManager.h" +#include "HeapManager.h" +#include "SdMountManager.h" +#include "SdReaderWriter.h" +#include "CommonLogger.h" +#include "FileName.h" +#include "ProgramId.h" + +namespace common +{ + +PlayHistoryManager::PlayHistoryManager() +{ + + +} + +PlayHistoryManager::~PlayHistoryManager() +{ + +} + +void PlayHistoryManager::Export() +{ + nn::Result result; + SdMountManager::Mount(); + SdReaderWriter sd; + + size_t historyNum = nn::pl::CTR::GetPlayHistoryLength(); + if ( historyNum == 0) + { + NN_LOG("No Play Event\n"); + return; + } + + // SDに書き込む + result = sd.WriteBufWithCmac(common::PLAYHISTORY_COUNT_PATHNAME, reinterpret_cast(&historyNum), + sizeof(historyNum)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + nn::pl::CTR::PlayEvent* pEvent; + pEvent = reinterpret_cast (HeapManager::GetHeap()->Allocate( + sizeof(nn::pl::CTR::PlayEvent) * historyNum)); + if ( pEvent == NULL ) + { + NN_LOG("Failed to Allocate Heap\n"); + return; + } + + // 一番古いデータから素直に全部読み込む + nn::pl::CTR::GetPlayHistory(pEvent, 0, historyNum); + + // SDに書き込む + result = sd.WriteBufWithCmac(common::PLAYHISTORY_PATHNAME, reinterpret_cast(pEvent), + sizeof(nn::pl::CTR::PlayEvent) * historyNum); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + HeapManager::GetHeap()->Free(pEvent); + + SdMountManager::Unmount(); +} + +nn::Result PlayHistoryManager::GetPlayHistoryNums(size_t* nums) +{ + nn::Result result = nn::ResultSuccess(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::PLAYHISTORY_COUNT_PATHNAME, buf, bufSize, &readSize); + if (result.IsSuccess()) + { + *nums = *reinterpret_cast (buf); + } + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + HeapManager::GetHeap()->Free(buf); + } + return result; +} + +nn::Result PlayHistoryManager::Import() +{ + nn::Result result = nn::ResultSuccess(); + SdMountManager::Mount(); + SdReaderWriter sd; + + SdMountManager::Mount(); + + // プレイ履歴の件数を取得する + size_t historyNum = 0; + + GetPlayHistoryNums(&historyNum); + + if(historyNum == 0) + { + NN_LOG("No PlayHistory found\n"); + return nn::Result(nn::Result::LEVEL_PERMANENT, nn::Result::SUMMARY_NOT_FOUND, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_NOT_FOUND); + } + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize); + if (buf != NULL) + { + common::SdReaderWriter sdReader; + + size_t readSize; + result = sdReader.ReadBufWithCmac(common::PLAYHISTORY_PATHNAME, buf, bufSize, &readSize); + if(result.IsSuccess()) + { + nn::pl::CTR::PlayEvent* pEvent = reinterpret_cast(buf); + NN_LOG("history num = %d\n", historyNum); + + // プレイ履歴を無効化する + nn::pl::CTR::ClearPlayHistory(); + + // データ移行ツールを無視して書き込む + for(u32 i = 0; i < historyNum; i++) + { + COMMON_LOGGER("Importing PlayHistory %d/%d", i, historyNum); + if ((pEvent[i].GetProgramId() & WITHOUT_VALIATION_MASK) != CONSOLE_BACKUP_PROGRAM_ID + && (pEvent[i].GetProgramId() & WITHOUT_VALIATION_MASK) != CONSOLE_RESTORE_PROGRAM_ID) + { + NN_LOG("%05d 0x%16llx : %X : %d\n", i, pEvent[i].GetProgramId(), pEvent[i].GetEventType(), + pEvent[i].minutes); + + nn::pl::CTR::NotifyPlayEvent(pEvent[i].GetEventType(), pEvent[i].GetProgramId(), + pEvent[i].GetEventTime()); + } + else + { + NN_LOG("Skipped\n"); + } + } + + } + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + common::HeapManager::GetHeap()->Free(buf); + } + else + { + NN_LOG("Failed Allocate Heap!! %s, %d", __FILE__, __LINE__); + return result; + } + + SdMountManager::Unmount(); + + return result; +} + +void PlayHistoryManager::Dump() +{ + nn::Result result; + + s32 playEventLength = nn::pl::CTR::GetPlayHistoryLength(); + if ( playEventLength == 0 ) + { + NN_LOG("No Play Event\n"); + return; + } + + nn::pl::CTR::PlayEvent* playEvent = reinterpret_cast (HeapManager::GetHeap()->Allocate( + sizeof(nn::pl::CTR::PlayEvent) * playEventLength)); + if ( playEvent == NULL ) + { + NN_LOG("Failed to Allocate Heap\n"); + return; + } + + // 一番古いデータから素直に全部読み込む + (void)nn::pl::CTR::GetPlayHistory(playEvent, 0, playEventLength); + + // 取得したデータを順番にすべて表示していく + s32 restPlayEventLength = playEventLength; + s32 displayCount = 0; + + nn::pl::CTR::PlayEvent* pEvent; + while ( restPlayEventLength > 0 ) + { + // 一気に表示できるところまで表示する + int line; + for ( line = 0; line < 24; line++ ) + { + pEvent = &playEvent[displayCount]; + NN_LOG("0x%16llx : %X : %d\n", pEvent->GetProgramId(), pEvent->eventType, pEvent->minutes); + restPlayEventLength--; + displayCount++; + if(restPlayEventLength <= 0) + { + break; + } + } + } + NN_UNUSED_VAR(pEvent); + + HeapManager::GetHeap()->Free(playEvent); + return; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.h new file mode 100644 index 0000000..73afb52 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/PlayHistoryManager.h @@ -0,0 +1,45 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: PlayHistoryManager.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef PLAYHISTORYMANAGER_H_ +#define PLAYHISTORYMANAGER_H_ + +namespace common +{ + +//! @brief データ移行ツールの履歴を消しながらプレイ履歴を移行するためのクラスです。 +class PlayHistoryManager +{ +public: + PlayHistoryManager(); + virtual ~PlayHistoryManager(); + + //! @brief SDカードに出力します。 + void Export(); + + //! @brief SDカードからプレイ履歴に書き込みます + nn::Result Import(); + + //! @brief デバッグ用。プレイ履歴をデバッグ出力します。 + void Dump(); + +private: + nn::Result GetPlayHistoryNums(size_t* nums); + +}; + +} + +#endif /* PLAYHISTORYMANAGER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/ProgramId.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/ProgramId.h new file mode 100644 index 0000000..c565f11 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/ProgramId.h @@ -0,0 +1,28 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: ProgramId.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef PROGRAMID_H_ +#define PROGRAMID_H_ + +namespace common +{ + +const u64 CONSOLE_BACKUP_PROGRAM_ID = 0x000400000f802200L; +const u64 CONSOLE_RESTORE_PROGRAM_ID = 0x000400000f802300L; +const u64 WITHOUT_VALIATION_MASK = 0xffffffffffffff00L; + +} + +#endif /* PROGRAMID_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.cpp new file mode 100644 index 0000000..b0183df --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.cpp @@ -0,0 +1,417 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: ResFont.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +//------------------------------------------------------------------ +// デモ: ResFont +// +// 概要 +// nn::font::ResFont の構築と破棄のサンプルです。 +// +// 操作 +// なし。 +// +//------------------------------------------------------------------ + +#include +#include +#include +#include +#include + +#include "ResFont.h" +#include "demo.h" +#include "HeapManager.h" + +namespace common +{ + +namespace +{ +const char s_ShaderBinaryFilePath[] = "rom:/nnfont_RectDrawerShader.shbin"; +const char s_FontFilePath[] = "rom:/lc.bcfnt"; + +const u8 s_Color = 255; + +nn::font::RectDrawer s_Drawer; +void* s_DrawerBuf; +nn::font::ResFont s_Font; +nn::font::DispStringBuffer *s_pDrawStringBuf0; +nn::font::TextWriter s_TextWriter; +void (*s_DrawTextFunc)() = NULL; + +//--------------------------------------------------------------------------- +//! @brief シェーダの初期化を行います。 +//! +//! @param[in,out] pResource 描画用リソースを管理するオブジェクトへのポインタ。 +//--------------------------------------------------------------------------- +void* +InitShaders(nn::font::RectDrawer* pDrawer) +{ + nn::fs::FileReader shaderReader(s_ShaderBinaryFilePath); + + const u32 fileSize = (u32)shaderReader.GetSize(); + + void* shaderBinary = HeapManager::GetHeap()->Allocate(fileSize); + NN_NULL_ASSERT(shaderBinary); + +#ifndef NN_BUILD_RELEASE + s32 read = +#endif // NN_BUILD_RELEASE + shaderReader.Read(shaderBinary, fileSize); + NN_ASSERT(read == fileSize); + + const u32 vtxBufCmdBufSize = + nn::font::RectDrawer::GetVertexBufferCommandBufferSize(shaderBinary, fileSize); + void *const vtxBufCmdBuf = HeapManager::GetHeap()->Allocate(vtxBufCmdBufSize); + NN_NULL_ASSERT(vtxBufCmdBuf); + pDrawer->Initialize(vtxBufCmdBuf, shaderBinary, fileSize); + + HeapManager::GetHeap()->Free(shaderBinary); + + return vtxBufCmdBuf; + +} + +//--------------------------------------------------------------------------- +//! @brief 描画の初期設定を行います。 +//! +//! @param[in] width 画面の幅。 +//! @param[in] height 画面の高さ。 +//--------------------------------------------------------------------------- +void +InitDraw( + s32 width, + s32 height +) +{ + // カラーバッファ情報 + // LCDの向きに合わせて、幅と高さを入れ替えています。 + const nn::font::ColorBufferInfo colBufInfo = { width, height, PICA_DATA_DEPTH24_STENCIL8_EXT }; + + const u32 screenSettingCommands[] = + { + + // ビューポートの設定 + NN_FONT_CMD_SET_VIEWPORT( 0, 0, colBufInfo.width, colBufInfo.height ), + + // シザー処理を無効 + NN_FONT_CMD_SET_DISABLE_SCISSOR( colBufInfo ), + + // wバッファの無効化 + // デプスレンジの設定 + // ポリゴンオフセットの無効化 + NN_FONT_CMD_SET_WBUFFER_DEPTHRANGE_POLYGONOFFSET( + 0.0f, // wScale : 0.0 でWバッファが無効 + 0.0f, // depth range near + 1.0f, // depth range far + 0, // polygon offset units : 0.0 で ポリゴンオフセットが無効 + colBufInfo), + }; + + nngxAdd3DCommand(screenSettingCommands, sizeof(screenSettingCommands), true); + + static const u32 s_InitCommands[] = + { + // カリングを無効 + NN_FONT_CMD_SET_CULL_FACE( NN_FONT_CMD_CULL_FACE_DISABLE ), + + // ステンシルテストを無効 + NN_FONT_CMD_SET_DISABLE_STENCIL_TEST(), + + // デプステストを無効 + // カラーバッファの全ての成分を書き込み可 + NN_FONT_CMD_SET_DEPTH_FUNC_COLOR_MASK( + false, // isDepthTestEnabled + 0, // depthFunc + true, // depthMask + true, // red + true, // green + true, // blue + true), // alpha + + // アーリーデプステストを無効 + NN_FONT_CMD_SET_ENABLE_EARLY_DEPTH_TEST( false ), + + // フレームバッファアクセス制御 + NN_FONT_CMD_SET_FBACCESS( + true, // colorRead + true, // colorWrite + false, // depthRead + false, // depthWrite + false, // stencilRead + false), // stencilWrite + }; + + nngxAdd3DCommand(s_InitCommands, sizeof(s_InitCommands), true); +} + +//--------------------------------------------------------------------------- +//! @brief ResFontを構築します。 +//! +//! @param[out] pFont 構築するフォントへのポインタ。 +//! @param[in] filePath ロードするフォントリソースファイル名。 +//! +//! @return ResFont構築の成否を返します。 +//--------------------------------------------------------------------------- +bool +InitFont( + nn::font::ResFont* pFont, + const char* filePath +) +{ + // フォントリソースをロードします + nn::fs::FileReader fontReader(filePath); + + s32 fileSize = (s32)fontReader.GetSize(); + if ( fileSize <= 0 ) + { + return false; + } + + void* buffer = HeapManager::GetHeap()->Allocate(fileSize, nn::font::GlyphDataAlignment); + if (buffer == NULL) + { + return false; + } + + s32 readSize = fontReader.Read(buffer, fileSize); + if (readSize != fileSize) + { + HeapManager::GetHeap()->Free(buffer); + return false; + } + + // フォントリソースをセットします + bool bSuccess = pFont->SetResource(buffer); + NN_ASSERT(bSuccess); + + //--- 既にリソースをセット済みであるか,ロード済みであるか、リソースが不正な場合に失敗します。 + if (! bSuccess) + { + HeapManager::GetHeap()->Free(buffer); + } + + // 描画用バッファを設定します。 + const u32 drawBufferSize = nn::font::ResFont::GetDrawBufferSize(buffer); + void* drawBuffer = HeapManager::GetHeap()->Allocate(drawBufferSize, 4); + NN_NULL_ASSERT(drawBuffer); + pFont->SetDrawBuffer(drawBuffer); + + return bSuccess; +} + +//--------------------------------------------------------------------------- +//! @brief ResFontを破棄します。 +//! +//! @param[in] pFont 破棄するフォントへのポインタ。 +//--------------------------------------------------------------------------- +void +CleanupFont(nn::font::ResFont* pFont) +{ + // 描画用バッファの無効化 + // 描画用バッファがセットされているなら 構築時に SetDrawBuffer に渡したバッファへの + // ポインタが返ってきます。 + void *const drawBuffer = pFont->SetDrawBuffer(NULL); + if (drawBuffer != NULL) + { + HeapManager::GetHeap()->Free(drawBuffer); + } + + // フォントがセットされているなら SetResource 時に渡したリソースへの + // ポインタが返ってきます。 + void *const resource = pFont->RemoveResource(); + if (resource != NULL) + { + HeapManager::GetHeap()->Free(resource); + } + + // RemoveResource 後は再度 SetResource するまでフォントとして使用できません。 +} + +//--------------------------------------------------------------------------- +//! @brief 表示文字列用バッファを確保します。 +//! +//! @param[in] charMax 表示する文字列の最大文字数。 +//! +//! @return 確保した表示文字列用バッファへのポインタを返します。 +//--------------------------------------------------------------------------- +nn::font::DispStringBuffer* +AllocDispStringBuffer(s32 charMax) +{ + const u32 DrawBufferSize = nn::font::CharWriter::GetDispStringBufferSize(charMax); + void *const bufMem = HeapManager::GetHeap()->Allocate(DrawBufferSize); + NN_NULL_ASSERT(bufMem); + + return nn::font::CharWriter::InitDispStringBuffer(bufMem, charMax); +} + +//--------------------------------------------------------------------------- +//! @brief 文字列表示用にモデルビュー行列と射影行列を設定します。 +//! +//! @param[in] pDrawer RectDrawerオブジェクトへのポインタ。 +//! @param[in] width 画面の幅。 +//! @param[in] height 画面の高さ。 +//--------------------------------------------------------------------------- +void +SetupTextCamera( + nn::font::RectDrawer* pDrawer, + s32 width, + s32 height +) +{ + // 射影行列を正射影に設定 + { + // 左上原点とし、Y軸とZ軸の向きが逆になるように設定します。 + nn::math::MTX44 proj; + f32 znear = 0.0f; + f32 zfar = -1.0f; + f32 t = 0; + f32 b = static_cast(width); + f32 l = 0; + f32 r = static_cast(height); + nn::math::MTX44OrthoPivot(&proj, l, r, b, t, znear, zfar, nn::math::PIVOT_UPSIDE_TO_TOP); + pDrawer->SetProjectionMtx(proj); + } + + // モデルビュー行列を単位行列に設定 + { + nn::math::MTX34 mv; + nn::math::MTX34Identity(&mv); + pDrawer->SetViewMtxForText(mv); + } +} + +//--------------------------------------------------------------------------- +//! @brief ASCII文字列を描画します。 +//! +//! @param[in] pDrawer RectDrawerオブジェクトへのポインタ。 +//! @param[in] pDrawStringBuf DispStringBufferオブジェクトへのポインタ。 +//! @param[in] pFont フォントへのポインタ。 +//! @param[in] width 画面の幅。 +//! @param[in] height 画面の高さ。 +//--------------------------------------------------------------------------- +void +DrawAscii( + nn::font::RectDrawer* pDrawer, + nn::font::DispStringBuffer* pDrawStringBuf, + nn::font::ResFont* pFont, + s32 width, + s32 height +) +{ + s_TextWriter.SetDispStringBuffer(pDrawStringBuf); + s_TextWriter.SetFont(pFont); + + s_TextWriter.SetCursor(0, 0, 1.f); + + s_TextWriter.StartPrint(); + if(s_DrawTextFunc != NULL) + { + s_DrawTextFunc(); + } + + s_TextWriter.EndPrint(); + pDrawer->BuildTextCommand(&s_TextWriter); + + + // 文字の色は、文字列の描画コマンドを再作成しなくても変更できます。 + s_TextWriter.SetTextColor(nn::util::Color8(s_Color, s_Color, s_Color, s_Color)); + + pDrawer->DrawBegin(); + + SetupTextCamera(pDrawer, width, height); + s_TextWriter.UseCommandBuffer(); + + pDrawer->DrawEnd(); +} + +} // namespace + +void SetDrawTextHandler(void (*func)()) +{ + s_DrawTextFunc = func; +} + + +//--------------------------------------------------------------------------- +//! @brief サンプルのメイン関数です。 +//--------------------------------------------------------------------------- +void +InitializeResFont() +{ + const size_t ROMFS_BUFFER_SIZE = 1024 * 64; + static char buffer[ROMFS_BUFFER_SIZE]; + NN_UTIL_PANIC_IF_FAILED( + nn::fs::MountRom(16, 16, buffer, ROMFS_BUFFER_SIZE)); + + // フォントの構築 + { +#ifndef NN_BUILD_RELEASE + bool bSuccess = +#endif // NN_BUILD_RELEASE + InitFont(&s_Font, s_FontFilePath); + NN_ASSERTMSG(bSuccess, "Fail to load ResFont."); + } + + // 描画リソースの構築 + s_DrawerBuf = InitShaders(&s_Drawer); + + // 描画文字列用バッファの確保 + s_pDrawStringBuf0 = AllocDispStringBuffer(512); + + nn::fs::Unmount("rom:"); + +} + +void DrawResFont(s32 display) +{ + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + if(display == NN_GX_DISPLAY0) + { + InitDraw(NN_GX_DISPLAY0_WIDTH, NN_GX_DISPLAY0_HEIGHT); + + DrawAscii(&s_Drawer, s_pDrawStringBuf0, &s_Font, NN_GX_DISPLAY0_WIDTH, NN_GX_DISPLAY0_HEIGHT); + } + else if(display == NN_GX_DISPLAY1) + { + InitDraw(NN_GX_DISPLAY1_WIDTH, NN_GX_DISPLAY1_HEIGHT); + + DrawAscii(&s_Drawer, s_pDrawStringBuf0, &s_Font, NN_GX_DISPLAY1_WIDTH, NN_GX_DISPLAY1_HEIGHT); + } + + nngxUpdateState(NN_GX_STATE_ALL); +} + +void FinalizeResFont() +{ + s_Drawer.Finalize(); + + // 描画リソースの破棄 + HeapManager::GetHeap()->Free(s_DrawerBuf); + + // フォントの破棄 + CleanupFont(&s_Font); + + // 描画文字列用バッファの解放 + HeapManager::GetHeap()->Free(s_pDrawStringBuf0); +} + +nn::font::TextWriter* GetTextWriter() +{ + return &s_TextWriter; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.h new file mode 100644 index 0000000..379a0bb --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/ResFont.h @@ -0,0 +1,40 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: ResFont.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef RESFONT_H_ +#define RESFONT_H_ + +#include + +namespace common +{ + +// ResFontを初期化する。 +void InitializeResFont(); + +// 文字列の描画時に実行したいハンドラを設定する +void SetDrawTextHandler(void (*func)()); + +// SetDrawTextHandler で設定した関数を使って文字列を描画する +void DrawResFont(s32 display); + +// 内部で保持しているTextWriterへのポインタを返す +nn::font::TextWriter* GetTextWriter(); + + +} + + +#endif /* RESFONT_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.cpp new file mode 100644 index 0000000..9851395 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.cpp @@ -0,0 +1,268 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SdLogger.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "SdLogger.h" +#include +#include "SDMountManager.h" +#include "FileName.h" + +namespace common +{ + +namespace Logger +{ + +static SdLogger s_SdLogger; +static nn::os::LightEvent s_SdEjectedEvent; +static nn::os::LightEvent s_SdInsertedEvent; + +const size_t SDMC_EVENT_THREAD_STACK_SIZE = 1024; +nn::os::Thread s_SdmcEjectedEventThread; +nn::os::StackBuffer s_SdmcEjectedEventThreadStack; + +nn::os::Thread s_SdmcInsertedEventThread; +nn::os::StackBuffer s_SdmcInsertedEventThreadStack; + +void (*s_SdEjectedEventFunc)() = NULL; +void (*s_SdInsertedEventFunc)() = NULL; + +void PrintResultIfFailed(nn::Result result, u32 line = 0) +{ + if (result.IsFailure()) + { + if(line != 0) + { + NN_LOG("%s, %d\n", __FILE__, line); + } + NN_DBG_PRINT_RESULT(result); + } +} + +void SdmcEjectedEventThreadFunc() +{ + NN_LOG("********************:SD Ejected Event Thread Start**********************\n"); + + for(;;) + { + s_SdEjectedEvent.Wait(); + NN_LOG("********************:SD Card Ejected**********************\n"); + + if(s_SdEjectedEventFunc != NULL) + { + s_SdEjectedEventFunc(); + } + SdMountManager::ForceUnmount(); + s_SdEjectedEvent.ClearSignal(); + s_SdLogger.Inactivate(); + } +} + +void SdmcInsertedEventThreadFunc() +{ + NN_LOG("********************:SD Inserted Event Thread Start**********************\n"); + + for(;;) + { + s_SdInsertedEvent.Wait(); + NN_LOG("********************:SD Card Inserted*********************\n"); + + if(s_SdInsertedEventFunc != NULL) + { + s_SdInsertedEventFunc(); + } + s_SdInsertedEvent.ClearSignal(); + s_SdLogger.Inactivate(); + } +} + +void InitializeEjectThread() +{ + s_SdEjectedEvent.Initialize(true); + s_SdInsertedEvent.Initialize(true); + nn::fs::RegisterSdmcEjectedEvent(&s_SdEjectedEvent); + nn::fs::RegisterSdmcInsertedEvent(&s_SdInsertedEvent); + + // SDカード抜けを検知するためのスレッド作成 + s_SdmcEjectedEventThread.Start(SdmcEjectedEventThreadFunc, s_SdmcEjectedEventThreadStack); + + // SDカード挿入を検知するためのスレッド作成 + s_SdmcInsertedEventThread.Start(SdmcInsertedEventThreadFunc, s_SdmcInsertedEventThreadStack); + +} +void SetEjectHandler(void (*func)()) +{ + s_SdEjectedEventFunc = func; +} + +void SetInsertHandler(void (*func)()) +{ + s_SdInsertedEventFunc = func; +} + +SdLogger::SdLogger() : m_TryActivate(false), m_Permitted(false) +{ + +} + +SdLogger* GetSdInstance() +{ + return &s_SdLogger; +} + +void SdLogger::Print(const char* fmt, ::std::va_list arg) +{ + Activate(); + if(!m_Permitted) + { + NN_LOG("SD Write Not Permitted\n"); + return; + } + + nn::Result result; + result = SdMountManager::Mount(); + if (result.IsFailure()) + { + PrintResultIfFailed(result, __LINE__); + } + + s32 stringSize; + const size_t STRING_BUFFER_SIZE = 256; + char str[STRING_BUFFER_SIZE]; + + stringSize = nn::nstd::TVSNPrintf(str, sizeof(str), fmt, arg); + + ::std::wstring log(common::SDMC_ROOT_DIRECTORY_PATH); + log += common::LOG_PATHNAME; + + // ディレクトリが無ければ作る + nn::fs::Directory dir; + result = dir.TryInitialize(common::LOG_ROOT_DIRECTORY_PATH); + if(result.IsFailure()) + { + result = nn::fs::TryCreateDirectory(common::LOG_ROOT_DIRECTORY_PATH); + } + + result = sd.TryInitialize(log.c_str(), true); + if (result.IsSuccess()) + { + // 追記する + // サイズ取得 + s64 fileSize; + result = sd.TryGetSize(&fileSize); + if (result.IsSuccess()) + { + // 末尾に移動 + result = sd.TrySetPosition(fileSize); + if (result.IsSuccess()) + { + s32 writeSize; + result = sd.TryWrite(&writeSize, str, stringSize, true); + if (result.IsSuccess()) + { + result = sd.TryFlush(); + if (result.IsFailure()) + { + NN_LOG("SD TryFlush failed\n"); + PrintResultIfFailed(result, __LINE__); + } + } + else + { + NN_LOG("SD TryWrite failed\n"); + PrintResultIfFailed(result, __LINE__); + } + } + else + { + NN_LOG("SD TrySetPosition failed\n"); + PrintResultIfFailed(result, __LINE__); + } + } + else + { + NN_LOG("SD TryGetSize failed\n"); + PrintResultIfFailed(result, __LINE__); + } + } + else + { + NN_LOG("SD TryInitialize failed, %s, %d\n", __FILE__, __LINE__); + PrintResultIfFailed(result, __LINE__); + } + + dir.Finalize(); + sd.Finalize(); + SdMountManager::Unmount(); +} + +void SdLogger::Clear() +{ + Activate(); + if(!m_Permitted) + { + return; + } + + nn::Result result; + SdMountManager::Mount(); + + ::std::wstring log(common::SDMC_ROOT_DIRECTORY_PATH); + log += common::LOG_PATHNAME; + + result = nn::fs::TryDeleteFile(log.c_str()); + if(result.IsFailure()) + { + NN_DBG_PRINT_RESULT(result); + } + + SdMountManager::Unmount(); +} + +void SdLogger::Inactivate() +{ + m_TryActivate = false; + m_Permitted = false; +} + +void SdLogger::Activate() +{ + if(m_TryActivate) + { + return; + } + + nn::Result result; + result = common::SdMountManager::Mount(); + + if (result.IsSuccess()) + { + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(common::AP_SETTING_PATHNAME); + if(result.IsSuccess()) + { + m_Permitted = true; + } + fis.Finalize(); + } + + common::SdMountManager::Unmount(); + m_TryActivate = true; +} + +} // namespace Logger +} // namespace ConsoleBackup + + diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.h new file mode 100644 index 0000000..6d543f2 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdLogger.h @@ -0,0 +1,67 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SdLogger.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef SDLOGGER_H_ +#define SDLOGGER_H_ + +#include + +namespace common +{ + +namespace Logger +{ + +class SdLogger +{ +public: + SdLogger(); + ~SdLogger() {}; + + // SDログに文字列を出力する + void Print(const char* fmt, ::std::va_list arg); + + // SDログを削除する + void Clear(); + + // 内部状態を初期化する。SDカード挿抜時に呼ばれることを期待 + void Inactivate(); + +private: + void Activate(); + + nn::fs::FileOutputStream sd; + bool m_TryActivate; + bool m_Permitted; + NN_PADDING2; + +}; + +// SDカード挿抜用のスレッドを初期化する +void InitializeEjectThread(); + +// SDカードが抜けた時に呼ばれるコールバック +void SetEjectHandler(void (*func)()); + +// SDカードが挿入された時に呼ばれるコールバック +void SetInsertHandler(void (*func)()); + +// 内部で保持しているインスタンスへのポインタを返す +SdLogger* GetSdInstance(); + +} // namespace Logger +} // namespace ConsoleBackup + +#endif /* SDLOGGER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.cpp new file mode 100644 index 0000000..4895529 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.cpp @@ -0,0 +1,67 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SdMountManager.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include "SdMountManager.h" +#include "FileName.h" + +namespace common +{ + +u32 SdMountManager::m_MountCounter = 0; + +SdMountManager::SdMountManager() +{ + + +} + +SdMountManager::~SdMountManager() +{ + +} + +nn::Result SdMountManager::Mount() +{ + nn::Result result = nn::ResultSuccess(); + + if(m_MountCounter == 0) + { + result = nn::fs::MountSdmc(); + } + m_MountCounter++; + + return result; +} + +nn::Result SdMountManager::Unmount() +{ + nn::Result result = nn::ResultSuccess(); + if(m_MountCounter != 0 && --m_MountCounter == 0) + { + result = nn::fs::Unmount(common::SDMC_ARCHIVE_NAME); + } + + return result; +} + +nn::Result SdMountManager::ForceUnmount() +{ + m_MountCounter = 0; + return nn::fs::Unmount(common::SDMC_ARCHIVE_NAME); +} + + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.h new file mode 100644 index 0000000..c4db65b --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdMountManager.h @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SdMountManager.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef SDMOUNTMANAGER_H_ +#define SDMOUNTMANAGER_H_ + +namespace common +{ + +//! @brief SDカードのMount状態を管理するためのクラスです +class SdMountManager +{ +public: + SdMountManager(); + virtual ~SdMountManager(); + + //! @brief マウントが必要ならマウントします。 + static nn::Result Mount(); + //! @brief アンマウントが必要ならアンマウントします。 + static nn::Result Unmount(); + //! @brief 強制的にアンマウントします。 + static nn::Result ForceUnmount(); + +private: + static u32 m_MountCounter; +}; + +} + +#endif /* SDMOUNTMANAGER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.cpp new file mode 100644 index 0000000..3a72428 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.cpp @@ -0,0 +1,252 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SdReaderWriter.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include "SdReaderWriter.h" +#include "SdMountManager.h" +#include "CommonLogger.h" +#include "Aes_define.h" + +#include +#include +#include +#include + +#include + +namespace common +{ + +nn::Result SdReaderWriter::Initialize() +{ + nn::Result result; + + // 初期化済みなら何もしない + if(m_IsInitialized) + { + return nn::ResultSuccess(); + } + + result = SdMountManager::Mount(); + if(result.IsSuccess()) + { + m_IsInitialized = true; + return nn::ResultSuccess(); + } + else + { + return result; + } +} + + +nn::Result SdReaderWriter::Finalize() +{ + nn::Result result; + result = SdMountManager::Unmount(); + + m_IsInitialized = false; + return result; +} + +nn::Result SdReaderWriter::WriteBufCore(const wchar_t* path, void* buf, size_t size) +{ + NN_ASSERT(path != NULL); + NN_ASSERT(size > 0); + + nn::Result result = Initialize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = file.TryInitialize(path, nn::fs::OPEN_MODE_WRITE | nn::fs::OPEN_MODE_CREATE); + + if (result.IsSuccess()) + { + s32 writeSize; + result = file.TryWrite(&writeSize, buf, size, false); + if (result.IsSuccess()) + { + // 何もしない + } + else + { + NN_LOG("SD TryWrite failed\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + } + else + { + NN_LOG("SD TryInitialize failed\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + + return result; +} + +nn::Result SdReaderWriter::WriteBuf(const wchar_t* path, void* buf, size_t size) +{ + nn::Result result; + + result = WriteBufCore(path, buf, size); + NN_UTIL_RETURN_IF_FAILED(result); + + result = file.TryFlush(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + file.Finalize(); + + result = Finalize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + return result; +} + +nn::Result SdReaderWriter::WriteBufWithCmac(const wchar_t* path, void* buf, size_t size) +{ + nn::Result result; + + result = WriteBufCore(path, buf, size); + NN_UTIL_RETURN_IF_FAILED(result); + + nn::crypto::Initialize(); + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + nn::crypto::CalculateSha256(sha256Hash, buf, size); + + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, nn::crypto::Sha256Context::HASH_SIZE, common::cmacKey); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + s32 writeSize; + result = file.TryWrite(&writeSize, cmac, sizeof(cmac), false); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = file.TryFlush(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + file.Finalize(); + + result = Finalize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + return result; + +} + +nn::Result SdReaderWriter::ReadBufCore(const wchar_t* path, void* buf, size_t size, size_t* totalSize) +{ + NN_ASSERT(path != NULL); + NN_ASSERT(size > 0); + + nn::Result result; + + if(!m_IsInitialized) + { + Initialize(); + } + + result = file.TryInitialize(path, nn::fs::OPEN_MODE_READ); + if (result.IsSuccess()) + { + s32 readSize; + result = file.TryRead(&readSize, buf, size); + if (result.IsSuccess()) + { + // TODO バッファを超えるサイズのファイル読み込み + *totalSize = readSize; + } + else + { + NN_LOG("SD TryRead failed\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + } + else + { + NN_LOG("SD TryInitialize failed\n"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + } + + return result; +} + +nn::Result SdReaderWriter::ReadBuf(const wchar_t* path, void* buf, size_t size, size_t* totalSize) +{ + nn::Result result; + + result = ReadBufCore(path, buf, size, totalSize); + NN_UTIL_RETURN_IF_FAILED(result); + + file.Finalize(); + return result; +} + +nn::Result SdReaderWriter::ReadBufWithCmac(const wchar_t* path, void* buf, size_t size, size_t* totalSize) +{ + nn::Result result; + + NN_ASSERT(size > nn::crypto::AES_CMAC_MAC_SIZE); + + result = ReadBufCore(path, buf, size, totalSize); + NN_UTIL_RETURN_IF_FAILED(result); + + file.Finalize(); + // ハッシュが付加されていない + if(*totalSize < nn::crypto::AES_CMAC_MAC_SIZE) + { + return nn::fs::ResultVerificationFailed(); + } + *totalSize -= nn::crypto::AES_CMAC_MAC_SIZE; + + // CMACの検証を行う + nn::crypto::Initialize(); + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + nn::crypto::CalculateSha256(sha256Hash, buf, *totalSize); + + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, nn::crypto::Sha256Context::HASH_SIZE, common::cmacKey); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + if(std::memcmp(reinterpret_cast(buf) + *totalSize, cmac, sizeof(cmac)) != 0) + { + // 無効なファイル + char filename[256]; + std::wcstombs(filename, path, sizeof(filename)); + filename[sizeof(filename) - 1] = '\0'; + COMMON_LOGGER("Verification Failed %s\n", filename); + return nn::fs::ResultVerificationFailed(); + } + + // CMACを0埋め + std::memset(reinterpret_cast(buf) + *totalSize, 0, sizeof(cmac)); + + return result; +} + +void SdReaderWriter::CreateDirectory(const wchar_t* path) +{ + nn::Result result; + + if(!m_IsInitialized) + { + Initialize(); + } + + NN_LOG("Create Directory %ls\n", path); + result = nn::fs::TryCreateDirectory(path); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + result = Finalize(); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.h new file mode 100644 index 0000000..81a10d7 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SdReaderWriter.h @@ -0,0 +1,80 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SdReaderWriter.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef SDWRITER_H_ +#define SDWRITER_H_ + +#include + +namespace common +{ + +//! @brief SDカードに書き込むためのクラスです。 +class SdReaderWriter +{ +public : + SdReaderWriter() : m_IsInitialized(false) {}; + ~SdReaderWriter() {}; + + //! @brief 渡されたバッファからsizeバイト指定されたパス名で書きこみます。CMACが付加されます。 + //! @param[in] path sdmc:で始まる出力パス名。予めディレクトリを作っておく必要があります。 + //! @param[in] buf 入力データへのポインタ + //! @param[in] size 入力データのサイズ + nn::Result WriteBufWithCmac(const wchar_t* path, void* buf, size_t size); + + //! @brief 渡されたバッファへ(size - CMAC)バイト指定されたパス名から読み込みます + //! @param[in] path sdmc:で始まるCMAC付きの入力パス名 + //! @param[in] buf 出力バッファへのポインタ + //! @param[in] size バッファサイズ + //! @param[out] totalSize 読み込んだデータ - CMAC のサイズ + nn::Result ReadBufWithCmac(const wchar_t* path, void* buf, size_t size, size_t* totalSize); + + //! @brief 渡されたディレクトリ名のディレクトリを作成します + void CreateDirectory(const wchar_t* path); + +private: + //! @brief 渡されたバッファからサイズ分指定されたパス名で書きこみます + //! @param[in] path sdmc:で始まる出力パス名。予めディレクトリを作っておく必要があります。 + //! @param[in] buf 入力データへのポインタ + //! @param[in] size 入力データのサイズ + nn::Result WriteBuf(const wchar_t* path, void* buf, size_t size); + + nn::Result WriteBufCore(const wchar_t*path, void* buf, size_t size); + + //! @brief 渡されたバッファへサイズ分指定されたパス名から読み込みます + //! @param[in] path sdmc:で始まる入力パス名 + //! @param[in] buf 出力バッファへのポインタ + //! @param[in] size バッファサイズ + //! @param[out] totalSize 読み込んだデータのサイズ + nn::Result ReadBuf(const wchar_t* path, void* buf, size_t size, size_t* totalSize); + + nn::Result ReadBufCore(const wchar_t* path, void* buf, size_t size, size_t* totalSize); + + //! @brief 初期化します。 + nn::Result Initialize(); + + //! @brief 終了します。 + nn::Result Finalize(); + + nn::fs::FileStream file; + + NN_PADDING3; + bool m_IsInitialized; + +}; + +} + +#endif /* SDWRITER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.cpp new file mode 100644 index 0000000..b04e2ad --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.cpp @@ -0,0 +1,240 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SimplePlayer.cpp + + Copyright (C)2009 Nintendo Co., Ltd. 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include + +#include +#include "SimplePlayer.h" +#include "wave.h" +#include "HeapManager.h" + +namespace common +{ + +namespace +{ + const int nFiles = 4; // 使用できる voice の最大値は 24 + const char* apFileNames[nFiles] = + { + "rom:/ok.wav", + "rom:/ng.wav", + "rom:/cursor.wav", + "rom:/annotation.wav" + }; + + nn::snd::CTR::Voice* apVoice[nFiles]; + nn::snd::CTR::WaveBuffer aBuffer[nFiles]; + WaveFmt fmt[nFiles]; + WaveData data[nFiles]; + u8* apMemory[nFiles]; + + nn::os::CriticalSection s_CriticalSection; + bool s_SoundThreadInitialized = false; + + // サウンドスレッド関連 + const int SOUND_THREAD_STACK_SIZE = 4096; + nn::os::StackBuffer s_SoundThreadStack; + nn::os::Thread threadSound; + bool threadSoundFlag; + void SoundThreadFunc() + { + // サウンド出力をステレオに + nn::snd::SetSoundOutputMode(nn::snd::OUTPUT_MODE_STEREO); + + // マスターボリュームを設定 + nn::snd::SetMasterVolume( 1.0 ); + + NN_LOG("Loading wav files...\n"); + + // ファイルを開く + for (int i = 0; i < nFiles; i++) + { + if (apFileNames[i] == NULL) continue; + + nn::snd::Voice* pVoice = NULL; + + nn::fs::FileReader fileReader; + nn::Result result = fileReader.TryInitialize(apFileNames[i]); + NN_UTIL_PANIC_IF_FAILED(result); + if (::std::strcmp(::std::strrchr(apFileNames[i], '.'), ".wav") == false) + { + // 連続メモリ領域の取得、確認 + apMemory[i] = reinterpret_cast(HeapManager::GetHeap()->Allocate(GetWaveLength(fileReader), 32)); + if (apMemory[i] == NULL) + { + NN_LOG("Failed to allocate continuous memory\n"); + continue; + } + + + // Wave データを読み込み、キャッシュを無効に + data[i].buf = apMemory[i]; + LoadWave(fileReader, &fmt[i], &data[i]); + nn::snd::FlushDataCache(reinterpret_cast(apMemory[i]), data[i].size); + + NN_LOG("%s (%1dch, %5dHz, %2d-bit wav file)\n", + apFileNames[i], fmt[i].channel, fmt[i].sample_rate, fmt[i].quantum_bits); + + pVoice = apVoice[i] = nn::snd::AllocVoice(128, NULL, NULL); + NN_TASSERT_(pVoice); + + nn::snd::SampleFormat format = (fmt[i].quantum_bits == 8) ? + nn::snd::SAMPLE_FORMAT_PCM8 : + nn::snd::SAMPLE_FORMAT_PCM16; + + pVoice->SetChannelCount( fmt[i].channel ); + pVoice->SetSampleFormat( format ); + + nn::snd::InitializeWaveBuffer(&aBuffer[i]); + aBuffer[i].bufferAddress = apMemory[i]; + aBuffer[i].sampleLength = nn::snd::GetSampleLength(data[i].size, format, fmt[i].channel); + aBuffer[i].loopFlag = false; + + fileReader.Finalize(); + + // 音量の設定 + nn::snd::MixParam mix; + mix.mainBus[nn::snd::CHANNEL_INDEX_FRONT_LEFT ] = 0.707f; // メインボリューム (L) + mix.mainBus[nn::snd::CHANNEL_INDEX_FRONT_RIGHT] = 0.707f; // メインボリューム (R) + pVoice->SetMixParam(mix); + pVoice->SetVolume(1.0f); + + // pitch の設定 + pVoice->SetSampleRate(fmt[i].sample_rate); + pVoice->SetPitch(1.0f); + + } + } + + // 再生開始 + for (int i = 0; i < nFiles; i++) + { + if (apFileNames[i] != NULL) + { + apVoice[i]->SetState( nn::snd::Voice::STATE_PLAY ); + } + } + + s_SoundThreadInitialized = true; + + threadSoundFlag = true; + while (threadSoundFlag) + { + nn::snd::WaitForDspSync(); // DSP からのデータ受信を待つ。 + + + s_CriticalSection.Enter(); // メインスレッドとの排他制御 + nn::snd::SendParameterToDsp(); // パラメータを DSP に送信。 + s_CriticalSection.Leave(); // メインスレッドとの排他制御 + } + + // 再生終了 + for (int i = 0; i < nFiles; i++) + { + if (apVoice[i]) + { + nn::snd::FreeVoice(apVoice[i]); + } + } + } +} + +void InitializeSimplePlayer() +{ + NN_LOG("Initialize SimplePlayer\n"); + + nn::Result result; + + const size_t ROMFS_BUFFER_SIZE = 1024 * 64; + static char buffer[ROMFS_BUFFER_SIZE]; + NN_UTIL_PANIC_IF_FAILED( + nn::fs::MountRom(16, 16, buffer, ROMFS_BUFFER_SIZE)); + + // dsp, snd の初期化 + result = nn::dsp::Initialize(); + NN_UTIL_PANIC_IF_FAILED(result); + result = nn::dsp::LoadDefaultComponent(); + NN_UTIL_PANIC_IF_FAILED(result); + result = nn::snd::Initialize(); + NN_UTIL_PANIC_IF_FAILED(result); + + s_CriticalSection.Initialize(); + + // サウンドスレッドを起動(DSP 割り込みイベント待ち) + threadSound.Start(SoundThreadFunc, s_SoundThreadStack); +} + +void PlaySound(SoundEffect index) +{ + NN_ASSERT(index < SOUND_MAX); + + while(!s_SoundThreadInitialized) + { + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(1)); + } + + nn::snd::CTR::Voice* pVoice = apVoice[index]; + + if (!pVoice->IsPlaying()) + { + nn::snd::InitializeWaveBuffer(&aBuffer[index]); + aBuffer[index].bufferAddress = apMemory[index]; + nn::snd::SampleFormat format = (fmt[index].quantum_bits == 8) ? nn::snd::SAMPLE_FORMAT_PCM8 + : nn::snd::SAMPLE_FORMAT_PCM16; + + aBuffer[index].sampleLength = nn::snd::GetSampleLength(data[index].size, format, fmt[index].channel); + aBuffer[index].loopFlag = false; + + pVoice->AppendWaveBuffer(&aBuffer[index]); + NN_LOG("[voice%d] %s (pitch = %f)\n", + index, + (pVoice->GetState() == nn::snd::Voice::STATE_PAUSE ? "pause" : "play "), + pVoice->GetPitch()); + } +} + +void FinalizeSimplePlayer() +{ + nn::Result result; + + // サウンドスレッドの破棄 + threadSoundFlag = false; + threadSound.Join(); + + // SND の終了処理 + result = nn::snd::Finalize(); + NN_UTIL_PANIC_IF_FAILED(result); + + s_CriticalSection.Finalize(); + + // DSP の終了処理 + result = nn::dsp::UnloadComponent(); + NN_UTIL_PANIC_IF_FAILED(result); + nn::dsp::Finalize(); + + + NN_LOG("Finalize SimplePlayer\n"); + +} + +} // namespace ConsoleBackup +/*---------------------------------------------------------------------------* + End of file + *---------------------------------------------------------------------------*/ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.h new file mode 100644 index 0000000..2f73c78 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/SimplePlayer.h @@ -0,0 +1,44 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: SimplePlayer.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef SIMPLEPLAYER_H_ +#define SIMPLEPLAYER_H_ + +namespace common +{ + +typedef enum SoundEffect +{ + SOUND_OK, + SOUND_NG, + SOUND_CURSOR, + SOUND_ANNOTATION, + SOUND_MAX + +} SoundEffect; + +// サウンドを鳴らすための初期化を行う +void InitializeSimplePlayer(); + +// 終了処理を行う +void FinalizeSimplePlayer(); + +// サウンドを鳴らす +void PlaySound(SoundEffect index); + +} // namespace common + + +#endif /* SIMPLEPLAYER_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.cpp new file mode 100644 index 0000000..45082ec --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.cpp @@ -0,0 +1,333 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Util.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "Util.h" +#include "FileName.h" +#include "CommonLogger.h" +#include "HeapManager.h" + + +namespace common +{ + +Util::Util() : + m_BatteryRemain(100), m_CanReadSerialNumber(false), m_CanReadIvs(false) +{ + + +} + +Util::~Util() +{ + +} + +void Util::Initialize() +{ + // friendsの初期化 + nn::Result result = nn::friends::detail::Initialize(); + + // mcuの初期化 + nn::mcu::CTR::InitializeHwCheck(&m_McuSession); + mp_Mcu = new nn::mcu::CTR::HwCheck(m_McuSession); + + // 完全性検証SEEDの取得 + result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + if (result.IsSuccess()) + { + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(common::IVS_NAND_PATHNAME); + if (result.IsSuccess()) + { + s64 fileSize = fis.GetSize(); + s32 ret; + void* addr = NULL; + addr = common::HeapManager::GetHeap()->Allocate(fileSize); + if (addr != NULL) + { + mp_Ivs = addr; + m_SizeofIvs = fileSize; + result = fis.TryRead(&ret, addr, fileSize); + if (result.IsSuccess()) + { + m_CanReadIvs = true; + } + // 後でIVSを参照するのでFreeしない + } + } + fis.Finalize(); + } + // 一旦アンマウントしておく + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + + + // シリアルナンバーの取得 + std::memset(m_SerialNo, '\0', + nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN); + result = nn::cfg::CTR::system::GetSerialNo(m_SerialNo); + if(result.IsSuccess()) + { + m_CanReadSerialNumber = true; + } + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + AddCheckDigit(reinterpret_cast(m_SerialNo)); + + + // デバイスIDの取得 + result = nn::ps::CTR::GetDeviceId(&m_DeviceId); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // リージョンの取得 + m_Region = nn::cfg::CTR::GetRegion(); + + // バージョンの取得 + common::GetSystemVersion(&m_VerData, m_Region); + + // MACアドレスの取得 + nn::nwm::Mac mac; + + result = nn::nwm::GetMacAddress(mac); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + mac.GetString(m_MacAddress); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + // フレンドコードの取得 + nn::friends::CTR::FriendKey friendKey; + result = nn::friends::CTR::GetMyFriendKey(&friendKey); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + m_FriendCode = nn::friends::CTR::FriendKeyToFriendCode(friendKey); +} + +void Util::Finalize() +{ + nn::mcu::CTR::FinalizeHwCheck(&m_McuSession); + nn::friends::detail::Finalize(); +} + +// NULL終端されたシリアルナンバーを受け取る +// NULL終端された場所にチェックデジットを付加して新たにNULL終端する +void Util::AddCheckDigit(char* serial) +{ + size_t len = std::strlen(serial); + + u8 digit = 0; + bool odd = true; + for(u8 i = len - 1; i > 0 && std::isdigit(serial[i]); i--) + { + if(odd) + { + digit += (serial[i] - '0') * 3; + } + else + { + digit += (serial[i] - '0'); + } + odd = !odd; + } + + if(digit % 10 != 0) + { + serial[len] = 10 - (digit % 10) + '0'; + } + else + { + serial[len] = '0'; + } + + serial[len + 1] = '\0'; +} + +// IVSからセーブデータディレクトリ名を生成する +void Util::GetSaveDataDirectoryRoot(::std::string& sysSaveRoot, void* ivs, size_t size) +{ + nn::Result result; + using namespace nn::dbg; + + const size_t SEED_SIZE = 16; + bit8 hash[nn::crypto::Sha256Context::HASH_SIZE]; + const size_t SYS_SAVE_ROOT_LENGTH = 16; + char rootHash[SYS_SAVE_ROOT_LENGTH]; + char rootStr[SYS_SAVE_ROOT_LENGTH * 2 + 1]; + + // 最後の16バイトのハッシュを使う + nn::crypto::CalculateSha256(hash, &reinterpret_cast (ivs)[size - SEED_SIZE], SEED_SIZE); + + for (u8 i = 0; i < SEED_SIZE / 4; i++) + { + for (u8 j = 0; j < SEED_SIZE / 4; j++) + { + rootHash[i * 4 + j] = hash[i * 4 + 3 - j]; + } + } + + // 得られたハッシュから文字列を生成 + for (s32 k = 0; k < SEED_SIZE; k++) + { + for (s32 i = 6; i < 8; ++i) + { + bit32 n = (rootHash[k] >> ((7 - i) * 4)) & 0xf; + NN_TASSERT_(n < 16); + rootStr[i - 6 + k * 2] = static_cast (n < 10 ? '0' + n : 'a' + (n - 10)); + } + } + rootStr[SYS_SAVE_ROOT_LENGTH * 2] = '\0'; + + // セーブデータディレクトリ名を保存する + sysSaveRoot = ::std::string(rootStr); + + NN_LOG("%s\n", sysSaveRoot.c_str()); +} + +bool Util::IsAdapterConnected() +{ + static nn::os::Tick last(0); + static bool lastResult = false; + const u8 UPDATE_INTERVAL = 100; + + nn::os::Tick now = nn::os::Tick::GetSystemCurrent(); + if(last == 0 || (now - last).ToTimeSpan().GetMilliSeconds() > UPDATE_INTERVAL) + { + u8 buf; + nn::Result result = mp_Mcu->ReadByReceive(nn::drivers::mcu::CTR::MCU_PERIPHERAL_STATUS_ADDR, &buf, sizeof(buf)); + if(result.IsSuccess()) + { + last = now; + lastResult = buf & nn::drivers::mcu::CTR::MCU_STATUS_ADAPTER_MASK; + } + } + return lastResult; + +} + +bool Util::IsBatteryLower() +{ + m_BatteryRemain = GetBatteryRemain(); + return m_BatteryRemain <= 10; +} + +bool Util::CanReadIVS() +{ + return m_CanReadIvs; +} + +bool Util::CanReadSerialNumber() +{ + return m_CanReadSerialNumber; +} + +void Util::GetSerialNumber(u8** serial, size_t* size) +{ + *serial = m_SerialNo; + *size = nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN; +} + +u8* Util::GetSerialNumber() +{ + return m_SerialNo; +} + + +void Util::GetIvs(void** ivs, size_t* size) +{ + *ivs = mp_Ivs; + *size = m_SizeofIvs; +} + +bit32 Util::GetDeviceId() +{ + return m_DeviceId; +} + +u8 Util::GetCupMajorVersion() +{ + return m_VerData.cup.majorVersion; +} + +u8 Util::GetCupMinorVersion() +{ + return m_VerData.cup.minorVersion; +} + +u8 Util::GetCupMicroVersion() +{ + return m_VerData.cup.microVersion; +} + +u8 Util::GetNupVersion() +{ + return m_VerData.nup.majorVersion; +} + +nn::Handle Util::GetMcuHandle() +{ + return m_McuSession; +} + +u32 Util::GetBatteryRemain() +{ + u8 remain; + mp_Mcu->GetBatteryRemain(&remain); + return remain; +} + +u64 Util::GetInfraDeviceId() +{ + bit64 infraDeviceId; + infraDeviceId = m_DeviceId + common::INFRA_DEVICE_ID_OFFSET; + return infraDeviceId; +} + +u64 Util::GetFriendcode() +{ + return m_FriendCode; +} + +char8* Util::GetMacAddress() +{ + return m_MacAddress; +} + +nn::cfg::CTR::CfgRegionCode Util::GetRegion() +{ + return m_Region; +} + +const char* Util::GetRegionCodeA3() +{ + return nn::cfg::GetRegionCodeA3(m_Region); +} + +void Util::GetVersionData(common::VerDef* version) +{ + *version = m_VerData; +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.h new file mode 100644 index 0000000..17151c0 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/Util.h @@ -0,0 +1,152 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: Util.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef UTIL_H_ +#define UTIL_H_ + +#include +#include +#include +#include +#include + +#include "VersionDetect.h" + +namespace common +{ + +class Util +{ +public: + Util(); + virtual ~Util(); + + void Initialize(); + void Finalize(); + + // シリアルナンバーにモジュラス10 ウェイト3・1(M10W31)でチェックデジットを付加する + static void AddCheckDigit(char* serial); + + // IVSから計算されるセーブデータディレクトリ名を取得する + static void GetSaveDataDirectoryRoot(::std::string& sysSaveRoot, void* ivs, size_t size); + + // ACアダプタが接続されているかどうか + bool IsAdapterConnected(); + + // バッテリ残量が10%未満かどうか + bool IsBatteryLower(); + + // IVSを読み取れるかどうか + bool CanReadIVS(); + + // シリアルナンバーを読み取れるかどうか + bool CanReadSerialNumber(); + + // シリアルナンバーを取得する + void GetSerialNumber(u8** serial, size_t* size); + + // シリアルナンバーを返す + u8* GetSerialNumber(); + + // IVSを取得する + void GetIvs(void** ivs, size_t* size); + + // 32bitデバイスIDを返す + bit32 GetDeviceId(); + + // CUPメジャーバージョンを返す + u8 GetCupMajorVersion(); + + // CUPマイナーバージョンを返す + u8 GetCupMinorVersion(); + + // CUPマイクロバージョンを返す + u8 GetCupMicroVersion(); + + // NUPバージョンを返す + u8 GetNupVersion(); + + // MCUプロセスに接続するためのハンドルを返す + nn::Handle GetMcuHandle(); + + // バッテリ残量を0~100で返す + u32 GetBatteryRemain(); + + // 64bitインフラデバイスIDを返す + u64 GetInfraDeviceId(); + + // フレンドコードを返す + u64 GetFriendcode(); + + // MACアドレスを返す + char8* GetMacAddress(); + + // リージョンコードを返す + nn::cfg::CTR::CfgRegionCode GetRegion(); + + // リージョンコードを3文字のアルファベットに置き換えた文字列を返す + const char* GetRegionCodeA3(); + + // バージョン情報を取得する + void GetVersionData(common::VerDef* version); + + +private: + NN_PADDING4; + // フレンドコード + u64 m_FriendCode; + + // バージョン情報 + common::VerDef m_VerData; + + // mcu接続のためのハンドル + nn::Handle m_McuSession; + + // デバイスID + bit32 m_DeviceId; + + // IVSへのポインタ + void* mp_Ivs; + + // IVSのサイズ + size_t m_SizeofIvs; + NN_PADDING4; + + // MCUへのポインタ + nn::mcu::CTR::HwCheck* mp_Mcu; + + // リージョン + nn::cfg::CTR::CfgRegionCode m_Region; + + // バッテリ残量 + u8 m_BatteryRemain; + + // シリアルナンバーが読めるかどうか + bool m_CanReadSerialNumber; + + // IVSが読めるかどうか + bool m_CanReadIvs; + + // シリアルナンバー + u8 m_SerialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + + // MACアドレス + char8 m_MacAddress[nn::nwm::Mac::MAC_STRING_SIZE]; + NN_PADDING3; +}; + +} + +#endif /* UTIL_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.cpp new file mode 100644 index 0000000..f028569 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.cpp @@ -0,0 +1,120 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: VersionDetect.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include + +#include "VersionDetect.h" +#include "HeapManager.h" +#include "CommonLogger.h" + +namespace common +{ + +void GetCupVersion(nn::pl::CTR::CardUpdateVersion* cup, nn::cfg::CTR::CfgRegionCode region) +{ + nn::Result result; + const size_t BUF_SIZE = 1024; + u8 buf[BUF_SIZE]; + // CUPバージョン + { + result = nn::fs::MountContent("cver:", nn::fs::MEDIA_TYPE_NAND, common::cCupVerId[region], 0, 1, 1, buf, + BUF_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(L"cver:/version.bin"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + s64 fileSize = fis.GetSize(); + NN_LOG("version.bin size = %lld\n", fileSize); + s32 ret; + void* addr = NULL; + addr = common::HeapManager::GetHeap()->Allocate(fileSize); + if (addr != NULL) + { + result = fis.TryRead(&ret, addr, fileSize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + nn::pl::CTR::CardUpdateVersion* ver_buf = reinterpret_cast (addr); + + std::memcpy(cup, ver_buf, sizeof(nn::pl::CTR::CardUpdateVersion)); + } + common::HeapManager::GetHeap()->Free(addr); + } + } + fis.Finalize(); + + nn::fs::Unmount("cver:"); + } + +} + +void GetNupVersion(nn::pl::CTR::NetworkUpdateVersion* nup, nn::cfg::CTR::CfgRegionCode region) +{ + nn::Result result; + const size_t BUF_SIZE = 1024; + u8 buf[BUF_SIZE]; + + // NUPバージョン + { + result = nn::fs::MountContent("nver:", nn::fs::MEDIA_TYPE_NAND, common::cNupVerId[region], 0, 1, 1, buf, + BUF_SIZE); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(L"nver:/version.bin"); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + s64 fileSize = fis.GetSize(); + NN_LOG("version.bin size = %lld\n", fileSize); + s32 ret; + void* addr = NULL; + addr = common::HeapManager::GetHeap()->Allocate(fileSize); + if (addr != NULL) + { + result = fis.TryRead(&ret, addr, fileSize); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if (result.IsSuccess()) + { + nn::pl::CTR::NetworkUpdateVersion* ver_buf = + reinterpret_cast (addr); + + std::memcpy(nup, ver_buf, sizeof(nn::pl::CTR::NetworkUpdateVersion)); + } + common::HeapManager::GetHeap()->Free(addr); + } + } + + fis.Finalize(); + nn::fs::Unmount("nver:"); + } + +} + +void GetSystemVersion(common::VerDef* mVerData, nn::cfg::CTR::CfgRegionCode region) +{ + GetCupVersion(&mVerData->cup, region); + GetNupVersion(&mVerData->nup, region); +} + +} + diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.h new file mode 100644 index 0000000..9b41b56 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/VersionDetect.h @@ -0,0 +1,31 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: VersionDetect.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef VERSIONDETECT_H_ +#define VERSIONDETECT_H_ + +#include +#include "common_Types.h" + +namespace common +{ + +// リージョンコードに基づいてバージョン情報を取得する +void GetSystemVersion(common::VerDef* mVerData, nn::cfg::CTR::CfgRegionCode region); + +} + + +#endif /* VERSIONDETECT_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/common_Types.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/common_Types.h new file mode 100644 index 0000000..e36889c --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/common_Types.h @@ -0,0 +1,121 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: common_Types.h + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef COMMON_TYPES_H_ +#define COMMON_TYPES_H_ + +#include +#include +#include +#include +#include +#include + +#include +#include + +namespace common +{ + +const u32 CONSOLE_WIDTH = 38; +const u32 CONSOLE_HEIGHT = 24; +const u32 CONSOLE_MAX_LINE = 1000; + + +const u32 NTR_WIFI_SETTING_SIZE = 0x400; // NTR Wifi 設定のサイズ +const u32 TWL_WIFI_SETTING_SIZE = 0x600; // TWL Wifi 設定のサイズ + +const u64 INFRA_DEVICE_ID_OFFSET = 0x400000000; + +// NOR領域のみにある設定データ用構造体 +struct NtrNorData +{ + nn::cfg::CTR::NtrConfig ntrConfig; + u8 TwlWiFiSetting[TWL_WIFI_SETTING_SIZE]; + u8 NtrWiFiSetting[NTR_WIFI_SETTING_SIZE]; +}; + +struct CfgCountryLanguage +{ + enum nn::cfg::CTR::CfgCountryCode country; + enum nn::cfg::CTR::CfgLanguageCode language; + NN_PADDING1; +}; + +struct VerDef +{ + nn::pl::CTR::CardUpdateVersion cup; + nn::pl::CTR::NetworkUpdateVersion nup; +}; + +// CALに依存するCFGパラメータ +struct CfgCalData +{ + nn::cfg::CTR::detail::TouchPanelCfgData touchPanelCfgData; + nn::cfg::CTR::detail::LcdFlickerCfgData lcdFlickerCfgData; + nn::cfg::CTR::detail::FcramCfgData fcramCfgData; + nn::cfg::CTR::detail::RtcCfgData rtcCfgData; + nn::cfg::CTR::detail::GyroscopeCfgData gyroscopeCfgData; + nn::cfg::CTR::detail::AccelCfgData accelCfgData; + nn::cfg::CTR::detail::CodecCfgData codecCfgData; + nn::cfg::CTR::detail::McuSlideVolumeRangeCfgData mcuSlideVolumeRangeCfgData; + NN_PADDING2; + +}; + +// TODO:リージョン追加時に範囲外アクセスにならないよう注意 +const nn::ProgramId cCupVerId[] = +{ + nn::pl::CTR::SHAREDDATA_TITLEID_CUP_VERSION_JP, + nn::pl::CTR::SHAREDDATA_TITLEID_CUP_VERSION_US, + nn::pl::CTR::SHAREDDATA_TITLEID_CUP_VERSION_EU, +}; + +const nn::ProgramId cNupVerId[] = +{ + nn::pl::CTR::SHAREDDATA_TITLEID_NUP_VERSION_JP, + nn::pl::CTR::SHAREDDATA_TITLEID_NUP_VERSION_US, + nn::pl::CTR::SHAREDDATA_TITLEID_NUP_VERSION_EU, +}; + +// SDに出力するデータのヘッダ +struct BackupDataHeader +{ + s64 size; // パディングを含まないファイルサイズ + NN_PADDING4; + NN_PADDING4; +}; + +// SDから読み込むファイルリストのエントリ +struct ImportDataEntry +{ + std::string fileName; + NN_PADDING3; + bool isDirectory; +}; + +typedef std::vector ImportDataList; + +// TWLセーブデータリストのエントリ +struct SavePathInfo +{ + std::wstring name; + NN_PADDING3; + bool isDirectory; +}; + +} + +#endif /* COMMON_TYPES_H_ */ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.cpp new file mode 100644 index 0000000..b262ba9 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.cpp @@ -0,0 +1,181 @@ +#include +#include +#include +#include "configLoader.h" + +namespace common +{ + +Result ConfigFileLoader::Initialize(const wchar_t* fileName, void* buffer, const size_t bufferSize) +{ + s64 fileSize; + FileInputStream fi; + NN_UTIL_RETURN_IF_FAILED(fi.TryInitialize(fileName)); + NN_UTIL_RETURN_IF_FAILED(fi.TryGetSize(&fileSize)); + + // NULL終端ぶん読めるサイズを減らす + if (fileSize > bufferSize - sizeof(wchar_t)) + { + NN_TLOG_("Too Large File\n"); + return Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_TOO_LARGE); + } + + m_Buffer = static_cast(buffer); + NN_UTIL_RETURN_IF_FAILED(fi.TryRead(&m_UsedBufferSize, m_Buffer, fileSize)); + NN_LOG("config size = %d\n", m_UsedBufferSize); + return ParseData(); +} + +void ConfigFileLoader::Finalize() +{ + m_Buffer = 0; + m_ParamNum = 0; +} + +Result ConfigFileLoader::ParseData() +{ + if (!m_Buffer) + { + return Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_INVALID_STATE, nn::Result::MODULE_COMMON, nn::Result::DESCRIPTION_NOT_INITIALIZED); + } + + int pos = 0; + + // ビッグエンディアンでないことを確認 + NN_ASSERTMSG(m_Buffer[0] != 0xfffe, "Invalid Config File's Endian\n"); + + if (m_Buffer[0] == 0xfeff) + { + // UTF-16 BOMの調整 + pos++; + } + + m_ParamNum = 0; + m_ParamName[m_ParamNum] = &(m_Buffer[pos]); + m_ParamValue[m_ParamNum] = L""; + m_Buffer[m_UsedBufferSize / sizeof(wchar_t)] = L'\0'; // NULL終端しておく + + // ダブルクウォート中なら : も文字として読み取る + bool inEscape = false; + // # で行末までコメント + bool inComment = false; + // : で行頭から:までがkey、:から行末までがvalue + bool inSettingKeyValue = false; + + while (pos < m_UsedBufferSize / sizeof(m_Buffer[0])) + { + switch (m_Buffer[pos]) + { + case L'"': + { + inEscape = !inEscape; + } + break; + + case L'#': + { + inComment = true; + } + break; + + case L':': + { + if (inEscape || inComment) + { + break; + } + + if (inSettingKeyValue) + { + break; + } + else + { + inSettingKeyValue = true; + } + m_Buffer[pos] = L'\0'; + m_ParamValue[m_ParamNum++] = &(m_Buffer[pos + 1]); + + } + + break; + case L'\r': + case L'\n': + { + if (inComment) + { + inComment = false; + } + if (inSettingKeyValue) + { + inSettingKeyValue = false; + } + + m_Buffer[pos] = L'\0'; + m_ParamName[m_ParamNum] = &(m_Buffer[pos + 1]); + m_ParamValue[m_ParamNum] = L""; + } + break; + + } + + if (PARAM_MAX_NUM <= m_ParamNum) + { + NN_TLOG_("Too Many Params\n"); + return Result(nn::Result::LEVEL_FATAL, nn::Result::SUMMARY_OUT_OF_RESOURCE, nn::Result::MODULE_COMMON, + nn::Result::DESCRIPTION_TOO_LARGE); + } + pos++; + } + + return ResultSuccess(); +} + +s32 ConfigFileLoader::SearchParamName(const wchar_t *paramName) +{ + if (!m_Buffer) + { + NN_TLOG_("ConfigFileLoader not initialized.\n"); + return -1; + } + + for (s32 i = 0; i < m_ParamNum; i++) + { + if (wcscmp(m_ParamName[i], paramName) == 0) + { + return i; + } + } + return -1; +} + +const wchar_t *ConfigFileLoader::ReadAsWChar(const wchar_t *paramName) +{ + s32 idx = SearchParamName(paramName); + if (idx < 0) + { + NN_LOG("Unknown Parameter Name %ls\n", paramName); + } + return (idx < 0) ? NULL : m_ParamValue[idx]; +} + +const char *ConfigFileLoader::ReadAsChar(const wchar_t *paramName) +{ + memset(m_ReadCharBuffer, 0, sizeof(m_ReadCharBuffer)); + const wchar_t *value = ReadAsWChar(paramName); + if(value == NULL) + { + return NULL; + } + wcstombs(m_ReadCharBuffer, value, sizeof(m_ReadCharBuffer)); + // NULL終端する + m_ReadCharBuffer[sizeof(m_ReadCharBuffer) - 1] = '\0'; + return m_ReadCharBuffer; +} + +int ConfigFileLoader::ReadAsInteger(const wchar_t *paramName) +{ + return atoi(ReadAsChar(paramName)); +} + +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.h new file mode 100644 index 0000000..67e1edf --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/configLoader.h @@ -0,0 +1,78 @@ +#ifndef NN_CONFIG_LOADER_H_ +#define NN_CONFIG_LOADER_H_ + + +namespace common +{ + using namespace nn; + using namespace nn::fs; + using namespace std; + +class ConfigFileLoader +{ +private: + static const int PARAM_VALUE_MAX_STRING_LENGTH = 128; + static const int PARAM_MAX_NUM = 64; + + char m_ReadCharBuffer[PARAM_VALUE_MAX_STRING_LENGTH]; + wchar_t *m_ParamName[PARAM_MAX_NUM]; + wchar_t *m_ParamValue[PARAM_MAX_NUM]; + wchar_t *m_Buffer; + + s32 m_UsedBufferSize; + s32 m_ParamNum; + +public: + ConfigFileLoader() : m_Buffer(0), m_UsedBufferSize(0), m_ParamNum(0) + { + } + +/* + @brief ConfigFileLoader を初期化します. + + 使用するファイルが存在するアーカイブは,あらかじめマウントしておく必要があります. + 読み込みに使用するバッファを確保し,引数 buffer に与える必要があります. + Finalize を呼ぶまでこのバッファは開放しないでください. + + 読み込ませることのできるフォーマット + ・エンコーディング:UTF-16 + ・バイトオーダ  :リトルエンディアン + ・改行記号    :不問 + + 半角コロンを含む行のみパラメータ記述行として読み込み,含まない行は無視します. + 半角コロンより前の文字はすべてパラメータ名として取得し, + 半角コロンより後の文字はすべてパラメータの値として取得します. + ParameterName : ParameterValue; + と記述すると + パラメータ名は L"ParameterName " + パラメータ値は L" ParameterValue;" + となります. + + @param[in] fileName 設定ファイル名 + @param[in] buffer ファイル読み込み用のバッファ + @param[in] bufferSize 上記 buffer の大きさ + + @return 結果を返します. + +*/ + Result Initialize(const wchar_t* fileName, void* buffer, const size_t bufferSize); + void Finalize(); + + // スレッドセーフです. + const wchar_t *ReadAsWChar(const wchar_t *paramName); + + // スレッドセーフではありません. + const char *ReadAsChar(const wchar_t *paramName); + + // スレッドセーフです. + int ReadAsInteger(const wchar_t *paramName); + +private: + Result ParseData(); + s32 SearchParamName(const wchar_t *paramName); +}; + +} + + +#endif // NN_CONFIG_LOADER_H_ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/annotation.wav b/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/annotation.wav new file mode 100644 index 0000000000000000000000000000000000000000..b64f77b43ac9f34d7cd61d8e055e40aee4ba1e2b GIT binary patch literal 28636 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 literal 0 HcmV?d00001 diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/cursor.wav b/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/cursor.wav new file mode 100644 index 0000000000000000000000000000000000000000..85765b3dead4eccac6cd33c601a68cd55dadd745 GIT binary patch literal 29996 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 X9RfQ9b_nbc*dee(V28l}l)(Q2mpGp_ literal 0 HcmV?d00001 diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/lc.bcfnt b/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/lc.bcfnt new file mode 100644 index 0000000000000000000000000000000000000000..28d1db0fe06bc5666eab4319d4c58b524f31b7df GIT binary patch literal 16840 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 G#Qz^H@u2nq literal 0 HcmV?d00001 diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/nnfont_RectDrawerShader.shbin b/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/nnfont_RectDrawerShader.shbin new file mode 100644 index 0000000000000000000000000000000000000000..4290c2ccf471f95efa5505da684e57bb896f592b GIT binary patch literal 964 zcmXw&PfQa*6vkhtv@8qQf(W$0cDr~$4u%*mdSSMy2_c(xgQOvZL^e=^Nd+rj? zf!m|k^xk|;KQmd=Gg;rwntN{FTyUv>Zik)aJ8tKa^_prt68->UeLT3*KNnal^Ao@J zx|sGT$F#>6n6`hJX@iU5+wMIc4SJT7p`tT{y&o)M{Q*B@H0{t44_Ov^%v;QaKIaje zf)ee@c^~=Vuot?+-aFVgmri+@1Lwdw!9RH`56*-0g8%Sn1Uv#B0grm@8Z{F~xn=f> z7VT*4|NiIgLxWzrM)s3yn7>_`w!;Fr04@kF+bt7pf=$5-c2oox!9~I7FSA^FLrpu9 zeb();IE6e%-a~%ZZW&+$YzW4D^pLbX+p$)B$GQ`UGd4wBYfLsWaMs_a8=cT6qtw9f zrP`3vai;V*)~ANzbVHZ(Qv-^1o|3#4*IA9%H&0dF-B@>G{rXwOab4tor5BTOefUu6 zkAjLX>?;o9baY~-04Cne z5o{2~WE2j~z&JXD$r(g{F#w>1tSwm75JUVYhPcoqJke(gU!iI0klG7hjNAUL4XSRe ON!_m0@0b0$kN7{x%f}r6 literal 0 HcmV?d00001 diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/ok.wav b/tags/ConsoleDataMigration/1stNUP_2/sources/common/romfiles/ok.wav new file mode 100644 index 0000000000000000000000000000000000000000..bf5149fdbf4e7e1e1cbd4260c707d719eca447a2 GIT binary patch literal 158700 zcmW(+b$Aoq)7@;6jk{Y@7o-9dcb6CV;qLD4?o!+xiWVzU+_khw-Mw+Q-FPs=bo84b7u6Afde&5Kwv_j@dM^BTN}v+000MoK=gP3I5-gp5CAqXch=fjUs}G& z!tP;Lv76X2>@2nlTaS&#CSxP9@z@+}F}4C*iA}-gVq3927=pR5O~7*C5AX$`;Q-tv z+#cL=us>)3-+}qyRq!~t2>cFS03-1>@HKb@+=`oxn+l8uw3zDuZC0W%N(l`N$%0FQ zalv&#EHENS49pDl_uuzx{R0B?gAapgp{1d5p`)R`=o0iHmV?a$dw?JDyYQ_Djre6m z7V#&kC#fCf8abOBPrgcuBRwUhlZKMNkd&l55Rvd6AB*GQ0+<&=!r^dIXh!I;&*R(W zVR_$p`gnhNMtIx0|GA&QOOb43vU`!&=2iNS_>cSDepjGRFc@ZFXYf<-M&f?rJjhS9 zk(QHM(Kb@2GWOD6(oHm&+Lu~OZ9^@hacIY=YRU}AO%#GQTz8-|5Db&B>A}okiszfB z#&rXBxL(7pU=z%BBF-PS-}bHcZ4Mc%hc)h9p7|cHr_npx*AxD4HRBBb*~p$$CqF%N4SB;t`@=lJBCEyhYr#+$o%N>S@XlFcBPxOT~@yfAMee zkh~I0S8JT+vzD)UqV2DHq3^HD*3VIUG>aO>HTBWu>K7TxjqU6`99<9?x#OPZ;ovB^ z15hmVj#B-iwurKW%wV*l&m-rO4wAJbFKHI3J9P`?4sHW3f%FLaPFP3iO)7;};l|^x z6BZEeF!JaLq&H9@RZP8)+lyNR_5nkjrVk937y_sm6>9!Mkd)PBsd!n)Kp)9}nlvqsy#m@x|{I4}4! zAP(w+9YPwQ07xe~2}>F0=vzn>lA8O2gX6l`h5S>z)*QeF;sC9Q%wk9CpRNIFO= zz`w)q@<#ZizE{4Oz^*{EnQ!f5++*5MzofBe6VhDKaIOi|_0=C&L7JE9Xzh1R58W-t z4(ABVb}QZU&eH)H3haQoLVS*peTDOYJyek?OOjugauc+%FX9iy{*3(`oe}*uazk6F z^`-b-u`8nwMYb0Z`0Y4-*-PnJv=zi?ViNS2*arE9EO61`L*|2)4Th7(jQYWiWsU2a zw>I={df7Zy{i~*;?xL!rW`Ihi_Ua}YnjBZ1Buk3b?fMQQ?vI{o;&WnA3vwR;v%zUC z$elqMN*Pa%BroS4<@9Os1&=Y8p520Zk+c=mQ`BNgHy|EBsR>j8X*D#O^blHwXW++@ zUPDU>GQuUQgK~yAfVhhkL7GNrML5jLVU82v`2VO8)Z7*ut)MT&o3tWoGc*m#p0-68 zRG1~`!(GnF6x`+0SPPifX$iCy;k=6> zU2E)l&Qx23?uu%cM%YYg*i-vK-M=}yS<(2ZadX3=+WcCT@wJI)#7v{i9c*P5ha=q* z<(lkapk2IA!ryUja;@Kqt3gdfCT<#eFcG8n0e%vGQwGuRk+UfG=@V#|p+)$%Bo_FI zOb7X-&R8wCn!JI^09Mn>a2*+R{1o8``fmn#MRtxyD??Ac%KM zUhw#mZ<2>monoH1G0D;r2FsQwmT{&=4H3+U?ZMios9~Y9hr|ZNpeYt3|*Raa~qpqk^|Y#i*&S5y2<(~H0qD8+~mbk92U# zklWfNx)sKS26hX&3~cO*#_-e-f1pKRwW3C^FcF5w?I zHaM4XlcnNC(Yx@4yt9h$!l%)lBj+TQ$ElJpO1H*-i2m5BQzS28ZA@|8#)!?z;)uI) zgXl54hcK_@%@?8rs2@XbP=jqQ@rMH;F0?oJ#;dy_U(^%KK%>{yTRYuyvU!Kashz3w z>yvd2*2xC1^Q5acR-hGlFB%fVG@Tu*GW8)GG;2vA{VhUUSVd=9?cgrBJHhUNf! z(WjWR<5=Jj(Y267_@8SXy}~vZ;+x;#2H75Bt81S)*y;r?tP!^K)u}8K)e|j%VTonB zdw_SV>#wcJ7Y?lS9Sn5E_Tr+cJxR+W6x_w)gY3Sty@EHqA$(En6?u2Lm4994|UJ!b1(YqgLPPnuUk5uuMJ)A@81KKgA^YxkKmGyAh zx0=eb%}v)Dw(A-jx+344T}?}@>6W65Qq(-oHDRf2u*l7wMD5DnMOcS>5%@(u?OO>HSbwp1 zAc^Fz=5eS_-z7B9oEZ9|pBmQLHaZ)%<(_EQ9av{`c;9_~8yX(}$wb`E#Y zs^jhRHP9ulckGnVKk+4CsMJr0itfovy>1#)fx7@Dz}whxuGedc2aF}!Owr> z$|3)%t3p3=v@8C+)GYfs#j(0*k-O(V#6Ps0M7h>bOAZ4&CDupojwx1#lYX^X8u=-PCA20+^SZ`PXMB%}Bx&T=T-TT%+AAj?o*r zf9cogKZSo8^II~94?iq)5WElfCy#I+Cl0bXN$=odJln(~B*P4_o2?a?f&4)`I45|< zx-zlb{!<}~?^)nR_y{5mk$t0aTaoVQ4Tl@!n2hd_VMJiD&fr|@m>kTuPjPU&r+0cOiIla`NGn$Xei3#cmB`nTZ%5~g21U-2 z+=wy6{%f7tCK$IQWp?bi_QU0WQx=Qwx1S-hwfiQ(b$mdblk_4qFplOr%W06xV}#isMgRmMLG8 z0cYt<@O)1WPUE_aQvBcW$>;#$bcn?G&bZ66Gk0@>f=xoQ?0;gs?3nnZ^fULOcoydY zcL#Z>cs|X+qyjqjVss8c;(SPY=8_Q3TM`2A)wS^S+FQ1pm8tg8)jU^^+EtG4^&Kod zYWi6EHWG}QCMq(@>M$i*Se^y`S>AOxB>bFS52Uk?V`un}aQ{h?@tY&?#Fa5L(&U&| z#K;&Sv^grs9+m`=A1MFFa7nemeAWrdCpLw=fj*b2qVA)dCbTDhK~=ou!FVu}#xeaTY<-P{&bKLtu#cKYX=g zABpZ<$r$A(@o?BR!5HF-XeE~<+rbMbZi=Xm*&cg3^;G*nD_8oO_{HrQ(Vljl6^3+B zn$S_pAJD!Z?NQq%;8Dzy&{}yLTLSB=br6YG10yGz8{m88L(Sd_L6f6cRjMr{{aaJ= z_)lK>@w{O*Rk;a`^4tabv-#g0XG#oMV$ww(|kxiJmgeR34h{N(Z9v- z66}bVh}lUW6)EwsG939c0*r`_JR8ACXyV01CkV>rL%=*12>r)<5BH*@0EqeiJ)5s=W=G zEcc1(2gvifFU||K16&ogVQ1UAb);sL_!+M8&Sv;GxR`u2IE1zV zKb1Zf53_C%&xmBi*2)2Rk901+RCX0yB-;TkQVb$xC>K%tE6dR5Oar-!Jrql(^2pH) zF>V;1Oll-_Aohk<5a)#}$qk_!q$pnn$?v;Ly&Z1FY$Wz4-N6!>voIBjhx%Euw5zyn zz+z}4NDi+EcSRqCJ;7z*cklnOT>EzaIwRS(z<9>mQ!~Mwu0E>mTwh(^PWxI1S8uM} ztKl}RXxdYHz|gb$mU&=3=FZez3*EIJ#O*W}GWsFkgtx&}vOo0IvS-Zo@kb?3V%J76 z+f7c}nVg^2)Zs|4l%!+n1+9|0jEY~`y-G2%<7DB&w6pB~Z5NXbt(n28iW}|}W`kiR zwp~jM(yFW$YVBsH>(9*U{e@l2#uoMdcd7JZQOBYkzgLvXzkRJO&ns#c{`=3GUT#9B z*540fY9p4R#yBDOe(p!lcKH`#reZU`bK*rwyV$3)t1&WhVqC0*8S_JYB(i739N8qL zNtB~FNBhb-#o)81h=qQb4sAKkajjRC5umG7D9oi|JW#WTrp0WsV5 z1#_&MLK9qT(BIx!P!M3s0p|`Xj;S5>;4FQkCa^hQHDmIm}iE|l91gL~D;lmVVXd~N! zZ)7^4)6BV)pUi2boy^Zr8dpT^B7DJ|$GA-EN=!#HNLiG_xTWDk=u7-jnAY(8@BQM{h2tw0 z6}kV!R>+Iq6W(YXSwfxhuZ55A%F@km6o%}{xC9@k9$He2iQrZ*FlaIJ-f;(JS z{6pblEZz3pv&Z&3@W7br$?!ZPJhbKo)12SK+0L9$abP7OGsLBbAg|;Eww9v;1~9*Y zUDy{GeTCPVx#FAnk4zUeN;m*tNr|PtV`Splgd;>6HXwM=#SYt%!-1i;ZNXW_9nLLH ztAd{mxBVTp2jE$CdUyN!6L4u|0`9o(NpOnMj#t5cUvDEEO0(O*CBAP=aSMAk9e6^T zMvWrW)7DYwTsr9*Z!SKK`w*(+&Gri!UGS5|A)knGz<-Rs5-FkS(Dl4so)9_YE+-s! zj70Oo0mA2Sh`5pPKgK?ylAMbg(bx1v6l;`eMnr1WP3uVNPAk} zTj>&x&o|bO2LP!K}Au9e-(=~&q}jh zIgJAXLoC}U8Q!}P2e#12J~lHQGb^vruPA!34=Y~^FG`f`BfP(Cv0|A36$H7zCI7J@ z>Hr#^`G$=^DsmIP10f?2!b0I5z--Ty;LSic6miCT`ncx%8a;c^6z?g>gU?>=GvV6&>CkpY_aa7cd>onXA~^3`>Ozt(;7W;PM9sm2USz4Zq$ z#X%vhLl7VnnML!47t;O#r&Xoy9kYaOCFL-`lCv0Ru^f79a6e}*$Yjp(@283a zbdu2~#K(BgQfm+*?SGzjB%uWine6s(J^TYa3zm>#Fgv6rY^1Ki4<-+$@aZyska>jH zhjmo`hWA%O7mbe|ATN`3;ct=Zc-I6^xq9&~?j`0M@?hEkaB%39Z&ZNbE%Q7=c=l*( z7u}tPnPuBco>i8VzApoccvWa2p?K$?1H~Et(hA4^!PTrSX4Lg4D>QVeUt?40!ogTK z3cUy+l%3!c(QM9OgL$LN&RJXHKsjg+9L=Y!XTc2FL6pR^Enmkb9tLGMr|Wgj$~n@)9c5&AIkVX8$~K|Lwm0Zrsxhwkux zf~m}B_+Ok3xRySmz4@IvUGviVR<+5!-EiG| zT@83fXwJFjG<*(v^d#J4!yt;u;UH(j?^rtn5@tpCKh{oE!)isi$GS)~a@35TTn821M^`=lap1~UQ-P$f7yW4-$ofWm!nZp;60XPt-fnT}(`clJkEp5Z&T&A2Y~)>(s} z@7<5D3bJX7z;x<9atyCK#YE?Gs(G`y*Lai&tDLJm7O_2Ht-QB#jm#=b5|+s}Nw~5m zj-E4_#v%h~F;E^H8@%uO&&Puw+nQB{x@irE$_^GWtI`WP7n^?zO2NE>!ZE*Bm-WfN zUe^1cv%KHm2ere?FK8?40*>|8Q=$8gI`Te%Na;bSmXwO#M)r@?rKnqZTU~GaA?;8a zze7ehYNyCv=R1k|#4? zq6Bxq8-b1p?8K&qTH{`zZ-C2Qd3d02T{u64CnVthk-5Yp%x6$Gbuu-VKM5yf3}zn_ zkEcB1_vMU{QyFrJp6eCAr3~gD2bZxDaKq`=0b%&65nn?d(J>nUzI~QDPRDmw5gv^C$tcxgtyC5J{ zM34^9>EXG8YSRDM#gI!-#dyHFN@>H&YGLWSk~+1VYBAs;j>2vdTf;e6PYdK%x-J9L zjGcqG9GCFtT6*D$&WE5>Z%5bIF|Y_(4qi%NFC3ZMzx+o2!#^9p)s^-7bD{YA&o^}$1#>F*78KUrt9YmH*_426cI@>hBPtRZ zq;ZbW-iZ>VYhriDElwy;%1+(gL7LDmWl+bZ-Cw1pcE6r>u4iW3!JU`1>d~o4ezy%- zuq$y9qe!kLuac)>OPHs_W@$ug^nQS{`D9;EmKm?{abvPg~wBfDe85&tfbFV8%S0iMfKf zi&2I9z#a?$p{-#GAu~7)n1QVz^bL-| z9m9Pkmq8~Pcc`CuS+uRJk$k0WE$fKjE^Vu1Hutb(53^2snEya-p$+9XvqlL=fiGyb za1J#a9YRSBjDqmabN)xJIR6|A$XKM8(hoQ)?-M>tw3>8^!yyl9>E9d4 zL$O%eEW!{17k@Bx1lZ}_gtm8+LLE$Rkb2YGV0UBZ7FHw<>t?A8tg=LbsDlRmZHY*} zdlG#@D3kpP|690)GD@7$ap*GKC2Y8?7W%@*UC<{pl0%^1%%-G81_MrF8@qZb(E zN~C@CT%>kzFJb7z9m!q%5ES$tBrginD8`mfp(n-#p9JiZ(Ugo-Bx&&8iP}>$Y zXpl4y&|lS78f^{BG$ZtFP4T8r#>?Iv=GT6Kg9IeP4Y*J41kw)ID0U^P68y%`5uXAj z;sM|*1%>chya_xno=d#V5a2Jdt8g!&lwdX)2n&G;z`Ec(&(Ri+y2vT;RG96aPnwfR zx$c!W**H3o;7AOAHy_3;T^`B?%S>XQKp~?pSRgtG^_Bf0A68uBHbo4QbxQCmhR5$! zc5QV>2_JZQElgFah!pip1ygbY6%q^1={qAA&UTYX*A#s1b*U{-6F zxr@~k13yg9Lc?s@;CtIsbgX4NaW#B|x*gua$nw2}ZhAITHu~BDuboAd+TaAVSD+qy z?rrkr!5u=S-WmRD{>jJ%_kGuDzuoo1H_RQ6F7YTaSx^Gq@bAWwNDIgxa4>Bv^&a;x zuAUCEqxj{5Lh(YmQbv&XQFz6lq^CuD#2-c3f;iz7*=eSlvxd=^X(L`IJ*5TdZ~aGr z+<-ldS-<%{*aTjmzR{)8Jae8@-LkAv@7KT7Uba5doVArTt+K9cF4OxQI@fZS+L4Ug z>^m2{>V8LF5}ZSM;h)a`2nvNu2!nCx!i3{kVJa zd7R7m6yTaC#oyKTTKBRJuZZ$hOCjLUZ zzKYV;RZ1i|9P^>wI@ya>TIuwp$JDnGO>}`WCEUc@6z<3CkCa3A?QIEV_DuA-9f!ji z`?$6k+d9Lh2ex8!H~TParM1L(RKLgvS$26A>ocGu&I;gx?J>r-r(lOo&qy#bf<||4 zrFL;Ig*MnC)>TMrAK?(XHmd>m_?)9sk&AA#hDKD#0a zqaFRiCXWd!3G5y!0!uC!4skXpd&zQj*Wn0t^op~0iaJd3mqIRY+X{lIbYZR`y16H}=I1}DS%Ee~UPvft!qiFZ}9jSkL(cF+ck$qbH zQd%Y377-S|P&A4sL`;#5kNPH@AQp4}#2Jp^w^9+niq3!;H9(p~r?iXOmz!M)H!K})s5se(T<|H2!Yy&QXpQPzi{YsU30 zmQQ$xnF<~4_4U@v=GXeGR*KO8=c+&Z_8R{9E|?jh%z27hj_l)|2|bdu!ez*n;f>0C z#*d`OJYsSud2Rb#(SkPHBZJAwk?-4njXjvOEM{;#MG4FHa8Z5%=Niq#xj|r&`vyh> zL!Eb!y@u7!_3Gix6HDXOPl~E*SNvI17xk~Git(p)-N9cK<=yfQS1I#sO(#l58&*`6 z8(-BuusE7=A)|dMFv&Zg{e^IflSy78^6=z*o-jHJA2By3D|Tqi#kk?hh&FE{)otRX zhgvV>CB-h|^^2o0nqpSd#jy`SzSN1!6?busW#oC1Spfv5fo=@?V!DTowEYQmbes>> z!K*w+TNHU@kHwkmdF)L0=9qcV6~`&?w`mKhojnTw-F%gD$(9Vv*2m&|>)7BC%Sb|* zRS3k{189HqJnvIWcZc2B&a=<8$Ypj)oU=VN-2vwpM;nx6TY}#ARDkCYEwRD(owCJK zMza6~^Z>b_g=6U|c*4Fe8z*QjdnF?)Rtsix_bJy)%H^|#1<^U;21z7qyp+TE$`C=h z3>khbZ3=!oWI@foKE7WrEBppd^{usd9RsZ&-CfnQoCh@7o>q0E?N{`hz2)iz?`#7x zG|jLpoax}0--{>B#9phNv+y!1`qM0HL|5^XK;`F^;0qebhOw-^w zX|2aAoj2(h1BZp=V1)QBFetJYUKDeJx+dX}aB}KRu_y(S{Y^b6+?RAarfVu+Q4%{b zdPuB794(`YCkn?h?m{xgIQ%YCv~^|88V|4N#-m8I4x3KCQ| zie^=A%m1&TQ{m2P{GV~!2W9!jO;tZ_tC~mJi<@)&%k58yes2nGI(n41i!zh9k3LF1 zLa<(#!L5z{8hJt1Im#Cqk$6|ikEhF?B&t{&74Zyq%w9Snx-<2BbU*xH`H{dj(RTkT z;ce#_`iX#-Gr?I*(Zl0N^GvF6tosSr3CRdZeP4qGzTa*U`plb$YAh3RMYf4hk^LLt zk$Eolvu!QmsG&1?o?%IFOH)5W*ia8#G_C>j&HsGaI>)eac4xfPZT*M5 zH}!LWH>~yThWp}o*wnxg-w3J~$)h>Kcvd7jl~D!l6|v}Kv5q@Qxkl7qHe7Z(Vy(o* zdoM}ipNX0&J{6J2RVnM)UARlhbipX74>dKMM<0#B`0T*>&`Yn{HOPL@`OdqmP{sN;6)6tM7$A@XRId9a@ zv0XBREI;+TEz|9(HXd@*c-d26&Ge5koJM`#$Mh=Sa(-vvgV={{jd%y?V!JS0v1R;z zsbMkJre(a6>XWz=|H*E)xu}dxIw)2~UX=eY;y>vGlDSYL_+5bDvNT z3d$|t37Bsel^=M(?ErNbPNqDQ&E;&6{o+(hCW^j9>LPE-c19gmK8@ciSQaDTW+>Lv zQ28#JAeuuFMt#OVjaVI6BE0K=DIS2Z*aO|YIA`52nGKFwNQp3^;r0v=^=NUY-Ft)m zgDyWAyX9L9NL+4ghJ`>J=qMu0Hh-ct*w(lB?k)IKlL^!{4Go=a=HTC&5<^dQ69QLt zPPo5;;yhrSV&_;^*cUsiEH397+Z^u~Bi~9T#VL5FNt7b3%TUeAyw8{Dk`~4C5v5a zDVH5Rz*^6CLT_{_sfp-ie4*c?^<>k@Z&^;lZ9z8i89M=8FQTFS_{|;-C&9&HO>y3W zuA6#86HW85LF(Tq!GQUg8m}|Hd8&0(^F{j$Q@n*_zvmQrS$-CywmD6f_7d>pY6(4Ni z7vF52T|PjYQmHc3RCGX2Hvjg0RksO`vlkQiuK%dUz+=`-tgob=HcR*)9Z>wo*)4p- zeyaGTm?%3JJxM$)rl*h|&1Bw@B~TerLr9(o0Rf1agY!t=qd(<`yqm;_eXS(D?0L)_ z-%7Rz{vXxpkdYN^DDTAod}AFp!GhAL>QCWnYU=vEG2r8C=v%dj;`@F_IQ< zv;+Sd&f{CDRs~&+S3(0d?Sk{vlRS~?Wr)~x&A!K&X)Ln-GRn-4%|>LoiRtBAaRA*A z5%#&pk!$QA^-*xJ;3GPcHwX8Gcbl|WxQ97U-b(m2wzG7Xa*;eoQ5>NZPLJ3vUMy2_ z#z%*_QptF7l%ksYgtHPH$y^BZCgi)H0+--vVFt3@^V6xZ&2h*rUNh66bW(L&on4Ke zyw6lW9PJG|JhAFep67Nc@s8yUey?jI^vlzPPYv86{X`c~^IO!A->7G(k66pdL%F?Z zQqBrOFWzr(0&S1iEhr9NpyQBxbQ3%c-(=VdUNl}n&lx`W8x4?WmL}KPw#j9QP*1i^ zFg$l$bj>!09jS0zUr$?sH^TdsIM_vpzJ+(Qr{M8|f0RJv5T-k}fm5E4!|9kn6vrj0 zX;$F;vu4KP6{gZPr{q6qjCLg zZ>cf9-pnO9H5*5c64p`^d6%g&2|+N1n=Kq6yAu`1E|m}A4v%CqoC*PzAAJLdS5)B+ z$ot{cvY!|s@?1zIv-<7}ll^yiOW`)m2<#+xt2ctGL~oP#`Fmnb_yT+!sKx3C=K{l^ zN{51c++GB6EDI?=trsW{jbA{Kb^|m|qd|W+^}+P&6HZ#~Qvc)TweU_&rt6R?#gb|$ zHmxvi)%`W=49AdMv&i?(cpNP^Uke|yvWa#6M2;3tWbXuq@o|8Xdw^z=exQ$+lSI>% z`^3i;m9hXPRLVT%>dR&6dH~14CzEs=E^EY}XO&fgEa^U~5_p zZX4}rSVnq5t|c*8BWSJJ3~G&d{RV*)hl3ZIN~-%TLKS$jh%W+DpdI^r`; zYdxQ}nMgv@5ocoaKWCG+zipQOn2lr|;p}ODWUKSe^lS^^kWMY^)NN9hdjL6=>=iYV z^OaXv*JC1>)iDDFb@6P$idKWgw_10UCMV4ij!7IWd=kYI?29Q8tyOBs5*|if&G^=W zre2VNZ|C{sz3ctuJZ?8zc33F7J;w6p1zLVxTGRKE5lwf?2&UeZM|20P-kCm^cQeq- z49MpCEzXJc*=VkY7k2CE1c$kd#B@Jq|A$tyf8vzPsf7RW+EVPiLp-WL#pf{l3JZ7# z6fA12VkQHMnL>~%JK`G@d;Kig@$d)5L9BHQKhP*2>%A;;dK1JS1MB$)&umURbQmMx zTS+<#B#}gb5;u49xQNs)@C7<%O`tq5(#e0dJZfLvO@dilNf@Itga$Wt z2?!dv&hvG$fZRCAS)jAnDh)jh$Bj(uH~SZ3d-p=aGB?fK1wCULid*DJfl85X%(7q_ zJJvg$1>(<(+LE{uGRL6k#CRyo5TBJtNKyGIxlw#V9wDldJY-H0O{T6A-lSZV8pv=|~_o|2)fw0$XALhLPKeLUq19n4;KL0tav-Wa-F#h%&(B^o)o6FECwk%w# zeGE3+-WOaF$fn*3{H9RBLS_cGn=}rZMlB;$5cjbZv@(u@s%PxSO=q;jWbCOeI+kkh zAo6+Vbm*AvGp>s{6Zgw>GdNJw7uD+*IeIqKIHzfQIJ@Y#I;R=NTV%#a+YS33WRX7} z8G~lIRlqK9HL-u_G_4W)%3(9MN1mnKQ_NB%66xdyWGT!w{H?^kjGlz=GzG8+SJJX;(a&+Ur4Kc@LUx~_tL2DRqHC<5saaS( zU2~=a(G9CwZ|+w8&nT?~%_ph`!SCy6L7Zx#x3K;;dd_qkkeORiEp7^Jl1IYkVM68uvviingy z6Xr|13tI_qFusVJXj4REi8}>qVhTGBSVYSSy~IcOz7oH9h*-4?fS+5pIe)@KY<~yumSA-noQdf+I1_g8xNbVQNGjnL*(}lB(sh7BezKt%+s+${?j> zLvMs5V4LSDvZH2HcTTTWH>-}+-85{ejWnFD>}AZUoo{ee;T`AeBOR)`f?!Uw&;L(V z>z|`rg?nN*6V^ND(^q+GNu@pyYc%c(I|)*=QAQVrl=+y^zhyFVmwlhLRYIp#NNJ?E zveDrrnLJFA+`-S2gTc+xZs=RZSKk3?N${LxW9Ybm0Sx2~2~^TK;Rnp+;dhi_WuCd6CfCV#E+a5ZzO%`WGkInIwwT=)GZg|DxErt3;e^)%2NX?mvX;EJ&hf%VSK0l%-G?=kizAi(zs z?jtRts@X)Sh><#3#t=eB%EJ~OG}}GZ(*;3Y3tbk=BzTJ5p`&W%8ZM~)T4UW2bHDm-x+%3W zrcSjl&9cTW-Wt_WS6$QOpid+Bf7TzuPFhb8@4H{&n_bH&-2!rQVM{kRl7!{ zK)_iU)-c1t3g$(^ZbnaRJb4H)5nqYr`7con{urh?^qo`*$C3`aZUL~iEtO>9K_N{7 zsfYdo`b$GaC#mjv6sn8CzZ#pZm#V<=Sa;V(vgAAJ9934{-WQU+jN#ViG7_n zjrfg!5b8+#9Xd?E9{NX~7$Q>bzO87`zBJt69Ott*Q+-3+Tiv5PY-^F@hhvbZqy0WS z-amx!%Vohjx^ln;&O_j};A!%%5K7L#H_@qB9<7m3$V7=9X_H8Esb|RdTXw!yV}t4I z$vNb3_${SVcqeYSa|pf-(gs5uU$DovLbp=Cz+I|&<*aWc`o0*xdx@4?wwH#>_UV>I zmg}ZQ&wB4D1ajs0^TRIx4cv6x0O}07^J#B+-zZkPhW?!W7fd044^;pq$OdnkC&7OTIc|Sw%QQ{1 zUo!Cx2h>ljvvhOx$+hE+5lw^jldE3aAE@5BAWe>Ypk^I>zp-DCZHBPlyfm zC_Dy);hgUHY8{4*b+z%5km$ftZz;~~N(c}4Xo=SXTS$L`Nz^2C1YrY?#Xt!JW-dv> zehNK@WY9(OL*ghx8L2CA9DOqpAbtv@fke-FT&e3PDE2*Rso)p;Rv6zSLo_2{k--X! zG)(VXGsTr*7;aaa>8?t9(7DMq41NwjhQA=`p-}_`m_?}u7c%0AXBj)7&cZj8@1h8< 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

u?kI$o1k0y}61QJtL!KgbYqfgt&;%p_a6 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 literal 0 HcmV?d00001 diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.cpp new file mode 100644 index 0000000..a897109 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.cpp @@ -0,0 +1,150 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: wave.c + + Copyright (C)2009 Nintendo Co., Ltd. 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +/*---------------------------------------------------------------------------*/ +/* includes */ +#include "wave.h" + +/*---------------------------------------------------------------------------*/ +/* functions */ + +/*---------------------------------------------------------------------------* + Name: LoadWave + + Description: Wave データを読み込む. + + Arguments: filepath : ファイルパス + fmt : Wave データの fmt チャンクを格納 + data : Wave データの data チャンクを格納 + + Returns: None. + *---------------------------------------------------------------------------*/ +void LoadWaveCore(nn::fs::FileReader& reader, WaveFmt * fmt, WaveData * data, bool isSizeOnly) +{ + reader.SetPosition(0); + + WaveRiff riff; // RIFF ヘッダ + WaveChunk chunk; // CHUNK + u32 readbyte = 0; // ファイル読み込みの判定に使用 + u32 fsize = reader.GetSize(); + + // RIFF ヘッダ読み込み + reader.Read((u8*)&riff, sizeof(WaveRiff)); + + // サイズを積算 + readbyte += sizeof(WaveRiff); + + // "RIFF" との一致を確認 + if (riff.tag != MAKE_WAVE_TAG_VALUE('R','I','F','F')) + { + NN_PANIC("Not RIFF format.\n"); + } + // "WAVE" との一致を確認 + if ( riff.type != MAKE_WAVE_TAG_VALUE('W','A','V','E') ) + { + NN_PANIC("Not Wave format.\n"); + } + + // ファイルサイズより大きくなるまで読み込む + while(fsize > readbyte) + { + // CHUNK の読み込み + reader.Read((u8*)&chunk, sizeof(WaveChunk)); + readbyte += sizeof(WaveChunk); + + // "fmt " + if (chunk.tag == MAKE_WAVE_TAG_VALUE('f','m','t',' ')) + { + reader.Read((u8*)fmt, sizeof(WaveFmt)); + readbyte += sizeof(WaveFmt); + + // 拡張領域があれば読み捨て + if (chunk.size > sizeof(WaveFmt)) + { + u16 ext_size; + + reader.Read((u8*)&ext_size, sizeof(ext_size)); + readbyte += sizeof(ext_size); + + readbyte += chunk.size; + if (readbyte == fsize) break; + + reader.Seek(ext_size, nn::fs::POSITION_BASE_CURRENT); + } + } + // "data" + else if (chunk.tag == MAKE_WAVE_TAG_VALUE('d','a','t','a')) + { + data->size = chunk.size; + + if (isSizeOnly) + { + return; + } + else + { + reader.Read((u8*)data->buf, data->size); + // 8-bit wav ファイルの場合は unsigned -> signed の変換が必要 + if (fmt->quantum_bits == 8) + { + s8* p = (s8*)data->buf; + for (int i = 0; i < data->size; i++) + { + p[i] -= 128; + } + } + } + readbyte += chunk.size; + } + // それ以外 + else + { + readbyte += chunk.size; + if (readbyte == fsize) break; + + // 読み飛ばす + reader.Seek(chunk.size, nn::fs::POSITION_BASE_CURRENT); + } + } +} + +#ifndef NN_BUILD_RELEASE // Release ビルドでは HostIO は使えません。 +void WriteWaveHeader(nn::hio::CTR::HostFile& hostFile, WaveFmt* fmt, s32 size) +{ + WaveRiff riff; + riff.tag = MAKE_WAVE_TAG_VALUE('R','I','F','F'); + riff.size = + + sizeof(WaveRiff) // riff header + + sizeof(WaveChunk) + sizeof(WaveFmt) // wave fmt header + + sizeof(WaveChunk) + size // wave data + - 8; + riff.type = MAKE_WAVE_TAG_VALUE('W','A','V','E'); + hostFile.Write(&riff, sizeof(WaveRiff)); + + WaveChunk chunk; + chunk.tag = MAKE_WAVE_TAG_VALUE('f','m','t',' '); + chunk.size = sizeof(WaveFmt); + hostFile.Write(&chunk, sizeof(WaveChunk)); + hostFile.Write(fmt, sizeof(WaveFmt)); + + chunk.tag = MAKE_WAVE_TAG_VALUE('d','a','t','a'); + chunk.size = size; + hostFile.Write(&chunk, sizeof(WaveChunk)); +} +#endif // NN_BUILD_RELEASE + +/*---------------------------------------------------------------------------*/ +/* end of file */ +/*---------------------------------------------------------------------------*/ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.h b/tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.h new file mode 100644 index 0000000..cbaf2f3 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/common/wave.h @@ -0,0 +1,148 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: wave.h + + Copyright (C)2009 Nintendo Co., Ltd. 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#ifndef __WAVE_HEADER__ +#define __WAVE_HEADER__ + +/*---------------------------------------------------------------------------*/ +/* includes */ +#include +#include +#ifndef NN_BUILD_RELEASE // Release ビルドでは HostIO は使えません。 +#include +#endif // NN_BUILD_RELEASE + +/*---------------------------------------------------------------------------*/ +/* constants */ + +#define MAKE_WAVE_TAG_VALUE(c1, c2, c3, c4) \ + ( c1 | (c2<<8) | (c3<<16) | (c4<<24) ) + +#define MAKE_WAVE_TAG_STRING(str, val) \ + { \ + str[3] = (char) ( (val>>24)&0xff ) ; \ + str[2] = (char) ( (val>>16)&0xff ) ; \ + str[1] = (char) ( (val>> 8)&0xff ) ; \ + str[0] = (char) ( (val )&0xff ) ; \ + str[4] = (char) ( 0 ) ; \ + } + +#define MAKE_FMT_CHUNK(ch, s) \ + { \ + ch.tag = MAKE_WAVE_TAG_VALUE('f', 'm', 't', ' '); \ + ch.size = s; \ + } + +#define MAKE_DATA_CHUNK(ch, s) \ + { \ + ch.tag = MAKE_WAVE_TAG_VALUE('d', 'a', 't', 'a'); \ + ch.size = s; \ + } + +#define saturate(v, min, max) \ + { \ + if ( v < min ) {v = min;} \ + else if ( v > max ) {v = max;} \ + } + +#define swap(v,t) swap_##t##_(v) + +#define swap_u16_(v) \ + { \ + v = (u16)(((v)>> 8)&0x00ff | \ + ((v)<< 8)&0xff00); \ + } + +#define swap_s16_(v) \ + { \ + v = (s16)(((v)>> 8)&0x00ff | \ + ((v)<< 8)&0xff00); \ + } + +#define swap_u32_(v) \ + { \ + v = (u32)(((v)>>24)&0x000000ff | \ + ((v)>> 8)&0x0000ff00 | \ + ((v)<< 8)&0x00ff0000 | \ + ((v)<<24)&0xff000000); \ + } + +#define swap_s32_(v) \ + { \ + v = (s32)(((v)>>24)&0x000000ff | \ + ((v)>> 8)&0x0000ff00 | \ + ((v)<< 8)&0x00ff0000 | \ + ((v)<<24)&0xff000000); \ + } + +/*---------------------------------------------------------------------------*/ +/* typedef */ +typedef struct _riff +{ + u32 tag; + u32 size; + u32 type; +} +WaveRiff; + +typedef struct _chunk +{ + u32 tag; + u32 size; +} +WaveChunk; + +typedef struct _fmt +{ + u16 fmt_id; + u16 channel; + u32 sample_rate; + u32 trans_rate; + u16 block_size; + u16 quantum_bits; +} +WaveFmt; + +typedef struct _data +{ + u32 size; + u8* buf; +} +WaveData; + +/*---------------------------------------------------------------------------*/ +/* prototype */ + +void LoadWaveCore(nn::fs::FileReader&, WaveFmt*, WaveData*, bool); +static inline void LoadWave(nn::fs::FileReader& reader, WaveFmt* fmt, WaveData* data) +{ + LoadWaveCore(reader, fmt, data, false); +} +static inline int GetWaveLength(nn::fs::FileReader& reader) +{ + WaveFmt fmt; + WaveData data; + LoadWaveCore(reader, &fmt, &data, true); + return data.size; +} +#ifndef NN_BUILD_RELEASE // Release ビルドでは HostIO は使えません。 +void WriteWaveHeader(nn::hio::CTR::HostFile& hostFile, WaveFmt* fmt, s32 size); +#endif // NN_BUILD_RELEASE + +#endif // __WAVE_HEADER__ + +/*---------------------------------------------------------------------------*/ +/* end of file */ +/*---------------------------------------------------------------------------*/ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/OMakefile new file mode 100644 index 0000000..ef5f9f7 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/OMakefile @@ -0,0 +1,63 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +SUPPORTED_TARGETS = CTR-*.Process.MPCore.* + +include $(makePlatformDefsPath tests) + +SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) +INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \ + ../../../common \ + ../../../ConsoleBackup \ + + + +TEST_COMMON_SOURCES[] = + ../../../ConsoleBackup/Exporter.cpp + ../../../common/Util.cpp + ../../../common/HeapManager.cpp + ../../../common/SdLogger.cpp + ../../../common/LogConsole.cpp + ../../../common/CommonLogger.cpp + ../../../common/SdMountManager.cpp + ../../../common/PlayHistoryManager.cpp + ../../../common/VersionDetect.cpp + ../../../common/HardwareStateManager.cpp + ../../../common/FileTransfer.cpp + ../../../common/SdReaderWriter.cpp + + +SOURCES_TEST[] = test_Exporter.cpp + +ROMFS_ROOT = ../../../common/romfiles + +TEST_ENVIRONMENT_PROCESSLIST = true +TEST_ENVIRONMENT_EMUMEM = true + +LIBS += libnn_test \ + libnn_mcu \ + libnn_ps \ + libnn_am \ + lib_demo \ + + +ROM_SPEC_FILE = ../../../ConsoleBackup/ConsoleBackup.rsf +DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/_private/RepairTool.desc + + +include $(makePlatformDefsPath build.tests) + + +tests: $(TEST_TARGETS) diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/test_Exporter.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/test_Exporter.cpp new file mode 100644 index 0000000..486e320 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/Exporter/test_Exporter.cpp @@ -0,0 +1,113 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: test_Util.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "demo.h" + +#include "CommonLogger.h" +#include "HeapManager.h" +#include "Exporter.h" + +using namespace nn::test; + +class ExporterTest : public Suite { +public: + virtual bool InitializeSuite(); + virtual void FinalizeSuite(); + + ExporterTest() { + SUITE_NAME("TestUtil"); + TEST_ADD(ExporterTest::ExportTwlSaveData); + } +private: + void ExportTwlSaveData(); +}; + +namespace +{ + +const size_t s_GxHeapSize = 0x800000; + +} + +//------------------------------------------------------------------ +// Initialize/Finalize +//------------------------------------------------------------------ + +bool ExporterTest::InitializeSuite() +{ + // os の初期化 + nn::os::Initialize(); + + nn::fs::Initialize(); + + // amの初期化 + nn::am::InitializeForSystemMenu(); + + // ヒープの確保 + common::HeapManager::GetHeap()->Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR); + + // RenderSystem の準備 + uptr heapForGx = reinterpret_cast(common::HeapManager::GetHeap()->Allocate(s_GxHeapSize)); + demo::RenderSystemDrawing renderSystem; + renderSystem.Initialize(heapForGx, s_GxHeapSize); + + // ログ描画の初期化 + common::Logger::GetLoggerInstance()->Initialize(common::CONSOLE_WIDTH, common::CONSOLE_HEIGHT, + common::CONSOLE_MAX_LINE, &renderSystem); + + return true; + +} + +void ExporterTest::FinalizeSuite() +{ +} + +//------------------------------------------------------------------ +// Test Util +//------------------------------------------------------------------ + + +//------------------------------------------------------------------ +// Test Functions +//------------------------------------------------------------------ + +void ExporterTest::ExportTwlSaveData() +{ + NN_LOG("WriteTwlTitleData\n"); + ConsoleBackup::ExportTwlSaveData(); + + while (!ConsoleBackup::IsExportThreadFinished()) + { + nn::os::Thread::Sleep(nn::fnd::TimeSpan::FromMilliSeconds(10)); + } + ConsoleBackup::FinalizeExportThread(); + +} + +NN_TEST_DEFINE_MAIN(ExporterTest) + +/*---------------------------------------------------------------------------* + End of file + *---------------------------------------------------------------------------*/ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/OMakefile new file mode 100644 index 0000000..0b7f26b --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleBackup/OMakefile @@ -0,0 +1,20 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- + +if $(IsTestBuild) + .SUBDIRS: Exporter + +DefineDefaultRules() diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/OMakefile new file mode 100644 index 0000000..19fef5c --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/OMakefile @@ -0,0 +1,20 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- + +if $(IsTestBuild) + .SUBDIRS: TitleDownloader + +DefineDefaultRules() diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/OMakefile new file mode 100644 index 0000000..30f3b2d --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/OMakefile @@ -0,0 +1,65 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +SUPPORTED_TARGETS = CTR-*.Process.MPCore.* + +include $(makePlatformDefsPath tests) + +SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) +INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \ + ../../../common \ + ../../../ConsoleRestore \ + + + +TEST_COMMON_SOURCES[] = + ../../../ConsoleRestore/TitleDownloader.cpp + ../../../ConsoleRestore/Shop.cpp + ../../../common/Util.cpp + ../../../common/HeapManager.cpp + ../../../common/SdLogger.cpp + ../../../common/LogConsole.cpp + ../../../common/CommonLogger.cpp + ../../../common/SdMountManager.cpp + ../../../common/PlayHistoryManager.cpp + ../../../common/VersionDetect.cpp + ../../../common/HardwareStateManager.cpp + ../../../common/FileTransfer.cpp + ../../../common/SdReaderWriter.cpp + + +SOURCES_TEST[] = test_TitleDownloader.cpp + +ROMFS_ROOT = ../../../common/romfiles + +TEST_ENVIRONMENT_PROCESSLIST = true +TEST_ENVIRONMENT_EMUMEM = true + +LIBS += libnn_test \ + libnn_mcu \ + libnn_ps \ + libnn_am \ + lib_demo \ + libnn_nim \ + + +ROM_SPEC_FILE = ../../../ConsoleRestore/ConsoleRestore.rsf +DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/_private/RepairTool.desc + + +include $(makePlatformDefsPath build.tests) + + +tests: $(TEST_TARGETS) diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/test_TitleDownloader.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/test_TitleDownloader.cpp new file mode 100644 index 0000000..97adbe2 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/ConsoleRestore/TitleDownloader/test_TitleDownloader.cpp @@ -0,0 +1,109 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: test_Util.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "demo.h" + +#include "common_Types.h" +#include "CommonLogger.h" +#include "HeapManager.h" +#include "TitleDownloader.h" + +using namespace nn::test; + +class TitleDownloaderTest : public Suite { +public: + virtual bool InitializeSuite(); + virtual void FinalizeSuite(); + + TitleDownloaderTest() { + SUITE_NAME("TestUtil"); + TEST_ADD(TitleDownloaderTest::ListUp); + } +private: + void ListUp(); +}; + +namespace +{ + +const size_t s_GxHeapSize = 0x800000; + +} + +//------------------------------------------------------------------ +// Initialize/Finalize +//------------------------------------------------------------------ + +bool TitleDownloaderTest::InitializeSuite() +{ + // os の初期化 + nn::os::Initialize(); + + nn::fs::Initialize(); + + // amの初期化 + nn::am::InitializeForSystemMenu(); + + // ヒープの確保 + common::HeapManager::GetHeap()->Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR); + + // RenderSystem の準備 + uptr heapForGx = reinterpret_cast(common::HeapManager::GetHeap()->Allocate(s_GxHeapSize)); + demo::RenderSystemDrawing renderSystem; + renderSystem.Initialize(heapForGx, s_GxHeapSize); + + // ログ描画の初期化 + common::Logger::GetLoggerInstance()->Initialize(common::CONSOLE_WIDTH, common::CONSOLE_HEIGHT, + common::CONSOLE_MAX_LINE, &renderSystem); + + return true; + +} + +void TitleDownloaderTest::FinalizeSuite() +{ +} + +//------------------------------------------------------------------ +// Test Util +//------------------------------------------------------------------ + + +//------------------------------------------------------------------ +// Test Functions +//------------------------------------------------------------------ + +void TitleDownloaderTest::ListUp() +{ + NN_LOG("WriteTwlTitleData\n"); + ConsoleRestore::TitleDownloader dl; + + dl.Start(); +} + +NN_TEST_DEFINE_MAIN(TitleDownloaderTest) + +/*---------------------------------------------------------------------------* + End of file + *---------------------------------------------------------------------------*/ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/OMakefile new file mode 100644 index 0000000..970e68a --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/OMakefile @@ -0,0 +1,20 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- + +if $(IsTestBuild) + .SUBDIRS: common ConsoleBackup ConsoleRestore + +DefineDefaultRules() diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/OMakefile new file mode 100644 index 0000000..10686fc --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/OMakefile @@ -0,0 +1,20 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- + +if $(IsTestBuild) + .SUBDIRS: util + +DefineDefaultRules() diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/OMakefile new file mode 100644 index 0000000..825ae74 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/OMakefile @@ -0,0 +1,55 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +SUPPORTED_TARGETS = CTR-*.Process.MPCore.* + +include $(makePlatformDefsPath tests) + +SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) +INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \ + ../../../common \ + + + +TEST_COMMON_SOURCES[] = + ../../../common/Util.cpp + ../../../common/HeapManager.cpp + ../../../common/SdLogger.cpp + ../../../common/LogConsole.cpp + ../../../common/CommonLogger.cpp + ../../../common/SdMountManager.cpp + ../../../common/VersionDetect.cpp + + +SOURCES_TEST[] = test_Util.cpp + +ROMFS_ROOT = ../../../common/romfiles + +TEST_ENVIRONMENT_PROCESSLIST = true +TEST_ENVIRONMENT_EMUMEM = true + +LIBS += libnn_test \ + libnn_mcu \ + libnn_ps \ + + +ROM_SPEC_FILE = ../../../ConsoleRestore/ConsoleRestore.rsf +DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/_private/RepairTool.desc + + +include $(makePlatformDefsPath build.tests) + + +tests: $(TEST_TARGETS) diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/test_Util.cpp b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/test_Util.cpp new file mode 100644 index 0000000..9910ec5 --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tests/common/util/test_Util.cpp @@ -0,0 +1,174 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: test_Util.cpp + + Copyright 2009 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. + + $Rev$ + *---------------------------------------------------------------------------*/ + +#include +#include +#include +#include +#include +#include +#include + +#include "Util.h" + +using namespace nn::test; + +class UtilTest : public Suite { +public: + virtual bool InitializeSuite(); + virtual void FinalizeSuite(); + + UtilTest() { + SUITE_NAME("TestUtil"); + TEST_ADD(UtilTest::AddCheckDigit); + TEST_ADD(UtilTest::GetSaveDataDirectoryRoot); + } +private: + void AddCheckDigit(); + void GetSaveDataDirectoryRoot(); +}; + +//------------------------------------------------------------------ +// Initialize/Finalize +//------------------------------------------------------------------ + +bool UtilTest::InitializeSuite() +{ + nn::fs::Initialize(); + + return true; +} + +void UtilTest::FinalizeSuite() +{ +} + +//------------------------------------------------------------------ +// Test Util +//------------------------------------------------------------------ + + +//------------------------------------------------------------------ +// Test Functions +//------------------------------------------------------------------ + +void UtilTest::AddCheckDigit() +{ + + // 通常チェックデジット + { + const char serialBase[] = "EJF10000445"; + const char serialWithCheckDigit[] = "EJF100004458"; + char serial[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + std::memcpy(serial, serialBase, sizeof(serialBase)); + common::Util::AddCheckDigit(serial); + + NN_TEST_ASSERT_EQUAL(std::strcmp(serial, serialWithCheckDigit), 0); + } + + // チェックデジットが0になる場合 + { + const char serialBase[] = "CJF10004638"; + const char serialWithCheckDigit[] = "CJF100046380"; + char serial[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + std::memcpy(serial, serialBase, sizeof(serialBase)); + common::Util::AddCheckDigit(serial); + + NN_TEST_ASSERT_EQUAL(std::strcmp(serial, serialWithCheckDigit), 0); + } +} + +void UtilTest::GetSaveDataDirectoryRoot() +{ + bit8 ivs[512]; + s64 ivsSize; + // 完全性検証SEEDの取得 + nn::Result result = nn::fs::MountSpecialArchive("nand:", nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + if (result.IsSuccess()) + { + nn::fs::FileInputStream fis; + + result = fis.TryInitialize(L"nand:/private/movable.sed"); + if (result.IsSuccess()) + { + ivsSize = fis.GetSize(); + s32 readSize; + result = fis.TryRead(&readSize, ivs, ivsSize); + if (result.IsFailure()) + { + NN_DBG_PRINT_RESULT(result); + NN_TEST_FAIL("Can't Read SDCI"); + } + } + else + { + NN_TEST_FAIL("Can't Initialize File"); + } + fis.Finalize(); + } + else + { + NN_TEST_FAIL("Can't Mount nand:"); + } + + wchar_t saveDataRootWStr[nn::fs::MAX_FILE_PATH_LENGTH]; + nn::fs::Directory dir; + result = dir.TryInitialize("nand:/data/"); + if(result.IsSuccess()) + { + nn::fs::DirectoryEntry entry; + s32 num; + result = dir.TryRead(&num, &entry, 1); + if(result.IsSuccess()) + { + if(num == 1) + { + std::memset(saveDataRootWStr, 0, sizeof(saveDataRootWStr)); + std::wcscpy(saveDataRootWStr, entry.entryName); + } + else + { + NN_TEST_FAIL("Unknown Directory exists"); + } + } + else + { + NN_TEST_FAIL("Can't Read nand:/data/"); + } + } + else + { + NN_TEST_FAIL("Can't Initialize nand:/data/"); + } + + // 一旦アンマウントしておく + nn::fs::Unmount("nand:"); + + std::wstring tmp(saveDataRootWStr); + char saveDataRootStr[nn::fs::MAX_FILE_PATH_LENGTH]; + std::wcstombs(saveDataRootStr, tmp.c_str(), tmp.size()); + + std::string sysSaveRoot; + common::Util::GetSaveDataDirectoryRoot(sysSaveRoot, &ivs, ivsSize); + + NN_TEST_ASSERT_EQUAL(std::strcmp(sysSaveRoot.c_str(), saveDataRootStr), 0); +} + + +NN_TEST_DEFINE_MAIN(UtilTest) + +/*---------------------------------------------------------------------------* + End of file + *---------------------------------------------------------------------------*/ diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/ExportedDataVerifier.bsf b/tags/ConsoleDataMigration/1stNUP_2/sources/tools/ExportedDataVerifier/ExportedDataVerifier.bsf new file mode 100644 index 0000000000000000000000000000000000000000..104a94da96cd5d963d349ca5c6fcce26ae7e3cbb GIT binary patch literal 2302 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 MDvwobWH +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "Aes_define.h" +#include "FileTransfer.h" +#include "CommonLogger.h" + +#include "demo.h" + +#include +#include + +#include "DrawSystemState.h" +#include "FileName.h" +#include "SimplePlayer.h" +#include "CommonLogger.h" +#include "SDMountManager.h" +#include "HeapManager.h" +#include "PlayHistoryManager.h" +#include "common_Types.h" +#include "VersionDetect.h" +#include "Util.h" +#include "CommonLogger.h" + +namespace +{ + +// グラフィックスに割り当てるメモリ +const size_t s_GxHeapSize = 0x800000; + +const u32 CONSOLE_WIDTH = 38; +const u32 CONSOLE_HEIGHT = 24; +const u32 CONSOLE_MAX_LINE = 1000; + +const size_t VERIFY_THREAD_STACK_SIZE = 0x4000; +nn::os::Thread s_VerifyThread; +nn::os::StackBuffer s_VerifyThreadStack; + +u32 s_VerifySuccess = 0; +u32 s_VerifyFail = 0; + +} + +void GenerateNandPath(wchar_t* toPath, const wchar_t* fromPath) +{ + // 切り詰める + std::string tmp(common::GetCharStr(fromPath)); + std::string twlPhotoRoot(common::GetCharStr(common::SD_SAVEDATA_TWL_PHOTO_ROOT_NAME)); + std::string twlSoundRoot(common::GetCharStr(common::SD_SAVEDATA_TWL_SOUND_ROOT_NAME)); + std::string ctrRoot(common::GetCharStr(common::SD_SAVEDATA_ROOT_NAME)); + + std::string output; + + std::string::size_type size; + size = tmp.find(twlPhotoRoot.c_str()); + if(size == std::string::npos) + { + size = tmp.find(twlSoundRoot.c_str()); + if(size == std::string::npos) + { + size = tmp.find(ctrRoot.c_str()); + if(size == std::string::npos) + { + // 想定外のパスへの出力のためreturn + return; + } + else + { + output += std::string("nand:/data/"); + output += tmp.substr(size + ctrRoot.size()); + } + } + else + { + output += std::string("twls:/"); + output += tmp.substr(size + twlSoundRoot.size()); + } + } + else + { + output += std::string("twlp:/"); + output += tmp.substr(size + twlPhotoRoot.size()); + } + + s32 length = std::mbstowcs(toPath, output.c_str(), nn::fs::MAX_FILE_PATH_LENGTH); + if(length == -1) + { + NN_PANIC("failed mbstowcs"); + } +} + +bool CalculateAndCompareCmac(nn::crypto::Sha256Context* context, bit8* sdCmac) +{ + nn::Result result; + bit8 sha256Hash[nn::crypto::Sha256Context::HASH_SIZE]; + bit8 cmac[nn::crypto::AES_CMAC_MAC_SIZE]; + + context->GetHash(sha256Hash); + context->Finalize(); + + result = nn::crypto::CalculateAesCmacSw(cmac, sha256Hash, sizeof(sha256Hash), common::cmacKey); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + + return std::memcmp(cmac, sdCmac, sizeof(cmac)) == 0; +} + +// ディレクトリ間のコピー +// アーカイブ越しのコピーが可能 +// アーカイブにマウントした状態で呼び出す必要あり +// 書き込み先のディレクトリはあらかじめ消去しておくこと。 +// 引数はスラッシュ付き +// TODO:分割して短くする +bool VerifyDirectory(const wchar_t * from_path, void* buf, + const size_t bufSize) +{ + using namespace common; + + nn::fs::Directory from_dir; + nn::fs::DirectoryEntry entry; + s32 numread = 0; + std::wostringstream target_from; + bool ret_value = true; + + nn::Result result = from_dir.TryInitialize(from_path); + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + + while (1) + { + result = from_dir.TryRead(&numread, &entry, 1); + if (result.IsFailure() || numread != 1) + { + break; + } + + if (std::wcscmp(entry.entryName, L".") == 0 || std::wcscmp(entry.entryName, L"..") == 0) + { + continue; + } + + target_from.str(L""); + target_from.clear(std::stringstream::goodbit); + target_from << from_path << entry.entryName; + + // ディレクトリの場合 + if (entry.attributes.isDirectory) + { + { + target_from << L"/"; + + + // 再帰処理 + if (!VerifyDirectory(target_from.str().c_str(), buf, bufSize)) + { + ret_value = false; + } + } + } + // ファイルの場合 + // SDカード上のファイルのCMACを検証する + else + { + nn::fs::FileInputStream sdFile; + s64 sdFileSize; + + result = sdFile.TryInitialize(target_from.str().c_str()); + if(result.IsFailure()) + { + ret_value = false; + break; + } + + result = sdFile.TryGetSize(&sdFileSize); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + break; + } + else + { + + bit8 sdCmac[nn::crypto::AES_CMAC_MAC_SIZE]; + + // ハッシュが付加されていないとエラー + if (sdFileSize < nn::crypto::AES_CMAC_MAC_SIZE) + { + return false; + } + + s32 readSize; + // ハッシュを取得する + nn::crypto::Initialize(); + result = sdFile.TrySetPosition(sdFileSize - nn::crypto::AES_CMAC_MAC_SIZE); + if (result.IsSuccess()) + { + result = sdFile.TryRead(&readSize, sdCmac, sizeof(sdCmac)); + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + } + else + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + return false; + } + + sdFile.SetPosition(0); + + + // 復号化しながらハッシュを計算する + nn::crypto::SwAesCtrContext swAesCtrContext; + swAesCtrContext.Initialize(iv, common::key, sizeof(key)); + + nn::crypto::Sha256Context context; + context.Initialize(); + + wchar_t nandPath[nn::fs::MAX_FILE_PATH_LENGTH]; + // sdパスからnandパスを生成する + GenerateNandPath(nandPath, target_from.str().c_str()); + + // NAND上のフルパスをハッシュに含めている + context.Update(nandPath, std::wcslen(nandPath) * sizeof(wchar_t)); + + BackupDataHeader enc; + BackupDataHeader dec; + std::memset(&enc, 0, sizeof(enc)); + std::memset(&dec, 0, sizeof(dec)); + sdFile.TryRead(&readSize, &enc, sizeof(enc)); + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + if(result.IsFailure()) + { + ret_value = false; + break; + } + context.Update(&enc, sizeof(enc)); + swAesCtrContext.Decrypt(&dec, &enc, sizeof(enc)); + + size_t totalReadSize = 0; + while (1) + { + result = sdFile.TryRead(&readSize, buf, bufSize); + totalReadSize += readSize; + + if (result.IsFailure()) + { + COMMON_LOGGER_RESULT_IF_FAILED_WITH_LINE(result); + ret_value = false; + break; + } + else + { + if (readSize == 0) + { + ret_value = CalculateAndCompareCmac(&context, sdCmac); + if(!ret_value) + { + COMMON_LOGGER("********** Verification Failed **********\n %s\n", common::GetCharStr(target_from.str().c_str())); + s_VerifyFail++; + } + else + { + COMMON_LOGGER("Success %s\n", common::GetCharStr(target_from.str().c_str())); + s_VerifySuccess++; + } + break; + } + else + { + bool readDone = false;; + // CMACまで読んだかどうか + if (sdFileSize - (sizeof(BackupDataHeader) + nn::crypto::AES_CMAC_MAC_SIZE) < totalReadSize) + { + readSize -= totalReadSize - (sdFileSize - (sizeof(BackupDataHeader) + nn::crypto::AES_CMAC_MAC_SIZE)); + readDone = true; + } + context.Update(buf, readSize); + + if(readDone) + { + ret_value = CalculateAndCompareCmac(&context, sdCmac); + if(!ret_value) + { + COMMON_LOGGER("********** Verification Failed **********\n %s\n", common::GetCharStr(target_from.str().c_str())); + s_VerifyFail++; + } + else + { + COMMON_LOGGER("Success %s\n", common::GetCharStr(target_from.str().c_str())); + s_VerifySuccess++; + } + break; + } + } + } + } + nn::crypto::Finalize(); + sdFile.Finalize(); + } + } + } + from_dir.Finalize(); + return ret_value; +} + + +void VerifyThreadFunc() +{ + nn::Result result; + + COMMON_LOGGER("VerifyThreadFunc Start\n"); + s_VerifyFail = 0; + s_VerifySuccess = 0; + + result = common::SdMountManager::Mount(); + + size_t bufSize = common::HeapManager::GetHeap()->GetAllocatableSize(); + + void* buf = common::HeapManager::GetHeap()->Allocate(bufSize, AES_BLOCK_SIZE); + if (buf != NULL) + { + u32 i = 0; + result = nn::fs::MountSpecialArchive(common::TWL_ARCHIVE_NAME_TABLE[i], common::TWL_FS_ARCHIVE_KIND[i]); + if (result.IsSuccess()) + { + VerifyDirectory( + (std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring( + common::SD_SAVEDATA_TWL_SOUND_ROOT_NAME)).c_str(), buf, bufSize); + + } + nn::fs::Unmount(common::TWL_ARCHIVE_NAME_TABLE[i]); + + i++; + + result = nn::fs::MountSpecialArchive(common::TWL_ARCHIVE_NAME_TABLE[i], common::TWL_FS_ARCHIVE_KIND[i]); + if (result.IsSuccess()) + { + VerifyDirectory( + (std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring( + common::SD_SAVEDATA_TWL_PHOTO_ROOT_NAME)).c_str(), buf, bufSize); + } + nn::fs::Unmount(common::TWL_ARCHIVE_NAME_TABLE[i]); + + result = nn::fs::MountSpecialArchive(common::NAND_ARCHIVE_NAME, nn::fs::CTR::ARCHIVE_TYPE_CTR_NAND); + if(result.IsSuccess()) + { + VerifyDirectory( + (std::wstring(common::SDMC_ROOT_DIRECTORY_PATH) + ::std::wstring(common::SD_SAVEDATA_ROOT_NAME)).c_str(), + buf, bufSize); + } + nn::fs::Unmount(common::NAND_ARCHIVE_NAME); + + common::HeapManager::GetHeap()->Free(buf); + } + + common::SdMountManager::Unmount(); + + COMMON_LOGGER("Verify Thread Finalize\n"); + + COMMON_LOGGER("\n\n"); + COMMON_LOGGER("Verify Finished, success = %d, fail = %d\n", s_VerifySuccess, s_VerifyFail); +} + +extern "C" void nnMain(void) +{ + nn::Result result; + + // os の初期化 + nn::os::Initialize(); + + // fs の初期化 + nn::fs::Initialize(); + + // appletの初期化 + nn::applet::Enable( false ); + + // hid の初期化 + result = nn::hid::Initialize(); + NN_UTIL_PANIC_IF_FAILED(result); + + // ヒープの確保 + common::HeapManager::GetHeap()->Initialize(nn::os::GetDeviceMemoryAddress(), nn::os::GetDeviceMemorySize(), nn::os::ALLOCATE_OPTION_LINEAR); + + // RenderSystem の準備 + uptr heapForGx = reinterpret_cast(common::HeapManager::GetHeap()->Allocate(s_GxHeapSize)); + demo::RenderSystemDrawing s_RenderSystem; + s_RenderSystem.Initialize(heapForGx, s_GxHeapSize); + + // ログ描画の初期化 + common::Logger::GetLoggerInstance()->Initialize(CONSOLE_WIDTH, CONSOLE_HEIGHT, CONSOLE_MAX_LINE, &s_RenderSystem); + + // RenderSystemを作ってからログが出せる + common::Logger::InitializeEjectThread(); + + COMMON_LOGGER("Verify Start\n"); + + // ボタン入力 + nn::hid::PadReader s_PadReader; + nn::hid::PadStatus padStatus; + + for(;;) + { + s_PadReader.ReadLatest(&padStatus); + + if(padStatus.trigger & nn::hid::BUTTON_A) + { + // SDにコピーするためのスレッドの作成 + if(s_VerifyThread.IsValid() && !s_VerifyThread.IsAlive()) + { + s_VerifyThread.Join(); + s_VerifyThread.Finalize(); + } + s_VerifyThread.Start(VerifyThreadFunc, s_VerifyThreadStack); + } + + // コンソールスクロール + if(padStatus.hold & nn::hid::BUTTON_UP) + { + common::Logger::GetLoggerInstance()->ScrollUp(); + } + + // コンソールスクロール + if(padStatus.hold & nn::hid::BUTTON_DOWN) + { + common::Logger::GetLoggerInstance()->ScrollDown(); + } + + if(padStatus.hold & nn::hid::BUTTON_LEFT) + { + common::Logger::GetLoggerInstance()->ScrollToBegin(); + } + + if(padStatus.hold & nn::hid::BUTTON_RIGHT) + { + common::Logger::GetLoggerInstance()->ScrollToEnd(); + } + + s_RenderSystem.SetRenderTarget(NN_GX_DISPLAY0); + s_RenderSystem.Clear(); + s_RenderSystem.SetColor(1.f, 1.f, 1.f); + + common::Logger::GetLoggerInstance()->DrawConsole(); + s_RenderSystem.SwapBuffers(); + + s_RenderSystem.WaitVsync(NN_GX_DISPLAY_BOTH); + } +} diff --git a/tags/ConsoleDataMigration/1stNUP_2/sources/tools/OMakefile b/tags/ConsoleDataMigration/1stNUP_2/sources/tools/OMakefile new file mode 100644 index 0000000..2d83e1f --- /dev/null +++ b/tags/ConsoleDataMigration/1stNUP_2/sources/tools/OMakefile @@ -0,0 +1,16 @@ +#!/usr/bin/env omake +#---------------------------------------------------------------------------- +# Project: Horizon +# File: OMakefile +# +# Copyright (C)2009 Nintendo Co., Ltd. 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. +# +# $Rev$ +#---------------------------------------------------------------------------- +.SUBDIRS: $(glob D, *)