-
Notifications
You must be signed in to change notification settings - Fork 827
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Sort Pokemon and trainer sprite palettes from lightest to darkest, with Makefile-specified exceptions #1136
Comments
One important property of the color indexes is that they should be consistent across both front and back sprites: If one color is unused in either the front or the back sprite, the indexes used in the generated tileset should still represent the correct colors. With that in mind, I propose a procedure that works as follows:
Of course, a flag would be used to reverse the color ordering for sprites which require this for matching. |
Yes, using |
The main problem with this solution: The order of the colors is unknown to the user until they're generated. This poses a problem when creating a I can only think of two solutions: A color substitution map, say, for example Running the same procedure as above on equivalent shiny_front.png and shiny_back.png sprites, and verifying the generated tile data: If the the data matches, you have found the correct color order for the shiny, otherwise, try swapping the two middle colors and generating the tile data again, if that matches, then you have found the correct colors for the shiny. If neither matches, the pictures are different. (there may be better ways to approach this but I can't think of any simpler ones) Of course, a third solution is just accepting that the shiny colors may end up the wrong way around if the normal colors are edited, and that the user is unlikely to change the colors of a pokemon significantly (such that they swap places in the brightness order) if they've already made a shiny palette. |
I'd like to keep things simple and go with this option. Optimistically, it'll be easier for someone who's already edited shiny.pal to swap two lines of text when they notice the backwards colors. Realistically, they won't, but it'll be easier to tell them to do so than explain how to use palfix.py and its caveats. |
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
…eptions This avoids the need to define their order via indexed PNG palettes It also avoids the need to use tools/palfix.py on custom sprites Fixes pret#1136
These sprites all use white, black, and two colors. The order of the two colors matters in some in-game contexts: examples include the Pokedex's monochrome green sprites, the PC's monochrome orange ones, or battle anims which cycle palettes to "lighten" or "darken" them.
Most of the time, the lighter color is first and the darker color is second. There are a few exceptions, like Farfetch'd, which can be specified in the Makefile.
We would use the colors from the PNG; verify that there are four of them and that two are white and black; and sort them lightest-first (or darkest-first with a flag in the Makefile).
This could be done by processing the .gbcpal file, so no need for a PNG library.
The text was updated successfully, but these errors were encountered: