Commit graph

236 commits

Author SHA1 Message Date
Abhinav Chennubhotla
967c8eaf5e BASE: Update dumpDetectionEntries() outputs
- Use printf() instead of debug()
 - Remove unnecessary type conversions
2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
41d9855273 BASE: Add metadata to dumped detection entries
- Add title, extra, platform and language to
   differentiate b/w different variants of a game
 - Create escapeString() func to add backslashes
   to strings containing certain special chars
2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
c09ef64b7f BASE: Update dumpDetectionEntries() and md5PropToGameFile() 2023-07-03 13:54:50 +03:00
Abhinav Chennubhotla
bb20579bee BASE: Add dumpAllDetectionEntries() to commandLine
- Add virtual function dumpDetectionEntries() to
   MetaEngine
 - Glk, Sky and SCUMM do not have proper
   definitions for dumpDetectionEntries()
 - Add md5PropToGameFile() to extract prefixes for
   md5s
 - AdvancedDetector writes content of DAT file to
   STDOUT
2023-07-03 13:54:50 +03:00
Eugene Sandulenko
d1dcfb9508
AD: Set scan depth when adding globs generated from the entries. Default is 5 2023-02-02 18:23:55 +01:00
Eugene Sandulenko
a69078149e
AD: Do not add duplicate dorectories to SearchMan 2023-01-14 21:14:21 +01:00
Eugene Sandulenko
d3f9ddcb44
AD: Move canPlayUnknownVariants() override to a flag. 2023-01-09 18:56:50 +01:00
sluicebox
39b7925c84 AD: Allow engines to prefer fallback detection 2023-01-09 18:42:26 +01:00
sluicebox
4d1107d992 ENGINES: Sort game file listings
The Unknown Game report and AdvancedMetaEngineDetection
logging statements are now sorted by file name, instead
of the HashMap iteration order.
2023-01-08 11:41:19 -08:00
Vladimir Serbinenko
5fd3c9b9b7 COMMON: Resync cache prefix with file md5 prefix 2022-12-28 12:56:22 +01:00
Vladimir Serbinenko
58bb2e81d3 COMMON: Allow specifying Md5 calculation on per-entry basis 2022-12-28 12:56:22 +01:00
Vladimir Serbinenko
275379c3d2 ENGINES: Change getFileProperties to receive MD5Properties as argument 2022-12-28 12:56:22 +01:00
Vladimir Serbinenko
a2233a2166 ENGINES: Add res-only and data-only MD5 computational methods
The current way of ADGF_MACRESFORK is an amalgam of bugs and history. Those
are clean ways for direct specification. It's not accessible yet
2022-12-28 12:56:22 +01:00
Vladimir Serbinenko
1ebbc4071c ENGINES: Switch from game flags to MD5Properties in advancedDetector for MD5.
flags are already out of bit and it makes little sense to polute
it regardless, so this commit is in preparation on having separate flags
on extra ways to hash file.
2022-12-28 12:56:22 +01:00
Thierry Crozat
b52c46d799 ENGINES: Add "PPC" to the advanced detector gray list
Files named "PPC" are relatively common for mac games around
the mid-90s (when Apple transitionned from x86 to PPC cpus).
This for example prevent detecting the mac versions of Broken
Sword 1 as unknown director games.
2022-12-27 15:21:21 +01:00
Vladimir Serbinenko
437aca9e50 ADVANCED DETECTOR: Switch to openFileOrDataFork 2022-12-11 21:32:30 +01:00
Eugene Sandulenko
80b3d8becd
AD: Transparently add path directories when kADFlagMatchFullPaths is set 2022-12-03 23:39:47 +01:00
Eugene Sandulenko
ba3a98431a
AD: Adding abc.exe to graylist 2022-12-03 10:35:27 +01:00
Paul Gilbert
b4be11f553 ENGINES: Added checkExtendedSaves method to AdvancedMetaEngine 2022-11-26 18:44:08 -08:00
Vladimir Serbinenko
98f178c58f DETECTOR: Allow detecting with MacBinary with no resource fork 2022-11-20 17:21:44 +01:00
Cameron Cawley
2c8a7d3900 ENGINES: Remove support for GUI options in MetaEngineDetection subclasses 2022-11-16 23:58:54 +01:00
Cameron Cawley
fd37e09acb ENGINES: Allow getExtraGuiOptions() to be implemented in MetaEngine subclasses 2022-11-16 23:58:54 +01:00
Eugene Sandulenko
a56c6c487a
AD: Implement sanity checks for detection tables 2022-11-03 21:37:05 +01:00
Orgad Shaneh
aa0c0f494f ENGINES: Pass const strings by reference in AdvancedMetaEngineDetection 2022-10-25 13:55:13 +03:00
Eugene Sandulenko
f26851d19d
AD: Added "gamedata" to detection graylist 2022-09-17 16:53:47 +02:00
Misty De Meo
eeb924bcf6
AD: add data to grayList 2022-09-13 17:41:42 -07:00
D G Turner
4c3da7beed AD: Slightly Cleaner Fix for Signed vs. Unsigned Comparison Compiler Warning 2022-07-31 21:30:11 +01:00
Orgad Shaneh
1b0c339436 AD: Fix compiler warning
Amends commit 950e3f459e.
2022-07-31 22:10:42 +03:00
Eugene Sandulenko
950e3f459e
AD: Properly set _maxScanDepth in case of automatic glob detection 2022-07-31 16:58:11 +02:00
Eugene Sandulenko
a526eafb09
AD: Do not add directories to files map 2022-07-31 16:44:55 +02:00
Eugene Sandulenko
281c7a3acb
AD: Added more debug output 2022-07-31 16:44:33 +02:00
Cameron Cawley
f3b094e53f ENGINES: Change the MetaEngineDetection interface to match MetaEngine 2022-07-23 23:31:58 +02:00
athrxx
54af166305 COMMON: (AD) - further reduce output of mass add detection
Follow-up to the feature that allows skipping certain ADGF flags.

This here now also allows skipping of incomplete file/md5/size matches. It is basically the same behavior as the graylist. For the mass add all files are treated as if they are on the list.
2022-06-12 10:12:39 +02:00
athrxx
e01416ef32 COMMON: (AD) - allow mass add to skip targets with certain ADGF flags
I added skipping for the ADGF_WARNING and ADGF_UNSUPPORTED flags.

For me, this is mostly about fixing bug no. 13282. We sometimes have bogus entries which only have the purpose of presenting the error message (reasons for being unsupported) contained in the extra field of the detection entry.
2022-06-12 10:12:39 +02:00
athrxx
315c3bcf02 COMMON: (AD) - add more file names to graylist
START.EXE and ITEM.DAT
2022-05-15 15:02:04 +02:00
trembyle
45a4fa0286 COMMON: Create detector flag for DVDs
This will be used to differentiate from CD releases.
2022-02-18 11:45:53 -05:00
Eugene Sandulenko
9dae828a38
AD: Allow mixed files path/no path in detection entries 2022-01-13 21:00:41 +01:00
Eugene Sandulenko
abea37c9bb
ALL: Update ScummVM project license to GPLv3+ 2021-12-26 18:48:43 +01:00
Eugene Sandulenko
f3eba5e945
AD: Do not report duplicated path components added to the globs 2021-12-05 15:57:04 +01:00
Eugene Sandulenko
02bd4e46a3
AD: Simplified punycoded names processing and fixed support for full paths 2021-12-05 14:23:17 +01:00
Eugene Sandulenko
45b59aa96e
AD: Turn _matchFullPaths into kADFlagMatchFullPaths. Adapted Director and SCI 2021-11-30 23:59:23 +01:00
Eugene Sandulenko
0f3e1bfeb6
AD: Add full path entries' path components to globs
This lets us avoid adding globs to the engines when they're
used only for detection.
2021-11-30 23:59:23 +01:00
Eugene Sandulenko
2564ce272a
AD: Use hashmap for directory globs.
We truly were using quadratic computational complexity for no reason.
2021-11-29 01:50:03 +01:00
Eugene Sandulenko
ccfaf478ab
AD: Make sure that we initialize hashmaps. Unfortunately, this leads to less const'ness 2021-11-29 01:50:03 +01:00
Eugene Sandulenko
55dc78960b
AD: Refactor of graylist check code 2021-11-29 01:50:03 +01:00
Eugene Sandulenko
eef0c2d529
AD: Implement blacklist for detection file names
When only files from the black list are present, we skip
file-based fallback detection for such entries, thus, entries
with 'game.exe', 'install.exe' etc will not generate false
"unknown md5" warnings.

Also, -d0 will report all such entries present in the tables.

Currently, we have 19 entries in AGS, 5 in Director and all 3 entries in ICB
which are violating this rule.
2021-11-27 20:30:28 +01:00
trembyle
c740f96f63 COMMON: Normalize and document language maintenance
* Add documentation to add or maintain language values
* Fix and reorder existing entries to match ISO standards
2021-11-11 12:06:15 +01:00
Eugene Sandulenko
9e1edd78ca
AD: Improved debug output 2021-11-06 18:11:37 +02:00
Eugene Sandulenko
74baaf020b
AD: Pass on information on MD5 calculation method, so it could be reported for unknown md5s 2021-11-06 18:11:37 +02:00
Orgad Shaneh
db7699228c MISC: Fix printf long/int64 type mismatches
Cast to [unsigned] long.
2021-10-23 02:48:27 +03:00