Homebrew [Release] 3DSident

What version do you use?

  • Original

    Votes: 3 33.3%
  • GUI

    Votes: 6 66.7%

  • Total voters
    9
  • Poll closed .

simon66

Well-Known Member
Newcomer
Joined
Jan 31, 2016
Messages
58
Trophies
0
Age
32
XP
164
Country
Canada
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,

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,306
Country
United States
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,

Billy Acuña

Well-Known Member
Member
Joined
Oct 10, 2015
Messages
3,126
Trophies
1
Age
31
XP
3,701
Country
Mexico
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]
 

pelago

Member
Member
Joined
Feb 20, 2006
Messages
1,019
Trophies
0
XP
565
Country
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

Halvorsen

Well-Known Member
Member
Joined
Aug 12, 2015
Messages
2,060
Trophies
0
Website
halcove.com
XP
1,891
Country
United States
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

pelago

Member
Member
Joined
Feb 20, 2006
Messages
1,019
Trophies
0
XP
565
Country
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
 

Halvorsen

Well-Known Member
Member
Joined
Aug 12, 2015
Messages
2,060
Trophies
0
Website
halcove.com
XP
1,891
Country
United States
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

ih8ih8sn0w

Koreaboo
Member
Joined
Aug 22, 2015
Messages
1,677
Trophies
0
Age
25
Location
Hell
XP
898
Country
United States
  • Like
Reactions: Wolfvak and Joel16

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,306
Country
United States
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

Joel16

Ils ne passeront pas
OP
Member
Joined
May 8, 2011
Messages
933
Trophies
2
Age
27
Location
Doesn't concern you.
XP
5,306
Country
United States
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,

simon66

Well-Known Member
Newcomer
Joined
Jan 31, 2016
Messages
58
Trophies
0
Age
32
XP
164
Country
Canada
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

General chit-chat
Help Users
  • No one is chatting at the moment.
    SylverReZ @ SylverReZ: @K3Nv2, RIP Felix does great videos on the PS3 yellow-light-of-death.