aboutsummaryrefslogtreecommitdiff
path: root/backends
diff options
context:
space:
mode:
Diffstat (limited to 'backends')
-rw-r--r--backends/dc/Makefile2
-rw-r--r--backends/dc/README2
-rw-r--r--backends/dc/selector.cpp14
3 files changed, 13 insertions, 5 deletions
diff --git a/backends/dc/Makefile b/backends/dc/Makefile
index 39c6d111a7..ccab3b18bf 100644
--- a/backends/dc/Makefile
+++ b/backends/dc/Makefile
@@ -6,7 +6,7 @@ srcdir = ../..
VPATH = $(srcdir)
CXX = sh-elf-g++ -ml -m4-single-only
-CXXFLAGS= -O1 -Wno-multichar -funroll-loops -fschedule-insns2 -fomit-frame-pointer -fdelete-null-pointer-checks -fno-exceptions
+CXXFLAGS= -O3 -Wno-multichar -funroll-loops -fschedule-insns2 -fomit-frame-pointer -fdelete-null-pointer-checks -fno-exceptions
DEFINES = -D__DC__ -DNONSTANDARD_PORT
LDFLAGS := -Wl,-Ttext,0x8c010000 -nostartfiles $(ronindir)/lib/crt0.o
INCLUDES:= -I./ -I$(srcdir) -I$(srcdir)/common -I$(ronindir)/include/
diff --git a/backends/dc/README b/backends/dc/README
index e1527b3c7a..852de803c6 100644
--- a/backends/dc/README
+++ b/backends/dc/README
@@ -4,7 +4,7 @@ Compiling ScummVM for SEGA Dreamcast
If you want to compile ScummVM for your Dreamcast,
you'll need the following:
-* gcc-3.3 configured as a cross-compiler for `sh-elf'
+* gcc-3.3.3 configured as a cross-compiler for `sh-elf'
(including corresponding binutils)
* newlib for sh-elf : <URL:http://mc.pp.se/dc/files/newlib-1.9.0.tar.gz>
diff --git a/backends/dc/selector.cpp b/backends/dc/selector.cpp
index 05af35d1c8..0cb9b624a7 100644
--- a/backends/dc/selector.cpp
+++ b/backends/dc/selector.cpp
@@ -160,7 +160,7 @@ static bool checkName(const char *base, char *text = 0)
return false;
}
-static const char *checkDetect(const FilesystemNode *entry)
+static const char *checkDetect(const FilesystemNode *entry, bool unique)
{
FSList files;
files.push_back(*entry);
@@ -173,18 +173,24 @@ static const char *checkDetect(const FilesystemNode *entry)
}
if (candidates.isEmpty())
return NULL;
+ if (unique && candidates.size() > 1)
+ return NULL;
return candidates[0].name;
}
static bool isGame(const FilesystemNode *entry, char *base)
{
const char *fn = entry->displayName().c_str();
+ if(const char *dtct = checkDetect(entry, true)) {
+ strcpy(base, dtct);
+ return true;
+ }
if(!strcasecmp(fn, "00.LFL") ||
!strcasecmp(fn, "000.LFL")) {
*base = '\0';
return true;
}
- if(const char *dtct = checkDetect(entry)) {
+ if(const char *dtct = checkDetect(entry, false)) {
strcpy(base, dtct);
return true;
}
@@ -198,7 +204,7 @@ static bool isGame(const FilesystemNode *entry, char *base)
base[l-4]='\0';
return true;
}
-#else
+#elsif 0
char *dot;
if(!stricmp(fn, "LOOM.EXE"))
return false;
@@ -306,8 +312,10 @@ static int findGames(Game *games, int max)
games[curr_game].dir[i+1]='\0';
#endif
}
+#if 0
if(checkExe(games[curr_game].dir, "loom"))
strcpy(games[curr_game].filename_base, "loomcd");
+#endif
}
if(uniqueGame(games[curr_game].filename_base,
games[curr_game].dir, games, curr_game)) {