PalMod: PALette MODification for fighting games.
Created in 2008 by: knarxed (aka suupabuu), Magnetro, Preppy, Eidrian
Resurrected in 2020 by Preppy with key help from TVIndustries, IceManual, mountainmanjed, and lots of additional great help from many other excellent people.

PalMod is under active development in 2020 with new releases weekly. Check Version History for information.
Check http://zachd.com/palmod for release updates.
Source is at http://github.com/Preppy/PalMod.

A great guide to MvC2 supplemental palettes can be found here. This is useful because MvC2 sprites will often use secondary (supplemental) palettes during certain moves. If you don't modify those as well, the character will flash as they use mismatched palettes. Note that the "Process Supplement Palettes" option will try to handle all these for you automatically for MvC2.

If you're interested in better colors for your palmods, The Book of Palmodding color tutorial can be found here.


Program Functions
**** File menu ****
Load ROM:
Use the filter in the bottom right of this dialog to select loading a game by ROM. PalMod does not include any ROMs: you can get those from elsewhere.
Load Directory:
Use the options here to load palettes for a game from the directory you extracted your game's ROM files to. This is useful for Dreamcast, Playstation, and the "newer" ROM dumps for various games. Fightcade 2 tends to prefer the "Directory"-based ROM sets.
Patch Changes:
This saves any changes made to the ROM or palette files. There's no undo from this. This commits all changes to memory and then to disk.
Close File / Directory:
Unloads the current game and stops work on it.
Load Last File / Directory:
Loads the last game you were working upon.
Exit
Uh
**** Tools menu ****
Invert:
Inverts the current palette selection.
Revert:
Restore the saved palette from memory. Once you use Update or Patch, that updates the saved palette.
Blink:
Shows which part of the image the current palette selection modifies. Only useful if there's a preview image available.

Load Palette:
You can use this to either load an Adobe Color Table (ACT) file, indexed PNG, or Microsoft ".PAL" RIFF palette file. ACT files are an easy way to give a friend your set of colors. Or if you have a PNG with indexed color, PalMod can read the palette from that file and use that. Note that Fighter's Factory writes their color tables upside down: PalMod will read those upside down so that things look right.
Save Palette:
Save your palette to a file out so you can use it in other applications or share it with a friend. You can save as either .ACT (Adobe Color Table) or .GPL (GIMP PaLette file).
Generate IPS Patch File
Generates an IPS (International Patching System) patch file. This can be used to share or load your changes without patching the ROM itself. It commits the current palette to memory and then saves all palettes that were modified in the current session since your last Save-to-ROM to the IPS file. How to use IPS files.
**** Settings menu ****
Show 32-bit values:
If checked, view of color values are based on 32-bit RGB values (0xAARRGGBB, 0-255) instead of the actual game values. This is for readability ONLY. No game we support actually supports 32-bit color, so the 32bit color values will be rounded to what the game can support when we save.
Get Color On Select:
Grabs the palette's color value on a single palette index selection. (Recommended to always stay on.)
Auto-Set Color On Adjust:
Sets palette indexes automatically when adjusting sliders on selected indexes. (Recommended to always stay on.)
Colors Per Line:
You can choose between 8 or 16 colors per line. It's arguably easier to edit characters in 8 colors per line mode, and stages in 16 colors per line mode. I use 16 colors per line mode for exploring ROMs.
**** Settings menu: MvC2 Settings ****
Allow transparency (MvC2 only):
For Marvel VS Capcom 2: Allows you to make changes to the alpha/transparency value of colors. You can get cool ghost effects, but it's also really bad for competitive play. You will get a warning if you try to turn this on. :)
Process Supplement Palettes (MvC2 only):
Automatically process any extra palettes that are based on the currently selected palette. This is the easy mode: you potentially can do better yourself if you use the Eidrian Palette Guide.
**** Palette View ****
Each square represents one color from a given color palette. A maximum of 128 colors will be shown at one time (or 256 in 16 color per line mode): for larger palettes, you'll need to traverse multiple pages.
Click to select a specific color, and then use the Edit Color options or Get Color to modify that color. Or select multiple colors to change a number of colors at once. You can also right-click upon those colors. You can copy and paste from color square(s) to other color square(s), or even send a friend a sequence of colors to copy to their PalMod via saving out the ACT or sending the palette string we copy to the buffer.
Note that in most games the first color is usually transparent, which is why you cannot change the first color for most games.
To select multiple colors at once, click on the first color of interest and then drag to the last color of interest. Or hold CONTROL (CTRL) and click on each color of interest.
**** Edit Color options ****
Once you have selected a color square (or a number of them), you can change the RGB (Red Green Blue) or HSL (Hue Saturation Lightness) values until you find a color you like and works well. In some cases you can adjust alpha: be careful about this. It's a cool feature that should never be used for tournament mixes.
**** Dialog buttons ****
Set Color:
Only available if Auto-Set Color is off. Sets RGBA / HLSA values that are currently set to the current palette selection.
Pick Color:
Pops up a color picker so you can select a color to use for the selected palette indexes.
Check My Edits:
MvC2-Dreamcast only: Verifies that if you changed a character palette that you changed the secondary palettes associated with that palette. For example, if you modify Cyclops you also need to modify his Extra - 02 (c.HK) to match. This option also allows you to auto-correct your mix using our normal Process Supplement Palettes logic.
Update:
Saves the current palette to memory. Note that you still need to Patch the change before your game is modified.
Preview:
Shows the Preview window that hosts the game sprites if we have any in our image file.
**** Preview window ****
Export Image:
Pops up a Export Image window so you can save a copy of your image to disk.
Load Texture:
Load your own sprite to use for the preview. This sprite needs to be a .RAW file. The filename must include the H and W of the RAW, as in "ryu-w-67-h-100.raw", since RAW files do not include the H/W (height and width) values.
Settings:
Set Background Color: Choose a specific color to be shown as the background for the sprite.
Set Background Image: Choose a specific image to be shown as the background.
Set Blink Color: This is the color that will be shown when a given color index is "blinked". Normally white.
Tile Image Background: Like it sounds. Useful for small background images.
Use Background Color: Switch back to using Background Color instead of Background Image.
Zoom: Zooms the selected sprite.
**** Export Image dialog ****
File menu:
Choose where to save this to.
Amount
"One" means show the current palette only: or whatever specific button is selected under Palette. Higher numbers mean show all those button's color options as well. We only allow for exporting multiple sprites at once if PalMod already knows what your sprite's peer palettes are.
**** The Extras File ****
This is a powerful and dangerous extension that lets you use PalMod to read and modify regions of the ROM that PalMod doesn't already know about. To do this you place an Extras file in the same directory that you launch PalMod from. Bad Extras files may crash PalMod: to fix that just fix or remove that bogus Extras file.

Each Extra definition is comprised of three lines. You specify one line with the title for a given palette, the next line being the starting position in the ROM for that palette, and the third line being the ending position in the ROM for that palette. For example:

; This is a comment. The first character on a comment line must be ; ; The offset values will be treated as hexadecimal Ryu's Pet Hamster 0x2400e 0x2402e This would create a PalMod entry for the "Ryu's Pet Hamster" palette that reads the 0x20 (0n32) colors between 0x2400e to 0x2402e. You can specify a lot of Extras entries if you need to: at one point Jojo's support was entirely being done via SFIII3's Extras file support.

All Extras loaded this way will be available at the bottom of the top listbox as "Extra Palettes". When that is selected your specific Extras will show up in the bottom listbox. Any palette larger than 128 colors will be shown across multiple pages. If you specify a gigantic palette we may show you a warning to be careful. We don't show any preview sprites for Extra Palettes.

Please note that any ROM locations/palettes present in both PalMod and in the Extras file is pure shenanigans: we will end up creating two copies of that palette and you would need to modify *both* to have anything good happen. Please don't duplicate palettes. PalMod will make a good faith effort to check for duplicates when it loads Extra files, and will try to warn you if it sees any dupes.

The file names you can use are:
COTAcotae.txt
CVS2cvs2e.txt
GarouGarouE.txt
Garou for SteamGarouSE.txt
Jojos 50jojos50e.txt
Jojos 51jojos51e.txt
Karnov's RevengeKarnovsE.txt
KOF98kof98e.txt
KOF02kof02e.txt
KOF02:UMkof02ume.txt
MSHVSF_6Amshvsf-6ae.txt
MSHVSF_7Bmshvsf-7be.txt
MSH_05MSHe.txt
MSH_06MSH06e.txt
MVC1mvce.txt
MVC2 (Arcade)mvc2e.txt
Real Bout Fatal Fury Special (Arcade)RBFFSE.txt
Red Earth (Arcade)RedEarthE.txt
Samurai Shodown 3SAMSHO3E.txt
Samurai Shodown 5SPSAMSHO5SPE.txt
SFA1SFA1e.txt
SFA2 07SFA2e.txt
SFA2 08SFA2-8e.txt
SFA3SFA3e.txt
SFIII2sfiii2e.txt
SFIII3 ROM 10sfiii3-10e.txt
SFIII3sfiii3e.txt
SSF2T_3Cssf2t-3ce.txt
SSF2T_4Assf2t-4ae.txt
Super Gem FighterGemFighterE.txt
SVCsvce.txt
Unknown NEO*GEOneogeoe.txt
Vampire SaviorVSAVe.txt
Vampire Savior 2VSAV2e.txt
Waku Waku 7WakuWaku7E.txt
XMVSFXMVSFe.txt
If you want to try to experiment with a new ROM via Extras file hacking, remember that PalMod is going to read the ROM according to the game it thinks you are trying to use. So if you want to play around with a CPS2 ROM, be sure to use a CPS2 game / Extras file as your starting point. Likewise if it's a CPS3 game, use SFIII3 or Jojo's as your starting point. For NEO*GEO, use the "Unknown NEO*GEO" option.