PalMod: Read Me

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:

COTA | cotae.txt
CVS2 | cvs2e.txt
Garou | GarouE.txt
Garou for Steam | GarouSE.txt
Jojos 50 | jojos50e.txt
Jojos 51 | jojos51e.txt
Karnov's Revenge | KarnovsE.txt
KOF98 | kof98e.txt
KOF02 | kof02e.txt
KOF02:UM | kof02ume.txt
MSHVSF_6A | mshvsf-6ae.txt
MSHVSF_7B | mshvsf-7be.txt
MSH_05 | MSHe.txt
MSH_06 | MSH06e.txt
MVC1 | mvce.txt
MVC2 (Arcade) | mvc2e.txt
Real Bout Fatal Fury Special (Arcade) | RBFFSE.txt
Red Earth (Arcade) | RedEarthE.txt
Samurai Shodown 3 | SAMSHO3E.txt
Samurai Shodown 5SP | SAMSHO5SPE.txt
SFA1 | SFA1e.txt
SFA2 07 | SFA2e.txt
SFA2 08 | SFA2-8e.txt
SFA3 | SFA3e.txt
SFIII3 ROM 10 | sfiii3-10e.txt
SFIII3 | sfiii3e.txt
SSF2T_3C | ssf2t-3ce.txt
SSF2T_4A | ssf2t-4ae.txt
Super Gem Fighter | GemFighterE.txt
SVC | svce.txt
Unknown NEO*GEO | neogeoe.txt
Vampire Savior | VSAVe.txt
Vampire Savior 2 | VSAV2e.txt
Waku Waku 7 | WakuWaku7E.txt
XMVSF | XMVSFe.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.