ScummVM API documentation
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
detection_tables.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 namespace Ultima {
23 
24 #define GUI_OPTIONS_ULTIMA1 GUIO0()
25 #define GUI_OPTIONS_ULTIMA4 GUIO1(GUIO_NOSPEECH)
26 #define GUI_OPTIONS_ULTIMA6 GUIO0()
27 #define GUI_OPTIONS_ULTIMA8 GUIO9(GAMEOPTION_ORIGINAL_SAVELOAD, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_FOOTSTEP_SOUNDS, GAMEOPTION_JUMP_TO_MOUSE, GAMEOPTION_FONT_REPLACEMENT, GAMEOPTION_FONT_ANTIALIASING)
28 #define GUI_OPTIONS_REMORSE GUIO6(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER)
29 #define GUI_OPTIONS_REGRET GUIO7(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER, GAMEOPTION_ALWAYS_CHRISTMAS)
30 #define GUI_OPTIONS_REGRET_DEMO GUIO6(GUIO_NOMIDI, GAMEOPTION_FRAME_SKIPPING, GAMEOPTION_FRAME_LIMITING, GAMEOPTION_CHEATS, GAMEOPTION_HIGH_RESOLUTION, GAMEOPTION_CAMERA_WITH_SILENCER)
31 #define GUI_OPTIONS_MARTIAN_DREAMS GUIO0()
32 #define GUI_OPTIONS_SAVAGE_EMPIRE GUIO0()
33 
34 // Ultima 6 normal mode only
35 #define ENTRY_ULTIMA6_NORMAL(FILENAME, MD5, FILESIZE, LANG, PLATFORM) {{"ultima6", 0, AD_ENTRY1s(FILENAME, MD5, FILESIZE), LANG, PLATFORM, ADGF_NO_FLAGS, GUI_OPTIONS_ULTIMA6}, GAME_ULTIMA6, 0}
36 
37 // Ultima 6 enhanced mode only
38 #define ENTRY_ULTIMA6_ENHANCED(FILENAME, MD5, FILESIZE, LANG, PLATFORM) {{"ultima6_enh", 0, AD_ENTRY1s(FILENAME, MD5, FILESIZE), LANG, PLATFORM, ADGF_NO_FLAGS, GUI_OPTIONS_ULTIMA6}, GAME_ULTIMA6, GF_VGA_ENHANCED}
39 
40 // Ultima 6 both normal and enhanced mode (this should normally be used)
41 #define ENTRY_ULTIMA6(FILENAME, MD5, FILESIZE, LANG, PLATFORM) \
42  ENTRY_ULTIMA6_NORMAL(FILENAME, MD5, FILESIZE, LANG, PLATFORM), \
43  ENTRY_ULTIMA6_ENHANCED(FILENAME, MD5, FILESIZE, LANG, PLATFORM)
44 
45 // Ultima 6 normal mode only - unstable (currently only used for the PC98 version)
46 #define ENTRY_ULTIMA6_NORMAL_UNSTABLE(FILENAME, MD5, FILESIZE, LANG, PLATFORM) {{"ultima6", 0, AD_ENTRY1s(FILENAME, MD5, FILESIZE), LANG, PLATFORM, ADGF_UNSTABLE, GUI_OPTIONS_ULTIMA6}, GAME_ULTIMA6, 0}
47 
48 static const UltimaGameDescription GAME_DESCRIPTIONS[] = {
49 #ifdef ENABLE_ULTIMA1
50  {
51  // Ultima I - The First Age of Darkness
52  {
53  "ultima1",
54  "VGA Enhanced",
55  {
56  { "maptiles.vga", 0, "d4b67e17affe64c0ddb48511bfe4cf37", 47199 },
57  { "objtiles.vga", 0, "1a1446970d095aeb03bcf6dcec40d6e2", 289344 },
58  { "map.bin", 0, "f99633a0110ccf90837ab161be56cf1c", 13104 },
60  },
61  Common::EN_ANY,
62  Common::kPlatformDOS,
64  GUI_OPTIONS_ULTIMA1
65  },
66  GAME_ULTIMA1,
67  GF_VGA_ENHANCED
68  },
69 
70  {
71  // Ultima I - The First Age of Darkness, PC98 version
72  {
73  "ultima1",
74  0,
75  AD_ENTRY2s("egctown.bin", "4f7de68f6689cf9617aa1ea03240137e", 4896,
76  "map.bin", "f99633a0110ccf90837ab161be56cf1c", 13104),
77  Common::JA_JPN,
78  Common::kPlatformPC98,
80  GUI_OPTIONS_ULTIMA1
81  },
82  GAME_ULTIMA1,
83  0
84  },
85 
86  {
87  // Ultima I - The First Age of Darkness
88  {
89  "ultima1",
90  0,
91  AD_ENTRY1s("map.bin", "f99633a0110ccf90837ab161be56cf1c", 13104),
92  Common::EN_ANY,
93  Common::kPlatformDOS,
95  GUI_OPTIONS_ULTIMA1
96  },
97  GAME_ULTIMA1,
98  0
99  },
100 #endif
101 
102 #ifdef ENABLE_ULTIMA4
103  {
104  // Ultima IV - Quest of the Avatar
105  {
106  "ultima4",
107  0,
108  AD_ENTRY1s("britain.ult", "304fe52ce5f34b9181052363d74d7505", 1280),
109  Common::EN_ANY,
110  Common::kPlatformDOS,
112  GUI_OPTIONS_ULTIMA4
113  },
114  GAME_ULTIMA4,
115  0
116  },
117 
118  {
119  // Ultima IV - Quest of the Avatar
120  {
121  "ultima4_enh",
122  0,
123  AD_ENTRY1s("britain.ult", "304fe52ce5f34b9181052363d74d7505", 1280),
124  Common::EN_ANY,
125  Common::kPlatformDOS,
127  GUI_OPTIONS_ULTIMA4
128  },
129  GAME_ULTIMA4,
130  GF_VGA_ENHANCED
131  },
132 #endif
133 
134 #ifdef ENABLE_ULTIMA6
135  // GOG Ultima VI
136  ENTRY_ULTIMA6("converse.a", "5065716423ef1389e3f7b4946d815c26", 162615,
137  Common::EN_ANY,
138  Common::kPlatformDOS),
139 
140  // Ultima VI - French patch by Docwise Dragon
141  // https://sirjohn.de/en/ultima6/ultima-vi-french-translation-patch/
142  // Note: Not all user interface elements are translated in ScummVM
143  ENTRY_ULTIMA6("converse.a", "35c95d56737d957db7e72193e810053b", 182937,
144  Common::FR_FRA,
145  Common::kPlatformDOS),
146 
147  // Ultima VI - German Patch https://sirjohn.de/ultima-6/
148  // Note: Not all user interface elements are translated in ScummVM
149  ENTRY_ULTIMA6("converse.a", "ae979230b97f8813bdf8f82698847435", 198627,
150  Common::DE_DEU,
151  Common::kPlatformDOS),
152 
153  // Ultima VI - German Patch 1.6 https://sirjohn.de/ultima-6/
154  // Note: Not all user interface elements are translated in ScummVM
155  ENTRY_ULTIMA6("converse.a", "5242f0228bbc9c3a60c7aa6071499688", 198797,
156  Common::DE_DEU,
157  Common::kPlatformDOS),
158 
159  // Ultima VI - German Patch 1.7 https://sirjohn.de/ultima-6/
160  // Note: Not all user interface elements are translated in ScummVM
161  ENTRY_ULTIMA6("converse.a", "f4e9280402baff12e5132e62f7bbb54f", 198810,
162  Common::DE_DEU,
163  Common::kPlatformDOS),
164 
165  // PC98 Ultima 6
166  ENTRY_ULTIMA6_NORMAL_UNSTABLE("converse.a", "99975e79e7cae3ee24a8e33982f60fe4", 190920,
167  Common::JA_JPN,
168  Common::kPlatformPC98),
169 
170  // Ultima VI - Nitpickers Delight older version
171  ENTRY_ULTIMA6("converse.a", "5c15ba2a75fb921b715a1a0bf0152bac", 165874,
172  Common::EN_ANY,
173  Common::kPlatformDOS),
174 
175  // Ultima VI - Nitpickers Delight newer version
176  ENTRY_ULTIMA6("converse.a", "9f77c84a03efc77df2d53544d1275da8", 167604,
177  Common::EN_ANY,
178  Common::kPlatformDOS),
179 
180  // Ultima VI - alternative release
181  // TRAC #14659
182  ENTRY_ULTIMA6("converse.a", "ee22a6ac3964f9ff11a48fcb3f4a9389", 162458,
183  Common::EN_ANY,
184  Common::kPlatformDOS),
185 #endif
186 
187 #ifdef ENABLE_ULTIMA8
188  // Ultima VIII - CD (provided by ddeluca1com, bug #11944)
189  {
190  {
191  "ultima8",
192  "",
193  AD_ENTRY1s("usecode/eusecode.flx", "5494165cbf4b07be04a465e28350e086", 1209018),
194  Common::EN_ANY,
195  Common::kPlatformDOS,
197  GUI_OPTIONS_ULTIMA8
198  },
199  GAME_ULTIMA8,
200  0
201  },
202 
203  // Ultima VIII - Ultima Collection 1998
204  {
205  {
206  "ultima8",
207  "",
208  AD_ENTRY1s("usecode/eusecode.flx", "87c8b584e2947e5e4d99bd8bff6cea2e", 1251108),
209  Common::EN_ANY,
210  Common::kPlatformDOS,
212  GUI_OPTIONS_ULTIMA8
213  },
214  GAME_ULTIMA8,
215  0
216  },
217 
218  // GOG Ultima VIII
219  {
220  {
221  "ultima8",
222  "Gold Edition",
223  AD_ENTRY2s("usecode/eusecode.flx", "c61f1dacde591cb39d452264e281f234", 1251108,
224  "static/eintro.skf", "b34169ece4286735262ac3430c441909", 1297731),
225  Common::EN_ANY,
226  Common::kPlatformDOS,
228  GUI_OPTIONS_ULTIMA8
229  },
230  GAME_ULTIMA8,
231  0
232  },
233 
234  {
235  {
236  "ultima8",
237  "Gold Edition",
238  AD_ENTRY2s("usecode/fusecode.flx", "4017eb8678ee24af0ce8c7647a05509b", 1300957,
239  "static/fintro.skf", "58990327f3e155551a69f41e7dcc0d08", 1275321),
240  Common::FR_FRA,
241  Common::kPlatformDOS,
243  GUI_OPTIONS_ULTIMA8
244  },
245  GAME_ULTIMA8,
246  0
247  },
248 
249  {
250  {
251  "ultima8",
252  "Gold Edition",
253  AD_ENTRY2s("usecode/gusecode.flx", "d69599a46870b66c1b7c02710ed185bd", 1378604,
254  "static/gintro.skf", "4a2f3a996d13dba0528ef73264303bf5", 1264343),
255  Common::DE_DEU,
256  Common::kPlatformDOS,
258  GUI_OPTIONS_ULTIMA8
259  },
260  GAME_ULTIMA8,
261  0
262  },
263 
264  // Fan translation patch for GOG version (provided by Condezer0, bug #14484)
265  {
266  {
267  "ultima8",
268  "Gold Edition",
269  AD_ENTRY2s("usecode/eusecode.flx", "cd4b330e09efd232360fd476bcc6a1d1", 1285847,
270  "static/eintro.skf", "9f8a9d95248ae3ae4b74a24ab88bf95f", 1233678),
271  Common::ES_ESP,
272  Common::kPlatformDOS,
274  GUI_OPTIONS_ULTIMA8
275  },
276  GAME_ULTIMA8,
277  0
278  },
279 
280  // German CD version
281  {
282  {
283  "ultima8",
284  "",
285  AD_ENTRY1s("usecode/gusecode.flx", "dc981f82c6303548ad1c967cdef1a0ea", 1335445),
286  Common::DE_DEU,
287  Common::kPlatformDOS,
289  GUI_OPTIONS_ULTIMA8
290  },
291  GAME_ULTIMA8,
292  0
293  },
294 
295  // French version (provided by habib256 bug #13003)
296  {
297  {
298  "ultima8",
299  "",
300  AD_ENTRY1s("usecode/fusecode.flx", "6f7643af10bffa11debea4533ba47061", 1300957),
301  Common::FR_FRA,
302  Common::kPlatformDOS,
304  GUI_OPTIONS_ULTIMA8
305  },
306  GAME_ULTIMA8,
307  0
308  },
309 
310  {
311  {
312  "ultima8",
313  "",
314  AD_ENTRY1s("usecode/eusecode.flx", "1abad7a58e052ff3d9664df1ab2ddb86", 1136206),
315  Common::ES_ESP,
316  Common::kPlatformDOS,
318  GUI_OPTIONS_ULTIMA8
319  },
320  GAME_ULTIMA8,
321  0
322  },
323 
324  {
325  {
326  "ultima8",
327  "",
328  AD_ENTRY1s("usecode/jusecode.flx", "1793bb252b805bf8d59300690987c605", 1208003),
329  Common::JA_JPN,
330  Common::kPlatformDOS,
332  GUI_OPTIONS_ULTIMA8
333  },
334  GAME_ULTIMA8,
335  0
336  },
337 
338  // Crusader games use a very similar engine to ultima8.
339  // complete. Because each version requires a separate Usecode callback
340  // table, only fully patched versions are marked supported.
341 
342  // GOG Crusader - No Remorse (V1.21)
343  {
344  {
345  "remorse",
346  "",
347  AD_ENTRY1s("usecode/eusecode.flx", "0a0f64507adc4f280129c735ee9cad42", 556613),
348  Common::EN_ANY,
349  Common::kPlatformDOS,
350  ADGF_USECODE_DEFAULT,
351  GUI_OPTIONS_REMORSE
352  },
353  GAME_CRUSADER_REM,
354  0
355  },
356 
357  // Crusader - No Remorse CD version (V1.10) provided by heff978 (#15065)
358  {
359  {
360  "remorse",
361  "",
362  AD_ENTRY1s("usecode/eusecode.flx", "73b413b1ef291c4512f16c719ad746f3", 419591),
363  Common::EN_ANY,
364  Common::kPlatformDOS,
366  GUI_OPTIONS_REMORSE
367  },
368  GAME_CRUSADER_REM,
369  0
370  },
371 
372  // Crusader - No Remorse provided by andy155
373  {
374  {
375  "remorse",
376  "",
377  AD_ENTRY1s("usecode/eusecode.flx", "3fb211f4adfd80595078afc85bdfe7b4", 433143),
378  Common::EN_ANY,
379  Common::kPlatformDOS,
381  GUI_OPTIONS_REMORSE
382  },
383  GAME_CRUSADER_REM,
384  0
385  },
386 
387  // Crusader - No Remorse (V1.01), unpatched data on the GOG CD image
388  {
389  {
390  "remorse",
391  "",
392  AD_ENTRY1s("usecode/eusecode.flx", "8c74327e30088ce93f08a15a7f85b3ce", 418556),
393  Common::EN_ANY,
394  Common::kPlatformDOS,
395  ADGF_UNSTABLE | ADGF_USECODE_ORIG,
396  GUI_OPTIONS_REMORSE
397  },
398  GAME_CRUSADER_REM,
399  0
400  },
401 
402  // Crusader - No Remorse (French) provided by BeWorld2018
403  {
404  {
405  "remorse",
406  "",
407  AD_ENTRY1s("usecode/eusecode.flx", "efbd33d6a5e8f14e9c57f963c3fbe939", 423051),
408  Common::FR_FRA,
409  Common::kPlatformDOS,
410  ADGF_UNSTABLE | ADGF_USECODE_FR,
411  GUI_OPTIONS_REMORSE
412  },
413  GAME_CRUSADER_REM,
414  0
415  },
416 
417  // Crusader - No Remorse (Spanish) provided by Wesker
418  {
419  {
420  "remorse",
421  "",
422  AD_ENTRY1s("usecode/eusecode.flx", "36a16d70c97d0379f1133cc743c31313", 558493),
423  Common::ES_ESP,
424  Common::kPlatformDOS,
425  ADGF_USECODE_ES,
426  GUI_OPTIONS_REMORSE
427  },
428  GAME_CRUSADER_REM,
429  0
430  },
431 
432  // Crusader - No Remorse (Spanish fan patch) provided by Wesker
433  {
434  {
435  "remorse",
436  "Fan Translation",
437  AD_ENTRY1s("usecode/eusecode.flx", "a8b5c421c5d74be8c69fcd4fecadd1dd", 559015),
438  Common::ES_ESP,
439  Common::kPlatformDOS,
440  ADGF_USECODE_DEFAULT,
441  GUI_OPTIONS_REMORSE
442  },
443  GAME_CRUSADER_REM,
444  0
445  },
446 
447  // Crusader - No Remorse (Japanese) provided by Dominus
448  {
449  {
450  "remorse",
451  "",
452  AD_ENTRY1s("usecode/jusecode.flx", "088105959be4f2de1cb9e796e71c5f2d", 554522),
453  Common::JA_JPN,
454  Common::kPlatformWindows,
455  ADGF_UNSTABLE | ADGF_USECODE_JA,
456  GUI_OPTIONS_REMORSE
457  },
458  GAME_CRUSADER_REM,
459  0
460  },
461 
462  // Crusader - No Remorse - Demo V1.12D
463  {
464  {
465  "remorse",
466  "Demo",
467  AD_ENTRY1s("usecode/eusecode.flx", "41cdca35b62f4b2a7bb4c3b1ec782423", 556613),
468  Common::EN_ANY,
469  Common::kPlatformDOS,
470  ADGF_DEMO,
471  GUI_OPTIONS_REMORSE
472  },
473  GAME_CRUSADER_REM,
474  0
475  },
476 
477  // GOG Crusader - No Regret (V1.06)
478  {
479  {
480  "regret",
481  "",
482  AD_ENTRY1s("usecode/eusecode.flx", "1bb360156b7240a1f05eb9bda01c54db", 481652),
483  Common::EN_ANY,
484  Common::kPlatformDOS,
485  ADGF_UNSTABLE | ADGF_USECODE_DEFAULT,
486  GUI_OPTIONS_REGRET
487  },
488  GAME_CRUSADER_REG,
489  0
490  },
491 
492  // Crusader - No Regret - German V1.07NV
493  {
494  {
495  "regret",
496  "",
497  AD_ENTRY1s("usecode/eusecode.flx", "1824d9725de45a8b49f058c12c6cf5c3", 484445),
498  Common::DE_DEU,
499  Common::kPlatformDOS,
500  ADGF_UNSTABLE | ADGF_USECODE_DE,
501  GUI_OPTIONS_REGRET
502  },
503  GAME_CRUSADER_REG,
504  0
505  },
506 
507  // Crusader - No Regret - Demo V1.08
508  {
509  {
510  "regret",
511  "Demo",
512  AD_ENTRY1s("usecode/eusecode.flx", "c6416e4716f3c008dba113a2a460367e", 483174),
513  Common::EN_ANY,
514  Common::kPlatformDOS,
516  GUI_OPTIONS_REGRET_DEMO
517  },
518  GAME_CRUSADER_REG,
519  0
520  },
521 
522  // Crusader - No Regret (Spanish) provided by Wesker
523  {
524  {
525  "regret",
526  "",
527  AD_ENTRY1s("usecode/eusecode.flx", "f5906654047ed1dab75760da6426ecfa", 478125),
528  Common::ES_ESP,
529  Common::kPlatformDOS,
530  ADGF_UNSTABLE | ADGF_USECODE_ES,
531  GUI_OPTIONS_REGRET
532  },
533  GAME_CRUSADER_REG,
534  0
535  },
536 #endif
537 
538 #ifdef ENABLE_ULTIMA6
539  // GOG Martian Dreams
540  {
541  {
542  "martiandreams",
543  0,
544  AD_ENTRY1s("talk.lzc", "6efafc030cb552028c564897e40d87b5", 409705),
545  Common::EN_ANY,
546  Common::kPlatformDOS,
548  GUI_OPTIONS_MARTIAN_DREAMS
549  },
550  GAME_MARTIAN_DREAMS,
551  0
552  },
553 
554  // GOG Martian Dreams - Enhanced
555  {
556  {
557  "martiandreams_enh",
558  0,
559  AD_ENTRY1s("talk.lzc", "6efafc030cb552028c564897e40d87b5", 409705),
560  Common::EN_ANY,
561  Common::kPlatformDOS,
563  GUI_OPTIONS_MARTIAN_DREAMS
564  },
565  GAME_MARTIAN_DREAMS,
566  GF_VGA_ENHANCED
567  },
568 
569 
570  // The Savage Empire v1.6
571  {
572  {
573  "thesavageempire",
574  0,
575  AD_ENTRY1s("talk.lzc", "bef60fbc3cc478b2a2e8f0883652b2f3", 160784),
576  Common::EN_ANY,
577  Common::kPlatformDOS,
579  GUI_OPTIONS_SAVAGE_EMPIRE
580  },
581  GAME_SAVAGE_EMPIRE,
582  0
583  },
584 
585  // The Savage Empire v1.6
586  {
587  {
588  "thesavageempire_enh",
589  0,
590  AD_ENTRY1s("talk.lzc", "bef60fbc3cc478b2a2e8f0883652b2f3", 160784),
591  Common::EN_ANY,
592  Common::kPlatformDOS,
594  GUI_OPTIONS_SAVAGE_EMPIRE
595  },
596  GAME_SAVAGE_EMPIRE,
597  GF_VGA_ENHANCED
598  },
599 
600  // The Savage Empire v2.1
601  {
602  {
603  "thesavageempire",
604  0,
605  AD_ENTRY1s("talk.lzc", "1bbb5a425e1d7e2e3aa9b887e511ffc6", 160931),
606  Common::EN_ANY,
607  Common::kPlatformDOS,
609  GUI_OPTIONS_SAVAGE_EMPIRE
610  },
611  GAME_SAVAGE_EMPIRE,
612  0
613  },
614 
615  // The Savage Empire v2.1
616  {
617  {
618  "thesavageempire_enh",
619  0,
620  AD_ENTRY1s("talk.lzc", "1bbb5a425e1d7e2e3aa9b887e511ffc6", 160931),
621  Common::EN_ANY,
622  Common::kPlatformDOS,
624  GUI_OPTIONS_SAVAGE_EMPIRE
625  },
626  GAME_SAVAGE_EMPIRE,
627  GF_VGA_ENHANCED
628  },
629 
630  // The Savage Empire v2.1
631  {
632  {
633  "thesavageempire",
634  0,
635  AD_ENTRY1s("talk.lzc", "1bbb5a425e1d7e2e3aa9b887e511ffc6", 160931),
636  Common::EN_ANY,
637  Common::kPlatformDOS,
639  GUIO0()
640  },
641  GAME_SAVAGE_EMPIRE,
642  0
643  },
644 
645  // The Savage Empire v2.1
646  {
647  {
648  "thesavageempire_enh",
649  0,
650  AD_ENTRY1s("talk.lzc", "1bbb5a425e1d7e2e3aa9b887e511ffc6", 160931),
651  Common::EN_ANY,
652  Common::kPlatformDOS,
654  GUIO0()
655  },
656  GAME_SAVAGE_EMPIRE,
657  GF_VGA_ENHANCED
658  },
659 #endif
660 
661  { AD_TABLE_END_MARKER, (GameId)0, 0 }
662 };
663 
664 } // End of namespace Ultima
Flag to designate not yet officially supported games that are not fit for public testing.
Definition: advancedDetector.h:142
No flags.
Definition: advancedDetector.h:139
#define AD_TABLE_END_MARKER
Definition: advancedDetector.h:326
Definition: detection.h:27
#define AD_LISTEND
Definition: advancedDetector.h:104
#define AD_ENTRY2s(f1, x1, s1, f2, x2, s2)
Definition: advancedDetector.h:122
Add "-demo" to gameid.
Definition: advancedDetector.h:156
#define AD_ENTRY1s(f, x, s)
Definition: advancedDetector.h:116