Homebrew A homebrew at the startup of the 3DS

yonaikerlol

Active Member
OP
Newcomer
Joined
Feb 7, 2018
Messages
36
Trophies
0
Age
19
Location
Venezuela
Website
github.com
XP
130
Country
Venezuela
Hello, I want to know if you can start a homebrew when you turn on the console, I know that you can with the ones in .firm, it is only replaced with the boot.firm or Fastboot3DS is used, but, can it be with a .3dsx homebrew?

If possible, would the homebrew .3dsx have access to wireless?

And in case that is not possible, would a homebrew .firm have access to wireless?
 

Urbanshadow

Well-Known Member
Member
Joined
Oct 16, 2015
Messages
1,578
Trophies
0
Age
33
XP
1,723
Country
You cannot run 3dsx files on boot level because they are compilled for different processors. A .fim should be able to initialize wifi, but it would be very tedious since you would have to initialize the hardware manually and I don't know if it's documentated well enough for you to try that.

The question here maybe its not the how but the why. Why would you want to do that?
 
  • Like
Reactions: E1ite007

Thingley

Member
Newcomer
Joined
Jul 6, 2019
Messages
11
Trophies
0
Age
45
XP
94
Country
United Kingdom
I suppose it would be useful if you wanted to write a 3ds operating system that takes less time to boot up and launch games or includes more features that the current one lacks. (Twilight menu on a DSi would be an example of homebrew set up to run at boot)

I've no idea who would bother to do that at this point in the 3ds life (they stopped making them last week AFAIK) but that would really be the advantage. Not sure if that's what the OP had in mind though.
 
  • Like
Reactions: BETA215

godreborn

Welcome to the Machine
Member
Joined
Oct 10, 2009
Messages
38,471
Trophies
3
XP
29,138
Country
United States
I don't know if enough is known to completely write a new operating system. the closest I've seen is the hacked dash of the 360. that is a work of genius.
 

PabloMK7

Red Yoshi! ^ω^
Developer
Joined
Feb 21, 2014
Messages
2,604
Trophies
2
Age
24
Location
Yoshi's Island
XP
5,041
Country
Spain
You could patch the home menu to use the autoboot feature but with an installed title. That way you can make it launch the homebrew launcher which will boot the boot.3dsx from the SD card root.
 
  • Like
Reactions: E1ite007

yonaikerlol

Active Member
OP
Newcomer
Joined
Feb 7, 2018
Messages
36
Trophies
0
Age
19
Location
Venezuela
Website
github.com
XP
130
Country
Venezuela
You cannot run 3dsx files on boot level because they are compilled for different processors. A .fim should be able to initialize wifi, but it would be very tedious since you would have to initialize the hardware manually and I don't know if it's documentated well enough for you to try that.

The question here maybe its not the how but the why. Why would you want to do that?

I want to write a program that only when turning on the 3DS makes an HTTP request to an API, it returns a JSON and parses it using the jsmn library, which I have seen code using this library for 3DS, and then I show it on the screen.

This means that you do not have to initialize Homebrew from the Homebrew Launcher, or from the HOME menu, when you turn on the 3DS directly start the homebrew.

I suppose it would be useful if you wanted to write a 3ds operating system that takes less time to boot up and launch games or includes more features that the current one lacks. (Twilight menu on a DSi would be an example of homebrew set up to run at boot)

I've no idea who would bother to do that at this point in the 3ds life (they stopped making them last week AFAIK) but that would really be the advantage. Not sure if that's what the OP had in mind though.

Not what I have in mind, but thanks anyway.

You could patch the home menu to use the autoboot feature but with an installed title. That way you can make it launch the homebrew launcher which will boot the boot.3dsx from the SD card root.

Is that using Rosalina's "Switch the title to the current app" option in the home menu?
 
Last edited by yonaikerlol,

Urbanshadow

Well-Known Member
Member
Joined
Oct 16, 2015
Messages
1,578
Trophies
0
Age
33
XP
1,723
Country
This means that you do not have to initialize Homebrew from the Homebrew Launcher, or from the HOME menu, when you turn on the 3DS directly start the homebrew.

The problem is hombrew uses the system services to do most things. For example, FBI uses system services to install titles. Every homebrew uses the SD card by using the system services, every homebrew using wifi uses it by using the system services, save reading, title database, key inputs... you name it.

Those system services are not initialized nor created in the boot enviroment, so every call the homebrew relays on the Devkitpro SDK using any form of system services will fail catastrophically. GM9 or Luma firm files use their own manually created and initialized fs service to read and write (without restrictions) from places.

Long story short, like wifi, nothing in the system is ready to support homebrew in 3dsx format at the time you execute a firm payload. Trying to boot everything up is like creating a whole 3DS firmware. Good luck getting shorter boot times than Ninty.
 
  • Like
Reactions: yonaikerlol

yonaikerlol

Active Member
OP
Newcomer
Joined
Feb 7, 2018
Messages
36
Trophies
0
Age
19
Location
Venezuela
Website
github.com
XP
130
Country
Venezuela
The problem is hombrew uses the system services to do most things. For example, FBI uses system services to install titles. Every homebrew uses the SD card by using the system services, every homebrew using wifi uses it by using the system services, save reading, title database, key inputs... you name it.

Those system services are not initialized nor created in the boot enviroment, so every call the homebrew relays on the Devkitpro SDK using any form of system services will fail catastrophically. GM9 or Luma firm files use their own manually created and initialized fs service to read and write (without restrictions) from places.

Long story short, like wifi, nothing in the system is ready to support homebrew in 3dsx format at the time you execute a firm payload. Trying to boot everything up is like creating a whole 3DS firmware. Good luck getting shorter boot times than Ninty.

Can't at least Boot the Homebrew Launcher like Menuhax before?
 

The Real Jdbye

*is birb*
Member
Joined
Mar 17, 2010
Messages
23,339
Trophies
4
Location
Space
XP
13,922
Country
Norway
Hello, I want to know if you can start a homebrew when you turn on the console, I know that you can with the ones in .firm, it is only replaced with the boot.firm or Fastboot3DS is used, but, can it be with a .3dsx homebrew?

If possible, would the homebrew .3dsx have access to wireless?

And in case that is not possible, would a homebrew .firm have access to wireless?
menuhax can launch .3dsx homebrew on boot (only up to 11.0), there are some caveats. I don't really recommend it.
You could probably fork Luma3DS and insert some custom code into Rosalina (which is always running in the background) to run on boot.
 

Urbanshadow

Well-Known Member
Member
Joined
Oct 16, 2015
Messages
1,578
Trophies
0
Age
33
XP
1,723
Country
menuhax can launch .3dsx homebrew on boot (only up to 11.0), there are some caveats. I don't really recommend it.
You could probably fork Luma3DS and insert some custom code into Rosalina (which is always running in the background) to run on boot.

He'll still eat the 15 seconds 3ds firmware boot time I may add.

Can't at least Boot the Homebrew Launcher like Menuhax before?

The homebrew launcher is a 3dsx so same rules apply as every 3dsx. No launching on boot, only through rosalina or a brahma capable exploit.

EDIT: To be more constructive for you, you should center on going deeper instead of shallower. Make a master 3dsx application for 3ds accepting your http connections and the like to send the slave 3dsxs to the console. Make it so you launch your slave 3dsx received from the master 3dsx you did. Return to the master 3dsx when you done and await for further connections. System doesn't reboot between retries, home menu doesn't reboot between retries, homebrew launcher doesn't reboot between retries and retries are automatic. That should cover your use case.

Documentation structure of 3dsx: https://3dbrew.org/wiki/3DSX_Format
You can also just fork homebrew launcher, of course. As the 3dsx launching code is also there you only have to add the https launching functionality from JSON.

EDIT2: If you end up adding the functionality to homebrew launcher, it would be nice of you to do a pull request to the actual repository and everyone would benefit from that.
 
Last edited by Urbanshadow,

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: CRAZY HAMBURGER