Modding Using HostFS on PCSX2 (P3/P4/SMT3)

In our previous guide on modding Persona 3 and 4 (PS2), it was mentioned you’d need to use paid software UltraISO to repack your modified files into a new, bootable ISO. Thanks to new patches by TGE, repacking ISOs– and even CVMs– is finally a thing of the past.

While this method should work on any device or emulator that runs PS2 games (as long as there’s hostFS support and a way to boot from an ELF), this guide will only focus on PCSX2.

The only prerequisites are:

This method does not require you to modify your ISO at all! Instead, we’ll be using a code patch that makes the game load files over the local network (your computer’s filesystem) rather than the archives in the ISO. This method is 100% free, and results are pretty much instant every time you change a file, even while the game is running. So it has several advantages over the old method, which could take around 10 minutes each time, even with optimal hardware.

Download one of the following .pnach files depending on the game you’ll be running.

When you download the code file, be sure to remove the .txt extension.

  1. Place it in your PCSX2 cheats folder. Be sure to enable cheats in the emulator!
  2. Next, go to PCSX2’s inis folder and open PCSX2_vm.ini with your text editor. Change the line hostFS=disabled to hostFS=enabled then save and exit.
  3. Make a folder anywhere you want on your PC for the game.
  4. Open your ISO with 7zip and extract the file beginning with “SLUS” to your game folder. Add the .ELF extension to it.
    Note: 
    In Nocturne’s case, you also want to extract dds3.img, dds3.ddt, and the MOVIE folder.
  5. Set this folder as your output folder in the Mod Compendium’s settings and check the HostFS box (if you have an older version, you may need to redownload the latest one from here).

Now, when you build your mods, it’ll immediately output the files directly to this folder. No more waiting around for the Mod Compendium to extract your ISO and repack CVMs every time you make changes!

All that’s left to do is select your unmodified ISO in PCSX2, but instead of booting the typical way, we’re going to select Run ELF and choose our extracted ELF file. If the cheats were applied, you should hopefully notice the modifications have loaded. From now on, changing anything is as easy as hitting Build again the Mod Compendium.

For Nocturne, there is one extra series of steps to complete first-time setup.

  1. Download TGE’s DDS3Pack
  2. Move the .exe and .dll to the location of your extracted dds3.img file and open a command prompt at the location.
  3. Type the following and press enter: dds3pack unpack dds3.img
  4. You’ll want to rename the output folder dds3 to dds3data and move the previously extracted MOVIE folder inside.

That’s it! Now you can mod P3FES, P4 and Nocturne with instant changes by loading files externally instead of ever touching the ISO. Since your ISO remains unmodified, the game’s CRC never changes either– so there’s no longer any need to rename your cheat files each time you mod the game.

Loading Modded files in Persona 3/4 (PS2)

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.

Extracting Data

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.

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.

Loading GMD Models and Animations in 3DSMax

Atlus’s new in-house graphics engine (used in Persona 5 and the Dancing games) has a new model format: GMD (sometimes called GFS). It’s used for everything from character models to objects to fields. They go right along with the new GAP animation format.

While TGE’s GFDStudio application for Windows can preview models and animations, you may want to export them to another program for rendering or editing. The current best method is to use the GMD Maxscript available here.

Prerequisites

  • An unencrypted dump of the game’s files
  • 3DSMax

Importing the model

Once you have 3DSMax installed, go to Scripting > Run Script near the top-right corner of the program.
Run Script
Paste the script and the “include” folder from the Maxscript zip into the 3DSMax Scripts folder, and then run it.
p5_gmd_gfs_gap_v0_15
Click on the “Import File” button and select a GMD model.
Import File

Locations of Files

  • Persona 5: data.cpk/model/character/…
  • Persona 3/4/5 Dancing: data.cpk/dance/player/…
  • Catherine Full Body: model.cpk/character/…

Once you select a model, click “Load Model.”
Load Model
In this example, I’ll use a model from Persona 5 Dancing. In the Dancing titles, character models are customizable so outfits, hair and accessories are all separate GMD files.
So if you load P5D’s data.cpk/dance/player/p5/pc208_01.GMD, you’ll get this…
Body Loaded
In order to stay organized, I like to select everything and add it to a New Layer in the Scene Explorer pane to the left:
New Layer
You can then click on the new Layer to give it a descriptive name.
Named Layer
While you’re at it, you can add layers for the parts you’re going to import. The selected layer (indicated by the blue icon) is where imported models will go by default.
Note: To see all this, you need to switch from Hierarchy View to Layer View.
Active Layer
Next, I’m importing P5D’s data.cpk/dance/player/p5/face/pc208_f1.GMD following the same steps from before.
Face Loaded
You may notice that faces from the Dancing games load multiple hidden objects with “MorphTarget” in the name. These are alternate expressions that you can “morph” between using sliders in the object’s Morph Modifier (in the pane to the right).
Morph Modifier
If you want, you can delete the ones you won’t need. Either way, if you switch back to Hierarchy View, you’ll see that the new objects for the head got added to a new head bone, not the original one that comes with the body.
Head Bone
If you were to load an animation at this point (from a GAP file, like say, P5D’s data.cpk/dance/player/p5/pose/pcp208_0.GAP) you’d end up with this:
Floating Head
The rest of the model is posed properly, but the head is floating away from the body. That’s because it only animated the original head bone with the body, so the contents of the new head bone need to be added to that one instead:
Parent to Head

  1. Expand Head bone under root
  2. Expand Head bone from face model
  3. Select contents of face model Head bone
  4. Right click and choose new parent
  5. Select Head bone under root
  6. Delete empty head bone
  7. Load animation

Loading the animation now should result in the face now moving properly along with the body:
Fixed Head
If the head is still floating away from the body (at a weird different angle) or you get a maxscript error, simply close the script and run it again and try again.
You can do the same with hair and accessories, parenting the new objects to the root’s head bone using the same method each time you import them (but before loading an animation).
Hair Parent
In this case, a new mesh_grip and neck bone were added. The contents could simply be added to the root’s head bone and the new bones deleted.
Skin Error
In some cases, parts of the model may be skinned incorrectly, which can be solved by clicking on the object’s Skin modifier, checking the Vertices box, opening the Weight Tool, selecting the problematic vertices and assigning them to a bone:
Hand Bone Fix
Ta-daa! Now we’re ready for rendering.

Rendering

You can output the animation frames to a video file or individual pngs if you want to use them in a video project or something.
Go to Rendering > Render Setup and under Common, choose Active Time Segment to record the entire animation (or specify a range of frames).
Render Setup
It should take whatever was visible in the viewport and split it up frame by frame as images:
Rendering
Images
Note: If you want a chroma-key background instead of transparency, you can set it up in the Rendering > Environment options:
Environment

Stay tuned for a guide on how to make changes to models/animations and put them back in the game!

Adding Randomized Battle Tracks to Persona 5 (PS3)

If you haven’t yet familiarized yourself with modding Persona 5, check out this guide first! This is a more advanced follow-up to the EBOOT patching and BGM editing guides, so read those first as well.

Copying and Renaming ACB/AWB


You may have noticed that the DLC tracks that play when the protagonist is wearing a DLC outfit are not in bgm.awb, but each have their own ACB/AWB pair. Each includes 2 ADX tracks, a battle theme and a victory theme. Maybe you also noticed that patch.yml has a Randomized Battle music patch, which shuffles all of the DLC tracks (in addition to the main battle theme) and randomly picks one at the start of each encounter.
You can customize this even further by adding your own music tracks to the game, following the same format as the DLC tracks.

You can theoretically add an infinite number of custom tracks by copying, renaming and editing the contents of each ACB/AWB pair.

Repeat the process, increasing the number in the filename by 1 each time until you have as many new pairs as extra songs you want to import.

Editing patch.yml


Find the line in the image above in your patch.yml. Add 1 to the number of the last acb/awb pair you added to account for the regular battle BGM track, and convert it to hex. For instance, my last custom acb file was bgm_18.acb. So I’ll convert 19 to hex (13) and replace the “0B” in 0x38C0000B with 13. Save the changes to patch.yml and use it to create your new EBOOT. Every time you enter battle, the game should randomly cycle through a much bigger variety of songs, including brand new ones now!

Creating Custom SFX/Music in P5

If you haven’t yet familiarized yourself with modding Persona 5, check out this guide first!

ACB Editing


One of the easiest types of mods to start with is changing the BGM. In Persona 5 (PS3), the music can be found in ps3.cpk/sound, where there is a pair of ACB/AWB files named bgm.

To edit these, you’ll want a program called ACBEditor. You can unpack all of the ADX files contained within the AWB by dragging the ACB file onto the EXE.

When you’re done editing the contents, you can drag the folder back onto the EXE to repack the updated files back into bgm.AWB.

ADX Editing


The individual files in Persona 5 are in .ADX, a Criware format. You can listen to these files with foobar2000 by installing the vgmstream plugin. You can create a looping ADX file from a WAV using Atomencd. This uses sample numbers to determine the start and end points of the loop.

Did you know there’s a mod to randomly shuffle the music tracks you hear during normal battles? Give this guide a read for more info!

Persona 5 (PS3) – EBOOT Patching

If you’re modding Persona 5 on a console with custom firmware (rather than using the RPCS3 emulator), there are extra steps required to get patch.yml modifications working. This includes mod.cpk support, 60 FPS, intro skipping, file access logging, randomized music, hiding UI elements and more.
TGEnigma has created RPCS3PatchEboot, a program that can apply these patches to your game’s EBOOT.BIN file.

The EBOOT.BIN is different between regions, as well as between physical and digital releases of the game, so unless you have the European PSN version, you’ll have to patch your own EBOOT.

Following the instructions in the video, connect to FTP and get the EBOOT.BIN from the directory your game was installed in. Transfer it to your PC.
In order to decompress/decrypt and patch your game, you WILL need:

1. Put the patch.yml in the same folder as RPCS3PatchEboot.exe.
2. Extract TrueAncestor SELF Resigner and copy your .rap to the raps folder.
3. Put the EBOOT.BIN in the same folder as resigner.exe and run it.
4. Press 1 then enter, you will get an EBOOT.ELF file.
5. Copy EBOOT.ELF to the folder with patch.yml and RPCS3PatchEboot.exe.
6. Delete anything in patch.yml you don’t want to use entirely (for instance, if you don’t want randomized music, delete the entire section of the file)
7. Open a new command prompt window and drag RPCS3PatchEboot.exe, EBOOT.ELF, and patch.yml onto the window in that order (separated by a space). Also input the path to your new EBOOT at the end, which could be anything (i.e. EBOOT_NEW.BIN)

8. Your new EBOOT should have been generated if all went well. Rename your new file back to EBOOT.ELF (delete the old one if you have to). Put it in the same folder as resigner.exe.

9. Run resigner.exe, type in 12 and press enter. This should create a new EBOOT.BIN using our patched EBOOT.ELF, which you can transfer back to your PS3 and hopefully run the game.

Keep in mind these instructions are for resigning EBOOTs to run on a DEX CFW, if you are using CEX you may have to follow slightly different steps.

Persona 5 RPCS3 Modding Guide 2: Creating and Installing Mods

This guide is a continuation from “Guide 1: Downloads and Setup”. You will be unable to follow this guide if you have not already completed the steps in guide 1.


Understanding the Mod Compendium

As mentioned in guide 1, the Mod Compendium is an application that has the capability to create/install mods for various Persona titles. The Mod Compendium builds a mod.cpk file in the Output Directory specified in the application’s configuration menu (in this instance, the mod.cpk file is built in \PS3_GAME\USRDIR). This mod.cpk “replaces” (loads in place of, though not physically modifying) the game’s files (data.cpk) according to the mods selected; if no mods are active when a mod.cpk is built, then there will be no files that are loaded in place of their respective game files.

The Mod Compendium is the best method for modding Persona 5 for the RPCS3 emulator simply because it doesn’t physically modify the game’s files. This means you are able to activate and disable mods with ease; if you didn’t use the Mod Compendium, you would be stuck creating a data.cpk dump, editing the game’s actual files, then re-packing the data.cpk. This process would become tedious and time-wasting, to say the least.

Now that the surface-level processes and purposes of the Mod Compendium have been explained, the rest of this guide will explain how to install and create mods.


Installing a Mod

The mod installation process is simple, and does not require any prior modding skills or knowledge to execute. The images provided use the “P5 Unmasked Mod” as an example, though this can be any other mod available at shrinefox.com.

Step 1: If your downloaded mod file hasn’t already been unzipped, unzip it (if your computer is unable to do this by right clicking on the file and selecting “Extract”, download and install 7zip.)

Step 2: Copy the unzipped mod folder to the “Mods” folder of your Mod Compendium installation directory.

Note: you are also able to create a folder specifically for Persona 5 mods within the \Mod Compendium\Mods directory, if you plan to mod other Persona titles. The Mod Compendium is unaffected by the creation of folders within the Mods directory.

Step 3: Open the Mod Compendium application and your mod should appear (if you opened the Mod Compendium before you installed the mod, click “Refresh” at the top.) Click the mod’s checkbox on the left side of the screen under the column titled “Enabled”, then click on the button titled “Build” located at the top of the Mod Compendium.

Once the Mod Compendium is finished, it will display the following message box:

At this point, the mod has been installed and will be loaded in the mod.cpk during the next boot of Persona 5. To uninstall a mod, uncheck the mod’s “Enabled” checkbox and build the mod.cpk once more.

Note: if you are using multiple mods, there is a chance that the enabled mods will conflict with one another. The Mod Compendium’s load order prioritizes the highest mod(s) first, so you may have to adjust the load order by right clicking on a mod and selecting “Move Up” or “Move Down”. This may remove some remove features of the mod that is placed lower in the Mod Compendium (for instance, if both mods replace the name of a persona, even if it isn’t the same persona, only the higher prioritized mod’s name edit will show in-game. )


Creating a Mod

This section will not show you how to create the contents of a mod. This section of the guide will instead show you how to structure your mod so that it can be used in the Mod Compendium, using a simple model replacement mod as an example.

This is where the data.cpk dump mentioned in the previous guide will be useful, since it gives you a reference that allows you to structure a mod of your own. First, let’s examine the model replacement mod’s file(s).

This mod, as evident by the folder name, edits the game’s model folder (where models and animations for every character, persona, and enemy are stored). The data.cpk counterpart is found here:

Next, let’s examine the contents of the mod’s model folder.

Click the image above for a higher resolution.

As you can see, the directory structure and folder/file names of the mod’s files are identical to those present in the data.cpk folder. This is because you must trick the game into believing that your modified file(s) is/are the original(s); the mod.cpk created by the Mod Compendium can only work if the contents of the mod(s) activated follow the same structure and names of their original game file counterparts. If you were to make an error and title a folder incorrectly in your mod’s directory, for instance, the game will make no use of the mod.cpk’s replacement files because there is no such file in-game that shares the title of your incorrectly named folder, and thus loads the original contents of the real folder instead.

This means that you need to make sure that the mod you create has an identical directory structure and file/folder names to those found in-game, or else your mod will not load. This is why it is recommended that you follow the “Creating a data.cpk Dump using CriPakGUI” portion of guide 1; the data.cpk dump gives you a direct reference for both directory structure & file/folder names, making the mod creation process much easier.

This concludes guide 2: “Creating and Installing Mods”. More information (as well as repetition of some of the information provided) is available in the following YouTube video, uploaded by ShrineFox:

Persona 5 RPCS3 Modding Guide 1: Downloads and Setup

Downloads

Without the following programs/files (also available for download at www.shrinefox.com), you will be unable to create or install mods. Download the following:

It is also recommended that you download the following (free) applications that will be used in future tutorials:


Using the patch.yml File

The patch.yml file is required in order for the Mod Compendium to function properly. To use this patch.yml file, first place it in your RPCS3 directory.

Following this, open patch.yml in Notepad++ and scroll to the bottom.

Replace the underlined region with the PPU Hash of your game. To do this, open RPCS3, then go to the bottom left-hand corner. Make sure that the current tab is set to “Log” and not “TTY”. Right click inside the tab and a menu will appear. Click “Trace”.

Proceed by running Persona 5 in the RPCS3 emulator, then subsequently pressing “Stop” (top left corner, between “Start” and “FullScr”). Left click on the log window, then press Control + F. Input “hash” in the input box, then click “First”. This should bring you to the PPU executable hash (not to be confused with the PRX library hash).

Copy the alphanumeric hash (yours will be different than the underlined example) and replace the hash found in patch.yml file with the hash from the log (scroll up above if you are unable to find the patch.yml hash).

At the top right corner of Notepad++, click “File” then click “Save”. You have now completed the patch.yml setup.


Setting Up the Mod Compendium

The Mod Compendium is currently the best method for creating and installing mods. This application also has the capability to create/install mods from other Persona titles, but this guide will only be using Persona 5 (as the installation process for previous titles is different).

To begin, open the Mod Compendium application and ensure that the current title is set to “Persona 5” (changeable at the top left corner). Next to this will be a button titled “Settings”. Left click this box, then left click on the 3 ellipses that are to the right of the input box for “Output Directory”. Navigate to your Persona 5 game folder, then proceed to the directory “\PS3_GAME\USRDIR”. Left click on “Select folder”, then click “OK”.  

You have now completed the Mod Compendium setup.


Creating a data.cpk Dump Using CriPakGUI

CriPakGUI is a useful tool when creating a data.cpk dump. “data.cpk” is essentially a package file that contains the majority of the game’s files. Creating a data.cpk dump is useful when you are creating a mod of your own, because it allows you to use a directory/file reference (this will be explained in guide 2, “Creating and Installing Mods”.)

To begin, open the CriPakGUI application (not to be confused with CriPakTools). At the top left corner, left click “File”, then left click “Open CPK”. Navigate to your Persona 5 game directory, then proceed to “\PS3_GAME\USRDIR” (the same directory used for setting up the Mod Compendium). Left click on “data.cpk”, then click “Open”. The application will now load the game’s files, and may appear as though it has frozen for a few seconds (do not worry, this is normal). Left click on the box that says “Extract me!”. Choose a folder that you will extract the data.cpk’s contents to (this does not have to be in the actual game’s directory, and it is recommended that you do not place it there as it may cause confusion.)

Allow the extraction to complete (this may take some time). When it is finished, a folder named “data.cpk_unpacked” will be created in the folder you chose to extract data.cpk to, and a window will appear stating “Extraction Complete.”

You have now completed the final portion of the setup. The next guide will show you how to utilize the Mod Compendium and your data.cpk dump to create and install Persona 5 mods.

Loading Modded files in Persona 5 (PS3)

This guide is for the Playstation 3 version of Persona 5. Although modding is possible on the PS4 version, the lack of CFW and/or availability of hackable firmwares makes it a very tedious process. 

Should the PS4 situation improve, or Persona 5 gets ported to another system, we will do our best to support those platforms as well.


Datamining Assets

All content in Persona 5 (sound, models, cutscenes, text, scripts, textures etc.) is stored in one of several CPK files. CPK files are Criware archives that are used to compress data for quicker transfer via PSN, as well as for saving space on the physical Blu-Ray disc. We can modify the game’s content by unpacking and repacking the contents of these files. 

If you have the PKG from the digital PSN version of Persona 5, you can simply extract the CPK files from it by using a program called PKGView. Installing the game via your PKG using RPCS3 emulator would also unpack the contents to your RPCS3\dev_hdd0\game\GAMEID\USRDIR directory. The files would be in the same folder on your PS3 console– you can use a custom firmware to transfer them to your computer via FTP. If you have a blu-ray of the game, you can follow these steps to dump the ISO.

As for unpacking the CPKs themselves, CriPakGUI should do the trick. Extract the contents of both data.cpk and ps3.cpk to their own respective folders (or one singular folder if you want, it doesn’t matter).

You can delete the cache.cpk as it only contains copies of some files from the other CPKs. The blu-ray version uses it to improve loading times by installing it on the console.

Once you have your extracted content, you’re free to use the other guides and tools on this site to modify it to your heart’s content. You should only modify copies of the extracted files so that you do not need to extract the CPK again if you need any fresh copies.


Repacking Your Edited Assets

Once you have made your desired changes, you could repack one of the CPKs from a folder using CriPackedFileMaker. However, the original CPKs are ~4GB and ~11GB respectively– and those are compressed. Creating uncompressed versions of those CPKs would be even larger and take even longer to rebuild each time you want to test a change. And that’s neglecting to mention the time it takes to transfer it back to a CFW PS3 using FTP.

One workaround would be to create a data.cpk from both extracted CPK contents and then create a new ps3.cpk containing only your modified files. That way, you only have to repack and transfer a tiny ps3.cpk each time you test a mod. You’d also only have to deal with creating and transferring the humongous data.cpk once. 

This was our old method of modding Persona 5. It still works for all regions, both digital and physical releases as well.

We have an even simpler solution that may benefit you if:

  • you are modding the European version (physical or digital) on RPCS3
  • you are modding the digital version on a CFW PS3

Check out our EBOOT Patching Guide for more info! This method also has the following optional benefits:

  • Skipping the opening logos/videos on bootup
  • Raising the framerate cap from 30 FPS to 60 FPS
  • Randomize all battle music in regular battles
  • Remove HUD, distortion effects, blur

Using the Mod Compendium

Most mods on this site are formatted for use with the Mod Compendium. It is a Windows application created by TGEnigma that allows you to combine multiple mods into one CPK with just a few clicks. It supports several other Persona games as well.

Watch the video above or check out our Mod Compendium guide for more info!