Add compat flag to not load CLUTs from old framebuffers

This commit is contained in:
Henrik Rydgård committed 2023-08-24 10:30:37 +02:00
1 parent 044624e218
commit 16d073c4ad
4 files changed
+15 -1

No files matched your search

+1
View File
@@ -132,6 +132,7 @@ void Compatibility::CheckSettings(IniFile &iniFile, const std::string &gameID) {
CheckSetting(iniFile, gameID, "ForceMaxDepthResolution", &flags_.ForceMaxDepthResolution);
CheckSetting(iniFile, gameID, "SOCOMClut8Replacement", &flags_.SOCOMClut8Replacement);
CheckSetting(iniFile, gameID, "Fontltn12Hack", &flags_.Fontltn12Hack);
CheckSetting(iniFile, gameID, "LoadCLUTFromCurrentFrameOnly", &flags_.LoadCLUTFromCurrentFrameOnly);
}
void Compatibility::CheckVRSettings(IniFile &iniFile, const std::string &gameID) {
+1
View File
@@ -102,6 +102,7 @@ struct CompatFlags {
bool ForceMaxDepthResolution;
bool SOCOMClut8Replacement;
bool Fontltn12Hack;
bool LoadCLUTFromCurrentFrameOnly;
};
struct VRCompat {
+2 -1
View File
@@ -1355,7 +1355,8 @@ void TextureCacheCommon::LoadClut(u32 clutAddr, u32 loadBytes) {
// the framebuffer with the smallest offset. This is yet another framebuffer matching
// loop with its own rules, eventually we'll probably want to do something
// more systematic.
if (matchRange && !inMargin && offset < (int)clutRenderOffset_) {
bool okAge = !PSP_CoreParameter().compat.flags().LoadCLUTFromCurrentFrameOnly || framebuffer->last_frame_used == gpuStats.numFlips;
if (matchRange && !inMargin && offset < (int)clutRenderOffset_ && okAge) {
WARN_LOG_N_TIMES(clutfb, 5, G3D, "Detected LoadCLUT(%d bytes) from framebuffer %08x (%s), byte offset %d, pixel offset %d",
loadBytes, fb_address, GeBufferFormatToString(framebuffer->fb_format), offset, offset / fb_bpp);
framebuffer->last_frame_clut = gpuStats.numFlips;
+11
View File
@@ -1593,3 +1593,14 @@ 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?