Homebrew [RELEASE] BAX - Boot animations for your 3DS!

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
916
Trophies
1
XP
2,661
Country
Uruguay
I've always been unsatisfied with the original BA9, it was kinda weird with specific environments, etc... so I did the only logical thing.
I rewrote it from scratch (more than once!).

The new BAX uses lossless compression (LZ4) and delta encoding to work around some of the issues like the low resolution of the 3DS screens and fundamental problems like MJPEG size.

It uses a 16 bit color space (RGB565) and lossless compression, which leads to (IMHO) great visual quality when the video source is properly encoded. This also allows the use of up to both screens running at 60fps, the target I aimed for with the original BA9.


Also included in the source is makebax, an utilty that can convert IVF files to a format usable by BAX. It can accept videos that are 400x240, 320x240 or 720x240, each corresponding to a different variation - top screen only, bottom screen only or both screens at the same time. Read this for more information.

I know at this point in time the 3DS is quickly dying and nobody cares too much about anything other than CFWs when it comes to baremetal development, but I thought it'd be better to make a proper thread for this thing rather than let it rot in some hidden repo. Sorry about the lack of flair or any premade content on this thread, but I just don't know how to write attractive text, I guess.

If you make any animations, feel free to post them as replies to this thread, and as always, feedback is very appreciated.

Latest release
Source
 
Last edited by Wolfvak, , Reason: fixed release link

ManuelKoegler

Well-Known Member
Member
Joined
Nov 5, 2015
Messages
397
Trophies
0
Age
27
XP
665
Country
Netherlands
First of all just let me say that I appreciate this, as focus shifts to newer/different platforms, it’s nice to see the 3DS still receiving some love.
Second, I have a question.
I only made of Bootanim9 for a short time.
This was because once the animation finished I’d still have to wait out the regular time of the 3DS booting up as opposed to getting an animation while it’s booting up, basically ending the animation with the 3ds immediately in the home menu.
Just wanted to ask if that has changed, and if not, whether that will/could be possible?


Sent from my iPhone using Tapatalk
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
916
Trophies
1
XP
2,661
Country
Uruguay
First of all just let me say that I appreciate this, as focus shifts to newer/different platforms, it’s nice to see the 3DS still receiving some love.
Second, I have a question.
I only made of Bootanim9 for a short time.
This was because once the animation finished I’d still have to wait out the regular time of the 3DS booting up as opposed to getting an animation while it’s booting up, basically ending the animation with the 3ds immediately in the home menu.
Just wanted to ask if that has changed, and if not, whether that will/could be possible?
Sent from my iPhone using Tapatalk
No, it hasn't changed at all, the problem is that the home menu (and all it's dependencies/children) are handled by NATIVE_FIRM, nothing can be done about it. The only thing that could mildly (and I mean **very** mildly) speed it up would be to load NATIVE_FIRM while the animation is still playing, rather than when it's finished, but since most users have CFWs in the middle it's unfeasible. Besides, the speedup would be negligible (in the order of hundreds of miliseconds).

To form a better mental picture of the problem, imagine you have a regular PC with GRUB and some Linux distro installed. Now imagine trying to load some program that's meant to run on Linux from GRUB itself, without loading the Linux kernel.

The only real fix for the problem would involve some pretty deep kernel modifications, and some interfacing between the several required sysmodules (gsp, fs) which may or may not be ready to accept data and BAX. Overall, it's too much effort for little payout.

You can always skip it by holding the X button anyway, I guess.

EDIT: By the way, this is explained (maybe not in-depth enough) in the README.
 
Last edited by Wolfvak,

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,093
Trophies
1
Age
21
Location
New York
XP
2,697
Country
United States
Cant wait to try this when i get home. Is there a way to make it so that if you hit a button it skips it? I think if you could implement a looping gif feature where you could set different buttons to different .firm files, this could really set itself apart.
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
916
Trophies
1
XP
2,661
Country
Uruguay
Cant wait to try this when i get home. Is there a way to make it so that if you hit a button it skips it?
There already is, the X button.

I think if you could implement a looping gif feature where you could set different buttons to different .firm files, this could really set itself apart.
I wanted it to be really simple to set up, both the animation files and BAX itself, so there is absolutely no configuration. Therefore, this isn't possible, and I don't think it's a good idea either. If you want to, feel free to code it yourself, I'd definitely be interested in seeing the results.
 

Giodude

GBAtemp's official rock
Member
Joined
May 17, 2015
Messages
5,093
Trophies
1
Age
21
Location
New York
XP
2,697
Country
United States
There already is, the X button.


I wanted it to be really simple to set up, both the animation files and BAX itself, so there is absolutely no configuration. Therefore, this isn't possible, and I don't think it's a good idea either. If you want to, feel free to code it yourself, I'd definitely be interested in seeing the results.
Im unfamiliar with coding for the 3ds, but the X button helps though, thanks. Ive been looking to start developing for the 3ds but i dont know any good programming courses i could take in my area to help get kickstarted.
 
D

Deleted User

Guest
a little to much work to convert .mp4 to .ivf to .bax
can you simplify this process by making a gui or converting .mp4 to .bax?
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
916
Trophies
1
XP
2,661
Country
Uruguay
a little to much work to convert .mp4 to .ivf to .bax
can you simplify this process by making a gui or converting .mp4 to .bax?
Definitely no GUI, I want to keep makebax portable and runnable in servers.

Maybe I could spend the weekend trying to figure out libav, allowing support for a lot more input formats but that doesn't really solve other problems, like resolution (if you give the program a 1280x720 source, what should it convert it to? A top screen anims, bottom screen anim or dual screen anim?)
There's also a lot of formats with VBR (variable bit rate) which is just not doable from BAX, so it's easier to convert your source to a simpler intermediate format.
 
  • Like
Reactions: gnmmarechal

aos10

Yuuki chan
Member
Joined
Apr 10, 2012
Messages
4,731
Trophies
1
Age
35
XP
3,717
Country
Saudi Arabia
oh wow, i can't wait to port my old gif to this

4SdKVU1.gif


ijOxX4u.gif


and let's not forget the GateBomb version :rofl2:

qLv8yzX.gif
 
D

Deleted User

Guest
I have .gif's for BootCTR9 and I wanna switch to BAX one cuz latest B9S broke it. Will that filetype work?
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
916
Trophies
1
XP
2,661
Country
Uruguay
I noticed the note on the README on gba vc saving. To clarify : i have to boot my gba vc again just for the save to stick? A little bit confused haha.
No, you only need to boot NATIVE_FIRM/"Home Menu".

I suppose in most setups it should happen automatically (reboot from agb -> bootrom -> some bootloader -> bax, although it skips the anim -> cfw -> native firm), but I said it in the readme just in case people have weirder stuff between "bootloader" and "bax".

Say, for example, you *always* boot to GM9 for some reason and then you boot bax, but instead of doing that after an agb reboot you decide to power off your system... Well, the agb save is as good as lost iirc.
 
Last edited by Wolfvak,

MitsukiUchiwa

Well-Known Member
Newcomer
Joined
Jun 29, 2017
Messages
58
Trophies
0
Location
Tokyo
XP
709
Country
Japan
Okay so I have my *.ivf file, but I don't get this part :

HTML:
B9S:
boot9strap installed on FIRM0.
BAX in sdmc:/boot.firm.
Luma3DS in sdmc:/bax/boot.firm.
Other FIRMs in sdmc:/luma/payloads

There's a BAX.firm, so, do I need to rename it and replace it with the original boot.firm on my sdcard?
Which boot.firm should I put in /bax ?
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
916
Trophies
1
XP
2,661
Country
Uruguay
Okay so I have my *.ivf file, but I don't get this part :

HTML:
B9S:
boot9strap installed on FIRM0.
BAX in sdmc:/boot.firm.
Luma3DS in sdmc:/bax/boot.firm.
Other FIRMs in sdmc:/luma/payloads

There's a BAX.firm, so, do I need to rename it and replace it with the original boot.firm on my sdcard?
Which boot.firm should I put in /bax ?
That's just an example setup... and yeah, you're right about the first part. As for sdmc:/bax/boot.firm, the previous boot.firm should go there.
 
General chit-chat
Help Users
    KennieDaMeanie @ KennieDaMeanie: Well we're only up to chapter four