mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-16 06:39:17 +00:00
- Do not break after finding an executable in SCI fallback detection, as we may not have found the resource files yet.
- Re-enabled codename iceman amiga and fix amiga fallback detection. svn-id: r38566
This commit is contained in:
parent
cf559f631b
commit
f0aa58da1f
@ -171,7 +171,6 @@ static const struct SciGameDescription SciGameDescriptions[] = {
|
|||||||
},
|
},
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if 0
|
|
||||||
// Codename: Iceman - English Amiga (from www.back2roots.org)
|
// Codename: Iceman - English Amiga (from www.back2roots.org)
|
||||||
{{"iceman", "", {
|
{{"iceman", "", {
|
||||||
{"resource.map", 0, "035829b391709a4e542d7c7b224625f6", 6000},
|
{"resource.map", 0, "035829b391709a4e542d7c7b224625f6", 6000},
|
||||||
@ -183,9 +182,8 @@ static const struct SciGameDescription SciGameDescriptions[] = {
|
|||||||
{"resource.005", 0, "605b67a9ef199a9bb015745e7c004cf4", 478384},
|
{"resource.005", 0, "605b67a9ef199a9bb015745e7c004cf4", 478384},
|
||||||
{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0},
|
{NULL, 0, NULL, 0}}, Common::EN_ANY, Common::kPlatformAmiga, 0},
|
||||||
{},
|
{},
|
||||||
SCI_VERSION(0, 000, 685) // FIXME: some versions are v. 0.000.668
|
SCI_VERSION(0, 000, 685)
|
||||||
},
|
},
|
||||||
#endif
|
|
||||||
|
|
||||||
// Codename: Iceman - English DOS
|
// Codename: Iceman - English DOS
|
||||||
{{"iceman", "", {
|
{{"iceman", "", {
|
||||||
@ -1683,17 +1681,19 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const Common::FSList &fsl
|
|||||||
|
|
||||||
// Check if it's a known executable name
|
// Check if it's a known executable name
|
||||||
if (filename.contains("scidhuv") || filename.contains("sciv") ||
|
if (filename.contains("scidhuv") || filename.contains("sciv") ||
|
||||||
filename.contains("sierra") || filename.contains("sciw")) {
|
filename.contains("sierra") || filename.contains("sciw") ||
|
||||||
|
filename.contains("prog")) {
|
||||||
|
|
||||||
|
if (foundExe) // We already found a valid exe, no need to check this one.
|
||||||
|
continue;
|
||||||
|
|
||||||
// Is it really an executable file?
|
// Is it really an executable file?
|
||||||
Common::SeekableReadStream *fileStream = file->createReadStream();
|
Common::SeekableReadStream *fileStream = file->createReadStream();
|
||||||
bool isExe = isGameExe(fileStream);
|
bool isExe = isGameExe(fileStream);
|
||||||
|
|
||||||
if (isExe && readSciVersionFromExe(fileStream, &exeVersion)) {
|
if (isExe && readSciVersionFromExe(fileStream, &exeVersion)) // All ok, we got the version from the executable successfully
|
||||||
// All ok, we got the version from the executable successfully
|
|
||||||
foundExe = true;
|
foundExe = true;
|
||||||
delete fileStream;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
delete fileStream;
|
delete fileStream;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -52,7 +52,7 @@ bool isGameExe(Common::SeekableReadStream *exeStream) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check if it's an Amiga executable
|
// Check if it's an Amiga executable
|
||||||
if ((magic[0] == 0x03 && magic[1] == 0xF3) ||
|
if ((magic[2] == 0x03 && magic[3] == 0xF3) ||
|
||||||
(magic[0] == 0x7F && magic[1] == 'E' && magic[2] == 'L' && magic[3] == 'F')) {
|
(magic[0] == 0x7F && magic[1] == 'E' && magic[2] == 'L' && magic[3] == 'F')) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user