Homebrew [Re-release] BootCtr - A simple boot manager for 3DS

  • Thread starter Thread starter m45t3r
  • Start date Start date
  • Views Views 78,816
  • Replies Replies 352
  • Likes Likes 33
Well, did a update to boot_config.ini file (available in OP, not included yet in an actual release) that should clarify some things (like you don't actually need to set offset and delay options unless you really need them). Hope it is less confusing now.
Just reinterating that the defaults from BootCtr are sane, so you don't need to set anything else except for path in the majority of cases.
A report: If you use L+R or any other combo keys while booting with this, it would fail to recognize any key.
A note: Maybe with a comparison order to test if any key pressed and give user that would be good. Oh yeah switch cases..
And for auto-boot users, they may have set up that of the menuhax and CFW already.
However, CFW supports to hold a key to enter the menu, and I would have to configure two or more entries in the INI for NO-BUTTON one and the others, right?
 
A report: If you use L+R or any other combo keys while booting with this, it would fail to recognize any key.
A note: Maybe with a comparison order to test if any key pressed and give user that would be good. Oh yeah switch cases..
And for auto-boot users, they may have set up that of the menuhax and CFW already.
However, CFW supports to hold a key to enter the menu, and I would have to configure two or more entries in the INI for NO-BUTTON one and the others, right?
Probably I need to documment this double button cases too. However, as I said, I don't want to complicate the code too much. So no switch-cases, sorry. If this app will have some kind of menu in the future, it will be the suggestion from @d0k3. However, I still need a solution to make scrollable pages in pure text on 3DS (if someone can give me an idea or solution, I will implement ASAP).

If you don't set a section for some button, that button is not available. Don't create a empty section since this will probably try to load the default settings if you press some button. Just don't create the section.
 
  • Like
Reactions: Syphurith
Probably I need to documment this double button cases too. However, as I said, I don't want to complicate the code too much. So no switch-cases, sorry. If this app will have some kind of menu in the future, it will be the suggestion from @d0k3. However, I still need a solution to make scrollable pages in pure text on 3DS (if someone can give me an idea or solution, I will implement ASAP).
If you don't set a section for some button, that button is not available. Don't create a empty section since this will probably try to load the default settings if you press some button. Just don't create the section.
What i thought is like this:
if (KEY & KEY_L) do(KEYL);
if (KEY & KEY_R) do(KEYR);
#define ...
#include KEYdef
do(DEFAULT);
So no cases still. However the order must be told to users so they would not get some weird setting file.
Also thanks for your clarifications. I do know what i did wrong with it then.
 
What i thought is like this:
if (KEY & KEY_L) do(KEYL);
if (KEY & KEY_R) do(KEYR);
#define ...
#include KEYdef
do(DEFAULT);
So no cases still. However the order must be told to users so they would not get some weird setting file.
Also thanks for your clarifications. I do know what i did wrong with it then.

The problem with this is that the order would be completely arbitrary. And what would happen if the user press 3 buttons? 4 buttons?

I prefer the fact that pressing two or more buttons boots the default entry. It is more consistent, easier to implement, and works in all cases.
 
  • Like
Reactions: Syphurith
Is there someone interested in a .SMDH file for BootCtr? I mean, it can be used in some cases (for example, booting CFW after finishing what you did in Homebrew Launcher). If so, is there someone that is capable to do a nice icon for this project? Of course, I will give proper credits if someone can do this job for me.

Remembering, it should be a .png file. Size should be 48x48. An example (retired from CakeBrah) is in the attachment.
 

Attachments

  • icon.png
    icon.png
    441 bytes · Views: 273
Last edited by m45t3r,
Is there someone interested in a .SMDH file for BootCtr? I mean, it can be used in some cases (for example, booting CFW after finishing what you did in Homebrew Launcher). If so, is there someone that is capable to do a nice icon for this project? Of course, I will give proper credits if someone can do this job for me.

Remembering, it should be a .png file. Size should be 48x48. An example (retired from CakeBrah) is in the attachment.
I wanna see somebody make a boot with a joystick and buttons on it
 
Changing the default doesn't seem to work.
I changed it to path = /hblauncher.3dsx under the [DEFAULT] section, tried removing the ; or keeping it in, always kept looking for boot_default.3dsx
Surely that isn't intended?

When i do leave it on boot_default.3dsx, it simply fails to boot (when my homebrew launcher is named boot_default.3dsx)

I went to the first release, the one without a config file that uses boot_1.3dsx and boot_2.3dsx no matter what, and that works fine, so idk whats going on :p
 
Last edited by ,
Changing the default doesn't seem to work.
I changed it to path = /hblauncher.3dsx under the [DEFAULT] section, tried removing the ; or keeping it in, always kept looking for boot_default.3dsx
Surely that isn't intended?

When i do leave it on boot_default.3dsx, it simply fails to boot (when my homebrew launcher is named boot_default.3dsx)

I went to the first release, the one without a config file that uses boot_1.3dsx and boot_2.3dsx no matter what, and that works fine, so idk whats going on :p
Post your boot_config.ini file please. And are you sure that the configuration file has the correct name, right?
 
Changing the default doesn't seem to work.
I changed it to path = /hblauncher.3dsx under the [DEFAULT] section, tried removing the ; or keeping it in, always kept looking for boot_default.3dsx
Surely that isn't intended?

When i do leave it on boot_default.3dsx, it simply fails to boot (when my homebrew launcher is named boot_default.3dsx)

I went to the first release, the one without a config file that uses boot_1.3dsx and boot_2.3dsx no matter what, and that works fine, so idk whats going on :p

;[DEFAULT]
;path = /boot_default.3dsx
;delay = 100
;offset = 0x12000
;payload = -1

Remove the ;

[DEFAULT]
path = /boot_default.3dsx
delay = 100
offset = 0x12000
payload = -1
 
Eh, the original release works fine for what I want to do, so I'll just carry on using that.
Filename for the config file was the same filename as you have in the download, nothing changed. boot_config.ini

I hadn't removed any of the ;'s, I only ever tried removing the one in front of path = /boot_default.3dsx but it insisted on seeing boot_default.3dsx
Maybe I had to remove the ;'s in front of every line like Xeno up here said.

But even then, it crashed no matter what even when my homebrew launcher was named boot_default.3dsx :/
 
Eh, the original release works fine for what I want to do, so I'll just carry on using that.
Filename for the config file was the same filename as you have in the download, nothing changed. boot_config.ini

I hadn't removed any of the ;'s, I only ever tried removing the one in front of path = /boot_default.3dsx but it insisted on seeing boot_default.3dsx
Maybe I had to remove the ;'s in front of every line like Xeno up here said.

But even then, it crashed no matter what even when my homebrew launcher was named boot_default.3dsx :/
I would really like that you post your configuration. This may be a error at my side, and a bug is bug.

However, for what you described it is probably a problem in what you did. ';' is a comment, so everything in front of it in that line is ignored. You probably want a boot_config.ini file with something like below:

Code:
; This is a comment, I am being ignored by BootCtr, so sad T-T
[DEFAULT]
path = /hblauncher.3dsx

[KEY_R]
path = /boot_whatever.3dsx

You can substitute the contents of your boot_config with the above, it should work. Of course, you can change the paths too.
 
  • Like
Reactions: Xenosaiga
Well, I had it pretty much at exactly what it's like when you download it, with a .3dsx named boot_default.3dsx
It seemed to be starting properly because it gave me an error saying it didn't have a boot_default.3dsx to start up, so I c hanged it, and when it did, that's when it crashes trying to load it.

I'll go back and try it again (with the latest version) and get back to you in a moment.

Edit: With a config file identical to the one that comes with the download, it crashes when it tries to load boot_default.3dsx

With a config file identical to the one you gave me in that Code block, it boots.
 
Last edited by ,
Well, I had it pretty much at exactly what it's like when you download it, with a .3dsx named boot_default.3dsx
It seemed to be starting properly because it gave me an error saying it didn't have a boot_default.3dsx to start up, so I c hanged it, and when it did, that's when it crashes trying to load it.

I'll go back and try it again (with the latest version) and get back to you in a moment.

Edit: With a config file identical to the one that comes with the download, it crashes when it tries to load boot_default.3dsx

With a config file identical to the one you gave me in that Code block, it boots.
Huh, so maybe I put too many words in the included .ini file and inih is having difficults to parse it, or there is some character in the .ini file and this is crashing BootCtr.

For sure, I never tested the included .ini file so I never knew it was a problem. I will try to investigate this issue.
 
I can try something, however I don't have a Gateway (making tests more difficult).

Edit: forget what I said, I only need to launch Launcher.dat right? So I can do without a Gateway card.
Have you had any success loading Gateway's launcher.dat? Really hoping you can get it to work.

Perhaps you could extract Gateway's payload from their OoThax save file, and then use that to load launcher.dat? Just a thought I had.
 
Last edited by Razor83,
Have you had any success loading Gateway's launcher.dat? Really hoping you can get it to work.

Perhaps you could extract Gateway's payload from their OoThax save file, and then use that to load launcher.dat? Just a thought I had.
I tried, however I could not get it to work.

I followed the suggestion from @mid-kid (this gave a good start point), however searching a little the internet it seems the encryption changed. After that, I decided to follow the RE from @yifan_lu in his blog (http://yifan.lu/2015/01/10/reversing-gateway-ultra-first-stage-part-1/), still not working.

If someone has another suggestion I can try, however I am somewhat tired with the code comming from Gateway.
 
Last edited by m45t3r,
  • Like
Reactions: peteruk
Pre-release v1.1. This version includes the forked CakeBrah from 173210 (one of the developers from rxTools), that should improve the boot rate for payloads, mainly for N3DS users. For now I am using the code coming directly from 173210's CakeBrah fork, so this is experimental. When the changes are merged by @mid-kid I will go back to the official repository and do a official release.
 

Attachments

  • Like
Reactions: klear and peteruk

Site & Scene News

Popular threads in this forum