I want to share a program I originally made for myself because I couldn't find anything similar. I thought that other people might like it, too, and if so then that's great.
My program is called the "NDS Palette Randomizer" and does exactly what the name implies; it can randomize all Pokemon color palettes in all NDS Pokemon games (Diamond, Pearl, Platinum, HeartGold, SoulSilver, Black, White, Black 2, White 2).
I have build in different randomization modes sorted by most to least random:
Completely Random (beta) - randomizes every hue of the palette seperately and assigns it a new brightness and saturation value as well. I put beta behind it because the hue detection is not perfect yet but most Pokemon look fine.
Randomize Hue, Saturation, Brightness - Takes all the palette colors and shifts their hue, saturation and brightness all the same random amount. Still produces a random looking appearence but is more stable because the hue detection is circumvented. Therefore the colors form a better unit.
Randomize Hue - Leaves saturation and brightness as it is and just shifts the hue. It is possible to get a Pokemon with almost the original set of colors or something very different.
Slightly Vary Original Colors - Shifts the hue, saturation, brightness of the palette slightly to create a subtle change. Here and there a more changed look is thrown in.
Color by Type - Assigns a predetermined type color to the Pokemon to make types easier to identify. Useful for beginners or when types are changed by the Universal Pokemon Randomizer.
Color by Evolution Family - An evolution family gets colored in a similar way. The results will look like in Randomize Hue, Saturation, Brightness.
How to extract:
Download all zip files in the attachment, put them in the folder that you want the program to be in and then right click on them and choose "Extract Here". That's important.
I put a manual with instructions on how to use the program and troubleshooting help into the zip. It's name is "MANUAL.txt" since noone reads readmes.
It works fine for me so if you have problems or remarks please notice me.
Please have fun with it.
I have fixed some errors and have done a program overhaul, so feel free to test my new version. The instructions in the manual are still valid.
Please download everything that you see in this folder. The new dest_diamond-folder is only meant to be implemented into the Diamond and Pearl games. Use dest_heartgold for the Platinum and HeartGold/SoulSilver edition and dest_black2 for the Black(2)/White(2) editions.
The "data_folders.zip" needs to be extracted through the option "Extract here". It contains the game files that will be changed and the randomized files.
If you find glitchy-looking Pokemon that still need some attention or if you want different randomization modes, write them down here. I will try my best to fulfill your wishes.
So I finally got a chance to test this out, and the color by type doesnt seem to work correctly for me.
I had electric types who were purple and some dark types who were green, it was kinda odd. But for some of the pokemon it worked on they looked pretty good.
Hey there! I've been playing around with this, and it works great with the Gen IV games! (Except what joexv said about the occasional off-color Pokemon, like when I caught a dark purple Gible that turned out to be grass type...) However, when I try to run the program for the Gen V games, I get this error:
Unhandled exception has occurred in your application. If you click Continue, the application will ignore this error and attempt to continue. If you click Quit, the application will close immediately.
Could not find a part of the path 'U:\((my name))\Downloads\Palette Randomizer\a004_black2'.
There was never a 'a004_black2' folder when I unpacked the .zip files. I even deleted all of the folders and re-unpacked the .zips after getting this message multiple times.
Over the course of the last few months I had a lot of stress and forgot that I had uploaded my program. I am sorry for that but I am very happy to see that other people found my program to be useful.
Renaming folders won't do any good because I made a mistake when I made the zip packages and put the wrong folder in it instead of "a004_black2".
I have tried to improve the randomization modes a bit and reuploaded my new zip packages.
Also you can now use the randomization modes "hue, saturation, brightness", "hue", "slight variation" on whole evolution families instead of only an individual pokemon.
You can see it as a compensation for the long wait.
Sorry to bother you but I just downloaded the zips and unloaded them as instructed but I can't seem to find the Manual. If i'm just missing it that's fine but I did a search as well as a manual check through and I couldn't find it.
I'm having a problem trying to color-by-type a UPR randomized HG rom.
I extract the unpacked a/0/0/2 into a folder with Tinke, and when I look at the files, everything's like it should be. Everything's there, everything has the right names.
But when I run the palette randomizer, it says it can't find 2_0.bin and asks if I want it to ignore the problem or stop. If I tell it yes ignore, it never finishes. Whether I say yes or no, when I re-open the folder after running your palette utility, most of the files are renamed to different things. For instance, 2_0.bin has become 2_0.002_0.bin, which is likely why the program can't find it.
Do you have any idea what's going on or how to fix it?
I recorded a video of the problem occurring so that hopefully it can help give you a better view of the situation. http://youtu.be/0ORYoBCL9VQ
Since a few people complained that it didn't work for them I will explain what you could try to do to get it working again.
I have just randomized the palettes of Platinum, HeartGold, Black and Black 2 two days ago to test something and it worked for me.
The Pokemon in Diamond however looked like squares out of pixels.
Here is what I think about this issue:
The program runs pretty stable but the weak points are the tons of files the program juggles with. It copies and erases many many files and I think that the ZIP packing and unpacking process can harm these files, too.
The folders contain extracted narc files from the ROMs and if your's are broken you could extract them yourselves.
I will tell you what I did in my case:
a004_heartgold is the folder that contains the extracted and unchanged sprite files. This is where my program takes the source files from and if these are damaged everything will turn to muk later in the process.
So I opened Tinke and loaded an unchanged Diamond ROM with it. Then I navigated to poketool/pokegra/pokegra and unpacked it. Then I clicked on "Extract" and extracted it into the folder where my program is currently located.
I erased the old a004_heartgold folder and renamed the newly extracted folder like this. I opened the BWSE program and used it to rename the files in my new folder. There will be an error message because it is only meant for gen 5 games but it doesn't matter.
The files need to look similar to this: file00001, otherwise there will be problems with the file order. After this I copied the folder and named the copy dest_heartgold. This is where the changed files are later stored.
Now you can use the program as stated in the manual.
It doesn't really matter which gen 4 ROM you use for extraction since their graphic folders are all the same. In Diamond and Platinum the sprite files are contained in poketool/pokegra/pokegra, in HeartGold they are in a/0/0/4. In gen 5 games they are in a/0/0/4 as well.
I included these folders in the ZIP packages to spare you from this extraction process but if it breaks the files you need to do it yourselves. Alternatively you could try to download the ZIP packages again.
I am currently working on the program again. Maybe it will get better with the next update.
Here is an update on the progress that I've made and I've got some good news:
I have managed to improve the reading and writing process of the palette files. I have tried to randomize all NDS ROMs (including Diamond and Pearl which were glitchy before) several times and had a success rate of 100%.
I have created separate folders for Diamond/Pearl files called "a004_diamond" and "dest_diamond" and have programmed a special reading and writing procedure for these games specifically.
Unfortunately the program is too big now for a zip upload, therefore I will post a link to my Dropbox when I have written 15 posts and when I'm satisfied with the randomization results.
There is a Palette.txt file now that contains information on the hues that are contained in every single palette. With this I am now able to randomize every hue separately as I have wanted to from the start. I have written this by hand which took me a really long time.
It looks good so far for generation 5 games but I still need to adapt the palette list to generation 4 games because some Pokémon palettes differ between generations.
I just wanted to let you know that this program is steadily being improved and that it is on a good way.
I want to thank you all for testing and giving feedback as well.