only show simpsons note on older builds without patch applied

fixes #941
This commit is contained in:
13xforever 2023-09-19 12:09:13 +05:00
parent 5419938ac1
commit fcd88cef82
No known key found for this signature in database
GPG Key ID: 2B2A36B482FE70C5
3 changed files with 21 additions and 17 deletions

View File

@ -37,9 +37,7 @@ internal static partial class LogParserResult
var serial = items["serial"] ?? "";
BuildFatalErrorSection(builder, items, multiItems, notes);
Version? buildVersion = null;
if (items["build_branch"] is "HEAD" or "master")
Version.TryParse(items["build_full_version"], out buildVersion);
TryGetRpcs3Version(items, out var buildVersion);
var supportedGpu = string.IsNullOrEmpty(items["rsx_unsupported_gpu"]) && items["supported_gpu"] != DisabledMark;
var unsupportedGpuDriver = false;
if (Config.Colors.CompatStatusNothing.Equals(builder.Color.Value) || Config.Colors.CompatStatusLoadable.Equals(builder.Color.Value))
@ -541,8 +539,7 @@ internal static partial class LogParserResult
}
else if (fatalError.Contains("RSX Decompiler Thread"))
{
if (items["build_branch"] is "HEAD" or "master"
&& Version.TryParse(items["build_full_version"], out var v)
if (TryGetRpcs3Version(items, out var v)
&& v >= DecompilerIssueStartVersion
&& v < DecompilerIssueEndVersion)
{

View File

@ -29,9 +29,7 @@ internal static partial class LogParserResult
var hasTsxFa = items["cpu_extensions"]?.Contains("TSX-FA") ?? false;
items["has_tsx"] = hasTsx ? EnabledMark : DisabledMark;
items["has_tsx_fa"] = hasTsxFa ? EnabledMark : DisabledMark;
Version? buildVersion = null;
if (items["build_branch"] is "HEAD" or "master"
&& Version.TryParse(items["build_full_version"], out buildVersion)
if (TryGetRpcs3Version(items, out var buildVersion)
&& buildVersion < TsxFaFixedVersion)
{
if (items["enable_tsx"] == "Disabled" && hasTsx && !hasTsxFa)
@ -403,7 +401,7 @@ internal static partial class LogParserResult
CheckP5Settings(serial, items, notes, generalNotes, ppuHashes, ppuPatches, patchNames);
CheckAsurasWrathSettings(serial, items, notes);
CheckJojoSettings(serial, state, notes, ppuPatches, ppuHashes, generalNotes);
CheckSimpsonsSettings(serial, generalNotes);
CheckSimpsonsSettings(serial, items, generalNotes, ppuPatches, patchNames);
CheckNierSettings(serial, items, notes, ppuPatches, ppuHashes, generalNotes);
CheckDod3Settings(serial, items, notes, ppuPatches, ppuHashes, generalNotes);
CheckScottPilgrimSettings(serial, items, notes, generalNotes);
@ -700,9 +698,14 @@ internal static partial class LogParserResult
}
}
private static void CheckSimpsonsSettings(string serial, List<string> generalNotes)
private static void CheckSimpsonsSettings(string serial, NameValueCollection items, List<string> generalNotes, Dictionary<string, int> ppuPatches, UniqueList<string> patchNames)
{
if (serial is "BLES00142" or "BLUS30065")
if (serial is not ("BLES00142" or "BLUS30065"))
return;
var hasPatch = ppuPatches.Any() && patchNames.Any(n => n.Contains("Fix pad initialization", StringComparison.OrdinalIgnoreCase));
if ((!TryGetRpcs3Version(items, out var v) || v < FixedSimpsonsBuild)
&& !hasPatch)
generalNotes.Add(" This game has a controller initialization bug. Please use [the patch](https://wiki.rpcs3.net/index.php?title=The_Simpsons_Game#Patches).");
}
@ -944,8 +947,7 @@ internal static partial class LogParserResult
notes.Add("⚠️ Please enable `Read Color Buffers`");
var depthBufferPatchesAreApplied = ppuPatches.Any() && patchNames.Count(n => n.Contains("depth buffer", StringComparison.OrdinalIgnoreCase)) > 1;
if (items["build_branch"] is "HEAD" or "master"
&& Version.TryParse(items["build_full_version"], out var buildVersion)
if (TryGetRpcs3Version(items, out var buildVersion)
&& buildVersion < FixedTlouRcbBuild)
{
if (items["read_depth_buffer"] == EnabledMark)

View File

@ -73,9 +73,8 @@ internal static partial class LogParserResult
private static readonly Version IntelThreadSchedulerBuildVersion = new(0, 0, 15, 12008);
private static readonly Version PsnDiscFixBuildVersion = new(0, 0, 18, 12783);
private static readonly Version CubebBuildVersion = new(0, 0, 19, 13050);
private static readonly Version FixedTlouRcbBuild = new Version(0, 0, 21, 13432); // the best I got was "it was fixed more than a year ago", so it's just a random build from a year ago
private static readonly Version FixedTlouRcbBuild = new(0, 0, 21, 13432); // the best I got was "it was fixed more than a year ago", so it's just a random build from a year ago
private static readonly Version FixedSimpsonsBuild = new(0, 0, 29, 15470);
private static readonly Dictionary<string, string> RsxPresentModeMap = new()
{
@ -432,7 +431,7 @@ internal static partial class LogParserResult
}
else
{
builder = new DiscordEmbedBuilder
builder = new()
{
Description = "Log analysis failed. Please try again.",
Color = Config.Colors.LogResultFailed,
@ -1189,4 +1188,10 @@ internal static partial class LogParserResult
}
return result;
}
private static bool TryGetRpcs3Version(NameValueCollection items, out Version? version)
{
version = null;
return items["build_branch"] is "HEAD" or "master" && Version.TryParse(items["build_full_version"], out version);
}
}