From dc52ec7aec1b80691b7cdd813090a0f7288602de Mon Sep 17 00:00:00 2001 From: Tyler Wilding Date: Fri, 13 Nov 2020 23:39:07 -0500 Subject: [PATCH] GameDB: Detect and skip patches with duplicate CRCs --- pcsx2/GameDatabase.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pcsx2/GameDatabase.cpp b/pcsx2/GameDatabase.cpp index a5a4c11a61..078a149dd1 100644 --- a/pcsx2/GameDatabase.cpp +++ b/pcsx2/GameDatabase.cpp @@ -137,10 +137,19 @@ GameDatabaseSchema::GameEntry YamlGameDatabaseImpl::entryFromYaml(const std::str for (YAML::const_iterator it = patches.begin(); it != patches.end(); ++it) { const YAML::Node& node = *it; + std::string crc = safeGetString(node, "crc", "default"); + + if (gameEntry.patches.count(crc) == 1) + { + Console.Error(fmt::format("[GameDB] Patch with duplicate CRC: '{}' detected for serial: '{}'. Skipping patch.", crc, serial)); + continue; + } + GameDatabaseSchema::Patch patchCol; + patchCol.author = safeGetString(node, "author"); patchCol.patchLines = safeGetMultilineString(node, "content"); - gameEntry.patches[safeGetString(node, "crc", "default")] = patchCol; + gameEntry.patches[crc] = patchCol; } } }