aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorFilippos Karapetis2015-12-28 12:08:53 +0200
committerFilippos Karapetis2015-12-28 12:09:25 +0200
commit00e0d68a9f4b85ac66f757dd8603036b82a566e6 (patch)
treece7cd207e6b4ab33dfb84d8f22dbe8c9d5291d92 /audio
parent9ec9bca25b1cc7efaec4587d5c71c65eb66022cf (diff)
downloadscummvm-rg350-00e0d68a9f4b85ac66f757dd8603036b82a566e6.tar.gz
scummvm-rg350-00e0d68a9f4b85ac66f757dd8603036b82a566e6.tar.bz2
scummvm-rg350-00e0d68a9f4b85ac66f757dd8603036b82a566e6.zip
MT32: Also use the ROM name to return the most appropriate ROM info
Since we are not using munt's SHA-1 hashing code, this returns the most appropriate feature set for CM-32L ROMs
Diffstat (limited to 'audio')
-rw-r--r--audio/softsynth/mt32/ROMInfo.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/audio/softsynth/mt32/ROMInfo.cpp b/audio/softsynth/mt32/ROMInfo.cpp
index 7c0127078b..f6817c1a4d 100644
--- a/audio/softsynth/mt32/ROMInfo.cpp
+++ b/audio/softsynth/mt32/ROMInfo.cpp
@@ -54,12 +54,21 @@ static const ROMInfo *getKnownROMInfoFromList(unsigned int index) {
const ROMInfo* ROMInfo::getROMInfo(Common::File *file) {
size_t fileSize = file->size();
+ Common::String fileName = file->getName();
+ fileName.toUppercase();
+ bool isCM32LROM = fileName.hasPrefix("CM32L_");
// We haven't added the SHA1 checksum code in ScummVM, as the file size
- // suffices for our needs for now.
+ // and ROM name suffices for our needs for now.
//const char *fileDigest = file->getSHA1();
for (int i = 0; getKnownROMInfoFromList(i) != NULL; i++) {
const ROMInfo *romInfo = getKnownROMInfoFromList(i);
if (fileSize == romInfo->fileSize /*&& !strcmp(fileDigest, romInfo->sha1Digest)*/) {
+ if (fileSize == 65536) {
+ // If we are looking for a CM-32L ROM, make sure we return the first matching
+ // CM-32L ROM from the list, instead of the first matching MT-32 ROM
+ if (isCM32LROM && romInfo->controlROMFeatures->isDefaultReverbMT32Compatible())
+ continue;
+ }
return romInfo;
}
}