Homebrew RELEASE SwitchIdent

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,272
Country
United States
Hello, 3DSident/VITAident dev here. I'm planning on continuing the identity tool series of <device>ident. The tool allows users to get various bits of information from your device, hence the name 'ident' as in identifying your device.

iVWliYI.jpg

Current version: 0.3

Features:
  • Displays system firmware version.
  • Displays hardware type and unit.
  • Displays serial number.
  • Displays DRAM ID.
  • Displays device ID.
  • Displays system region.
  • Displays CPU, GPU and EMC clocks.
  • Displays whether the switch is in docked/handheld state.
  • Displays IP Address.
  • Displays storage sizes for SD, NAND (user) and NAND (system).
  • Displays various system statuses. (Bluetooth, WLAN, NFC, etc.)
  • Displays battery percentage and charging status.
  • Displays if battery charging is enabled.
  • Displays if ample power is supplied.
  • Displays wireless RSSI signals and quality.
  • Displays battery voltage sate.
  • Displays battery lot number.
  • Displays SD and gamecard slot statuses.
  • Displays WiFi and Bluetooth MAC address.
  • Display battery age (in percentage and pcm).
  • Display battery internal and external temperature.
  • Display battery internal and external temperature.
  • Display battery charger input and output current limit.
  • Display battery charging current limit.
  • Display battery charging voltage limit.
  • Display battery capacity (pcm) and age (pcm).
  • Display battery voltage avg.
  • Display battery charger type.
  • Display battery charger current limit.
  • Display battery charger voltage limit.

The eye blinding white GUI:
8StjYdi.jpg


The discontinued console UI:
lSfrKl4.jpg

Download: https://github.com/joel16/SwitchIdent/releases
 
Last edited by Joel16,

Miqote

Well-Known Member
Member
Joined
May 2, 2018
Messages
259
Trophies
0
XP
822
Country
Macedonia, The Former Yugoslav Republic of
I threw it into my dev environment and it spit this out:

Code:
$ make
kernel.c
aarch64-none-elf-gcc -MMD -MP -MF /d/switchdev/examples/switch/SwitchIdent-master/build/kernel.d -g -Werror -O2 -ffunction-sections -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE  -I/d/switchdev/examples/switch/SwitchIdent-master/include -I/opt/devkitpro/portlibs/switch/include -I/opt/devkitpro/libnx/include -I/d/switchdev/examples/switch/SwitchIdent-master/build -DSWITCH -c /d/switchdev/examples/switch/SwitchIdent-master/source/kernel.c -o kernel.o
In file included from D:/switchdev/libnx/include/switch.h:13:0,
                 from D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:1:
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetVersion':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:21: error: implicit declaration of function 'splGetConfig'; did you mean 'svcGetInfo'? [-Werror=implicit-function-declaration]
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                     ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: note: each undeclared identifier is reported only once for each function it appears in
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetHardwareType':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:41:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &hardware_type)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetUnit':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:59:34: error: 'SplConfigItem_IsRetail' undeclared (first use in this function)
  if (R_FAILED(ret = splGetConfig(SplConfigItem_IsRetail, &isRetail)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
cc1.exe: all warnings being treated as errors
make[1]: *** [/opt/devkitpro/devkitA64/base_rules:19: kernel.o] Error 1
make: *** [Makefile:140: build] Error 2

I'm guessing it's just a matter of using the Switch-equivilent of these functions (and what they require), but I'm not nearly advanced enough to be able to fix it on my own. My knowledge of libnx is pretty fresh and new. Sorry!
 
Last edited by Miqote,

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,272
Country
United States
I threw it into my dev environment and it spit this out:

Code:
$ make
kernel.c
aarch64-none-elf-gcc -MMD -MP -MF /d/switchdev/examples/switch/SwitchIdent-master/build/kernel.d -g -Werror -O2 -ffunction-sections -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE  -I/d/switchdev/examples/switch/SwitchIdent-master/include -I/opt/devkitpro/portlibs/switch/include -I/opt/devkitpro/libnx/include -I/d/switchdev/examples/switch/SwitchIdent-master/build -DSWITCH -c /d/switchdev/examples/switch/SwitchIdent-master/source/kernel.c -o kernel.o
In file included from D:/switchdev/libnx/include/switch.h:13:0,
                 from D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:1:
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetVersion':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:21: error: implicit declaration of function 'splGetConfig'; did you mean 'svcGetInfo'? [-Werror=implicit-function-declaration]
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                     ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:23:34: note: each undeclared identifier is reported only once for each function it appears in
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &version)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetHardwareType':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:41:34: error: 'SplConfigItem_HardwareType' undeclared (first use in this function); did you mean 'SwitchIdent_GetHardwareType'?
  if (R_FAILED(ret = splGetConfig(SplConfigItem_HardwareType, &hardware_type)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c: In function 'SwitchIdent_GetUnit':
D:/switchdev/examples/switch/SwitchIdent-master/source/kernel.c:59:34: error: 'SplConfigItem_IsRetail' undeclared (first use in this function)
  if (R_FAILED(ret = splGetConfig(SplConfigItem_IsRetail, &isRetail)))
                                  ^
D:/switchdev/libnx/include/switch/result.h:12:30: note: in definition of macro 'R_FAILED'
 #define R_FAILED(res)      ((res)!=0)
                              ^~~
cc1.exe: all warnings being treated as errors
make[1]: *** [/opt/devkitpro/devkitA64/base_rules:19: kernel.o] Error 1
make: *** [Makefile:140: build] Error 2

I'm guessing it's just a matter of using the Switch-equivilent of these functions (and what they require), but I'm not nearly advanced enough to be able to fix it on my own. My knowledge of libnx is pretty fresh and new. Sorry!

Sorry got extremely busy later on so I didn't get the time to upload any builds. However you're getting that issue because you haven't updated libnx. Its being built from the latest commit. I'll try and put out a test build tomorrow if I get time.
 

Miqote

Well-Known Member
Member
Joined
May 2, 2018
Messages
259
Trophies
0
XP
822
Country
Macedonia, The Former Yugoslav Republic of
Sorry got extremely busy later on so I didn't get the time to upload any builds. However you're getting that issue because you haven't updated libnx. Its being built from the latest commit. I'll try and put out a test build tomorrow if I get time.

I installed the dev environment on 5/14 using the guide on Switchbru. The GUI (devkitproUpdater) says there's no updates. I imagine I'm probably missing something on how to update it, though.
 

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,272
Country
United States

fatsquirrel

Well-Known Member
Member
Joined
Nov 11, 2013
Messages
2,648
Trophies
2
Age
35
XP
3,480
Country
  • Like
Reactions: whateverg1012

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,272
Country
United States
Can you find any information on different switch screens at all?
I do not own the device. And there's no way to tell if there's a function that can determine the screen vendors (like in the 3DS). Maybe there is, maybe there isn't. So this may not even be a thing, but if its it won't be available just yet. Ignore that, seems like there is a function that might determine the screen vendors -> GetLcdVendorId (only on 4.00+)

Also updated the dl link for anyone who wants to test: https://cdn.discordapp.com/attachments/287345711492628490/446690987042013204/SwitchIdent.nro

Do report any error codes or issues.
 
Last edited by Joel16,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
  • Xdqwerty @ Xdqwerty:
    also gonna install twilight menu in my r4 flashcard
  • Psionic Roshambo @ Psionic Roshambo:
    One thing that just occurred to me.... The sound on the 2600 sucked less back then the harsh sound we hear now is from infinitely better speakers we have now, back when the 2600 was new speakers produced a almost muffled sound, like CRTs made old graphics look slightly better.
  • Psionic Roshambo @ Psionic Roshambo:
    I wonder if I could recommend that to some emulation devs that perhaps the sound could use some smoothing out to simulate those old TVs
  • Psionic Roshambo @ Psionic Roshambo:
    I think a few of the early systems could benefit from that, at least up to the 8 bit generation, by the 16 bit generation I think TVs had gotten a lot better in almost every way
  • Xdqwerty @ Xdqwerty:
    i dont have an sd card adapter but I have an usb sd card adapter
  • K3Nv2 @ K3Nv2:
    Old people games
  • Xdqwerty @ Xdqwerty:
    its not the one that comes with the r4
  • Xdqwerty @ Xdqwerty:
    doesnt work (my flashcard is from r4isdhc.com)
  • Xdqwerty @ Xdqwerty:
    might install ysmenu first
  • Psionic Roshambo @ Psionic Roshambo:
    Try Wood firmware
  • Psionic Roshambo @ Psionic Roshambo:
    For your R4
  • Psionic Roshambo @ Psionic Roshambo:
    It's old but it's the best firmware out for DS stuff
  • Xdqwerty @ Xdqwerty:
    it says it only works for the original R4, R4i Gold (r4ids.cn), R4iDSN (r4idsn.com) and Acekard R.P.G.
  • Xdqwerty @ Xdqwerty:
    nvm it does support mine
  • Xdqwerty @ Xdqwerty:
    but why choose it over ysmenu @Psionic Roshambo?
  • Xdqwerty @ Xdqwerty:
    bc im stupid?
  • Xdqwerty @ Xdqwerty:
    yea ik im stupid
  • Xdqwerty @ Xdqwerty:
    good night
  • Psionic Roshambo @ Psionic Roshambo:
    Just give it a try, but honestly if you have a 3DS you can play DS games without a card just off the internal SD card
  • Psionic Roshambo @ Psionic Roshambo:
    Slightly slower loading but a bit more convenient
  • BakerMan @ BakerMan:
    guys, my fuckin headphones have an out of place speaker
  • K3Nv2 @ K3Nv2:
    Did you try wearing them?
    B @ btjunior: @Xdqwerty 16