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

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
Works for me. You should use the .dat file, and default settings.

Unfortunately, still no luck here. I took the latest version of Decrypt9WIP (20160118), placed the .dat in SD root, left the Decrypt9 entry alone (other than uncommenting the lines). Still a black screen on a 2DS with Menuhax 2.1 and SysNAND 9.2.

boot_config.ini:

;Comments starts with ";" or "#", so you need to remove it first to the
;line actually do something.

;[DEFAULT] is the option that is used if you don't press anything, or press
;a button without configuration.
;The options below are the defaults used internally in the application
;if you don't override them first (with the exception of "path"). So even
;if you don't set those options in a section, the values below are used.
[DEFAULT]
path = /Cakes.dat
;delay = 2500
;offset = 0x12000
;payload = -1
;splash = 1
;splash_image =

;Each key can be defined using a section, like the example below. Section
;names must be ALL caps, and between "[]". Valid keys:
; * Common keys: KEY_A, KEY_B, KEY_X, KEY_Y, KEY_L, KEY_R, KEY_SELECT,
; KEY_START.
; * D-PAD: KEY_DUP, KEY_DDOWN, KEY_DLEFT, KEY_DRIGHT.
; * Circle pad: KEY_CPAD_UP, KEY_CPAD_DOWN, KEY_CPAD_LEFT, KEY_CPAD_RIGHT.
; * N3DS-only: KEY_ZL, KEY_ZR, KEY_CSTICK_RIGHT, KEY_CSTICK_LEFT,
; KEY_CSTICK_UP, KEY_CSTICK_DOWN.
;You MUST set at least "path" for each section, and it is the ONLY option you
;should set in the majority of cases.
;You may pass a .3dsx file or a .dat/.bin payload, the file type is detect
;automatically based on extension. Double check the path, since it must be
;correct (including caps).
;[KEY_CPAD_LEFT] ;MUST BE ALL CAPS
;path = /And/Respect_Caps_in_Path.3dsx

;Basic usage examples:
;Boot /boot_1.3dsx if R button is pressed.
[KEY_R]
path = /boot_1.3dsx
;Boot examples for almost every CFW out there.
;You can use both .3dsx files or binary (.bin, .dat) payloads
;[KEY_A]
;path = /rxTools/sys/code.bin
;[KEY_B]
;path = /Cakes.dat
;[KEY_X]
;path = /3ds/GW/GW.3dsx
;[KEY_Y]
;path = /ReiNand.dat

;An important remark: the majority of CFWs set L button to show menu instead
;of autobooting. So it is generally a bad idea to set L button to CFW boot,
;or the CFW menu will be shown instead of booting directly to CFW.
;[KEY_L]
;path = /rxTools/sys/code.bin ;BAD IDEA!!!

;################################IMPORTANT NOTE################################
;From here on, I will start explaining advanced options.
;THEY GENERALLY SHOULD NOT BE SET, except if something does not work.
;SO UNLESS SOMETHING IS BROKEN, set "path" option (as the examples above), and
;nothing else.
;If you have any issue, the first thing I will ask you is to remove any extra
;option set below. So instead of making me do extra work, just don't set the
;options below.
;##############################################################################

;The first advanced option is "delay". Delay is a number of microseconds to
;delay the application boot.
;Why this is important? It may improve the booting of some homebrews and CFWs.
;For example, O3DS autobooting with themehax, using either rxTools or
;CakesFW with Brahma2 loaders will have increased boot rate chance with 100
;ms of delay. For Homebrew Launcher (and other homebrews) the delay may be
;set to 0, unless your homebrew needs network connection during boot (such as
;FTBrony 1.x). In this case you may increase the delay (for example to 5000,
;or 5 seconds) to makes sure that you have a valid network connection.
;By default delay is set to 1500 (1.5s). This is a value that seems to work
;well with CFWs, without delaying the boot of homebrews by too much.
;[KEY_LEFT]
;path = /boot_hbl.3dsx
;delay = 0
;[KEY_RIGHT]
;path = /3ds/ftbrony/ftbrony.3dsx
;delay = 5000

;Instead of loading .3dsx files, you can use ARM9 payloads like rxTools'
;code.bin or CakesFW's Cakes.dat. By default it will try to detect if the
;file is a payload by checking the extension (.bin or .dat), however you can
;force by passing "payload = 1" (passing "payload = 0" forces homebrew mode,
;while "payload = -1" forces autodetect, the default).
;You may need to change the default payload offset depending of the binary
;you're loading. The values are generally in hexadecimal, so append "0x" in
;front of the number (however, decimal values are supported too).
;The default offset (0x12000) works in RxTools/CakesFW/ReiNand.
;Don't worry about setting offset option in .3dsx files, it is ignored.
[KEY_SELECT]
path = /Decrypt9WIP.dat
payload = 1
offset = 0x12000

[KEY_START]
path = /3ds/GW/GW.3dsx

;Splash is a screen that shows while BootCtr is loading, showing information
;about the current entry in the bottom screen and a nice logo in ASCII art in
;top screen, or optionally any image converted in the BGR format.
;However, you can disable BootCtr splash screen in each entry by passing
;"splash = 0". Disabling it may avoid garbage screens while booting in
;some cases (i.e. Homebrew Launcher).
;WARNING: this option only enable/disable splash screen, however the actual
;duration of splash is controlled (indirectly) by "delay" option. If you want
;to increase the duration of splash, for example, set a higher delay. Setting
;"delay = 0" does not disable splash either, however it may be too fast to
;read.
;To use an image instead of the default ASCII art, you need to pass a converted
;BGR file to the "splash_image" option. Use the site below to convert files:
;https://xem.github.io/3DShomebrew/tools/image-to-bin.html
;A (ugly) splash screen example can be found in "splash" folder.

;[GLOBAL] is a special section that may be used to override the application
;defaults. For example, if you want to set a global "splash_image" to
;"/boot_splash.bin", instead of copying and pasting the same entry in every
;section, just set it one time in [GLOBAL].
;[GLOBAL] is the only section that you may not set "path" option, however you
;can. In this case, you will have a default path in every entry, that isn't
;exactly what you would want (unless you want to set booting to the same
;homebrew with different configurations).
;[GLOBAL]
;splash = 1
;splash_image = /boot_splash.bin
 

m45t3r

Well-Known Member
OP
Member
Joined
Jul 17, 2007
Messages
243
Trophies
0
Website
Visit site
XP
422
Country
Brazil
Unfortunately, still no luck here. I took the latest version of Decrypt9WIP (20160118), placed the .dat in SD root, left the Decrypt9 entry alone (other than uncommenting the lines). Still a black screen on a 2DS with Menuhax 2.1 and SysNAND 9.2.

boot_config.ini:

;Comments starts with ";" or "#", so you need to remove it first to the
;line actually do something.

;[DEFAULT] is the option that is used if you don't press anything, or press
;a button without configuration.
;The options below are the defaults used internally in the application
;if you don't override them first (with the exception of "path"). So even
;if you don't set those options in a section, the values below are used.
[DEFAULT]
path = /Cakes.dat
;delay = 2500
;offset = 0x12000
;payload = -1
;splash = 1
;splash_image =

;Each key can be defined using a section, like the example below. Section
;names must be ALL caps, and between "[]". Valid keys:
; * Common keys: KEY_A, KEY_B, KEY_X, KEY_Y, KEY_L, KEY_R, KEY_SELECT,
; KEY_START.
; * D-PAD: KEY_DUP, KEY_DDOWN, KEY_DLEFT, KEY_DRIGHT.
; * Circle pad: KEY_CPAD_UP, KEY_CPAD_DOWN, KEY_CPAD_LEFT, KEY_CPAD_RIGHT.
; * N3DS-only: KEY_ZL, KEY_ZR, KEY_CSTICK_RIGHT, KEY_CSTICK_LEFT,
; KEY_CSTICK_UP, KEY_CSTICK_DOWN.
;You MUST set at least "path" for each section, and it is the ONLY option you
;should set in the majority of cases.
;You may pass a .3dsx file or a .dat/.bin payload, the file type is detect
;automatically based on extension. Double check the path, since it must be
;correct (including caps).
;[KEY_CPAD_LEFT] ;MUST BE ALL CAPS
;path = /And/Respect_Caps_in_Path.3dsx

;Basic usage examples:
;Boot /boot_1.3dsx if R button is pressed.
[KEY_R]
path = /boot_1.3dsx
;Boot examples for almost every CFW out there.
;You can use both .3dsx files or binary (.bin, .dat) payloads
;[KEY_A]
;path = /rxTools/sys/code.bin
;[KEY_B]
;path = /Cakes.dat
;[KEY_X]
;path = /3ds/GW/GW.3dsx
;[KEY_Y]
;path = /ReiNand.dat

;An important remark: the majority of CFWs set L button to show menu instead
;of autobooting. So it is generally a bad idea to set L button to CFW boot,
;or the CFW menu will be shown instead of booting directly to CFW.
;[KEY_L]
;path = /rxTools/sys/code.bin ;BAD IDEA!!!

;################################IMPORTANT NOTE################################
;From here on, I will start explaining advanced options.
;THEY GENERALLY SHOULD NOT BE SET, except if something does not work.
;SO UNLESS SOMETHING IS BROKEN, set "path" option (as the examples above), and
;nothing else.
;If you have any issue, the first thing I will ask you is to remove any extra
;option set below. So instead of making me do extra work, just don't set the
;options below.
;##############################################################################

;The first advanced option is "delay". Delay is a number of microseconds to
;delay the application boot.
;Why this is important? It may improve the booting of some homebrews and CFWs.
;For example, O3DS autobooting with themehax, using either rxTools or
;CakesFW with Brahma2 loaders will have increased boot rate chance with 100
;ms of delay. For Homebrew Launcher (and other homebrews) the delay may be
;set to 0, unless your homebrew needs network connection during boot (such as
;FTBrony 1.x). In this case you may increase the delay (for example to 5000,
;or 5 seconds) to makes sure that you have a valid network connection.
;By default delay is set to 1500 (1.5s). This is a value that seems to work
;well with CFWs, without delaying the boot of homebrews by too much.
;[KEY_LEFT]
;path = /boot_hbl.3dsx
;delay = 0
;[KEY_RIGHT]
;path = /3ds/ftbrony/ftbrony.3dsx
;delay = 5000

;Instead of loading .3dsx files, you can use ARM9 payloads like rxTools'
;code.bin or CakesFW's Cakes.dat. By default it will try to detect if the
;file is a payload by checking the extension (.bin or .dat), however you can
;force by passing "payload = 1" (passing "payload = 0" forces homebrew mode,
;while "payload = -1" forces autodetect, the default).
;You may need to change the default payload offset depending of the binary
;you're loading. The values are generally in hexadecimal, so append "0x" in
;front of the number (however, decimal values are supported too).
;The default offset (0x12000) works in RxTools/CakesFW/ReiNand.
;Don't worry about setting offset option in .3dsx files, it is ignored.
[KEY_SELECT]
path = /Decrypt9WIP.dat
payload = 1
offset = 0x12000

[KEY_START]
path = /3ds/GW/GW.3dsx

;Splash is a screen that shows while BootCtr is loading, showing information
;about the current entry in the bottom screen and a nice logo in ASCII art in
;top screen, or optionally any image converted in the BGR format.
;However, you can disable BootCtr splash screen in each entry by passing
;"splash = 0". Disabling it may avoid garbage screens while booting in
;some cases (i.e. Homebrew Launcher).
;WARNING: this option only enable/disable splash screen, however the actual
;duration of splash is controlled (indirectly) by "delay" option. If you want
;to increase the duration of splash, for example, set a higher delay. Setting
;"delay = 0" does not disable splash either, however it may be too fast to
;read.
;To use an image instead of the default ASCII art, you need to pass a converted
;BGR file to the "splash_image" option. Use the site below to convert files:
;https://xem.github.io/3DShomebrew/tools/image-to-bin.html
;A (ugly) splash screen example can be found in "splash" folder.

;[GLOBAL] is a special section that may be used to override the application
;defaults. For example, if you want to set a global "splash_image" to
;"/boot_splash.bin", instead of copying and pasting the same entry in every
;section, just set it one time in [GLOBAL].
;[GLOBAL] is the only section that you may not set "path" option, however you
;can. In this case, you will have a default path in every entry, that isn't
;exactly what you would want (unless you want to set booting to the same
;homebrew with different configurations).
;[GLOBAL]
;splash = 1
;splash_image = /boot_splash.bin
Like I said, just use the default settings. However I don't see any problems in your configuration.

During the boot screen, check if everything is right. You can try posting a photo when BootCtr is booting, too.
 
Last edited by m45t3r,

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
Those are basically the default settings though. The only thing I did was uncomment your Decrypt9 lines, change the key, and add entries for GW and Cakes (those work just fine.)

I see the boot screen that says it's loading Decrypt9 (with offset, payload), then it transitions to a black screen which requires a hard shutdown. I'm not sure what the issue could be since I've loaded rxTools, Cakes, GW and even Decrypt9 (3dsx) just fine. =/
 
Last edited by kiwiis,

m45t3r

Well-Known Member
OP
Member
Joined
Jul 17, 2007
Messages
243
Trophies
0
Website
Visit site
XP
422
Country
Brazil
Those are basically the default settings though. The only thing I did was uncomment your Decrypt9 lines, change the key, and add entries for GW and Cakes (those work just fine.)

I see the boot screen that says it's loading Decrypt9 (with offset, payload), then it transitions to a black screen which requires a hard shutdown. I'm not sure what the issue could be since I've loaded rxTools, Cakes, GW and even Decrypt9 (3dsx) just fine. =/
Ok, this seems to be an issue with Decrypt9WIP itself. I can boot Decrypt9WIP 20151218 without problems (this was the version that I was using before), however not 20160112 or 20160118.

@d0k3, can you take a look?
 
  • Like
Reactions: kiwiis

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Ok, this seems to be an issue with Decrypt9WIP itself. I can boot Decrypt9WIP 20151218 without problems (this was the version that I was using before), however not 20160112 or 20160118.

@d0k3, can you take a look?
I just did, and I have an idea... Not what is causing it, though... could you try the one attached to this post?
 

Attachments

  • Decrypt9WIP.zip
    67.3 KB · Views: 96

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Unfortunately I'm still getting a black screen with the attached version.
Did you download it? The counter is still at zero ;). If you get a black screen, could you try waiting for a few secs (~15s) then pressing start? If it still reboots, the issue is with the drawing system only, otherwise it is a hardlock.
 

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
Did you download it? The counter is still at zero ;). If you get a black screen, could you try waiting for a few secs (~15s) then pressing start? If it still reboots, the issue is with the drawing system only, otherwise it is a hardlock.

I've no idea why the counter didn't budge but I did :P

I waited as you said but the start button didn't do anything.
 
Last edited by kiwiis,

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
I've no idea why the counter didn't budge but I did :P

I waited as you said but the start button doesn't do anything.
Alright, I'll look into it. Can't be too bad. BTW, this should be the same issue (EmuNAND9 and Decrypt9 share build system and exploits).

EDIT: Link inserted.

--------------------- MERGED ---------------------------

@m45t3r (or anyone else with a clue) there is something you could help me with... I've just tried the Decrypt9WIP.bin from this post (the one that doesn't work in BootCTR) and loaded it with my own Brahma2Loader without trouble. Has there anything changed in how ARM9 payloads are loaded in BootCTR? Sorry, but you commited a lot in teh last few days :).
 
Last edited by d0k3,
  • Like
Reactions: kiwiis

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
Just to double check since I realized I left something out from the EmuNAND9 post, the D9 attachment here fails with 0x0 as well. Just to rule out any derps or misinformation from wrong offsets.
 
Last edited by kiwiis,

m45t3r

Well-Known Member
OP
Member
Joined
Jul 17, 2007
Messages
243
Trophies
0
Website
Visit site
XP
422
Country
Brazil
Alright, I'll look into it. Can't be too bad. BTW, this should be the same issue (EmuNAND9 and Decrypt9 share build system and exploits).

EDIT: Link inserted.

--------------------- MERGED ---------------------------

@m45t3r (or anyone else with a clue) there is something you could help me with... I've just tried the Decrypt9WIP.bin from this post (the one that doesn't work in BootCTR) and loaded it with my own Brahma2Loader without trouble. Has there anything changed in how ARM9 payloads are loaded in BootCTR? Sorry, but you commited a lot in teh last few days :).
Well, there are the ctrulib 1.0 fixes. The majority of changes are in the loading of .3dsx files, not much for payloads.
 

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
Well, there are the ctrulib 1.0 fixes. The majority of changes are in the loading of .3dsx files, not much for payloads.
I have a clue this has to do with the CakeBrah loader... (why not use BrahmaLoader, btw? ;)). Could you upload the last version before you're current set of changes?

EDIT: Ah, missed that... you can still boot an earlier version... this is all due to that CTRUlib update :/.
 
Last edited by d0k3,

kiwiis

キウィイス
Member
Joined
Sep 8, 2015
Messages
324
Trophies
0
XP
240
Country
I don't think it broke due to recent changes. I've tested as far back as BootCtr 1.2 and I'm pretty certain that had trouble booting Decrypt9.dat as well. I thought it was user error and the 3dsx worked fine so it slipped my mind to mention it earlier.

Thank you both for being a huge help and spending your time on this, btw.:grog:
 
Last edited by kiwiis,

m45t3r

Well-Known Member
OP
Member
Joined
Jul 17, 2007
Messages
243
Trophies
0
Website
Visit site
XP
422
Country
Brazil
I have a clue this has to do with the CakeBrah loader... (why not use BrahmaLoader, btw? ;)). Could you upload the last version before you're current set of changes?
This would be the version v1.2.1, however @kiwiis seems to have tested already.

Btw, I don't think BrahmaLoader and CakeBrah are really different in the file brahma.c, that is the only think I use.
 
Last edited by m45t3r,

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
This would be the version v1.2.1, however @kiwiis seems to have tested already.

Btw, I don't think BrahmaLoader and CakeBrah are really different in the file brahma.c, that is the only think I use.
I tested CakeBrah with the Decrypt.bin (that's the bootstrap build goal that has since been working with all Brahma based solutions), and it did not work. No idea why, though. Currently asking mid-kid.
 

m45t3r

Well-Known Member
OP
Member
Joined
Jul 17, 2007
Messages
243
Trophies
0
Website
Visit site
XP
422
Country
Brazil
Excuse me, Is there any way to remove debug from the splash screen?
Do you mean the entry information in the bottom screen while showing the splash screen? No, there is not. I count this as part of the splash screen too, and you can either enable or disable the whole splash screen.

However, if this is really annoying, I can add an option to disable.
 
Last edited by m45t3r,

Billy Acuña

Well-Known Member
Member
Joined
Oct 10, 2015
Messages
3,126
Trophies
1
Age
31
XP
3,701
Country
Mexico
Do you mean the entry information in the bottom screen while showing the splash screen? No, there is not. I count this as part of the splash screen too, and you can either enable or disable the whole splash screen.

However, if this is really annoying, I can add an option to disable.
It will be nice to add an "hackless" look.
 

d0k3

3DS Homebrew Legend
Member
Joined
Dec 3, 2004
Messages
2,786
Trophies
1
XP
3,896
Country
Germany
@m45t3r, I did some testing. In fact, @mid-kid did some changes to CakeHax which required an offset in the Decrypt9 code to be changed. Now, I've been using BootCTR as a testing platform, and even with the offset (I'm not talking about the payload offset, that stays at 0x12000 for the .dat) changed to the correct one, it simply does not work. Maybe there is also some trouble with CakeBrah at the moment - I'm researching this now and will see if I can find something out.

You may also want to take a look. See here for the example project, here for a compiled version and here for Shadowtrances confirmation of it working via CakeHax mset.


ADDENDUM: Okay, tried setting up my own CakeBrah build goal. Works fairly reliable with that. I think you should check what's holding BootCTR from loading the HelloEntryPoint example payload.
 
Last edited by d0k3,
  • Like
Reactions: kiwiis

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
    K3Nv2 @ K3Nv2: Huge crts on both eye lids