aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--audio/softsynth/opl/mame.cpp2
-rw-r--r--backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp6
-rw-r--r--backends/platform/android/jni.cpp2
-rw-r--r--backends/platform/dc/Makefile4
-rw-r--r--backends/platform/ds/arm9/makefile6
-rw-r--r--backends/platform/ds/arm9/source/dsmain.cpp5
-rw-r--r--backends/platform/ps2/Makefile.gdb99
-rw-r--r--backends/platform/ps2/Makefile.ps259
-rw-r--r--backends/platform/samsungtv/main.cpp6
-rw-r--r--backends/platform/samsungtv/samsungtv.cpp7
-rw-r--r--base/commandLine.cpp4
-rwxr-xr-xconfigure2
-rw-r--r--engines/saga/font.cpp32
-rw-r--r--engines/saga/font.h4
-rw-r--r--gui/gui-manager.cpp9
-rw-r--r--gui/launcher.cpp5
-rw-r--r--gui/massadd.cpp3
-rw-r--r--gui/options.cpp2
-rw-r--r--gui/saveload.cpp13
19 files changed, 188 insertions, 82 deletions
diff --git a/audio/softsynth/opl/mame.cpp b/audio/softsynth/opl/mame.cpp
index 9cc35971eb..74699ba4c6 100644
--- a/audio/softsynth/opl/mame.cpp
+++ b/audio/softsynth/opl/mame.cpp
@@ -754,8 +754,10 @@ static int OPLOpenTable(void) {
}
static void OPLCloseTable(void) {
+#ifndef __DS__
free(TL_TABLE);
free(SIN_TABLE);
+#endif
free(AMS_TABLE);
free(VIB_TABLE);
free(ENV_CURVE);
diff --git a/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp b/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp
index b929b5fe27..18629d949a 100644
--- a/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp
+++ b/backends/graphics/samsungtvsdl/samsungtvsdl-graphics.cpp
@@ -20,12 +20,14 @@
*
*/
+#include "common/scummsys.h"
+
+#if defined(SAMSUNGTV)
+
#include "backends/platform/samsungtv/samsungtv.h"
#include "backends/events/samsungtvsdl/samsungtvsdl-events.h"
#include "backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h"
-#if defined(SAMSUNGTV)
-
SamsungTVSdlGraphicsManager::SamsungTVSdlGraphicsManager(SdlEventSource *sdlEventSource)
: SdlGraphicsManager(sdlEventSource) {
}
diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp
index c4daf24e16..b38dc518ee 100644
--- a/backends/platform/android/jni.cpp
+++ b/backends/platform/android/jni.cpp
@@ -602,10 +602,12 @@ void JNI::setPause(JNIEnv *env, jobject self, jboolean value) {
g_engine->pauseEngine(value);
+#if 0
if (value &&
g_engine->hasFeature(Engine::kSupportsSavingDuringRuntime) &&
g_engine->canSaveGameStateCurrently())
g_engine->saveGameState(0, "Android parachute");
+#endif
}
pause = value;
diff --git a/backends/platform/dc/Makefile b/backends/platform/dc/Makefile
index 0133ffd9e9..00d408fdaf 100644
--- a/backends/platform/dc/Makefile
+++ b/backends/platform/dc/Makefile
@@ -11,9 +11,13 @@ CXX = sh-elf-g++ -ml -m4-single-only
LD = $(CXX)
CXXFLAGS= -O3 -Wno-multichar -funroll-loops -fschedule-insns2 -fomit-frame-pointer -fdelete-null-pointer-checks -fno-exceptions
DEFINES = -D__DC__ -DNONSTANDARD_PORT -DUSE_MAD -DUSE_ZLIB -DDISABLE_DEFAULT_SAVEFILEMANAGER -DDISABLE_TEXT_CONSOLE -DDISABLE_COMMAND_LINE -DUSE_RGB_COLOR
+# For release builds:
+#DEFINES := -DNOSERIAL
LDFLAGS = -Wl,-Ttext,0x8c010000 -nostartfiles $(ronindir)/lib/crt0.o
INCLUDES= -I./ -I$(srcdir) -I$(ronindir)/include/ -I$(srcdir)/engines
LIBS = -L$(ronindir)/lib -lmad -lronin -lz -lm
+# For release builds:
+#LIBS = -L$(ronindir)/lib -lmad -lronin-noserial -lz -lm
EXECUTABLE = scummvm.elf
DEPDIR = .deps
CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP
diff --git a/backends/platform/ds/arm9/makefile b/backends/platform/ds/arm9/makefile
index 65fb98ee0d..1b21b41a9b 100644
--- a/backends/platform/ds/arm9/makefile
+++ b/backends/platform/ds/arm9/makefile
@@ -75,7 +75,7 @@ else
ifdef DS_BUILD_K
else
- # USE_MAD = 1
+ USE_MAD = 1
endif
endif
endif
@@ -246,6 +246,8 @@ ifdef USE_MAD
endif
DEFINES += -DREDUCE_MEMORY_USAGE -DDISABLE_DEBUGGER -DUSE_TEXT_CONSOLE_FOR_DEBUGGER -DDISABLE_MASS_ADD -DDISABLE_NES_APU
+# for release builds:
+#DEFINES += -DNDEBUG
LDFLAGS = -specs=ds_arm9.specs -mthumb-interwork -mno-fpu -Wl,-Map,map.txt -Wl,--gc-sections
@@ -259,7 +261,7 @@ BACKEND := ds
INCLUDES= -I$(portdir)/$(BUILD) -I$(srcdir) -I$(srcdir)/engines \
-I$(portdir)/data -I$(portdir)/../commoninclude \
-I$(portdir)/source -I$(portdir)/source/mad \
- -I$(libndsdir)/include -include $(srcdir)/common/scummsys.h
+ -I$(libndsdir)/include -include $(portdir)/source/portdefs.h
LIBS = -lm -L$(libndsdir)/lib -L$(portdir)/lib -lnds9
diff --git a/backends/platform/ds/arm9/source/dsmain.cpp b/backends/platform/ds/arm9/source/dsmain.cpp
index b3146cc16f..dfd906d816 100644
--- a/backends/platform/ds/arm9/source/dsmain.cpp
+++ b/backends/platform/ds/arm9/source/dsmain.cpp
@@ -575,7 +575,7 @@ void initGame() {
for (int r = 0; r < NUM_SUPPORTED_GAMES; r++) {
if (!stricmp(gameName, gameList[r].gameId)) {
s_currentGame = &gameList[r];
- // consolePrintf("Game list num: %d\n", s_currentGame);
+ // consolePrintf("Game list num: %d\n", r);
}
}
}
@@ -1668,8 +1668,7 @@ void addEventsToQueue() {
if (!keyboardEnable) {
-
- if ((isScrollingWithDPad() || (indyFightState)) && (displayModeIs8Bit)) {
+ if ((!isScrollingWithDPad() || (indyFightState)) && (displayModeIs8Bit)) {
// Controls specific to the control method
if (s_currentGame->control == CONT_SKY) {
diff --git a/backends/platform/ps2/Makefile.gdb b/backends/platform/ps2/Makefile.gdb
index 48dcebc1d4..1009f0fe4e 100644
--- a/backends/platform/ps2/Makefile.gdb
+++ b/backends/platform/ps2/Makefile.gdb
@@ -1,7 +1,7 @@
# $Header: Exp $
include $(PS2SDK)/Defs.make
-PS2_EXTRA = /media/disk/nw8240/extras/scummvm/ports
+PS2_EXTRA = /works/devel/ps2/sdk-extra
PS2_EXTRA_INCS = /zlib/include /libmad/ee/include /SjPcm/ee/src /tremor
PS2_EXTRA_LIBS = /zlib/lib /libmad/ee/lib /SjPcm/ee/lib /tremor/tremor
@@ -9,31 +9,44 @@ ENABLED=STATIC_PLUGIN
ENABLE_SCUMM = $(ENABLED)
ENABLE_SCUMM_7_8 = $(ENABLED)
-#ENABLE_HE = $(ENABLED)
-#ENABLE_AGI = $(ENABLED)
-#ENABLE_AGOS = $(ENABLED)
-#ENABLE_CINE = $(ENABLED)
-#ENABLE_CRUISE = $(ENABLED)
-#ENABLE_DRASCULA = $(ENABLED)
-#ENABLE_GOB = $(ENABLED)
-#ENABLE_KYRA = $(ENABLED)
-#ENABLE_LURE = $(ENABLED)
- # ENABLE_M4 = $(ENABLED)
-#ENABLE_MADE = $(ENABLED)
-#ENABLE_PARALLACTION = $(ENABLED)
-#ENABLE_QUEEN = $(ENABLED)
-#ENABLE_SAGA = $(ENABLED)
-#ENABLE_SAGA2 = $(ENABLED)
-#ENABLE_IHNM = $(ENABLED)
-#ENABLE_SKY = $(ENABLED)
-#ENABLE_SWORD1 = $(ENABLED)
-#ENABLE_SWORD2 = $(ENABLED)
- # ENABLE_TINSEL = $(ENABLED)
-#ENABLE_TOUCHE = $(ENABLED)
+# ENABLE_HE = $(ENABLED)
+# ENABLE_AGI = $(ENABLED)
+# ENABLE_AGOS = $(ENABLED)
+# ENABLE_AGOS2 = $(ENABLED)
+# ENABLE_CINE = $(ENABLED)
+# ENABLE_CRUISE = $(ENABLED)
+# ENABLE_DRACI = $(ENABLED)
+# ENABLE_DRASCULA = $(ENABLED)
+# ENABLE_GOB = $(ENABLED)
+# ENABLE_GROOVIE = $(ENABLED)
+## ENABLE_GROOVIE2 = $(ENABLED)
+# ENABLE_HUGO = $(ENABLED)
+# ENABLE_IHNM = $(ENABLED)
+# ENABLE_KYRA = $(ENABLED)
+## ENABLE_LOL = $(ENABLED)
+# ENABLE_LURE = $(ENABLED)
+## ENABLE_M4 = $(ENABLED)
+# ENABLE_MADE = $(ENABLED)
+# ENABLE_MOHAWK = $(ENABLED)
+# ENABLE_PARALLACTION = $(ENABLED)
+# ENABLE_QUEEN = $(ENABLED)
+# ENABLE_SAGA = $(ENABLED)
+# ENABLE_SAGA2 = $(ENABLED)
+# ENABLE_SCI = $(ENABLED)
+## ENABLE_SCI32 = $(ENABLED)
+# ENABLE_SKY = $(ENABLED)
+# ENABLE_SWORD1 = $(ENABLED)
+# ENABLE_SWORD2 = $(ENABLED)
+# ENABLE_TEENAGENT = $(ENABLED)
+# ENABLE_TINSEL = $(ENABLED)
+# ENABLE_TOON = $(ENABLED)
+# ENABLE_TOUCHE = $(ENABLED)
+# ENABLE_TUCKER = $(ENABLED)
+
HAVE_GCC3 = true
-CC = ee-gcc
+CC = ee-gcc
CXX = ee-g++
AS = ee-gcc
LD = ee-gcc
@@ -48,35 +61,35 @@ VPATH = $(srcdir)
INCDIR = ../../../
# DEPDIR = .deps
-DEFINES = -DUSE_VORBIS -DUSE_TREMOR -DUSE_MAD -DUSE_ZLIB -DFORCE_RTL -D_EE -D__PLAYSTATION2__ -D__PS2_DEBUG__ -g -Wall -Wno-multichar
-
+DEFINES = -DUSE_VORBIS -DUSE_TREMOR -DUSE_MAD -DUSE_ZLIB -DFORCE_RTL -DDISABLE_SAVEGAME_SORTING -D_EE -D__PLAYSTATION2__ -D__PS2_DEBUG__ -g -Wall -Wno-multichar -fno-rtti -fno-exceptions # -DNO_ADAPTOR
+DEFINES += -DRELEASE_BUILD
INCLUDES = $(addprefix -I$(PS2_EXTRA),$(PS2_EXTRA_INCS))
INCLUDES += -I $(PS2GDB)/ee -I $(PS2SDK)/ee/include -I $(PS2SDK)/common/include -I ./common -I . -I $(srcdir) -I $(srcdir)/engines
+CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP
+
TARGET = elf/scummvm.elf
-OBJS := backends/platform/ps2/DmaPipe.o \
- backends/platform/ps2/Gs2dScreen.o \
- backends/platform/ps2/irxboot.o \
- backends/platform/ps2/ps2input.o \
- backends/platform/ps2/ps2pad.o \
- backends/platform/ps2/savefilemgr.o \
- backends/platform/ps2/fileio.o \
- backends/platform/ps2/asyncfio.o \
- backends/platform/ps2/icon.o \
- backends/platform/ps2/cd.o \
- backends/platform/ps2/eecodyvdfs.o \
- backends/platform/ps2/rpckbd.o \
- backends/platform/ps2/systemps2.o \
- backends/platform/ps2/ps2mutex.o \
- backends/platform/ps2/ps2time.o \
- backends/platform/ps2/ps2debug.o
+OBJS := $(srcdir)/backends/platform/ps2/DmaPipe.o \
+ $(srcdir)/backends/platform/ps2/Gs2dScreen.o \
+ $(srcdir)/backends/platform/ps2/irxboot.o \
+ $(srcdir)/backends/platform/ps2/ps2input.o \
+ $(srcdir)/backends/platform/ps2/ps2pad.o \
+ $(srcdir)/backends/platform/ps2/savefilemgr.o \
+ $(srcdir)/backends/platform/ps2/fileio.o \
+ $(srcdir)/backends/platform/ps2/asyncfio.o \
+ $(srcdir)/backends/platform/ps2/icon.o \
+ $(srcdir)/backends/platform/ps2/cd.o \
+ $(srcdir)/backends/platform/ps2/eecodyvdfs.o \
+ $(srcdir)/backends/platform/ps2/rpckbd.o \
+ $(srcdir)/backends/platform/ps2/systemps2.o \
+ $(srcdir)/backends/platform/ps2/ps2mutex.o \
+ $(srcdir)/backends/platform/ps2/ps2time.o \
+ $(srcdir)/backends/platform/ps2/ps2debug.o
MODULE_DIRS += .
-BACKEND := ps2
-
include $(srcdir)/Makefile.common
LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -T $(PS2SDK)/ee/startup/linkfile
diff --git a/backends/platform/ps2/Makefile.ps2 b/backends/platform/ps2/Makefile.ps2
index 472ba5ec3a..ea966ec236 100644
--- a/backends/platform/ps2/Makefile.ps2
+++ b/backends/platform/ps2/Makefile.ps2
@@ -12,28 +12,41 @@ ENABLE_SCUMM_7_8 = $(ENABLED)
ENABLE_HE = $(ENABLED)
ENABLE_AGI = $(ENABLED)
ENABLE_AGOS = $(ENABLED)
+ENABLE_AGOS2 = $(ENABLED)
ENABLE_CINE = $(ENABLED)
ENABLE_CRUISE = $(ENABLED)
+ENABLE_DRACI = $(ENABLED)
ENABLE_DRASCULA = $(ENABLED)
ENABLE_GOB = $(ENABLED)
+ENABLE_GROOVIE = $(ENABLED)
+# ENABLE_GROOVIE2 = $(ENABLED)
+ENABLE_HUGO = $(ENABLED)
+ENABLE_IHNM = $(ENABLED)
ENABLE_KYRA = $(ENABLED)
+# ENABLE_LOL = $(ENABLED)
ENABLE_LURE = $(ENABLED)
# ENABLE_M4 = $(ENABLED)
ENABLE_MADE = $(ENABLED)
+ENABLE_MOHAWK = $(ENABLED)
ENABLE_PARALLACTION = $(ENABLED)
ENABLE_QUEEN = $(ENABLED)
ENABLE_SAGA = $(ENABLED)
-ENABLE_SAGA2 = $(ENABLED)
-ENABLE_IHNM = $(ENABLED)
+# ENABLE_SAGA2 = $(ENABLED)
+ENABLE_SCI = $(ENABLED)
+# ENABLE_SCI32 = $(ENABLED)
ENABLE_SKY = $(ENABLED)
ENABLE_SWORD1 = $(ENABLED)
ENABLE_SWORD2 = $(ENABLED)
-# ENABLE_TINSEL = $(ENABLED)
+ENABLE_TEENAGENT = $(ENABLED)
+ENABLE_TINSEL = $(ENABLED)
+ENABLE_TOON = $(ENABLED)
ENABLE_TOUCHE = $(ENABLED)
+ENABLE_TUCKER = $(ENABLED)
+
HAVE_GCC3 = true
-CC = ee-gcc
+CC = ee-gcc
CXX = ee-g++
AS = ee-gcc
LD = ee-gcc
@@ -48,30 +61,32 @@ VPATH = $(srcdir)
INCDIR = ../../../
# DEPDIR = .deps
-DEFINES = -DUSE_VORBIS -DUSE_TREMOR -DUSE_MAD -DUSE_ZLIB -DFORCE_RTL -D_EE -D__PLAYSTATION2__ -O2 -Wall -Wno-multichar
-
+DEFINES = -DUSE_VORBIS -DUSE_TREMOR -DUSE_MAD -DUSE_ZLIB -DFORCE_RTL -DDISABLE_SAVEGAME_SORTING -D_EE -D__PLAYSTATION2__ -G2 -O2 -Wall -Wno-multichar -fno-rtti -fno-exceptions # -DNO_ADAPTOR
+DEFINES += -DRELEASE_BUILD
INCLUDES = $(addprefix -I$(PS2_EXTRA),$(PS2_EXTRA_INCS))
INCLUDES += -I $(PS2SDK)/ee/include -I $(PS2SDK)/common/include -I ./common -I . -I $(srcdir) -I $(srcdir)/engines
+CXX_UPDATE_DEP_FLAG = -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP
+
TARGET = elf/scummvm.elf
-OBJS := backends/platform/ps2/DmaPipe.o \
- backends/platform/ps2/Gs2dScreen.o \
- backends/platform/ps2/irxboot.o \
- backends/platform/ps2/ps2input.o \
- backends/platform/ps2/ps2pad.o \
- backends/platform/ps2/savefilemgr.o \
- backends/platform/ps2/fileio.o \
- backends/platform/ps2/asyncfio.o \
- backends/platform/ps2/icon.o \
- backends/platform/ps2/cd.o \
- backends/platform/ps2/eecodyvdfs.o \
- backends/platform/ps2/rpckbd.o \
- backends/platform/ps2/systemps2.o \
- backends/platform/ps2/ps2mutex.o \
- backends/platform/ps2/ps2time.o \
- backends/platform/ps2/ps2debug.o
+OBJS := $(srcdir)/backends/platform/ps2/DmaPipe.o \
+ $(srcdir)/backends/platform/ps2/Gs2dScreen.o \
+ $(srcdir)/backends/platform/ps2/irxboot.o \
+ $(srcdir)/backends/platform/ps2/ps2input.o \
+ $(srcdir)/backends/platform/ps2/ps2pad.o \
+ $(srcdir)/backends/platform/ps2/savefilemgr.o \
+ $(srcdir)/backends/platform/ps2/fileio.o \
+ $(srcdir)/backends/platform/ps2/asyncfio.o \
+ $(srcdir)/backends/platform/ps2/icon.o \
+ $(srcdir)/backends/platform/ps2/cd.o \
+ $(srcdir)/backends/platform/ps2/eecodyvdfs.o \
+ $(srcdir)/backends/platform/ps2/rpckbd.o \
+ $(srcdir)/backends/platform/ps2/systemps2.o \
+ $(srcdir)/backends/platform/ps2/ps2mutex.o \
+ $(srcdir)/backends/platform/ps2/ps2time.o \
+ $(srcdir)/backends/platform/ps2/ps2debug.o
MODULE_DIRS += .
diff --git a/backends/platform/samsungtv/main.cpp b/backends/platform/samsungtv/main.cpp
index 4f3291613d..8274bb00a2 100644
--- a/backends/platform/samsungtv/main.cpp
+++ b/backends/platform/samsungtv/main.cpp
@@ -22,12 +22,14 @@
#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h
+#include "common/scummsys.h"
+
+#if defined(SAMSUNGTV)
+
#include "backends/platform/samsungtv/samsungtv.h"
#include "backends/plugins/sdl/sdl-provider.h"
#include "base/main.h"
-#if defined(SAMSUNGTV)
-
#include <unistd.h>
extern "C" int Game_Main(char *path, char *) {
diff --git a/backends/platform/samsungtv/samsungtv.cpp b/backends/platform/samsungtv/samsungtv.cpp
index 1b978d0121..9718eed1fe 100644
--- a/backends/platform/samsungtv/samsungtv.cpp
+++ b/backends/platform/samsungtv/samsungtv.cpp
@@ -20,11 +20,14 @@
*
*/
+#include "common/scummsys.h"
+
+#if defined(SAMSUNGTV)
+
#include "backends/platform/samsungtv/samsungtv.h"
#include "backends/events/samsungtvsdl/samsungtvsdl-events.h"
#include "backends/graphics/samsungtvsdl/samsungtvsdl-graphics.h"
-
-#if defined(SAMSUNGTV)
+#include "common/textconsole.h"
OSystem_SDL_SamsungTV::OSystem_SDL_SamsungTV()
:
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 78eea50082..e34cde4779 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -52,7 +52,7 @@ static const char USAGE_STRING[] =
;
// DONT FIXME: DO NOT ORDER ALPHABETICALLY, THIS IS ORDERED BY IMPORTANCE/CATEGORY! :)
-#if defined(__SYMBIAN32__) || defined(__GP32__) || defined(ANDROID)
+#if defined(__SYMBIAN32__) || defined(__GP32__) || defined(ANDROID) || defined(__DS__)
static const char HELP_STRING[] = "NoUsageString"; // save more data segment space
#else
static const char HELP_STRING[] =
@@ -146,7 +146,7 @@ static void usage(const char *s, ...) {
vsnprintf(buf, STRINGBUFLEN, s, va);
va_end(va);
-#if !(defined(__GP32__) || defined (__SYMBIAN32__))
+#if !(defined(__GP32__) || defined (__SYMBIAN32__) || defined(__DS__))
printf(USAGE_STRING, s_appName, buf, s_appName, s_appName);
#endif
exit(1);
diff --git a/configure b/configure
index fe5784caed..3194f70f32 100755
--- a/configure
+++ b/configure
@@ -1934,6 +1934,8 @@ if test -n "$_host"; then
DEFINES="$DEFINES -DDISABLE_DEFAULT_SAVEFILEMANAGER"
DEFINES="$DEFINES -DDISABLE_TEXT_CONSOLE"
DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
+ # for release builds:
+ #DEFINES="$DEFINES -DNOSERIAL"
CXXFLAGS="$CXXFLAGS -O3"
CXXFLAGS="$CXXFLAGS -funroll-loops"
CXXFLAGS="$CXXFLAGS -fschedule-insns2"
diff --git a/engines/saga/font.cpp b/engines/saga/font.cpp
index a5363909ff..8c3f4d7c42 100644
--- a/engines/saga/font.cpp
+++ b/engines/saga/font.cpp
@@ -40,6 +40,10 @@ Font::Font(SagaEngine *vm) : _vm(vm) {
_fonts.resize(_vm->getFontsCount());
for (i = 0; i < _vm->getFontsCount(); i++) {
+#ifdef __DS__
+ _fonts[i].outline.font = NULL;
+ _fonts[i].normal.font = NULL;
+#endif
loadFont(&_fonts[i], _vm->getFontDescription(i)->fontResourceId);
}
@@ -48,6 +52,18 @@ Font::Font(SagaEngine *vm) : _vm(vm) {
Font::~Font() {
debug(8, "Font::~Font(): Freeing fonts.");
+
+#ifdef __DS__
+ for (int i = 0; i < _vm->getFontsCount(); i++) {
+ if (_fonts[i].outline.font) {
+ free(_fonts[i].outline.font);
+ }
+
+ if (_fonts[i].normal.font) {
+ free(_fonts[i].normal.font);
+ }
+ }
+#endif
}
@@ -104,9 +120,17 @@ void Font::loadFont(FontData *font, uint32 fontResourceId) {
error("Invalid font resource size");
}
+#ifndef __DS__
font->normal.font.resize(fontResourceData.size() - FONT_DESCSIZE);
memcpy(font->normal.font.getBuffer(), fontResourceData.getBuffer() + FONT_DESCSIZE, fontResourceData.size() - FONT_DESCSIZE);
+#else
+ if (font->normal.font) {
+ free(font->normal.font);
+ }
+ font->normal.font = (byte *) malloc(fontResourceData.size() - FONT_DESCSIZE);
+ memcpy(font->normal.font, fontResourceData.getBuffer() + FONT_DESCSIZE, fontResourceData.size() - FONT_DESCSIZE);
+#endif
// Create outline font style
createOutline(font);
@@ -150,7 +174,15 @@ void Font::createOutline(FontData *font) {
font->outline.header.rowLength = newRowLength;
// Allocate new font representation storage
+#ifdef __DS__
+ if (font->outline.font) {
+ free(font->outline.font);
+ }
+
+ font->outline.font = (byte *) calloc(newRowLength * font->outline.header.charHeight, 1);
+#else
font->outline.font.resize(newRowLength * font->outline.header.charHeight);
+#endif
// Generate outline font representation
diff --git a/engines/saga/font.h b/engines/saga/font.h
index 75d5fa95b9..a45299ad48 100644
--- a/engines/saga/font.h
+++ b/engines/saga/font.h
@@ -117,7 +117,11 @@ struct FontCharEntry {
struct FontStyle {
FontHeader header;
FontCharEntry fontCharEntry[256];
+#ifndef __DS__
ByteArray font;
+#else
+ byte* font;
+#endif
};
struct FontData {
diff --git a/gui/gui-manager.cpp b/gui/gui-manager.cpp
index f56a9097d5..af1852d56d 100644
--- a/gui/gui-manager.cpp
+++ b/gui/gui-manager.cpp
@@ -74,6 +74,14 @@ GuiManager::GuiManager() : _redrawStatus(kRedrawDisabled), _stateIsSaved(false),
ConfMan.registerDefault("gui_renderer", ThemeEngine::findModeConfigName(ThemeEngine::_defaultRendererMode));
ThemeEngine::GraphicsMode gfxMode = (ThemeEngine::GraphicsMode)ThemeEngine::findMode(ConfMan.get("gui_renderer"));
+#ifdef __DS__
+ // Searching for the theme file takes ~10 seconds on the DS.
+ // Disable this search here because external themes are not supported.
+ if (!loadNewTheme("builtin", gfxMode)) {
+ // Loading the built-in theme failed as well. Bail out
+ error("Failed to load any GUI theme, aborting");
+ }
+#else
// Try to load the theme
if (!loadNewTheme(themefile, gfxMode)) {
// Loading the theme failed, try to load the built-in theme
@@ -82,6 +90,7 @@ GuiManager::GuiManager() : _redrawStatus(kRedrawDisabled), _stateIsSaved(false),
error("Failed to load any GUI theme, aborting");
}
}
+#endif
}
GuiManager::~GuiManager() {
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index 792b5bbfbe..86ca3162cb 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -718,6 +718,8 @@ void LauncherDialog::updateListing() {
void LauncherDialog::addGame() {
int modifiers = g_system->getEventManager()->getModifierState();
+
+#ifndef DISABLE_MASS_ADD
const bool massAdd = (modifiers & Common::KBD_SHIFT) != 0;
if (massAdd) {
@@ -746,6 +748,7 @@ void LauncherDialog::addGame() {
updateButtons();
return;
}
+#endif
// Allow user to add a new game to the list.
// 1) show a dir selection dialog which lets the user pick the directory
@@ -918,7 +921,7 @@ void LauncherDialog::loadGame(int item) {
gameId = _domains[item];
const EnginePlugin *plugin = 0;
-
+
EngineMan.findGame(gameId, &plugin);
String target = _domains[item];
diff --git a/gui/massadd.cpp b/gui/massadd.cpp
index 7b641d71e5..861be970c4 100644
--- a/gui/massadd.cpp
+++ b/gui/massadd.cpp
@@ -31,7 +31,7 @@
#include "gui/widget.h"
#include "gui/widgets/list.h"
-
+#ifndef DISABLE_MASS_ADD
namespace GUI {
/*
@@ -264,3 +264,4 @@ void MassAddDialog::handleTickle() {
} // End of namespace GUI
+#endif // DISABLE_MASS_ADD
diff --git a/gui/options.cpp b/gui/options.cpp
index 5cb70bc5e4..0c9d03af0c 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -138,7 +138,7 @@ void OptionsDialog::init() {
_subSpeedDesc = 0;
_subSpeedSlider = 0;
_subSpeedLabel = 0;
- _oldTheme = ConfMan.get("gui_theme");
+ _oldTheme = g_gui.theme()->getThemeId();
// Retrieve game GUI options
_guioptions = 0;
diff --git a/gui/saveload.cpp b/gui/saveload.cpp
index 7c7394a71d..460246e5fc 100644
--- a/gui/saveload.cpp
+++ b/gui/saveload.cpp
@@ -359,8 +359,19 @@ void SaveLoadChooser::updateSaveList() {
}
// Fill the rest of the save slots with empty saves
+
+ int maximumSaveSlots = (*_plugin)->getMaximumSaveSlot();
+
+#ifdef __DS__
+ // Low memory on the DS means too many save slots are impractical, so limit
+ // the maximum here.
+ if (maximumSaveSlots > 99) {
+ maximumSaveSlots = 99;
+ }
+#endif
+
Common::String emptyDesc;
- for (int i = curSlot; i <= (*_plugin)->getMaximumSaveSlot(); i++) {
+ for (int i = curSlot; i <= maximumSaveSlots; i++) {
saveNames.push_back(emptyDesc);
SaveStateDescriptor dummySave(i, "");
_saveList.push_back(dummySave);