From 807176b739495a14fda6b73b31f76e3652d145f9 Mon Sep 17 00:00:00 2001 From: 13xforever Date: Fri, 17 May 2019 12:55:43 +0500 Subject: [PATCH] separate unimplemented syscall checks from fatal errors --- .../LogParsing/LogParser.LogSections.cs | 2 +- ...ogParserResultFormatter.GeneralNotesSection.cs | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs b/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs index 816f2016..0095fea9 100644 --- a/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs +++ b/CompatBot/EventHandlers/LogParsing/LogParser.LogSections.cs @@ -174,7 +174,7 @@ namespace CompatBot.EventHandlers.LogParsing ["LDR: EDAT: "] = new Regex(@"EDAT: Block at offset (?0x[0-9a-f]+) has invalid hash!.*?\r?$", DefaultOptions), ["PS3 firmware is not installed"] = new Regex(@"(?PS3 firmware is not installed.+)\r?$", DefaultOptions), ["do you have the PS3 firmware installed"] = new Regex(@"(?do you have the PS3 firmware installed.*)\r?$", DefaultOptions), - ["Unimplemented syscall"] = new Regex(@"U \d+:\d+:\d+\.\d+ ({(?.+?)} )?.*(?Unimplemented syscall syscall_\d+ .*)\r?$", DefaultOptions), + ["Unimplemented syscall"] = new Regex(@"U \d+:\d+:\d+\.\d+ ({(?.+?)} )?.*Unimplemented syscall (?.*)\r?$", DefaultOptions), ["Could not enqueue"] = new Regex(@"cellAudio: Could not enqueue buffer onto audio backend(?.).*\r?$", DefaultOptions), }, OnNewLineAsync = LimitedPiracyCheckAsync, diff --git a/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs b/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs index be940d55..7cea686b 100644 --- a/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs +++ b/CompatBot/Utils/ResultFormatters/LogParserResultFormatter.GeneralNotesSection.cs @@ -44,17 +44,22 @@ namespace CompatBot.Utils.ResultFormatters if (context.StartsWith("PPU", StringComparison.InvariantCultureIgnoreCase)) notes.Add("❌ PPU cache might be corrupted; right-click on the game, then `Remove` → `PPU Cache`"); } - else if (fatalError.Contains("syscall_9")) + else if (fatalError.Contains("Unknown primitive type")) { + notes.Add("⚠ RSX desync detected, it's probably random"); + } + } + else if (items["unimplemented_syscall"] is string unimplementedSyscall) + { + if (unimplementedSyscall.Contains("syscall_988")) + { + fatalError = "Unimplemented syscall " + unimplementedSyscall; + builder.AddField("Fatal Error", $"```{fatalError.Trim(1022)}```"); if (items["ppu_decoder"] is string ppuDecoder && ppuDecoder.Contains("Recompiler") && !Config.Colors.CompatStatusPlayable.Equals(builder.Color.Value)) notes.Add("⚠ PPU desync detected; check your save data for corruption and/or try PPU Interpreter"); else notes.Add("⚠ PPU desync detected, most likely cause is corrupted save data"); } - else if (fatalError.Contains("Unknown primitive type")) - { - notes.Add("⚠ RSX desync detected, it's probably random"); - } } if (Config.Colors.CompatStatusNothing.Equals(builder.Color.Value) || Config.Colors.CompatStatusLoadable.Equals(builder.Color.Value))