you can hack the Pal-Loading-Routine (ASM) to check from which offset it should load a pallet and if the offset stands in an datatable it should load the pal from an other offset (theoreticaly, i don't know how practicable this is...)
Also the pal is saved temporarily in den RAM and copyed with DMA3 to the pal-RAM. You can try to change this pointer to an offset where your new pallet is standing and it should load the new pal instead of the original. (Maybe you also have to load your new pal somewhere in the RAM, i haven't tested this...)
Oh, okay. Would it be possible to use a script function like you say to swap the pointers of the palletes to new, black and white ones? We know how to make things black and white on FireRed, but unfortuately, it can't be done on Ruby, which is the rom my friend wants to use.
Edit: I was able to find the pointer that points to the pallets. Let's say that I saved the background pallets in VBA and converted it to grey scale. How could I reinsert it back into the rom and then make the pointer dynamic based upon a flag or such.
Hey Prime Dialga, so me and a friend want to make a hack about restoring color to the pokemon world. We were wondering if it would be possible to modify the palletes in DNS to make everything but the OW black and white. Then we could have it turn off when the player restores color. If you could help us, this would be really cool. Thanks.