Persona 5: Difference between revisions

From RPCS3 Wiki
m (Text replacement - "|anti-aliasing notes = ↵|default resolution = <!-- 1920x1080, 1280x720, 720x480, 720x576, 1600x1080, 1440x1080, 1280x1080, 960x1080 -->↵" to "|anti-aliasing notes = |zcull accuracy = <!-- Precise, Approximate, Relaxed --> |zcull accuracy notes = |shader quality = <!-- High, Low, Auto --> |shader quality notes = |3d rendering m...)
mNo edit summary
 
(6 intermediate revisions by 2 users not shown)
Line 8: Line 8:
|genre    = Role-playing, Social simulation
|genre    = Role-playing, Social simulation
|modes    = Single-player<!-- Choose all relevant options: Single-player, Co-op, Multiplayer -->
|modes    = Single-player<!-- Choose all relevant options: Single-player, Co-op, Multiplayer -->
|gameid    = {{gameid|id=BLUS31604, BLJM61346|ird=Yes}}, {{gameid|id=BLES02247, NPEB02436, NPJB00769, NPUB31848|ird=No}}
|gameid    = {{gameid|id=BLES02247, BLUS31604, BLJM61346, NPEB02436, NPJB00769, NPUB31848|ird=Yes}}
|internal resolution = 1280x720
|internal resolution = 1280x720
}}
}}
Line 27: Line 27:
|enable spu loop detection            = <!-- On, Off -->
|enable spu loop detection            = <!-- On, Off -->
|enable spu loop detection notes      =  
|enable spu loop detection notes      =  
|spu cache                            = <!-- On, Off -->
|spu cache notes                      =
|spu xfloat accuracy                  = Relaxed<!-- Accurate, Approximate, Relaxed -->
|spu xfloat accuracy                  = Relaxed<!-- Accurate, Approximate, Relaxed -->
|spu xfloat accuracy notes            = Improves performance, only works in a couple games.
|spu xfloat accuracy notes            = Improves performance, only works in a couple games.
Line 102: Line 100:
|camera input                          = <!-- Unknown, EyeToy, PS Eye, UVC 1.1 -->
|camera input                          = <!-- Unknown, EyeToy, PS Eye, UVC 1.1 -->
|camera input notes                    =  
|camera input notes                    =  
|camera settings                      = <!-- Null, Fake -->
|camera settings                      = <!-- Null, Fake, Qt -->
|camera settings notes                =  
|camera settings notes                =  
|move handler                          = <!-- Null, Fake, Mouse -->
|move handler                          = <!-- Null, Fake, Mouse -->
Line 144: Line 142:
|vblank rate                          = <!-- Value between 1 to 500 -->
|vblank rate                          = <!-- Value between 1 to 500 -->
|vblank rate notes                    =  
|vblank rate notes                    =  
|vblank ntsc fixup                    = <!-- On, Off -->
|vblank ntsc fixup notes              =
|clocks scale                          = <!-- Value between 10 to 1000 -->
|clocks scale                          = <!-- Value between 10 to 1000 -->
|clocks scale notes                    =  
|clocks scale notes                    =  
Line 185: Line 185:
<!-- 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 -->
{{netplay
{{netplay
|gamever = 1.00
|gamever       = 1.00
|connect = Yes<!-- Yes, No, Partial, Untested, N/A -->
|rpcs3 version  = N/A
|lobbies = N/A<!-- Yes, No, Partial, Untested, N/A -->
|connect       = Yes<!-- Yes, No, Partial, Untested, N/A -->
|match   = N/A<!-- Yes, No, Partial, Untested, N/A -->
|lobbies       = N/A<!-- Yes, No, Partial, Untested, N/A -->
|features = Yes<!-- Yes, No, Partial, Untested, N/A -->
|match         = N/A<!-- Yes, No, Partial, Untested, N/A -->
|notes   = Works. Will show "Unable to acquire data" when trying to access network when there is no record about what other players did. [https://cdn.discordapp.com/attachments/319224795785068545/1054821911009435748/RPCS3.log.gz LOG]
|features       = Yes<!-- Yes, No, Partial, Untested, N/A -->
|custom servers = Not required<!-- Available, Not available, Not required, Untested -->
|notes         = Will show "Unable to acquire data" when trying to access network when there is no record about what other players did.
}}
}}


Line 196: Line 198:
|type    = PPU
|type    = PPU
|version = 1.2
|version = 1.2
|content =  
|content =
Anchors:
Anchors:
   p5_ModSupport_Author: &p5_ModSupport_Author
   p5_ModSupport_Author: &p5_ModSupport_Author
Line 651: Line 653:
     "TGEnigma"
     "TGEnigma"
   p5_NoHudLite_Notes: &p5_NoHudLite_Notes
   p5_NoHudLite_Notes: &p5_NoHudLite_Notes
     "Elements can disabled separately by adding/removing their respective lines from the patch."
     "Elements can be disabled separately by adding/removing their respective lines from the patch."
   p5_NoHudLite_PatVer: &p5_NoHudLite_PatVer 1.0
   p5_NoHudLite_PatVer: &p5_NoHudLite_PatVer 1.0
   p5_NoHudLite: &p5_NoHudLite
   p5_NoHudLite: &p5_NoHudLite
Line 1,471: Line 1,473:
|type    = Canary
|type    = Canary
|version = 1.2
|version = 1.2
|content =  
|content =
Anchors:
Anchors:
   p5_CommunityPatches_Author: &p5_CommunityPatches_Author
   p5_CommunityPatches_Author: &p5_CommunityPatches_Author

Latest revision as of 04:48, 29 April 2024

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) BLES02247 (IRD), BLUS31604 (IRD), BLJM61346 (IRD), NPEB02436, NPJB00769, NPUB31848
Internal resolution 1280x720
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 quad-core CPUs, and 2 for other users.
SPU xfloat accuracy Relaxed Improves performance, only works in a couple games.
SPU block size Mega Improves performance slightly.

GPU configuration

Setting Option Notes
Resolution scale 100 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.
    • If you can't open the archive you may need to install 7-Zip.
  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.

Soft-Locks

If using the 60 FPS patch, or you have the framelimit setting to higher than 30 FPS, Joker will glitch out at the Saori puzzle in the 2nd palace. Also, in the 5th Palace you will get stuck in some elevators. The only fix for that is disabling the 60 FPS patch, limiting the framerate to 30 FPS from the GPU settings and reloading the save.

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 N/A Yes N/A N/A Yes Not required Will show "Unable to acquire data" when trying to access network when there is no record about what other players did.

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_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 < 60 FPS
    - [ 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, 0x00b44e00, 0x38600001 ] # li         r3,0x1
    - [ be32, 0x00b44e04, 0x38dd0170 ] # addi       r6,r29,0x170
    - [ be32, 0x00b44e08, 0x48b44e2f ] # bla        0xb44e2c
    - [ be32, 0x00b44e0c, 0x2c040000 ] # cmpwi      r4,0x0
    - [ be32, 0x00b44e10, 0x40820008 ] # bne        +0x8
    - [ be32, 0x00b44e14, 0x481f263a ] # ba         0x1f2638
    - [ be32, 0x00b44e18, 0x7c844014 ] # addc       r4,r4,r8
    - [ be32, 0x00b44e1c, 0x7ca54014 ] # addc       r5,r5,r8
    - [ be32, 0x00b44e20, 0x481f2642 ] # ba         0x1f2640

    - [ be32, 0x00b44e24, 0x3cc000d9 ] # lis        r6,0xd9
    - [ be32, 0x00b44e28, 0x60c6c6ec ] # ori        r6,r6,0xc6ec

    - [ be32, 0x00b44e2c, 0x3ce000ff ] # lis        r7,0xff
    - [ be32, 0x00b44e30, 0x80e7fb50 ] # lwz        r7,-0x4b0(r7)
    - [ be32, 0x00b44e34, 0x81060000 ] # lwz        r8,0(r6)
    - [ be32, 0x00b44e38, 0x90e60000 ] # stw        r7,0(r6)
    - [ be32, 0x00b44e3c, 0x7d083850 ] # subf       r8,r8,r7
    - [ be32, 0x00b44e40, 0x7d09fe70 ] # srawi      r9,r8,0x1f
    - [ be32, 0x00b44e44, 0x7d084850 ] # subf       r8,r8,r9
    - [ be32, 0x00b44e48, 0x55080ffe ] # rlwinm     r8,r8,0x1,0x1f,0x1f
    - [ be32, 0x00b44e4c, 0x5509103a ] # rlwinm     r9,r8,0x2,0x0,0x1d
    - [ be32, 0x00b44e50, 0x4e800020 ] # blr

    - [ be32, 0x001f161c, 0x38600174 ] # li         r3,0x174
    - [ be32, 0x001f1640, 0x38800174 ] # li         r4,0x174
    - [ be32, 0x001f2634, 0x48b44e02 ] # ba         0xb44e00

    - [ be32, 0x00575fb4, 0x48b44e27 ] # bla        0xb44e24
    - [ be32, 0x00576010, 0x48b44e27 ] # bla        0xb44e24
    - [ be32, 0x00576020, 0x7c892010 ] # subfc      r4,r9,r4
    - [ be32, 0x0057602c, 0x7c882010 ] # subfc      r4,r8,r4
    - [ be32, 0x00575fc4, 0x7c892010 ] # subfc      r4,r9,r4
    - [ be32, 0x00575fe0, 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, 0x00197ae8, 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 be disabled separately by adding/removing their respective lines from the patch."
  p5_NoHudLite_PatVer: &p5_NoHudLite_PatVer 1.0
  p5_NoHudLite: &p5_NoHudLite
    - [ be32, 0x000de4ec, 0x60000000 ] # mission list
    - [ be32, 0x000e83f4, 0x60000000 ] # place pict
    - [ be32, 0x000e5920, 0x60000000 ] # check
    - [ be32, 0x00069cc4, 0x38600001 ] # alert
    - [ be32, 0x0005f678, 0x60000000 ] # date
    - [ be32, 0x0038a0d0, 0x4838a186 ] # misc field hud
    - [ be32, 0x0028fba0, 0x38600000 ] # party panel
    - [ be32, 0x0028fba4, 0x4e800020 ] # party panel
    - [ be32, 0x000d6b48, 0x60000000 ] # mini map
    - [ be32, 0x000d6490, 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, 0x00116934, 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, 0x00b44bb8, 0xfc400890 ]
    - [ be32, 0x00b44bbc, 0x3c6000b6 ]
    - [ be32, 0x00b44bc0, 0x3063397c ]
    - [ be32, 0x00b44bc4, 0x48ad546f ]
    - [ be32, 0x00b44bc8, 0x3c6000b9 ]
    - [ be32, 0x00b44bcc, 0x30631820 ]
    - [ be32, 0x00b44bd0, 0x48ad546f ]
    - [ be32, 0x00b44bd4, 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, 0x0028fc14, 0x60000000 ]
    - [ be32, 0x0028fc1c, 0x60000000 ]
    - [ be32, 0x0028fc20, 0x60000000 ]
    - [ be32, 0x0028fc34, 0x60000000 ]
    - [ be32, 0x0028fc40, 0x60000000 ]
    - [ be32, 0x0028fc54, 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 ]
  "Skip Intro Videos":
    Games: *p5_Title_US
    Author: *p5_SkipIntro_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  "Disable Blur Filter":
    Games: *p5_Title_US
    Author: *p5_DisableBlur_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  "Disable Angry Distortion Filter (100% Alert)":
    Games: *p5_Title_US
    Author: *p5_Disable100PctDistortion_Author
    Notes:
    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 ]
  "Skip Intro Videos":
    Games: *p5_Title_EU
    Author: *p5_SkipIntro_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  "Disable Blur Filter":
    Games: *p5_Title_EU
    Author: *p5_DisableBlur_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  "Disable Angry Distortion Filter (100% Alert)":
    Games: *p5_Title_EU
    Author: *p5_Disable100PctDistortion_Author
    Notes:
    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 ]
  "Skip Intro Videos":
    Games: *p5_Title_JP_100
    Author: *p5_SkipIntro_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  "Disable Blur Filter":
    Games: *p5_Title_JP_100
    Author: *p5_DisableBlur_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  "Disable Angry Distortion Filter (100% Alert)":
    Games: *p5_Title_JP_100
    Author: *p5_Disable100PctDistortion_Author
    Notes:
    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 ]
  "Skip Intro Videos":
    Games: *p5_Title_JP_103
    Author: *p5_SkipIntro_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DLC_PatVer
    Patch:
      - [ load, *p5_DLC ]
  "Disable Blur Filter":
    Games: *p5_Title_JP_103
    Author: *p5_DisableBlur_Author
    Notes:
    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
    Notes:
    Patch Version: *p5_DisableDistortion_PatVer
    Patch:
      - [ load, *p5_DisableDistortion ]
  "Disable Angry Distortion Filter (100% Alert)":
    Games: *p5_Title_JP_103
    Author: *p5_Disable100PctDistortion_Author
    Notes:
    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:\n Single Combat GAP\n Expand DLC BGM IDs\n Forcibly Enable motionse.dat/acb on All Enemies\n Disable Player Swordtrack Loading\n 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, 0x006717e0, 0x3be00000 ]
    - [ be32, 0x0067195c, 0x3be00000 ]
  # Prevent "b" GAP files from loading
    - [ be32, 0x006750e4, 0x60000000 ]
    - [ be32, 0x00675100, 0x60000000 ]
    - [ be32, 0x0067510c, 0x60000000 ]
    - [ be32, 0x00675118, 0x60000000 ]
    - [ be32, 0x00675124, 0x60000000 ]
  # Prevent "b" GAP files from loading (alt)
    - [ be32, 0x00675308, 0x60000000 ]
    - [ be32, 0x00675328, 0x60000000 ]
    - [ be32, 0x00675330, 0x60000000 ]
    - [ be32, 0x0067533c, 0x60000000 ]
    - [ be32, 0x00675348, 0x60000000 ]
  # Expand DLC Outfit BGM List
  # Patch table to redirect to new one
    - [ be32, 0x0006cd00, 0x3fe000b4 ] # lis r31, 0xb4
    - [ be32, 0x0006cd0c, 0x33ff4bf8 ] # addic r31, r31, 0x4bf8
  # Patch table size to new size 0x15
    - [ be32, 0x0006cd5c, 0x2c1e0015 ] # cmpwi r30, 0x15
  # expand the table
  # Default BGM
    - [ be32, 0x00b44bf8, 0x0000ffff ]
    - [ be32, 0x00b44bfc, 0x00000000 ]
  # bgm_01
    - [ be16, 0x00b44c00, 0x0001 ]
    - [ be16, 0x00b44c02, 0x7053 ]
    - [ be16, 0x00b44c04, 0x0000 ]
    - [ be16, 0x00b44c06, 0x2290 ]
  # bgm_02
    - [ be16, 0x00b44c08, 0x0002 ]
    - [ be16, 0x00b44c0a, 0x704a ]
    - [ be16, 0x00b44c0c, 0x0000 ]
    - [ be16, 0x00b44c0e, 0x2291 ]
  # bgm_03
    - [ be16, 0x00b44c10, 0x0003 ]
    - [ be16, 0x00b44c12, 0x7065 ]
    - [ be16, 0x00b44c14, 0x0000 ]
    - [ be16, 0x00b44c16, 0x2292 ]
  # bgm_04
    - [ be16, 0x00b44c18, 0x0004 ]
    - [ be16, 0x00b44c1a, 0x705c ]
    - [ be16, 0x00b44c1c, 0x0000 ]
    - [ be16, 0x00b44c1e, 0x2293 ]
  # bgm_05
    - [ be16, 0x00b44c20, 0x0005 ]
    - [ be16, 0x00b44c22, 0x7077 ]
    - [ be16, 0x00b44c24, 0x0000 ]
    - [ be16, 0x00b44c26, 0x2294 ]
  # bgm_06
    - [ be16, 0x00b44c28, 0x0006 ]
    - [ be16, 0x00b44c2a, 0x7092 ]
    - [ be16, 0x00b44c2c, 0x0000 ]
    - [ be16, 0x00b44c2e, 0x2295 ]
  # bgm_07
    - [ be16, 0x00b44c30, 0x0007 ]
    - [ be16, 0x00b44c32, 0x709b ]
    - [ be16, 0x00b44c34, 0x0000 ]
    - [ be16, 0x00b44c36, 0x2296 ]
  # bgm_08
    - [ be16, 0x00b44c38, 0x0008 ]
    - [ be16, 0x00b44c3a, 0x70a4 ]
    - [ be16, 0x00b44c3c, 0x0000 ]
    - [ be16, 0x00b44c3e, 0x2297 ]
  # bgm_09
    - [ be16, 0x00b44c40, 0x0009 ]
    - [ be16, 0x00b44c42, 0x70ad ]
    - [ be16, 0x00b44c44, 0x0000 ]
    - [ be16, 0x00b44c46, 0x2298 ]
  # bgm_10 - Original List ends here
    - [ be16, 0x00b44c48, 0x000a ]
    - [ be16, 0x00b44c4a, 0x706e ]
    - [ be16, 0x00b44c4c, 0x0000 ]
    - [ be16, 0x00b44c4e, 0x2299 ]
  # bgm_11 - Starlight (c0001_170_00.GMD)
    - [ be16, 0x00b44c50, 0x000b ]
    - [ be16, 0x00b44c52, 0x70b6 ]
    - [ be16, 0x00b44c54, 0x0000 ]
    - [ be16, 0x00b44c56, 0x229a ]
  # bgm_12 - Midwinter (c0001_171_00.GMD)
    - [ be16, 0x00b44c58, 0x000c ]
    - [ be16, 0x00b44c5a, 0x70bf ]
    - [ be16, 0x00b44c5c, 0x0000 ]
    - [ be16, 0x00b44c5e, 0x229b ]
  # bgm_13 - Ultramarine (Velvet Room) (c0001_172_00.GMD)
    - [ be16, 0x00b44c60, 0x000d ]
    - [ be16, 0x00b44c62, 0x70c8 ]
    - [ be16, 0x00b44c64, 0x0000 ]
    - [ be16, 0x00b44c66, 0x229c ]
  # bgm_14 - Featherman (c0001_173_00.GMD)
    - [ be16, 0x00b44c68, 0x000e ]
    - [ be16, 0x00b44c6a, 0x70d1 ]
    - [ be16, 0x00b44c6c, 0x0000 ]
    - [ be16, 0x00b44c6e, 0x229d ]
  # bgm_15 - Demonica Helmet (c0001_174_00.GMD)
    - [ be16, 0x00b44c70, 0x000f ]
    - [ be16, 0x00b44c72, 0x70da ]
    - [ be16, 0x00b44c74, 0x0000 ]
    - [ be16, 0x00b44c76, 0x229e ]
  # bgm_16 - Demonica Suit (No Helmet) (c0001_175_00.GMD)
    - [ be16, 0x00b44c78, 0x0010 ]
    - [ be16, 0x00b44c7a, 0x70e3 ]
    - [ be16, 0x00b44c7c, 0x0000 ]
    - [ be16, 0x00b44c7e, 0x229f ]
  # bgm_17 - New Cinema (c0001_176_00.GMD)
    - [ be16, 0x00b44c80, 0x0011 ]
    - [ be16, 0x00b44c82, 0x70ec ]
    - [ be16, 0x00b44c84, 0x0000 ]
    - [ be16, 0x00b44c86, 0x22a0 ]
  # bgm_18 - RESERVE (Never hurts to have extras) (c0001_177_00.GMD)
    - [ be16, 0x00b44c88, 0x0012 ]
    - [ be16, 0x00b44c8a, 0x70f5 ]
    - [ be16, 0x00b44c8c, 0x0000 ]
    - [ be16, 0x00b44c8e, 0x22a1 ]
  # bgm_19 - RESERVE (c0001_178_00.GMD)
    - [ be16, 0x00b44c90, 0x0013 ]
    - [ be16, 0x00b44c92, 0x70fe ]
    - [ be16, 0x00b44c94, 0x0000 ]
    - [ be16, 0x00b44c96, 0x22a2 ]
  # bgm_20 - RESERVE (c0001_179_00.GMD)
    - [ be16, 0x00b44c98, 0x0014 ]
    - [ be16, 0x00b44c9a, 0x7107 ]
    - [ be16, 0x00b44c9c, 0x0000 ]
    - [ be16, 0x00b44c9e, 0x22a3 ]
  # Forcibly Enable motionse.dat/acb On All Enemies
    - [ be32, 0x0002d91c, 0x38600001 ] # li   param_1,0x1
    - [ be32, 0x0002d97c, 0x38600001 ] # li   param_1,0x1
    - [ be32, 0x0002d998, 0x3860ffff ] # li   param_1,-1
    - [ be32, 0x0002da04, 0x3860001e ] # li   param_1,0x1e
  # Disable Player Swordtrack Loading
    - [ be32, 0x000265cc, 0x38600000 ] # li   param_1,0x0
  # Boss Voice Stuff
    - [ be32, 0x006a87ac, 0x281c00e6 ] # cmplwi   r28,0xe6
    - [ be32, 0x006a87b0, 0x41810878 ] # bgt   LAB_006a9028

  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, 0x001cffb0, 0x48b45007 ] # bustups A
    - [ be32, 0x001d027c, 0x48b45007 ]
    - [ be32, 0x001d039c, 0x48b45007 ]
    - [ be32, 0x001cffd4, 0x48b45007 ]
    - [ be32, 0x001d02a0, 0x48b45007 ]
    - [ be32, 0x001d03c0, 0x48b45007 ]

    - [ be32, 0x00b45004, 0x38a00003 ] # li     r5,0x3
    - [ be32, 0x00b45008, 0x7c632bd2 ] # divd   r3,r3,r5
    - [ be32, 0x00b4500c, 0x4e800020 ] # blr

  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 ]
  "4K Mod Patch":
    Games: *p5_Title_US
    Author: *p5_4K_Author
    Notes: *p5_4K_Notes
    Patch Version: *p5_4K_PatVer
    Patch:
      - [ load, *p5_4K ]

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 ]
  "4K Mod Patch":
    Games: *p5_Title_EU
    Author: *p5_4K_Author
    Notes: *p5_4K_Notes
    Patch Version: *p5_4K_PatVer
    Patch:
      - [ load, *p5_4K ]

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 ]
  "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 ]

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 ]
  "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 ]