Homebrew [RELEASE] BootAnim9 - Custom boot animations for your 3DS!

  • Thread starter Thread starter Wolfvak
  • Start date Start date
  • Views Views 331,879
  • Replies Replies 1,434
  • Likes Likes 75
Status
Not open for further replies.
Take an image into any random video editor and make it last however long you want, render at 30fps, convert at 30

It'd be pretty easy to support an image coming in, ex. use ImageMagick:

Code:
convert 3ds_holdstart.psd -flatten -channel BGR -separate -channel RGB -combine -rotate 90 bottom_anim.rgb

Then you just need to append the output to itself for however many frames you want -- ex. if you are doing 15 FPS, and want 3 seconds, you'll need 45 of them:

Unix:
Code:
for i in {1..45};do cat bottom_anim.rgb >> bottom_anim;done
rm bottom_anim.rgb

Windows (double-up the percents for use in .bat):
Code:
for /l %x in (1, 1, 45) do copy /b bottom_anim.rgb bottom_anim.frame.%x
copy /b bottom_anim.frame.* bottom_anim
del *.frame.*
del bottom_anim.rgb

I use a static image for my bottom screen (instructions to hold 'start' for options, gets to my ctrbootmanager9) for 3 seconds, top is an animated 3ds logo for same 3 seconds.
 
It'd be pretty easy to support an image coming in, ex. use ImageMagick:

Code:
convert 3ds_holdstart.psd -flatten -channel BGR -separate -channel RGB -combine -rotate 90 bottom_anim.rgb

Then you just need to append the output to itself for however many frames you want -- ex. if you are doing 15 FPS, and want 3 seconds, you'll need 45 of them:

Unix:
Code:
for i in {1..45};do cat bottom_anim.rgb >> bottom_anim;done
rm bottom_anim.rgb

Windows (double-up the percents for use in .bat):
Code:
for /l %x in (1, 1, 45) do copy /b bottom_anim.rgb bottom_anim.frame.%x
copy /b bottom_anim.frame.* bottom_anim
del *.frame.*
del bottom_anim.rgb

I use a static image for my bottom screen (instructions to hold 'start' for options, gets to my ctrbootmanager9) for 3 seconds, top is an animated 3ds logo for same 3 seconds.
I take that back, I'm blind. Other than that, zes you are a man.
 
Last edited by Docmudkipz,
Kinda late but run
Code:
 ffmpeg -i <input>
and double check the fps. The only thing outside of the sd card at this point in the payload that would slow it down is an improper framerate. Send the file to me if it still gives you trouble and I can see what I can do
I think I may have found what causes the slow animation speed. When I remove the animation for the top screen which is a simple image which I edited to an video it runs perfectly with the full speed. I don't know why this happens but at least I know now where I have to troubleshoot now. I will let you know if I found out what's wrong. :)
 
I think I may have found what causes the slow animation speed. When I remove the animation for the top screen which is a simple image which I edited to an video it runs perfectly with the full speed. I don't know why this happens but at least I know now where I have to troubleshoot now. I will let you know if I found out what's wrong. :)
Oh, so you had both screens, that explains it completely. Might be fixed in a later update
 
I think I may have found what causes the slow animation speed. When I remove the animation for the top screen which is a simple image which I edited to an video it runs perfectly with the full speed. I don't know why this happens but at least I know now where I have to troubleshoot now. I will let you know if I found out what's wrong. :)
That's why, if using top and bottom u need to keep the fps low.
 
Oh, so you had both screens, that explains it completely. Might be fixed in a later update

I have a custom bootanim9 build at home I could post when I'm back in town -- built off some early version, tweaked to add a byte to 'config' file for duration in seconds. Makes it so you can display static images or shorter 'anims' (sits on last frame) until duration reached, without redundant data stored to & read from the SD card, and without needless refreshes on either screen. I'd guess if the original dev wanted that functionality he could add it quickly, though, maybe file a feature request on the github (took me a few minutes to add for myself personally, and I'm no great shakes at 3ds dev.)
 
I have a custom bootanim9 build at home I could post when I'm back in town -- built off some early version, tweaked to add a byte to 'config' file for duration in seconds. Makes it so you can display static images or shorter 'anims' (sits on last frame) until duration reached, without redundant data stored to & read from the SD card, and without needless refreshes on either screen. I'd guess if the original dev wanted that functionality he could add it quickly, though, maybe file a feature request on the github (took me a few minutes to add for myself personally, and I'm no great shakes at 3ds dev.)
If the animation has only 1 frame it should not affect the framerate, so it should be the same as a splash for one screen.
 
I have a custom bootanim9 build at home I could post when I'm back in town -- built off some early version, tweaked to add a byte to 'config' file for duration in seconds. Makes it so you can display static images or shorter 'anims' (sits on last frame) until duration reached, without redundant data stored to & read from the SD card, and without needless refreshes on either screen. I'd guess if the original dev wanted that functionality he could add it quickly, though, maybe file a feature request on the github (took me a few minutes to add for myself personally, and I'm no great shakes at 3ds dev.)
Right now I'm trying to get a plaintext framerate working but life's been tough with me, too much to study. But the main idea is to load 2 bytes off of 'config', get that thing atoi()'d and set the framerate to the data obtained.

The seconds thing is pretty easy as well, just set maxframes to framerate*number of seconds you want
 
Any chance I could get some help? I've made some animations on my own and tested a few of the pre-made ones, and everything runs slower than it should. I have tested on both a 200GB micro sd, and a 16GB micro sd, both are class 10 80Mbps read speed / 15Mbps write speed sandisc cards. I have defragged the entire sd card and reformatted to 64 sized clusters. I am using release v0.5. I am converting from a 30 fps mp4 file ripped from a youtube video at 360p. I ONLY have a top-screen animation, no bottom screen. When I convert the mp4, I take the file "30" out of the config folder and put it in the same folder as the bat, along with the mp4. Then I drag the mp4 to the .bat and it creates the config file and the anim file, and the 30 file gets removed / renamed / whatever it does. I have ffmpeg installed and my path defined. No matter what I do though, the animations always run MUCH slower than they should. Am I doing something wrong? Did I miss something? I will include a link to the animation I made if anyone wants to test it out. Thanks in advance for any assistance.

http://en.file-upload.net/download-11526678/anim.zip.html
 
Any chance I could get some help? I've made some animations on my own and tested a few of the pre-made ones, and everything runs slower than it should. I have tested on both a 200GB micro sd, and a 16GB micro sd, both are class 10 80Mbps read speed / 15Mbps write speed sandisc cards. I have defragged the entire sd card and reformatted to 64 sized clusters. I am using release v0.5. I am converting from a 30 fps mp4 file ripped from a youtube video at 360p. I ONLY have a top-screen animation, no bottom screen. When I convert the mp4, I take the file "30" out of the config folder and put it in the same folder as the bat, along with the mp4. Then I drag the mp4 to the .bat and it creates the config file and the anim file, and the 30 file gets removed / renamed / whatever it does. I have ffmpeg installed and my path defined. No matter what I do though, the animations always run MUCH slower than they should. Am I doing something wrong? Did I miss something? I will include a link to the animation I made if anyone wants to test it out. Thanks in advance for any assistance.

http://en.file-upload.net/download-11526678/anim.zip.html

Try converting the mp4 to 15 fps in the script but taking the file 30 and use that one, should make it faster
 
  • Like
Reactions: MadMageKefka
Worked like a charm! Thanks so much. =)
You'll lose a couple of frames, but seeing that it works fine makes me happy. Maybe I'll add a small "Troubleshooting" section to address these issues

Is there a way to make the animation longer without using up boot time?
Nope, not at all. The thing that takes a long time to boot is the main FIRM, it's not a problem of the CFW (if you use a debugger, you'll see that most CFWs have done their job in a second or less, the FIRM running is what takes time)
 
Okay gotcha, is there a way to make the animation longer so it doesnt just cut off and you have a black screen for a long time?
 
Okay gotcha, is there a way to make the animation longer so it doesnt just cut off and you have a black screen for a long time?
Well, there's an issue in that reasoning, because both BootAnim9 and most (if not all) public CFWs also clear the screens to black, so even if you modified BA9 not to do it (see here) the CFW will still do it, so it's not possible unless you're willing to maintain a lot of mods.
Even then, the firmware itself does it as well, so it's not a good idea overall.
 
Okay gotcha, is there a way to make the animation longer so it doesnt just cut off and you have a black screen for a long time?
Well, there's an issue in that reasoning, because both BootAnim9 and most (if not all) public CFWs also clear the screens to black, so even if you modded BA9 to not clear to black
 
Status
Not open for further replies.

Site & Scene News

Popular threads in this forum