I've been preparing to write a tool that uses the "algorithm" I developed for Indivisible's sprite overlays.
One problem I ran into is where there's a shared color in the palettes, it can be tricky to decide which sprite palette "layer" should get the pixels of that color.
But a lot of the issues I ran into don't matter if you don't care about specific palettes. The program I'm planning will do worse than I did manually, but I think it's at a point where it won't bother me.
I already have a program that automatically spits out a background map/tiles given a palette and image:
So assuming it was given that, and the colors outside that palette were obviously sprites it's not too much of a stretch to do that too.
Basically, assume that you have to keep track of what your background palettes are. (A 16x1 image with the first palette as the leftmost 4 pixels, and the fourth palette as the rightmost four pixels). Beyond that, you just make your image. You import the image, and the 16x1 palette image and it gives you CHR for the background, a 1024 byte file for the nametable (Up to you to compress it how you want), and CHR for sprites and uncompressed 4 bytes per sprite OAM). No other steps. (Unless you use like 26 colors or >64 sprites or something. Then it will mark the errors.) Is that what you want?
Edit: Actually, yeah, I guess it'd need sprite palettes too. I don't really like the idea of palette guessing.
Do you guys actually have more test images for this? I see this one and FrankenGraphics Doom, but I kinda figure you wouldn't be making this topic if you didn't plan to do it like... a lot more. I make no promises I'll release anything but test images could help anyone else that wants to tackle this.
Quote:
(I would looove an interactive tool for this too, but I've not yet had a high enough volume of that kind of work that doing it manually + current available tools didn't seem unreasonable to me.)
That's what I'm planning. My idea is you can have it do it automatically, or guide the tool. (Or a mix of both.) Basically it could show which area of the image it wants to "steal" and you could click next or do something different. Honestly just having an image editor that grabs an 8x8 slice (but not grid aligned) from a single click would have helped me tremendously.
It'd also identify parts of the image that matched tiles in the set (based on a given amount of coverage so everything isn't marked just because there are single pixel tiles... OTL). I want to have a nice gif of it grabbing all the sprites one by one in something like Super Mario Bros or Mega Man. I think it'd be satisfying to watch. Indivisible made me think
a lot about this problem...