From 463f366e2bc51e4157a1d7b37675466cfea1aee3 Mon Sep 17 00:00:00 2001 From: smea Date: Thu, 20 Nov 2014 03:05:51 -0800 Subject: [PATCH 1/2] added prototype to soc.h --- libctru/include/3ds/services/soc.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libctru/include/3ds/services/soc.h b/libctru/include/3ds/services/soc.h index 32fb909..0b34775 100644 --- a/libctru/include/3ds/services/soc.h +++ b/libctru/include/3ds/services/soc.h @@ -3,3 +3,5 @@ Result SOC_Initialize(u32 *context_addr, u32 context_size);//Example context_size: 0x48000. The specified context buffer can no longer be accessed by the process which called this function, since the userland permissions for this block are set to no-access. Result SOC_Shutdown(); int SOC_GetErrno(); + +long gethostid(); From dfde24702bf6044158d52c5ec59e5990ff821d53 Mon Sep 17 00:00:00 2001 From: profi200 Date: Thu, 20 Nov 2014 14:58:24 +0100 Subject: [PATCH 2/2] Added comments to the app_launch example for better understanding for beginners --- examples/app_launch/source/main.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/examples/app_launch/source/main.c b/examples/app_launch/source/main.c index 0077c6c..807cb39 100644 --- a/examples/app_launch/source/main.c +++ b/examples/app_launch/source/main.c @@ -6,37 +6,47 @@ int main() { - srvInit(); - aptInit(); - gfxInit(); - hidInit(NULL); + srvInit(); // Needed + aptInit(); // Needed + gfxInit(); // Init graphic stuff + hidInit(NULL); // For input (buttons, touchscreen...) + // We need these 2 buffers for APT_DoAppJump() later. They can be smaller too u8 buf0[0x300]; u8 buf1[0x20]; + // Loop as long as the status is not exit while(aptMainLoop()) { + // Scan hid shared memory for input events hidScanInput(); - if(hidKeysDown() & KEY_A) + if(hidKeysDown() & KEY_A) // If the A button got pressed, start the app launch { + // Clear both buffers memset(buf0, 0, 0x300); memset(buf1, 0, 0x20); + // Open an APT session so we can talk to the APT service aptOpenSession(); - APT_PrepareToDoAppJump(NULL, 0, 0x0004001000022400LL, 0); // *EUR* camera app - APT_DoAppJump(NULL, 0x300, 0x20, buf0, buf1); + // Prepare for the app launch + APT_PrepareToDoAppJump(NULL, 0, 0x0004001000022400LL, 0); // *EUR* camera app title ID + // Tell APT to trigger the app launch and set the status of this app to exit + APT_DoAppJump(NULL, 0x300 /* size of buf0 */, 0x20 /* size of buf1 */, buf0, buf1); + // Close the APT session because we don't need APT anymore aptCloseSession(); } + // Flush + swap framebuffers and wait for VBlank. Not really needed in this example gfxFlushBuffers(); gfxSwapBuffers(); gspWaitForVBlank(); } + // Deinit everything before the app process get's terminated hidExit(); gfxExit(); aptExit();