1. Determine "head block" size by:
# of animations x 4 = animation pointer size
# of frames for animation x 5 x 4 = anim data size
2. Compile and convert uploaded images and palettes
3. Add OAM data after the last palette.
4. Fill in values for animation pointers by:
making the pointer block size the first pointer
then use the # of frames in an animation x5 x4 and add to the previous pointer to get the next pointer
repeat adding to the previous answer for all animations
5. Fill in values for frame for anim data by:
finding the start of the data using the size of the pointers
start filling in after anim pointers
using user-input to fill in data:
graphics, palette, OAM1/2, animation type
to get graphics pointer, use:
headblock + 804h bytes for every sprite away from #1.
to get palette pointer, use:
headblock + spriteblock -4 (+20h for every palette not #1)
OAM is always in the sample place
oam 1= filesize - 1Ch
oam 2= filesize - 13h
animation type comes in 4 sets and is in the user's input
repeat process for very frame
6. Make .BIN/.DMP file.
You're missing the point entirely. You need to specify binary formats for all data you want processed. "2. Compile and convert uploaded images and palettes" ORLY?? Never would have guessed. Now,
how should these be compiled and converted??
Should they be converted from a native NDS 4bpp format to a native NDS LZ77 headered data stream? Or are these pictures in 2bpp data in reversed bit order that need to be compressed with a proprietary compression algorithm of a particular game?
Use regular NDS pointers, or special offset pointers? What size in bytes do they have? 4? 16? 2?
What are correct values for animation type? What do these values mean? Are they bit combinations of certain atomic attributes?
Gosh, you basically say "Yeah, I need to have a program that can do something with pictures and it is supposed to work, now!"
cYa,
Tauwasser