Open main menu

Difference between revisions of "Advanced Detector"

2,147 bytes added ,  00:24, 29 February 2012
Even more content
(More content)
(Even more content)
Line 61: Line 61:


In case there are no matches in the ''ADGameDescription'' list, there are two additional fallback detection modes. One is file-based detection, which matches just the file names, and second one is a hook which gets called and could contain code of any complexity. Most prominent example of advanced fallback detection is SCI engine.
In case there are no matches in the ''ADGameDescription'' list, there are two additional fallback detection modes. One is file-based detection, which matches just the file names, and second one is a hook which gets called and could contain code of any complexity. Most prominent example of advanced fallback detection is SCI engine.
=== Generated targets ===
Targets generated by Advanced Detector have the following structure:
<code>
  GAMEID-DEMO-CD-PLATFORM-LANG
</code>
The target generation is highly affected by AD flags. The flags which have influence are: ADGF_CD, ADGF_DEMO, ADGF_DROPLANGUAGE.


== PlainGameDescriptor table ==
== PlainGameDescriptor table ==
Line 157: Line 167:
== Game Entry flags ADGameFlags ==
== Game Entry flags ADGameFlags ==


'''ADGF_ADDENGLISH'''
Game flags are used to tell the engine which features this particular game has. There are both engine-specific and Advanced Detector-specific game flags. The latter besides being more or less universal also affect the detection behaviour.


'''ADGF_CD'''
'''ADGF_ADDENGLISH''' -- Used for dual language games. In this case user will be present with selection between localised and English version of the game. Affects GUIOs.


'''ADGF_DEMO'''
'''ADGF_CD''' -- Specifies a CD version. Generated target will get '-cd' suffix.


'''ADGF_DROPLANGUAGE'''
'''ADGF_DEMO''' -- Specifies a game demo. Generated target will get '-demo' suffix.
 
'''ADGF_DROPLANGUAGE''' -- generated target will not have language specified. Used mainly for multilanguage games which have language selector internally. Thus the language will be selected within the game and the setting stored in the config file, but the game entry will stay intact.


'''ADGF_MACRESFORK'''
'''ADGF_MACRESFORK'''


'''ADGF_NO_FLAGS'''
'''ADGF_NO_FLAGS''' -- No flags are set.
 
'''ADGF_PIRATED''' -- Specifies a blacklisted game. The game will be detected but refuse to run.


'''ADGF_PIRATED'''
There are known hacked variants for some of the games exist in the wild. We used to ignore user reports on them, but with the number of engines growing it became tough to remember that this particular game is really a hack. If it is widespread enough, we were getting recurrent reports that the game is not detected. To avoid this situation we now accept md5s of such games but mark them accordingly.


'''ADGF_TESTING'''
'''ADGF_TESTING''' -- Specifies game which was announced for public testing. The user will get relevant warning when launching the game.


'''ADGF_UNSTABLE'''
'''ADGF_UNSTABLE''' -- Specifies game which is not publicly supported and is in a heavy development. The user will get relevant warning when launching the game.


'''ADGF_USEEXTRAASTITLE'''
'''ADGF_USEEXTRAASTITLE''' -- Instead of '''description''' specified in ''PlainGameDescriptor'' table, '''extra''' field will be used as game description. Good example is AGI fan games where the game title is known but it is not feasible to add it to ''PlainGameDescriptor'' table, or minor composer engine demos with games combined for the same reason.


== Advanced Detector flags ADFlags ==
== Advanced Detector flags ADFlags ==