From GameBrew

Last Updated2018/03/19
TypeTheme Tools

BAX is a homebrew program for the Nintendo 3DS that allows you to display video streams on load. It is named after its predecessor, BootAnim9 - Boot Anim X/10 (although the 9 had nothing to do with the version).

Thanks to boot-time entrypoints, this can be done on boot, giving a similar impression to the loading animation of a PC or a mobile smartphone.

Please note while it's designed to boot another program, it does not allow both itself and the other to run concurrently, but rather sequentially. Therefore, any time that is taken by loading/playing the animation file will not be somehow given to the next program (f.e. independently of the time taken by the animation, the FIRM will take the same amount of time to load).

User guide

How to use

Download the BAX FIRM from the release archive, and set up your bootloader so that it's the first thing that gets loaded (or at least as early as possible).

Copy any BAX animation files to sdmc:/bax/ ("bax" folder on the SD card). BAX will randomly choose one animation from all animations found in the folder.

Put the FIRM to be loaded afterwards (CFW, secondary bootloader, Linux, etc) on sdmc:/bax/boot.firm. If for some reason you want to keep the FIRM elsewhere (easier to maintain/update, etc) you can also create a file sdmc:/bax/boot.txt that contains the plaintext ASCII path to the FIRM (f.e. boot.txt can contain the text "sdmc:/firm/cfw.firm" without the quotes). Compatibility appears to be perfect, although further testing is required.

If you want to skip the animation playback, press X during playback. The animation will halt until you let go, giving you time to press any other necessary buttons until the next FIRM is loaded and executed.

Note: BAX can not be booted from a FIRM partition or an NTRboot cart. Do not even try.

Example setups

For boot9strap:

  • Boot9strap installed on FIRM0.
  • BAX in sdmc:/boot.firm.
  • Luma3DS in sdmc:/bax/boot.firm.
  • Other FIRMs in sdmc:/luma/payloads.

For fastboot3DS:

  • Fastboot3DS installed on FIRM0.
  • BAX in sdmc:/firm/bax.firm (with fastboot3DS default bootslot pointing to this).
  • Rei-Six in sdmc:/bax/boot.firm.
  • Other FIRMs in sdmc:/firm, selectable through fastboot3DS if desired.

These are only examples, you can mix and match as you wish - the only requirement is to have BAX somewhere in the boot process, preferably as early as possible.

Other notes

Due to how Horizon/NATIVE_FIRM works, if you reboot from AGB_FIRM (GBA Virtual Console) the save game will not be saved until you reboot back into it again.

BAX performs no GPU initialization, only register tweaks and assumes the GPU has already been initialized by the time it boots.

Any B9S-compatible loaders _should_ do this, given the proper bit is set in the FIRM (it certainly is in BAX), but I can not realistically provide support for every existing loader out there.


Q. How do I create my own animations?

Read /makebax/

Q. I get a "BUG!" thing, some text and a weird error code! What do I do?

Read docs/


Compatible with all models.


Third release

  • Fix early exit edge cases.
  • Very light performance improvements.

Second release

  • Fixed framebuffer addresses (no more garbage on screen after firmlaunch).
  • Fixed ARM11 interrupts being left on an undefined state(?).

External links