diff --git a/libctru/include/3ds/os.h b/libctru/include/3ds/os.h index 84a25f9..22c8deb 100644 --- a/libctru/include/3ds/os.h +++ b/libctru/include/3ds/os.h @@ -1,13 +1,13 @@ #ifndef OS_H #define OS_H -typedef struct { - u8 major, minor, revision; -} sysVersion; + +#define SYSTEM_VERSION(major, minor, revision) \ + (((major)<<24)|((minor)<<16)|((revision)<<8)) u32 osConvertVirtToPhys(u32 vaddr); const char* osStrError(u32 error); -sysVersion osGetFirmVersion(); -sysVersion osGetKernelVersion(); +u32 osGetFirmVersion(); +u32 osGetKernelVersion(); #endif diff --git a/libctru/source/os.c b/libctru/source/os.c index 6d24080..62dfdb4 100644 --- a/libctru/source/os.c +++ b/libctru/source/os.c @@ -15,20 +15,12 @@ u32 osConvertVirtToPhys(u32 vaddr) return 0; } -sysVersion osGetFirmVersion() { - return (sysVersion) { - .major=*(u8*)0x1FF80003, - .minor=*(u8*)0x1FF80002, - .revision=*(u8*)0x1FF80001 - }; +u32 osGetFirmVersion() { + return (*(u32*)0x1FF80000) & ~0xFF; } -sysVersion osGetKernelVersion() { - return (sysVersion) { - .major=*(u8*)0x1FF80063, - .minor=*(u8*)0x1FF80062, - .revision=*(u8*)0x1FF80061 - }; +u32 osGetKernelVersion() { + return (*(u32*)0x1FF80060) & ~0xFF; } const char* osStrError(u32 error) {