diff --git a/branches/CardCupForNBD/CardCup/CardCup.rsf b/branches/CardCupForNBD/CardCup/CardCup.rsf index 8c0de8c..1b26702 100644 --- a/branches/CardCupForNBD/CardCup/CardCup.rsf +++ b/branches/CardCupForNBD/CardCup/CardCup.rsf @@ -4,9 +4,6 @@ BasicInfo: BackupMemoryType: None Logo: Nintendo -CardInfo: - CardDevice: None - TitleInfo: Use: Evaluation UniqueId: 0xf802a @@ -15,14 +12,9 @@ TitleInfo: SystemControlInfo: AppType : Application Dependency: - - nwm - - socket - - ssl - - friends - - ac - - cecd - - boss - - ndm + - codec + - hid + - gsp Rom: # ROM に含めるファイルシステムのルートパスを指定します。 HostRoot: "$(ROMFS_ROOT)" diff --git a/branches/CardCupForNBD/CardCup/OMakefile b/branches/CardCupForNBD/CardCup/OMakefile index 23eabde..8091212 100644 --- a/branches/CardCupForNBD/CardCup/OMakefile +++ b/branches/CardCupForNBD/CardCup/OMakefile @@ -30,6 +30,7 @@ LIBS += lib_demo \ libnn_cup \ libnn_ns \ libnn_erreula \ + libnn_ulcd \ LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_demo) LIBFILES += $`(addprefix $(NW4C_ROOT)$(DIRSEP)libraries$(DIRSEP)$(config.getTargetSubDirectory true)$(DIRSEP), libnw_dev) @@ -48,14 +49,14 @@ ROMFS_FILES[] += $(ROMFS_ROOT)/shaders/nwfont_TextWriterShader.shbin $(ROMFS_ROOT)/shaders/nwfont_RectDrawerShader.shbin -DESCRIPTOR = $(HORIZON_ROOT)/resources/specfiles/SelfCup.desc +DESCRIPTOR = SelfCup.desc -TARGET_PROGRAM = CardCup +TARGET_PROGRAM = SelfCupToolForNWTrial TITLE = CardCup ROM_SPEC_FILE = CardCup.rsf -CTR_BANNER_SPEC = $(TARGET_PROGRAM).bsf +CTR_BANNER_SPEC = SelfCupTool.bsf include $(NW4C_ROOT)/build/omake/modulerules diff --git a/branches/CardCupForNBD/CardCup/Readme.txt b/branches/CardCupForNBD/CardCup/Readme.txt index d9c453f..0154f95 100644 Binary files a/branches/CardCupForNBD/CardCup/Readme.txt and b/branches/CardCupForNBD/CardCup/Readme.txt differ diff --git a/branches/CardCupForNBD/CardCup/SelfCup.desc b/branches/CardCupForNBD/CardCup/SelfCup.desc new file mode 100644 index 0000000..3a22dd7 --- /dev/null +++ b/branches/CardCupForNBD/CardCup/SelfCup.desc @@ -0,0 +1,230 @@ +AccessControlDescriptor: + AffinityMask: 1 + AutoGen: true + CoreVersion: 3 + DescVersion: 2 + Descriptor: | + AP///wAABAADAAAAAAAFGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiAAAAAAAAABBUFQ6VQAAACRo + aW9GSU8AJGhvc3RpbzAkaG9zdGlvMWFjOnUAAAAAYm9zczpVAABjYW06dQAA + AGNlY2Q6dQAAY2ZnOnUAAABkbHA6RktDTGRscDpTUlZSZHNwOjpEU1BmcmQ6 + dQAAAGZzOlVTRVIAZ3NwOjpHcHVoaWQ6VVNFUmh0dHA6QwAAbWljOnUAAABu + ZG06dQAAAG5ld3M6dQAAbndtOjpVRFNwdG06dQAAAHB4aTpkZXYAc29jOlUA + AABzc2w6QwAAAHkycjp1AAAAaXI6dQAAAABhbTpzeXMAAG5zOnMAAAAAAAAA + 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 + 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:u + - am:sys + - ns:s + Signature: | + JoBlPTNpFJiK0Vb+pw2vG5sMzDb6Z4wzALKvDHCSxDLZccb2sZS68CEsfhRD + j2oxkUaPuT9vKqM2fHZWdIswWhgSDXTH2fMxI3EEv69bx/Q/TOmVXdgAdyDs + 3f9jnbFls6/TSWurjEuP6lHvJRFu/6uf+OMw0J70IGdTEhStY9F8ow22CQwy + bFsOTc/NXLqBcfCvbEWBLU9NF61mosAUWh0tmC2TDWi6lX7Yy4gbzehRdRwi + S8LHYSR0j3uTmNG8no9dJblwrvL92EtWaNNO7GJpvCXUGD3ZROAvQkztOgUB + y625LBuluwzDpPtZKOu94I61HzFW0Y9FRDxDVDkoMQ== + StorageId: + - 0 +CommonHeaderKey: + D: | + SN7UPSo53uqDohKCYF4ToTBmqKDa5LJk/fT5rV5TiZa1oz2locDUSu77FRZp + JI4GRKc5mZG0MUh7WDD1ZVrE5sfaIA+yMYIHyAbXmL/nICn9Ef1mXnXCsX/O + Q+c/YNpRyluF94o/XM1f47z1wWM88vycWxMxpCQsQuHjZxtbDZ3bwGA3UrJC + D89jW4faZrAwfmqmdY3Iiv0lMeKSMb46BXBGMZ3Cm6lsbMvyF5xM/xaU0hGE + AYvoZ+2JzhevgojbVdMZo95UzsMBUpJe2/tH3svPtwYn2PfUbXJ46hKof0Nw + 2B8jLMoTd5AIqpHZMdg1xy6cV6k6eYr3dNjMhEnwgQ== + DP: | + Jjc+wFMt0tdOmsHyMMpn7lQBiZbyFk2uX2SM2cgVnF89ybRvXDh1sNKrQOCs + OcpiKyCBGSNTQSy+250wVS3S4LML0syDE3v1qnS2Tilq/mSA4h3VYKQaIjOP + kQCjcy2rcjRLdTbgzsP/vuomz8qhk9pdbF2ag/H/b7a8IeSWiBk= + DQ: | + dxgd/9odYmc6TAED2mzyCyoNFEMD+dL5mgDb2S6DHKNE2JGXPaNe4m5qgswb + dfPolU0IxMfMk97wgDjSftd49Q9UhnA80I+vg449vTk0pb6ARC4uQAiR/I89 + RzLCL/Xv8h1xLmb6aCiFtUoRUZuqk702SFZfAPl2lYbbEjm3sj0= + Exponent: | + AQAB + InverseQ: | + t7+DBhtWfLIKD3+57prNyoRgeXl9P8OZN+sXOC0ccKXFvvoG8HI3Xaf7z6gu + SfiKjRbSyou4GqLQGIvO2FJZVkIV+dbDrXC46J/UU2cSmJUNyWjwItgDQo0b + aL+dfl0JqNuQLomqJXU7KKhDZCstCR/Ye7z1NWRzAvasjuq613w= + Modulus: | + s24VC3NBkbOKPU7pouZC76Yzy3Dp+Ed/z56o164jUUbcKW270eT5HGy0tXQY + RD5G0PY2BhxLb53wJ9KUGu7JJvsB2ItLV4dIqDDvJRVQGgS+eugmbutQBFVB + DiJZfUjkuqVIlvhy3xzSsHv5hUfGWahGZxqDzWzh+12M0jR/gly3XAmIxKYd + Kqc3nyTaefOcLl6MArmQYMU83j8hlmqlCtuWQhvTiQFGFyIZFr9+zzfPgRzt + mKQbhrsGMqtBIitI4jS0ze9caA0JeoD7Y1p79bhPu3PU9rId01YnrV6zSddj + Zd9LEsNqFCsHS7Vlafd7KOtu6uvtYYXIVUUH6lrBZw== + P: | + 3xUo397CAFhSrqGwZECAQZPeeLnI5JBOvNKymBygLEFyJX3qQv0aI0KnCdN4 + PxWvFjOsw4+jzKZGMXtV8ySk9n1g1lkbqLD4mUjqeMyy2x4PPvkgAJS7wpBg + yQdUbqljh1Myio29IsqtaJdaxi8MnuJdDK26H7Tr0EGTVtMFX8k= + Q: | + zef2+iAMFC8JVAXjXHYi4EXAlhdsQ9pB3gF4pUntI2sNwzwJqna0MmPnpDJJ + 5dGpKFRhGeyILSMwQVRKBEEoKQJtsIeGcQfgCX5r8fIL2iW5sz4AH32W0HoQ + AkT6AfkOhT5NsRe13gJII9+S1V1gNQAbszP7/1rVDdrAYBhFj68= +DefaultSpec: + AccessControlInfo: + AffinityMask: 1 + FirmwareVersion: 3 + 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: 0x0004013000002403L + am: 0x0004013000001503L + boss: 0x0004013000003403L + camera: 0x0004013000001603L + cecd: 0x0004013000002603L + cfg: 0x0004013000001703L + codec: 0x0004013000001803L + csnd: 0x0004013000002703L + dlp: 0x0004013000002803L + dsp: 0x0004013000001a03L + friends: 0x0004013000003203L + gpio: 0x0004013000001b03L + gsp: 0x0004013000001c03L + hid: 0x0004013000001d03L + http: 0x0004013000002903L + i2c: 0x0004013000001e03L + mcu: 0x0004013000001f03L + mic: 0x0004013000002003L + ndm: 0x0004013000002b03L + news: 0x0004013000003503L + nim: 0x0004013000002c03L + nwm: 0x0004013000002d03L + pdn: 0x0004013000002103L + ps: 0x0004013000003103L + ptm: 0x0004013000002203L + socket: 0x0004013000002e03L + spi: 0x0004013000002303L + ssl: 0x0004013000002f03L + StackSize: 16384 diff --git a/branches/CardCupForNBD/CardCup/CardCup.bsf b/branches/CardCupForNBD/CardCup/SelfCupTool.bsf similarity index 100% rename from branches/CardCupForNBD/CardCup/CardCup.bsf rename to branches/CardCupForNBD/CardCup/SelfCupTool.bsf diff --git a/branches/CardCupForNBD/CardCup/main.cpp b/branches/CardCupForNBD/CardCup/main.cpp index c0831e0..5d34905 100644 --- a/branches/CardCupForNBD/CardCup/main.cpp +++ b/branches/CardCupForNBD/CardCup/main.cpp @@ -24,7 +24,6 @@ #include #include #include -#include #include #include @@ -62,6 +61,47 @@ namespace s_appHeap.Free(gxHeap); } +nn::ProgramId GetHomeMenuProgramId(nn::cfg::CTR::CfgRegionCode region) +{ +nn::ProgramId pid; +bit32 uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_HOMEMENU; +bit8 ver = nn::CTR::PROGRAM_ID_VERSION_HOMEMENU; + + switch( region ) + { + case nn::cfg::CTR::CFG_REGION_AMERICA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_US; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_US; + break; + + case nn::cfg::CTR::CFG_REGION_EUROPE: + case nn::cfg::CTR::CFG_REGION_AUSTRALIA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_EU; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_EU; + break; + + case nn::cfg::CTR::CFG_REGION_CHINA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_CN; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_CN; + break; + + case nn::cfg::CTR::CFG_REGION_KOREA: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_KR; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_KR; + break; + + case nn::cfg::CTR::CFG_REGION_TAIWAN: + uid = nn::CTR::PROGRAM_ID_UNIQUE_ID_SYSMENU_TW; + ver = nn::CTR::PROGRAM_ID_VERSION_SYSMENU_TW; + break; + } + + pid = nn::CTR::MakeProgramId( nn::CTR::PROGRAM_ID_CATEGORY_APPLET, + uid, + ver ); // プログラムID + return pid; +} + // デモの初期化 void Initialize() { @@ -71,12 +111,6 @@ namespace // NuiShellの初期化 (CUPに必須) NN_UTIL_PANIC_IF_FAILED(nn::ns::CTR::InitializeForShell()); - // ndmの初期化 - nn::ndm::Initialize(); - - // 全デーモンの自律動作をacの自動接続も含めて止める - nn::ndm::SuspendScheduler(); - // amの初期化 nn::am::InitializeForSystemMenu(); @@ -188,30 +222,8 @@ extern "C" void nnMain() // ロゴ表示開始 StartDrawerThread(); - nn::ProgramId MMEN_PROGRAM_ID = 0x0004003000008202; - nn::cfg::CfgRegionCode region = nn::cfg::GetRegion(); - switch(region) - { - case nn::cfg::CFG_REGION_AMERICA: - { - MMEN_PROGRAM_ID = 0x0004003000008f02; - } - break; - - case nn::cfg::CFG_REGION_EUROPE: - case nn::cfg::CFG_REGION_AUSTRALIA: - { - MMEN_PROGRAM_ID = 0x0004003000009802; - } - break; - - case nn::cfg::CFG_REGION_JAPAN: - { - MMEN_PROGRAM_ID = 0x0004003000008202; - } - break; - } + nn::ProgramId MMEN_PROGRAM_ID = GetHomeMenuProgramId(region); nn::am::ProgramInfo outInfos; result = nn::am::GetProgramInfos(&outInfos, nn::fs::MEDIA_TYPE_NAND, &MMEN_PROGRAM_ID, 1); @@ -262,7 +274,6 @@ extern "C" void nnMain() nn::cfg::Finalize(); nn::fs::Finalize(); nn::am::FinalizeForSystemMenu(); - nn::ndm::Finalize(); nn::ns::FinalizeForShell(); nn::applet::PrepareToCloseApplication();