Homebrew [Release] 3DSident

  • Thread starter Thread starter Joel16
  • Start date Start date
  • Views Views 228,054
  • Replies Replies 336
  • Likes Likes 71

What version do you use?

  • Original

    Votes: 3 33.3%
  • GUI

    Votes: 6 66.7%

  • Total voters
    9
  • Poll closed .
Hi @Joel16

It would be nice if 3DSident can display the FIRM version and in brackets the system version it belongs to
Example

Code:
* FIRM version 2.50-11 (10.4)

Here's a sudo code implementation.

Code:
//cfg.c
string getVersion(string version) {
     std::map<std::string, std::string> firmVersion = {
                                                                {"2.27-0", "1.0.0"},
                                                                {"2.28-0", "1.1.0"},
                                                                {"2.29-7", "2.0.0"},
                                                                {"2.30-18", "2.1.0"},
                                                                {"2.31-40", "2.2.0"},
                                                                {"2.32-15", "3.0.0"},
                                                                {"2.33-4", "4.0.0"},
                                                                {"2.34-0", "4.1.0"},
                                                                {"2.35-6", "5.0.0"},
                                                                {"2.36-0", "5.1.0"},
                                                                {"2.37-0", "6.0.0"},
                                                                {"2.38-0", "6.1.0"},
                                                                {"2.39-4", "7.0.0"},
                                                                {"2.40-0", "7.2.0"},
                                                                {"2.44-6", "8.0.0"},
                                                                {"2.45-5", "8.1.0-0_New3DS"},
                                                                {"2.46-0", "9.0.0"},
                                                                {"2.48-3", "9.3.0"},
                                                                {"2.49-0", "9.5.0"},
                                                                {"2.50-1", "9.6.0"},
                                                                {"2.50-7", "10.0.0"},
                                                                {"2.50-9", "10.2.0"},
                                                                {"2.50-11", "10.4.0"},
                                                                {"2.51-0", "11.0.0"},
                                                                {"2.51-2", "11.1.0"}
                                                           };
     return (firmVersion.count(version) == 0 ? "Unknown" : firmVersion.at(version));
}

I know this wont work with your code (Since std::map is not implemented in C), but hey! It gives you an idea to implement :)

I've been having to always check the link bellow to see if my hardmod actually patched the firmware.

Thanks! Hope to see this implementation

PS: Got firm version from here: https://www.3dbrew.org/wiki/FIRM#NATIVE_FIRM
 
Last edited by simon66,
Hi @Joel16

It would be nice if 3DSident can display the FIRM version and in brackets the system version it belongs to
Example

Code:
* FIRM version 2.50-11 (10.4)

Here's a sudo code implementation.

Code:
//cfg.c
string getVersion(string version) {
     std::map<std::string, std::string> firmVersion = {
                                                                {"2.27-0", "1.0.0"},
                                                                {"2.28-0", "1.1.0"},
                                                                {"2.29-7", "2.0.0"},
                                                                {"2.30-18", "2.1.0"},
                                                                {"2.31-40", "2.2.0"},
                                                                {"2.32-15", "3.0.0"},
                                                                {"2.33-4", "4.0.0"},
                                                                {"2.34-0", "4.1.0"},
                                                                {"2.35-6", "5.0.0"},
                                                                {"2.36-0", "5.1.0"},
                                                                {"2.37-0", "6.0.0"},
                                                                {"2.38-0", "6.1.0"},
                                                                {"2.39-4", "7.0.0"},
                                                                {"2.40-0", "7.2.0"},
                                                                {"2.44-6", "8.0.0"},
                                                                {"2.45-5", "8.1.0-0_New3DS"},
                                                                {"2.46-0", "9.0.0"},
                                                                {"2.48-3", "9.3.0"},
                                                                {"2.49-0", "9.5.0"},
                                                                {"2.50-1", "9.6.0"},
                                                                {"2.50-7", "10.0.0"},
                                                                {"2.50-9", "10.2.0"},
                                                                {"2.50-11", "10.4.0"},
                                                                {"2.51-0", "11.0.0"},
                                                                {"2.51-2", "11.1.0"}
                                                           };
     return (firmVersion.count(version) == 0 ? "Unknown" : firmVersion.at(version));
}

I know this wont work with your code (Since std::map is not implemented in C), but hey! It gives you an idea to implement :)

I've been having to always check the link bellow to see if my hardmod actually patched the firmware.

Thanks! Hope to see this implementation

PS: Got firm version from here: https://www.3dbrew.org/wiki/FIRM#NATIVE_FIRM


Thanks for your suggestion. I'll look into it when I have more time.
Also if anyone has access to a multi meter please give me some results on the 3DS's voltage so we can get an accurate calculation. It's one of the few things left to do with this program. I'm going to be releasing the final version along with some (minor increments) in case something mucks up. Most of the information that we can grab from the 3DS has already been accomplished by this program. I've recently added the device ID, Soap ID, 3D slider states, WiFi strength to the program. The 3 bits missing are the friend key, device cert and the actual voltage calculation. Once those are done, I'm calling it quits :p

Also @zoogie is there a way to access services such as the mcu, cfgs etc. in the 3dsx homebrews. I heard of a way using xml files ages ago, but I don't know too much about it.
 
Last edited by Joel16,
Thanks for your suggestion. I'll look into it when I have more time.
Also if anyone has access to a multi meter please give me some results on the 3DS's voltage so we can get an accurate calculation. It's one of the few things left to do with this program. I'm going to be releasing the final version along with some (minor increments) in case something mucks up. Most of the information that we can grab from the 3DS has already been accomplished by this program. I've recently added the device ID, Soap ID, 3D slider states, WiFi strength to the program. The 3 bits missing are the friend key, device cert and the actual voltage calculation. Once those are done, I'm calling it quits [emoji14]

Also @zoogie is there a way to access services such as the mcu, cfgs etc. in the 3dsx homebrews. I heard of a way using xml files ages ago, but I don't know too much about it.
Are you releasing the final ver with the GUI? I was waiting for it [emoji14]
 
Looking at your code, I see that the screen detection code only works on n3DS. For o3DS you've hardwired it to say "Upper: TN | Lower: TN", but looking at the poll results in https://gbatemp.net/threads/guide-tn-and-ips-displays-which-does-my-3ds-have.409925/ some people say they have an o3DS with an least one IPS screen.

If you can't detect the screen types on o3DS, it would be better to output something like "Not able to detect screen types on o3DS" than what you're doing at the moment. I notice that the original code you took this from (https://github.com/SciresM/ScreenInfo) does exactly that.

Also, can you enable the issue tracker on github, and maybe also link back to this thread in README.md?
 
  • Like
Reactions: simon66 and Wolfvak
Looking at your code, I see that the screen detection code only works on n3DS. For o3DS you've hardwired it to say "Upper: TN | Lower: TN", but looking at the poll results in https://gbatemp.net/threads/guide-tn-and-ips-displays-which-does-my-3ds-have.409925/ some people say they have an o3DS with an least one IPS screen.

If you can't detect the screen types on o3DS, it would be better to output something like "Not able to detect screen types on o3DS" than what you're doing at the moment. I notice that the original code you took this from (https://github.com/SciresM/ScreenInfo) does exactly that.

Also, can you enable the issue tracker on github, and maybe also link back to this thread in README.md?
There isn't any IPS screen on any old 3DS consoles.
 
  • Like
Reactions: Wolfvak
There isn't any IPS screen on any old 3DS consoles.
So why do 25 people in the https://gbatemp.net/threads/guide-tn-and-ips-displays-which-does-my-3ds-have.409925/ poll say they do?

upload_2016-10-19_14-32-36.png
 
my o3ds serial shows up as a reverse PI symbol lol
but maybe thats cuz i am not using the cia version
 
Well, why do you say that no o3DS have IPS panels?
Do you have any proof of their existence?

Furthermore, there only system revision after the New 3DS family came out was of the 2DS, which only integrated the Wi-Fi chip inside the motherboard and did not include new screens. Reports of 3DS XL and 3DS IPS wouldn't even make sense as the first reports of IPS came out after the n3DS was released, when the original started to cease production and the XL being dead in Japan. They couldn't have even been made.
 
Last edited by Halvorsen,
  • Like
Reactions: elBenyo
  • Like
Reactions: Wolfvak and Joel16
my o3ds serial shows up as a reverse PI symbol lol
but maybe thats cuz i am not using the cia version

That's definitely why. I need to find a way to enable these services to be accessed on homebrew launcher. I tried the XML way, but it didn't seem to help. It's definitely on my to-do list though.

Well, why do you say that no o3DS have IPS panels?

The reason I decided to straight up automate every other 3DS model that isn't an n3DS is because there simply isn't an IPS screen on the older models. There are a lot of kids on this forum, if you think that poll is a proof of existence then you shouldn't be on the internet lol.
 
  • Like
Reactions: Wolfvak
I have one, what do you need exactly?
This:
Here's a way you could do it. Hook up a multimeter to the battery terminals and have 3dsident running. Then take note of which unknown values the 3ds gives you and the voltage the multimeter gives you. Do this until the 3ds runs out and then you will have a list of which values correspond to which voltages

Except 3DSident doesn't refresh its values. You'll need to keep exiting/re-entering. It can be quite tedious. Make sure its charged fully before trying as well.

Edit: @simon66 I can make a separate program that only displays battery percentage and voltage which refreshes each time. So then you wouldn't have to exit and reopen the app.
 
Last edited by Joel16,
This:


Except 3DSident doesn't refresh its values. You'll need to keep exiting/re-entering. It can be quite tedious. Make sure its charged fully before trying as well.

Edit: @simon66 I can make a separate program that only displays battery percentage and voltage which refreshes each time. So then you wouldn't have to exit and reopen the app.

That would be great! Compile it and send it to me (or post bellow). I'll make a spreadsheet with the values.
 

Site & Scene News

Popular threads in this forum