I could tab it out, but I don't think I am going to add any more features for now. If I do end up adding another feature requiring another set of controls, I will probably tab it out.
I am not sure what you mean by presets. My gut feeling is that you mean something like a "library" of known colors or text translations for certain ROMs. It is possible, but determining which ROM is selected is tricky as they may have different names. I suppose you could check the first X bytes of the ROM to determine which it is, but then the program would need to store quite a bit of information: the first X bytes of every ROM it knows about.
I am planning to flesh out the palette replacement a bit to make it easier to work with. I have found a lot of times that I can get one color to replace properly, but the second causes the ROM to CPU jam. This results in me having to use the byte corruption range to narrow down the scope to prevent CPU jams. What often happens is that I miss some palettes, resulting in the colors I want in certain areas of the game, but not in others.
I will leave the existing functionality intact, but add additional functionality to replace entire palettes and use matching groups like regular expressions. These matching groups will be defined by WW,XX,YY,ZZ. The colors within a palette will be separated by colons (
, while palettes will be separated by pipes (|).
WW:XX:YY:ZZ replaced by WW:XX:YY:ZZ would do nothing.
WW:XX:YY:ZZ replaced by ZZ:YY:XX:WW would scramble every palette in the ROM, and probably cause some collateral corruption as well.
00:01:WW:XX replaced by 02:03:WW:XX would change 00 to 02 and 01 to 03 in any palette than contains both and the remaining two colors would be left unchanged.
00:01:WW:XX replaced by 02:03:XX:WW would change 00 to 02 and 01 to 03 in any palette than contains both and the remaining two colors would be swapped.
Hopefully this added functionality would make changing or corrupting palettes a bit easier.