Files
ppsspp/assets/compat.ini
T
Henrik Rydgård c4c7897a26 Enable BlockTransferAllowCreateFB for Burnout Dominator.
See #11100.

Speeds up the sun effect, but doesn't fix it. It's another game that
does truly evil stuff in the border of a 480x272 buffer with stride 512.
It downsamples a copy of the region around the sun, texturing from
itself, resulting in five fullscreen framebuffer copies. Additionally it
renders using color to the depth buffer at some point in the frame..
2020-09-24 23:03:27 +02:00

770 lines
19 KiB
INI

# ========================================================================================
# 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
[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
[DepthRangeHack]
# Phantasy Star Portable 2 and Infinity both use viewport depth outside [0, 1].
# This gets clamped in our current implementation, but attempts to fix it run into
# Other bugs, so we've restored this hack for now.
# 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
# Test Drive Unlimited
# just to disable range culling without adding another hack
# since it causes a lot of missing geometry when driving
ULES00637 = true
ULKS46126 = true
ULUS10249 = true
# Metal Gear Solid : Peace Walker (see issue #12348)
ULUS10509 = true
ULES01372 = true
ULJM08038 = true
NPJH50045 = true
ULJM05630 = true
NPJH90082 = true
NPJH90063 = true
# Metal Gear Solid : Peace Walker Demo Ops (see issue #12348)
NPUH90066 = true
NPHH00145 = true
NPEH90023 = true
# Metal Gear Solid: Portable Ops (see issue #12348)
ULES00645 = true
ULJM05193 = true
ULJM05227 = true
ULUS10202 = true
ULES01003 = true
ULJM05261 = true
ULUS10290 = true
ULED90040 = true
ULJM05284 = true
ULES00645 = 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
# Fireteam Bravo 3
NPHG00032 = true
UCUS98716 = true
UCES01242 = true
[Force04154000Download]
# This applies a hack to Dangan Ronpa, its demo, and its sequel.
# 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.
NPJH50631 = true
NPJH50372 = true
NPJH90164 = true
NPJH50515 = true
# Let's also apply to Me & My Katamari.
ULUS10094 = true
ULES00339 = true
ULJS00033 = true
UCKS45022 = true
ULJS19009 = true
NPJH50141 = true
[DisableReadbacks]
# MotoGP copies the framebuffer to RAM every frame. We have a hack to display it directly,
# which means we don't also need a readback.
ULJS00078 = true
ULUS10153 = true
UCES00373 = 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.
# Crash Tag Team Racing needs it to pass checking memory stick screen.
ULES00168 = true
ULES00169 = true
ULES00170 = true
ULES00171 = true
ULES00172 = true
ULJM05036 = true
ULUS10044 = true
# 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
[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
[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
# GTA : VCS
ULUS10160 = true
ULES00502 = true
ULES00503 = true
ULJM05297 = true
ULJM05395 = true
ULJM05884 = true
NPJH50827 = true
# GTA : LCS
ULUS10041 = true
ULES00151 = true
ULES00182 = true
ULJM05255 = true
ULJM05359 = true
ULJM05885 = true
NPJH50825 = true
ULKS46157 = true
# GOW : JP/Korean
UCJS10114 = true
UCKS45084 = 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
UCES00044 = true
NPUG80329 = true
NPEG00025 = 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
# TODO: There are many more.
[RequireBlockTransfer]
# Warn the user that the game will have issue graphic, if simulate block transfer is not enabled.
# Ys Seven need it to fix minimap. See issues #2928
ULUS10551 = true
ULJM05475 = true
NPEH00065 = true
NPJH50350 = true
ULJM08041 = true
NPEH00065 = true
# 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
# TODO: Will add some games in the future
NPJH50686 = true # Digimon Adventures (JP, and English patches...)
ULJS00078 = true # MotoGP
ULUS10153 = true # MotoGP
UCES00373 = true # MotoGP
ULUS10551 = true # Ys Seven
ULJM05475 = true # Ys Seven JP
ULUS10549 = true # Ys Seven
NPEH00065 = true # Ys Seven
NPJH50350 = true # Ys Seven
ULJM08041 = true # Ys Seven
[DisableAccurateDepth]
# 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
# Shadow of Destiny (#9545)
ULUS10459 = true
NPJH50036 = true
# Burnout games have problems with this on Mali, and have no use for it
# Legends
#ULES00125 = true
#ULUS10025 = true
#ULJM05228 = true
#NPJH50305 = true
#ULJM05049 = true
#ULKS46027 = true
#ULAS42019 = true
# Dominator
ULUS10236 = true
ULES00750 = true
ULJM05242 = true
ULJM05371 = true
NPJH50304 = true
ULES00703 = true
ULAS42095 = 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
ULES01376 = true
ULUS10466 = 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]
NPJH50686 = true # Digimon Adventures (JP, and English patches...)
ULJS00078 = true # MotoGP
ULUS10153 = true # MotoGP
UCES00373 = true # MotoGP
ULUS10551 = true # Ys Seven
ULJM05475 = true # Ys Seven JP
ULUS10549 = true # Ys Seven
NPEH00065 = true # Ys Seven
NPJH50350 = true # Ys Seven
ULJM08041 = true # Ys Seven
# 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
# 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
# Innocent Life (see issue #2830)
UCAS40079 = true
ULUS10219 = true
ULES00658 = true
UCAS40187 = true
ULJS00119 = true
ULKS46167 = true
NPJH50017 = true
[ForceMax60FPS]
# The GOW games are very heavy and render as fast as they can. They benefit greatly from
# capping the framerate at 60fps.
UCJS10114 = true
UCKS45084 = 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
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
# 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
ULES01376 = true
ULUS10466 = 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
ULUS10201 = true # Luxor: The Wrath of Set
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
[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
[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
[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
[DarkStalkersPresentHack]
# Darkstalkers
ULES00016 = true
ULUS10005 = true
ULJM05005 = true