diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/AutoBoot.bsf b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/AutoBoot.bsf new file mode 100644 index 0000000..104a94d Binary files /dev/null and b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/AutoBoot.bsf differ diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/OMakefile b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/OMakefile new file mode 100644 index 0000000..4119934 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/OMakefile @@ -0,0 +1,70 @@ +#!/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 = BOTH +CTR_MAKE_DEVELOPMENT_IMAGE = true + +TARGET_PROGRAM = PreinstallListUp + +SAMPLED_DEMOS_COMMON_INCLUDE_DIR = $(dir $(HORIZON_ROOT)/../CTR/SampleDemos/common/include) +INCLUDES += $(SAMPLED_DEMOS_COMMON_INCLUDE_DIR) \ + ../../common + +SOURCES[] = + main.cpp + ../../common/Util.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/VersionDetect.cpp + ../../ConsoleRestore/PreinstallImporter.cpp + ../../ConsoleRestore/SimpleXmlPreprocessor.cpp + ../../ConsoleRestore/XmlCreator.cpp + ../../ConsoleRestore/BgsCommunicator.cpp + + +CTR_BANNER_SPEC = AutoBoot.bsf + +ROMFS_ROOT = ../../common/romfiles + +LIBS += libnn_cfg \ + libnn_crypto \ + libnn_mcu \ + libnn_ps \ + lib_demo \ + libnn_nwm \ + libnn_friends \ + libnn_ns \ + libnn_am \ + libnn_nim \ + libnn_xml_simple \ + +INSTALL_SDK_TOOL = true + +ROM_SPEC_FILE = $(TARGET_PROGRAM).rsf +DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/private/RepairTool.desc + +include $(ROOT_OMAKE)/modulerules + +build: $(DEFAULT_TARGETS) diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/PreinstallListUp.rsf b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/PreinstallListUp.rsf new file mode 100644 index 0000000..7da6be3 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/PreinstallListUp.rsf @@ -0,0 +1,47 @@ +BasicInfo: + Title : PreinstallListUp + ProductCode: PreinstallListUp + BackupMemoryType: None + +TitleInfo: + Use: Evaluation + Category: Application + UniqueId: 0xf8021 + Version: 0 + +SystemControlInfo: + AppType : Application + StackSize : 0x4000 + Dependency : + - codec + - 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/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/model.cbmd b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/model.cbmd new file mode 100644 index 0000000..f1c7b62 Binary files /dev/null and b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/model.cbmd differ diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/sound.cbsd b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/sound.cbsd new file mode 100644 index 0000000..f1c7b62 Binary files /dev/null and b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/sound.cbsd differ diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/unknown24x24.ctpk b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/unknown24x24.ctpk new file mode 100644 index 0000000..794b136 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/unknown24x24.ctpk @@ -0,0 +1 @@ +888yyYyYyyyYyyYyyyyYyYy8 \ No newline at end of file diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/unknown48x48.ctpk b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/unknown48x48.ctpk new file mode 100644 index 0000000..8c7da16 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/banner/unknown48x48.ctpk @@ -0,0 +1 @@ +Y8888ƺ8888YYyyYYޚ޺yY8YyYYޚyY8ޚ8 \ No newline at end of file diff --git a/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/main.cpp b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/main.cpp new file mode 100644 index 0000000..70739c9 --- /dev/null +++ b/trunk/ConsoleDataMigration/sources/tools/PreinstallListUp/main.cpp @@ -0,0 +1,207 @@ +/*---------------------------------------------------------------------------* + Project: Horizon + File: main.cpp + + Copyright (C)2011 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 +#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 "common_Types.h" +#include "VersionDetect.h" +#include "Util.h" +#include "CommonLogger.h" +#include "SdReaderWriter.h" +#include "../ConsoleRestore/PreinstallImporter.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 THREAD_STACK_SIZE = 0x2000; +nn::os::Thread s_Thread; +nn::os::StackBuffer s_ThreadStack; + +} + +namespace PreinstallListUp +{ + +void ThreadFunc() +{ + COMMON_LOGGER("GetPreinstalledInfo\n"); + nn::Result result; + + // シリアルナンバーの取得 + u8 serialNo[nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN]; + std::memset(serialNo, '\0', + nn::cfg::CTR::CFG_SECURE_INFO_SERIAL_NO_LEN); + result = nn::cfg::CTR::system::GetSerialNo(serialNo); + COMMON_LOGGER_RETURN_VOID_IF_FAILED(result); + + // デバイスIDの取得 + bit32 deviceId; + result = nn::ps::CTR::GetDeviceId(&deviceId); + COMMON_LOGGER_RETURN_VOID_IF_FAILED(result); + const bit64 infraDeviceId = deviceId + common::INFRA_DEVICE_ID_OFFSET; + + ConsoleRestore::PreinstallImporter importer; + + size_t num; + nn::ProgramId list[256]; + result = importer.ListTitles(list, &num, infraDeviceId, serialNo); + if(result == nn::MakePermanentResult(nn::Result::SUMMARY_NOT_FOUND, + nn::Result::MODULE_APPLICATION, nn::Result::DESCRIPTION_NOT_FOUND)) + { + COMMON_LOGGER("No PreInstalled Application found\n"); + } + else + { + COMMON_LOGGER("Preinstalled num = %d\n", num); + for (u32 i = 0; i < num; i++) + { + COMMON_LOGGER("%016llx\n", list[i]); + } + } + COMMON_LOGGER_RETURN_VOID_IF_FAILED(result); +} + +extern "C" void nninitSetupDaemons(void) +{ +} + + +extern "C" void nnMain(void) +{ + nn::Result result; + + // os の初期化 + nn::os::Initialize(); + + // fs の初期化 + nn::fs::Initialize(); + + // appletの初期化 + nn::applet::Enable( false ); + + // cfgの初期化 + nn::cfg::CTR::init::Initialize(); + nn::cfg::CTR::system::Initialize(); + + // hid の初期化 + result = nn::hid::Initialize(); + NN_ERR_THROW_FATAL_IF_FATAL_ONLY(result); + + // ps の初期化 + nn::ps::Initialize(); + + // ヒープの確保 + common::InitializeHeap(); + + // RenderSystem の準備 + common::HeapManager gxHeap(s_GxHeapSize); + uptr heapForGx = reinterpret_cast(gxHeap.GetAddr()); + 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(); + + s_Thread.Start(ThreadFunc, s_ThreadStack); + + // ボタン入力 + nn::hid::PadReader s_PadReader; + nn::hid::PadStatus padStatus; + + for(;;) + { + s_PadReader.ReadLatest(&padStatus); + + // コンソールスクロール + 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); + } +} + +}