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

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
918
Trophies
1
XP
3,386
Country
Uruguay
...is it ok if a have done a NSFW bax and post it here? i dont remember the entire Temp rules xd
I honestly don't know what the obsession with NSFW boot anims is, I had the same problem back with BA9 and my opinion is the same - don't do it, and if you do it, definitely don't upload it here.

[LINK REDACTED]
The link has edit privileges so pls dont delete anything

Just remove it then? It's a pretty bad idea to put something like this on a completely open forum where absolutely ANYONE can read it.

In any case, I'm looking into getting a server to host all of these and I have enough storage but my bandwidth sucks way too hard (2/.5 Mbps) to make it feasible. I don't like VPSes since most are hosted in the US and I simply don't trust them, and the non-US ones either have ridiculous limitations (CPU usage, really low bandwidth) or are insanely priced.
 

gamesgod

Member
Newcomer
Joined
Aug 20, 2017
Messages
20
Trophies
0
XP
61
Country
China
The animation plays, then load luma, after luma display splash.bin+splashbottom.bin, I'm getting a blank screen.
It boots normally when I move the boot.firm out of bax directory back to the root.

B9S 1.3+ Luma 9.0 on n3DS
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
918
Trophies
1
XP
3,386
Country
Uruguay
Does this support sound? If not, will it?
https://gbatemp.net/threads/release-bax-boot-animations-for-your-3ds.497717/page-2#post-7868276

The animation plays, then load luma, after luma display splash.bin+splashbottom.bin, I'm getting a blank screen.
It boots normally when I move the boot.firm out of bax directory back to the root.

B9S 1.3+ Luma 9.0 on n3DS
Hmm, that's a weird one, can't reproduce. Could you try this FIRM? And if that doesn't work, temporarily remove the splashes, just to rule it out as a probable cause.
 

unipablojorge

Totally not an FBI agent.
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
Wow, that was a really dumb bug on my part. Should be fixed here, and I'll attach a fixed build. Try it with the boot.txt method. If it works fine, I'll update the OP and upload a new release on GitLab.

It also includes the VRAM address fix, which means there will be no more garbage loaded on screen for a split second when loading Luma and other FIRMs that load stuff to VRAM.

Ok thank you for that. I've been all week trying to get this to build on windows, but it didn't work. I should just use Linux lol (probably my devkitARM install, nothing serious)
 

unipablojorge

Totally not an FBI agent.
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
I don't know If I'm too late for this, but I wanted to contribute so I made this

It is a simple program in C++ (my very first one!) that executes ffmpeg and MakeBAX (both not included) to create a .bax from a mp4 or a gif*, directly. It lets you choose various options like the screen or the frame rate.

*In fact Gifs need two steps as I am too lazy to do it in one, maybe in the future.

The only thing about the program is that it only works in Windows, as it uses cmd commands. There's also the problem that it is a .exe, if you want to try on linux feel free.

Requirements and instructions are in the readme.

Enjoy!
 
  • Like
Reactions: KoalaBoy

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
918
Trophies
1
XP
3,386
Country
Uruguay
This firm has the same problem. removed the splashes too.
Hmm, then I don't know. I haven't extensively tested this, but in a worst case scenario you could just remove it, there's no brick risk or anything similar.

Ok thank you for that. I've been all week trying to get this to build on windows, but it didn't work. I should just use Linux lol (probably my devkitARM install, nothing serious)
I'd be very interested in knowing what the error is.

I don't know If I'm too late for this, but I wanted to contribute so I made this

It is a simple program in C++ (my very first one!) that executes ffmpeg and MakeBAX (both not included) to create a .bax from a mp4 or a gif*, directly. It lets you choose various options like the screen or the frame rate.

*In fact Gifs need two steps as I am too lazy to do it in one, maybe in the future.

The only thing about the program is that it only works in Windows, as it uses cmd commands. There's also the problem that it is a .exe, if you want to try on linux feel free.

Requirements and instructions are in the readme.

Enjoy!
Actually, the original BA9 had bash and cmd scripts that did basically this. That's why I went with a simple format this time, it relieves me of having to support multiple platforms, I can write one _very_ simple program and leave it up to the user to provide correct input (which can be obtained through ffmpeg, etc).

I suppose if you're gonna make it Windows-specific you might as well ignore C(++) and go straight for batch/PowerShell. Good effort nonetheless, especially for a first program.

For the record, I also had doubts about writing it in C++, and wanted to do something in C#, but it turns out Mono isn't as portable as I expected.
 

unipablojorge

Totally not an FBI agent.
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
I suppose if you're gonna make it Windows-specific you might as well ignore C(++) and go straight for batch/PowerShell.
Yeah, I was totally going to go for that one. The only problem is that I don't know a lot about Batch and PowerShell (I can do a Hello World!), but I was experienced with programming languages similar to C. So I heard that c++ was the hot thing now so I decided to give it a try. Well actually, I tried using C and gave up because it was too complicated for me to make some things, then thought about Java, when I realized that better don't use Java.

I think though it may be cross-platform, if system(); works in linux too and you have everything necessary the only piece of code that won't work is one "cls" that I could easily remove. As I said, I don't have Linux so I can't try, and I would have to build it again but with a Linux extension (and I know nothing about Linux file formats)
wanted to do something in C#
Can't help you with that, haven't even touched it yet lol


I can write one _very_ simple program and leave it up to the user to provide correct input
Yeah, the only problem I was the first one to post a premade animation (iirc) here so I had users bombing me about doing (a lot!) of animations. I decided that this was the best approach as it would only take a few hours, help me learn how to code and save me a lot of work.
I'd be very interested in knowing what the error is.

I'm going to post the error since I couldn't get it to work.
What I did was:
  1. Went to /mpcore/ (more on why this later)
  2. Made make clean (everything fine here)
  3. And then made Make. Here is the problem: the makefile should take the header files from ../common/, but it doesn't recognize it. The error just tells me the first #include and just tells me that is not a correct file.
Now, if on the other hand, I do make from the main directory, this happens:

Code:
Building oldarm/oldarm.elf
C:\devkitPro\msys\bin\make.exe[1]: Nothing to be done for `all'.
Building mpcore/mpcore.elf
C:\MinGW\bin\gcc.exe -c -O2 -std=c11 -pipe -fomit-frame-pointer -ffunction-sections -ffast-math -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-function -Wno-main -ggdb -DARM11 -marm -mno-thumb-interwork -I"/c/Users/pablo/BAX/source/common" -Isrc -o bin/anim.c.o src/anim.c
/bin/sh: C:MinGWbingcc.exe: command not found
C:\devkitPro\msys\bin\make.exe[1]: *** [bin/anim.c.o] Error 127
make: *** [mpcore/mpcore.elf] Error 2

I think it's a problem with my MinGW, as it is taking "C:MinGWbingcc.exe" and executing it (when in fact it should be without the C: ), or maybe the makefile. I have 0 experience with makefiles so I have no idea what can be wrong. Hopefully you can help me figure out that one.
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
918
Trophies
1
XP
3,386
Country
Uruguay
Yeah, I was totally going to go for that one. The only problem is that I don't know a lot about Batch and PowerShell (I can do a Hello World!), but I was experienced with programming languages similar to C. So I heard that c++ was the hot thing now so I decided to give it a try. Well actually, I tried using C and gave up because it was too complicated for me to make some things, then thought about Java, when I realized that better don't use Java.

I think though it may be cross-platform, if system(); works in linux too and you have everything necessary the only piece of code that won't work is one "cls" that I could easily remove. As I said, I don't have Linux so I can't try, and I would have to build it again but with a Linux extension (and I know nothing about Linux file formats)
system() is a pretty unsafe function - something like execve might be marginally better.

Yeah, the only problem I was the first one to post a premade animation (iirc) here so I had users bombing me about doing (a lot!) of animations. I decided that this was the best approach as it would only take a few hours, help me learn how to code and save me a lot of work.
As I said a while ago I'm actually planning on setting up a server so people could just upload a regular video file and get a BAX file back, so the entire system would be automated (another reason why I picked C++ and simple libs for makebax - it's easily adaptable).

I'm going to post the error since I couldn't get it to work.
What I did was:
  1. Went to /mpcore/ (more on why this later)
  2. Made make clean (everything fine here)
  3. And then made Make. Here is the problem: the makefile should take the header files from ../common/, but it doesn't recognize it. The error just tells me the first #include and just tells me that is not a correct file.
Now, if on the other hand, I do make from the main directory, this happens:

Code:
Building oldarm/oldarm.elf
C:\devkitPro\msys\bin\make.exe[1]: Nothing to be done for `all'.
Building mpcore/mpcore.elf
C:\MinGW\bin\gcc.exe -c -O2 -std=c11 -pipe -fomit-frame-pointer -ffunction-sections -ffast-math -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-unused-function -Wno-main -ggdb -DARM11 -marm -mno-thumb-interwork -I"/c/Users/pablo/BAX/source/common" -Isrc -o bin/anim.c.o src/anim.c
/bin/sh: C:MinGWbingcc.exe: command not found
C:\devkitPro\msys\bin\make.exe[1]: *** [bin/anim.c.o] Error 127
make: *** [mpcore/mpcore.elf] Error 2

I think it's a problem with my MinGW, as it is taking "C:MinGWbingcc.exe" and executing it (when in fact it should be without the C: ), or maybe the makefile. I have 0 experience with makefiles so I have no idea what can be wrong. Hopefully you can help me figure out that one.

That's weird, this line should include the devkitARM tools (sets up CC, CXX, AS, etc env vars) and yet it's trying to use the native toolchain for some reason. I'd love to call it a make bug (I've seen a couple of them while writing the build system) but I don't know.

And yes, it's meant to be built from the root directory, not inside mpcore or oldarm, unlike makebax, since the ARM9 and ARM11 binaries share some code (PXI, interrupt enumeration, etc)
 

unipablojorge

Totally not an FBI agent.
Member
Joined
May 25, 2017
Messages
161
Trophies
0
Age
29
Location
Navarre
XP
146
Country
Spain
system() is a pretty unsafe function - something like execve might be marginally better.
Yeah, while looking through the c++ docs and other things I saw that, but I didn't want to make it too complicated and also it was my first program. I wanted to make it so that ffmpeg's path wouldn't matter as long as you had it in your PATH variable. Now that I'm writing this, maybe there's a way to check PATH but instead of executing system(); use PATH to get the ffmpeg binaries. I will take a look at that.
I'd love to call it a make bug (I've seen a couple of them while writing the build system) but I don't know.
Don't worry about that, windows can be unpredictable sometimes... just wanted to do it for fun and learning mostly, so it's totally ok.

As I said a while ago I'm actually planning on setting up a server so people could just upload a regular video file and get a BAX file back
That's awesome! Totally looking forwards into that.


I didn't know what else to write here so it wouldn't seem like I was being cold or something, so I'm just going to say thank you again- for BootAnim9, which opened new doors to 3DS customization, for BAX, which is even better, and for making a guy like me learn a new programming language! I had a Luma Splash before, But actually I always wanted to have BootAnim9 in a9lh. When I saw this a few days ago, I though the planets aligned!
 

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
918
Trophies
1
XP
3,386
Country
Uruguay
@Wolfvak Can you make 32x version of makebax for windows please?
Sorry about the delay, had to set up a Win7 VM with msys2 and other stuff, but you can find an i686 build in the attachments.
I still recommend using a 64 bit OS, even if you have <= 4GB of RAM because the higher register count and width, plus SSE2 and other extras really speed up processing (especially with such a CPU demanding program like makebax on highest compression level).

Yeah, while looking through the c++ docs and other things I saw that, but I didn't want to make it too complicated and also it was my first program. I wanted to make it so that ffmpeg's path wouldn't matter as long as you had it in your PATH variable. Now that I'm writing this, maybe there's a way to check PATH but instead of executing system(); use PATH to get the ffmpeg binaries. I will take a look at that.

Eh, it's not a big deal anyway. Not a critical system component, so it's perfectly acceptable.

That's awesome! Totally looking forwards into that.
It's still in a very early "idea" phase, juggling designs around my head, but it's definitely doable. However, if you take a look at the benchmarks you can quickly realize maximum compression would lead to massive CPU load on older hardware, so I'd have to either purchase a _very_ expensive Xeon server and allow max compression, or use off the shelf hardware and have animations be ~10% larger. Not a big deal.

I didn't know what else to write here so it wouldn't seem like I was being cold or something, so I'm just going to say thank you again- for BootAnim9, which opened new doors to 3DS customization, for BAX, which is even better, and for making a guy like me learn a new programming language! I had a Luma Splash before, But actually I always wanted to have BootAnim9 in a9lh. When I saw this a few days ago, I though the planets aligned!

Thank you, it really means a lot to me to see people actually interested in this stuff, and it's especially heartwarming to know I actually had an impact on someone learning programming (I think you're the second or third already : D).

Just remember to take it slowly : )
 

Attachments

  • makebax.zip
    1.4 MB · Views: 226

The Catboy

GBAtemp Official Catboy™: Boywife
Member
Joined
Sep 13, 2009
Messages
27,930
Trophies
4
Location
Making a non-binary fuss
XP
39,274
Country
Antarctica
So I've been trying to convert a gif on Linux and it's not going so good for me. Would anyone be so kind as convert this gif for me? It's my personal favorite boot animation.
 

Attachments

  • kiss.gif
    kiss.gif
    300.1 KB · Views: 466
Last edited by The Catboy,

The Catboy

GBAtemp Official Catboy™: Boywife
Member
Joined
Sep 13, 2009
Messages
27,930
Trophies
4
Location
Making a non-binary fuss
XP
39,274
Country
Antarctica
Everyday we stray further from god . . .
Ah, I just noticed that typo in there. I can understand how such a typo would be rather blaspheme.
Edit: I actually figured out how to convert it myself ^-^ But I noticed that Rei-Six fails to boot and CakesFW gives me a quick flash of text, then fails to boot. GodMode9 boots just fine though.
Actually Luma3DS doesn't work for me either :unsure:
I tested on B9S, GM9, and FB3DS, none of them work for any CFW tested through BAX.
 
Last edited by The Catboy,

gamesgod

Member
Newcomer
Joined
Aug 20, 2017
Messages
20
Trophies
0
XP
61
Country
China
Hmm, then I don't know. I haven't extensively tested this, but in a worst case scenario you could just remove it, there's no brick risk or anything similar.

I noticed that after the animation was played, there were some confusion on the left side of the screen before luma was loaded.

I changed the way to start the 3DS. After the animation played, press the "Start" key, load the Godmode9, and load luma.firm from Godmode9, It could start 3DS normally!

I recorded the video (HEVC/H.265), and could you take a look when you are free? Thanks!
 

Attachments

  • Load luma from BAX.zip
    4.5 MB · Views: 243
  • Load luma from godmode9.zip
    6.9 MB · Views: 222

Wolfvak

nyaa~
OP
Member
Joined
Oct 25, 2015
Messages
918
Trophies
1
XP
3,386
Country
Uruguay
I noticed that after the animation was played, there were some confusion on the left side of the screen before luma was loaded.

I changed the way to start the 3DS. After the animation played, press the "Start" key, load the Godmode9, and load luma.firm from Godmode9, It could start 3DS normally!

I recorded the video (HEVC/H.265), and could you take a look when you are free? Thanks!
Huh, that's odd. GodMode9 is sort of special in that it also does some ARM11 magic, which might help out. Could you try with fastboot3DS too? (as in, BAX -> luma chainloader -> fb3DS -> luma). If that works, then I might know what the problem is.
 
D

Deleted User

Guest
Ah, I just noticed that typo in there. I can understand how such a typo would be rather blaspheme.
Edit: I actually figured out how to convert it myself ^-^ But I noticed that Rei-Six fails to boot and CakesFW gives me a quick flash of text, then fails to boot. GodMode9 boots just fine though.
Actually Luma3DS doesn't work for me either :unsure:
I tested on B9S, GM9, and FB3DS, none of them work for any CFW tested through BAX.

Can you please upload that gif please (asks with no shame whatsoever)?
 

Site & Scene News

Popular threads in this forum

General chit-chat
Help Users
  • No one is chatting at the moment.
    NinStar @ NinStar: It will actually make it worse