# ========================================================================================
# compat.ini for PPSSPP
# ========================================================================================
#
# This file is not meant to be user-editable, although is kept as a separate ini
# file instead of compiled into the code for debugging purposes.
#
# The uses cases are strict:
#   * Enable fixes for things we can't reasonably emulate without completely ruining
#     performance for other games, such as the screen copies in Dangan Ronpa
#   * Disabling accuracy features like 16-bit depth rounding, when we can't seem to
#     implement them at all in a 100% compatible way
#   * Emergency game-specific compatibility fixes before releases, such as the GTA
#     music problem where every attempted fix has reduced compatibility with other games
#   * Enable "unsafe" performance optimizations that some games can tolerate and
#     others cannot. We do not currently have any of those.
#
# This functionality should NOT be used for any of the following:
#   * Cheats
#   * Fun hacks, like enlarged heads or whatever
#   * Fixing general compatibility issues. First try to find a general solution. Try hard.
#
# Game IDs can be looked up at GameFAQs, for example:
# http://www.gamefaqs.com/psp/925776-grand-theft-auto-liberty-city-stories/data
# Sometimes the information may be incomplete though.
#
# ========================================================================================
# Issue numbers refer to issues on https://github.com/hrydgard/ppsspp/issues
# ========================================================================================

[VertexDepthRounding]
# Phantasy Star Portable needs depth rounding to 16-bit precision for text to show up.
# It's enough to do it at the vertex granularity.  #3777
# Phantasy Star Portable
ULJM05309 = true
ULUS10410 = true
ULES01218 = true
ULJM08023 = true
ULES01218 = true
# Phantasy Star Portable 1 Demo
NPUH90023 = true
# Phantasy Star Portable 2
ULES01439 = true
ULUS10529 = true
ULJM05493 = true
NPJH50043 = true
ULJM08030 = true
NPUH90023 = true
ULJM91014 = true
NPJH90002 = true
ULJM05732 = true
NPJH50332 = true
# Phantasy Star Portable 2 JP Demo
ULJM91018 = true
NPJH90062 = true
# Phantasy Star Portable Infinity Demo
NPJH90157 = true  # Infinity demo

# Puyo Puyo Fever 2   #3663 (layering)
ULJM05058 = true
# NBA 2K13  #6603 (menu glitches)
ULAS42332 = true 
ULJS00551 = true
NPJH50713 = true
ULJS00596 = true
ULES01578 = true
ULUS10598 = true
# Power Stone Collection  #6257 (map arrow)
ULES00496 = true
ULUS10171 = true
ULJM05178 = true
# Taiko no Tatsujin Portable DX    #7920  (missing text)
ULJS00383 = true 
NPJH50426 = true 
ULAS42282 = true
# PhotoKano  #7920  (missing text)
ULJS00378 = true
NPJH50579 = true
ULJS19069 = true
NPJH50579 = true

# After Burner: Black Falcon (#8514, only affects video)
ULUS10244 = true
ULES00753 = true
ULES00785 = true

# Matching Maker 3 x Tousouchuu (#15913)
ULJS00242 = true

[PixelDepthRounding]
# Heroes Phantasia requires pixel depth rounding.  #6485 (flickering overlaid sprites)
NPJH50558 = true
ULJS00456 = true
ULJS00454 = true

# Tales of Phantasia: Full Voice Edition
# Attempted workaround for stencil testing driver bug on Arm Exynos (similar to the previous Adreno bug).
# Seems that writing to depth disables a faulty optimization it's trying to do (as we saw in stencil draw).
ULJS00079 = true
ULJS19016 = true
UCAS40110 = true
NPJH50854 = true

# Heroes Phantasia Limited Edition Disc requires pixel depth rounding.
ULJS00455 = true
# Phantasy Star games flickering
# Phantasy Star Portable
ULJM05309 = true
ULUS10410 = true
ULES01218 = true
ULJM08023 = true
ULES01218 = true
# Phantasy Star Portable 1 Demo
NPUH90023 = true
# Phantasy Star Portable 2
ULES01439 = true
ULUS10529 = true
ULJM05493 = true
NPJH50043 = true
ULJM08030 = true
NPUH90023 = true
ULJM91014 = true
NPJH90002 = true
ULJM05732 = true
NPJH50332 = true
# Phantasy Star Portable 2 JP Demo
ULJM91018 = true
NPJH90062 = true
# Phantasy Star Portable Infinity Demo
NPJH90157 = true  # Infinity demo

# Nayuta no Kiseki might improve with pixel depth rounding. See issue #8744.
ULJM06113 = true
NPJH50625 = true
ULJM08069 = true
NPJH50625 = true

# Kidou Keisatsu
ULJS00026 = true

[ClearToRAM]
# SOCOM Navy Seals games require this. See issue #8973.
# Navy Seals : Tactical Strike
UCES00855 = true
UCUS98649 = true
NPJG00035 = true
NPJG90068 = true
UCJS10102 = true
# Tactical Strike demo
NPUG70003 = true
# Fireteam Bravo
UCKS45021 = true
UCUS98615 = true
UCES00038 = true
ULES00038 = true
# Fireteam Bravo 2
UCES00543 = true
UCUS98645 = true
# Fireteam Bravo 2 Demo
UCUS98677 = true
UCUS98691 = true

# DBZ Tenkaichi Tag Team, see issue #14283
ULJS00311 = true
ULAS42247 = true
ULUS10537 = true
ULUS10737 = true
ULJS19067 = true
ULAS42318 = true
NPUH90087 = true  # demo
NPEH90042 = true  # demo

[Force04154000Download]
# This applies a hack to Dangan Ronpa, its demo, and its sequel, Super Dangan Ronpa 2.
# The game draws solid colors to a small framebuffer, and then reads this directly in VRAM.
# We force this framebuffer to 1x and force download it automatically.
# It might be even better to extend the software depth rasterizer to do basic color.

# Danganronpa
ULJS00337 = true
ULJS19060 = true
NPJH50372 = true
NPJH50515 = true
# Danganronpa Demo
NPJH90164 = true
# Super Danganronpa 2
ULJS00521 = true
ULJS00522 = true
NPJH50631 = true

# Let's also apply to Me & My Katamari, I don't recall why though?
ULUS10094 = true
ULES00339 = true
ULJS00033 = true
UCKS45022 = true
ULJS19009 = true
NPJH50141 = true

[DrawSyncEatCycles]
# This replaced Crash Tag Team Racing hack to also fix Gundam games
# It makes sceGeDrawSync eat a lot of cycles which can affect timing in lots of games,
# might be negative for others, but happens to fix games below.
# Gundam Battle Royale might need it to avoid crashes when certain Ace enemies shows up
ULJS00083 = true
ULKS46104 = true
ULJS19015 = true
# Gundam Battle Chronicle needs it to avoid crashes after most battles
ULJS00122 = true
ULKS46158 = true
ULJS19021 = true
# Gundam Battle Universe same problem as above
ULJS00145 = true
ULKS46183 = true
ULJS00260 = true
ULJS19041 = true
NPJH50843 = true
# Helps with Jeanne d'Arc weird 40/40 fps problem #5154
UCAS40129 = true
UCJS10048 = true
UCKS45033 = true
UCJS18014 = true
UCUS98700 = true
NPJG00032 = true
UCJX90019 = true
# Fixes some double framerate issues in Patapon 2, contributed by pamford45
UCJS10089 = true
NPJG00010 = true
PSPJ30000 = true
UCAS40232 = true
UCAS40239 = true
UCES01177 = true
UCUS98732 = true
UCJS18036 = true
UCAS40292 = true
UCJS18053 = true

# Rewrite
# fixes softlocks, see #15904
ULJM06364 = true
ULJM06365 = true

# Crash Tag Team Racing used to need it to pass checking memory stick screen.
# ULES00168 = true
# ULES00169 = true
# ULES00170 = true
# ULES00171 = true
# ULES00172 = true
# ULJM05036 = true
# ULUS10044 = true

[KernelGetSystemTimeLowEatMoreCycles]
# Brothers in Arms: D-Day works around weird FPS(falling under 100% even on powerful hardware) as well as it's animation speed #18509
# recommend to OC PSP CPU to at least twice as much as real PSP to get constant 60 fps
ULES00608 = true
ULUS10193 = true

[DrawSyncInstant]
# Bizarre timing issue in Sakura-sou no Pet na Kanojo, see issue #15224. Note that an instant DrawSync is not logical.
NPJH50745 = true

[FakeMipmapChange]
# This hacks separates each mipmap to independent textures to display wrong-size mipmaps.
# For example this requires games like Tactics Ogre(Japanese) to display multi bytes fonts stored in mipmaps.
# See issue #5350.
# Tactics Ogre (Japanese)
ULJM05753 = true
NPJH50348 = true
ULJM06009 = true
# We handle the US/EU versions by detecting its weird use of two identical mipmaps and treating it as a normal 2D texture (#17491 / #17980)

[RequireBufferedRendering]
# Warn the user that the game will not work and have issue, if buffered rendering is not enabled.
# Midnight Club: LA Remix
ULUS10383 = true
ULES01144 = true
ULJS00180 = true
ULJS00267 = true
ULJM05904 = true
NPJH50440 = true
# Midnight Club 3: DUB Edition
ULUS10021 = true
ULES00108 = true
# Grand Theft Auto: Vice City Stories
ULUS10160 = true
ULES00502 = true
ULES00503 = true
ULJM05297 = true
ULJM05395 = true
ULJM05884 = true
NPJH50827 = true
# Grand Theft Auto: Vice City Stories (prototypes)
ULET00417 = true
# Grand Theft Auto: Liberty City Stories
ULUS10041 = true
ULES00151 = true
ULES00182 = true
ULJM05255 = true
ULJM05359 = true
ULJM05885 = true
NPJH50825 = true
# Grand Theft Auto: Liberty City Stories (prototypes)
ULUX80146 = true
# Grand Theft Auto: Sindacco Chronicles (GTA LCS romhack)
ULUS01826 = true
# Seen in Liberty City (GTA LCS romhack)
ULUS11826 = true

# GOW : Ghost of Sparta
UCUS98737 = true
UCAS40323 = true
NPHG00092 = true
NPEG00044 = true
NPEG00045 = true
NPJG00120 = true
NPUG80508 = true
UCJS10114 = true
UCES01401 = true
UCES01473 = true
# GOW : Ghost of Sparta Demo
NPJG90095 = true
NPEG90035 = true
NPUG70125 = true
# GOW : Chains Of Olympus
UCAS40198 = true
UCUS98653 = true
UCES00842 = true
ULJM05438 = true
ULJM05348 = true
UCKS45084 = true
NPUG80325 = true
NPEG00023 = true
NPHG00027 = true
NPHG00028 = true
NPJH50170 = true
UCET00844 = true
# GOW: Chains of Olympus Demo
UCUS98705 = true
UCED00971 = true
UCUS98713 = true
# Daxter
UCUS98618 = true
UCUS98654 = true
UCES00044 = true
NPUG80329 = true
NPEG00025 = true
UCKS45025 = true
# Ys Seven
ULUS10551 = true
ULJM05475 = true
NPEH00065 = true
NPJH50350 = true
ULJM08041 = true
NPEH00065 = true
# The Legend of Heroes: Trails in the Sky
ULUS10540 = true
ULUS10578 = true
ULES01556 = true
ULJM05170 = true
ULJM08033 = true
NPJH50373 = true
# Grand Knights History
ULJS00394 = true
ULJS19068 = true	
NPJH50518 = true
# Tactics Ogre
ULUS10565 = true
ULES01500 = true
ULJM05753 = true
NPJH50348 = true
ULJM06009 = true
UCKS45164 = true
# Metal Gear Solid : Peace Walker
ULUS10509 = true
ULES01372 = true
ULJM08038 = true
NPJH50045 = true
ULJM05630 = true
NPJH90082 = true
NPJH90063 = true
# Star Ocean : Second Evolution
ULUS10375 = true
ULES01187 = true
ULJM05591 = true
ULJM05325 = true
UCAS40203 = true
# Driver 76
ULUS10235 = true
ULES00740 = true
# Chili Con Carnage
ULUS10216 = true
ULES00629 = true
# Digimon Adventure
NPJH50686 = true
ULJS00541 = true
ULAS42340 = true
# Danganronpa
ULJS00337 = true
ULJS19060 = true
NPJH50372 = true
NPJH50515 = true
# Danganronpa Demo
NPJH90164 = true
# Super Danganronpa 2
ULJS00521 = true
ULJS00522 = true
NPJH50631 = true
# The Simpsons Game
ULUS10295 = true
ULES00975 = true
ULES00979 = true
ULES00978 = true
ULES00977 = true
ULES00976 = true
# Jeanne d'Arc
UCUS98700 = true
UCJS10048 = true
# Jeanne d'Arc Senkou Taikenban (Demo)
UCJX90019 = true
# Dante's Inferno
ULUS10469 = true
ULES01384 = true
ULJM05621 = true
NPJH50220 = true
ULJM05799 = true
ULKS46248 = true
# Test Drive Unlimited
ULET00386 = true
ULUS10249 = true
ULES00637 = true
ULKS46126 = true
# Silent Hill: Shattered Memories
ULUS10450 = true
ULES01352 = true
ULJM05564 = true
NPJH50148 = true
ULAS42189 = true
# Silent Hill: Origins
ULUS10285 = true
ULES00869 = true
ULJM05281 = true
NPJH50051 = true
# Manhunt 2
ULUS10280 = true
ULES00756 = true
# LEGO Star Wars II: The Original Trilogy
ULUS10155 = true
ULES00479 = true
# LEGO Indiana Jones: The Original Adventures
ULUS10365 = true
ULES01086 = true
# LEGO Batman: The Videogame
ULUS10380 = true
ULES01151 = true
# Burnout Dominator
ULUS10236 = true
ULES00750 = true
ULJM05242 = true
ULJM05371 = true
NPJH50304 = true
ULES00703 = true
# Yu-Gi-Oh Tag Force 6
ULJM05940 = true
NPJH50794 = true
# Crazy Taxi
NPJH50490 = true
ULES00811 = true
ULJM05340 = true
ULUS10273 = true
# Cave Story (homebrew, flickers without it)
CAVE00992 = true

# TODO: There are many more.

[RequireBlockTransfer]
# Warn the user that the game will have issue graphic, if simulate block transfer is not enabled.
# The Legend of Heroes: Trails in the Sky need it to fix graphical glitch in menu screen. See issues #8053
ULUS10540 = true
ULUS10578 = true
ULES01556 = true
ULJM05170 = true
ULJM08033 = true
NPJH50373 = true
NPUH10191 = true
NPUH10197 = true
# Grand Knights History need it to fix blackboxes on characters and flickering texture . See issues #2135, #6099
ULJS00394 = true
ULJS19068 = true	
NPJH50518 = true
# Gradius Collection (see #13887)
ULUS10103 = true
ULES00381 = true
ULJM05091 = true
# GachiTora! Abarenbou Kyoushi in High School need it to render shadows properly (see #14136)
ULJS00355 = true
NPJH50409 = true
# MegaMan Maverick Hunter X (see #10085)
ULES00251 = true
ULUS10068 = true
ULJM05043 = true

[RequireDefaultCPUClock]
# GOW : Ghost of Sparta
UCUS98737 = true
UCAS40323 = true
NPHG00092 = true
NPEG00044 = true
NPEG00045 = true
NPJG00120 = true
NPUG80508 = true
UCJS10114 = true
UCES01401 = true
UCES01473 = true
# GOW : Ghost of Sparta Demo
NPJG90095 = true
NPEG90035 = true
NPUG70125 = true
# Tekken 6
ULUS10466 = true
ULES01376 = true
ULJS00224 = true
NPUH10047 = true
ULAS42214 = true
ULJS19054 = true
NPJH50184 = true

[MGS2AcidHack]
ULUS10006 = true # Metal Gear Acid
ULES00008 = true
ULJM05001 = true
ULAS42007 = true
ULJM08001 = true
ULUS10077 = true # Metal Gear Acid 2
ULAS42035 = true
ULES00284 = true
ULJM05047 = true
ULKS46065 = true
ULJM08011 = true

[SonicRivalsHack]
ULES00622 = true  # SR1
ULUS10195 = true  # SR1
ULUS10323 = true  # SR2
ULES00940 = true  # SR2
ULET00958 = true

[BlockTransferAllowCreateFB]
# Digimon Adventure (JP and English patches)
NPJH50686 = true
ULJS00541 = true
ULAS42340 = true

# MotoGP
ULUS10153 = true
UCES00373 = true
ULJS00078 = true
UCAS40104 = true

# Ys Seven disabled (caused glitches, see #13529)
# ULUS10551 = true
# ULJM05475 = true
# ULJM05475 = true
# NPEH00065 = true
# NPJH50350 = true

# Burnout Legends
ULES00125 = true
ULUS10025 = true
ULJM05228 = true
NPJH50305 = true
ULJM05049 = true
ULKS46027 = true
ULAS42019 = true

# Burnout Dominator
ULUS10236 = true
ULES00750 = true
ULJM05242 = true
ULJM05371 = true
NPJH50304 = true
ULES00703 = true

# Test Drive Unlimited
ULET00386 = true
ULUS10249 = true
ULES00637 = true
ULKS46126 = true

# Naruto Shippuden: Ultimate Ninja Impact
ULUS10582 = true
ULES01537 = true
ULJS00390 = true
ULAS42297 = true
ULJS19071 = true
NPJH50435 = true
NPJH50435 = true

# Naruto Shippuden: Ultimate Ninja Heroes 3 (issue #16733)
ULJS00236 = true
ULAS42208 = true
ULUS10518 = true
ULAS42231 = true
ULJS19066 = true
ULAS42317 = true
ULUS10518 = true

# Gradius Collection
ULUS10103 = true
ULES00381 = true
ULJM05091 = true
ULJM05222 = true
ULAS42040 = true
ULKS46064 = true

# Shaun White Snowboarding (player shadow)
ULES01185 = true
ULUS10399 = true
ULJM05412 = true
NPJH50083 = true
ULJM05570 = true

# Cars Race-o-rama
ULUS10428 = true
ULES01333 = true

# MX vs ATV Reflex
ULES01375 = true
ULUS10429 = true

# Silent Hill: Origins
# Avoids readback.
ULES00869 = true
ULUS10285 = true
ULKS46161 = true
ULJM05281 = true
NPJH50051 = true

# Silent Hill: Shattered Memories
# Avoids readback.
ULUS10450 = true
ULES01352 = true
ULJM05564 = true
NPJH50148 = true
ULAS42189 = true

# Toca Race Driver 3 / DTM Race Driver 3 / V8 Supercars Shootout 3
# Avoids readback.
ULES00613 = true
ULES00615 = true
ULES00614 = true

# Toca Race Driver 2 / DTM Race Driver 2
# Avoids readback.
ULES00040 = true
ULES00041 = true
ULJM05160 = true

# Narikiri Dungeon X. See issue #16714.
ULJS00293 = true

[IntraVRAMBlockTransferAllowCreateFB]
# Final Fantasy - Type 0
ULJM05900 = true
ULJM05901 = true
NPJH50443 = true
NPJH50444 = true
ULJM06217 = true
ULJM06218 = true
UCAS40346 = true
UCAS40347 = true

# Boku no Natsuyasumi: Mushi Mushi Hakase to Teppen-yama no Himitsu!!
UCJS10038 = true
UCJS18013 = true

# Megaman Maverick Hunter X (see #10085)
ULES00251 = true
ULUS10068 = true
ULJM05043 = true

# R-TYPE TACTICS (see #14198)
ULJS00111 = true  # Japan
NPJH50106 = true  # Japan
UCKS45065 = true  # Korea
UCAS40168 = true  # Asia
ULES01121 = true  # Europe

ULUS10343 = true  # US, (R-TYPE COMMAND)
NPUH90008 = true  # (R-TYPE COMMAND demo)

# R-TYPE TACTICS II -Operation BITTER CHOCOLATE-
NPJH50119 = true
ULJS00233 = true
NPJH90089 = true  # (demo)
NPJH90065 = true  # Unknown

# Colin McRae 2005 (sun effect, see #7810)
ULES00111 = true
ULKS46010 = true
ULJM05223 = true
ULJM05362 = true

# Iron Man, see [BlockTransferDepth] below.
ULES01070 = true
ULES01071 = true
ULUS10347 = true

# Note! This whole flag is disabled temporarily by appending "Disabled" to its name). See 7914
[YugiohSaveFixDisabled]
# The cause of Yu-gi-oh series 's bad save (cannot save) are load "save status" and use cwcheat,
# but the real cause still unknown. #7914

# Yu-Gi-Oh! Duel Monsters GX: Tag Force
ULJM05151 = true
ULES00600 = true
ULUS10136 = true

# Yu-Gi-Oh! Duel Monsters GX: Tag Force 2
ULUS10302 = true
ULJM05260 = true
ULES00925 = true
ULES00926 = true

# Yu-Gi-Oh! Duel Monsters GX: Tag Force 3 
ULES01183 = true
ULJM05373 = true

# Yu-Gi-Oh! 5D's Tag Force 4
ULUS10481 = true
ULJM05479 = true
ULES01362 = true

# Yu-Gi-Oh! 5D's Tag Force 5
ULUS10555 = true
ULJM05734 = true
ULES01474 = true
 
# Yu-Gi-Oh! 5D's Tag Force 6
ULJM05940 = true
NPJH50794 = true
  
# Yu-Gi-Oh! 5D's Tag Force 
ULJM05940 = true
 
# Yu-Gi-Oh! ARC-V Tag Force Special
NPJH00142 = true

[ForceUMDDelay]
# F1 2006 won't boot at all with our standard unrealistically fast timing.
UCES00238 = true
UCJS10045 = true
# F1 2005, japan only?
UCJS10019 = true

# Arctic Adventures - Polar's Puzzles
NPEZ00219 = true
NPUZ00114 = true

# Mega Minis volume 2 (see #20322, just for Artic Adventures: Polars Puzzles)
UCES01503 = true

# Innocent Life (see issue #2830)
UCAS40079 = true
ULUS10219 = true
ULES00658 = true
UCAS40187 = true
ULJS00119 = true
ULKS46167 = true
NPJH50017 = true

# Pangya Fantasy Golf (see issue #17458)
ULUS10438 = true
ULJM05687 = true
ULJM05440 = true
ULKS46164 = true

# Qix++ (see issue #13724)
ULJM05617 = true
NPJH50199 = true

#　Mahou Shoujo Madoka Magica Portable　＃6557
ULJS00430 = true
ULJS00429 = true

# Harvest Moon US (issue #18287)
ULUS10458 = true
ULES01489 = true
NPJH50019 = true
ULJS19039 = true
ULJS00188 = true

# Twisted Metal sound effects break without this
UCES00018 = true
UCUS98601 = true

# PlayStation Network Collection: Power Pack (#19571)
UCES01160 = true

# PlayStation Network Collection: Puzzle Pack
UCES01159 = true

# Bust-a-move Deluxe / Ghost (#8795)
ULUS10057 = true
ULES00233 = true

# Castlevania X Chronicles - Rondo of Blood subgame (#11091)
NPJH50028 = true
ULES00841 = true
ULJM05287 = true
ULKS46155 = true
ULUS10277 = true

# Crash of the Titans - #12510
ULES00915 = true
ULES00916 = true
ULES00917 = true
ULES00918 = true
ULUS10304 = true

# DJ Max series requires slow UMD timing for some reason, even though
# playing from memory stick works.
ULKS46116 = true
ULKS46189 = true
ULKS46190 = true
ULKS46236 = true
ULKS46240 = true
ULKS46059 = true
ULUS10403 = true
ULUS10538 = true
ULKS46050 = true
ULJM05836 = true
ULJM46236 = true
ULJM06034 = true
NPHH00260 = true
CF0020046 = true
CF0020074 = true
NPJH50471 = true
ULJM06033 = true
NPJH50559 = true
NPEH00030 = true
ULKS46191 = true

[GoWFramerateHack60]
# Replaces ForceMax60FPS for GOW games, should provide smoother experience
# Also works around softlock in GOW:GOS , see #8299
# GOW : Ghost of Sparta
UCUS98737 = true
UCAS40323 = true
NPHG00092 = true
NPEG00044 = true
NPEG00045 = true
NPJG00120 = true
NPUG80508 = true
UCJS10114 = true
UCES01401 = true
UCES01473 = true
# GOW : Ghost of Sparta Demo
NPEG90035 = true
NPUG70125 = true
NPJG90095 = true
# GOW : Chains Of Olympus
UCAS40198 = true
UCUS98653 = true
UCES00842 = true
ULJM05438 = true
ULJM05348 = true
UCKS45084 = true
NPUG80325 = true
NPEG00023 = true
NPHG00027 = true
NPHG00028 = true
NPJH50170 = true
UCET00844 = true
# GOW: Chains of Olympus Demo
UCUS98705 = true
UCED00971 = true
UCUS98713 = true

[FramerateHack30]
# Note that this hack is not universal, will not work for games simply added to the list
# 30 fps hacks for games that run well are disabled by default since it's only an option for users with very weak hardware
# GOW in 30 fps doesn't suffer from softlock #8299, so the hack is actually simpler
# GOW : Ghost of Sparta
# UCUS98737 = true
# UCAS40323 = true
# NPHG00092 = true
# NPEG00044 = true
# NPEG00045 = true
# NPJG00120 = true
# NPUG80508 = true
# UCJS10114 = true
# UCES01401 = true
# UCES01473 = true
# GOW : Ghost of Sparta Demo
# NPEG90035 = true
# NPUG70125 = true
# NPJG90095 = true
# GOW : Chains Of Olympus
# UCAS40198 = true
# UCUS98653 = true
# UCES00842 = true
# ULJM05438 = true
# ULJM05348 = true
# UCKS45084 = true
# NPUG80325 = true
# NPEG00023 = true
# NPHG00027 = true
# NPHG00028 = true
# NPJH50170 = true
# UCET00844 = true
# GOW: Chains of Olympus Demo
# UCUS98705 = true
# UCED00971 = true
# UCUS98713 = true

# Brian Lara 2007: Pressure Play
# workaround for incorrect fps/game speed
ULES00814 = true
ULES00815 = true

# Blitz: Overtime
# workaround for incorrect fps/game speed
ULUS10200 = true

[ForceMax60FPS]
# Some games are very heavy and render as fast as they can. They benefit greatly from
# capping the framerate at 60fps.

# F1 2006 has extremely long loading times if we don't limit the framerate.
UCES00238 = true
UCJS10045 = true
# F1 2005, japan only?
UCJS10019 = true

# The Transformers games are also afflicted with long loading times and render too fast like GoW.

# Transformers - The Game
ULES00823 = true
ULES00824 = true
ULES00825 = true
ULUS10274 = true

# Transformers - Revenge of the Fallen
ULES01286 = true
ULES01287 = true
ULUS10433 = true

# Tekken 6
ULUS10466 = true
ULES01376 = true
ULJS00224 = true
NPUH10047 = true
ULAS42214 = true
ULJS19054 = true
NPJH50184 = true

# Hot Wheels - Ultimate Racing (issue #12604, this is a workaround)
ULUS10239 = true
ULES00828 = true

# Fat Princess: Fistful of Cake loading speeds benefit greatly.
UCAS40285 = true
UCES01312 = true
NPJG00045 = true
NPHG00025 = true
UCKS45137 = true
UCUS98740 = true

# Mumbo Jumbo games (see issue #12857)
ULUS10287 = true  # Super Collapse 3
ULES01027 = true  # Super Collapse 3
ULUS10203 = true  # Platypus
ULES01029 = true  # Platypus
ULUS10227 = true  # 7 Wonders of the Ancient World
ULES01037 = true  # 7 Wonders of the Ancient World

# Super Monkey Ball Adventures also benefits from this (#7674).
ULES00364 = true
ULUS10132 = true

# Homebrew Kurok (we don't normally add homebrew here but it has a distinctive GameID)
KURO00767 = true

# Scooby-Doo! Who's Watching Who?
ULUS10168 = true
ULES00571 = true

# Tron Evolution
ULUS10548 = true
ULES01494 = true
ULES01495 = true

# Atari Classics Evolved
ULUS10325 = true

# Kurohyou 2: Ryu ga Gotoku Ashura Hen (Japan)
NPJH50562 = true
NPJH50333 = true

# Silent Hill Origin
ULUS10285 = true
ULES00869 = true

# Resistance Retribution
UCES01184 = true
UCUS98668 = true
UCJP00174 = true

# Spider-Man 3
ULES00938 = true
ULUS10317 = true

# NBA 2K13
ULUS10598 = true
ULES01578 = true

# Killzone: Liberation (see issue #6207)
UCES00279 = true
UCKS45041 = true
UCUS98646 = true
UCET00278 = true
UCUS98670 = true
UCUS98646 = true

# Infected
ULES00337 = true
ULES00338 = true
ULUS10054 = true

[JitInvalidationHack]
# This is an absolutely awful hack that somehow prevents issues when clearing the JIT,
# if the game has copied code with EmuHack opcodes or something. Hopefully will be able
# to remove this in the future.
# See #3854.
# Tony Hawk's Underground
ULUS10014 = true
ULES00033 = true
ULES00034 = true
ULES00035 = true
# MTX MotoTrax
ULUS10138 = true
ULES00581 = true

[HideISOFiles]
# DJ Max Portable has some crude copy-protection functionality where it looks for ISO/CSO files
# in a few directories. Prevent this by hiding the files from the game.
# To be sure, catch all versions and remixes of the game that's been seen in reports.
# It checks the following directories:
# /
# /PSP/
# /PSP/COMMON
# /PSP/GAME

ULKS46116 = true
ULKS46189 = true
ULKS46190 = true
ULKS46236 = true
ULKS46240 = true
ULKS46059 = true
ULUS10403 = true
ULUS10538 = true
ULKS46050 = true
ULJM05836 = true
ULJM46236 = true
ULJM06034 = true
NPHH00260 = true
CF0020046 = true
CF0020074 = true
NPJH50471 = true
ULJM06033 = true
NPJH50559 = true
NPEH00030 = true
ULKS46191 = true

[MoreAccurateVMMUL]
# Fixes leg shaking in Tekken 6. The potential for slowdown in other games is large enough
# that we will not generally apply this accurate mode where not needed.
ULUS10466 = true
ULES01376 = true
ULJS00224 = true
NPUH10047 = true
ULAS42214 = true
ULJS19054 = true
NPJH50184 = true

[ForceSoftwareRenderer]
# Darkstalkers
ULES00016 = true
ULUS10005 = true
ULJM05005 = true

# Football Manager Handheld series (#5934)
ULES00248 = true  # ??
ULES00549 = true  # 2007
ULES00934 = true  # 2008
ULES01152 = true  # 2009
NPUH10036 = true  # 2010
ULES01338 = true  # 2010
ULES01455 = true  # 2011
ULES01555 = true  # 2012
ULES01582 = true  # 2013

[DarkStalkersPresentHack]
# Darkstalkers
ULES00016 = true
ULUS10005 = true
ULJM05005 = true

[ReportSmallMemStick]
# Harry Potter and the Goblet of Fire - issue #13266
ULUS10032 = true
ULES00210 = true
ULES00214 = true
ULES00215 = true
ULES00216 = true
ULKS46047 = true
# Street Fighter Alpha 3 MAX - issue #10462
ULJM05082 = true
ULUS10062 = true
ULES00235 = true
ULJM05225 = true
CPCS01043 = true
ULUS10062 = true
# LEGO Star Wars II: The Original Trilogy
ULES00479 = true
ULUS10155 = true
# Tony Hawk's Underground 2 Remix
ULES00033 = true
ULUS10014 = true
# Virtua Tennis: World Tour
ULES00126 = true
ULJM05079 = true
ULKS46023 = true
ULUS10037 = true
# Warriors Orochi - issue #16827
ULJM05314 = true
ULUS10341 = true
ULES01054 = true
ULJM08022 = true
NPJH50126 = true
ULJM08052 = true
ULAS42316 = true
# Doko Demo Issho - issue #18420
UCJS10002 = true
UCJS10039 = true
UCJS18012 = true
# WWE All Stars
ULUS10544 = true
ULES01510 = true
# Activision Hits Remixed
ULES00640 = true
ULUS10186 = true
# Fortix (#20436)
NPUZ00016 = true
NPEZ00096 = true
# Jetpack Joyride
NPEZ00444 = true
NPEZ00469 = true
NPUZ00292 = true
NPEZ00470 = true

[MemstickFixedFree]
# Assassin's Creed : Bloodlines - issue #12761
ULJM05571 = true
ULES01367 = true
NPEH00029 = true
ULUS10455 = true

[BlueToAlpha]
# Some games render first to RGB of a 4444 texture, then they switch to 565 and render masked to blue,
# just to be able to render to the alpha channel of the 4444. We can detect that and reroute rendering
# to avoid problems.

# Split/Second
ULES01402 = true
ULUS10513 = true
ULJM05812 = true
NPJH50371 = true

# Colin McRae's DiRT 2 - issue #13012 (car reflections)
ULUS10471 = true
ULJM05533 = true
NPJH50006 = true
ULES01301 = true

# Outrun 2006: Coast to Coast - issue #11358 (car reflections)
ULES00262 = true
ULUS10064 = true
ULKS46087 = true

[ForceMaxDepthResolution]
# See #17014 - some games don't need our heuristics that drop down to 16-bit depth.

# Outrun 2006: Coast to Coast - issue #11358 (car reflections)
ULES00262 = true
ULUS10064 = true
ULKS46087 = true

# Split/Second
ULES01402 = true
ULUS10513 = true
ULJM05812 = true
NPJH50371 = true

# Cars Race-o-rama
ULUS10428 = true
ULES01333 = true

# Test Drive Unlimited
ULET00386 = true
ULUS10249 = true
ULES00637 = true
ULKS46126 = true

[DateLimited]
# Car Jack Streets - issue #12698
NPUZ00043 = true
NPEZ00198 = true

[ShaderColorBitmask]
# Colin McRae's DiRT 2 - issue #13012 (water)
ULUS10471 = true
ULJM05533 = true
NPJH50006 = true
ULES01301 = true

# Outrun 2006: Coast to Coast - issue #11358 (car reflections), #11928 (water)
ULES00262 = true
ULUS10064 = true
ULKS46087 = true

# Burnout Dominator - lens flare effect (issue #11100)
ULUS10236 = true
ULES00750 = true
ULJM05242 = true
ULJM05371 = true
NPJH50304 = true
ULES00703 = true
ULAS42095 = true

# Need for Speed - Shift (same as Burnout Dominator)
ULUS10462 = true
ULES01275 = true
ULJM05494 = true
NPJH50143 = true
ULJM05738 = true

# Dragon Ball Z: Tenkaichi Tag Team: Shadows, see issue #18494
ULUS10537 = true
ULES01456 = true
ULJS00311 = true 
ULJS19067 = true
ULAS42247 = true
ULAS42318 = true

[MpegAvcWarmUp]
# God Eater issue #13527 ,It is custom mpeg library that required sceMpegGetAvcAu return ERROR_MPEG_NO_DATA but break FIFA 14 issue #14086
# God Eater 1
ULJS00237 = true
ULKS46238 = true

# God Eater 2
ULJS00597 = true
NPJH50832 = true
ULJS19093 = true
NPJH50832 = true

# God Eater Burst
ULJS00351 = true
NPJH50352 = true
ULJS00350 = true
ULKS46263 = true
ULUS10563 = true
ULES01519 = true
ULJS19056 = true
NPJH50352 = true
ULUS10563FV = true
ULJS19081 = true
NPJH50352 = true

# Field Commander, see issue #10209
ULUS10088 = true
ULES00335 = true
ULKS46070 = true

# Valkyrie Profile Lenneth (last video crash, see #6008)
ULUS10107 = true
ULJM05101 = true
ULES00724 = true
ULJM05320 = true

[CenteredLines]
# Echochrome looks better with these. Related: #15556
UCES01011 = true
UCAS40197 = true
NPEG00006 = true
NPUG80135 = true

# Webfest homebrew game (wireframe 3D rendering) looks substantially better with this.
WEBF00752 = true

[ZZT3SelectHack]
# Bypass softlock on Zettai Zetsumei Toshi 3 character select screen #4901
# This problem affects the game also on PS3
ULJS00191 = true
UCAS40252 = true
UCKS45119 = true
NPJH50907 = true
UCAS40328 = true
ULJS19050 = true
NPJH50907 = true

[AllowLargeFBTextureOffsets]
# Final Fantasy - Type 0, see #18879
ULJM05900 = true
ULJM05901 = true
NPJH50443 = true
NPJH50444 = true
ULJM06217 = true
ULJM06218 = true
UCAS40346 = true
UCAS40347 = true

# Quickfix for Clone Wars, see #12949
ULES01284 = true
ULES01285 = true
ULUS10477 = true

# Star Wars: The Force Unleashed
ULUS10345 = true 
ULKS46143 = true
ULES00981 = true
ULES00982 = true
LBSW10345 = true  # Some modded version found in our report logs

# Juiced 2 bloom effect (see #7295)
ULES00928 = true
ULUS10312 = true
ULKS46154 = true

# Gripshift (see #21367)
ULUS10040 = true
ULES00177 = true
ULKS46040 = true
ULJM05089 = true

[FramebufferAllowLargeVerticalOffset]
# Tokimeki Memorial 4 (see #6379)
NPJH50127 = true
ULKS46226 = true
ULAS42206 = true
ULJM05541 = true

# Breath of Fire III
ULES00193 = true
ULJM05029 = true
ULJM05224 = true
NPJH50214 = true

[AtracLoopHack]
# Atrac looped incorrectly see #7601 #13773 #11586 #10139 #12083
# NOTE: This is no longer relevant after the Atrac3 rewrite, except for old savestates.

#Coded Arms: Contagion
ULUS10184 = true
ULJM05243 = true
ULKS46139 = true

#Gripshift
ULUS10040 = true
ULES00177 = true
ULKS46040 = true
ULJM05089 = true

#Jackass the Game
ULUS10303 = true
ULES00897 = true

#Shrek smash
ULUS10194 = true
ULES00618 = true

# Silver Fall
ULES00808 = true
ULUS10270 = true

[DeswizzleDepth]
# Ratchet & Clank smoke effects (#15859)
UCUS98633 = true
UCAS40145 = true
UCES00420 = true
UCJS10052 = true
UCKS45048 = true
UCJS18030 = true
UCJS18047 = true
NPJG00015 = true

# Jak & Daxter smoke effects (#20002)
UCES01225 = true
UCUS98634 = true
UCUS98755 = true  # demo
NPUG80330 = true
NPHG00042 = true
NPUG98755 = true
NPEG90022 = true
UCES01378 = true
UCKS45131 = true
UCJS10103 = true
NPJG00038 = true

# Ratchet & Clank Secret Agent particle effects (#21079)
UCUS98697 = true
UCUS98707 = true
NPUG70011 = true
UCES00942 = true
UCKS45096 = true
UCET01101 = true
NPEG90010 = true

[SplitFramebufferMargin]
# Killzone: Liberation (see issue #6207)
UCES00279 = true
UCKS45041 = true
UCUS98646 = true
UCET00278 = true
UCUS98670 = true
UCUS98646 = true

[UseFFMPEGFindStreamInfo]
# The Warriors: Works around regression (#8991) by reverting to the old behavior
ULUS10213 = true
ULES00483 = true

# G.I Joe The Rise of Cobra hang workaround (#12374)
ULUS10435 = true
ULES01277 = true

[ForceLowerResolutionForEffectsOn]
# The water effect of DiRT 2 and Outrun doesn't work in higher resolutions.

# Colin McRae's DiRT 2 - issue #13012 (water)
ULUS10471 = true
ULJM05533 = true
NPJH50006 = true
ULES01301 = true

# Outrun 2006: Coast to Coast - issue #11358 (car reflections), #11928 (water)
ULES00262 = true
ULUS10064 = true
ULKS46087 = true

# Burnout Dominator - lens flare effect (issue #11100)
# Some of the steps don't work at high resolution yet.
ULUS10236 = true
ULES00750 = true
ULJM05242 = true
ULJM05371 = true
NPJH50304 = true
ULES00703 = true
ULAS42095 = true

# Need for Speed - Shift (same as Burnout Dominator)
ULUS10462 = true
ULES01275 = true
ULJM05494 = true
NPJH50143 = true
ULJM05738 = true

# Motorstorm - See #16429
UCES01250 = true
UCAS40266 = true
UCUS98743 = true
UCES01250 = true
UCKS45124 = true
UCJS10104 = true
NPJG00047 = true

# Tiger Woods 06 - bloom during rain
ULUS10028 = true
ULES00153 = true
ULES00154 = true
ULJM05059 = true
ULAS42020 = true

# WipEout Pulse (prevents blocky light effects)
UCES00465 = true
NPEG90003 = true
UCUS98712 = true
NPUG70008 = true
UCAS40179 = true
UCKS45078 = true
UCET00713 = true  # Prototype

# WipEout Pure (same as WipEout Pulse)
UCES00001 = true
UCUS98612 = true
UCJS10007 = true
NPJG00059 = true
UCKS45008 = true
ULES00229 = true  # Demo
ULES00230 = true  # Demo
ULES00231 = true  # Demo
ULES00232 = true  # Demo
ULUS10058 = true  # Demo
UMDS10059 = true  # Demo
ULJM05105 = true  # Demo
UCAS40012 = true  # Review
UCED00009 = true  # Prototype
UCED00017 = true  # Prototype
UCET00001 = true  # Prototype
UTST99099 = true  # Prototype
UTST99100 = true  # Prototype
WPCE02025 = true  # Mod

[ForceLowerResolutionForEffectsOff]
# Some games really don't work with this. Ratchet & Clank looks terrible.
UCUS98633 = true
UCAS40145 = true
UCES00420 = true
UCJS10052 = true
UCKS45048 = true
UCES00420 = true
UCJS18030 = true
UCJS18047 = true
NPJG00015 = true

# The various Tantalus games will not work with this.

# Cars Race-o-rama
ULUS10428 = true
ULES01333 = true

# MX vs ATV Reflex
ULES01375 = true
ULUS10429 = true

# MX vs ATV Untamed
ULUS10330 = true
ULES00993 = true
ULKS46176 = true

# Spongebob: The Yellow Avenger
ULES00280 = true
ULUS10092 = true

# Also, it's a really bad idea in Kurohyou.

# Kurohyou: Ryu ga Gotoku Shinshou
ULJM05713 = true
NPJH50333 = true
ULAS42244 = true
UCKS45159 = true
ULJM08047 = true

# Kurohyou 2: Ryu ga Gotoku Ashura Hen (Japan)
NPJH50562 = true
NPJH50333 = true

[NearestFilteringOnFramebufferCreate]
# Ridge Racer speedometer dynamic CLUT problem - they rely on some palette entries
# from memory, and render to the rest of the palette. The palette entries loaded from memory
# must not be blurred by filtering, so nearest it is. See issue #8509

# Ridge Racer
ULJS00001 = true
ULUS10001 = true
UCKS45002 = true
UCES00002 = true
ULJS19002 = true
UCKS45053 = true
NPJH50140 = true

# Ridge Racer 2
ULJS00080 = true
UCKS45032 = true
UCES00422 = true
UCAS40273 = true
NPJH50366 = true

[AllowDownloadCLUT]
# Temporary compatibility option, while working on the GPU CLUT-from-framebuffer path.
# Not required for any games now that it works, but might be useful for development.

[SecondaryTextureCache]
# Was previously the "Retain changed textures" setting.
# See https://github.com/hrydgard/ppsspp/issues/16339#issuecomment-1304826656

# Popolocrois
UCJS10005 = true
UCAS40009 = true
ULUS10018 = true
UCJS18003 = true
ULES00291 = true
NPJG00033 = true

# Fushigi no Dungeon: Fuurai no Shiren 4 Plus - Kami no Hitomi to Akuma no Heso
ULJS00547 = true
NPJH50698 = true

[EnglishOrJapaneseOnly]
# Twinbee Portable, see issue #16382
ULAS42089 = true
ULJM05221 = true
ULJM05323 = true

[OldAdrenoPixelDepthRoundingGL]
# See #16015

# Naruto Shippuden: Ultimate Ninja Impact
ULUS10582 = true
ULES01537 = true
ULJS00390 = true
ULAS42297 = true
ULJS19071 = true
NPJH50435 = true
NPJH50435 = true

# Kingdom Hearts - Birth By Sleep
ULES01441 = true
ULJM05600 = true
ULUS10505 = true
ULJM05775 = true  # Final MIX
PSPJ30012 = true
UCAS40295 = true
UCKS45143 = true
UCAS40317 = true
UCAS40326 = true
UCKS45168 = true
ULJM06213 = true
ULJM06214 = true

# Monster Hunter Portable 3rd
NPJB40001 = true
NPJH55800 = true
ULJM05800 = true
ULJM08058 = true

# Persona 3 Portable
ULES01523 = true
ULUS10512 = true
UCAS40288 = true
ULJM05489 = true
UCKS45140 = true
ULJM08044 = true
NPJH50040 = true
UCKS45175 = true

# Hack/Link
ULJS00266 = true
ULJS00279 = true
ULJS19058 = true

# Midnight Club: LA Remix
ULUS10383 = true
ULES01144 = true
ULJS00180 = true
ULJS00267 = true
ULJM05904 = true
NPJH50440 = true

# ModNation Racers
UCES01327 = true
UCUS98741 = true
UCAS40306 = true
UCJS10112 = true
NPJG00116 = true
NPUG70097 = true  # Demo

# Toca Race Driver 3 / DTM Race Driver 3 / V8 Supercars Shootout 3
ULES00613 = true
ULES00615 = true
ULES00614 = true

# Toca Race Driver 2 / DTM Race Driver 2
ULES00040 = true
ULES00041 = true
ULJM05160 = true

[ForceCircleButtonConfirm]
# Shining Ark, issue #15663
NPJH50717 = true
ULJM06223 = true

# Danball Senki, issue #17622
ULJS00361 = true
# Danball Senki Boost
ULJM05990 = true

# Shining Blade
NPJH50530 = true

[DisallowFramebufferAtOffset]
# Little Big Planet, see #16030
UCUS98744 = true
UCES01264 = true
UCJS10107 = true
NPJG00073 = true
UCAS40262 = true

# WWE Smackdown vs RAW 2006 : See #13797
ULES00227 = true
ULKS46057 = true
ULUS10050 = true

# WWE Smackdown vs RAW 2007
ULUS10199 = True
ULES00631 = True
ULJM05233 = True

# Rainbow Six: Vegas: See #9324
# Replaces a heuristic we added in #16971, which broke Castlevania - Symphony of the Night.
ULES00584 = true
ULUS10206 = true

[RockmanDash2SoundFix]
# Rockman Dash 2, see #11442
ULJM05037 = true
ULJM05216 = true
NPJH50181 = true

[SoftwareRasterDepth]
# Midnight Club: LA Remix (see #18625)
ULUS10383 = true
ULES01144 = true
ULJS00180 = true
ULJS00267 = true
ULJM05904 = true
NPJH50440 = true

# Syphon Filter - Dark Mirror (light flares, see #10229)
UCES00310 = true
UCUS98641 = true
UCUS98656 = true
UCUS98656 = true  # Demo

# Syphon Filter - Logan's Shadow (light flares, see #10229)
UCUS98606 = true
UCES00710 = true
NPUG80173 = true
NPUA80013 = true  # Demo
UCUS98704 = true  # Demo
NPEG90002 = true  # Demo
SYPH04036 = true  # Prototype?

# Syphon Filter - Combat Ops (weird multiplayer-only variant)
NPUG80114 = true
NPEG00004 = true

# WipEout Pure (see #13344, sun lens flare)
UCES00001 = true
UCUS98612 = true
UCJS10007 = true
NPJG00059 = true
UCKS45008 = true
ULES00229 = true  # Demo
ULES00230 = true  # Demo
ULES00231 = true  # Demo
ULES00232 = true  # Demo
ULUS10058 = true  # Demo
UMDS10059 = true  # Demo
ULJM05105 = true  # Demo
UCAS40012 = true  # Review
UCED00009 = true  # Prototype
UCED00017 = true  # Prototype
UCET00001 = true  # Prototype
UTST99099 = true  # Prototype
UTST99100 = true  # Prototype
WPCE02025 = true  # Mod

# Resistance Retribution (see #18703)
UCES01184 = true
UCUS98668 = true
UCJP00174 = true

# Armored Core: Silent Line (see #17597)
ULJM05552 = true
UCAS40289 = true
NPUH10025 = true
NPEH00047 = true

# L.A. Rush (also known as just Rush) (sun lens flare)
ULES00554 = true
ULUS10174 = true

[BlockTransferDepth]
# Iron Man - see issue #16530
# Note that this option also requires IntraVRAMBlockTransferAllowCreateFB.
ULES01070 = true
ULES01071 = true
ULUS10347 = true

# Hayate no Gotoku!! Nightmare Paradise - see issue #17878
ULJM05416 = true

[DaxterRotatedAnalogStick]
# Daxter (see issue #17015)
UCUS98618 = true
UCUS98654 = true
UCES00044 = true
NPUG80329 = true
NPEG00025 = true
UCKS45025 = true

# GOW : Ghost of Sparta
UCUS98737 = true
UCAS40323 = true
NPHG00092 = true
NPEG00044 = true
NPEG00045 = true
NPJG00120 = true
NPUG80508 = true
UCJS10114 = true
UCES01401 = true
UCES01473 = true
# GOW : Ghost of Sparta Demo
NPJG90095 = true
NPEG90035 = true
NPUG70125 = true
# GOW : Chains Of Olympus
UCAS40198 = true
UCUS98653 = true
UCES00842 = true
ULJM05438 = true
ULJM05348 = true
UCKS45084 = true
NPUG80325 = true
NPEG00023 = true
NPHG00027 = true
NPHG00028 = true
NPJH50170 = true
UCET00844 = true
# GOW: Chains of Olympus Demo
UCUS98705 = true
UCED00971 = true
UCUS98713 = true

[SOCOMClut8Replacement]
# SOCOM and other games use CLUT8 with crafty sampling as if it was CLUT16. Issue #16210
UCES00855 = true
UCUS98649 = true
NPUG70003 = true  # demo
UCUS98714 = true  # demo

# SOCOM Fireteam Bravo 3
UCES01242 = true
NPHG00032 = true
UCUS98716 = true
NPEG90024 = true  # demo

# SOCOM Navy Seals Portable (Japanese version)
UCJS10102 = true
NPJG00035 = true
NPJG90068 = true  # demo

[Fontltn12Hack]
# optimumFont do not return ltn12.pgf see #11055
NPJH00052  = true

[LoadCLUTFromCurrentFrameOnly]
# Helps Syphon Filter: Logan's Shadow color issue, # where we accidentally load a CLUT from an outdated framebuffer.
# Perhaps this should be the default.
UCUS98606 = true
UCES00710 = true
NPUG80173 = true
NPUA80013 = true  # Demo
UCUS98704 = true  # Demo
NPEG90002 = true  # Demo
SYPH04036 = true  # Prototype?

[ForceUMDReadSpeed]
# Aces of War required slow read speed (even in Real PSP), see #11062
ULES00590 = true
ULJM05075 = true
# Sengoku Musou 3Z Special DLC see #9993
ULJM06024 = true

# Bejeweled 2. This shouldn't really fix anything since it's a PSN game that didn't run from UMD,
# but apparently it does work around the timing error. See issue #15304 .
NPUG30038 = true
NPEG00036 = true

# Doko Demo Issho, load savedata error see #18420
UCJS10002 = true
UCJS18002 = true

# Driver 76, see #16904 #12054
ULUS10235 = true
ULES00740 = true

# Harukanaru Toki no Naka de 3 with Izayoiki Aizouban, see #6127
ULJM05441 = true
KOEIP0167 = true
ULJM06245 = true

# Ace Combat: Joint Assault #12434
ULUS10511 = true
ULES01408 = true

# Ace Combat X2: Joint Assault #5545
ULJS00290 = true
ULKS46254 = true
ULJS19057 = true
NPJH50263 = true

# Tales of the World: Radiant Mythology 2 - #19196
ULJS00175 = true
UCAS40244 = true
UCKS45110 = true
ULJS19044 = true
NPJH50852 = true

# Crash of the Titans - #12510
ULES00915 = true
ULES00916 = true
ULES00917 = true
ULES00918 = true
ULUS10304 = true

# Resistance Retribution - reported to be more stable. #20421
UCES01184 = true
UCUS98668 = true
UCJP00174 = true

# Twisted Metal sound effects breakages are improved further with this - see #10933
UCES00018 = true
UCUS98601 = true

[TacticsOgreEliminateDebugReadback]
ULUS10565 = true
ULES01500 = true
ULJM05753 = true
NPJH50348 = true
ULJM06009 = true
UCKS45164 = true

[DisableMemcpySlicing]
# Resistance (#18821)
UCES01184 = true
UCUS98668 = true
UCJP00174 = true

# Syphon Filter, see issue #20625

# Logan's Shadow
UCUS98606 = true
UCES00710 = true
NPUG80173 = true
NPUA80013 = true  # Demo
UCUS98704 = true  # Demo
NPEG90002 = true  # Demo
SYPH04036 = true  # Prototype?
# Combat Ops
NPUG80114 = true
NPEG00004 = true

[ForceHLEPsmf]
# See issue #20467
NPUH10105 = true
NPEH00122 = true

[SaveStatesNotRecommended]
# MONSTER HUNTER FREEDOM
UCKS45036 = true
ULUS10084 = true
ULAS42060 = true

# MONSTER HUNTER FREEDOM(TM)
ULES00318 = true

# MONSTER HUNTER FREEDOM 2
ULUS10266 = true
ULES00851 = true

# MONSTER HUNTER FREEDOM UNITE
ULED01244 = true
ULES01213 = true
ULUS10391 = true
ULUS10391 = true

# Monster Hunter Freedom Unite (Demo)
ULUS90003 = true

# Monster Hunter Portable
ULJM05066 = true

# Monster Hunter Portable 2nd
ULJM05156 = true

# Monster Hunter Portable 2nd G
ULJM05500 = true

# Monster Hunter Portable 3rd
NPJH90146 = true 
ULJM05800 = true
NPJB40001 = true
NPJH55800 = true
ULJM08058 = true

# Monster Hunter Portable 3rd HD
NPJB40001 = true 

# Patapon 3
UCUS98751 = true
UCAS40318 = true
UCJS10113 = true
UCKS45169 = true
NPJG00122 = true
UCJS18048 = true
UCES01421 = true
UCJS18059 = true

[IgnoreEnqueue]
#Metal Gear Acid 2 Special Card Videos Can Crash PPSSPP Issue #10906
ULUS10077 = true

[MsgDialogAutoStatus]
# Ghost Recon - Predator. See #20856
ULUS10445 = true
ULES01350 = True

[NullPageValid]
# Works around crashes in some games (such as GoW: GoS, see issue #14958) that access invalid memory pages, by mapping some extra memory at address 0.
# GOW : Ghost of Sparta
UCUS98737 = true
UCAS40323 = true
NPHG00092 = true
NPEG00044 = true
NPEG00045 = true
NPJG00120 = true
NPUG80508 = true
UCJS10114 = true
UCES01401 = true
UCES01473 = true
# GOW : Ghost of Sparta Demo
NPJG90095 = true
NPEG90035 = true
NPUG70125 = true

[DetectDestBlendSquared]
# Fixes the problem in Brave Story where we had to copy the framebuffer to blend it with itself.
# We can just do that blend natively on PC. See #19820
ULUS10279 = true
UCJS10024 = true
UCAS40096 = true

[BoostExactFramebufferMatch]
# Tales of Phantasia X, retro subgame. See issue #21162
ULJS00293 = true
ULKS46257 = true
ULJS19073 = true
NPJH50848 = true

[PersistentFramebuffers]
# A few games render to framebuffers and count on them sticking around "forever", like Mahjong Artifacts.
NPUZ00062 = true  # Mahjong Artifacts (MJA)
NPEZ00194 = true  # Mahjong Artifacts (MJA)
NPEZ00003 = true  # MJA 2
NPUZ00006 = true  # MJA 2

[FileCreatedTimeHack]
# Silent Hill: Shattered Memories does some strange checks of the file-created time, which won't pass on some platforms. See issue #13781
ULES01352 = true
ULUS10450 = true
ULAS42189 = true
ULJM05564 = true
ULJM05828 = true
NPJH50148 = true

[FastEmulatedGPU]
# Crude hack that makes the emulated GPU appear a lot faster, removing internal slowdowns in games. This makes Outrun stick to 60fps.
# Outrun 2006: Coast to Coast - issue #11358 (car reflections)
ULES00262 = true
ULUS10064 = true
ULKS46087 = true

[CorrectCullAfterClip]
# Only two known games need culling to happen accurately *after* clipping: Sengoku Cannon and Flatout.

# Sengoku Cannon
UCAS40019 = true
ULJM05021 = true

# Flatout
ULUS10328 = true
ULES00968 = true
ULES00969 = true

[SpriteBorderFix]
# Pushes texture coordinates slightly inwards on detected 2D sprites, to avoid edge glitches.
# The number is in texels. Useful for example on the pause screen in GTA.
# NOTE: This is currently tuned only for GTA, but may work with some other games too with filtering
# problems. 0.5 is half a texel, which seems to be enough to smooth everything out.

# NOTE: Negative values are interpreted as applying from both top, left, bottom and right,
# while positive values only apply to bottom and right. Different games need different measures.

# Grand Theft Auto: Vice City Stories
ULUS10160 = 0.5
ULES00502 = 0.5
ULES00503 = 0.5
ULJM05297 = 0.5
ULJM05395 = 0.5
ULJM05884 = 0.5
NPJH50827 = 0.5
# Grand Theft Auto: Vice City Stories (prototypes)
ULET00417 = 0.5
# Grand Theft Auto: Liberty City Stories
ULUS10041 = 0.5
ULES00151 = 0.5
ULES00182 = 0.5
ULJM05255 = 0.5
ULJM05359 = 0.5
ULJM05885 = 0.5
NPJH50825 = 0.5
# Grand Theft Auto: Liberty City Stories (prototypes)
ULUX80146 = 0.5
# Grand Theft Auto: Sindacco Chronicles (GTA LCS romhack)
ULUS01826 = 0.5
# Seen in Liberty City (GTA LCS romhack)
ULUS11826 = 0.5

# Tales of Destiny 2
# Unfortunately, this affects game backgrounds negatively, although fixes lines in the menus.
ULJS00097 = -0.25
