Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

BootCtr 3DS: Difference between revisions

From GameBrew
No edit summary
m (Text replacement - "Category:Homebrew utility applications on 3DS" to "")
 
(17 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox 3DS homebrew
{{Infobox 3DS Homebrews
| title = BootCtr
|title=BootCtr
| image = https://dlhb.gamebrew.org/3dshomebrew/BootCtr.jpeg|250px
|image=Bootctr2.png
| type = Utilities
|description=A simple boot manager for 3DS.
| version = v2.1.0
|author=thiagokokada (m45t3r)
| licence = Mixed
|lastupdated=2016/01/30
| author = thiagokokada
|type=Utilities
| website = https://github.com/m45t3r/BootCtr
|version=2.1.0
| download = https://dlhb.gamebrew.org/3dshomebrew/BootCtr-3DS.rar
|license=Mixed
| source = https://dlhb.gamebrew.org/3dshomebrew/BootCtr-3DS.rar
|download=https://dlhb.gamebrew.org/3dshomebrews/bootctr.7z
|website=https://github.com/m45t3r/BootCtr
|source=https://github.com/m45t3r/BootCtr
}}
}}
<youtube>_rdHWEJwhLA</youtube>
BootCtr is a simple boot manager for 3DS.
 
It is based on the original code from [https://gbatemp.net/threads/release-homebrew-emergency-launcher.399394/ mashers], that itself is a modified version of Homebrew Launcher by [https://github.com/smealum/3ds_hb_menu Smealum]. This version removed some unused code used by Homebrew Launcher that isn't necessary in a simple bootloader, and added some interesting new features.
 
==Features==
* Supports both .3dsx files and binary payloads (for example, /Cakes.dat, /ReiNand.dat, /rxTools/sys/code.bin, etc).
* Supports advanced features in .3dsx files, like network support.
* Boot delay, to increase the boot rate chance of CFWs like rxTools and CakesFW.
* Allows up-to 16+1 (16 using keys plus 1 default) homebrews in O3DS, up-to 22+1 homebrews in N3DS.
* Support for boot screens, including an ASCII art (default) or custom images in [https://xem.github.io/3DShomebrew/tools/image-to-bin.html BGR] format.
 
==Installation==
'''Note:''' (Optional, but recommended) Install HomeMenuHax and set up autoboot.
 
Modify, according to your needs, the included boot_config.ini file.


=BootCtr - A simple boot manager for 3DS=
Copy both boot.3dsx and boot_config.ini to the root of your SD card.


Based on 3DS Homebrew Launcher code by [Smealum][hbl]. The original version is
For splash screen, look inside splash folder for some ready to use .bin files (including source file/preview in .png format).
from [mashers][hbe]. This version removed some unused code used by Homebrew
* Alternatively you can use the included img2bgr.sh script to convert your own images.
Launcher that isn't necessary in a simple bootloader, and added some
* Or convert them using the [https://xem.github.io/3DShomebrew/tools/image-to-bin.html online tool].
interesting new features.
Any question can be done in the [official topic][ofc] in GBAtemp forum.


==Features==
Remember to edit boot_config.ini to include splash_file option in the desired entry.


* Supports both `.3dsx` files and binary payloads (for example, `/Cakes.dat`,
==User guide==
* `/ReiNand.dat`, `/rxTools/sys/code.bin`, etc.).
===How to use===
* Supports advanced features in `.3dsx` files, like network support.
Boot up your homebrew hax as usual.
* Boot delay, to increase the boot rate chance of CFWs like rxTools and
CakesFW.
* Allows up-to **16+1** (16 using keys plus 1 default) homebrews in O3DS,
up-to **22+1** homebrews in N3DS.
* Support for boot screens, including an ASCII art (default) or custom
images in [BGR][bgr] format:


http://img.youtube.com/vi/_rdHWEJwhLA/0.jpg
If you do nothing, then boot_default.3dsx (or anything that you setup in [DEFAULT] section) will be launched.


http://www.youtube.com/watch?v=_rdHWEJwhLA
If you want to load an alternative launcher, hold down a button (configured according your boot_config.ini) to boot it.


==Installation==
You can also set to display only top or bottom splash screens.


* (Optional, but recommended) Install [HomeMenuHax][hmh] and set up autoboot.
===Covert image to BIN===
* Modify, according to your needs, the included `boot_config.ini` file.
You can use the following online tool to generate compatibile image format, [https://xem.github.io/3DShomebrew/tools/image-to-bin.html 3DS Homebrew tool: image to BIN converter], which allows you to convert common image formats to BGR.  
* Copy both `boot.3dsx` and `boot_config.ini` to the root of your SD card.
* For splash screen, look inside `splash` folder for some ready to use `.bin`
files (including source file/preview in `.png` format), or use the included
`img2bgr.sh` script to convert your own images (or convert them using this
[site][i2b]). Dont't forget to edit `boot_config.ini` to include `splash_file`
option in the desired entry.


==Usage==
Remember that 3DS top screen has a resolution of 400x240, so you should convert any image to this resolution first.


* Boot up your homebrew hax as usual.
==Media==
* If you do nothing, then `boot_default.3dsx` (or anything that you setup in
'''BootCtr for 3DS with boot screen support''' ([http://www.youtube.com/watch?v=_rdHWEJwhLA Thiago Kenji Okada]) <br>
`[DEFAULT]` section) will be launched.
<youtube>_rdHWEJwhLA</youtube>
* If you want to load an alternative launcher, hold down a button (configured
according your `boot_config.ini`) to boot it.


==Compiling==
==Changelog==
'''v2.1.0 2016/01/30'''
* Modifies splash option to accept more parameters. Now you can pass 0 to disable splash screens, 1 to only enable top screen (splash image or ASCII art), 2 to enable only bottom screen (entry information) or 3 for both (the same as the old 1 option, and still the default).


First, clone this repository including the submodules:
'''v2.0.0 2016/01/26'''
* Adds support for boot screens. By default there is a nice ASCII boot screen that is embedded in the application, however there is support for external custom boot screens by passing a properly converted BGR image to the option splash_image.
* Drops support for both debug and cfw_fix options. With splash screen support, the bottom screen is used to show entry information, exactly like the debug option did, so it was removed. cfw_fix was doing something similar to rendering something in the 3DS screens already, so now it is actually rendering something useful in the screen, this option made no sense anymore. However, the benefits of cfw_fix are still there.


    $ git clone --recursive https://github.com/m45t3r/BootCtr.git
'''v1.6 2016/01/25'''
* Added [GLOBAL] section, a special section that takes the role of what [DEFAULT] done before v1.5. So, if you set any option in [GLOBAL], it will override the internal defaults from the application. This is useful, for example, to enable debug mode in every entry.


Compile a new binary using the included `Makefile` and [devkitPro][dkp].
'''v1.5 2016/01/24'''
* Brings back the old homebrew boot method, fixing CTRXplorer boot (and maybe other homebrews out there).
* Fixes payload option too. It was always set to -1 even if you tried to force it to another value. This option is probably broken since its introduction, making this the first release that this option is working.
* Fixes support for DPAD was not working, and add support for Circle Pad too. However, you may need to update your boot_config.ini, since the name for direction sections changed (thanks MassExplosion213 for the reports above).
* A major rewrite in boot_config.ini. The objective is to make everything more user friendly, and reduce user confusion between options. Some early feedback seems to be so far good. Recommend every user to read the included boot_config.ini file in this release again.
* [DEFAULT] section does not override the internal default options anymore. This was a workaround because if the user pressed a button without a section, it would get the internal defaults instead of just booting whatever was in [DEFAULT]. However this workaround causes a whole another class of issues.
* Note: Without entering too much in the implementation details, it means that path option does not have an internal default anymore (it used to be set to boot_default.3dsx), so from this release you MUST have boot_config.ini file in your SD card (in previous releases it was optional, however BootCtr wouldn't be really useful without it) and each section MUST have at least path set (in previous releases, it was optional too, however it would get whatever was set in [DEFAULT]).


If devkitPro is correctly installed all you need to do is:
'''v1.4 2016/01/23'''
* Adds two new options for boot entries (see boot_config.ini file for the documentation of these new options):
** The first one is cfw_fix. This option increase boot rate in some CFWs (rxTools), making it similar to the boot rate from version 1.2.1. Since cfw_fix may have some side effects (like decreased boot rate in any other CFW that isn't rxTools), it can be disabled by passing cfw_fix = 0, however this is not recommended. The default for this option is on.
** The second new option is debug. This option prints the current entry to 3DS screen before running, waiting until the user press Start button to continue. While this is not exactly useful, it may help when while investigating in case of issues.


    $ make
'''v1.3 2016/01/22'''
* Code cleanup since release v0.2(?).
* Various changes in the repository organization, and by consequence, Makefile. No more silly #include "very/long/path" too. While this does not change anything, it makes the repository much more organized, at the expense of having headers and source code files separated.


And copy the new `boot.3dsx` file to your SD card. Do not forget to copy
'''v1.2.1 2016/01/16'''
`boot_config.ini` too.
* Fixes binary payload loading on N3DS (thanks Aurora Wright from GBAtemp for the report).
Alternatively you can run the command below too (needs `zip` and `git`
installed):


    $ make release
'''v1.2 2016/01/09'''
* Brings changes to make BootCtr compatible with ctrulib 1.0. This should make it easier to build now (since you can simple install the official release of ctrulib X some random git version). This brings updates from CakeBrah and libkhax too (so they're compatible with ctrulib 1.0), so maybe there is more stability, maybe not.


To generate a .zip file including all source code and auxiliary files, ready
'''v1.1 2015/12/15'''
for distribution.
* Uses mid-kid/CakeBrah itself instead of a fork. This brings some new fixes comming from upstream that may or not help in boot rate in some situations.  
* Some smaller fixes.


===License===
'''v1.0 2015/11/01'''
* This project was renamed, since the old name (HBL-Emergency) was not appropriated anymore for the features that this project have. So decided to rename it to BootCtr.
* Bump the version number to 1.0. There isn't many exciting changes, however, mostly bug fixes in this release.


The original source code ([Homebrew Launcher][hbl]) does not have a proper
[https://github.com/thiagokokada/BootCtr/releases?after=v1.0 Revision changelog.]
license, and since this code is derived from it I can't simple change the
license for something that I would like. The `README.md` from HBL says:
> ""Feel free to use code from hbmenu for your own projects, so long as you
give credit to its original authors.""
In the section below we give proper credits to everyone that helped creating
this project. Of course, all of my modifications is distributed in a similar
license, so go ahead and fork and do something interesting.
CakeBrah does not seem to have a proper license too. However, [brahma][bhm]
uses a license similar to MIT (see `README-brahma` for details), and
CakeBrah is a derived work so it should use a similar license.
[inih][inh] is distributed under New BSD License, while [libkhax][khx] (not
used directly, however it is a dependency of CakeBrah) uses MIT license.


==Credits==
==Credits==
* smealum and everyone that worked in the [https://github.com/smealum/3ds_hb_menu Homebrew Launcher].
* mashers, for the original source code of [https://gbatemp.net/threads/release-homebrew-emergency-launcher.399394 HBL-Emergency].
* Cpasjuste, for some ideas from [https://github.com/Cpasjuste/CtrBootManager CtrBootManager].
* benhoyt, for [https://github.com/benhoyt/inih inih].
* mid-kid and others, for [https://github.com/mid-kid/CakeBrah CakeBrah].
* pbanj from GBAtemp for the [https://gbatemp.net/threads/re-release-bootctr-a-simple-boot-manager-for-3ds.401630/page-14#post-6083200 logo and splash screen].


* @smealum and everyone that worked in the [Homebrew Launcher][hbl]
==External links==
* @mashers, for the original source code of [HBL-Emergency][hbe]
* GitHub - https://github.com/thiagokokada/BootCtr
* @Cpasjuste, for some ideas from his [CtrBootManager][cbm]
* GBAtemp - https://gbatemp.net/threads/re-release-bootctr-a-simple-boot-manager-for-3ds.401630
* @benhoyt, for [inih][inh]
* @mid-kid and others, for [CakeBrah][ckb]
* @pbanj from GBAtemp for the [logo and splash screen][lgs]
* [hbl]: https://github.com/smealum/3ds_hb_menu
* [hbe]: https://gbatemp.net/threads/release-homebrew-emergency-launcher.399394/
* [dkp]: http://devkitpro.org/
* [cbm]: https://github.com/Cpasjuste/CtrBootManager
* [inh]: https://github.com/benhoyt/inih
* [ckb]: https://github.com/mid-kid/CakeBrah
* [hmh]: https://github.com/yellows8/3ds_homemenuhax
* [ofc]: https://gbatemp.net/threads/re-release-bootctr-a-simple-boot-manager-for-3ds.401630/
* [bhm]: https://github.com/patois/Brahma
* [khx]: https://github.com/Myriachan/libkhax
* [bgr]: https://xem.github.io/3DShomebrew/tools/image-to-bin.html
* [lgs]: https://gbatemp.net/threads/re-release-bootctr-a-simple-boot-manager-for-3ds.401630/page-14#post-6083200
* [i2b]: https://xem.github.io/3DShomebrew/tools/image-to-bin.html

Latest revision as of 05:35, 6 Mayıs 2024

BootCtr
Bootctr2.png
General
Authorthiagokokada (m45t3r)
TypeUtilities
Version2.1.0
LicenseMixed
Last Updated2016/01/30
Links
Download
Website
Source

BootCtr is a simple boot manager for 3DS.

It is based on the original code from mashers, that itself is a modified version of Homebrew Launcher by Smealum. This version removed some unused code used by Homebrew Launcher that isn't necessary in a simple bootloader, and added some interesting new features.

Features

  • Supports both .3dsx files and binary payloads (for example, /Cakes.dat, /ReiNand.dat, /rxTools/sys/code.bin, etc).
  • Supports advanced features in .3dsx files, like network support.
  • Boot delay, to increase the boot rate chance of CFWs like rxTools and CakesFW.
  • Allows up-to 16+1 (16 using keys plus 1 default) homebrews in O3DS, up-to 22+1 homebrews in N3DS.
  • Support for boot screens, including an ASCII art (default) or custom images in BGR format.

Installation

Note: (Optional, but recommended) Install HomeMenuHax and set up autoboot.

Modify, according to your needs, the included boot_config.ini file.

Copy both boot.3dsx and boot_config.ini to the root of your SD card.

For splash screen, look inside splash folder for some ready to use .bin files (including source file/preview in .png format).

  • Alternatively you can use the included img2bgr.sh script to convert your own images.
  • Or convert them using the online tool.

Remember to edit boot_config.ini to include splash_file option in the desired entry.

User guide

How to use

Boot up your homebrew hax as usual.

If you do nothing, then boot_default.3dsx (or anything that you setup in [DEFAULT] section) will be launched.

If you want to load an alternative launcher, hold down a button (configured according your boot_config.ini) to boot it.

You can also set to display only top or bottom splash screens.

Covert image to BIN

You can use the following online tool to generate compatibile image format, 3DS Homebrew tool: image to BIN converter, which allows you to convert common image formats to BGR.

Remember that 3DS top screen has a resolution of 400x240, so you should convert any image to this resolution first.

Media

BootCtr for 3DS with boot screen support (Thiago Kenji Okada)

Changelog

v2.1.0 2016/01/30

  • Modifies splash option to accept more parameters. Now you can pass 0 to disable splash screens, 1 to only enable top screen (splash image or ASCII art), 2 to enable only bottom screen (entry information) or 3 for both (the same as the old 1 option, and still the default).

v2.0.0 2016/01/26

  • Adds support for boot screens. By default there is a nice ASCII boot screen that is embedded in the application, however there is support for external custom boot screens by passing a properly converted BGR image to the option splash_image.
  • Drops support for both debug and cfw_fix options. With splash screen support, the bottom screen is used to show entry information, exactly like the debug option did, so it was removed. cfw_fix was doing something similar to rendering something in the 3DS screens already, so now it is actually rendering something useful in the screen, this option made no sense anymore. However, the benefits of cfw_fix are still there.

v1.6 2016/01/25

  • Added [GLOBAL] section, a special section that takes the role of what [DEFAULT] done before v1.5. So, if you set any option in [GLOBAL], it will override the internal defaults from the application. This is useful, for example, to enable debug mode in every entry.

v1.5 2016/01/24

  • Brings back the old homebrew boot method, fixing CTRXplorer boot (and maybe other homebrews out there).
  • Fixes payload option too. It was always set to -1 even if you tried to force it to another value. This option is probably broken since its introduction, making this the first release that this option is working.
  • Fixes support for DPAD was not working, and add support for Circle Pad too. However, you may need to update your boot_config.ini, since the name for direction sections changed (thanks MassExplosion213 for the reports above).
  • A major rewrite in boot_config.ini. The objective is to make everything more user friendly, and reduce user confusion between options. Some early feedback seems to be so far good. Recommend every user to read the included boot_config.ini file in this release again.
  • [DEFAULT] section does not override the internal default options anymore. This was a workaround because if the user pressed a button without a section, it would get the internal defaults instead of just booting whatever was in [DEFAULT]. However this workaround causes a whole another class of issues.
  • Note: Without entering too much in the implementation details, it means that path option does not have an internal default anymore (it used to be set to boot_default.3dsx), so from this release you MUST have boot_config.ini file in your SD card (in previous releases it was optional, however BootCtr wouldn't be really useful without it) and each section MUST have at least path set (in previous releases, it was optional too, however it would get whatever was set in [DEFAULT]).

v1.4 2016/01/23

  • Adds two new options for boot entries (see boot_config.ini file for the documentation of these new options):
    • The first one is cfw_fix. This option increase boot rate in some CFWs (rxTools), making it similar to the boot rate from version 1.2.1. Since cfw_fix may have some side effects (like decreased boot rate in any other CFW that isn't rxTools), it can be disabled by passing cfw_fix = 0, however this is not recommended. The default for this option is on.
    • The second new option is debug. This option prints the current entry to 3DS screen before running, waiting until the user press Start button to continue. While this is not exactly useful, it may help when while investigating in case of issues.

v1.3 2016/01/22

  • Code cleanup since release v0.2(?).
  • Various changes in the repository organization, and by consequence, Makefile. No more silly #include "very/long/path" too. While this does not change anything, it makes the repository much more organized, at the expense of having headers and source code files separated.

v1.2.1 2016/01/16

  • Fixes binary payload loading on N3DS (thanks Aurora Wright from GBAtemp for the report).

v1.2 2016/01/09

  • Brings changes to make BootCtr compatible with ctrulib 1.0. This should make it easier to build now (since you can simple install the official release of ctrulib X some random git version). This brings updates from CakeBrah and libkhax too (so they're compatible with ctrulib 1.0), so maybe there is more stability, maybe not.

v1.1 2015/12/15

  • Uses mid-kid/CakeBrah itself instead of a fork. This brings some new fixes comming from upstream that may or not help in boot rate in some situations.
  • Some smaller fixes.

v1.0 2015/11/01

  • This project was renamed, since the old name (HBL-Emergency) was not appropriated anymore for the features that this project have. So decided to rename it to BootCtr.
  • Bump the version number to 1.0. There isn't many exciting changes, however, mostly bug fixes in this release.

Revision changelog.

Credits

External links

Advertising: