Retro Palette Swapper is a bit more than just a shader; it is an entire system for drawing sprites, surfaces, tiles, and backgrounds with a manipulated palette.
Have you ever created a character in your game and wished you could change the character's hair or clothing color without uploading a complete new set of sprites for every single one of that character's animations? What about making a sprite appear on fire in a much more vibrant way than just putting a red or orange image_blend on it? Maybe you've got a black outline around your sprite and want to make it red when the player mouses over it?
All of this and much more is possible with Retro Palette Swapper!
Features
DEMO
BEFORE BUYING RUN THE DEMO!!
https://www.dropbox.com/s/nnu3v094ffepc30/Retro%20Palette%20Swapper%20Demo.zip?dl=0
HTML5 Demo: https://v6p9d9t4.ssl.hwcdn.net/html/1056564/index.html
Requirements
All Platforms Supported (As far as I know. Desktop, Mobile, and HTML5) HTML5 is currently not FULLY supported due to bugs within GMS2, so it might magically work perfectly after a future update*
This shader will make your project require a video card that supports Shader Model 3.0. So make sure the demo functions before purchasing.
Additionally, your graphics need to be "retro"... or at the very least you should NOT be using the "interpolate colors between pixels" graphical option.
TUTORIAL
Photoshop: https://youtu.be/b0swvaHRVCs
Tool: https://youtu.be/tQ5tNOQDN58
Tool Download: https://www.dropbox.com/s/5kol17hsl4tm9dd/PaletteGenerator3.exe?dl=0
Additional Setup for HTML5: Using this on HTML5 is a bit more challenging than on desktop or mobile. You need to do a few steps.
*When you initialize the system, you need to pass the init script your two HTML5 shaders: one for sprites and one for surfaces (these are included).
*You need to go into the sprite shader and set your texture page size that you use for your project.
*You need to go into the surface texture and set your size to the size your dynamic palettes are being built at. By default, it's set to 64x64, which means when you want to create a custom palette using shaders, instead of making the surface the exact size you need, you need to create the surface at 64x64. Again, this number can be changed, if desired.
*You may notice an error right when you run your game about some for loop or whatever. That can be safely ignored, and when you release your final HTML5 build, just remove the default shd_pal_swapper and the error will no longer appear. Hopefully GMS2 will give us target based resource configurations in the future.
*There are a few missing features (gradual palette changes, layer swapping), but these seem to be related to a bug in GMS2, so it might all start working magically after a future update. Fingers crossed.
End User Licence Agreement (EULA).
Fixed smooth palette transitions for non-windows platforms. Removed "depth swapping": recommend you use layer swapping only.