Git Product home page Git Product logo

fastboot3ds's Introduction

fastboot3DS

A bootloader for the 3DS console, written by derrek, profi200, d0k3

fastboot3DS is a bootloader for the 3DS console, intended to be installed to the FIRM0 partition. It allows you to assign homebrew in .firm format to bootslots, and to chainload bootslots via either a bootmenu or a button combo of your choosing. fastboot3DS also contains basic tools for NAND backups and restores.

fastboot3DS on a real N3DS

Disclaimer

fastboot3DS installs to a critical partition of your system, and thus becomes one of the softwares critical to the functioning of your system. Although having been thoroughly tested, some risk may still remain, especially when fastboot3DS is not used in the way it is intended. In short: we are not responsible for any damage that may occur to your system as a direct or indirect result of you using fastboot3DS.

Quick start guide

These short instructions require you to have a way of booting OpenFirmInstaller. If you already have boot9strap installed, this is as simple as chainloading the OpenFirmInstaller.firm (either via some chainloader of your choosing, or put it on your SD card as sdmc:/boot.firm).

  • Have fastboot3DS.firm inside the sdmc:/ofifolder on your SD card. When installing from A9LH, secret_sector.bin is also required.
  • Boot OpenFirmInstaller and follow the on screen instructions. You will reboot to the fastboot3DS menu.
  • [optional] Enter Boot setup... -> Setup [slot 1]... -> Select [slot 1] firm and select the FIRM file of your main CFW. On typical systems that is smdc:/boot.firm, but anything goes.
  • [optional] Enter Boot setup... -> Change boot mode... -> Set quiet boot. Your system is now set to autoboot and will silently boot the CFW you selected above.

You may also want to set up the other boot slots and assign key combos to them. Keep in mind you need one autoboot slot (= a slot with no key combo assigned). If you want to access the fastboot3DS menu at a later point in time, hold the HOME button when powering on the console. From the fastboot3DS menu, you may continue the boot process via Continue boot, chainload a .firm file via Boot from file..., access the boot menu via Boot menu... or power off the console via the POWER button.

How to build

To compile fastboot3DS you need devkitARM, CTR firm builder and splashtool installed in your system. Additionally you need 7-Zip or on Linux p7z installed to make release builds. Also make sure the CTR firm builder and splashtool binaries are in your $PATH environment variable and accessible to the Makefile. Build fastboot3DS as debug build via make or as release build via make release.

Known issues

This section is reserved for a listing of known issues. At present only this remains:

  • Older releases of GodMode9 freeze when they are chainloaded via fastboot3DS. Use v1.5.0 or higher. In general (that means not only for fastboot3ds) it is recommended to have all your software updated to the latest version.
  • OpenFirmInstaller only allows installing official (= signed) releases of fastboot3ds. Developers wanting to test their own builds can install fastboot3ds custom builds via GodMode9.

If you happen to stumble over another bug, please open an issue in the official fastboot3DS repo on GitHub or contact us via other platforms.

License

You may use this under the terms of the GNU General Public License GPL v3 or under the terms of any later revisions of the GPL. Refer to the provided LICENSE.txt file for further information.

Thanks to...

  • yellows8
  • plutoo
  • smea
  • Normmatt (for sdmmc code)
  • WinterMute (for console code)
  • ctrulib devs (for HID code)
  • Luma 3DS devs (for fmt.c/gfx code)
  • mtheall (for LZ11 decompress code)
  • devkitPro (for the toolchain/makefiles)
  • ChaN (for the FATFS library)
  • fincs, Al3x_10m, Wolfvak, Shadowhand, Lilith Valentine, Crimson, Ordim3n (closed beta testing)
  • ...everyone who contributed to 3dbrew.org

Copyright (C) 2017 derrek, profi200, d0k3

fastboot3ds's People

Contributors

d0k3 avatar derrekr avatar profi200 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fastboot3ds's Issues

Changing the splash time

Right now I love the new splash function, however it goes a bit too quick for a custom splash with keybinds. Could there be a setting to extend or shorten the splash display time? (like luma nightly, but maybe more precise)

New(er) Release needed

It has been a year and a half since the last release. A lot of those 55 commits look really important, and people can't simply build the current tree and install with OFI, without adding the key. Please post a new build and label it as beta, or provide the key info in a text file. I have to ask myself what the point is, of using a key (and requirement for that key) for two entirely open-sourced projects. It's just an annoyance.

wont download

I tried to unzip the file. the Fastboot.firm file will not unzip. it says this:
Arg_NotSupportedException. I do not know what to do. I downloaded every one of the fastboot3ds files on here, it gave me the same message all across the board. What am I doing wrong?

where is fastboot3DS.firm?

I am VERY AWARE that this is probably the dumbest issue or question anyone will ever post here, but I just don't care at this point. I just want to get the ROM from Ocarina of Time 3D onto my computer so I can play it on Citra. I am not a computer person. I only know how to follow instructions.
I have downloaded the .zip file for fastboots3DS provided. The first instruction in the README is the following:
"Have fastboot3DS.firm inside the sdmc:/ofifolder on your SD card."
I have no idea where this "fastboots3DS.firm" file is. I have searched the folder for this, and can find no such file. Is this referring to the whole extracted folder? I am incredibly confused and do not want to risk bricking my 2DS by doing this trial and error.
Thanks.

Firm not booting

i have selected a firm and set it to quiet boot but upon startup my 3ds does not boot that firm????? please help

Some payloads fail to boot

Built from latest commit. Sometimes it fails to verify, sometimes it just blackscreens. v1.2 works fine with the same payloads. Sorry I didn't provide much more info.

[Feature Request] Dumping boot9, boot11, and otp

I haven't been able to figure out if this is even possible, failing left and right, at dumping the same files that boot9strap can dump when pressing and holding certain buttons at boot. I can't be sure if it seems like it would be required, but since it is a feature in the original b9s, could this be included to make a more inclusive bootloader?

Multiple Feature Requests

I had a few feature requests that I posted on the fastboot3DS thread on the temp, but I think they went unnoticed, so I'll just repost them here where they will be noticed.

  1. We should be able to cancel NAND backups. I know, this isn't top-priority, but when I tested the NAND backup feature and found that I couldn't cancel it like GM9. Of course, if you cancel it, it'd better delete the file, because a half-NAND backup would be a horrible thing to have on your SD.
  2. We should be able to change the NAND backup output path. I don't like the current SD:/3ds/ output, so I think we should be able to change it, perhaps via the config,
  3. We should be able to change the config location. I think the config should be located on the root of the SD, but perhaps it should be changeable on first boot.
    Custom splashes without compiling? It'd be nice, perhaps having a file on the SD card like with Luma splashes.
    Well, that was it. Keep working on this great program!

11.8 support?

Does this work with 11.8? I seem to be unable to boot at all after updating to 11.8. Complete black screen. No splashes.

Uninstalling?

I'm trying to reset all modifications without reflashing the NAND. Is there a way to remove Fastboot3DS, safely?

[Feature Request] PIN for Security™

I'm requesting a PIN feature with optional usage for certain things. For example, being able to choose to have a PIN just to access the fastboot3DS menu, or even require it just to boot (both PIN modes being options found on most modern BIOSes).

These are my suggested uses for a PIN:

  1. Booting the 3DS
  2. Booting into the fastboot3DS menu
  3. Booting specific boot slots rather than every single boot slot as 1. would do
  4. Booting from specific files
  5. Making NAND backups/restores
  6. Flashing a firmware to FIRM1
  7. Updating fastboot3DS with a new update

Before using fastboot3DS, I had Luma3DS's PIN feature enabled for both SD and NAND booting to prevent unauthorized access to my 3DS should it be stolen (without proper knowledge of how to delete the PIN file or swap boot.firm, of course, so it's not exactly that secure). However, with fastboot3DS replacing boot9strap and having an interface that can appear before Luma3DS and allow modifications to the system, I feel just a little less sane about leaving my 3DS around, as even if someone picks it up and doesn't know what they're doing, they can still do something they shouldn't.

I also apologize if the Issues section is not a proper location for a feature request, but I saw nothing in the README stating there was a specific location for them.

Bricked 3DS :(

My 3DS bricked today because i updated to 11.9
I dont know why, i hacked a 3DS yesterday and nothing happened(used b9s for that console)

Tried updating boot.firm
Tried EVERYTHING!

;(

Bootslots keycombos don't work anymore

I have a Retail Old2DS with Fastboot3DS v1.2, Luma3DS v10.2 and Nintendo System Software 11.13.0-45E.
I setted 12 boot slots: 6 for NAND and 6 for SDMC. I have following trouble from September 12th (a day after I installed Fastboot3DS) : GodMode9 (booted with [START] key) sometimes starts and other times Luma3DS Chainloader Menu is started. Other payloads, such as Decrypt9 (booted with [A+B+X+Y] keycombo) don't start anymore.
SDMC config file:


BOOT_MODE = Quick
BOOT_OPTION1 = sdmc:/firm_linux_loader.firm
BOOT_OPTION2 = sdmc:/luma/payloads/godmode9.firm
BOOT_OPTION2_BUTTONS = START
BOOT_OPTION3 = sdmc:/luma/payloads/Decrypt9WIP.firm
BOOT_OPTION3_BUTTONS = A + B + X + Y
BOOT_OPTION4 = sdmc:/luma/payloads/ntrboot_flasher.firm
BOOT_OPTION4_BUTTONS = UP + R + L
BOOT_OPTION5 = sdmc:/boot.firm
BOOT_OPTION6 = sdmc:/luma/payloads/OpenFirmInstaller.firm
BOOT_OPTION6_BUTTONS = START + UP + R + L
BOOT_OPTION1_BUTTONS = SELECT + START


NAND Config file:


BOOT_MODE = Quick
BOOT_OPTION1 = sdmc:/boot.firm
BOOT_OPTION2 = nand:/rw/luma/payloads/GodMode9.firm
BOOT_OPTION2_BUTTONS = START
BOOT_OPTION3 = nand:/rw/luma/payloads/Decrypt9WIP.firm
BOOT_OPTION3_BUTTONS = A + B + X + Y
BOOT_OPTION4 = nand:/rw/luma/payloads/ntrboot_flasher.firm
BOOT_OPTION4_BUTTONS = UP + R + L
BOOT_OPTION5 = nand:/boot.firm
BOOT_OPTION6 = sdmc:/luma/payloads/SafeB9SInstaller.firm
BOOT_OPTION6_BUTTONS = A + B + R + L + X + Y


This files are completely created by Fastboot3DS (I didn't edit them manually).
I tried to reinstall Fastboot3DS using its update utility, GodMode9 FIRM0 installer and OpenFirmInstaller.firm (I used it to install Fastboot3DS for the fist time), but I didn't resolve this trouble.

Boot from bonus drive support

I'd like to put a few utilities on my NAND's bonus drive and boot from there, however I can't seem to find it in 1.2 stable despite it being formatted, visible and read/write in GM9. Would there be a way to add this support or am I just missing it?

[Feature Request] Boot slots should be tried in order instead of failing when the first one fails.

Similar to how boot9strap checks sdmc:/boot.firm, but can fall back to nand:/boot.firm if the first one fails. I accidentally moved my boot.firm off of my SD card instead of copying it, and I was surprised to see it didn't fall back to the copy on CTRNAND. This is with the first two slots being configured to autoboot, slot 1 being sdmc:/boot.firm and slot 2 being nand:/boot.firm of course.

trying to compile

I'm trying to compile a clean fastboot3ds and I believe I have all the requirements, but I get this error.
C:/Users/willi/Desktop/fastboot3DS-1.0/fastboot3DS-1.0/arm9/../source/arm9/firmwriter.c:166:28: error: expected expression before '<<' token
if(vers < ((u32)VERS_MAJOR<<16 | VERS_MINOR)) return UPDATE_ERR_DOWNGRADE;
^~
make[2]: *** [/opt/devkitpro/devkitARM/base_rules:85: firmwriter.o] Error 1
make[2]: *** Waiting for unfinished jobs....
C:/Users/willi/Desktop/fastboot3DS-1.0/fastboot3DS-1.0/arm9/../thirdparty/fatfs/ff.c: In function 'f_setlabel':
C:/Users/willi/Desktop/fastboot3DS-1.0/fastboot3DS-1.0/arm9/../thirdparty/fatfs/ff.c:5062:2: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
for (slen = 0; (UINT)label[slen] >= ' '; slen++) ; /* Get name length /
^~~
C:/Users/willi/Desktop/fastboot3DS-1.0/fastboot3DS-1.0/arm9/../thirdparty/fatfs/ff.c:5082:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
{ /
On the FAT/FAT32 volume */
^
make[1]: *** [Makefile:112: build] Error 2
make: *** [Makefile:31: checkarm9] Error 2

help would very much be appreciated ^^

Config saving behavior

Right now the behavior seems to be:

  • If SD is present, load and save there
    • If there's no existing config, look for one on the NAND
      • Save to SD even if loaded from NAND
  • If SD is not present, load and save on the NAND instead

That way I cannot force it to use the NAND even if an SD card is present.

Can the behavior be changed so that it saves to the NAND if the config was loaded from the NAND?

Force restore a Nand.

I have tried restoring a corrupt nand which is now not installed. ( My o3ds I gave to a friend came back with no nand on it?) So I have a nand backup just no way to restore it. A dedicated feature to force restore a nand would be nice.

[BUG] FastBoot3ds says it dumps the bootroms but doesn't actually dump the bootroms.

Version of FastBoot3ds: Release 1.2

Issue: Attempting to dump Boot9.bin and Boot11.bin using FastBoot3ds's built in setting says it succeeds, yet doesn't actually dump the bootrom. (Proven by searching through every single directory on the SD Card after dumping)

System Tested on (not including the two systems in NH Discord):

New Nintendo 3ds - FB3ds 1.2+Luma 10.2 and SysNand 11.13.0-45U.

Build fail

Using ubuntu bash, the build errors out with:

Error opening key file fastboot3DS_priv.key
139948605310616:error:02001002:system library:fopen:No such file or directory:bss_file.c:398:fopen('fastboot3DS_priv.key','r')
139948605310616:error:20074002:BIO routines:FILE_CTRL:system lib:bss_file.c:400:
unable to load key file
0+0 records in
0+0 records out
0 bytes copied, 0.001844 s, 0.0 kB/s
make: 7z: Command not found
Makefile:57: recipe for target 'release' failed
make: *** [release] Error 127

Release ver

Hi, I see last release almost 4 years old but many commit since this time. It's recommend for compile for self?

Thx

[v1.1-beta] Configuration doesn't get copied to SD Card

Steps to Reproduce:

  1. Delete fastbootcfg.txt from SD
  2. Turn on 3DS
  3. Turn off 3DS (or run any mode that forces the 3DS to reboot)
  4. Fastboot3DS menu opens
  5. Open a File Manager and see that a blank fastbootcfg.txt has been created in the proper location

What I think is happening:

  1. Fastboot3DS boots the 3DS normally
  2. Reads the config from NAND
  3. Makes a config on the SD Card (as if it didn't exist on NAND or SD)
  4. Continues the boot process
  5. Upon rebooting it sees the blank config on SD and enters the menu

Additional info can be provided if required.

cant get my console to boot after switching sdcards and I know its something with fastboot

after swapping sd cards to a larger one fastboot keeps giving me this error saying that a directory that one of my boot slots is set to does not exist though when looking at my fastboot settings there is no boot slot setup there and its basically just telling me that it cant find a firm where I never told it to look I tried just launching luma from there and I just get a black screen after launching deleting the settings file from the sd card did not help

compatibility issues with Luma3DS

The commit (474eb30) on Luma3DS dose not boot on fastboot3DS but dose on B9S and GM9 (according to @AuroraWright).

I have a N3DS on system 11.9 as well as fastboot3ds 1.2 stable

Thanks for reading, I just wanted to inform the developers about compatibility issues

UPDATE: This issue has been fixed on luma's end in this
LumaTeam/Luma3DS@4e5f6e1

Default dump path shouldn't be sdmc:/3DS/

sdmc:/3DS/ is where things like HBL payloads and homebrew app data goes, it would clutter up the folder further. I would propose a system as such:
NAND backups: sdmc:/backups/
boot*/otp dumps: sdmc:/dumps/

Compilation issue

source/arm9/firmwriter.c
166:28 error: expected expression before '<<' token
if(vers < ((u32)VERS_MAJOR<<16 | VERS_MINOR)) return UPDATE_ERR_DOWNGRADE;
^~
make[2]: *** [/opt/devkitpro/devkitARM/base_rules:84: firmwriter.o] Error 1

Unable to load 100mb+ files

I use a forwarder to put NDS games onto my 3ds. Fastboot3ds messes with the loading of larger games though, as it'll flash the Fastboot3ds logo and take me to the screen where you turn off the system. I have found no workaround, and it'd really suck if I'm unable to continue with my playthroughs because of this;;

FastBoot3DS install with a GodMode9 Script

Hi!

I have a problem installing FastBoot3DS with a GodMode9 Script.

I know that the best option is install It with OpenFirmInstaller but I need a way to install It directly to the firm1 partition with my GM9 script.

I tried to install It directly with GodMode9 and It works but I tried several times to inyect It directly to the firm1 with my script and It always throw the blue screen.

Anyways, thanks for this amazing proyect, it's a good Boot9strap alternative

Luma3ds does not boot correctly after crash

After the system crashes, luma3ds boots, loads the splash screen, but then it's just a black screen and never boots to the home menu. I have tested this with boot9strap and luma3ds boots up correctly after a crash, which leads me to believe it's related to fastboot3ds. In order to boot back up again, I have to boot into the fastboot menu and manually select "continue boot."

Stuck in Fastboot3DS menu, cannot boot to regular 3DS Screen

(Originally posted at GBATemp)

OK, so my original SD card got corrupted, and I didn't want to go through and replace the CFW and homebrew software and I found this: 3ds CFW: Restoring functionality on a new SD card. Put it all on my SD card, and all worked fine.

After a few days, I wanted to update B9S. So I, being the naive person that I am, decided to launch OPENFIRMINSTALLER instead of SafeB9SInstaller. They looked the same to me, and at the time I didn't know Fastboot3DS was on the SD card. I installed it, and now I am stuck on the Fastboot3DS screen, with NO WAY OF LAUNCHING LUMA3DS! Not to mention that the SD card will not mount, and every time I try to get into the NAND, it freezes up completely.

So, yeah. I'm stuck.

TL;DR: I need help.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.