Persona 5: Difference between revisions

From RPCS3 Wiki
(One intermediate revision by the same user not shown)
Line 21: Line 21:
|spu decoder notes                    =  
|spu decoder notes                    =  
|preferred spu threads                = 1 - 3<!-- Auto, Single digit between 1 to 6 (e.g. 3), Range between 1 to 6 (e.g. 1 - 3) -->
|preferred spu threads                = 1 - 3<!-- Auto, Single digit between 1 to 6 (e.g. 3), Range between 1 to 6 (e.g. 1 - 3) -->
|preferred spu threads notes          = Fastest setting depends on your CPU, 1 typically best for people with 4core cpu's.
|preferred spu threads notes          = Fastest setting depends on your CPU, 1 is typically best for 4core cpu's, and 2 for other users
|thread scheduler                      = <!-- Operating System, RPCS3 Scheduler, RPCS3 Alternative Scheduler -->
|thread scheduler                      = <!-- Operating System, RPCS3 Scheduler, RPCS3 Alternative Scheduler -->
|thread scheduler notes                =  
|thread scheduler notes                =  
Line 118: Line 118:
|sleep timers accuracy                = <!-- As Host, Usleep Only, All Timers -->
|sleep timers accuracy                = <!-- As Host, Usleep Only, All Timers -->
|sleep timers accuracy notes          =  
|sleep timers accuracy notes          =  
|maximum spurs threads                = <!-- Unlimited, Single digit between 0 to 5 (e.g. 3) -->
|maximum spurs threads                = 4<!-- Unlimited, Single digit between 0 to 5 (e.g. 3) -->
|maximum spurs threads notes          =  
|maximum spurs threads notes          = DON'T USE WITHOUT TESTING. Improves performance on <b>some</b> low-end CPUs, generally with 8 threads or less. May reduce performance so be careful!
|firmware libraries                    = <!-- Switch to LLE, Switch to HLE -->
|firmware libraries                    = <!-- Switch to LLE, Switch to HLE -->
|firmware libraries notes              = <!-- Mention the libraries to be manually selected here -->
|firmware libraries notes              = <!-- Mention the libraries to be manually selected here -->
Line 174: Line 174:
==Special Notes==
==Special Notes==
<!-- Mention any additional notes if necessary. If no special notes are required, remove this section -->
<!-- Mention any additional notes if necessary. If no special notes are required, remove this section -->
==Improve Performance on Low-End CPUs==
 
While Persona 5's performance is already really good, you can improve it further on low-end CPUs by changing the Maximum SPURS Threads setting on the Advanced tab to 4. This typically only helps users with 4core 8thread or 6core 6thread CPUs and less. You may want to compare performance as it can make things worse in some cases. It's also generally only helpful to Persona 5, so not really worth testing on other games.
{{netplay
{{netplay
|gamever  = 1.00
|gamever  = 1.00

Revision as of 04:02, 22 May 2022

Persona 5
P5Cover.jpg
Developer(s) Atlus
Publisher(s) NA Atlus USA
JP Atlus
EU Deep Silver
Series Persona
Release date(s) JP September 15, 2016
NA/EU April 4, 2017
Release type PlayStation exclusive
Genre(s) Role-playing, Social simulation
Mode(s) Single-player
GameID(s) BLUS31604 (IRD), BLES02247, BLJM61346, NPEB02436, NPJB00769, NPUB31848
Quick links Check Compatibility
Open Issues
Search Google
Wikipedia Page

Persona 5 is the sixth installment in the Persona series, which is part of the larger Megami Tensei franchise. The game takes place in modern-day Tokyo and follows a high school student known by the pseudonym Joker who transfers to a new school after being falsely accused of assault and put on probation. Over the course of a school year, he and other students awaken to a special power, becoming a group of secret vigilantes known as the Phantom Thieves of Hearts. They explore the Metaverse, a supernatural realm born from humanity's subconscious desires, to steal malevolent intent from the hearts of adults. As with previous games in the series, the party battles enemies known as Shadows using physical manifestations of their psyche known as their Personas. The game incorporates role-playing and dungeon crawling elements alongside social simulation scenarios.

Configuration

Options that deviate from RPCS3's default settings and provide the best experience with this title are listed below.

CPU configuration

Setting Option Notes
Preferred SPU threads 1 - 3 Fastest setting depends on your CPU, 1 is typically best for 4core cpu's, and 2 for other users
SPU block size Mega Improves performance slightly

GPU configuration

Setting Option Notes
Resolution scale Use 100%, 200% or 300%. Non-integer values e.g 150% can cause white dots to appear

Advanced configuration

Setting Option Notes
Maximum SPURS threads 4 DON'T USE WITHOUT TESTING. Improves performance on some low-end CPUs, generally with 8 threads or less. May reduce performance so be careful!

Known Issues

Dialog Portraits with Resolution Scaling

Users may notice corrupted dialog portraits of characters when using resolution scaling (greater than 100%). To fix the dialog portraits when using resolution scaling, you will need to install the Bustup mod:

  1. Download "mod_v2_by_lipsum.7z" from here.
  2. Extract the file and place mod.cpk inside the game's USRDIR folder, the easiest way to find this is to right-click Persona 5 in RPCS3 and click Open Install Folder; if you cannot see the USRDIR folder, then open PS3_GAME first.
  3. Open RPCS3, go to Manage > Game Patches and click on Download Patches.
  4. Once you have downloaded latest patches, enable "Enable Mod Support" for Persona 5.

Stuck in Elevator

If using the 60 FPS patch, you will get stuck in some elevators in 5th Palace. The only fix for that is disabling the patch and reloading the save. It is advised to disable 60 FPS patch for that part.

Special Notes

Netplay testing

For the complete list of games tested with RPCN, please check the RPCN Compatibility List.

Game Version RPCS3 Version Connects? Create/Join lobbies? Match with others? Online features working? Requires custom servers? Notes
1.00 Yes N/A N/A No A lot TODOs. RPCS3.log.gz

Patches

Anchors:
  p5_ModSupport_Author: &p5_ModSupport_Author TGEnigma
  p5_ModSupport_Notes: &p5_ModSupport_Notes "Enable support for adding mod files (through mod.cpk) to the game. This feature is required to fix the dialog portraits when using resolution scaling."
  p5_ModSupport_PatVer: &p5_ModSupport_PatVer 1.0
  p5_ModSupport: &p5_ModSupport
  # make %s/hdd.cpk -> %s%s/mod.cpk
    - [ be32, 0x00B4D638, 0x25732573 ]
    - [ be32, 0x00B4D63C, 0x2F6D6F64 ]
    - [ be32, 0x00B4D640, 0x2E63706B ]
  
  # make mod.cpk file path
    - [ be32, 0x00114CA4, 0x3C6000B5 ] # lis    r3, cpkPathString@ha
    - [ be32, 0x00114CA8, 0x33E3D638 ] # addic  r31, r3, cpkPathString@l
    - [ be32, 0x00114CAC, 0x48968BEB ] # bla    getInstallPath
    - [ be32, 0x00114CB0, 0x60000000 ] # nop
    - [ be32, 0x00114CB4, 0x7C7E1B78 ] # mr     r30, r3
    - [ be32, 0x00114CB8, 0x48968BF7 ] # bla    getInstallPath2
    - [ be32, 0x00114CBC, 0x60000000 ] # nop
    - [ be32, 0x00114CC0, 0x33A10070 ] # addic  r29, r1, 0x70
    - [ be32, 0x00114CC4, 0x7C661B78 ] # mr     r6, r3
    - [ be32, 0x00114CC8, 0x7FA3EB78 ] # mr     r3, r29
    - [ be32, 0x00114CCC, 0x7FE4FB78 ] # mr     r4, r31
    - [ be32, 0x00114CD0, 0x7FC5F378 ] # mr     r5, r30
    - [ be32, 0x00114CD4, 0x48AD567F ] # bla    sprintf
    - [ be32, 0x00114CD8, 0x60000000 ] # nop
    - [ be32, 0x00114CDC, 0x48B44A9E ] # ba     branchOffset
    - [ be32, 0x00114CE0, 0x60000000 ] # nop
  
  # trampoline
    - [ be32, 0x00B44A9C, 0x7FA3EB78 ] # mr     r3, r29
    - [ be32, 0x00B44AA0, 0x48114B77 ] # bla    criFsBindCpk
    - [ be32, 0x00B44AA4, 0x60000000 ] # nop
    - [ be32, 0x00B44AA8, 0x3880000A ] # li     r4, 0xA
    - [ be32, 0x00B44AAC, 0x48AB8ED7 ] # bla    criFsBindPatch
    - [ be32, 0x00B44AB0, 0x60000000 ] # nop
    - [ be32, 0x00B44AB4, 0x48114CE6 ] # ba     0x114CA4 + 0x40
    - [ be32, 0x00B44AB8, 0x60000000 ] # nop
  
  p5_4K_Author: &p5_4K_Author rexis
  p5_4K_Notes: &p5_4K_Notes "A special patch that scales down some UI elements, rexis's 4K Mod requires this patch. Don't enable it if you don't use the 4K Mod"
  p5_4K_PatVer: &p5_4K_PatVer 1.0
  p5_4K: &p5_4K
    - [ be32, 0x1cffb0, 0x48b45007 ] # bustups A
    - [ be32, 0x1d027C, 0x48b45007 ]
    - [ be32, 0x1d039C, 0x48b45007 ]
    - [ be32, 0x1cffd4, 0x48b45007 ]
    - [ be32, 0x1d02a0, 0x48b45007 ]
    - [ be32, 0x1d03c0, 0x48b45007 ]
  
    - [ be32, 0xb45004, 0x38a00003 ] # li     r5,0x3
    - [ be32, 0xb45008, 0x7c632bd2 ] # divd   r3,r3,r5
    - [ be32, 0xb4500c, 0x4e800020 ] # blr
  
  p5_SkipIntro_Author: &p5_SkipIntro_Author TGEnigma
  p5_SkipIntro_PatVer: &p5_SkipIntro_PatVer 1.0
  p5_SkipIntro: &p5_SkipIntro
    - [ be32, 0x0055AC8C, 0x60000000 ]
  
  p5_60FPS_Author: &p5_60FPS_Author TGEnigma, rexis
  p5_60FPS_Notes: &p5_60FPS_Notes "Patch may accelerate some game effects by 2x. Updated patch fixes subtitle cut-off in cutscenes."
  p5_60FPS_PatVer: &p5_60FPS_PatVer 1.1
  p5_60FPS: &p5_60FPS
    - [ be32, 0x00010268, 0x9061009C ] # set update rate to 60 -> r3, 0xE0+var_44(r1)
  #  - [ be32, 0x008FC864, 0x60000000 ] # nop cellGcmSetSecondVFrequency
    - [ bef32, 0x00012484, 0.01666667 ]
    - [ bef32, 0x00045678, 0.01666667 ]
    - [ bef32, 0x000616F0, 0.01666667 ]
    - [ bef32, 0x00073F20, 0.01666667 ]
  #  - [ bef32, 0x000753A0, 0.01666667 ] # Doubles camera speed
    - [ bef32, 0x00077E54, 0.01666667 ]
    - [ bef32, 0x00078A70, 0.01666667 ]
    - [ bef32, 0x0007A238, 0.01666667 ]
    - [ bef32, 0x00081864, 0.01666667 ]
    - [ bef32, 0x000885C8, 0.01666667 ]
    - [ bef32, 0x0008C550, 0.01666667 ]
    - [ bef32, 0x0008D6D0, 0.01666667 ]
    - [ bef32, 0x000D058C, 0.01666667 ]
    - [ bef32, 0x000D0B4C, 0.01666667 ]
    - [ bef32, 0x000E4754, 0.01666667 ]
    - [ bef32, 0x000E50F0, 0.01666667 ]
  #  - [ bef32, 0x000E8190, 0.01666667 ] # Breaks crumpled paper animation
    - [ bef32, 0x000F8B78, 0.01666667 ]
    - [ bef32, 0x00101CE8, 0.01666667 ]
    - [ bef32, 0x001E7344, 0.01666667 ]
    - [ bef32, 0x001EB0D4, 0.01666667 ]
    - [ bef32, 0x001EB328, 0.01666667 ]
    - [ bef32, 0x001EB814, 0.01666667 ]
    - [ bef32, 0x001EB940, 0.01666667 ]
    - [ bef32, 0x001EBA04, 0.01666667 ]
    - [ bef32, 0x001EBBA0, 0.01666667 ]
    - [ bef32, 0x001EBCD0, 0.01666667 ]
    - [ bef32, 0x001ECCA0, 0.01666667 ]
    - [ bef32, 0x00234C64, 0.01666667 ]
    - [ bef32, 0x0023F4BC, 0.01666667 ]
    - [ bef32, 0x002400BC, 0.01666667 ]
    - [ bef32, 0x00240BB0, 0.01666667 ]
    - [ bef32, 0x0029231C, 0.01666667 ]
    - [ bef32, 0x00294A70, 0.01666667 ]
    - [ bef32, 0x002952F8, 0.01666667 ]
  #  - [ bef32, 0x002B027C, 0.01666667 ] # Makes it impossible to run < 60FPS
    - [ bef32, 0x002B0688, 0.01666667 ]
    - [ bef32, 0x002B6154, 0.01666667 ]
    - [ bef32, 0x002B71F8, 0.01666667 ]
    - [ bef32, 0x002B82C8, 0.01666667 ]
    - [ bef32, 0x002B98F8, 0.01666667 ]
    - [ bef32, 0x002B9F8C, 0.01666667 ]
    - [ bef32, 0x002BA614, 0.01666667 ]
    - [ bef32, 0x002BC84C, 0.01666667 ]
    - [ bef32, 0x002BCD2C, 0.01666667 ]
    - [ bef32, 0x002C550C, 0.01666667 ]
    - [ bef32, 0x002D1328, 0.01666667 ]
  #  - [ bef32, 0x002D230C, 0.01666667 ] # Doubles movement speed
    - [ bef32, 0x002D2DDC, 0.01666667 ]
    - [ bef32, 0x002D8A10, 0.01666667 ]
    - [ bef32, 0x002D8A18, 0.01666667 ]
    - [ bef32, 0x002DA46C, 0.01666667 ]
    - [ bef32, 0x002FBB00, 0.01666667 ]
    - [ bef32, 0x0030E258, 0.01666667 ]
    - [ bef32, 0x003181D4, 0.01666667 ]
    - [ bef32, 0x0031CE24, 0.01666667 ]
    - [ bef32, 0x0031DBE0, 0.01666667 ]
    - [ bef32, 0x0033DBD0, 0.01666667 ]
    - [ bef32, 0x00358664, 0.01666667 ]
    - [ bef32, 0x00359020, 0.01666667 ]
    - [ bef32, 0x0035AD10, 0.01666667 ]
    - [ bef32, 0x00364A98, 0.01666667 ]
    - [ bef32, 0x0037429C, 0.01666667 ]
    - [ bef32, 0x00376E7C, 0.01666667 ]
    - [ bef32, 0x00379B08, 0.01666667 ]
    - [ bef32, 0x0037AAAC, 0.01666667 ]
    - [ bef32, 0x0037CF54, 0.01666667 ]
    - [ bef32, 0x0037DB7C, 0.01666667 ]
    - [ bef32, 0x003803F4, 0.01666667 ]
    - [ bef32, 0x00387A80, 0.01666667 ]
    - [ bef32, 0x00388684, 0.01666667 ]
  #  - [ bef32, 0x003ACBC0, 0.01666667 ] # kaleidoscope speedup
    - [ bef32, 0x003BDDD0, 0.01666667 ]
    - [ bef32, 0x003E944C, 0.01666667 ]
    - [ bef32, 0x003F35EC, 0.01666667 ]
    - [ bef32, 0x003F6FF4, 0.01666667 ]
    - [ bef32, 0x0058CE18, 0.01666667 ]
    - [ bef32, 0x0058DE64, 0.01666667 ]
    - [ bef32, 0x0058E82C, 0.01666667 ]
    - [ bef32, 0x0058E958, 0.01666667 ]
    - [ bef32, 0x0058F47C, 0.01666667 ]
    - [ bef32, 0x0058FA00, 0.01666667 ]
    - [ bef32, 0x0058FAB4, 0.01666667 ]
    - [ bef32, 0x0058FBE4, 0.01666667 ]
    - [ bef32, 0x0058FD2C, 0.01666667 ]
    - [ bef32, 0x0058FE6C, 0.01666667 ]
    - [ bef32, 0x00590A04, 0.01666667 ]
    - [ bef32, 0x005B6914, 0.01666667 ]
    - [ bef32, 0x005F1C6C, 0.01666667 ]
    - [ bef32, 0x0062076C, 0.01666667 ] # battle related stuff
    - [ bef32, 0x007072BC, 0.01666667 ]
    - [ bef32, 0x00722D7C, 0.01666667 ]
    - [ bef32, 0x0073C840, 0.01666667 ]
    - [ bef32, 0x00772E50, 0.01666667 ]
    - [ bef32, 0x0087B338, 0.01666667 ]
    - [ bef32, 0x00B10110, 0.01666667 ]
    - [ bef32, 0x00B6AA14, 0.01666667 ]
    - [ bef32, 0x00B6AA38, 0.01666667 ]
    - [ bef32, 0x00B70B48, 0.01666667 ]
    - [ bef32, 0x00B70BC8, 0.01666667 ]
    - [ bef32, 0x00B71CF4, 0.01666667 ]
    - [ bef32, 0x00B72F38, 0.01666667 ]
    - [ bef32, 0x00CFF46C, 0.01666667 ]
    - [ bef32, 0x00061700, 0.1666667 ]
    - [ bef32, 0x00069AA4, 0.1666667 ]
    - [ bef32, 0x0007A1EC, 0.1666667 ]
    - [ bef32, 0x00081880, 0.1666667 ]
    - [ bef32, 0x000C8258, 0.1666667 ]
    - [ bef32, 0x000C991C, 0.1666667 ]
    - [ bef32, 0x00101CCC, 0.1666667 ]
    - [ bef32, 0x001E2C44, 0.1666667 ]
    - [ bef32, 0x001E61E8, 0.1666667 ]
    - [ bef32, 0x001E7338, 0.1666667 ]
    - [ bef32, 0x00250C50, 0.1666667 ]
    - [ bef32, 0x00256B20, 0.1666667 ]
    - [ bef32, 0x00292100, 0.1666667 ]
    - [ bef32, 0x00294A60, 0.1666667 ]
    - [ bef32, 0x002952E4, 0.1666667 ]
    - [ bef32, 0x0029FD98, 0.1666667 ]
    - [ bef32, 0x002A1BB8, 0.1666667 ]
    - [ bef32, 0x002A41D0, 0.1666667 ]
    - [ bef32, 0x002A6124, 0.1666667 ]
    - [ bef32, 0x002B4FF0, 0.1666667 ]
    - [ bef32, 0x002B60DC, 0.1666667 ]
    - [ bef32, 0x002B7174, 0.1666667 ]
    - [ bef32, 0x002B82F4, 0.1666667 ]
    - [ bef32, 0x002B8E74, 0.1666667 ]
    - [ bef32, 0x002BA600, 0.1666667 ]
    - [ bef32, 0x002BAB30, 0.1666667 ]
    - [ bef32, 0x002BB4E0, 0.1666667 ]
    - [ bef32, 0x002BB808, 0.1666667 ]
    - [ bef32, 0x002BC368, 0.1666667 ]
    - [ bef32, 0x002BC844, 0.1666667 ]
    - [ bef32, 0x002BD414, 0.1666667 ]
    - [ bef32, 0x002C4F54, 0.1666667 ]
    - [ bef32, 0x002C4FF0, 0.1666667 ]
    - [ bef32, 0x002C69E4, 0.1666667 ]
    - [ bef32, 0x002D4378, 0.1666667 ]
    - [ bef32, 0x002DD968, 0.1666667 ]
    - [ bef32, 0x002DE538, 0.1666667 ]
    - [ bef32, 0x002DEA04, 0.1666667 ]
    - [ bef32, 0x0030D7A0, 0.1666667 ]
    - [ bef32, 0x0030E6BC, 0.1666667 ]
    - [ bef32, 0x003181B8, 0.1666667 ]
    - [ bef32, 0x0031AFE0, 0.1666667 ]
    - [ bef32, 0x0031CE38, 0.1666667 ]
    - [ bef32, 0x0031DBF0, 0.1666667 ]
    - [ bef32, 0x0031EC74, 0.1666667 ]
    - [ bef32, 0x00322FB4, 0.1666667 ]
    - [ bef32, 0x00356560, 0.1666667 ]
    - [ bef32, 0x003586BC, 0.1666667 ]
    - [ bef32, 0x00358F90, 0.1666667 ]
    - [ bef32, 0x0035A380, 0.1666667 ]
    - [ bef32, 0x0035AA3C, 0.1666667 ]
    - [ bef32, 0x00364A9C, 0.1666667 ]
    - [ bef32, 0x003688C8, 0.1666667 ]
    - [ bef32, 0x00368A88, 0.1666667 ]
    - [ bef32, 0x00368E30, 0.1666667 ]
    - [ bef32, 0x00376FD0, 0.1666667 ]
    - [ bef32, 0x00377538, 0.1666667 ]
    - [ bef32, 0x00377CD8, 0.1666667 ]
    - [ bef32, 0x0037C2B0, 0.1666667 ]
    - [ bef32, 0x0037D310, 0.1666667 ]
    - [ bef32, 0x0037D418, 0.1666667 ]
    - [ bef32, 0x0037D5B4, 0.1666667 ]
    - [ bef32, 0x0037DD08, 0.1666667 ]
    - [ bef32, 0x0037DE10, 0.1666667 ]
    - [ bef32, 0x0037DF78, 0.1666667 ]
    - [ bef32, 0x00382F38, 0.1666667 ]
    - [ bef32, 0x003845F0, 0.1666667 ]
    - [ bef32, 0x00387A6C, 0.1666667 ]
    - [ bef32, 0x00398208, 0.1666667 ]
    - [ bef32, 0x00398460, 0.1666667 ]
    - [ bef32, 0x003999F8, 0.1666667 ]
    - [ bef32, 0x003A7C64, 0.1666667 ]
    - [ bef32, 0x003AA418, 0.1666667 ]
    - [ bef32, 0x003AE0E4, 0.1666667 ]
    - [ bef32, 0x003AE3A0, 0.1666667 ]
    - [ bef32, 0x003B25D8, 0.1666667 ]
    - [ bef32, 0x003BC448, 0.1666667 ]
    - [ bef32, 0x003C58C0, 0.1666667 ]
    - [ bef32, 0x003C67B0, 0.1666667 ]
    - [ bef32, 0x003C6D6C, 0.1666667 ]
    - [ bef32, 0x003EBC20, 0.1666667 ]
    - [ bef32, 0x003EE5F0, 0.1666667 ]
    - [ bef32, 0x003F1FE0, 0.1666667 ]
    - [ bef32, 0x003F6FC0, 0.1666667 ]
    - [ bef32, 0x004EB808, 0.1666667 ]
    - [ bef32, 0x0055251C, 0.1666667 ]
    - [ bef32, 0x0055EC48, 0.1666667 ]
    - [ bef32, 0x0055F4A8, 0.1666667 ]
    - [ bef32, 0x0057DC08, 0.1666667 ]
    - [ bef32, 0x0057E498, 0.1666667 ]
    - [ bef32, 0x005C5364, 0.1666667 ]
    - [ bef32, 0x00620714, 0.1666667 ]
    - [ bef32, 0x00635CB4, 0.1666667 ]
    - [ bef32, 0x00642B98, 0.1666667 ]
    - [ bef32, 0x00654EE8, 0.1666667 ]
    - [ bef32, 0x00662B04, 0.1666667 ]
    - [ bef32, 0x006AFF98, 0.1666667 ]
    - [ bef32, 0x006CAA44, 0.1666667 ]
    - [ bef32, 0x006E0224, 0.1666667 ]
    - [ bef32, 0x006E31A0, 0.1666667 ]
    - [ bef32, 0x006FCD3C, 0.1666667 ]
    - [ bef32, 0x00772E54, 0.1666667 ]
    - [ bef32, 0x00797508, 0.1666667 ]
    - [ bef32, 0x00B52E3C, 0.1666667 ]
    - [ bef32, 0x00B6AD00, 0.1666667 ]
    - [ bef32, 0x00B6B71C, 0.1666667 ]
    - [ bef32, 0x00B6E478, 0.1666667 ]
    - [ bef32, 0x00B6E880, 0.1666667 ]
    - [ bef32, 0x00B6E8B8, 0.1666667 ]
    - [ bef32, 0x00B6E8F0, 0.1666667 ]
    - [ bef32, 0x00B6E928, 0.1666667 ]
    - [ bef32, 0x00B6E960, 0.1666667 ]
    - [ bef32, 0x00B6E998, 0.1666667 ]
    - [ bef32, 0x00B6E9D0, 0.1666667 ]
    - [ bef32, 0x00B6EA08, 0.1666667 ]
    - [ bef32, 0x00B6EA40, 0.1666667 ]
    - [ bef32, 0x00B6EA78, 0.1666667 ]
    - [ bef32, 0x00B6EAB0, 0.1666667 ]
    - [ bef32, 0x00B6EAE8, 0.1666667 ]
    - [ bef32, 0x00B6EB20, 0.1666667 ]
    - [ bef32, 0x00B6EB58, 0.1666667 ]
    - [ bef32, 0x00B6EB90, 0.1666667 ]
    - [ bef32, 0x00B6EBC8, 0.1666667 ]
    - [ bef32, 0x00B6EC00, 0.1666667 ]
    - [ bef32, 0x00B6EC38, 0.1666667 ]
    - [ bef32, 0x00B6EC70, 0.1666667 ]
    - [ bef32, 0x00B6ECA8, 0.1666667 ]
    - [ bef32, 0x00B70A54, 0.1666667 ]
    - [ bef32, 0x00B70AF0, 0.1666667 ]
    - [ bef32, 0x00B70AF8, 0.1666667 ]
    - [ bef32, 0x00B70B00, 0.1666667 ]
    - [ bef32, 0x00B70B08, 0.1666667 ]
    - [ bef32, 0x00B70B10, 0.1666667 ]
    - [ bef32, 0x00B70B20, 0.1666667 ]
    - [ bef32, 0x00B70B78, 0.1666667 ]
    - [ bef32, 0x00B70B88, 0.1666667 ]
    - [ bef32, 0x00B70BB4, 0.1666667 ]
    - [ bef32, 0x00B70BC4, 0.1666667 ]
    - [ bef32, 0x00B70F60, 0.1666667 ]
    - [ bef32, 0x00B71BAC, 0.1666667 ]
    - [ bef32, 0x00B71BBC, 0.1666667 ]
    - [ bef32, 0x00B9BD30, 0.1666667 ]
    - [ bef32, 0x00CF96AC, 0.1666667 ]
    - [ bef32, 0x00CFA1E8, 0.1666667 ]
    - [ bef32, 0x00CFA20C, 0.1666667 ]
    - [ bef32, 0x00CFB210, 0.1666667 ]
    - [ bef32, 0x00CFB778, 0.1666667 ]
    - [ bef32, 0x00CFBC30, 0.1666667 ]
    - [ bef32, 0x00CFBCA8, 0.1666667 ]
    - [ bef32, 0x00CFBFD4, 0.1666667 ]
    - [ bef32, 0x00CFC0A8, 0.1666667 ]
    - [ bef32, 0x00CFF3CC, 0.1666667 ]
    - [ bef32, 0x00CFF3D4, 0.1666667 ]
    - [ bef32, 0x00CFF470, 0.1666667 ]
    - [ bef32, 0x00CFF478, 0.1666667 ]
    - [ bef32, 0x00CFF480, 0.1666667 ]
    - [ bef32, 0x00D06840, 0.1666667 ]
    - [ bef32, 0x00D06848, 0.1666667 ]
    - [ be32, 0x000FB71C, 0x3C603C88 ]
    - [ be32, 0x00109B14, 0x3C603C88 ]
    - [ be32, 0x0023FBDC, 0x3CA03C88 ]
    - [ be32, 0x00240620, 0x3CA03C88 ]
    - [ be32, 0x00241258, 0x3C803C88 ]
    - [ be32, 0x003CA4BC, 0x3C603C88 ]
    - [ be32, 0x0087B448, 0x3C603C88 ]
  #  - [ bef32, 0x0009eb60, 0.01666667 ]
  #  - [ bef32, 0x002cb9e8, 0.01666667 ]
  #  - [ bef32, 0x00331FF0, 0.1666667 ]
  #  - [ bef32, 0x003B0520, 0.1666667 ]
  #  - [ bef32, 0x003B05E8, 0.1666667 ]
  #  - [ bef32, 0x003b25cc, 0.1666667 ]
  #  - [ bef32, 0x003BC478, 0.1666667 ]
  #  - [ be32, 0x000a7e6c, 0x3d803c88 ]
  
    - [ be32, 0x0026dca0, 0x3860001e ] # batting cages
    - [ be32, 0x0026de4c, 0x3860001e ]
    - [ be32, 0x0026e36c, 0x3860001e ]
    - [ be32, 0x0026fb10, 0x3860001e ]
    - [ be32, 0x0026fb3c, 0x3860001e ]
    - [ be32, 0x0026fb78, 0x3860001e ]
    - [ be32, 0x0026fc30, 0x3860001e ]
    - [ be32, 0x0026fca0, 0x3860001e ]
    - [ be32, 0x0026fd14, 0x3860001e ]
    - [ be32, 0x0026fd50, 0x3860001e ]
    - [ be32, 0x0026fdf4, 0x3860001e ]
    - [ be32, 0x0026fe14, 0x3860001e ]
    - [ be32, 0x0026fe50, 0x3860001e ]
    - [ be32, 0x0026fe9c, 0x3860001e ]
    - [ be32, 0x0026fedc, 0x3860001e ]
    - [ be32, 0x002700e4, 0x3860001e ]
    - [ be32, 0x00270304, 0x3860001e ]
    - [ be32, 0x00288b04, 0x3860001e ] # party panel
    - [ be32, 0x00288b4c, 0x3860001e ]
    - [ be32, 0x00288b70, 0x3860001e ]
    - [ be32, 0x00288bb0, 0x3860001e ]
    - [ be32, 0x00288bdc, 0x3860001e ]
    - [ be32, 0x00288c18, 0x3860001e ]
    - [ be32, 0x00288c3c, 0x3860001e ]
    - [ be32, 0x002892f0, 0x3860001e ]
    - [ be32, 0x0028931c, 0x3860001e ]
    - [ be32, 0x00289344, 0x3860001e ]
    - [ be32, 0x0028b324, 0x3860001e ]
    - [ be32, 0x0028b4c8, 0x3860001e ]
    - [ be32, 0x0028c1a0, 0x3860001e ]
    - [ be32, 0x0028c1cc, 0x3860001e ]
    - [ be32, 0x0028c1f4, 0x3860001e ]
    - [ be32, 0x0028ea90, 0x3860001e ]
    - [ be32, 0x0028eacc, 0x3860001e ]
    - [ be32, 0x0028eafc, 0x3860001e ]
    - [ be32, 0x0028eb3c, 0x3860001e ]
    - [ be32, 0x0028eb60, 0x3860001e ]
    - [ be32, 0x001cfe60, 0x3860001e ] # blink anim
  
  # Removes framerate dependency for both script interpreters
    - [ be32, 0xb44e00, 0x38600001 ]  # li         r3,0x1
    - [ be32, 0xb44e04, 0x38dd0170 ]  # addi       r6,r29,0x170
    - [ be32, 0xb44e08, 0x48b44e2f ]  # bla        0xb44e2c
    - [ be32, 0xb44e0c, 0x2c040000 ]  # cmpwi      r4,0x0
    - [ be32, 0xb44e10, 0x40820008 ]  # bne        +0x8
    - [ be32, 0xb44e14, 0x481f263a ]  # ba         0x1f2638
    - [ be32, 0xb44e18, 0x7c844014 ]  # addc       r4,r4,r8
    - [ be32, 0xb44e1c, 0x7ca54014 ]  # addc       r5,r5,r8
    - [ be32, 0xb44e20, 0x481f2642 ]  # ba         0x1f2640
  
    - [ be32, 0xb44e24, 0x3cc000d9 ]  # lis        r6,0xd9
    - [ be32, 0xb44e28, 0x60c6c6ec ]  # ori        r6,r6,0xc6ec
  
    - [ be32, 0xb44e2c, 0x3ce000ff ]  # lis        r7,0xff
    - [ be32, 0xb44e30, 0x80e7fb50 ]  # lwz        r7,-0x4b0(r7)
    - [ be32, 0xb44e34, 0x81060000 ]  # lwz        r8,0(r6)
    - [ be32, 0xb44e38, 0x90e60000 ]  # stw        r7,0(r6)
    - [ be32, 0xb44e3c, 0x7d083850 ]  # subf       r8,r8,r7
    - [ be32, 0xb44e40, 0x7d09fe70 ]  # srawi      r9,r8,0x1f
    - [ be32, 0xb44e44, 0x7d084850 ]  # subf       r8,r8,r9
    - [ be32, 0xb44e48, 0x55080ffe ]  # rlwinm     r8,r8,0x1,0x1f,0x1f
    - [ be32, 0xb44e4c, 0x5509103a ]  # rlwinm     r9,r8,0x2,0x0,0x1d
    - [ be32, 0xb44e50, 0x4e800020 ]  # blr
  
    - [ be32, 0x1f161c, 0x38600174 ]  # li         r3,0x174
    - [ be32, 0x1f1640, 0x38800174 ]  # li         r4,0x174
    - [ be32, 0x1f2634, 0x48b44e02 ]  # ba         0xb44e00
  
    - [ be32, 0x575fb4, 0x48b44e27 ]  # bla        0xb44e24
    - [ be32, 0x576010, 0x48b44e27 ]  # bla        0xb44e24
    - [ be32, 0x576020, 0x7c892010 ]  # subfc      r4,r9,r4
    - [ be32, 0x57602c, 0x7c882010 ]  # subfc      r4,r8,r4
    - [ be32, 0x575fc4, 0x7c892010 ]  # subfc      r4,r9,r4
    - [ be32, 0x575fe0, 0x7c681810 ]  # subfc      r3,r8,r3
  
  p5_DLC_Author: &p5_DLC_Author TGEnigma
  p5_DLC_PatVer: &p5_DLC_PatVer 1.0
  p5_DLC: &p5_DLC
    - [ be32, 0x197AE8, 0x4E800020 ]
  
  p5_DisableBlur_Author: &p5_DisableBlur_Author TGEnigma, ruipin, kd-11
  p5_DisableBlur_PatVer: &p5_DisableBlur_PatVer 1.0
  p5_DisableBlur: &p5_DisableBlur
    - [ be32, 0x00FEE27A, 0x9E001700 ]
    - [ be32, 0x00FEE27E, 0xC801001D ]
    - [ be32, 0x00FEE282, 0x00000000 ]
    - [ be32, 0x00FEE286, 0x00000000 ]
    - [ be32, 0x00FEE28A, 0x1E810100 ]
    - [ be32, 0x00FEE28E, 0xC800001D ]
    - [ be32, 0x00FEE292, 0x00000000 ]
    - [ be32, 0x00FEE296, 0x00000000 ]
  
  p5_DisableDistortion_Author: &p5_DisableDistortion_Author TGEnigma, ruipin, kd-11
  p5_DisableDistortion_PatVer: &p5_DisableDistortion_PatVer 1.0
  p5_DisableDistortion: &p5_DisableDistortion
    - [ be32, 0x00FE2E28, 0x9E001700 ]
    - [ be32, 0x00FE2E2C, 0xC801001D ]
    - [ be32, 0x00FE2E30, 0x00000000 ]
    - [ be32, 0x00FE2E34, 0x00000000 ]
    - [ be32, 0x00FE2E38, 0x1E810100 ]
    - [ be32, 0x00FE2E3C, 0xC800001D ]
    - [ be32, 0x00FE2E40, 0x00000000 ]
    - [ be32, 0x00FE2E44, 0x00000000 ]
  
  p5_Disable100PctDistortion_Author: &p5_Disable100PctDistortion_Author TGEnigma, ruipin, kd-11
  p5_Disable100PctDistortion_PatVer: &p5_Disable100PctDistortion_PatVer 1.0
  p5_Disable100PctDistortion: &p5_Disable100PctDistortion
    - [ be32, 0x00FE31CC, 0x9E001700 ]
    - [ be32, 0x00FE31D0, 0xC801001D ]
    - [ be32, 0x00FE31D4, 0x00000000 ]
    - [ be32, 0x00FE31D8, 0x00000000 ]
    - [ be32, 0x00FE31DC, 0x1E810100 ]
    - [ be32, 0x00FE31E0, 0xC800001D ]
    - [ be32, 0x00FE31E4, 0x00000000 ]
    - [ be32, 0x00FE31E8, 0x00000000 ]
  
  p5_NoHudLite_Author: &p5_NoHudLite_Author TGEnigma
  p5_NoHudLite_Notes: &p5_NoHudLite_Notes "Elements can disabled separately by adding/removing their respective lines from the patch."
  p5_NoHudLite_PatVer: &p5_NoHudLite_PatVer 1.0
  p5_NoHudLite: &p5_NoHudLite
    - [ be32, 0xDE4EC, 0x60000000 ] # mission list
    - [ be32, 0xE83F4, 0x60000000 ] # place pict
    - [ be32, 0xE5920, 0x60000000 ] # check
    - [ be32, 0x69CC4, 0x38600001 ] # alert
    - [ be32, 0x5F678, 0x60000000 ] # date
    - [ be32, 0x38A0D0, 0x4838A186 ] # misc field hud
    - [ be32, 0x28FBA0, 0x38600000 ] # party panel
    - [ be32, 0x28FBA4, 0x4E800020 ] # party panel
    - [ be32, 0xD6B48, 0x60000000 ] # mini map
    - [ be32, 0xD6490, 0x60000000 ] # mini map
  
  p5_NoHud_Author: &p5_NoHud_Author TGEnigma
  p5_NoHud_Notes: &p5_NoHud_Notes "Disable HUD by disabling rendering of 2D elements entirely. Breaks things."
  p5_NoHud_PatVer: &p5_NoHud_PatVer 1.0
  p5_NoHud: &p5_NoHud
    - [ be32, 0x116934, 0x4E800020 ]
  
  p5_BgmOrder_Author: &p5_BgmOrder_Author TGEnigma, lipsum
  p5_BgmOrder_Notes: &p5_BgmOrder_Notes "Plays encounter BGM in file order."
  p5_BgmOrder_PatVer: &p5_BgmOrder_PatVer 1.0
  p5_BgmOrder: &p5_BgmOrder
  # patch SoundManager__SetEquipBgm
  # branch to trampoline
    - [ be32, 0x0006CD68, 0x48B44B52 ] # ba 0x00B44B50
  
  # trampoline
    - [ be32, 0x00B44B50, 0x3FDE3000 ] # addis  r30, r30, 0x3000 -> 0x30B49738
    - [ be32, 0x00B44B54, 0xA07E0000 ] # lhz    r3, 0x0(r30)
    - [ be32, 0x00B44B58, 0x38630001 ] # addi   r3, r3, 0x1
    - [ be32, 0x00B44B5C, 0x2803000B ] # cmplwi r3, 0xb (MaxBgm)
  
    - [ be16, 0x00B44B5E, 11 ] # bgm_10 -> 11
  
    - [ be32, 0x00B44B60, 0x41800008 ] # blt    +0x8
    - [ be32, 0x00B44B64, 0x38600000 ] # li     r3, 0x0
  
  # patch music id
    - [ be32, 0x00B44B68, 0xB07E0000 ] # sth   r3, 0(r30)
  
  # return
    - [ be32, 0x00B44B6C, 0x2C1E0000 ] # cmpwi r30, 0
    - [ be32, 0x00B44B70, 0x4806CD6E ] # ba    0x0006CD6C
  
  # patch Btl__PlayBgm
  # branch to trampoline
    - [ be32, 0x0063ACE4, 0x48B44B87 ] # bla 0x00B44B84 (trampoline)
    - [ be32, 0x0063ACE8, 0x4806CCBB ] # bla 0x0006CCB8 (SoundManager__GetBgmId)
  
  # trampoline
  
  # check and return if not normal battle bgm
    - [ be32, 0x00B44B84, 0x2C1F012C ] # cmpwi r31, 300 # normal battle
    - [ be32, 0x00B44B88, 0x41820008 ] # beq   8        # return if not normal battle music
    - [ be32, 0x00B44B8C, 0x4E800020 ] # blr
  
  # randomize sound bank
    - [ be32, 0x00B44B90, 0x4806CCCB ] # bla 0x0006CCC8 (SoundManager__SetEquipBgm)
  
  # return
    - [ be32, 0x00B44B94, 0x4863ACEA ] # ba 0x0063ACE8
  
  p5_BgmRandom_Author: &p5_BgmRandom_Author TGEnigma, lipsum
  p5_BgmRandom_Notes: &p5_BgmRandom_Notes "Plays encounter BGM in random order."
  p5_BgmRandom_PatVer: &p5_BgmRandom_PatVer 1.1
  p5_BgmRandom: &p5_BgmRandom
  # patch SoundManager__SetEquipBgm
  # branch to trampoline
    - [ be32, 0x0006CD68, 0x48B44B52 ] # ba 0x00B44B50
  
  # trampoline
  # Rnd() % MaxBgm
    - [ be32, 0x00B44B50, 0x4891DA07 ] # bla   0x0091DA04 (Rnd)
    - [ be32, 0x00B44B54, 0x38C0000B ] # li    r6, 11 (MaxBgm)
  
    - [ be16, 0x00B44B56, 11 ] # bgm_10 -> 11
  
    - [ be32, 0x00B44B58, 0x30860001 ] # addic r4, r6, 1
    - [ be32, 0x00B44B5C, 0x7C832396 ] # divwu r4, r3, r4
    - [ be32, 0x00B44B60, 0x7CA431D6 ] # mullw r5, r4, r6
    - [ be32, 0x00B44B64, 0x7C852014 ] # addc  r4, r5, r4
    - [ be32, 0x00B44B68, 0x7C641810 ] # subfc r3, r4, r3
    - [ be32, 0x00B44B6C, 0x7C6307B4 ] # extsw r3, r3
  
  # patch music id
    - [ be32, 0x00B44B70, 0x3FDE3000 ] # addis r30, r30, 0x3000 -> 0x30B49738
    - [ be32, 0x00B44B74, 0xB07E0000 ] # sth   r3, 0(r30)
  
  # return
    - [ be32, 0x00B44B78, 0x2C1E0000 ] # cmpwi r30, 0
    - [ be32, 0x00B44B7C, 0x4806CD6E ] # ba    0x0006CD6C
  
  # patch Btl__PlayBgm
  # branch to trampoline
    - [ be32, 0x0063ACE4, 0x48B44B87 ] # bla 0x00B44B84 (trampoline)
    - [ be32, 0x0063ACE8, 0x4806CCBB ] # bla 0x0006CCB8 (SoundManager__GetBgmId)
  
  # trampoline
  
  # check and return if not normal battle bgm
    - [ be32, 0x00B44B84, 0x2C1F012C ] # cmpwi r31, 300 # normal battle
    - [ be32, 0x00B44B88, 0x41820008 ] # beq   8        # return if not normal battle music
    - [ be32, 0x00B44B8C, 0x4E800020 ] # blr
  
  # randomize sound bank
    - [ be32, 0x00B44B90, 0x4806CCCB ] # bla 0x0006CCC8 (SoundManager__SetEquipBgm)
  
  # return
    - [ be32, 0x00B44B94, 0x4863ACEA ] # ba 0x0063ACE8
  
  p5_NaviLines_Author: &p5_NaviLines_Author lipsum
  p5_NaviLines_Notes: &p5_NaviLines_Notes "Disables Navigator battle lines (voice and message popups)."
  p5_NaviLines_PatVer: &p5_NaviLines_PatVer 1.0
  p5_NaviLines: &p5_NaviLines
    - [ be32, 0x0074A3B4, 0x38A00000 ] # li r5, 0x0 # morgana
    - [ be32, 0x0074A424, 0x38A00000 ] # li r5, 0x0 # futaba
  
  p5_MaxBullet_Author: &p5_MaxBullet_Author lipsum
  p5_MaxBullet_Notes: &p5_MaxBullet_Notes "To change the maximum bullet counts for each character, edit this patch and input your desired values. By default, this patch retains the game defaults until modified."
  p5_MaxBullet_PatVer: &p5_MaxBullet_PatVer 1.0
  p5_MaxBullet: &p5_MaxBullet
    - [ be16, 0x00D5C188, 0  ] # empty - base start
    - [ be16, 0x00D5C18A, 16 ] # joker (16)
    - [ be16, 0x00D5C18C, 8  ] # ryuji (8)
    - [ be16, 0x00D5C18E, 15 ] # morgana (15)
    - [ be16, 0x00D5C190, 36 ] # ann (36)
    - [ be16, 0x00D5C192, 24 ] # yusuke (24)
    - [ be16, 0x00D5C194, 12 ] # makoto (12)
    - [ be16, 0x00D5C196, 6  ] # haru (6)
    - [ be16, 0x00D5C198, 0  ] # futaba (0)
    - [ be16, 0x00D5C19A, 12 ] # goro (12)
    - [ be16, 0x00D5C19C, 0  ] # empty - tower rank 5 start
    - [ be16, 0x00D5C19E, 32 ] # joker (32)
    - [ be16, 0x00D5C1A0, 16 ] # ryuji (16)
    - [ be16, 0x00D5C1A2, 25 ] # morgana (25)
    - [ be16, 0x00D5C1A4, 60 ] # ann (60)
    - [ be16, 0x00D5C1A6, 48 ] # yusuke (48)
    - [ be16, 0x00D5C1A8, 24 ] # makoto (24)
    - [ be16, 0x00D5C1AA, 12 ] # haru (12)
    - [ be16, 0x00D5C1AC, 0  ] # futaba (0)
    - [ be16, 0x00D5C1AE, 24 ] # goro (24)
  
  p5_FileAccessLog_Author: &p5_FileAccessLog_Author TGEnigma
  p5_FileAccessLog_Notes: &p5_FileAccessLog_Notes "Prints file paths to the console's TTY Log as they are accessed."
  p5_FileAccessLog_PatVer: &p5_FileAccessLog_PatVer 1.0
  p5_FileAccessLog: &p5_FileAccessLog
  # branch to trampoline
    - [ be32, 0x00AC0A78, 0x48B44ABF ] # bla 0xB44ABC
    - [ be32, 0x00AC0A7C, 0x60000000 ] # nop
  # trampoline
  # prologue
    - [ be32, 0x00B44ABC, 0xF821FF41 ] # stdu    r1, -STACK_SIZE(r1)
    - [ be32, 0x00B44AC0, 0x7C0802A6 ] # mflr    r0
    - [ be32, 0x00B44AC4, 0xF80100D0 ] # std     r0, STACK_SIZE + 0x10(r1)
  # save volatile regs
    - [ be32, 0x00B44AC8, 0xF86100B8 ] # std     r3, STACK_SIZE - 0x08(r1)
    - [ be32, 0x00B44ACC, 0xF88100B0 ] # std     r4, STACK_SIZE - 0x10(r1)
    - [ be32, 0x00B44AD0, 0xF8A100A8 ] # std     r5, STACK_SIZE - 0x18(r1)
    - [ be32, 0x00B44AD4, 0xF8C100A0 ] # std     r6, STACK_SIZE - 0x20(r1)
    - [ be32, 0x00B44AD8, 0xF8E10098 ] # std     r7, STACK_SIZE - 0x28(r1)
    - [ be32, 0x00B44ADC, 0xF9010090 ] # std     r8, STACK_SIZE - 0x30(r1)
    - [ be32, 0x00B44AE0, 0xF9210088 ] # std     r9, STACK_SIZE - 0x38(r1)
    - [ be32, 0x00B44AE4, 0xF9410080 ] # std     r10, STACK_SIZE - 0x40(r1)
    - [ be32, 0x00B44AE8, 0xF9610078 ] # std     r11, STACK_SIZE - 0x48(r1)
    - [ be32, 0x00B44AEC, 0xF9810070 ] # std     r12, STACK_SIZE - 0x50(r1)
  # print file name
    - [ be32, 0x00B44AF0, 0x80630004 ] # lwz     r3, 0x04(r3)
    - [ be32, 0x00B44AF4, 0x7C6307B4 ] # extsw   r3, r3
    - [ be32, 0x00B44AF8, 0x48AD546F ] # bla     PTR_PRINTF
    - [ be32, 0x00B44AFC, 0x60000000 ] # nop
  # print newline
    - [ be32, 0x00B44B00, 0x3C6000B9 ] # lis    r3, PTR_NEWLINECHAR@ha
    - [ be32, 0x00B44B04, 0x30631820 ] # addic  r3, r3, PTR_NEWLINECHAR@l
    - [ be32, 0x00B44B08, 0x48AD546F ] # bla    PTR_PRINTF
    - [ be32, 0x00B44B0C, 0x60000000 ] # nop
  # restore volatile regs
    - [ be32, 0x00B44B10, 0xE86100B8 ] # ld     r3, STACK_SIZE - 0x08(r1)
    - [ be32, 0x00B44B14, 0xE88100B0 ] # ld     r4, STACK_SIZE - 0x10(r1)
    - [ be32, 0x00B44B18, 0xE8A100A8 ] # ld     r5, STACK_SIZE - 0x18(r1)
    - [ be32, 0x00B44B1C, 0xE8C100A0 ] # ld     r6, STACK_SIZE - 0x20(r1)
    - [ be32, 0x00B44B20, 0xE8E10098 ] # ld     r7, STACK_SIZE - 0x28(r1)
    - [ be32, 0x00B44B24, 0xE9010090 ] # ld     r8, STACK_SIZE - 0x30(r1)
    - [ be32, 0x00B44B28, 0xE9210088 ] # ld     r9, STACK_SIZE - 0x38(r1)
    - [ be32, 0x00B44B2C, 0xE9410080 ] # ld     r10, STACK_SIZE - 0x40(r1)
    - [ be32, 0x00B44B30, 0xE9610078 ] # ld     r11, STACK_SIZE - 0x48(r1)
    - [ be32, 0x00B44B34, 0xE9810070 ] # ld     r12, STACK_SIZE - 0x50(r1)
  # destroy stack frame
    - [ be32, 0x00B44B38, 0xE80100D0 ] # ld     r0, STACK_SIZE + 0x10(r1)
    - [ be32, 0x00B44B3C, 0x7C0803A6 ] # mtlr   r0
    - [ be32, 0x00B44B40, 0x382100C0 ] # addi   r1, r1, STACK_SIZE
  # return
    - [ be32, 0x00B44B44, 0xFB2100F8 ] # std    r25, 0xF8(r1)
    - [ be32, 0x00B44B48, 0xFAA100D8 ] # std    r21, 0xD8(r1)
    - [ be32, 0x00B44B4C, 0x4E800020 ] # blr
  
  p5_FixScriptPrintingFunctions_Author: &p5_FixScriptPrintingFunctions_Author TGEnigma
  p5_FixScriptPrintingFunctions_Notes: &p5_FixScriptPrintingFunctions_Notes "Allows flowscripts to print strings to TTY Log."
  p5_FixScriptPrintingFunctions_PatVer: &p5_FixScriptPrintingFunctions_PatVer 1.0
  p5_FixScriptPrintingFunctions: &p5_FixScriptPrintingFunctions
  # ScriptInterpreter_Comm_PUT_Hook
    - [ be32, 0x001E9D10, 0x48B44B9A ]
  # PutInt
    - [ be32, 0x00B44B98, 0x7C641B78 ]
    - [ be32, 0x00B44B9C, 0x3C6000B6 ]
    - [ be32, 0x00B44BA0, 0x3063394C ]
    - [ be32, 0x00B44BA4, 0x48AD546F ]
    - [ be32, 0x00B44BA8, 0x3C6000B9 ]
    - [ be32, 0x00B44BAC, 0x30631820 ]
    - [ be32, 0x00B44BB0, 0x48AD546F ]
    - [ be32, 0x00B44BB4, 0x481E9D16 ]
  # ScriptInterpreter_Comm_PUTF_Hook
    - [ be32, 0x001E9D68, 0x48B44BBA ]
  # PutFloat
    - [ be32, 0xB44BB8, 0xFC400890 ]
    - [ be32, 0xB44BBC, 0x3C6000B6 ]
    - [ be32, 0xB44BC0, 0x3063397C ]
    - [ be32, 0xB44BC4, 0x48AD546F ]
    - [ be32, 0xB44BC8, 0x3C6000B9 ]
    - [ be32, 0xB44BCC, 0x30631820 ]
    - [ be32, 0xB44BD0, 0x48AD546F ]
    - [ be32, 0xB44BD4, 0x481E9D6E ]
  # ScriptInterpreter_Comm_PUTS_Hook
    - [ be32, 0x001E9D3C, 0x48B44BDA ]
  # PutString
    - [ be32, 0x00B44BD8, 0x7C641B78 ]
    - [ be32, 0x00B44BDC, 0x3C6000B6 ]
    - [ be32, 0x00B44BE0, 0x30633994 ]
    - [ be32, 0x00B44BE4, 0x48AD546F ]
    - [ be32, 0x00B44BE8, 0x3C6000B9 ]
    - [ be32, 0x00B44BEC, 0x30631820 ]
    - [ be32, 0x00B44BF0, 0x48AD546F ]
    - [ be32, 0x00B44BF4, 0x481E9D42 ]
  
  p5_d0d0d0_Author: &p5_d0d0d0_Author Lipsum
  p5_d0d0d0_Notes: &p5_d0d0d0_Notes "Replaces the red color in the pause menu. Yellow by default."
  p5_d0d0d0_PatVer: &p5_d0d0d0_PatVer 1.0
  p5_d0d0d0: &p5_d0d0d0
    - [ be32, 0x0045a6d8, 0x3c80ffff ] # lis param_2,-0x2f30
    - [ be32, 0x0045a6dc, 0x60842200 ] # ori param_2,param_2,0xd000
    - [ be32, 0x0049c938, 0x3ca0ffff ] # lis param_3,-0x2f30
    - [ be32, 0x0049c93c, 0x60a52200 ] # ori param_3,param_3,0xd000
    - [ be32, 0x0049c978, 0x3ca0ffff ] # lis param_3,-0x2f30
    - [ be32, 0x0049c97c, 0x60a52200 ] # ori param_3,param_3,0xd000
    - [ be32, 0x0049ca6c, 0x3f20ffff ] # lis r25,-0x2f30
    - [ be32, 0x0049ca70, 0x63392200 ] # ori r25,r25,0xd000
    - [ be32, 0x0049caac, 0x3f20ffff ] # lis r25,-0x2f30
    - [ be32, 0x0049cab0, 0x63392200 ] # ori r25,r25,0xd000
    - [ be32, 0x004a02a0, 0x3d20ffff ] # lis param_7,-0x2f30
    - [ be32, 0x004a02c0, 0x61272200 ] # ori param_5,param_7,0xd000
    - [ be32, 0x004a2fe0, 0x3f80ffff ] # lis r28,-0x2f30
    - [ be32, 0x004a2fec, 0x639c2200 ] # ori r28,r28,0xd000
    - [ be32, 0x004a2ff4, 0x3f80ffff ] # lis r28,-0x2f30
    - [ be32, 0x004a3000, 0x639c2200 ] # ori r28,r28,0xd000
    - [ be32, 0x004a4374, 0x3cc0ffff ] # lis param_4,-0x2f30
    - [ be32, 0x004a437c, 0x60c62200 ] # ori param_4,param_4,0xd000
    - [ be32, 0x004a4490, 0x3ce0ffff ] # lis param_5,-0x2f30
    - [ be32, 0x004a4498, 0x60e72200 ] # ori param_5,param_5,0xd000
    - [ be32, 0x004a4bd0, 0x3c60ffff ] # lis param_1,-0x2f30
    - [ be32, 0x004a4bdc, 0x607a2200 ] # ori r26,param_1,0xd000
    - [ be32, 0x004a6304, 0x3c60ffff ] # lis param_1,-0x2f30
    - [ be32, 0x004a6308, 0x60632200 ] # ori param_1,param_1,0xd000
    - [ be32, 0x004ac530, 0x3c80ffff ] # lis param_2,-0x2f30
    - [ be32, 0x004ac538, 0x60842200 ] # ori param_2,param_2,0xd000
    - [ be32, 0x004b3ad4, 0x3fc0ffff ] # lis r30,-0x2f30
    - [ be32, 0x004b3ad8, 0x63de2200 ] # ori r30,r30,0xd000
    - [ be32, 0x004c0f80, 0x3c80ffff ] # lis param_2,-0x2f30
    - [ be32, 0x004c0f88, 0x60842200 ] # ori param_2,param_2,0xd000
    - [ be32, 0x004c1150, 0x3c80ffff ] # lis param_2,-0x2f30
    - [ be32, 0x004c115c, 0x609d2200 ] # ori r29,param_2,0xd000
    - [ be32, 0x004c1154, 0x3ca0ffff ] # lis param_3,-0x2f30
    - [ be32, 0x004c1160, 0x60a32200 ] # ori param_1,param_3,0xd000
    - [ be32, 0x004c3c18, 0x3c80ffff ] # lis param_2,-0x2f30
    - [ be32, 0x004c3c1c, 0x60842200 ] # ori param_2,param_2,0xd000
    - [ be32, 0x004c3c30, 0x3c60ffff ] # lis param_1,-0x2f30
    - [ be32, 0x004c3c38, 0x60632200 ] # ori param_1,param_1,0xd000
    - [ be32, 0x004c5b34, 0x3c60ffff ] # lis param_1,-0x2f30
    - [ be32, 0x004c5b38, 0x606522ff ] # ori param_3,param_1,0xd0ff
    - [ be32, 0x004c5f0c, 0x3c80ffff ] # lis param_2,-0x2f30
    - [ be32, 0x004c5f18, 0x60842200 ] # ori param_2,param_2,0xd000
    - [ be32, 0x0052b1b0, 0x3ca0ffff ] # lis param_3,-0x2f30
    - [ be32, 0x0052b1c4, 0x60a52200 ] # ori param_3,param_3,0xd000
  
  p5_StopPartyPanel_Author: &p5_StopPartyPanel_Author DeathChaos
  p5_StopPartyPanel_Notes: &p5_StopPartyPanel_Notes "Prevents in combat HP/SP Bar UI from loading for testing purposes."
  p5_StopPartyPanel_PatVer: &p5_StopPartyPanel_PatVer 1.0
  p5_StopPartyPanel: &p5_StopPartyPanel
  # Prevent party_panel from being loaded
    - [ be32, 0x28fc14, 0x60000000 ]
    - [ be32, 0x28fc1c, 0x60000000 ]
    - [ be32, 0x28fc20, 0x60000000 ]
    - [ be32, 0x28fc34, 0x60000000 ]
    - [ be32, 0x28fc40, 0x60000000 ]
    - [ be32, 0x28fc54, 0x60000000 ]
  
  p5_Title_US: &p5_Title_US
    "Persona 5":
      BLUS31604: [ All ]
      NPUB31848: [ All ]
  
  p5_Title_EU: &p5_Title_EU
    "Persona 5":
      BLES02247: [ All ]
      NPEB02436: [ All ]
  
  p5_Title_JP_100: &p5_Title_JP_100
    "Persona 5":
      BLJM61346: [ 01.00 ]
  
  p5_Title_JP_103: &p5_Title_JP_103
    "Persona 5":
      BLJM61346: [ 01.03 ]

PPU-e72e715d646a94770d1902364bc66fe33b1b6606:
  Enable Mod Support:
    Games: *p5_Title_US
    Author: *p5_ModSupport_Author
    Notes: *p5_ModSupport_Notes
    Patch Version: *p5_ModSupport_PatVer
    Patch:
      - [ load, *p5_ModSupport ]
  4K Mod Patch:
    Games: *p5_Title_US
    Author: *p5_4K_Author
    Notes: *p5_4K_Notes
    Patch Version: *p5_4K_PatVer
    Patch:
      - [ load, *p5_4K ]
  Skip Intro Videos:
    Games: *p5_Title_US
    Author: *p5_SkipIntro_Author
    Patch Version: *p5_SkipIntro_PatVer
    Patch:
      - [ load, *p5_SkipIntro ]
  60 FPS:
    Games: *p5_Title_US
    Author: *p5_60FPS_Author
    Notes: *p5_60FPS_Notes
    Patch Version: *p5_60FPS_PatVer
    Patch:
      - [ load, *p5_60FPS ]
  Disable DLC Unlock Messages:
    Games: *p5_Title_US
    Author: *p5_DLC_Author
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  Disable Blur Filter:
    Games: *p5_Title_US
    Author: *p5_DisableBlur_Author
    Patch Version: *p5_DisableBlur_PatVer
    Patch:
      - [ load, *p5_DisableBlur ]
  Disable Normal Distortion Filter (<=99% Alert & Velvet Room):
    Games: *p5_Title_US
    Author: *p5_DisableDistortion_Author
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  Disable Angry Distortion Filter (100% Alert):
    Games: *p5_Title_US
    Author: *p5_Disable100PctDistortion_Author
    Patch Version: *p5_Disable100PctDistortion_PatVer
    Patch:
      - [ load, *p5_Disable100PctDistortion ]
  Disable HUD Elements:
    Games: *p5_Title_US
    Author: *p5_NoHudLite_Author
    Notes: *p5_NoHudLite_Notes
    Patch Version: *p5_NoHudLite_PatVer
    Patch:
      - [ load, *p5_NoHudLite ]
  Disable HUD Elements (Aggressive):
    Games: *p5_Title_US
    Author: *p5_NoHud_Author
    Notes: *p5_NoHud_Notes
    Patch Version: *p5_NoHud_PatVer
    Patch:
      - [ load, *p5_NoHud ]
  Encounter BGM In Order:
    Games: *p5_Title_US
    Author: *p5_BgmOrder_Author
    Notes: *p5_BgmOrder_Notes
    Patch Version: *p5_BgmOrder_PatVer
    Patch:
      - [ load, *p5_BgmOrder ]
  Encounter BGM Random Order:
    Games: *p5_Title_US
    Author: *p5_BgmRandom_Author
    Notes: *p5_BgmRandom_Notes
    Patch Version: *p5_BgmRandom_PatVer
    Patch:
      - [ load, *p5_BgmRandom ]
  Disable Navigator Battle Messages:
    Games: *p5_Title_US
    Author: *p5_NaviLines_Author
    Notes: *p5_NaviLines_Notes
    Patch Version: *p5_NaviLines_PatVer
    Patch:
      - [ load, *p5_NaviLines ]
  Custom Maximum Bullet Count:
    Games: *p5_Title_US
    Author: *p5_MaxBullet_Author
    Notes: *p5_MaxBullet_Notes
    Patch Version: *p5_MaxBullet_PatVer
    Patch:
      - [ load, *p5_MaxBullet ]
  File Access Log:
    Games: *p5_Title_US
    Author: *p5_FileAccessLog_Author
    Notes: *p5_FileAccessLog_Notes
    Patch Version: *p5_FileAccessLog_PatVer
    Patch:
      - [ load, *p5_FileAccessLog ]
  Fix Script Printing Functions:
    Games: *p5_Title_US
    Author: *p5_FixScriptPrintingFunctions_Author
    Notes: *p5_FixScriptPrintingFunctions_Notes
    Patch Version: *p5_FixScriptPrintingFunctions_PatVer
    Patch:
      - [ load, *p5_FixScriptPrintingFunctions ]
  Replace Color d0d0d0:
    Games: *p5_Title_US
    Author: *p5_d0d0d0_Author
    Notes: *p5_d0d0d0_Notes
    Patch Version: *p5_d0d0d0_PatVer
    Patch:
      - [ load, *p5_d0d0d0 ]
  Prevent Party Panel From Loading:
    Games: *p5_Title_US
    Author: *p5_StopPartyPanel_Author
    Notes: *p5_StopPartyPanel_Notes
    Patch Version: *p5_StopPartyPanel_PatVer
    Patch:
      - [ load, *p5_StopPartyPanel ]

PPU-b8c34f774adb367761706a7f685d4f8d9d355426:
  Enable Mod Support:
    Games: *p5_Title_EU
    Author: *p5_ModSupport_Author
    Notes: *p5_ModSupport_Notes
    Patch Version: *p5_ModSupport_PatVer
    Patch:
      - [ load, *p5_ModSupport ]
  4K Mod Patch:
    Games: *p5_Title_EU
    Author: *p5_4K_Author
    Notes: *p5_4K_Notes
    Patch Version: *p5_4K_PatVer
    Patch:
      - [ load, *p5_4K ]
  Skip Intro Videos:
    Games: *p5_Title_EU
    Author: *p5_SkipIntro_Author
    Patch Version: *p5_SkipIntro_PatVer
    Patch:
      - [ load, *p5_SkipIntro ]
  60 FPS:
    Games: *p5_Title_EU
    Author: *p5_60FPS_Author
    Notes: *p5_60FPS_Notes
    Patch Version: *p5_60FPS_PatVer
    Patch:
      - [ load, *p5_60FPS ]
  Disable DLC Unlock Messages:
    Games: *p5_Title_EU
    Author: *p5_DLC_Author
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  Disable Blur Filter:
    Games: *p5_Title_EU
    Author: *p5_DisableBlur_Author
    Patch Version: *p5_DisableBlur_PatVer
    Patch:
      - [ load, *p5_DisableBlur ]
  Disable Normal Distortion Filter (<=99% Alert & Velvet Room):
    Games: *p5_Title_EU
    Author: *p5_DisableDistortion_Author
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  Disable Angry Distortion Filter (100% Alert):
    Games: *p5_Title_EU
    Author: *p5_Disable100PctDistortion_Author
    Patch Version: *p5_Disable100PctDistortion_PatVer
    Patch:
      - [ load, *p5_Disable100PctDistortion ]
  Disable HUD Elements:
    Games: *p5_Title_EU
    Author: *p5_NoHudLite_Author
    Notes: *p5_NoHudLite_Notes
    Patch Version: *p5_NoHudLite_PatVer
    Patch:
      - [ load, *p5_NoHudLite ]
  Disable HUD Elements (Aggressive):
    Games: *p5_Title_EU
    Author: *p5_NoHud_Author
    Notes: *p5_NoHud_Notes
    Patch Version: *p5_NoHud_PatVer
    Patch:
      - [ load, *p5_NoHud ]
  Encounter BGM In Order:
    Games: *p5_Title_EU
    Author: *p5_BgmOrder_Author
    Notes: *p5_BgmOrder_Notes
    Patch Version: *p5_BgmOrder_PatVer
    Patch:
      - [ load, *p5_BgmOrder ]
  Encounter BGM Random Order:
    Games: *p5_Title_EU
    Author: *p5_BgmRandom_Author
    Notes: *p5_BgmRandom_Notes
    Patch Version: *p5_BgmRandom_PatVer
    Patch:
      - [ load, *p5_BgmRandom ]
  Disable Navigator Battle Messages:
    Games: *p5_Title_EU
    Author: *p5_NaviLines_Author
    Notes: *p5_NaviLines_Notes
    Patch Version: *p5_NaviLines_PatVer
    Patch:
      - [ load, *p5_NaviLines ]
  Custom Maximum Bullet Count:
    Games: *p5_Title_EU
    Author: *p5_MaxBullet_Author
    Notes: *p5_MaxBullet_Notes
    Patch Version: *p5_MaxBullet_PatVer
    Patch:
      - [ load, *p5_MaxBullet ]
  File Access Log:
    Games: *p5_Title_EU
    Author: *p5_FileAccessLog_Author
    Notes: *p5_FileAccessLog_Notes
    Patch Version: *p5_FileAccessLog_PatVer
    Patch:
      - [ load, *p5_FileAccessLog ]
  Fix Script Printing Functions:
    Games: *p5_Title_EU
    Author: *p5_FixScriptPrintingFunctions_Author
    Notes: *p5_FixScriptPrintingFunctions_Notes
    Patch Version: *p5_FixScriptPrintingFunctions_PatVer
    Patch:
      - [ load, *p5_FixScriptPrintingFunctions ]
  Replace Color d0d0d0:
    Games: *p5_Title_EU
    Author: *p5_d0d0d0_Author
    Notes: *p5_d0d0d0_Notes
    Patch Version: *p5_d0d0d0_PatVer
    Patch:
      - [ load, *p5_d0d0d0 ]
  Prevent Party Panel From Loading:
    Games: *p5_Title_EU
    Author: *p5_StopPartyPanel_Author
    Notes: *p5_StopPartyPanel_Notes
    Patch Version: *p5_StopPartyPanel_PatVer
    Patch:
      - [ load, *p5_StopPartyPanel ]

PPU-3b394da7912181d308bf08505009b3578521c756:
  Enable Mod Support:
    Games: *p5_Title_JP_100
    Author: *p5_ModSupport_Author
    Notes: *p5_ModSupport_Notes
    Patch Version: *p5_ModSupport_PatVer
    Patch:
      - [ load, *p5_ModSupport ]
  4K Mod Patch:
    Games: *p5_Title_JP_100
    Author: *p5_4K_Author
    Notes: *p5_4K_Notes
    Patch Version: *p5_4K_PatVer
    Patch:
      - [ load, *p5_4K ]
  Skip Intro Videos:
    Games: *p5_Title_JP_100
    Author: *p5_SkipIntro_Author
    Patch Version: *p5_SkipIntro_PatVer
    Patch:
      - [ load, *p5_SkipIntro ]
  60 FPS:
    Games: *p5_Title_JP_100
    Author: *p5_60FPS_Author
    Notes: *p5_60FPS_Notes
    Patch Version: *p5_60FPS_PatVer
    Patch:
      - [ load, *p5_60FPS ]
  Disable DLC Unlock Messages:
    Games: *p5_Title_JP_100
    Author: *p5_DLC_Author
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  Disable Blur Filter:
    Games: *p5_Title_JP_100
    Author: *p5_DisableBlur_Author
    Patch Version: *p5_DisableBlur_PatVer
    Patch:
      - [ load, *p5_DisableBlur ]
  Disable Normal Distortion Filter (<=99% Alert & Velvet Room):
    Games: *p5_Title_JP_100
    Author: *p5_DisableDistortion_Author
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  Disable Angry Distortion Filter (100% Alert):
    Games: *p5_Title_JP_100
    Author: *p5_Disable100PctDistortion_Author
    Patch Version: *p5_Disable100PctDistortion_PatVer
    Patch:
      - [ load, *p5_Disable100PctDistortion ]
  Disable HUD Elements:
    Games: *p5_Title_JP_100
    Author: *p5_NoHudLite_Author
    Notes: *p5_NoHudLite_Notes
    Patch Version: *p5_NoHudLite_PatVer
    Patch:
      - [ load, *p5_NoHudLite ]
  Disable HUD Elements (Aggressive):
    Games: *p5_Title_JP_100
    Author: *p5_NoHud_Author
    Notes: *p5_NoHud_Notes
    Patch Version: *p5_NoHud_PatVer
    Patch:
      - [ load, *p5_NoHud ]
  Encounter BGM In Order:
    Games: *p5_Title_JP_100
    Author: *p5_BgmOrder_Author
    Notes: *p5_BgmOrder_Notes
    Patch Version: *p5_BgmOrder_PatVer
    Patch:
      - [ load, *p5_BgmOrder ]
  Encounter BGM Random Order:
    Games: *p5_Title_JP_100
    Author: *p5_BgmRandom_Author
    Notes: *p5_BgmRandom_Notes
    Patch Version: *p5_BgmRandom_PatVer
    Patch:
      - [ load, *p5_BgmRandom ]
  Disable Navigator Battle Messages:
    Games: *p5_Title_JP_100
    Author: *p5_NaviLines_Author
    Notes: *p5_NaviLines_Notes
    Patch Version: *p5_NaviLines_PatVer
    Patch:
      - [ load, *p5_NaviLines ]
  Custom Maximum Bullet Count:
    Games: *p5_Title_JP_100
    Author: *p5_MaxBullet_Author
    Notes: *p5_MaxBullet_Notes
    Patch Version: *p5_MaxBullet_PatVer
    Patch:
      - [ load, *p5_MaxBullet ]
  File Access Log:
    Games: *p5_Title_JP_100
    Author: *p5_FileAccessLog_Author
    Notes: *p5_FileAccessLog_Notes
    Patch Version: *p5_FileAccessLog_PatVer
    Patch:
      - [ load, *p5_FileAccessLog ]
  Fix Script Printing Functions:
    Games: *p5_Title_JP_100
    Author: *p5_FixScriptPrintingFunctions_Author
    Notes: *p5_FixScriptPrintingFunctions_Notes
    Patch Version: *p5_FixScriptPrintingFunctions_PatVer
    Patch:
      - [ load, *p5_FixScriptPrintingFunctions ]
  Replace Color d0d0d0:
    Games: *p5_Title_JP_100
    Author: *p5_d0d0d0_Author
    Notes: *p5_d0d0d0_Notes
    Patch Version: *p5_d0d0d0_PatVer
    Patch:
      - [ load, *p5_d0d0d0 ]
  Prevent Party Panel From Loading:
    Games: *p5_Title_JP_100
    Author: *p5_StopPartyPanel_Author
    Notes: *p5_StopPartyPanel_Notes
    Patch Version: *p5_StopPartyPanel_PatVer
    Patch:
      - [ load, *p5_StopPartyPanel ]

PPU-9da9b988693598fbe1e2d316d1e927c37ad666bc:
  Enable Mod Support:
    Games: *p5_Title_JP_103
    Author: *p5_ModSupport_Author
    Notes: *p5_ModSupport_Notes
    Patch Version: *p5_ModSupport_PatVer
    Patch:
      - [ load, *p5_ModSupport ]
  4K Mod Patch:
    Games: *p5_Title_JP_103
    Author: *p5_4K_Author
    Notes: *p5_4K_Notes
    Patch Version: *p5_4K_PatVer
    Patch:
      - [ load, *p5_4K ]
  Skip Intro Videos:
    Games: *p5_Title_JP_103
    Author: *p5_SkipIntro_Author
    Patch Version: *p5_SkipIntro_PatVer
    Patch:
      - [ load, *p5_SkipIntro ]
  60 FPS:
    Games: *p5_Title_JP_103
    Author: *p5_60FPS_Author
    Notes: *p5_60FPS_Notes
    Patch Version: *p5_60FPS_PatVer
    Patch:
      - [ load, *p5_60FPS ]
  Disable DLC Unlock Messages:
    Games: *p5_Title_JP_103
    Author: *p5_DLC_Author
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  Disable Blur Filter:
    Games: *p5_Title_JP_103
    Author: *p5_DisableBlur_Author
    Patch Version: *p5_DisableBlur_PatVer
    Patch:
      - [ load, *p5_DisableBlur ]
  Disable Normal Distortion Filter (<=99% Alert & Velvet Room):
    Games: *p5_Title_JP_103
    Author: *p5_DisableDistortion_Author
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  Disable Angry Distortion Filter (100% Alert):
    Games: *p5_Title_JP_103
    Author: *p5_Disable100PctDistortion_Author
    Patch Version: *p5_Disable100PctDistortion_PatVer
    Patch:
      - [ load, *p5_Disable100PctDistortion ]
  Disable HUD Elements:
    Games: *p5_Title_JP_103
    Author: *p5_NoHudLite_Author
    Notes: *p5_NoHudLite_Notes
    Patch Version: *p5_NoHudLite_PatVer
    Patch:
      - [ load, *p5_NoHudLite ]
  Disable HUD Elements (Aggressive):
    Games: *p5_Title_JP_103
    Author: *p5_NoHud_Author
    Notes: *p5_NoHud_Notes
    Patch Version: *p5_NoHud_PatVer
    Patch:
      - [ load, *p5_NoHud ]
  Encounter BGM In Order:
    Games: *p5_Title_JP_103
    Author: *p5_BgmOrder_Author
    Notes: *p5_BgmOrder_Notes
    Patch Version: *p5_BgmOrder_PatVer
    Patch:
      - [ load, *p5_BgmOrder ]
  Encounter BGM Random Order:
    Games: *p5_Title_JP_103
    Author: *p5_BgmRandom_Author
    Notes: *p5_BgmRandom_Notes
    Patch Version: *p5_BgmRandom_PatVer
    Patch:
      - [ load, *p5_BgmRandom ]
  Disable Navigator Battle Messages:
    Games: *p5_Title_JP_103
    Author: *p5_NaviLines_Author
    Notes: *p5_NaviLines_Notes
    Patch Version: *p5_NaviLines_PatVer
    Patch:
      - [ load, *p5_NaviLines ]
  Custom Maximum Bullet Count:
    Games: *p5_Title_JP_103
    Author: *p5_MaxBullet_Author
    Notes: *p5_MaxBullet_Notes
    Patch Version: *p5_MaxBullet_PatVer
    Patch:
      - [ load, *p5_MaxBullet ]
  File Access Log:
    Games: *p5_Title_JP_103
    Author: *p5_FileAccessLog_Author
    Notes: *p5_FileAccessLog_Notes
    Patch Version: *p5_FileAccessLog_PatVer
    Patch:
      - [ load, *p5_FileAccessLog ]
  Fix Script Printing Functions:
    Games: *p5_Title_JP_103
    Author: *p5_FixScriptPrintingFunctions_Author
    Notes: *p5_FixScriptPrintingFunctions_Notes
    Patch Version: *p5_FixScriptPrintingFunctions_PatVer
    Patch:
      - [ load, *p5_FixScriptPrintingFunctions ]
  Replace Color d0d0d0:
    Games: *p5_Title_JP_103
    Author: *p5_d0d0d0_Author
    Notes: *p5_d0d0d0_Notes
    Patch Version: *p5_d0d0d0_PatVer
    Patch:
      - [ load, *p5_d0d0d0 ]
  Prevent Party Panel From Loading:
    Games: *p5_Title_JP_103
    Author: *p5_StopPartyPanel_Author
    Notes: *p5_StopPartyPanel_Notes
    Patch Version: *p5_StopPartyPanel_PatVer
    Patch:
      - [ load, *p5_StopPartyPanel ]

Canary Patches

Anchors:
  p5_CommunityPatches_Author: &p5_CommunityPatches_Author DeathChaos
  p5_CommunityPatches_Notes: &p5_CommunityPatches_Notes "A collection of QoL patches to help make some game mods possible, currently includes Single Combat GAP, Expand DLC BGM IDs, Forcibly Enable motionse.dat/acb on All Enemies, Disable Player Swordtrack Loading, Load Proper Boss Voices"
  p5_CommunityPatches_PatVer: &p5_CommunityPatches_PatVer 1.0
  p5_CommunityPatches: &p5_CommunityPatches
  # Force Single GAP Combat Animations
  # Break Comparison with split "a" GAP file so it is always false
    - [ be32, 0x6717e0, 0x3BE00000 ]
    - [ be32, 0x67195c, 0x3BE00000 ]
  # Prevent "b" GAP files from loading
    - [ be32, 0x6750e4, 0x60000000 ]
    - [ be32, 0x675100, 0x60000000 ]
    - [ be32, 0x67510c, 0x60000000 ]
    - [ be32, 0x675118, 0x60000000 ]
    - [ be32, 0x675124, 0x60000000 ]
  # Prevent "b" GAP files from loading (alt)
    - [ be32, 0x675308, 0x60000000 ]
    - [ be32, 0x675328, 0x60000000 ]
    - [ be32, 0x675330, 0x60000000 ]
    - [ be32, 0x67533c, 0x60000000 ]
    - [ be32, 0x675348, 0x60000000 ]
  # Expand DLC Outfit BGM List
  # Patch table to redirect to new one
    - [ be32, 0x06cd00, 0x3fe000b4 ] # lis r31, 0xb4
    - [ be32, 0x06cd0c, 0x33ff4bf8 ] # addic r31, r31, 0x4bf8
  # Patch table size to new size 0x15
    - [ be32, 0x06cd5c, 0x2c1e0015 ] # cmpwi r30, 0x15
  # expand the table
  # Default BGM
    - [ be32, 0xB44BF8, 0x0000FFFF ]
    - [ be32, 0xB44BFC, 0x00000000 ]
  # bgm_01
    - [ be16, 0xB44C00, 0x0001 ]
    - [ be16, 0xB44C02, 0x7053 ]
    - [ be16, 0xB44C04, 0x0000 ]
    - [ be16, 0xB44C06, 0x2290 ]
  # bgm_02
    - [ be16, 0xB44C08, 0x0002 ]
    - [ be16, 0xB44C0A, 0x704A ]
    - [ be16, 0xB44C0C, 0x0000 ]
    - [ be16, 0xB44C0E, 0x2291 ]
  # bgm_03
    - [ be16, 0xB44C10, 0x0003 ]
    - [ be16, 0xB44C12, 0x7065 ]
    - [ be16, 0xB44C14, 0x0000 ]
    - [ be16, 0xB44C16, 0x2292 ]
  # bgm_04
    - [ be16, 0xB44C18, 0x0004 ]
    - [ be16, 0xB44C1A, 0x705C ]
    - [ be16, 0xB44C1C, 0x0000 ]
    - [ be16, 0xB44C1E, 0x2293 ]
  # bgm_05
    - [ be16, 0xB44C20, 0x0005 ]
    - [ be16, 0xB44C22, 0x7077 ]
    - [ be16, 0xB44C24, 0x0000 ]
    - [ be16, 0xB44C26, 0x2294 ]
  # bgm_06
    - [ be16, 0xB44C28, 0x0006 ]
    - [ be16, 0xB44C2A, 0x7092 ]
    - [ be16, 0xB44C2C, 0x0000 ]
    - [ be16, 0xB44C2E, 0x2295 ]
  # bgm_07
    - [ be16, 0xB44C30, 0x0007 ]
    - [ be16, 0xB44C32, 0x709b ]
    - [ be16, 0xB44C34, 0x0000 ]
    - [ be16, 0xB44C36, 0x2296 ]
  # bgm_08
    - [ be16, 0xB44C38, 0x0008 ]
    - [ be16, 0xB44C3A, 0x70a4 ]
    - [ be16, 0xB44C3C, 0x0000 ]
    - [ be16, 0xB44C3E, 0x2297 ]
  # bgm_09
    - [ be16, 0xB44C40, 0x0009 ]
    - [ be16, 0xB44C42, 0x70ad ]
    - [ be16, 0xB44C44, 0x0000 ]
    - [ be16, 0xB44C46, 0x2298 ]
  # bgm_10 - Original List ends here
    - [ be16, 0xB44C48, 0x000A ]
    - [ be16, 0xB44C4A, 0x706e ]
    - [ be16, 0xB44C4C, 0x0000 ]
    - [ be16, 0xB44C4E, 0x2299 ]
  # bgm_11 - Starlight (c0001_170_00.GMD)
    - [ be16, 0xB44C50, 0x000B ]
    - [ be16, 0xB44C52, 0x70b6 ]
    - [ be16, 0xB44C54, 0x0000 ]
    - [ be16, 0xB44C56, 0x229A ]
  # bgm_12 - Midwinter (c0001_171_00.GMD)
    - [ be16, 0xB44C58, 0x000C ]
    - [ be16, 0xB44C5A, 0x70bf ]
    - [ be16, 0xB44C5C, 0x0000 ]
    - [ be16, 0xB44C5E, 0x229B ]
  # bgm_13 - Ultramarine (Velvet Room) (c0001_172_00.GMD)
    - [ be16, 0xB44C60, 0x000D ]
    - [ be16, 0xB44C62, 0x70c8 ]
    - [ be16, 0xB44C64, 0x0000 ]
    - [ be16, 0xB44C66, 0x229C ]
  # bgm_14 - Featherman (c0001_173_00.GMD)
    - [ be16, 0xB44C68, 0x000E ]
    - [ be16, 0xB44C6A, 0x70d1 ]
    - [ be16, 0xB44C6C, 0x0000 ]
    - [ be16, 0xB44C6E, 0x229D ]
  # bgm_15 - Demonica Helmet (c0001_174_00.GMD)
    - [ be16, 0xB44C70, 0x000F ]
    - [ be16, 0xB44C72, 0x70da ]
    - [ be16, 0xB44C74, 0x0000 ]
    - [ be16, 0xB44C76, 0x229E ]
  # bgm_16 - Demonica Suit (No Helmet) (c0001_175_00.GMD)
    - [ be16, 0xB44C78, 0x0010 ]
    - [ be16, 0xB44C7A, 0x70e3 ]
    - [ be16, 0xB44C7C, 0x0000 ]
    - [ be16, 0xB44C7E, 0x229F ]
  # bgm_17 - New Cinema (c0001_176_00.GMD)
    - [ be16, 0xB44C80, 0x0011 ]
    - [ be16, 0xB44C82, 0x70ec ]
    - [ be16, 0xB44C84, 0x0000 ]
    - [ be16, 0xB44C86, 0x22A0 ]
  # bgm_18 - RESERVE (Never hurts to have extras) (c0001_177_00.GMD)
    - [ be16, 0xB44C88, 0x0012 ]
    - [ be16, 0xB44C8A, 0x70f5 ]
    - [ be16, 0xB44C8C, 0x0000 ]
    - [ be16, 0xB44C8E, 0x22A1 ]
  # bgm_19 - RESERVE (c0001_178_00.GMD)
    - [ be16, 0xB44C90, 0x0013 ]
    - [ be16, 0xB44C92, 0x70fe ]
    - [ be16, 0xB44C94, 0x0000 ]
    - [ be16, 0xB44C96, 0x22A2 ]
  # bgm_20 - RESERVE (c0001_179_00.GMD)
    - [ be16, 0xB44C98, 0x0014 ]
    - [ be16, 0xB44C9A, 0x7107 ]
    - [ be16, 0xB44C9C, 0x0000 ]
    - [ be16, 0xB44C9E, 0x22A3 ]
  # Forcibly enable motionse.dat/acb on all enemies
    - [ be32, 0x02d91c, 0x38600001 ] # li   param_1,0x1
    - [ be32, 0x02d97c, 0x38600001 ] # li   param_1,0x1
    - [ be32, 0x02d998, 0x3860FFFF ] # li   param_1,-1
    - [ be32, 0x02da04, 0x3860001E ] # li   param_1,0x1E
  # Disable Player Swordtrack loading
    - [ be32, 0x0265cc, 0x38600000 ] # li   param_1,0x0
  # Boss voice stuff
    - [ be32, 0x06a87ac, 0x281c00e6 ] # cmplwi   r28,0xe6
    - [ be32, 0x06a87b0, 0x41810878 ] # bgt   LAB_006a9028
  
  p5_Title_US: &p5_Title_US
    "Persona 5":
      BLUS31604: [ All ]
      NPUB31848: [ All ]
  
  p5_Title_EU: &p5_Title_EU
    "Persona 5":
      BLES02247: [ All ]
      NPEB02436: [ All ]
  
  p5_Title_JP_100: &p5_Title_JP_100
    "Persona 5":
      BLJM61346: [ 01.00 ]
  
  p5_Title_JP_103: &p5_Title_JP_103
    "Persona 5":
      BLJM61346: [ 01.03 ]

PPU-e72e715d646a94770d1902364bc66fe33b1b6606:
  P5 Modding Community Patches:
    Games: *p5_Title_US
    Author: *p5_CommunityPatches_Author
    Notes: *p5_CommunityPatches_Notes
    Patch Version: *p5_CommunityPatches_PatVer
    Patch:
      - [ load, *p5_CommunityPatches ]

PPU-b8c34f774adb367761706a7f685d4f8d9d355426:
  P5 Modding Community Patches:
    Games: *p5_Title_EU
    Author: *p5_CommunityPatches_Author
    Notes: *p5_CommunityPatches_Notes
    Patch Version: *p5_CommunityPatches_PatVer
    Patch:
      - [ load, *p5_CommunityPatches ]

PPU-3b394da7912181d308bf08505009b3578521c756:
  P5 Modding Community Patches:
    Games: *p5_Title_JP_100
    Author: *p5_CommunityPatches_Author
    Notes: *p5_CommunityPatches_Notes
    Patch Version: *p5_CommunityPatches_PatVer
    Patch:
      - [ load, *p5_CommunityPatches ]

PPU-9da9b988693598fbe1e2d316d1e927c37ad666bc:
  P5 Modding Community Patches:
    Games: *p5_Title_JP_103
    Author: *p5_CommunityPatches_Author
    Notes: *p5_CommunityPatches_Notes
    Patch Version: *p5_CommunityPatches_PatVer
    Patch:
      - [ load, *p5_CommunityPatches ]