[Captivate Themes and Apps] ugoff:
1. Get your source files. They must be PNG format. I don't think it matters if they are interlaced, but I've never tried! Make sure they are not super-large resolution, but some larger than the screen sizes are usable. I've seen the Atrix bootscreen on my Captivate work, and it was set to a higher resolution in the desc.txt.

2. Name the files. The files need to be numbered at the end of the filename, in block format (file01.png, file02.png). Stick these in a folder.

3. Organize it. Put all the images in a folder, in another folder(part0 in bootanimation, for example). It doesn't necessarily matter what the folder that the images is named, but keep it short and simple. Most use part0.

3a.(Optional) Optimize it. Running the images through a PNG optimizer will shrink the size of the files and the end result boot animation.

4. Script it. This part is subjective. I tried making my own, but it doesn't format correctly. In a text editor, such as Notepad++ which supports ANSI text format(Windows Notepad does not do this), open a desc.txt from an existing boot animation. It should look something like this:

480 800 60

p 1 0 part0

p 1 0 part1

If it's all together on one line, it was not done in ANSI format.

-The first line is resolution and frame rate: 480-wide 800-tall 60-frames per second.

-The next line tells the loader how many times to run through the images, how many milliseconds delay after playing to wait, and the folder name where those images are stored. The letter P I believe means picture or play. You can get an animation to loop infinitely by setting the first number to 0.

As an advanced(er) topic, you can have a series of animations that don't loop infinitely. Say, you have animation with a pause in it. You could have your first folder run(part0), then put just 1 image for the paused frame in the next folder(part1), then the rest of the animation in a third folder(part2). Between all the folders involved, the filenames must start the same and have continuous numbering(part0 = file01.png - file20.png, part1 = file21.png, part2 = file22.png - file80.png) The desc.txt would look like this:

480 800 60

p 1 0 part0

p 1 3000 part1

p 1 0 part2

Normally, if the animation is longer than normal boot time, the system will cut it off when the OS is ready. In this case, or if the animation is short and finishes before the OS is ready, it will usually cut to black. If you want this last frame to be forced to be shown(or to avoid black screen), you can either use a delay or do an infinite loop on the last animation folder. MAKE SURE YOU HIT ENTER AFTER THE END OF THE LAST LINE OF THE FILE. ANDROID WILL SKIP LINES THAT DO NOT HAVE A CARRIAGE RETURN AT THE END OF THEM. This is what prevented me from getting mine working for almost a year....

5. Build it. Take your folder and desc.txt and create a non-compressed zip file. This works in 7-Zip well. Name it bootanimation.zip (or sanim.zip for 2.3/Gingerbread roms) and put it on your phone in /system/media.

5a.(Optional) View it. If you have ADB installed, you can view it without rebooting by running 'adb shell' and then 'cd /system/bin', and finally './bootanimation'. If the animation is built right, it will run on your screen(make sure it's on, it will play even if the screen is off...) If you have an infinite loop, hit CTRL-C to stop it. It will also quit ADB. Otherwise, it will return to your normal screen when it finishes.

Let me know if anything is unclear or missing.