// Include the most common headers from the C standard library #include #include #include // Include the main libnx system header, for Switch development #include // Size of the inner heap (adjust as necessary). #define INNER_HEAP_SIZE 0x80000 #ifdef __cplusplus extern "C" { #endif // Sysmodules should not use applet*. u32 __nx_applet_type = AppletType_None; // Sysmodules will normally only want to use one FS session. u32 __nx_fs_num_sessions = 1; // Newlib heap configuration function (makes malloc/free work). void __libnx_initheap(void) { static u8 inner_heap[INNER_HEAP_SIZE]; extern void* fake_heap_start; extern void* fake_heap_end; // Configure the newlib heap. fake_heap_start = inner_heap; fake_heap_end = inner_heap + sizeof(inner_heap); } // Service initialization. void __appInit(void) { Result rc; // Open a service manager session. rc = smInitialize(); if (R_FAILED(rc)) diagAbortWithResult(MAKERESULT(Module_Libnx, LibnxError_InitFail_SM)); // Retrieve the current version of Horizon OS. rc = setsysInitialize(); if (R_SUCCEEDED(rc)) { SetSysFirmwareVersion fw; rc = setsysGetFirmwareVersion(&fw); if (R_SUCCEEDED(rc)) hosversionSet(MAKEHOSVERSION(fw.major, fw.minor, fw.micro)); setsysExit(); } // Enable this if you want to use HID. /*rc = hidInitialize(); if (R_FAILED(rc)) diagAbortWithResult(MAKERESULT(Module_Libnx, LibnxError_InitFail_HID));*/ // Enable this if you want to use time. /*rc = timeInitialize(); if (R_FAILED(rc)) diagAbortWithResult(MAKERESULT(Module_Libnx, LibnxError_InitFail_Time)); __libnx_init_time();*/ // Disable this if you don't want to use the filesystem. rc = fsInitialize(); if (R_FAILED(rc)) diagAbortWithResult(MAKERESULT(Module_Libnx, LibnxError_InitFail_FS)); // Disable this if you don't want to use the SD card filesystem. fsdevMountSdmc(); // Add other services you want to use here. // Close the service manager session. smExit(); } // Service deinitialization. void __appExit(void) { // Close extra services you added to __appInit here. fsdevUnmountAll(); // Disable this if you don't want to use the SD card filesystem. fsExit(); // Disable this if you don't want to use the filesystem. //timeExit(); // Enable this if you want to use time. //hidExit(); // Enable this if you want to use HID. } #ifdef __cplusplus } #endif // Main program entrypoint int main(int argc, char* argv[]) { // Initialization code can go here. // Your code / main loop goes here. // If you need threads, you can use threadCreate etc. // Deinitialization and resources clean up code can go here. return 0; }