Time for another update on the program that will never actually come out:
(Full disclosure. Some load time was edited out. For these it was only like four seconds per sequence. It can get long, though, if you give it something nuts.)
You can set how many palette sets the program is allowed to use when it guesses palettes. If the set of images is impossible to do with the given number, it will mark pixels of the least used colors. (For example, if two palettes are wanted, and there are seven non transparent colors it will mark pixels of the least used color across the animation. If two palettes are wanted, and there are eight colors it will mark pixels of the least used two colors.)
You can now import a new image sequence without replacing the old one. It automatically creates a new animation of all the frames for just that sequence. So you could import say... your idle animation as one sequence. Then import your walking animation as another. The sequences DO need to match colors exactly (except for the transparent color, which can actually be unique in each image. It's whatever the top left pixel is). They also need to be aligned beforehand for the exported data to be useful... It's one of the many things I'm aware would make this better, but I want to kick this out the door just to make sure the base functionality is not totally broken.
The file loading tries to figure out the file type. If you load a 4, 8, 12, or 16 byte file, it loads it as a binary palette. If you load an image with 4, 8, 12, or 16 pixels, it loads it as a palette image. If you want to import a really small sprite, well, just add transparency around it!
You can remap the current palette (changes the colors used to display, does not require new tiles to be made). OR you can load a new palette. (Colors outside the new palette get marked, since that prevent the creation of new tiles.)
Not shown in the gif, but you can toggle between NES display and the original input images. (Which might be useful to see what the image looked like before remapping.)
That was all for sprite mode. The tileset mode is pretty behind. I plan to make it so you can load palette images and binary palettes like FrankenGraphics requested in uh... April. The padding thing won't be changed for the next release, that requires changing a lot of things in both the ROM and the program.
I actually feel like whenever this does come out, the coolest part of it (sprite stuff) won't have very much use to most people here.
It's hard coded to 128 tile banks (because the background is hard coded to 64 tile banks), and 8x8 sprites. The program can totally make arbitrarily sized banks (Ajna in Indivisible used something like... 50 so the HUD could fit in the back side of every one of her banks), but I'm still planning out how to get that to scale to be actually useful. So no UI for it. It might still be fun to play around in, though. I've found it cool to just import random NES sprites and put them on top of random NES backgrounds.
As you can see from the Mario metasprites, 220 tiles is a LOT compared to the actual game. I do have some plans and other algorithms to improve this (including a way more simple one that would probably do way better on Mario), but the primary reason behind this program is not having to do it manually. (Or at least, only committing to doing it manually once you're sure the graphics won't change.)
Edit: I forgot about my deduplication algorithm which is not run automatically (because it's stupid slow right now). Mario after deduplicating is 151 tiles. (Vs 220.) Mario+Mega Man is 668 tiles. (vs 1152.)
Edit2: It's only stupid slow for insane use cases like Chun Li. Mario+Mega Man is only three seconds! Still, I'd like to improve it before I make it automatic.