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, Termi, chloe, stereo, and lots of additional great help from many other excellent people.
PalMod uses LodePNG 20220109 for indexed PNG export, MAME's logic for CP3 support, and Mark Adler's CRC32 support. Thank you to those and other pioneers.

Welcome | Getting Started | Program Functions | Copying/Exchanging Colors | ROM Exploration | Extra Files | Game ROMs | Problems


Welcome to PalMod!

PalMod is a fan project allowing you to edit colors (also known as palettes) for various fighting games. That usually requires pretty deep technical knowledge, a lot of time, and some luck to do correctly. By providing a straight-forward front-end and consolidating a bunch of community knowledge, PalMod hopefully makes this previously daunting process easy.

What PalMod does is update very certain areas of the game ROMs where the games store color values. Game play is not affected, just colors. If you're new to PalMod, please read the Get Started section or check out one of the YouTube tutorial videos. PalMod is pretty easy once you get started, but it can be very confusing at first.

PalMod is under active development in 2023 with updates weekly and full releases once every few months. Check Version History for information on the latest changes. You can find new releases at https://zachd.com/palmod: I strongly recommend using the latest non-beta version. The beta versions also will usually have great changes, but may need a little more testing.

If you're a developer or romhhacker or just curious, the source code can be found at https://github.com/Preppy/PalMod. The newgamedummy is a base template you can use to add support for new games.


Getting Started

  1. Download and install PalMod. By default, PalMod installs to C:\Program Files\PalMod. PalMod.exe and img2020.dat are the critical files and are updated regularly.
  2. Download and extract out the ROM for the game you care about. Save a copy of the game ZIP "just in case".
  3. (If your game is in a CHD, use CHDMan.exe to extract out the files from that. You will likely then need to use bin2iso from Gdi2Data to convert that BIN to an ISO. Then use extract.exe to extract the files from the ISO.)
  4. Open PalMod and use PalMod's File :: Load ROM by game to open that ROM. Each supported game is listed under the platform it normally runs on. (See here for a list of ROM names PalMod typically looks for.)
  5. Make changes!
  6. Click File :: Patch Changes (or CTRL+S) in PalMod to save your changes.
  7. Copy that modified ROM file back into the ZIP. DO NOT MAKE A NEW ZIP! You made a copy of the zip in the first step, so updating this copy is not a problem. Do not add files to the ZIP: you should ever only replace existing files.
  8. You can now load that ROM into your favorite emulator: have fun!
Please note that FightCade 2 does not always use one ZIP for one game: it may use one core ZIP and also another smaller ZIP containing additional files that override files in that core ZIP. If you don't see your changes show up in FightCade, you probably need to modify the files in the other ZIP.

Please note that WinKawaks (and FinalBurn Alpha and some other emulators) prefers it if you update an existing game ZIP or a copy of that game ZIP instead of creating your own. If you create your own ZIP, it may ask for a different version of the ROM then the one that you're using. Either shift to use that version or just use an existing ZIP that was already created for that game.

PalMod has a bunch of features and options: read up on those here.

Some games uses a lot of intertwined palettes (such as MvC2 Juggernaut's power-up glow palettes) that are applied to a base sprite. If you keep the "Process Supplement Palettes" option checked under PalMod's Settings : : Advanced Setings menu, PalMod will try to handle all these for you automatically for MBTL, MSH, MSHvSF, MvC, MvC2, SFIII:NG, SFIII:2I, SFIII:3S (Arcade), UNICLR, and XMvSF. If you want to change them yourself, a great guide to those MvC2 supplemental palettes can be found here. If you don't modify those - or don't let PalMod modify those for you - the character may flash in game when they use mismatched palettes.


Program Functions

This section covers all the options available in the PalMod interface and is probably worth a read at least once.

**** 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 ROM by game:
Use the platform-based filters to have the Load ROM dialog pop up with the game filter you want to use.
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.
Copy colors to (DC or PS2)
MvC2 only: Copies the colors from the current DC (or PS2) mix to PS2 (or DC). Allows you to "copy" color edits across platforms.
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
**** Edit menu ****
You probably already understand these, but there's a bonus keyboard-based Color Picker:
If you press CTRL+SHIFT+C in PalMod, PalMod will copy the current color of whatever your mouse cursor is pointing at. Or if you press CTRL+SHIFT+V, PalMod will both copy that color and paste it into the current palette selection.
**** Tools menu ****
Generate Gradient:
Available if you have more than 2 colors selected. Generates a gradient in the color space selected between the first and last colors selected.
Invert:
Inverts the current palette selection.
Reverse:
Swaps 2 or more selected palette colors, reversing the selected sequence.
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, indexed BMPs, GIF, HPL HipPalette files, 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. For SF3 you can also load the SF3:OE txt.dat palette files. For BBCF you can also load BBCF Improvement Mod CFPL palette files.
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), .GPL (GIMP PaLette file), or Microsoft RIFF ".PAL". ACT is recommended.
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 either all palettes that were modified in the current session since your last Save-to-ROM to a small-ish IPS file or every palette in the game to a larger IPS file. How to use IPS files. IPS patches use 24-bit addressing to indicate locations, so only game ROMs that are smaller than 16MB can have patches generated for them. If your ROM supports IPS patching, the option to export to IPS will be enabled once you have made at least one change in the current session.
Check MvC2-DC Edits Made By PalMod 1.2x
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 current up-to-date Process Supplement Palettes logic. This is only really useful for "old" mixes or if you didn't have Process Supplement Palettes on.
**** 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. Most games we support do not support 32-bit color, so the 32bit color values will be rounded to what the game can support when we save.
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.
Color Format:
* Shows the color format being used for the current game. This can be changed when you are using the Developer Mode "Unknown Game" game loading option.
* You can set the alpha mode in Developer Mode: some games may or may not want the alpha bits set. Note that if you're unsure what Color Format to use for a game, open up a related game in PalMod and see what Color Format PalMod uses for that: that'd be a good first color format to try.
* PalMod always treats the first color as a transparency or counter color and will not modify it since that would cause problems. Different games write a different number of colors before the next transparency color is needed. In Developer Mode you can set how often the game expects a transparency color.
Include bonus data in CTRL+C copy
For ROM hackers. PalMod can do a neat little trick: write its basic copy string - something like "(/"415B)" - as an ASCII string to the clipboard, but also write an extended version of that data as Unicode to the clipboard. Palmod itself only looks at the ASCII version, but you and text editors look at the Unicode/extended data. Turn this on if you want the extra information, which includes ROM location for the current palette and expected bytes at that location given the current colors. I regularly use the extended copy information to figure out the palette locations and raw hex data for that palette. I can then use that information to work with new ROMs much more quickly by searching for those hexes in the new ROM in a binary editor.
**** Settings menu: Advanced Settings ****
Allow transparency for games that support it:
For Marvel VS Capcom 2, GGXXACR, and other games that support partially transparent characters: 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 for MvC2, COTA, MBTL, MSH, MSHVSF, MVC, SF3, UNICLR, and XMVSF:
Automatically process any extra palettes that are based on the currently selected palette. This is the easy mode. For MvC2, you potentially can do better yourself if you use the Eidrian Palette Guide. For other games, you may be able to better if you do it by hand or otherwise tweak colors.
Preview window is a child window:
Normally when we create the Preview window we do it such that it is a child window. If you untick this option we will create it was a peer window with its own system taskbar entry. You will need to restart PalMod for that to take effect.
**** 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 clipboard when you press CTRL+C.
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.
While you can easily update the palette selections using your mouse, you can also change and move which colors are selected using your keyboard. Once you have color(s) selected, you can use CTRL + SHIFT + (directional arrow key) to move the selected region left, right, up, or down. You can also use CTRL + SHIFT + ALT + (left or right arrow key) to select another color into your selection, either on the left or right. (This is particularly useful in conjunction with pasting colors via the "color under the mouse pointer" option of CTRL + SHIFT + V.)
**** 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 ****
Pick Color:
Pops up a color picker so you can select a color to use for the selected palette indexes.
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 an Export Image window so you can save a copy of your image to disk. The Indexed PNG option is brought to you using code from LodePNG. Indexed PNG export is highly recommended: your friends can simply import that PNG into PalMod as an easy way of exchanging colors.
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.
Blend Mode: Most games use typical alpha blending to draw their sprites. Some other games and some sprites use additive blending: blending the foreground sprite in with whatever background is present. The default setting "Default" will use whatever game mode any particular preview thinks it should be displayed as. You can also force PalMod to always use alpha blending or additive blending if you prefer. Additive blended previews will work best on stage backgrounds from your game. There are two blend modes for games specifically for the Playstation: Semi-Transparent Mode (STM) either On or Off. PS1 games use a Semi-Transparent bit for colors, not alpha, and the STM affects how they are displayed.
Blink Inverts Color: Normally PalMod blinks by switching the selection to white temporarily. Since this isn't always visible, you can choose this option to have PalMod invert the color instead of using white.
Use Background Color: Switch back to using Background Color instead of Background Image.
Tile Image Background: Like it sounds. Useful for small background images.
Clicks show color in palette: If you click on any part of the preview window, PalMod will highlight and select all matching colors in the current palette. That lets you understand what palette color affects any given part of your sprite. Or deselect this to turn this feature off.
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 (as in P1/P2 colors, A/B/C/D colors, etc).


Copying/Exchanging Colors

There are two main scenarios for created colors: copying them from others and sharing them with others.

**** Copying Colors From Others ****

PalMod supports import of a number of palette storage options.

Copying a palette from a file

From PalMod's Tools menu, you can import file-based palette storage via Load Palette. The options are:

So those are the file-based options. If you wanted to get somebody else's colors, you could ask them for the .ACT color table for that character, or better yet an indexed PNG of that character. Then you can use Tools :: Load Palette to import that, or you can even just drag and drop that color file onto PalMod and it should just work.

Copying a palette from the clipboard

PalMod can also import colors using the Windows clipboard (CTRL+C / CTRL+V), allowing you to copy within PalMod or directly from other applications. PalMod understands copy/text strings of the form:

Copying a color from anywhere on your screen

Finally, PalMod can also copy any color from any location on your screen. While PalMod is the foreground application, move your mouse over any color you like on your screen. Then press CTRL+SHIFT+C to have PalMod copy that color to the clipboard. You can then Paste (CTRL+V) that color into any palette box you want to. Or you can just copy/paste directly: select a palette box in PalMod, move your mouse over any color you like, and press CTRL+SHIFT+V.

**** Sharing Colors With Others ****

There are a number of other ways that PalMod allows you to share colors.

Sharing a fully patched ROM

Once you're done with your changes, you can use File :: Patch Changes to save your changes to the ROM. To use your changes, copy that file back into your ZIP. Then if you need to share those changes with someone else, you can share either that changed file or the game ZIP.

Sharing via the clipboard

You can select any number of colors in PalMod's palette view. You can use SHIFT or CTRL or drag the mouse to select multiple color boxes. Then press CTRL+C to copy those colors to the clipboard. You can then paste those colors into another instance of PalMod or paste that color string into a chat program to share with friends.

Note that if you check Settings :: Include bonus data in CTRL+C copy, PalMod will include some bonus information in the clipboard string. That information is hopefully pretty useful for advanced users.

Sharing via an image file

This is the most excellent option. Go to Preview :: File :: Export Image. In that Export Image dialog, select the number of previews you want to export, and the palette you want to export (the P1 color, the P2 color, etc). Ideally you just export one preview at a time: that enables us to do special tricks. Once you have your selection configured, go to File :: Save.

PalMod will then allow you to export to a number of image formats: Indexed PNG, PNG Image, GIF Image, BMP Image, JPEG Image, or a RAW texture file. Those are mostly self-explanatory, but two bear special mention:

Sharing via a patch file for that specific ROM

PalMod supports emitting patch data for the ROM in question via Tools :: Generate IPS Patch File. PalMod only allows IPS Patch generation for certain games, due to limitations of the IPS format. Additionally, the option will only be available once you have made at least one change to the game palettes. Once you do that and you select "Generate IPS Patch File", you will be prompted to either export a patch containing all the palettes that you have edited in your current OR to export a patch containing all the palettes that PalMod knows about for that game.

Additional background: The International Patch System file format contains basic information about what ROM locations to modify to what values in a ROM. It is important that you only apply the IPS file for a particular ROM to that particular ROM: other ROM/game variants might have shifted hex locations and thus not work as expected. IPS Peek lets you see the contents of any given IPS file. Lunar IPS allows application of the IPS files to your ROM. And there's a handy IPS usage tutorial here.

Sharing via a palette file

Finally, PalMod can also simply save out the current palette for the current character. When you use PalMod's Tools :: Save Palette menu option, you will be prompted to save in either .act ACT color table format (the most common palette interchange format), the .gpl GIMP Palette file format, or the archaic .pal Microsoft RIFF PAL file format. You probably will always want to save as an ACT file. Note that PalMod does support exporting the current palette as an upside-down ACT file: that can be useful for "old" previews that want an upside-down color table.


ROM Exploration

PalMod knows about a lot of fighting games and supports a lot of palettes for those fighting games. Yet there are more palettes in those games - and more games - that PalMod does not know about. PalMod can do pretty useful things:

  1. For new games, PalMod will open any file you want it to and treat it as the color format of your choice.
  2. For new palettes, PalMod will let you tell it what ROM regions to look at using an Extras file.

**** For new games: Unknown Game Mode ****

Go to PalMod's File :: Load ROM by game :: Developer Mode menu and select Unknown Game Mode. This will let you open any file you want in PalMod in a very raw view. Most files will not be useful in PalMod: it helps to know what file might contain palettes for your game. SNK palette files will usually have "p" in the filename, but for other companies you will have to spelunk around.

You will need to create an Extras file to explore this file. I usually start with a huge range and hope, narrowing down slowly as I go.

Now that you've got a bunch of data comes the very hard part.

  1. First, you need to know what color format to use. The setting you select under Settings :: Color Format is what PalMod will use to interpret the raw data in the file. Knowing what platform the game is for helps: PalMod indicates in that menu what platforms a given color format is usually used for. If PalMod supports another game in that series, try opening up that game and seeing what color format PalMod uses for that. Sometimes the MAME codebase can be an excellent reference. Other times you have to just struggle through.
  2. As regards Alpha... you can usually ignore that.

At this point... start browsing through the game file set. You are looking for a needle in a haystack: expect to take a bit, and it's going to be extra hard if you don't have the right color format set. You can load a similar game in PalMod to check what color format that uses, or look at MAME's code to figure out what color format to use if possible. Otherwise... guess, but you'll need to redo the search for each color format you think that game might be. If that exact palette is used for another sprite in another game, you can use PalMod's extended copy information to get the data we expect to see in the ROM for that palette, and then hunt for that in your new unknown ROM using a binary editor.

Palettes in games are usually stored after the main game data, so they are going to be "later" in the file. The notes in the MAME XML for the games can be helpful to guess at about where that might be - or to get the right filename. Additionally, palettes are typically stored in either of two fashions: per-game, as one contiguous block of all the palettes for everyone, or per-character, where all of the colors for one character are embedded in their normal character data. Per-game is pretty easy to work with: you'll hit the giant section of palettes and can party. Per-character is more challenging, since once you've found a character you need to find the next character. What I've found to help is to look for visual patterns in the data. For example, Capcom usually has data that looks like colorful towers shortly before the palette data, and thin towers shortly after the palette data. It's a lot of data to sift through: you'll start to figure it out as you go along. And once you've found one palette it's much easier to find the next and so on.

Once you're certain you've found the palettes of interest, you'll want to whittle down your Extras file to just reference palette regions. Don't use PalMod to write to non-palette regions: that won't work well.

If you need a color format that PalMod doesn't support, hit me up and I'll look into it.

But all of this exploration keys off of the Extra file, which brings us to the next section...

For new palettes: The Extras File

This is a powerful extension that lets you use PalMod to read regions of the ROM that PalMod doesn't already know about. If you are feeling bold, you can also use PalMod to modify these unknown regions of ROMs that PalMod doesn't know about, but please be careful: PalMod will cheerfully trust you that you are not stomping on important game data. So always remember to keep a back-up of your files just in case. To use this support you place an Extras text file in the same directory that you launch PalMod from. Badly formed Extra files will result in PalMod warning you: please pay attention to those warnings.

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 256 colors (or 128 colors in 8 color per line mode) 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, but you can load your own RAWs if you have them to get previews.

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.

If you're using developer mode to explore new ROMs, you can also use a few settings provide more information to PalMod when it loads that Extra file:

  1. Instead of using the generic "unknownE.txt", you can have a unique Extra file for any ROM. If the ROM name is "rom.bin", PalMod will first try to load "romE.txt" in PalMod's directory. If that does not exist, PalMod will then fall back to "unknownE.txt". This lets you have a unique Extra file per ROM.
  2. You can have PalMod display the game name by using a special GameName tag:
    ;GameName=Text to display
  3. You can set the Color Format palmod uses by default for that ROM by specifying:
    ;ColorFormat=Color Format Value
    , where that text is one of the bolded strings in quotes here (just put the string, don't put the quotes):
            { "BGR555LE", ColMode::COLMODE_BGR555_LE },             // BGR555 little endian (GBA, some PSX, SNES)
            { "RGB444BE", ColMode::COLMODE_RGB444_BE },             // RGB444 big endian (CPS1/2)
            { "RGB444LE", ColMode::COLMODE_RGB444_LE },             // RGB444 little endian (SF 30th steam)
            { "RGB555LE", ColMode::COLMODE_RGB555_LE },             // RGB555 little endian (CPS3)
            { "RGB555BE", ColMode::COLMODE_RGB555_BE },             // RGB555 big endian 
            { "RGB666", ColMode::COLMODE_RGB666_NEOGEO },           // RGB666 using the NeoGeo color table
            { "RGB333", ColMode::COLMODE_RGB333 },                  // RGB333 for Sega Genesis/MegaDrive
            { "RGBA8887", ColMode::COLMODE_RGBA8887 },              // 32bit color half alpha (guilty gear)
            { "RGB555Sharp", ColMode::COLMODE_RGB555_SHARP },       // RGB555 using the sharp x68000 color table
            { "RGBA8881", ColMode::COLMODE_RGBA8881 },              // 32bit color 1 bit alpha
            { "RGBA8888BE", ColMode::COLMODE_RGBA8888_BE },         // 32bit color big endian
            { "RGBA8888", ColMode::COLMODE_RGBA8888_LE },           // 32bit color little endian (uniclr. and modern computing)
            { "RGB888", ColMode::COLMODE_RGB888 },                  // 24bit
            { "BGR888", ColMode::COLMODE_BGR888 },                  // 24bit
            { "RGBA8881_32", ColMode::COLMODE_RGBA8881_32STEPS },   // MBAACC: 32 bit color, except only 32 steps
            { "GRB555LE", ColMode::COLMODE_GRB555_LE },             // GRB555 little endian
            { "BRG555LE", ColMode::COLMODE_BRG555_LE },             // GRB555 little endian
            { "BGRA8888BE", ColMode::COLMODE_BGRA8888_BE },         // 32bit color big endian (ps3)
            { "BGRA8888", ColMode::COLMODE_BGRA8888_LE },           // 32bit color little endian (arcana blood)
            { "BGR555BE", ColMode::COLMODE_BGR555_BE },             // BGR555 big endian: Motorola 68000 games
            { "GRB888", ColMode::COLMODE_GRB888 },                  // 24bit
            // This section added to enable user exploration in dev mode: not needed directly for any games yet
            { "BGR333", ColMode::COLMODE_BGR333 },
            { "RGB333", ColMode::COLMODE_RBG333 },
            { "BGR444", ColMode::COLMODE_BGR444 },
            { "BRG444", ColMode::COLMODE_BRG444 },
            { "RGB444", ColMode::COLMODE_RBG444 },
            { "BRG888", ColMode::COLMODE_BRG888 }
    
  4. You can set the Alpha mode PalMod uses by default for that ROM by specifying:
    ;AlphaMode=Alpha Mode Value
    where that Alpha Mode Value text is one of: None Fixed
So for example for the Marvel vs Capcom 2 (NAOMI) ROM "marvelvscapcom2_unlocked.bin" I would create a file "marvelvscapcom2_unlockE.txt" that reads:
;GameName=MvC2 Naomi
;ColorFormat=RGB444BE
;AlphaMode=None
Ryu Main Color LP
0x260a9c0
0x260a9e0

These optional overrides are only used in Unknown Game / Developer Mode. These optional game name, color, and alpha overrides must be specified before any hex entries in the file. This is because we need to know the color size when we first load palettes.

This is just a quick overview of the Extras file: there's a larger guide on the PalMod site.

The file names you can use are listed in the next section.


Game ROMs

(FWIW, PalMod can not download nor find ROMs for you. Please don't ask. The "fightcade JSON" handles that for Fightcade, and for other emulators a simple Google search usually works great.)

PalMod works by editing the core ROM files used by the game. Since you read the Getting Started section, you know to download the game ROM, make a copy of it, and then PalMod can modify the files you extracted from that ZIP. When you're done, you'll put the changed files back into the ZIP. Please never add new files to a game ZIP: that doesn't make any sense and won't do anything. We're only going to be changing files in place.

There are two basic systems that PalMod uses to load game ROMs. The first is by loading a single file from the ROM set. This is used when there are one or two specific files from the ROM set that contain that game's palette information. This is standard for old games or old game rips. You load these ROMs by using "Load ROM" or "Load ROM by game" in the File menu. The second method, using "Load Directory", is for games where the palette data is actually split across multiple files. This is useful for the newer "SIMM" rips, Dreamcast games, and Playstation 2 (or 3) games in particular.

Here's a table of the files we look for when we deal with single-file game ROMs. There can be some slight variance in file names: PalMod should be able to load most variants, and has internal adjustments to handle those where necessary. If your game ROM doesn't load properly or look right in PalMod, please let us know and let us know which specific ROM you're using. It's possible that you have some particular variant that PalMod doesn't know how to handle yet. If your file names don't match at all, check the table after this one for the games we handle via Load Directory.

There's a flaw in the implementation of most NeoGeo emulators where they forcibly want either ".bin"-style or ".p1"-style file extension names if the ZIP has been modified. So if you get a message in your NeoGeo emulator that "file-p1.p1" or "file-p1.bin" is missing, just update every file in that ZIP to use the opposite filename style. If the filenames end in .bin, change them to use the post-hyphen part of the filename, as in changing "foo-bar.bin" to be "foo-bar.bar", and "foo-ack.bin" to be "foo-ack.ack". Or the filenames did not end in .bin, change them all to end in .bin.

You should always expect to get a message from your emulator about the CRC32 value for your game having changed. The CRC32 value just keeps track of the exact precise file revision, and we have to change that when we edit the file. If you play online, both people using the same ROM version should help eliminate any desyncs caused by potential emulator confusion.

Game Name Extras Filename Usual ROM name
Aggressors of Dark Kombat AoDKE.txt 074-p1.p1
Art of Fighting 1 Aof1E.txt 044-p1.p1
Art of Fighting 3 (ROM p1) Aof3P1E.txt 096-p1.p1
Art of Fighting 3 (ROM p2) Aof3P2E.txt 096-p2.sp2
Asura Buster AsuraBusterE.txt pgm3.u1, pgm2.u2, pgm1.u3, and pgm0.u4
Avengers in Galactic Storm AvgrsGSE.txt sf_00-0.7k and sf_01-0.7l
Battle K-Road BtlKRoadE.txt 4-u46.bin and 5-u39.bin
Battle Master: Kyuukyoku no Senshitachi BMKNSE.txt battle master - kyuukyoku no senshi-tachi (japan).sfc
Bishoujo Senshi Sailor Moon S: Jogai Ranto!? Shuyaku Sodatsusen BSSMSJRE.txt Bishoujo Senshi Sailor Moon S - Jougai Rantou! Shuyaku Soudatsusen (Japan).sfc
Bleach: Dark Souls (NDS) BleachDSE.txt 3494 - Bleach - Dark Souls (Europe) (En,Fr,De,Es,It).nds
Breakers Revenge BreakersRevE.txt 245-p1.p1
Capcom Fighting Evolution (PS2) CFEe.txt SLUS_209.50
Capcom vs SNK 1 (CVS1) cvs1e.txt Capcom_vs_SNK_Millenium_Fight_2000_Unlocked.bin (or mpr-23504.ic1)
Capcom vs SNK 2 (CVS2) cvs2e.txt SNKGD_SL.bin (Fightcade uses an encrypted version inside the CHD: use "GD ROM Explorer" to extract and decrypt that using the DES key for GDL-0008, make changes, reencrypt it, and then repack with NAOMI GD-ROM IP Patcher)
Clay Fighter: TE cftee.txt Clay Fighter - Tournament Edition (USA).sfc
COTA (X-Men: Children of the Atom) cotae.txt xmn.05a
Cyberbots (CPS2) CybotE.txt cyb*.04
Double Dragon DoubleDragonE.txt 082-p1.p1
Dragon Ball Z: Extreme Butoden (USA)(3DS) DBZEBe.txt 3DS1366 - Dragon Ball Z - Extreme Butoden (USA)-decrypted.3ds
Dragon Ball Z - Hyper Dimension (SNES) DBZHDE.txt dragon ball z - hyper dimension (japan).sfc
Fatal Fury: King of Fighters FatalFury1E.txt 033-p1.p1
Fatal Fury 2 FatalFury2E.txt 047-p1.p1
Fatal Fury Special (Neo-Geo) FatalFurySAE.txt 058-p1.p1
Fatal Fury Special (SNES) FatalFurySE.txt Fatal Fury Special (USA).sfc
Fatal Fury 3 FatalFury3E.txt 069-p1.p1
Fight Fever FightFeverE.txt 060-p1.p1
Galaxy Fight: Universal Warriors GalaxyFightE.txt 078-p1.p1
Garou GarouE.txt kf.neo-sma
Garou for Steam GarouE.txt p1.bin
Guilty Gear: Dust Strikers (DS) GGDStrikersE.txt 0590 - Guilty Gear - Dust Strikers (Japan).nds
Gundam Wing: Endless Duel (SNES) GundamE.txt Shin Kidou Senki Gundam W - Endless Duel (Japan).sfc
Hajime no Ippo (Japan GBA) HIppo-GBAe.txt Hajime no Ippo - The Fighting! (Japan).gba)
Hokuto no Ken (PS2) HK_BE.txt HK_B.bin
Hyper Street Fighter 2 (CPS2) HSF2-03e.txt; HSF2-04e.txt hs2u.03 (portraits); hs2u.04 (characters)
Jackie Chan in Fists of Fire (Kaneko) jJChanE.txt j2p1x4.u70
Jojos (ROM 50) jojos50e.txt 50
Jojos (ROM 51) jojos51e.txt 51
Jojos (the RPG for SNES) JojosRPGE.txt JoJo no Kimyou na Bouken (Japan).sfc; or
JoJo no Kimyou na Bouken (Japan) (Translated En).sfc
Jojos Venture Venture50.txt;
Venture31.txt
50 (for characters); or
31 (for HUD)
Justice League Task Force (SNES) JusticeLeagueTFE.txt Justice League Task Force (usa).sfc
Kabuki Klash: Far East of Eden KabukiKlashE.txt 092-p1.p1
Karnov's Revenge KarnovsE.txt 066-p1.p1
King of the Monsters KOTMe.txt 016-p1.p1
Killer Instinct (SNES) KIE.txt Killer Instinct (USA) (Rev 1).sfc
Kizuna Encounter KizunaE.txt 216-p1.bin
KOF94 kof94e.txt 055-p1.p1
KOF95 kof95e.txt 084-p1.p1; or
084-p2sp.p2 (for 95 Special 2017)
KOF96 kof96e.txt 214-p2.sp2; or
214ae-p2.p2 (for 96 Anniversary Edition 2.0)
KOF97 kof97e.txt 232-p2.sp2; or
2kf97-p2p.bin (for 97 Plus) or
232ae.p2 or 232ae-p2.sp2 (for 97 Anniversary Edition) or
p1.bin (for 97 Global Match (Steam))
KOF98 kof98e.txt 242-p2.sp2
KOF98AE: 2016 KOF98AE2016E.txt 242ae-p2.sp2
KOF99AE kof99AEe.txt A,B colors: kof99ae_p2.bin; or
C,D,AC,BD colors: kof99ae_p3.bin; or
152-p2.bin (ND or Korean); or
proto_251-p2.p2 (prototype); or
251-p2p.p2 (prototype)
KOF00N kof00Ne.txt 257-pg2.sp2
King of Fighters EX2: Howling Blood (GBA) KofEx2E.txt King of Fighters EX2, The - Howling Blood (USA).gba
KOF01 kof01e.txt 262-p2-08-e0.sp2
KOF02 kof02e.txt 265-p2.sp2
KOF02 (2002 PS2 hack) KOF02PS2E.txt 265ps2-p2.bin
KOF02:UM kof02ume.txt pal_a.bin (main)
bar.bin (HUD)
clear.bin ("Clear" text)
conte.bin (continue palettes)
max2bg.bin (MAX2 backgrounds)
rank.bin (Ranking palettes)
psel.bin-n (Character Select)
KOF03 (bootleg 1 or 2004 EX Ultra Plus) kof03e.txt 2k3-p1.bin (bootleg 1); or
2k3-p1up.bin (2004 EX Ultra Plus)
KOF:XI kofxie.txt gdrom_KOFXI_v5_AllFighters.bin
Last Blade LastBladeE.txt 234-p1.p1; or
lastblad_game_m68k for Last Blade (Steam)
Last Blade 2 LastBlade2E.txt 243-pg1.bin; or
P1.bin for Last Blade 2 (Steam)
Magical Drop II MagicalDropIIE.txt 221-p1.p1
Magical Drop III MagicalDropIIIE.txt 233-p1.p1
Martial Masters MartialMastersE.txt v104_32m.u9
Matrimelee matrimeleee.txt 266-p2.sp2
Mega Man X (SNES) MMXE.txt MegaMan X (usa).sfc
Mega Man X2 (SNES) MMX2E.txt MegaMan x2 (usa).sfc
Mega Man X3 (SNES) MMX3E.txt MegaMan x3 (usa).sfc
MMPR:TFE MMPRe.txt Mighty Morphin Power Rangers - The Fighting Edition (USA).sfc
MSHVSF (ROM 6) mshvsf-6ae.txt mvs.06a
MSHVSF (ROM 7) mshvsf-7be.txt mvs.07b
MSH (ROM 5) MSHe.txt msh.05
MSH (ROM 6) MSH06e.txt msh.06b
MSH: War of the Gems (SNES) MSHWOTGE.txt Marvel Super Heroes in War of the Gems (USA).sfc
Mortal Kombat (Arcade) MK1_A_E.txt l5_mortal_kombat_t-unit_uj12_game_rom.uj12 (or the mkt-uj12.bin set)
Mortal Kombat (SNES) MK1_SNES_E.txt Mortal Kombat (USA).sfc
Mortal Kombat II (Arcade) MK2_A_E.txt l3.1_mortal_kombat_ii_game_rom_uj12.uj12
Mortal Kombat II (SNES) MK2_SNES_E.txt Mortal Kombat II (USA).sfc
MVC1 (CPS2/Arcade) mvce.txt mvc.06 or mvc.06a
MVC1 (Dreamcast) mvcDe.txt 0.bin
MVC2 (Arcade) mvc2e.txt MarvelVsCapcom2_unlocked.bin
Neo Bomberman NeoBombermanE.txt 093-p1.bin
NGBC NGBCe.txt NeoGeoBattleColliseum.bin
Ninja Masters NinjaMastersE.txt 217-p2.sp2
Primal Rage (SNES) PrimalRageE.txt Primal Rage (USA).sfc
Rage of the Dragons RotDE.txt 264-p1.p1
Ranma Nibunnoichi: Chougi Ranbu Hen (SNES) RanmaCRHE.txt Ranma Nibunnoichi - Chougi Ranbu Hen (J).sfc
Ranma Nibunnoichi: Hard Battle (SNES) RanmaHBE.txt ranma 1-2 - hard battle (usa).sfc
Real Bout Fatal Fury 1 (Arcade) RBFF1E.txt 095-p1.bin
Real Bout Fatal Fury 2 (Arcade) RBFF2E.txt 240-p1.bin
NOTE: Fightcade instead uses 240-pg1.p1 from rbff2h.zip
Real Bout Fatal Fury Special (Arcade) RBFFSE.txt 223-p1.p1
Red Earth (Arcade, Stages) RedEarth30E.txt 30
Red Earth (Arcade, Characters) RedEarthE.txt 31
Ring of Destruction: Slam Masters 2 (Arcade) SlamMasters2E.txt smbe.05b
Samurai Shodown SamShoE.txt 045-p1.p1
Samurai Shodown II SamSho2E.txt 063-p1.p1
Samurai Shodown III SamSho3E.txt 087-p5.p5
Samurai Shodown IV SamSho4E.txt 222-p1.bin for FC1
222-p1.p1 for FC2
Samurai Shodown V SamSho5E.txt 270-p1.bin; or
ssvx_p1.rom for Samurai Shodown V (Xbox Hack)
Samurai Shodown V Special SamSho5SpE.txt 272-p1.p1
Savage Reign SavageReignE.txt 059-p1.p1
Sengoku BASARA X (PS2) BSRE.txt BSR.bin
SF2:CE (ROM 21) sf2ce-21e.txt s92_21a.6f
SF2:CE (ROM 22) sf2ce-22e.txt s92_22b.7f
SF2:HF (ROM 21) sf2hf-21e.txt s2te_21.6f
SF2:HF (ROM 22) sf2hf-22e.txt s2te_22.7f
SFA1 SFA1e.txt sfz.06
SFA2 (ROM 7) sfa2e.txt sz2j.07b
NOTE: Fightcade instead uses sz2u.07 from sfa2u.zip
SFA2 (ROM 8) sfa2-8e.txt sz2j.08b
NOTE: Fightcade instead uses sz2u.08 from sfa2u.zip
SFA3 sfa3e.txt sz3.09c
SFZ3U sfz3ue.txt StreetFighterZero3Upper.bin
SFIII1 sfiii1e.txt 50
SFIII2 sfiii2e.txt 50
SFIII3 (ROM 10: used for Gill Glow/X.C.O.P.Y.) sfiii3-10e.txt 10
SFIII3 (ROM 51: used for everything else) sfiii3e.txt 51
Shaq Fu (SNES) ShaqFu_SNES_e.txt Shaq Fu (USA).sfc
SSF2T (ROM 3) ssf2t-3ce.txt sfxe.03c
SSF2T (ROM 4) ssf2t-4ae.txt sfxe.04a
SSF2T (ROM 8) ssf2t-8e.txt sfxe.08
SSF2T (GBA) ssf2t-GBAe.txt Super Street Fighter II X - Revival (Japan).gba
Street Fighter 1 StreetFighterE.txt sfd-19.2a
Street Fighter: The Movie STFME.txt sfm_0_v1.12.prom0
Super Dodge Ball (Neo-Geo) SDodgeballE.txt 208-p1.p1
Super Gem Fighter GemFighterE.txt pcf.07
Super Puzzle Fighter II Turbo SPF2TE.txt pzf.04
Super Variable Geo (SNES Japan) SVGe.txt Super Variable Geo (J).sfc
Survival Arts SurvivalArts_A_E.txt prl-r6.u4
SVC: SNK vs. CAPCOM SVC CHAOS Plus (bootleg set 2) svce.txt svc-p2pl.bin
Other SVC ROMs are encrypted, which is why we don't do anything with them.
Tattoo Assassins (DECO32) TattooAsns.txt pp44.cpu, pp45.cpu
Tekken Advance (GBA) TekkenAdvance_GBAe.txt Tekken Advance (USA).gba
TMNT: Tournament Fighters (SNES) TMNTTFE.txt sns-ky-0.u1
Top Fighter 2005 TopF2005e.txt top fighter 2005 (unl).bin
Ultimate Mortal Kombat 3 (Arcade) UMK3_A_E.txt l1.2_mortal_kombat_3_u54_ultimate.u54
Ultimate Mortal Kombat 3 (DS) UMK3_DS_E.txt Ultimate Mortal Kombat (USA) (En,Fr,De,Es,It).nds
Ultimate Mortal Kombat 3 (SNES) UMK3_SNES_E.txt Ultimate Mortal Kombat 3 (USA).sfc (or sns-a3ze.u1 for fightcade)
Unknown Game Mode UnknownE.txt Any file at all!
Vampire Hunter VampireHunterE.txt vphj.09a
Vampire Hunter 2 VHunt2e.txt vh2j.09
Vampire Savior VSAVe.txt vm3j.10b
Vampire Savior 2 VSAV2e.txt vs2j.10
Vampire The Night Warriors VampireNightWarriorsE.txt vamj.09
Voltage Fighter Gowcaizer GowcaizerE.txt 094-p1.p1
Waku Waku 7 WakuWaku7E.txt 225-p1.p1
Windjammers WindjammersE.txt 065-p1.p1
X-Men: Mutant Apocalypse (SNES) XMMAE.txt X-Men - Mutant Apocalypse (USA).sfc
X-Men vs. Street Fighter (XMVSF) XMVSFe.txt xvs.05a

Everything in the table above is for games loaded using Load ROM. This next table is for game files loaded using Load Directory:

Game Name Extras Filename Usual palette file names
Aquapazza: Aquaplus Dream Match (NESICAxLive) (unsupported) the PAL files: select the main folder and we'll find them
Aquapazza: Aquaplus Dream Match (PS3) (unsupported) the PAL files: select the main folder and we'll find them
BlazBlue: Central Fiction (unsupported) the PAC files under the data directory.
CVS2 (Dreamcast) (unsupported) PL00PAK.bin and the other PL*PAK.BIN files
CVS2 (Playstation 2/3) (unsupported) PL00PAK.bin and the other PL*PAK.BIN files
Daemon Bride (unsupported) the main directory (contains the Flashrom folder)
Daemon Bride: Additional Gain (unsupported) the main directory (contains the Flashrom folder)
DanKuGa DanKuGae.txt dkg_mpr3.20 and 3 other files
Dengeki Bunko: Fighting Climax IGNITION (unsupported) Acr_s.pal and the oter PAL files
Guilty Gear: The Missing Link (PS1) (unsupported) the main directory of the extracted ROM that contains the AX, BK, CH folders and so forth
GGXX:AC+R (Steam/PS3) (unsupported) ab.bin and the other BIN files
GGXX #Reload (Steam/Community Port) (unsupported) cddata03.bin and the other BIN files
Jojos (ROM 50) jojos50e.txt jojoba-simm5.0 to jojoba-simm5.3
Jojos (ROM 51) jojos51e.txt jojoba-simm5.4 to jojoba-simm5.7
Jojos Venture (ROM 50) Venture50e.txt jojo-simm5.0 to jojo-simm5.1
Melty Blood Actress Again Current Code (unsupported) sion.pal and the other PAL files
Melty Blood: Type Lumina (unsupported) Chr001_p1.pal and the other PAL files: follow the guide
Mighty Warriors MWarrE.txt prg_ev and prg_od from the ZIP
Million Arthur Arcana Blood (Steam) (unsupported) the PAL files in your Steam install
MSHvSF (PSX) (unsupported) PL00_10.A0 and the various other PL files in the DAT folder
NOTE: This is a stub implementation that exposes the primary and bonus colors but is not exhaustive. If you want more, be specific.
MVC (PSX) (unsupported) PL00_10.A0 and the various other PL files in the DAT folder
NOTE: This is a stub implementation that exposes the primary and bonus colors but is not exhaustive. If you want more, be specific.
MVC2 (Arcade) mvc2e.txt mpr-23051.ic20 and various other files
MVC2 (Dreamcast) (unsupported) pl00_dat.bin and the other PL*DAT.BIN files
MVC2 (Playstation 2/3) (unsupported) pl00pak.bin and the other PL*PAK.BIN files
Nitroplus Blasterz: Heroines Infinite Duel (NESICAxLive) (unsupported) the PAL files: select the main folder and we'll find them
Nitroplus Blasterz: Heroines Infinite Duel (PS3) (unsupported) the PAL files: select the main folder and we'll find them
Nitroplus Blasterz: Heroines Infinite Duel (Steam) (unsupported) the random file names in the Data directory
Persona 4 Arena Ultimax (NESICA Community Port) (unsupported) char_ag_pal.pac and the other char_*_pal.pac files
Persona 4 Arena Ultimax 2.0 (NESICA Community Port) (unsupported) char_ag_pal.pac and the other char_*_pal.pac files
Red Earth (Arcade, Stages) RedEarth30E.txt redearth-simm3.0 to redearth-simm3.3
Red Earth (Arcade, Characters) RedEarthE.txt redearth-simm3.4 to redearth-simm3.7
SFIII1 sfiii1e.txt sfiii-simm5.0 and sfiii-simm5.1
SFIII2 sfiii2e.txt sfiii2-simm5.0 to sfiii2-simm5.3
SFIII3 (ROM 10: used for Gill Glow/X.C.O.P.Y.) sfiii3-10e.txt sfiii3-simm1.0 to sfiii3-simm1.3
Japan: sfiii3n-simm1.0 to sfiii3n-simm1.3a
NOTE: Fightcade uses these files from sfiii3nr1.zip
SFIII3 (ROM 51: used for everything else) sfiii3e.txt sfiii3-simm5.4 to sfiii3-simm5.7
Japan: sfiii3n-simm5.4 to sfiii3n-simm5.7
NOTE: Fightcade uses these files in sfiii3.zip
SFIII3EX sfiii3e.txt sfiii3ex-simm7.0 to sfiii3ex-simm7.3
SFIII3: 4rd Strike (ROM 10: used for Gill Glow/X.C.O.P.Y.) sfiii3-10e.txt 4rd-simm1.0 to 4rd-simm1.3
SFIII3: 4rd Strike (ROM 51: used for everything else) sfiii3e.txt 4rd-simm5.6 and 4rd-simm5.7
SFIII3 (DC/PS2) (unsupported) pl00pl.bin and the other PL*PL.BIN files
Under Night In-Birth Exe:Late[cl-r] (unsupported) Aka.pal and the other PAL files
XMvSF (PSX) (unsupported) PL00_10.BIN and the various other PL files in the P\P0 folder
NOTE: This is a stub implementation that exposes the primary and bonus colors but is not exhaustive. If you want more, be specific.

The games in that table that do support Extra files are interleaved across multiple files. The games in that table that do not support Extra files are split with one character per file: we can't meaningfully map an Extra file across that.

If you're trying to find game ROMs to change, Google is your friend. If you're using Fightcade, just google "Fightcade JSON".

Special Steps for Melty Blood

For some games you just need to extract the ZIP and point PalMod to those files. For Melty Blood Type Lumina, follow this guide. For Melty Blood Actress Again, though, you need to work a little harder.

(The "root" folder in this example is "MBAACC - Community Edition 2.0". You may have a different name for yours, but the contents are the same.)

From your root folder go to "Tools". Locate "dump.exe" under "File Extractor", you will need this. Copy/cut the program into "root\MBAACC"

Under "root\MBAACC", you'll find the files 000#.p. We want to extract 0002.p. Drag the files into dump.exe and a command prompt will pop up. Once it finishes extracting you should find a new folder named "out".

Under "root\MBAACC\out", you'll find a file named "data". Move that folder up back into "root\MBAACC" so that your new path is "root\MBAACC\data". Make sure you also put "0002.p" into the "data" folder so "mbaa.exe" can't find it. This will force the game to check the information in the "data" folder, which we can edit freely.

Open PalMod and select "File::Load Directory::Melty Blood AACC (Steam/Community Port)" Select the "data" folder: you'll be presented with the game's palettes to freely edit.

Special Steps for Guilty Gear

Guilty Gear uses encrypted files by default, but you can replace those with decrypted versions. So first you need to decrypt your files using xrd_decrypter.exe (or get a copy of the decrypted files), and then PalMod will be able to work with them. Please follow Chloe's guide on this.

Special Steps for Persona 4 Arena Ultimax (P4AU)

Follow the guide to install the palette file overrides.

Special Steps for "Dragon Ball Z: Extreme Butoden (Nintendo 3DS)"

For "Dragon Ball Z: Extreme Butoden (Nintendo 3DS)" we expect the base USA ROM, which is labeled 3DS1366. You would want to decrypt it with the Batch CIA-3DS Decryptor before you can use it with Citra or PalMod.


Problems

If you have problems, please double-check this quick guide again. I tried jamming all relevant information and links in here. Or watch any of the quick guides on YouTube if you haven't already watched one: they're short and helpful.

Potential concerns:
I need the game ROM.
Sorry: we can't help with that. Use a search engine. Or if you're using Fightcade make sure you've installed the latest Fightcade JSON so that games auto-download: it is updated fairly regularly with new games and locations.
My changes aren't showing up in the game.
Once you have patched the game files, you need to have copied those files back into the original ZIP. Don't ever make new ZIPs (other than for backups): just replace the files in the ZIP with the changed files.
My changes still aren't showing up in the game and I'm using Fightcade.
If you're using Fightcade, Fightcade often uses multiple ZIP files for any given game. If you make changes but they're not showing up in Fightcade, they're probably in the other ZIP that Fightcade is using: change that one instead. This has notably been a problem with their weird multiple SF3 ROMs.
I made changes and now I'm getting a CRC error.
That's actually good and means you changed things: you need to ignore that error.
I get a CRC error and the emulator won't load the game now.
For games with multiple revisions the exact ZIP filename indicates to the emulator which version of the game to load. If you made your own ZIP (don't do this), that can block your emulator from loading the game. If you did not make your own ZIP, then this means that the emulator has a bug where it wants to load the "core" / "prime" version of the game when it encounters CRC errors. You can check in the MAME XML to see which revision of the game is the "prime" version, or just look at the error dialog for name it's using: that will usually give you useful information.
If you're still having problems, I might be able to help on Discord in one of the PalMod Discords if I'm on that one, or Twitter. Information that is useful to share: The more details you can provide, the easier it is for me or others to help.