diff options
Diffstat (limited to 'backends')
-rw-r--r-- | backends/dc/Makefile | 2 | ||||
-rw-r--r-- | backends/dc/README | 2 | ||||
-rw-r--r-- | backends/dc/selector.cpp | 14 |
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)) { |