2/18/2024 0 Comments Scummvm configuration file![]() It is important to know that currently there are in fact two modes of the Advanced Detector. In case of ambiguous matches, it returns a list of games. It then creates a list of candidates which then it tries to narrow down to a single ADGameDescription instance, unless it is told to do otherwise. It can take into account the md5sum of a part of the file (by default, its first several hundred bytes), its size and name. Keys platform and language are used for narrowing down the possible game candidate but are fully optional.Īdvanced detector tries to match the files in the probed directory against specified lists of file characteristics provided in an array of ADGameDescription structures. There should be no clashes, and each engine knows which gameids it does support, so gameid is only unique to each engine. engineid is a service name which identifies the engine within whole ScummVM. Then each entry has description which is also user-editable, path to the game, engineid and gameid. Target, which is in the sample above specified as monkey2-vga is user-editable identifier unique to the specific user, and could be used for launching the game from command line. Name of each game is what we are calling target. Additionally some of ports define their own service sections. Then there are sections for each separate game. The main section with predefined name 'scummvm' contains global options, which are mainly editable in Options dialog in GUI. What you see here is several sections designated by identifiers in square brackets and set of key/value pairs belonging to each such section. ![]() globalkey1 = foo globalkey2 = bar versioninfo = 1.5.0git2516-g30a372d description = Monkey Island 2: LeChuck's Revenge (DOS/English) path = /Users/sev/games/scumm/monkey2 engindid = scumm gameid = monkey2 language = en platform = pc scummvmrc or scummvm.ini (depending on the platform), you will find that generally it has following structure Game detection entry in ScummVM config file It is suggested you consult the code and header comments in engines/advancedDetector.* and look at the examples provided by current engines for a more complete example. _md5Bytes is the number of bytes used for the MD5 hash for each file, etc. This structure plus other parameters are passed to the AdvancedMetaEngineDetection constructor, which can also contain overrides of the default parameters for detection e.g. To use this, you will have to follow the instructions here within your engine's detection.h and detection.cpp.Īll you will have to provide is a standard data table of ADGameDescription entries describing each game variant, which is usually placed in a separate detection_tables.h header, which is included in detection.cpp for use there. The code for this can be found in engines/advancedDetector.* This provides a standard framework for filename and MD5 based game detection. Well, to avoid every engine author having to do this themselves (and the codebaseĮnding up with the maintenance headache of 20+ implementations of this which are almost, but not exactly the same!), the ScummVM Infrastructure Team have provided the Advanced Detector! So instead, most engines take a checksum (or even better, a hash) of the file to detect the exact version, and to do that, you would need to write code to open the files and run this check into your custom MetaEngine. Since some of the game variants will have files with the same name, but differing contents,ĭetection by filename alone is not sufficient, and a fair number of variants may onlyĭiffer by small sections of data within the entire file, so opening the file and lookingįor a "magic header" is not reliable either. If your engine supports a large number of games (or variants of games) then detecting them can be tricky. ![]() 2.2 Additional Advanced MetaEngine parameters.1.1 Game detection entry in ScummVM config file. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |