Uncharted 3: Drake's Deception: Difference between revisions

From RPCS3 Wiki
m (Remove whitespace)
Line 129: Line 129:
|read depth buffers notes              =  
|read depth buffers notes              =  
|rsx fifo accuracy                    = Atomic <!-- Fast, Atomic, Ordered & Atomic -->
|rsx fifo accuracy                    = Atomic <!-- Fast, Atomic, Ordered & Atomic -->
|rsx fifo accuracy notes              = Helps with stability.  
|rsx fifo accuracy notes              = Helps with stability.
|write depth buffers                  = <!-- On, Off -->
|write depth buffers                  = <!-- On, Off -->
|write depth buffers notes            =  
|write depth buffers notes            =  
Line 192: Line 192:
     - [ be32, 0x0093b348, 0x90e30034 ] #FPS
     - [ be32, 0x0093b348, 0x90e30034 ] #FPS
     - [ be32, 0x0093b34c, 0x90e30038 ] #Unlock
     - [ be32, 0x0093b34c, 0x90e30038 ] #Unlock
 
 
   uc3_100_mlaa: &uc3_100_mlaa
   uc3_100_mlaa: &uc3_100_mlaa
     - [ be32, 0x00635f90, 0x60000000 ] # nop byte write on 00 9c
     - [ be32, 0x00635f90, 0x60000000 ] # nop byte write on 00 9c
     - [ be16, 0x0093b46c, 0x9b83 ]    # store 0
     - [ be16, 0x0093b46c, 0x9b83 ]    # store 0
   #- [ be32, 0x00720340, 0x480009ac ] # unconditonally branch to disable MLAA
   #- [ be32, 0x00720340, 0x480009ac ] # unconditonally branch to disable MLAA
 
 
   # This patch cycles through various post-processing modes. Values accepted are:
   # This patch cycles through various post-processing modes. Values accepted are:
   #    0 = None
   #    0 = None
Line 205: Line 205:
   #    4 = Bloom & Depth of Field
   #    4 = Bloom & Depth of Field
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
 
 
   uc3_100_post: &uc3_100_post
   uc3_100_post: &uc3_100_post
     - [ be32, 0x0093acd4, 0x39000003 ] # Post-processing modes  (mem address: 0x1346D47)
     - [ be32, 0x0093acd4, 0x39000003 ] # Post-processing modes  (mem address: 0x1346D47)
 
 
   uc3_100_mesh: &uc3_100_mesh
   uc3_100_mesh: &uc3_100_mesh
     - [ be32, 0x0073f05c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12C3940)
     - [ be32, 0x0073f05c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12C3940)
 
 
   # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, // needs correction on subroutine
   # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, // needs correction on subroutine
   #    r6  = 2
   #    r6  = 2
Line 218: Line 218:
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # source register from one to the other, though some are words and some are bytes, so be careful.
   # source register from one to the other, though some are words and some are bytes, so be careful.
 
 
   uc3_100_ssao: &uc3_100_ssao
   uc3_100_ssao: &uc3_100_ssao
     - [ be32, 0x00635f8c, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x00635f8c, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x0093b3ac, 0x9b830057 ] # Disable SSAO          (mem address: 0x1346DBF)
     - [ be32, 0x0093b3ac, 0x9b830057 ] # Disable SSAO          (mem address: 0x1346DBF)
 
 
   uc3_100_dof: &uc3_100_dof
   uc3_100_dof: &uc3_100_dof
     - [ be32, 0x0093b430, 0x9b83007a ] # Disable Depth of Field (mem address: 0x1346DE2)
     - [ be32, 0x0093b430, 0x9b83007a ] # Disable Depth of Field (mem address: 0x1346DE2)
 
 
   uc3_100_speed: &uc3_100_speed
   uc3_100_speed: &uc3_100_speed
     - [ be32, 0x0093b44c, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x1346DE9)
     - [ be32, 0x0093b44c, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x1346DE9)
 
 
   uc3_100_dbv: &uc3_100_dbv
   uc3_100_dbv: &uc3_100_dbv
     - [ be32, 0x0093b6b8, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1347061)
     - [ be32, 0x0093b6b8, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1347061)
 
 
   uc3_100_dbf: &uc3_100_dbf
   uc3_100_dbf: &uc3_100_dbf
     - [ be32, 0x0093b6f8, 0x9b83031d ] # Depth border fix      (mem address: 0x1347085)
     - [ be32, 0x0093b6f8, 0x9b83031d ] # Depth border fix      (mem address: 0x1347085)
 
 
   uc3_100_db: &uc3_100_db
   uc3_100_db: &uc3_100_db
     - [ be32, 0x00635f88, 0x60000000 ] # nop byte write on 03 ec
     - [ be32, 0x00635f88, 0x60000000 ] # nop byte write on 03 ec
Line 243: Line 243:
     - [ be16, 0x0093b494, 0x9b83 ]    # store 0
     - [ be16, 0x0093b494, 0x9b83 ]    # store 0
   #- [ be32, 0x00720368, 0x480009ac ] # unconditonally branch to disable MLAA
   #- [ be32, 0x00720368, 0x480009ac ] # unconditonally branch to disable MLAA
 
 
   # This patch cycles through various post-processing modes. Values accepted are:
   # This patch cycles through various post-processing modes. Values accepted are:
   #    0 = None
   #    0 = None
Line 251: Line 251:
   #    4 = Bloom & Depth of Field
   #    4 = Bloom & Depth of Field
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
 
 
   uc3_JP_100_post: &uc3_JP_100_post
   uc3_JP_100_post: &uc3_JP_100_post
     - [ be32, 0x0093acfc, 0x39000003 ] # Post-processing modes
     - [ be32, 0x0093acfc, 0x39000003 ] # Post-processing modes
 
 
   uc3_JP_100_mesh: &uc3_JP_100_mesh
   uc3_JP_100_mesh: &uc3_JP_100_mesh
     - [ be32, 0x0073f084, 0x980b0004 ] # Disable mesh trimming
     - [ be32, 0x0073f084, 0x980b0004 ] # Disable mesh trimming
 
 
   # Many settings below are enabled/disabled in sub_93B2C0. In this subroutine,
   # Many settings below are enabled/disabled in sub_93B2C0. In this subroutine,
   #    r6  = 2
   #    r6  = 2
Line 264: Line 264:
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # source register from one to the other, though some are words and some are bytes, so be careful.
   # source register from one to the other, though some are words and some are bytes, so be careful.
 
 
   uc3_JP_100_ssao: &uc3_JP_100_ssao
   uc3_JP_100_ssao: &uc3_JP_100_ssao
     - [ be32, 0x00635fb4, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x00635fb4, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x0093b3d4, 0x9b830057 ] # Disable SSAO
     - [ be32, 0x0093b3d4, 0x9b830057 ] # Disable SSAO
 
 
   uc3_JP_100_dof: &uc3_JP_100_dof
   uc3_JP_100_dof: &uc3_JP_100_dof
     - [ be32, 0x0093b458, 0x9b83007a ] # Disable Depth of Field
     - [ be32, 0x0093b458, 0x9b83007a ] # Disable Depth of Field
 
 
   uc3_JP_100_speed: &uc3_JP_100_speed
   uc3_JP_100_speed: &uc3_JP_100_speed
     - [ be32, 0x0093b474, 0x9b830081 ] # Speedup (WCB)
     - [ be32, 0x0093b474, 0x9b830081 ] # Speedup (WCB)
 
 
   uc3_JP_100_dbv: &uc3_JP_100_dbv
   uc3_JP_100_dbv: &uc3_JP_100_dbv
     - [ be32, 0x0093b6e0, 0x9b6302f9 ] # Depth buffer viewport
     - [ be32, 0x0093b6e0, 0x9b6302f9 ] # Depth buffer viewport
 
 
   uc3_JP_100_dbf: &uc3_JP_100_dbf
   uc3_JP_100_dbf: &uc3_JP_100_dbf
     - [ be32, 0x0093b720, 0x9b83031d ] # Depth border fix
     - [ be32, 0x0093b720, 0x9b83031d ] # Depth border fix
 
 
   uc3_JP_100_db: &uc3_JP_100_db
   uc3_JP_100_db: &uc3_JP_100_db
     - [ be32, 0x00635fb0, 0x60000000 ] # nop byte write on 03 ec
     - [ be32, 0x00635fb0, 0x60000000 ] # nop byte write on 03 ec
Line 325: Line 325:
     - [ be32, 0x00728d08, 0xec630532 ]
     - [ be32, 0x00728d08, 0xec630532 ]
     - [ be32, 0x00728d0c, 0x4e800020 ]
     - [ be32, 0x00728d0c, 0x4e800020 ]
 
 
   uc3_110_mb: &uc3_110_mb
   uc3_110_mb: &uc3_110_mb
     - [ be32, 0x0077aacc, 0x480000c4 ] # Disable motion blur
     - [ be32, 0x0077aacc, 0x480000c4 ] # Disable motion blur
 
 
   # This patch cycles through various post-processing modes. Values accepted are:
   # This patch cycles through various post-processing modes. Values accepted are:
   #    0 = None
   #    0 = None
Line 336: Line 336:
   #    4 = Bloom & Depth of Field
   #    4 = Bloom & Depth of Field
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
 
 
   uc3_110_post: &uc3_110_post
   uc3_110_post: &uc3_110_post
     - [ be32, 0x0094d0b8, 0x39000003 ] # Post-processing modes  (mem address: 0x1376F77)
     - [ be32, 0x0094d0b8, 0x39000003 ] # Post-processing modes  (mem address: 0x1376F77)
 
 
   uc3_110_mesh: &uc3_110_mesh
   uc3_110_mesh: &uc3_110_mesh
     - [ be32, 0x00747b0c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12D5A70)
     - [ be32, 0x00747b0c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12D5A70)
 
 
   # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, // needs correction on subroutine
   # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, // needs correction on subroutine
   #    r6  = 2
   #    r6  = 2
Line 349: Line 349:
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # source register from one to the other, though some are words and some are bytes, so be careful.
   # source register from one to the other, though some are words and some are bytes, so be careful.
 
 
   uc3_110_ssao: &uc3_110_ssao
   uc3_110_ssao: &uc3_110_ssao
     - [ be32, 0x0063e010, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x0063e010, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x0094d790, 0x9b830057 ] # Disable SSAO          (mem address: 0x1376FEF)
     - [ be32, 0x0094d790, 0x9b830057 ] # Disable SSAO          (mem address: 0x1376FEF)
 
 
   uc3_110_dof: &uc3_110_dof
   uc3_110_dof: &uc3_110_dof
     - [ be32, 0x0094d814, 0x9b83007a ] # Disable Depth of Field (mem address: 0x1377012)
     - [ be32, 0x0094d814, 0x9b83007a ] # Disable Depth of Field (mem address: 0x1377012)
 
 
   uc3_110_speed: &uc3_110_speed
   uc3_110_speed: &uc3_110_speed
     - [ be32, 0x0094d830, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x1377019)
     - [ be32, 0x0094d830, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x1377019)
 
 
   uc3_110_dbv: &uc3_110_dbv
   uc3_110_dbv: &uc3_110_dbv
     - [ be32, 0x0094da9c, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1377291)
     - [ be32, 0x0094da9c, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1377291)
 
 
   uc3_110_dbf: &uc3_110_dbf
   uc3_110_dbf: &uc3_110_dbf
     - [ be32, 0x0094dadc, 0x9b83031d ] # Depth border fix      (mem address: 0x13772B5)
     - [ be32, 0x0094dadc, 0x9b83031d ] # Depth border fix      (mem address: 0x13772B5)
 
 
   uc3_110_db: &uc3_110_db
   uc3_110_db: &uc3_110_db
     - [ be32, 0x0063e00c, 0x60000000 ] # nop byte write on 03 ec
     - [ be32, 0x0063e00c, 0x60000000 ] # nop byte write on 03 ec
Line 373: Line 373:
     - [ be32, 0x0096e980, 0x3b6000da ] #FPS
     - [ be32, 0x0096e980, 0x3b6000da ] #FPS
     - [ be32, 0x0096e97c, 0x48000040 ] #Unlock
     - [ be32, 0x0096e97c, 0x48000040 ] #Unlock
 
 
   uc3_119_mlaa: &uc3_119_mlaa
   uc3_119_mlaa: &uc3_119_mlaa
     - [ be32, 0x0064df28, 0x60000000 ] # nop byte write on 00 9c
     - [ be32, 0x0064df28, 0x60000000 ] # nop byte write on 00 9c
Line 414: Line 414:
     - [ be32, 0x0073a234, 0xec630532 ]
     - [ be32, 0x0073a234, 0xec630532 ]
     - [ be32, 0x0073a238, 0x4e800020 ]
     - [ be32, 0x0073a238, 0x4e800020 ]
 
 
   uc3_119_mb: &uc3_119_mb
   uc3_119_mb: &uc3_119_mb
     - [ be32, 0x0078b0e4, 0x480000c4 ] # Disable motion blur
     - [ be32, 0x0078b0e4, 0x480000c4 ] # Disable motion blur
 
 
   # This patch cycles through various post-processing modes. Values accepted are:
   # This patch cycles through various post-processing modes. Values accepted are:
   #    0 = None
   #    0 = None
Line 425: Line 425:
   #    4 = Bloom & Depth of Field
   #    4 = Bloom & Depth of Field
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
   #    5 = Bloom & Depth of Field & Tonemapping (Default)
 
 
   uc3_119_post: &uc3_119_post
   uc3_119_post: &uc3_119_post
     - [ be32, 0x0096e308, 0x39000003 ] # Post-processing modes  (mem address: 0x1386547)
     - [ be32, 0x0096e308, 0x39000003 ] # Post-processing modes  (mem address: 0x1386547)
 
 
   uc3_119_mesh: &uc3_119_mesh
   uc3_119_mesh: &uc3_119_mesh
     - [ be32, 0x0075811c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12E0DF0)
     - [ be32, 0x0075811c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12E0DF0)
 
 
   # Many settings below are enabled/disabled in sub_96E8CC. In this subroutine,
   # Many settings below are enabled/disabled in sub_96E8CC. In this subroutine,
   #    r6  = 2
   #    r6  = 2
Line 438: Line 438:
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
   # source register from one to the other, though some are words and some are bytes, so be careful.
   # source register from one to the other, though some are words and some are bytes, so be careful.
 
 
   uc3_119_ssao: &uc3_119_ssao
   uc3_119_ssao: &uc3_119_ssao
     - [ be32, 0x0064df24, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x0064df24, 0x60000000 ] # nop byte write on 00 57
     - [ be32, 0x0096e9e0, 0x9b830057 ] # Disable SSAO          (mem address: 0x13865BF)
     - [ be32, 0x0096e9e0, 0x9b830057 ] # Disable SSAO          (mem address: 0x13865BF)
 
 
   uc3_119_dof: &uc3_119_dof
   uc3_119_dof: &uc3_119_dof
     - [ be32, 0x0096ea64, 0x9b83007a ] # Disable Depth of Field (mem address: 0x13865E2)
     - [ be32, 0x0096ea64, 0x9b83007a ] # Disable Depth of Field (mem address: 0x13865E2)
 
 
   uc3_119_speed: &uc3_119_speed
   uc3_119_speed: &uc3_119_speed
     - [ be32, 0x0096ea80, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x13865E9)
     - [ be32, 0x0096ea80, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x13865E9)
 
 
   uc3_119_dbv: &uc3_119_dbv
   uc3_119_dbv: &uc3_119_dbv
     - [ be32, 0x0096ecec, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1386861)
     - [ be32, 0x0096ecec, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1386861)
 
 
   uc3_119_dbf: &uc3_119_dbf
   uc3_119_dbf: &uc3_119_dbf
     - [ be32, 0x0096ed2c, 0x9b83031d ] # Depth border fix      (mem address: 0x1386885)
     - [ be32, 0x0096ed2c, 0x9b83031d ] # Depth border fix      (mem address: 0x1386885)
 
 
   uc3_119_db: &uc3_119_db
   uc3_119_db: &uc3_119_db
     - [ be32, 0x0064df20, 0x60000000 ] # nop byte write on 03 ec
     - [ be32, 0x0064df20, 0x60000000 ] # nop byte write on 03 ec
Line 594: Line 594:
     - [ be64, 0x00da0538, 0x446561746820436F ]
     - [ be64, 0x00da0538, 0x446561746820436F ]
     - [ be64, 0x00da053f, 0x6C6C6973696F6E00 ]
     - [ be64, 0x00da053f, 0x6C6C6973696F6E00 ]
   # Disallow Npcs from Spawning
   # Disallow Npcs from Spawning
     - [ be64, 0x00da0548, 0x446973616C6C6F77 ]
     - [ be64, 0x00da0548, 0x446973616C6C6F77 ]
     - [ be64, 0x00da0550, 0x204E706373206672 ]
     - [ be64, 0x00da0550, 0x204E706373206672 ]
Line 603: Line 603:
     - [ be64, 0x00da0578, 0x756C6E657261626C ]
     - [ be64, 0x00da0578, 0x756C6E657261626C ]
     - [ be16, 0x00da0580, 0x6500 ]
     - [ be16, 0x00da0580, 0x6500 ]
   # Enable Death Zone
   # Enable Death Zone
     - [ be64, 0x00da0590, 0x456E61626C652044 ]
     - [ be64, 0x00da0590, 0x456E61626C652044 ]
     - [ be64, 0x00da0598, 0x65617468205A6F6E ]
     - [ be64, 0x00da0598, 0x65617468205A6F6E ]

Revision as of 12:09, 24 January 2023

Uncharted 3: Drake's Deception
UC3 Cover.jpg
Developer(s) Naughty Dog
Publisher(s) Sony Computer Entertainment
Series Uncharted
Release date(s) NA November 1, 2011
EU November 2, 2011
AU November 3, 2011
Release type PlayStation exclusive
Genre(s) Action, Adventure, Third-person shooter, Platform
Mode(s) Single-player, Multiplayer
GameID(s) BCES01175 (IRD), BCES01176 (IRD), BCUS98233 (IRD), BCAS25009 (IRD), BCJS37004 (IRD)
Game of the Year Edition
BCES01670 (IRD), BCES01692 (IRD), BCUS99086 (IRD), BCAS25014 (IRD)
Beta
BCET70034, NPUA70153, NPUA70180
Free To Play
NPEA00422, NPUA80858
Quick links Check Compatibility
Open Issues
Search Google
Wikipedia Page

Uncharted 3: Drake's Deception is the third game in the Uncharted series, and follows Nathan Drake, who partners with his mentor Victor Sullivan as they search for the legendary lost city of Iram of the Pillars, whilst competing with a mercenary group led by Sullivan's former employer, Katherine Marlowe.

Drake has a large number of different animation sets, enabling him to react according to his surroundings. Drake is physically adept and is able to jump, sprint, climb, swim, scale narrow ledges and wall-faces to get between points, and perform other acrobatic actions. Drake can now take on opponents in more ways than before: hand-to-hand combat with multiple opponents, contextual melee attacks, and new stealth options. Uncharted 3 also features expanded and diverse traversal moves with deep gunplay. Drake can be equipped with up to two firearms – one single-handed and one two-handed – and four grenades. Drake can pick up weapons, automatically replacing the existing weapon he was using, and additional ammunition from downed enemies.

Uncharted 3: Drake's Deception received critical acclaim from critics, with praise for its voice acting, graphics, writing, story, and cinematic quality; criticism was directed at its gunplay controls, which was improved with a post-release update, and failure to live up to its more critically successful predecessor.

Configuration

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

GPU configuration

Setting Option Notes
Resolution scale 100 Resolution scaling is only supported when the MLAA patch is enabled.
Write color buffers On Fixes brightness in some scenes.

Advanced configuration

Setting Option Notes
Accurate RSX reservation access On To be enabled on systems that do not have TSX.
Read color buffers On Fixes black screen if playing unpatched.
RSX FIFO accuracy Atomic Helps with stability.

Known Issues

• Random occurring crashes/freezes can happen on weaker hardware. Just restart the game and keep playing.

• Game only renders button prompts and the loading screen spinning ring resulting in black screen unless patches or RCB are enabled.

• Blur may occur in certain acts (example act 9 on the spinning globe) where Relaxed Zcull has been acknowledged to fix this on some hardware.

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.19 Yes No No No Requires Custom server. Online servers were taken down in 2019.

Patches

Anchors:
  uc3_100_FPS: &uc3_100_FPS
    - [ be32, 0x0093b348, 0x90e30034 ] #FPS
    - [ be32, 0x0093b34c, 0x90e30038 ] #Unlock

  uc3_100_mlaa: &uc3_100_mlaa
    - [ be32, 0x00635f90, 0x60000000 ] # nop byte write on 00 9c
    - [ be16, 0x0093b46c, 0x9b83 ]     # store 0
   #- [ be32, 0x00720340, 0x480009ac ] # unconditonally branch to disable MLAA

  # This patch cycles through various post-processing modes. Values accepted are:
  #    0 = None
  #    1 = Bloom
  #    2 = Depth of Field
  #    3 = ??? (Tonemapping)
  #    4 = Bloom & Depth of Field
  #    5 = Bloom & Depth of Field & Tonemapping (Default)

  uc3_100_post: &uc3_100_post
    - [ be32, 0x0093acd4, 0x39000003 ] # Post-processing modes  (mem address: 0x1346D47)

  uc3_100_mesh: &uc3_100_mesh
    - [ be32, 0x0073f05c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12C3940)

  # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, // needs correction on subroutine
  #    r6  = 2
  #    r27 = 1
  #    r28 = 0
  # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
  # source register from one to the other, though some are words and some are bytes, so be careful.

  uc3_100_ssao: &uc3_100_ssao
    - [ be32, 0x00635f8c, 0x60000000 ] # nop byte write on 00 57
    - [ be32, 0x0093b3ac, 0x9b830057 ] # Disable SSAO           (mem address: 0x1346DBF)

  uc3_100_dof: &uc3_100_dof
    - [ be32, 0x0093b430, 0x9b83007a ] # Disable Depth of Field (mem address: 0x1346DE2)

  uc3_100_speed: &uc3_100_speed
    - [ be32, 0x0093b44c, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x1346DE9)

  uc3_100_dbv: &uc3_100_dbv
    - [ be32, 0x0093b6b8, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1347061)

  uc3_100_dbf: &uc3_100_dbf
    - [ be32, 0x0093b6f8, 0x9b83031d ] # Depth border fix       (mem address: 0x1347085)

  uc3_100_db: &uc3_100_db
    - [ be32, 0x00635f88, 0x60000000 ] # nop byte write on 03 ec
    - [ be32, 0x0093b704, 0x90e303ec ] # Depth buffer           (mem address: 0x1347157)

  uc3_JP_100_mlaa: &uc3_JP_100_mlaa
    - [ be32, 0x00635fb8, 0x60000000 ] # nop byte write on 00 9c
    - [ be16, 0x0093b494, 0x9b83 ]     # store 0
   #- [ be32, 0x00720368, 0x480009ac ] # unconditonally branch to disable MLAA

  # This patch cycles through various post-processing modes. Values accepted are:
  #    0 = None
  #    1 = Bloom
  #    2 = Depth of Field
  #    3 = ??? (Tonemapping)
  #    4 = Bloom & Depth of Field
  #    5 = Bloom & Depth of Field & Tonemapping (Default)

  uc3_JP_100_post: &uc3_JP_100_post
    - [ be32, 0x0093acfc, 0x39000003 ] # Post-processing modes

  uc3_JP_100_mesh: &uc3_JP_100_mesh
    - [ be32, 0x0073f084, 0x980b0004 ] # Disable mesh trimming

  # Many settings below are enabled/disabled in sub_93B2C0. In this subroutine,
  #    r6  = 2
  #    r27 = 1
  #    r28 = 0
  # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
  # source register from one to the other, though some are words and some are bytes, so be careful.

  uc3_JP_100_ssao: &uc3_JP_100_ssao
    - [ be32, 0x00635fb4, 0x60000000 ] # nop byte write on 00 57
    - [ be32, 0x0093b3d4, 0x9b830057 ] # Disable SSAO

  uc3_JP_100_dof: &uc3_JP_100_dof
    - [ be32, 0x0093b458, 0x9b83007a ] # Disable Depth of Field

  uc3_JP_100_speed: &uc3_JP_100_speed
    - [ be32, 0x0093b474, 0x9b830081 ] # Speedup (WCB)

  uc3_JP_100_dbv: &uc3_JP_100_dbv
    - [ be32, 0x0093b6e0, 0x9b6302f9 ] # Depth buffer viewport

  uc3_JP_100_dbf: &uc3_JP_100_dbf
    - [ be32, 0x0093b720, 0x9b83031d ] # Depth border fix

  uc3_JP_100_db: &uc3_JP_100_db
    - [ be32, 0x00635fb0, 0x60000000 ] # nop byte write on 03 ec
    - [ be32, 0x0093b72c, 0x90e303ec ] # Depth buffer = 2

  uc3_110_mlaa: &uc3_110_mlaa
    - [ be32, 0x0063e014, 0x60000000 ] # nop byte write on 00 9c
    - [ be16, 0x0094d850, 0x9b83 ]     # store 0
    #- [ be32, 0x00728cac, 0x480009ac ] # unconditonally branch to disable MLAA
    # Beginning of new blooom code
    - [ be16, 0x0077bd92, 0xfd40 ]
    - [ byte, 0x0077bdb7, 0xb0 ]
    - [ byte, 0x0077be4b, 0xb0 ]
    - [ be32, 0x0077bdb0, 0x4bfacf01 ]
    - [ be32, 0x00728cb0, 0xc1a907d4 ]
    - [ be32, 0x00728cb4, 0x808907d8 ]
    # Desert storm
    - [ be32, 0x00728cb8, 0x80beacb4 ]
    - [ be32, 0x00728cbc, 0x7f842800 ]
    - [ be32, 0x00728cc0, 0x409d0030 ]
    # Deflicker check
    - [ be32, 0x00728cc4, 0x80be3e6c ]
    - [ be32, 0x00728cc8, 0x7f842800 ]
    - [ be32, 0x00728ccc, 0x409d0018 ]
    # Yemen: Talbot chase
    - [ be32, 0x00728cd0, 0x80be1144 ]
    - [ be32, 0x00728cd4, 0x7f842800 ]
    - [ be32, 0x00728cd8, 0x409d0018 ]
    # Talbot multiplier 0.5
    - [ be32, 0x00728cdc, 0x38a00068 ]
    - [ be32, 0x00728ce0, 0x48000008 ]
    # Desert storm multiplier 0.04
    - [ be32, 0x00728ce4, 0x38a0edc8 ]
    # Value correction
    - [ be32, 0x00728ce8, 0x7d85f42e ]
    - [ be32, 0x00728cec, 0xedad0332 ]
    - [ be32, 0x00728cf0, 0x4e800020 ]
    # Yemen temple Dof Correction
    - [ be32, 0x0077b864, 0x4bfad491 ]
    - [ be32, 0x00728cf4, 0xc07d08dc ]
    - [ be32, 0x00728cf8, 0x801d07e8 ]
    - [ be32, 0x00728d00, 0x409c000c ]
    - [ be32, 0x00728d04, 0xc29e0068 ]
    - [ be32, 0x00728d08, 0xec630532 ]
    - [ be32, 0x00728d0c, 0x4e800020 ]

  uc3_110_mb: &uc3_110_mb
    - [ be32, 0x0077aacc, 0x480000c4 ] # Disable motion blur

  # This patch cycles through various post-processing modes. Values accepted are:
  #    0 = None
  #    1 = Bloom
  #    2 = Depth of Field
  #    3 = ??? (Tonemapping)
  #    4 = Bloom & Depth of Field
  #    5 = Bloom & Depth of Field & Tonemapping (Default)

  uc3_110_post: &uc3_110_post
    - [ be32, 0x0094d0b8, 0x39000003 ] # Post-processing modes  (mem address: 0x1376F77)

  uc3_110_mesh: &uc3_110_mesh
    - [ be32, 0x00747b0c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12D5A70)

  # Many settings below are enabled/disabled in sub_AA9E6C. In this subroutine, // needs correction on subroutine
  #    r6  = 2
  #    r27 = 1
  #    r28 = 0
  # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
  # source register from one to the other, though some are words and some are bytes, so be careful.

  uc3_110_ssao: &uc3_110_ssao
    - [ be32, 0x0063e010, 0x60000000 ] # nop byte write on 00 57
    - [ be32, 0x0094d790, 0x9b830057 ] # Disable SSAO           (mem address: 0x1376FEF)

  uc3_110_dof: &uc3_110_dof
    - [ be32, 0x0094d814, 0x9b83007a ] # Disable Depth of Field (mem address: 0x1377012)

  uc3_110_speed: &uc3_110_speed
    - [ be32, 0x0094d830, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x1377019)

  uc3_110_dbv: &uc3_110_dbv
    - [ be32, 0x0094da9c, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1377291)

  uc3_110_dbf: &uc3_110_dbf
    - [ be32, 0x0094dadc, 0x9b83031d ] # Depth border fix       (mem address: 0x13772B5)

  uc3_110_db: &uc3_110_db
    - [ be32, 0x0063e00c, 0x60000000 ] # nop byte write on 03 ec
    - [ be32, 0x0094dae8, 0x90e303ec ] # Depth buffer = 2       (mem address: 0x1377387)

  uc3_119_FPS: &uc3_119_FPS
    - [ be32, 0x0096e980, 0x3b6000da ] #FPS
    - [ be32, 0x0096e97c, 0x48000040 ] #Unlock

  uc3_119_mlaa: &uc3_119_mlaa
    - [ be32, 0x0064df28, 0x60000000 ] # nop byte write on 00 9c
    - [ be16, 0x0096eaa0, 0x9b83 ]     # store 0
    #- [ be32, 0x0073a1d8, 0x480009ac ] # unconditonally branch to disable MLAA
    # Beginning of new blooom code
    - [ be16, 0x0078c3aa, 0x1530 ]
    - [ byte, 0x0078c3cf, 0xb0 ]
    - [ byte, 0x0078c463, 0xb0 ]
    - [ be32, 0x0078c3c8, 0x4bfade15 ]
    - [ be32, 0x0073a1dc, 0xc1a907d4 ]
    - [ be32, 0x0073a1e0, 0x808907d8 ]
    # Desert storm
    - [ be32, 0x0073a1e4, 0x80beacec ]
    - [ be32, 0x0073a1e8, 0x7f842800 ]
    - [ be32, 0x0073a1ec, 0x409d0030 ]
    # Deflicker check
    - [ be32, 0x0073a1f0, 0x80be5774 ]
    - [ be32, 0x0073a1f4, 0x7f842800 ]
    - [ be32, 0x0073a1f8, 0x409d0018 ]
    # Yemen: Talbot chase
    - [ be32, 0x0073a1fc, 0x80be2a34 ]
    - [ be32, 0x0073a200, 0x7f842800 ]
    - [ be32, 0x0073a204, 0x409d0018 ]
    # Talbot multiplier 0.5
    - [ be32, 0x0073a208, 0x38a015f4 ]
    - [ be32, 0x0073a20c, 0x48000008 ]
    # Desert storm multiplier 0.04
    - [ be32, 0x0073a210, 0x38a01474 ]
    # Value correction
    - [ be32, 0x0073a214, 0x7d85f42e ]
    - [ be32, 0x0073a218, 0xedad0332 ]
    - [ be32, 0x0073a21c, 0x4e800020 ]
    # Yemen temple Dof Correction
    - [ be32, 0x0078be7c, 0x4bfae3a5 ]
    - [ be32, 0x0073a220, 0xc07d08dc ]
    - [ be32, 0x0073a224, 0x801d07e8 ]
    - [ be32, 0x0073a22c, 0x409c000c ]
    - [ be32, 0x0073a230, 0xc29e2998 ]
    - [ be32, 0x0073a234, 0xec630532 ]
    - [ be32, 0x0073a238, 0x4e800020 ]

  uc3_119_mb: &uc3_119_mb
    - [ be32, 0x0078b0e4, 0x480000c4 ] # Disable motion blur

  # This patch cycles through various post-processing modes. Values accepted are:
  #    0 = None
  #    1 = Bloom
  #    2 = Depth of Field
  #    3 = ??? (Tonemapping)
  #    4 = Bloom & Depth of Field
  #    5 = Bloom & Depth of Field & Tonemapping (Default)

  uc3_119_post: &uc3_119_post
    - [ be32, 0x0096e308, 0x39000003 ] # Post-processing modes  (mem address: 0x1386547)

  uc3_119_mesh: &uc3_119_mesh
    - [ be32, 0x0075811c, 0x980b0004 ] # Disable mesh trimming  (mem address: 0x12E0DF0)

  # Many settings below are enabled/disabled in sub_96E8CC. In this subroutine,
  #    r6  = 2
  #    r27 = 1
  #    r28 = 0
  # and these are stored into some memory blob to represent settings. Most values can be switched by just changing the
  # source register from one to the other, though some are words and some are bytes, so be careful.

  uc3_119_ssao: &uc3_119_ssao
    - [ be32, 0x0064df24, 0x60000000 ] # nop byte write on 00 57
    - [ be32, 0x0096e9e0, 0x9b830057 ] # Disable SSAO           (mem address: 0x13865BF)

  uc3_119_dof: &uc3_119_dof
    - [ be32, 0x0096ea64, 0x9b83007a ] # Disable Depth of Field (mem address: 0x13865E2)

  uc3_119_speed: &uc3_119_speed
    - [ be32, 0x0096ea80, 0x9b830081 ] # Speedup (WCB)          (mem address: 0x13865E9)

  uc3_119_dbv: &uc3_119_dbv
    - [ be32, 0x0096ecec, 0x9b6302f9 ] # Depth buffer viewport  (mem address: 0x1386861)

  uc3_119_dbf: &uc3_119_dbf
    - [ be32, 0x0096ed2c, 0x9b83031d ] # Depth border fix       (mem address: 0x1386885)

  uc3_119_db: &uc3_119_db
    - [ be32, 0x0064df20, 0x60000000 ] # nop byte write on 03 ec
    - [ be32, 0x0096ed38, 0x90e303ec ] # Depth buffer = 2       (mem address: 0x1386957)

  uc3_119_devmenu: &uc3_119_devmenu
    - [ be16, 0x00042814, 0x419e ]
    - [ byte, 0x00042837, 0x1 ]
    - [ be32, 0x0083028c, 0x60000000 ] #Don't pause on Select button
    - [ be32, 0x0095b720, 0x60000000 ] #Remove "!" model render
    - [ utf8, 0x010d8cf0, "galil-rifle            " ]
    - [ utf8, 0x010d8d08, "NO_ART_GROUP           " ]
    - [ utf8, 0x010d8d20, "uber-pistol            " ]
    - [ utf8, 0x010d8d38, "dig-explosive-pack     " ]
    - [ utf8, 0x010d8d50, "shotgun-sawedoff       " ]
    - [ utf8, 0x010d8d68, "m32-grenade-launcher   " ]
    - [ utf8, 0x010d8d80, "baseball-grenade       " ]
    - [ utf8, 0x010d8d98, "t62-tank-mg-turret     " ]
    - [ utf8, 0x010d8db0, "spas12-shotgun         " ]
    - [ utf8, 0x010d8dc8, "baseball-grenade       " ]
    - [ utf8, 0x010d8de0, "m32-grenade-launcher   " ]
    - [ utf8, 0x010d8df8, "semi-auto-rifle        " ]
    - [ utf8, 0x010d8e10, "baseball-grenade       " ]
    - [ utf8, 0x010d8e28, "shade-weapon           " ]
    - [ utf8, 0x010d8e40, "statue-puzzle-torch    " ]
    - [ utf8, 0x010d8e58, "temple-cistern-map-2   " ]
    - [ utf8, 0x010d8e70, "shade-weapon           " ]
    - [ utf8, 0x010d8e88, "beretta-silenced       " ]
    - [ utf8, 0x010d8ea0, "chloe-pistol           " ]
    - [ utf8, 0x010d8eb8, "baseball-grenade       " ]
    - [ utf8, 0x010d8ed0, "shotgun-pistol         " ]
    - [ utf8, 0x010d8ee8, "p99-pistol             " ]
    - [ utf8, 0x010d8f00, "temple-cistern-map     " ]
    - [ utf8, 0x010d8f18, "tkiv-sniper-rifle      " ]
    - [ utf8, 0x010d8f30, "stun-grenade           " ]
    - [ utf8, 0x010d8f48, "rpg                    " ]
    - [ utf8, 0x010d8f60, "ak-74-a                " ]
    - [ utf8, 0x010d8f78, "walther-p5             " ]
    - [ utf8, 0x010d8f90, "pkm-rifle              " ]
    - [ utf8, 0x010d8fa8, "heavy-gau19            " ]
    - [ utf8, 0x010d8fc0, "pirate-shield          " ]
    - [ utf8, 0x010d8fd8, "baseball-grenade       " ]
    - [ utf8, 0x010d8ff0, "dragunov-rifle         " ]
    - [ utf8, 0x010d9008, "NO_ART_GROUP           " ]
    - [ utf8, 0x010d9020, "NO_ART_GROUP           " ]
    - [ utf8, 0x010d9038, "sw629-revolver         " ]
    - [ utf8, 0x010d9050, "NO_ART_GROUP           " ]
    - [ utf8, 0x010d9068, "colt-defender-pistol   " ]
    - [ utf8, 0x010d9080, "ak-74-b                " ]
    - [ utf8, 0x010d9098, "sight-scope            " ]
    - [ utf8, 0x010d90b0, "t62-tank-mg-turret     " ]
    - [ utf8, 0x010d90c8, "shade-weapon           " ]
    - [ utf8, 0x010d90e0, "yt-cistern-map-rolled  " ]
    - [ utf8, 0x010d90f8, "machine-gun            " ]
    - [ utf8, 0x010d9110, "fn-fal-rifle           " ]
    - [ utf8, 0x010d9128, "hk416                  " ]
    - [ utf8, 0x010d9140, "mpa930                 " ]
    - [ utf8, 0x010d9158, "taurus-sniper-pistol   " ]
    - [ utf8, 0x010d9170, "beretta-burst-pistol   " ]
    - [ utf8, 0x010d9188, "NO_ART_GROUP           " ]
    - [ utf8, 0x010d91a0, "riot-shield-hvk        " ]
    - [ utf8, 0x010d91b8, "baseball-grenade       " ]
    - [ utf8, 0x010d91d0, "rpg_rocket             " ]
    - [ utf8, 0x010d91e8, "t62-tank-mg-turret     " ]
    - [ utf8, 0x010d9200, "t62-tank-mg-turret     " ]
    - [ utf8, 0x010d9218, "grenade-pistol         " ]
    - [ utf8, 0x010d9230, "t62-tank-mg-turret     " ]
    - [ utf8, 0x010d9248, "t62-tank-mg-turret     " ]
    - [ be32, 0x004de820, 0x39ce0018 ] #    addi       r14,r14,0x18
    - [ be32, 0x004de828, 0x488e3b21 ] #    bl         SUB_00dc2348
    - [ be32, 0x00dc2348, 0x3de0010d ] #    lis        r15,0x10d
    - [ be32, 0x00dc234c, 0x61ef8cd8 ] #    ori        r15,r15,0x8cd8
    - [ be32, 0x00dc2350, 0x7c8f7214 ] #    add        r4,r15,r14
    - [ be32, 0x00dc2354, 0x4e800020 ] #    blr
    # taskmgr
    # active task
    # text
    - [ be32, 0x00a082c8, 0x484001e0 ]
    - [ be32, 0x00e084a8, 0x3c60011d ]
    - [ be32, 0x00e084ac, 0x6063f410 ]
    - [ be32, 0x00e084b0, 0x4bbffe1c ]
    # drawing
    # todo: link with active task bool
    - [ be32, 0x00737ed0, 0x486d05f4 ]
    - [ be32, 0x00e084c4, 0x3ca0013b ]
    - [ be32, 0x00e084c8, 0x60a5e594 ]
    - [ be32, 0x00e084cc, 0x8bc50000 ]
    - [ be32, 0x00e084d0, 0x2f9e0001 ]
    - [ be32, 0x00e084d4, 0x419e003c ]
    - [ be32, 0x00e084d8, 0x3ca0011d ]
    - [ be32, 0x00e084dc, 0x60a5f3f8 ]
    - [ be32, 0x00e084e0, 0x7fdef278 ]
    - [ be32, 0x00e084e4, 0x3fc04248 ]
    - [ be32, 0x00e084e8, 0x93c50000 ]
    - [ be32, 0x00e084ec, 0x3fc04422 ]
    - [ be32, 0x00e084f0, 0x63de8000 ]
    - [ be32, 0x00e084f4, 0x93c50004 ]
    - [ be32, 0x00e084f8, 0xc0250000 ]
    - [ be32, 0x00e084fc, 0xc0450004 ]
    - [ be32, 0x00e08500, 0x38a0ffff ]
    - [ be32, 0x00e08504, 0x3cc0011d ]
    - [ be32, 0x00e08508, 0x60c6f410 ]
    - [ be32, 0x00e0850c, 0x4bb9de3d ]
    - [ be32, 0x00e08510, 0x4b92f9c4 ]

  uc3_119_devplus: &uc3_119_devplus
    - [ be16, 0x00d9ea48, 0x202b ] # _+
    - [ be32, 0x0112cb94, 0x01381D1E ] # base ptr
    - [ be32, 0x0112cb90, 0x00df5880 ] # str
    - [ be32, 0x0002f4c0, 0x38dc009f ] # vis
    - [ be32, 0x0112cb98, 0x00df5610 ] # str
    - [ be32, 0x0002f500, 0x38dc4acb ] # wireframe
    - [ be32, 0x0112cb9c, 0x00df5628 ] # str
    - [ be32, 0x0002f53c, 0x38dc4acc ] # see through
    - [ be32, 0x0112cba0, 0x00df5648 ] # str
    - [ be32, 0x0002f578, 0x38dc4acd ] # point
    - [ be32, 0x0112cba4, 0x00df7308 ] # str
    - [ be32, 0x0002f5b4, 0x38dc48e6 ] # post on spu
    - [ be32, 0x0112cba8, 0x00df6cf0 ] # str
    - [ be32, 0x0002f5f0, 0x38dc48c4 ] # dof
    - [ be32, 0x0112cbac, 0x00df6ed8 ] # str
    - [ be32, 0x0002f62c, 0x38dc48c1 ] # mb // overwrites itself
    - [ be32, 0x0112cbb0, 0x00da05c0 ] # str
    - [ be32, 0x0002f668, 0x38dc48f1 ] # red wireframe
    - [ be32, 0x0112cbb4, 0x00da05a8 ] # str
    - [ be32, 0x0002f6a4, 0x38dc48be ] # wireframe ball
    - [ be32, 0x0112cc74, 0x00da0590 ] # str
    - [ be32, 0x0112cc78, 0x011D0F90 ] # ptr show vox to Disable Death Zone
    - [ be32, 0x0112cc7c, 0x00da0530 ] # str
    - [ be32, 0x0112cc80, 0x0137F441 ] # ptr "Log Vox To SPU TTY" to Disable Death Collision
    - [ be32, 0x0112cc84, 0x00da0548 ] # str
    - [ be32, 0x0112cc88, 0x0120C5C0 ] # ptr "Include Rejected Vox" to Disable NPC Spawn
    - [ be32, 0x0112cc8c, 0x00da0570 ] # str
    - [ be32, 0x0112cc90, 0x01343F95 ] # ptr "Log Vox Lookups to TTY" to Make Invulnerable
    - [ be32, 0x0112cc64, 0x01343F84 ] # ptr
    - [ be32, 0x0112cc68, 0x00da05e0 ]
  # Disable Death Collision
    - [ be64, 0x00da0530, 0x44697361626C6520 ]
    - [ be64, 0x00da0538, 0x446561746820436F ]
    - [ be64, 0x00da053f, 0x6C6C6973696F6E00 ]
  # Disallow Npcs from Spawning
    - [ be64, 0x00da0548, 0x446973616C6C6F77 ]
    - [ be64, 0x00da0550, 0x204E706373206672 ]
    - [ be64, 0x00da0558, 0x6F6D20537061776E ]
    - [ be32, 0x00da0560, 0x696E6700 ]
  # Make Invulnerable
    - [ be64, 0x00da0570, 0x4D616B6520496E76 ]
    - [ be64, 0x00da0578, 0x756C6E657261626C ]
    - [ be16, 0x00da0580, 0x6500 ]
  # Enable Death Zone
    - [ be64, 0x00da0590, 0x456E61626C652044 ]
    - [ be64, 0x00da0598, 0x65617468205A6F6E ]
    - [ be16, 0x00da05a0, 0x6500 ]
  # Enable Wireframe Balls
    - [ be64, 0x00da05a8, 0x456E61626C652057 ]
    - [ be64, 0x00da05b0, 0x6972656672616D65 ]
    - [ be64, 0x00da05b8, 0x2042616C6C730000 ]
  # Enable Red Wireframe
    - [ be64, 0x00da05c0, 0x456E61626C652052 ]
    - [ be64, 0x00da05c8, 0x6564205769726566 ]
    - [ be32, 0x00da05d0, 0x72616D65 ]
  # NPC Model Scale
    - [ be64, 0x00da05e0, 0x4E5043204D6F6465 ]
    - [ be64, 0x00da05e8, 0x6C205363616C6500 ]

  uc3_119_lanmode: &uc3_119_lanmode
    - [ be32, 0x00a6308c, 0x48371e19 ]
    - [ be64, 0x00dd4d58, 0x000009298aab4a4b ]
    - [ be32, 0x00dd4ea4, 0x81c90320 ]
    - [ be32, 0x00dd4ea8, 0x2c8e0000 ]
    - [ be32, 0x00dd4eac, 0x4086002c ]
    - [ be32, 0x00dd4eb0, 0x3e0000dd ]
    - [ be32, 0x00dd4eb4, 0x62104d58 ]
    - [ be32, 0x00dd4eb8, 0x3de0011e ]
    - [ be32, 0x00dd4ebc, 0x61ef3ba4 ]
    - [ be32, 0x00dd4ec0, 0xea300000 ]
    - [ be32, 0x00dd4ec4, 0x1e510008 ]
    - [ be32, 0x00dd4ec8, 0xfa4f0000 ]
    - [ be32, 0x00dd4ecc, 0x3a800001 ]
    - [ be32, 0x00dd4ed0, 0x92890320 ]
    - [ be32, 0x00dd4ed4, 0x9aaf0008 ]
    - [ be32, 0x00dd4ed8, 0xea6f0000 ]
    - [ be32, 0x00dd4edc, 0x7eb29800 ]
    - [ be32, 0x00dd4ee0, 0x4196000c ]
    - [ be32, 0x00dd4ee4, 0x4bf993c5 ]
    - [ be32, 0x00dd4ee8, 0x92840000 ]
    - [ be32, 0x00dd4eec, 0x88090078 ]
    - [ be32, 0x00dd4ef0, 0x4e800020 ]

  debugmenunotesUC3: &debugmenunotesUC3 "L3 + Start = Dev Menu\nL3 + Select = Quick Menu\nL3 + Triangle = Debug Text\nL2 + R2 = Debug Fly"

  uc3mlaanotes: &uc3mlaanotes "Allows for the use of Resolution Scaling in the title and also improves performance.\nVersion 2.0 Fixes high levels of Bloom in some areas. (1.10 and 1.19 Only)"

  uc3gpulightingnotes: &uc3gpulightingnotes "Uses GPU (RSX) path for lighting effects instead of SPU.\nFixes rendering of lightning effects that are being rendered broken via SPU path and greatly improves performance over it.\nThis path is incomplete and results in some missing effects such as Volumetric lighting."

  uc3camshakenotes: &uc3camshakenotes "Last modified: 1 Mar 2021\n\nDisables Camera Shake during Gameplay.\nIn-Game-Cinematics remain is unaffected."

  uc3_119title: &uc3_119title
      "Uncharted 3: Drake's Deception":
        BCES01175: [ 01.19 ]
        BCES01176: [ 01.19 ]
        BCES01670: [ 01.19 ]
        BCES01692: [ 01.19 ]
        BCUS98233: [ 01.19 ]
        BCJS37004: [ 02.17 ]
        NPEA00422: [ 01.19 ]
        NPUA80858: [ 01.19 ]
        BCUS99086: [ 01.19 ]
        BCAS25014: [ 01.19 ]

  uc3_110title: &uc3_110title
      "Uncharted 3: Drake's Deception":
        BCES01670: [ 01.10 ]
        BCAS25014: [ 01.10 ]

  uc3_100title: &uc3_100title
      "Uncharted 3: Drake's Deception":
        BCES01175: [ 01.00 ]
        BCES01176: [ 01.00 ]
        BCES01692: [ 01.00 ]
        BCUS98233: [ 01.00 ]

PPU-49c96996b6f3c0b32422375978c41e0c7ed95183:
  Unlock FPS:
    Games: *uc3_100title
    Author: superepic31
    Notes: Haven't tested how this affects cutscenes.
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_FPS ]
  Disable in-built MLAA:
    Games: *uc3_100title
    Author: Whatcookie
    Notes: *uc3mlaanotes
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_mlaa ]
  Post-processing Modes:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_post ]
  Disable Mesh Trimming:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_mesh ]
  Disable SSAO:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_ssao ]
  Disable Depth of Field:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_dof ]
  Performance (WCB):
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: Enable this patch if you are using "Write Color Buffers" to restore performance.
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_speed ]
  Depth Buffer Viewport:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_dbv ]
  Depth Border Fix:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_dbf ]
  Enable GPU Lighting:
    Games: *uc3_100title
    Author: ZEROx, illusion
    Notes: *uc3gpulightingnotes
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_100_db ]
  Disable Camera Shake:
    Games: *uc3_100title
    Author: illusion
    Notes: *uc3camshakenotes
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00806c88, 0x3800 ]
  Debug Menu:
    Games: *uc3_100title
    Author: dron_3, HdHereidme, illusion
    Notes: *debugmenunotesUC3
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00041e34, 0x419e ]

PPU-48fa849dfeaef2f36ec042a576f29bda19ec1de0:
  Disable in-built MLAA:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: Whatcookie
    Notes: *uc3mlaanotes
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_mlaa ]
  Post-processing Modes:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_post ]
  Disable Mesh Trimming:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_mesh ]
  Disable SSAO:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_ssao ]
  Disable Depth of Field:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_dof ]
  Performance (WCB):
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: Enable this patch if you are using "Write Color Buffers" to restore performance.
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_speed ]
  Depth Buffer Viewport:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_dbv ]
  Depth Border Fix:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_dbf ]
  Enable GPU Lighting:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: ZEROx, illusion
    Notes: *uc3gpulightingnotes
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_JP_100_db ]
  Debug Menu:
    Games:
      "Uncharted 3: Drake's Deception":
        BCJS37004: [ 01.00 ]
    Author: dron_3, HdHereidme, illusion
    Notes: *debugmenunotesUC3
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00041e34, 0x419e ]

PPU-664fb0e4a94c62c15a6474841c202fb2bf80ce16:
  Disable in-built MLAA:
    Games: *uc3_110title
    Author: Whatcookie, ZEROx
    Notes: *uc3mlaanotes
    Patch Version: 2.0
    Patch:
      - [ load, *uc3_110_mlaa ]
  Disable Motion Blur:
    Games: *uc3_110title
    Author: ZEROx
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_mb ]
  Disable Bloom:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_post ]
  Disable Mesh Trimming:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_mesh ]
  Disable SSAO:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_ssao ]
  Disable Depth of Field:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_dof ]
  Performance (WCB):
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: Enable this patch if you are using "Write Color Buffers" to restore performance.
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_speed ]
  Depth Buffer Viewport:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_dbv ]
  Depth Border Fix:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_dbf ]
  Enable GPU Lighting:
    Games: *uc3_110title
    Author: ZEROx, illusion
    Notes: *uc3gpulightingnotes
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_110_db ]
  Disable Camera Shake:
    Games: *uc3_110title
    Author: illusion
    Notes: *uc3camshakenotes
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00812b44, 0x3800 ]
  Debug Menu:
    Games: *uc3_110title
    Author: dron_3, HdHereidme, illusion
    Notes: *debugmenunotesUC3
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00042624, 0x419e ]

PPU-02a88c3c6cd415b0bb81f1606bc743835881a4ba:
  Unlock FPS:
    Games: *uc3_119title
    Author: superepic31
    Notes: Haven't tested how this affects cutscenes.
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_FPS ]
  Disable in-built MLAA:
    Games: *uc3_119title
    Author: Whatcookie, ZEROx
    Notes: *uc3mlaanotes
    Patch Version: 2.0
    Patch:
      - [ load, *uc3_119_mlaa ]
  Disable Motion Blur:
    Games: *uc3_119title
    Author: ZEROx
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_mb ]
  Disable Bloom:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_post ]
  Disable Mesh Trimming:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_mesh ]
  Disable SSAO:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_ssao ]
  Disable Depth of Field:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_dof ]
  Performance (WCB):
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: Enable this patch if you are using "Write Color Buffers" to restore performance.
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_speed ]
  Depth Buffer Viewport:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_dbv ]
  Depth Border Fix:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_dbf ]
  Enable GPU Lighting:
    Games: *uc3_119title
    Author: ZEROx, illusion
    Notes: *uc3gpulightingnotes
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_db ]
  Debug Menu:
    Games: *uc3_119title
    Author: dron_3, HdHereidme, illusion, ZEROx, Skye
    Notes: *debugmenunotesUC3
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_devmenu ]
  Dev Menu Plus:
    Games: *uc3_119title
    Author: illusion, Skye
    Notes: "Last modified: December 14 2020\nReplaces audio options with various debug features."
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_devplus ]
  Disable Camera Shake:
    Games: *uc3_119title
    Author: illusion
    Notes: *uc3camshakenotes
    Patch Version: 1.0
    Patch:
      - [ be16, 0x008242cc, 0x3800 ]
  Enable Lan Mode:
    Games: *uc3_119title
    Author: "illusion, ZEROx, Skye"
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ load, *uc3_119_lanmode ]
  Skip Intro:
    Games: *uc3_119title
    Author: illusion
    Notes: 
    Patch Version: 1.0
    Patch:
      - [ be32, 0x00043e2c, 0x480000dc ]
  "DEBUG: Replace Task With Test Tasks":
    Games: *uc3_119title
    Author: "illusion, icemesh" # SID Utils
    Notes: "Only enable this patch if you know what you are doing!!"
    Patch Version: 1.0
    Patch:
      # *test-task-graph*
      - [ be32, 0x00a0d014, 0x3c80f0f3 ]
      - [ be32, 0x00a0d01c, 0x6084d6c8 ]
      - [ be32, 0x00a0b2c4, 0x3ca0f0f3 ]
      - [ be32, 0x00a0b2cc, 0x60a5d6c8 ]
      - [ be16, 0x0004417c, 0x4800 ]
      # test-tasks begin!!
      # SID("tasks") -> SID("test-tasks") // under debug group
      - [ be32, 0x009d0e84, 0x48421188 ]
      - [ be32, 0x00df200c, 0x81490000 ]
      - [ be32, 0x00df2010, 0x3d006772 ]
      - [ be32, 0x00df2014, 0x61083261 ]
      - [ be32, 0x00df2018, 0x7f885000 ]
      - [ be32, 0x00df201c, 0x409e0014 ]
      - [ be32, 0x00df2020, 0x3d002203 ]
      - [ be32, 0x00df2024, 0x6108c98c ]
      - [ be32, 0x00df2028, 0x91090000 ]
      - [ be32, 0x00df202c, 0x7d284b78 ]
      - [ be32, 0x00df2030, 0x81490000 ]
      - [ be32, 0x00df2034, 0x4bbdee54 ]

Anchors:

  uc3beta100_title: &uc3beta100_title
      "Uncharted 3: Drake's Deception Multiplayer Beta":
        NPUA70153: [ 01.00 ]
        BCET70034: [ 01.00 ]

  uc3beta104_title: &uc3beta104_title
      "Uncharted 3: Drake's Deception Multiplayer Beta":
        NPUA70153: [ 01.04 ]
        BCET70034: [ 01.04 ]

PPU-e63051dc8ec0f9256f047f62a6abd0e955805419:
  "Bug Fix: Crash on Entering LAN MP Menu":
    Games: *uc3beta100_title
    Author: "illusion"
    Patch Version: 1.0
    Patch:
      - [ byte, 0x0003e6c3, 0x0 ]
  Disable Uncharted TV:
    Games: *uc3beta100_title
    Author: illusion
    Notes: "Fixes significant slowdown because the video is no longer hosted on server"
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00700f42, 0x0000 ] # ret 0
      - [ be16, 0x00700f50, 0x4800 ] # dont spawn video threads
  Disable Camera Sprint:
    Games:
      "Uncharted 3: Drake's Deception Multiplayer Beta":
        NPUA70153: [ 01.00 ]
        BCET70034: [ 01.00 ]
    Author: illusion
    Patch Version: 1.0
    Patch:
      - [ be32, 0x0019e450, 0x98c30178 ]
  Unlock Main Menu:
    Games: *uc3beta100_title
    Author: "illusion, ZEROx, Skye"
    Patch Version: 1.0
    Patch:
      - [ be64, 0x00cea3d0, 0x000009298aab4a4b ]
      - [ be32, 0x007f8fc4, 0x484f131d ]
      - [ be32, 0x00cea2e0, 0x81c90320 ]
      - [ be32, 0x00cea2e4, 0x2c8e0000 ]
      - [ be32, 0x00cea2e8, 0x4086002c ]
      - [ be32, 0x00cea2ec, 0x3e0000ce ]
      - [ be32, 0x00cea2f0, 0x621041c0 ]
      - [ be32, 0x00cea2f4, 0x3de0010e ]
      - [ be32, 0x00cea2f8, 0x61ef319c ]
      - [ be32, 0x00cea2fc, 0xea306210 ]
      - [ be32, 0x00cea300, 0x1e510008 ]
      - [ be32, 0x00cea304, 0xfa4f6f8c ]
      - [ be32, 0x00cea308, 0x3a800001 ]
      - [ be32, 0x00cea30c, 0x92890320 ]
      - [ be32, 0x00cea310, 0x9aaf6f94 ]
      - [ be32, 0x00cea314, 0xea6f6f8c ]
      - [ be32, 0x00cea318, 0x7eb29800 ]
      - [ be32, 0x00cea31c, 0x4196000c ]
      - [ be32, 0x00cea320, 0x4bf993c5 ]
      - [ be32, 0x00cea324, 0x92840000 ]
      - [ be32, 0x00cea328, 0x88090078 ]
      - [ be32, 0x00cea32c, 0x4e800020 ]

PPU-9584776e7fca409ed410f8a713832267020d8ac3:
  "Bug Fix: Crash on Entering LAN MP Menu":
    Games: *uc3beta104_title
    Author: "illusion"
    Patch Version: 1.0
    Patch:
      - [ byte, 0x0003e563, 0x0 ]
  Disable Uncharted TV:
    Games: *uc3beta104_title
    Author: illusion
    Notes: "Fixes crash after entering MP menu due to offline video streaming API"
    Patch Version: 1.0
    Patch:
      - [ be16, 0x0070194e, 0x0000 ] # ret 0
      - [ be16, 0x0070195c, 0x4800 ] # dont spawn video threads
  Disable Sprint Camera:
    Games: *uc3beta104_title
    Author: illusion
    Patch Version: 1.0
    Patch:
      - [ be32, 0x0019e300, 0x98c30178 ]
  Disable Camera Shake:
    Games: *uc3beta104_title
    Author: illusion
    Patch Version: 1.0
    Patch:
      - [ be32, 0x0076e440, 0x38000001 ]
  Unlock Main Menu:
    Games: *uc3beta104_title
    Author: "illusion, ZEROx"
    Patch Version: 1.0
    Patch:
      - [ be64, 0x00d1e414, 0x000009298aab4a4b ]
      - [ be32, 0x007f9f20, 0x4852449d ] #     bl         SUB_00d1e3bc
      - [ be32, 0x00d1e3bc, 0x81c90320 ] #     lwz        r14,0x320(r9)
      - [ be32, 0x00d1e3c0, 0x2c8e0000 ] #     cmpwi      cr1,r14,0x0
      - [ be32, 0x00d1e3c4, 0x4086002c ] #     bne        cr1,LAB_00d1e3f0
      - [ be32, 0x00d1e3c8, 0x3e0000d1 ] #     lis        r16,0xd1
      - [ be32, 0x00d1e3cc, 0x6210e40c ] #     ori        r16,r16,0xe40c
      - [ be32, 0x00d1e3d0, 0x3de00110 ] #     lis        r15,0x110
      - [ be32, 0x00d1e3d4, 0x61efb828 ] #     ori        r15,r15,0xb828
      - [ be32, 0x00d1e3d8, 0xea300008 ] #     ld         r17,0x8(r16)=>DAT_00d1e414
      - [ be32, 0x00d1e3dc, 0x1e510008 ] #     mulli      r18,r17,0x8
      - [ be32, 0x00d1e3e0, 0xfa4f0000 ] #     std        r18,0x0(r15)=>LAB_0011b828
      - [ be32, 0x00d1e3e4, 0x3a800001 ] #     li         r20,0x1
      - [ be32, 0x00d1e3e8, 0x92890320 ] #     stw        r20,0x320(r9)
      - [ be32, 0x00d1e3ec, 0x9aaf0008 ] #     stb        r21,0x8(r15)=>LAB_0011b830
      - [ be32, 0x00d1e3f0, 0xea6f0000 ] #     ld         r19,0x0(r15)=>LAB_0011b828
      - [ be32, 0x00d1e3f4, 0x7eb29800 ] #     cmpd       cr5,r18,r19
      - [ be32, 0x00d1e3f8, 0x4196000c ] #     beq        cr5,LAB_00d1e404
      - [ be32, 0x00d1e3fc, 0x4bf993b5 ] #     bl         FUN_00cb77b0
      - [ be32, 0x00d1e400, 0x92840000 ] #     stw        r20,0x0(r4)
      - [ be32, 0x00d1e404, 0x88090078 ] #     lbz        r0,0x78(r9)
      - [ be32, 0x00d1e408, 0x4e800020 ] #     blr
  Disable Post on SPU:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Notes: "Slight overbloom in some areas, needs correction."
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00897644, 0x9b43 ] # post on spu         = 0
  Disable Motion Blur:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x008975f8, 0x9b43 ] # mb                  = 0
  Disable Mesh Trimming:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x006b1cc0, 0x9949 ] # mesh trim           = 0
  Disable SSAO:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00897578, 0x9b43 ] # ssao                = 0
  Disable Depth of Field:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00897604, 0x9b43 ] # dof                 = 0
  Performance (WCB):
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Notes: Enable this patch if you are using "Write Color Buffers" to restore performance.
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00897620, 0x9b83 ] # reload depth buffer = 0
  Depth Buffer Viewport:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x00897880, 0x9b63 ] # depth viewport      = 1
  Depth Border Fix:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x008978c0, 0x9b83 ] # depth border        = 0
  Enable GPU Lighting:
    Games: *uc3beta104_title
    Author: illusion, ZEROx
    Patch Version: 1.0
    Patch:
      - [ be16, 0x008978cc, 0x9103 ] # spu lighting        = 2