diff --git a/examples/mic/README.md b/examples/mic/README.md index 3f0c74c..f3e6d72 100644 --- a/examples/mic/README.md +++ b/examples/mic/README.md @@ -3,5 +3,3 @@ mic Example for using the microphone with ctrulib. Hold down the A button to record, the app will then play the recorded audio once the A button is released. Roughly 32 seconds of audio can be recorded with the default audiobuf size in this app. -Do not use this example(and/or ctrulib MIC?), since MIC is broken currently. - diff --git a/libctru/source/initSystem.c b/libctru/source/initSystem.c index efd1376..039f862 100644 --- a/libctru/source/initSystem.c +++ b/libctru/source/initSystem.c @@ -26,16 +26,18 @@ void __destroy_handle_list(void); void __attribute__((noreturn)) __ctru_exit(int rc) { + u32 tmp=0; + // Run the global destructors __libc_fini_array(); // TODO: APT exit goes here // Unmap the linear heap - svcControlMemory(&__linear_heap, __linear_heap, 0x0, __linear_heap_size, MEMOP_FREE, 0x0); + svcControlMemory(&tmp, __linear_heap, 0x0, __linear_heap_size, MEMOP_FREE, 0x0); // Unmap the application heap - svcControlMemory(&heapBase, heapBase, 0x0, __heap_size, MEMOP_FREE, 0x0); + svcControlMemory(&tmp, heapBase, 0x0, __heap_size, MEMOP_FREE, 0x0); // Close some handles __destroy_handle_list(); @@ -50,13 +52,15 @@ void __attribute__((noreturn)) __ctru_exit(int rc) void initSystem(void (*retAddr)(void)) { + u32 tmp=0; + // Register newlib exit() syscall __syscalls.exit = __ctru_exit; __system_retAddr = __service_ptr ? retAddr : NULL; // Allocate the application heap heapBase = 0x08000000; - svcControlMemory(&heapBase, heapBase, 0x0, __heap_size, MEMOP_ALLOC, 0x3); + svcControlMemory(&tmp, heapBase, 0x0, __heap_size, MEMOP_ALLOC, 0x3); // Allocate the linear heap svcControlMemory(&__linear_heap, 0x0, 0x0, __linear_heap_size, MEMOP_ALLOC_LINEAR, 0x3); diff --git a/libctru/source/services/mic.c b/libctru/source/services/mic.c index 817b9aa..463f94d 100644 --- a/libctru/source/services/mic.c +++ b/libctru/source/services/mic.c @@ -63,9 +63,6 @@ Result MIC_Shutdown() MIC_cmd5(); - ret = svcUnmapMemoryBlock(MIC_sharedmem_handle, (u32)MIC_sharedmem); - if(ret!=0)return ret; - ret = svcCloseHandle(MIC_sharedmem_handle); if(ret!=0)return ret;