boxart: ignore disks with invalid ip_meta. sanitize disk id chars
This commit is contained in:
parent
55600c40a9
commit
a6ac753c64
|
@ -94,6 +94,16 @@ void OfflineScraper::scrape(GameBoxart& item)
|
||||||
disc->ReadSectors(disc->GetBaseFAD(), 1, sector, sizeof(sector));
|
disc->ReadSectors(disc->GetBaseFAD(), 1, sector, sizeof(sector));
|
||||||
ip_meta_t diskId;
|
ip_meta_t diskId;
|
||||||
memcpy(&diskId, sector, sizeof(diskId));
|
memcpy(&diskId, sector, sizeof(diskId));
|
||||||
|
// Sanity check
|
||||||
|
if (memcmp(diskId.hardware_id, "SEGA SEGAKATANA ", sizeof(diskId.hardware_id))
|
||||||
|
|| memcmp(diskId.maker_id, "SEGA ENTERPRISES", sizeof(diskId.maker_id)))
|
||||||
|
{
|
||||||
|
WARN_LOG(COMMON, "Invalid IP META for disk %s", item.gamePath.c_str());
|
||||||
|
item.scraped = true;
|
||||||
|
item.uniqueId.clear();
|
||||||
|
item.searchName.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (item.boxartPath.empty())
|
if (item.boxartPath.empty())
|
||||||
{
|
{
|
||||||
|
@ -122,6 +132,9 @@ void OfflineScraper::scrape(GameBoxart& item)
|
||||||
delete disc;
|
delete disc;
|
||||||
|
|
||||||
item.uniqueId = trim_trailing_ws(std::string(diskId.product_number, sizeof(diskId.product_number)));
|
item.uniqueId = trim_trailing_ws(std::string(diskId.product_number, sizeof(diskId.product_number)));
|
||||||
|
for (char& c : item.uniqueId)
|
||||||
|
if (!std::isprint(c))
|
||||||
|
c = ' ';
|
||||||
|
|
||||||
item.searchName = trim_trailing_ws(std::string(diskId.software_name, sizeof(diskId.software_name)));
|
item.searchName = trim_trailing_ws(std::string(diskId.software_name, sizeof(diskId.software_name)));
|
||||||
if (item.searchName.empty())
|
if (item.searchName.empty())
|
||||||
|
|
Loading…
Reference in New Issue