separate unimplemented syscall checks from fatal errors

This commit is contained in:
13xforever 2019-05-17 12:55:43 +05:00
parent 5fcf7109b3
commit 807176b739
2 changed files with 11 additions and 6 deletions

View File

@ -174,7 +174,7 @@ namespace CompatBot.EventHandlers.LogParsing
["LDR: EDAT: "] = new Regex(@"EDAT: Block at offset (?<edat_block_offset>0x[0-9a-f]+) has invalid hash!.*?\r?$", DefaultOptions),
["PS3 firmware is not installed"] = new Regex(@"(?<fw_missing_msg>PS3 firmware is not installed.+)\r?$", DefaultOptions),
["do you have the PS3 firmware installed"] = new Regex(@"(?<fw_missing_something>do you have the PS3 firmware installed.*)\r?$", DefaultOptions),
["Unimplemented syscall"] = new Regex(@"U \d+:\d+:\d+\.\d+ ({(?<fatal_error_context>.+?)} )?.*(?<fatal_error>Unimplemented syscall syscall_\d+ .*)\r?$", DefaultOptions),
["Unimplemented syscall"] = new Regex(@"U \d+:\d+:\d+\.\d+ ({(?<unimplemented_syscall_context>.+?)} )?.*Unimplemented syscall (?<unimplemented_syscall>.*)\r?$", DefaultOptions),
["Could not enqueue"] = new Regex(@"cellAudio: Could not enqueue buffer onto audio backend(?<enqueue_buffer_error>.).*\r?$", DefaultOptions),
},
OnNewLineAsync = LimitedPiracyCheckAsync,

View File

@ -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))