Note: If you’re using PCSX2, there is a brand new method that does not require UltraISO, CVM/ISO repacking or even executable patching. Click here for more info.
Due to their development cycle, Persona 3 and 4 share many similarities under the hood. The same graphics engine, file formats, and nearly the same directory layout. Most of what can be said for modding one can also be said for the other.
Both games use Criware to store and compress assets within CVM archives.
These CVM files come in the following sets:
- DATA.CVM (containing most UI elements, events, scripts, text, audio, video, field models…)
- BTL.CVM (containing battle data such as enemy AI, battle models and HUD)
- BGM.CVM (containing background music).
Persona 4 also features ENV.CVM, which contains environmental sound effects.
Each CVM can be extracted using several different programs. The same program that you use to extract them from the game’s ISO can also be used to extract CVM contents. For instance: 7zip, imgburn, poweriso, ultraiso… the list goes on. This is because the CVM format is very similar to ISO, just with a unique header.
Models are in RMD format (aka RenderWare Model Data). They can often also be found in PAC files, an Atlus container format. All of these can be opened and edited with Amicitia. 2D UI textures can be found in TMX format (sometimes found in SPR containers, both of which can be edited with Amicitia as well).
Repacking Modded Files
The current best method of generating new CVM files is to use the Mod Compendium. The usage steps are pretty similar to P5 and other Atlus games. Supply a path to your unedited ISO in the Settings, copy the mods you want to install to your Mods folder, enable them and then click the Build button.
This should eventually result in rebuilt CVMs containing your modified files appearing in the Output folder, as well as a patched executable. You would need to use UltraISO to open the original ISO, drag these new files in (replacing the originals) and then save as a new ISO. Be careful not to overwrite the unmodified ISO.
In Persona 3 and 4, file offsets are hard-coded into the game’s executable. This file’s name varies depending on region, but should look something like: SLUS_216.21 (P3FES) or SLUS_217.82 (P4). When replacing files within CVMs and repacking the ISO, files larger than the originals move the offsets of all other files– leading to crashes. That’s why patching the executable is necessary when editing the ISO.
Unfortunately, one of the major drawbacks of modding these games is still the fact that no open source ISO tool has been found that consistently builds working ISOs. Instead, paid software UltraISO Premium tends to yield the best results for PCSX2, whereas there are some reports of PowerISO working well on modded PS2 consoles.