#include <3ds/services/ac.h>
#include <3ds/services/apt.h>
#include <3ds/services/cfgnor.h>
+#include <3ds/services/cfgu.h>
#include <3ds/services/csnd.h>
#include <3ds/services/fs.h>
#include <3ds/services/gsp.h>
--- /dev/null
+#pragma once
+
+Result CFGU_Initialize(void);
+Result CFGU_Shutdown(void);
+
+Result CFGU_GetSystemModel(u8* model);
\ No newline at end of file
--- /dev/null
+#include <stdlib.h>
+#include <3ds.h>
+
+Handle CFGU_handle = 0;
+
+Result CFGU_Initialize()
+{
+ return srvGetServiceHandle(&CFGU_handle, "cfg:u");
+}
+
+Result CFGU_Shutdown()
+{
+ Result ret = svcCloseHandle(CFGU_handle);
+ CFGU_handle = 0;
+
+ return ret;
+}
+
+Result CFGU_GetSystemModel(u8* model)
+{
+ Result ret = 0;
+ u32 *cmdbuf = getThreadCommandBuffer();
+
+ cmdbuf[0] = 0x00050000;
+
+ if((ret = svcSendSyncRequest(CFGU_handle))!=0)return ret;
+
+ *model = (u8)cmdbuf[2];
+
+ return (Result)cmdbuf[1];
+}
\ No newline at end of file