diff --git a/trunk/BoxyardEraser/BoxyardEraser.rsf b/trunk/BoxyardEraser/BoxyardEraser.rsf index f8a2817..9735c38 100644 --- a/trunk/BoxyardEraser/BoxyardEraser.rsf +++ b/trunk/BoxyardEraser/BoxyardEraser.rsf @@ -1,5 +1,5 @@ BasicInfo: - Title : TitleEraser + Title : BoxyardEraser ProductCode: CTR-P-237A BackupMemoryType: None diff --git a/trunk/BoxyardEraser/BoxyardRemover.desc b/trunk/BoxyardEraser/BoxyardRemover.desc new file mode 100644 index 0000000..3125817 --- /dev/null +++ b/trunk/BoxyardEraser/BoxyardRemover.desc @@ -0,0 +1,232 @@ +AccessControlDescriptor: + AffinityMask: 1 + AutoGen: true + CoreVersion: 2 + DescVersion: 2 + Descriptor: | + AP///wAABAACAAAAAAAFGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIAAAAAAAABBUFQ6VQAAACRo + aW9GSU8AJGhvc3RpbzAkaG9zdGlvMWFjOnUAAAAAYm9zczpVAABjYW06dQAA + AGNlY2Q6dQAAY2ZnOnUAAABkbHA6RktDTGRscDpTUlZSZHNwOjpEU1BmcmQ6 + dQAAAGZzOlVTRVIAZ3NwOjpHcHVoaWQ6VVNFUmh0dHA6QwAAbWljOnUAAABu + ZG06dQAAAG5ld3M6dQAAbndtOjpVRFNwdG06dQAAAHB4aTpkZXYAc29jOlUA + AABzc2w6QwAAAHkycjp1AAAAaXI6VVNFUgBsZHI6cm8AAGFtOnUAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAD+//vw/7//8ec/APIA8JH/APaR/1D/gf9Y/4H/cP+B/3j/gf8B + AQD/AAIA/v////////////////////////////////////////////////// + ////////////////////////////////////////AAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAI= + DisableDebug: false + EnableInterruptNumbers: [] + EnableSystemCalls: + ArbitrateAddress: 34 + Break: 60 + CancelTimer: 28 + ClearEvent: 25 + ClearTimer: 29 + CloseHandle: 35 + ConnectToPort: 45 + ControlMemory: 1 + CreateAddressArbiter: 33 + CreateEvent: 23 + CreateMemoryBlock: 30 + CreateMutex: 19 + CreateSemaphore: 21 + CreateThread: 8 + CreateTimer: 26 + DuplicateHandle: 39 + ExitProcess: 3 + ExitThread: 9 + GetCurrentProcessorNumber: 17 + GetHandleInfo: 41 + GetProcessAffinityMask: 4 + GetProcessId: 53 + GetProcessIdOfThread: 54 + GetProcessIdealProcessor: 6 + GetProcessInfo: 43 + GetResourceLimit: 56 + GetResourceLimitCurrentValues: 58 + GetResourceLimitLimitValues: 57 + GetSystemInfo: 42 + GetSystemTick: 40 + GetThreadAffinityMask: 13 + GetThreadContext: 59 + GetThreadId: 55 + GetThreadIdealProcessor: 15 + GetThreadInfo: 44 + GetThreadPriority: 11 + MapMemoryBlock: 31 + OutputDebugString: 61 + QueryMemory: 2 + ReleaseMutex: 20 + ReleaseSemaphore: 22 + SendSyncRequest1: 46 + SendSyncRequest2: 47 + SendSyncRequest3: 48 + SendSyncRequest4: 49 + SendSyncRequest: 50 + SetProcessAffinityMask: 5 + SetProcessIdealProcessor: 7 + SetThreadAffinityMask: 14 + SetThreadIdealProcessor: 16 + SetThreadPriority: 12 + SetTimer: 27 + SignalEvent: 24 + SleepThread: 10 + UnmapMemoryBlock: 32 + WaitSynchronization1: 36 + WaitSynchronizationN: 37 + FileSystemAccess: + - Debug + - DirectSdmc + - DirectSdmcWrite + HandleTableSize: 512 + IORegisterMapping: + - 1ff50000-1ff57fff + - 1ff70000-1ff77fff + IdealProcessor: 1 + MemoryMapping: + - 1f000000-1f5fffff:r + MemoryType: Application + Priority: 24 + ProgramId: 0x00040000ffffff00L + ServiceAccessControl: + - APT:U + - $hioFIO + - $hostio0 + - $hostio1 + - ac:u + - boss:U + - cam:u + - cecd:u + - cfg:u + - dlp:FKCL + - dlp:SRVR + - dsp::DSP + - frd:u + - fs:USER + - gsp::Gpu + - hid:USER + - http:C + - mic:u + - ndm:u + - news:u + - nwm::UDS + - ptm:u + - pxi:dev + - soc:U + - ssl:C + - y2r:u + - ir:USER + - ldr:ro + - am:u + Signature: | + hiQzwen590fW0thDfToCcvkG0S+Uw+X9LKyUJarMsCJ5T14SlKlhKgT9Kkmd + yt1cCDqoEQguN5pQny5iS6usQ51/ORdfO0Qf/ZSYvXNqEZyP2zG54sGd1Uie + /TftK28EhpufbgOCFaPbv3Tnbp5EUZaG0OAwNs0ez4605+e1AzGUrEspzCYK + sqYfTDFDmBz2dul/gvU2kRjGUUYyrw1Eg5ZJPt53LX/DePKXZnvb3eeel/sq + ZOgYLnc2n2upzkpO/dr6Wer2D4o3lpPk1parE6orOyRDB0TTFu6u5aqRldf8 + t8D2fz7keTdyYlhjEgAGUkcEU7ZU1SrvpwD5ktNyaA== + StorageId: + - 0 +CommonHeaderKey: + D: | + xsiNQCpJR94/2XdRoz1v6+OKN8UF+Ev/J5/u4e+EOY1Jjpc7BMg3KRZkrNym + +LYe8vqMT7I/5d3rgasgrX3FAEoIPL9VvL4IqfjZcyo/75o+NE6TOWUp3K3Z + UbDwgMscl9nLPnOFiGFbZsMV/Aa0ro1w7+hXt3+diJaCHzimI0NNy5a8Beqi + Tm1Od3e5lCepBcypiniam9AyMwd3tGHKuMPg3WV6KPyE8lefPkrMkiYHVITY + wvcDvra83T4vprQySXAKuzUDZdrlzCtPe+Bz1eJkWQUuY3MuGNb9OmjQvKzc + w+GF9oNWvV729IH4pwcsgZYMyT+0ok81VeqMHm2HLQ== + DP: | + YdqZEbc18syS7xGY/emuqX+bQPcxgnXpCQVFA8Yh43ztQKPWTxCe9aUE1sY6 + sraf/MT3x3hTlATlOqxJxQZeXxPlQm6Vcpq5iCn78GThugKS5yEkbNaSdQ8T + atWoGbDlQfWgcRovbhd71vzguIP028yGIDuzNnlz5IDZthMfiNU= + DQ: | + ixmQMZXKCcoocsnule/XIpYFQcX3W61Jl6xQs0J4kZCFxUQOb9rjoalVsdRA + 9J11fi5GJ0OTsVc7GuN6dRful9IXDscM3BiJUA8aMmTCxuZpc5xjpXQZ1O1e + wk8IwtamgurCUqW2gsRDMtGjh4gyYT1ybxiyKDI235aBCpTiGws= + Exponent: | + AQAB + InverseQ: | + EMZs1VAoSlb/lK8k5JK+8jJqnZdkikQBZglABYxOdnUy0k//ZQv7bvPsWJFi + fC/KK4U5Cs1ecNIEv6yHqUmpLYVro+7pAcUckvCiknBLJZ1zYNq02cObUhjr + AnHhuKZmS7E+jRyEKH5Sh8wQf1LNG1lR6fH6Q86Adr7ltkKzwbI= + Modulus: | + 6zhbyBHBgjpggDJ9GPgrtqvMTV84dPgPqIHIwUYrkt4qg6vddoqxc6/NzLDJ + 7Avi/wgZc267X/g9tq0vkd+vFY7cR1idP0zCCiEs55a9RM1YMtRGyxdx52Y8 + +6k0ld48l5T24a1mwWWEIpXh8UImxHsKU9yXoCazpaCLukE09x3OxTkZYhYK + HJlRfsVAPWr2BbW4/chR061pzskxjEp9Iw9LEu9Msor/lCd6jASF9rdBbDoH + beY4+67JPDtVnJYyU55vUoLglXXAK73YksTWjFVG2fNp9OQLDZYSuhyInlry + mInm7uKcgQMdXxwe8DIYo4SGIlHg/TfRwcxaB1vd9Q== + P: | + 9o+b9xrx8fhM9rvVFRvR+BHXfpPHKrDDk7eenDWtTPmwQLvwhFmBuZtveP4v + DkjSG+ILlDUZnP2NO9Y7vIWnRoNrKrvoyKDnhVv837SWxjBazYJUCLDXOrH+ + e7+y/KTKTvbUs2SnPocYfhFwFDQFReoC67kXEn2SknY1fhbFehM= + Q: | + 9Dma3JAhr2OJRobNddJfR0zOGrp1KjQePO22IhSBUgoo0bZMcSvQbz+UNYkc + GryMnsgrN8bZdKxIoVo+dKYUHt333ztUJwUF6LnLE+4REynUyvawLNL76aLu + PdxKDhxAc461k5IHNFrRRJ+DS+0qntnUz2Ojo3FeR5+2tLO/SNc= +DefaultSpec: + AccessControlInfo: + AffinityMask: 1 + FirmwareVersion: 2 + HandleTableSize: 512 + IORegisterMapping: + - 1ff50000-1ff57fff + - 1ff70000-1ff77fff + IdealProcessor: 0 + MemoryMapping: + - 1f000000-1f5fffff:r + Priority: 16 + BasicInfo: + CompanyCode: "00" + Logo: Nintendo + Title: default + ExeFs: + ReadOnly: + - RO + ReadWrite: + - RW + Text: + - STUP_ENTRY + Media: + MediaType: Card + PlainRegion: + - .module_id + Rom: + DefaultReject: + - .* + File: + - "*" + SystemControlInfo: + Dependency: + ac: 0x0004013000002402L + am: 0x0004013000001502L + boss: 0x0004013000003402L + camera: 0x0004013000001602L + cecd: 0x0004013000002602L + cfg: 0x0004013000001702L + codec: 0x0004013000001802L + csnd: 0x0004013000002702L + dlp: 0x0004013000002802L + dsp: 0x0004013000001a02L + friends: 0x0004013000003202L + gpio: 0x0004013000001b02L + gsp: 0x0004013000001c02L + hid: 0x0004013000001d02L + http: 0x0004013000002902L + i2c: 0x0004013000001e02L + mcu: 0x0004013000001f02L + mic: 0x0004013000002002L + ndm: 0x0004013000002b02L + news: 0x0004013000003502L + nim: 0x0004013000002c02L + nwm: 0x0004013000002d02L + pdn: 0x0004013000002102L + ps: 0x0004013000003102L + ptm: 0x0004013000002202L + ro: 0x0004013000003702L + socket: 0x0004013000002e02L + spi: 0x0004013000002302L + ssl: 0x0004013000002f02L + StackSize: 16384 diff --git a/trunk/BoxyardEraser/OMakefile b/trunk/BoxyardEraser/OMakefile index 9a3ef58..4ef058e 100644 --- a/trunk/BoxyardEraser/OMakefile +++ b/trunk/BoxyardEraser/OMakefile @@ -26,7 +26,6 @@ SOURCES[] = main.cpp ResFont.cpp HeapManager.cpp - VersionDetect.cpp CTR_BANNER_SPEC = $(TARGET_PROGRAM).bsf @@ -61,8 +60,7 @@ LIBS += libnn_cfg \ INSTALL_SDK_TOOL = true ROM_SPEC_FILE = $(TARGET_PROGRAM).rsf -#DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/_private/RepairTool.desc -DESCRIPTOR = RepairTool.desc +DESCRIPTOR = BoxyardRemover.desc include $(ROOT_OMAKE)/modulerules diff --git a/trunk/BoxyardEraser/VersionDetect.cpp b/trunk/BoxyardEraser/VersionDetect.cpp deleted file mode 100644 index 14677bd..0000000 --- a/trunk/BoxyardEraser/VersionDetect.cpp +++ /dev/null @@ -1,125 +0,0 @@ -/*---------------------------------------------------------------------------* - 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" - -namespace common -{ - -nn::Result 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); - NN_UTIL_RETURN_IF_FAILED(result); - - nn::fs::FileInputStream fis; - - result = fis.TryInitialize(L"cver:/version.bin"); - NN_UTIL_RETURN_IF_FAILED(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); - NN_UTIL_RETURN_IF_FAILED(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:"); - } - - return result; -} - -nn::Result 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); - NN_UTIL_RETURN_IF_FAILED(result); - - nn::fs::FileInputStream fis; - - result = fis.TryInitialize(L"nver:/version.bin"); - NN_UTIL_RETURN_IF_FAILED(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); - NN_UTIL_RETURN_IF_FAILED(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:"); - } - - return result; -} - -nn::Result GetSystemVersion(common::VerDef* mVerData, nn::cfg::CTR::CfgRegionCode region) -{ - nn::Result result; - result = GetCupVersion(&mVerData->cup, region); - NN_UTIL_RETURN_IF_FAILED(result); - result = GetNupVersion(&mVerData->nup, region); - NN_UTIL_RETURN_IF_FAILED(result); - return result; -} - -} - diff --git a/trunk/BoxyardEraser/VersionDetect.h b/trunk/BoxyardEraser/VersionDetect.h deleted file mode 100644 index e9f3b28..0000000 --- a/trunk/BoxyardEraser/VersionDetect.h +++ /dev/null @@ -1,53 +0,0 @@ -/*---------------------------------------------------------------------------* - 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 -#include - -namespace common -{ - -// 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, -}; - - -struct VerDef -{ - nn::pl::CTR::CardUpdateVersion cup; - nn::pl::CTR::NetworkUpdateVersion nup; -}; - -nn::Result GetSystemVersion(common::VerDef* mVerData, nn::cfg::CTR::CfgRegionCode region); - -} - - -#endif /* VERSIONDETECT_H_ */ diff --git a/trunk/BoxyardEraser/main.cpp b/trunk/BoxyardEraser/main.cpp index 3336a00..44c23aa 100644 --- a/trunk/BoxyardEraser/main.cpp +++ b/trunk/BoxyardEraser/main.cpp @@ -27,7 +27,6 @@ #include "demo.h" #include "ResFont.h" #include "HeapManager.h" -#include "VersionDetect.h" #define UTIL_RETURN_IF_NOT_AM_NOT_FOUND(result) \ if(result.IsFailure()) \ @@ -51,9 +50,6 @@ nn::os::StackBuffer s_EraseThreadStack; demo::RenderSystemDrawing s_RenderSystem; -// バージョン情報 -common::VerDef s_VerData; - // グラフィックスに割り当てるメモリ const size_t s_GxHeapSize = 0x800000; @@ -256,8 +252,7 @@ extern "C" void nnMain(void) NN_UTIL_PANIC_IF_FAILED(result); // cfg の初期化 - nn::cfg::CTR::init::Initialize(); - nn::cfg::CTR::system::Initialize(); + nn::cfg::CTR::Initialize(); // リージョンの取得 nn::cfg::CTR::CfgRegionCode region; @@ -279,15 +274,6 @@ extern "C" void nnMain(void) std::vector operationMessage; s_pOperationMessage = &operationMessage; - // バージョンの取得 - result = common::GetSystemVersion(&s_VerData, region); - if(result.IsFailure()) - { - nn::dbg::PrintResult(result); - operationMessage.push_back(std::string("Failed Get Version Data")); - FatalDrawing(result); - } - operationMessage.push_back(std::string("Region: ") + std::string(nn::cfg::CTR::GetRegionCodeA3(region))); s_EraseThread.Start(EraseThreadFunc, region, s_EraseThreadStack);