aboutsummaryrefslogtreecommitdiff
path: root/backends/platform
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform')
-rw-r--r--backends/platform/ds/arm9/makefile.in350
-rw-r--r--backends/platform/symbian/res/scummvm.cer21
-rw-r--r--backends/platform/symbian/res/scummvm.key15
-rw-r--r--backends/platform/wince/README-WinCE.txt616
4 files changed, 1002 insertions, 0 deletions
diff --git a/backends/platform/ds/arm9/makefile.in b/backends/platform/ds/arm9/makefile.in
new file mode 100644
index 0000000000..e7a7da4a59
--- /dev/null
+++ b/backends/platform/ds/arm9/makefile.in
@@ -0,0 +1,350 @@
+#BUILD_PLUGINS = 1
+#libndsdir = $(DEVKITPRO)/libnds
+libndsdir = /home/neil/devkitpro/libnds
+
+# Select the build you want by uncommenting one of the following lines:
+
+DS_BUILD_A = 1
+#DS_BUILD_B = 1
+#DS_BUILD_C = 1
+#DS_BUILD_D = 1
+
+# Uncomment the following line to build in support for MP3 audio
+# using libmad:
+USE_MAD = 1
+
+# Uncomment the following line to enable support for the
+# ace DS Debugger (remembering to make the same change in the arm7 makefile):
+#USE_DEBUGGER = 1
+# NOTE: The header and libs for the debugger is assumed to be in the libnds
+# folder.
+
+VPATH = $(srcdir)
+
+# Command to build libmad is:
+# ./configure --host=arm-elf --enable-speed --enable-sso -enable-fpm=arm CFLAGS='-specs=ds_arm9.specs -mthumb-interwork'
+
+
+ifdef DS_BUILD_A
+ DEFINES = -DDS_SCUMM_BUILD -DDS_BUILD_A
+ LOGO = logoa.bmp
+ DISABLE_HE = 1
+ #DISABLE_SCUMM = 1
+ DISABLE_SCUMM_7_8 = 1
+ DISABLE_AGOS = 1
+ DISABLE_SKY = 1
+ DISABLE_SWORD1 = 1
+ DISABLE_SWORD2 = 1
+ DISABLE_QUEEN = 1
+ DISABLE_SAGA = 1
+ DISABLE_KYRA = 1
+ DISABLE_GOB = 1
+ DISABLE_LURE = 1
+ DISABLE_CINE = 1
+ DISABLE_AGI = 1
+ DISABLE_TOUCHE = 1
+ DISABLE_PARALLACTION = 1
+ BUILD=scummvm-A
+endif
+
+ifdef DS_BUILD_B
+ DEFINES = -DDS_NON_SCUMM_BUILD -DDS_BUILD_B
+ LOGO = logob.bmp
+ DISABLE_HE = 1
+ DISABLE_SCUMM = 1
+ DISABLE_SCUMM_7_8 = 1
+ DISABLE_AGOS = 1
+ #DISABLE_SKY = 1
+ DISABLE_SWORD1 = 1
+ DISABLE_SWORD2 = 1
+ #DISABLE_QUEEN = 1
+ DISABLE_SAGA = 1
+ DISABLE_KYRA = 1
+ DISABLE_GOB = 1
+ DISABLE_LURE = 1
+ DISABLE_CINE = 1
+ DISABLE_AGI = 1
+ DISABLE_TOUCHE = 1
+ DISABLE_PARALLACTION = 1
+ BUILD=scummvm-B
+endif
+
+ifdef DS_BUILD_C
+ DEFINES = -DDS_NON_SCUMM_BUILD -DDS_BUILD_C
+ LOGO = logoc.bmp
+ DISABLE_HE = 1
+ DISABLE_SCUMM = 1
+ DISABLE_SCUMM_7_8 = 1
+ #DISABLE_AGOS = 1
+ DISABLE_SKY = 1
+ DISABLE_SWORD1 = 1
+ DISABLE_SWORD2 = 1
+ DISABLE_QUEEN = 1
+ DISABLE_SAGA = 1
+ #DISABLE_KYRA = 1
+ #DISABLE_GOB = 1
+ DISABLE_LURE = 1
+ DISABLE_CINE = 1
+ DISABLE_AGI = 1
+ DISABLE_TOUCHE = 1
+ DISABLE_PARALLACTION = 1
+ BUILD=scummvm-C
+endif
+
+ifdef DS_BUILD_D
+ DEFINES = -DDS_NON_SCUMM_BUILD -DDS_BUILD_D
+ LOGO = logoc.bmp
+ DISABLE_HE = 1
+ DISABLE_SCUMM = 1
+ DISABLE_SCUMM_7_8 = 1
+ DISABLE_AGOS = 1
+ DISABLE_SKY = 1
+ DISABLE_SWORD1 = 1
+ DISABLE_SWORD2 = 1
+ DISABLE_QUEEN = 1
+ DISABLE_SAGA = 1
+ DISABLE_KYRA = 1
+ DISABLE_GOB = 1
+ DISABLE_LURE = 1
+ #DISABLE_CINE = 1
+ #DISABLE_AGI = 1
+ DISABLE_TOUCHE = 1
+ DISABLE_PARALLACTION = 1
+ BUILD=scummvm-A
+endif
+
+
+ARM7BIN := -7 $(CURDIR)/../../arm7/arm7.bin
+ICON := -b ../../../logo.bmp "ScummVM;By Neil Millstone;"
+
+CC = arm-eabi-gcc
+CXX = arm-eabi-g++
+
+CFLAGS = -Wno-multichar -Wall -Os\
+ -Wno-multichar -mcpu=arm9tdmi -mtune=arm9tdmi \
+ -mcpu=arm9tdmi -mtune=arm9tdmi -fomit-frame-pointer\
+ -ffast-math -mthumb-interwork
+
+ifdef USE_DEBUGGER
+ DEFINES += -DUSE_DEBUGGER
+ CFLAGS += -g
+endif
+
+CXXFLAGS= $(CFLAGS) -Wno-non-virtual-dtor -Wno-non-virtual-dtor \
+ -fno-exceptions -fno-rtti
+
+ASFLAGS = -mcpu=arm9tdmi -mthumb-interwork
+DEFINES += -D__DS__ -DNDS -DARM9 -DNONSTANDARD_PORT -DDISABLE_FANCY_THEMES -DDISABLE_DEFAULT_SAVEFILEMANAGER
+ifdef USE_MAD
+ DEFINES += -DUSE_MAD
+endif
+
+
+LDFLAGS = -specs=ds_arm9.specs -mthumb-interwork -mno-fpu -Wl,-Map,map.txt
+
+INCLUDES= -I./ -I$(portdir)/$(BUILD) -I$(srcdir) -I$(srcdir)/common -I$(portdir)/source -I$(portdir)/source/compressor -I$(portdir)/source/fat \
+ -I$(srcdir)/backends/fs -I$(srcdir)/backends/fs/ds -I$(portdir)/data -I$(libndsdir)/include -I$(portdir)/../commoninclude\
+ -I$(srcdir)/scumm -I$(libndsdir)/include -I$(libndsdir)/include/nds -I$(srcdir)/engines -I$(portdir)/source/mad\
+ -I$(portdir)/source/libcartreset
+
+
+LIBS = -lm -L$(libndsdir)/lib -L$(portdir)/lib -lnds9
+ifdef USE_MAD
+ LIBS += -lmad
+endif
+ifdef USE_DEBUGGER
+ LIBS += -ldsdebugger -ldswifi9
+endif
+
+#-Lscumm -lscumm -Lbase -lbase -Lcommon -lcommon -Lgraphics -lgraphics -Lgui -lgui -Lsound -lsound
+EXECUTABLE = scummvm.elf
+PLUGIN_PREFIX =
+PLUGIN_SUFFIX = .plg
+PLUGIN_EXTRA_DEPS = plugin.x plugin.syms scummvm.elf
+PLUGIN_LDFLAGS = -nostartfiles -Wl,-q,-Tplugin.x,--just-symbols,scummvm.elf,--retain-symbols-file,plugin.syms -L$(ronindir)/lib
+MKDIR = mkdir -p
+RM = rm -f
+RM_REC = rm -rf
+AR = arm-eabi-ar cru
+RANLIB = arm-eabi-ranlib
+OBJCOPY = arm-eabi-objcopy
+AS = arm-eabi-as
+HAVE_GCC3 = true
+DISABLE_SCALERS = true
+
+ifdef BUILD_PLUGINS
+DEFINES += -DDYNAMIC_MODULES
+PRE_OBJS_FLAGS = -Wl,--whole-archive
+POST_OBJS_FLAGS = -Wl,--no-whole-archive
+endif
+
+PORT_OBJS := $(portdir)/source/blitters.o $(portdir)/source/cdaudio.o $(portdir)/source/dsmain.o \
+ $(portdir)/../../../fs/ds/ds-fs.o $(portdir)/source/gbampsave.o $(portdir)/source/scummhelp.o\
+ $(portdir)/source/osystem_ds.o $(portdir)/source/portdefs.o $(portdir)/source/ramsave.o\
+ $(portdir)/source/scummconsole.o $(portdir)/source/touchkeyboard.o $(portdir)/source/zipreader.o\
+ $(portdir)/source/dsoptions.o $(portdir)/source/keys.o
+
+DATA_OBJS := $(portdir)/data/icons.o $(portdir)/data/keyboard.o $(portdir)/data/keyboard_pal.o $(portdir)/data/default_font.o
+
+
+COMPRESSOR_OBJS := $(portdir)/source/compressor/lz.o
+
+FAT_OBJS := $(portdir)/source/fat/disc_io.o $(portdir)/source/fat/gba_nds_fat.o\
+ $(portdir)/source/fat/io_fcsr.o $(portdir)/source/fat/io_m3cf.o\
+ $(portdir)/source/fat/io_mpcf.o $(portdir)/source/fat/io_sccf.o\
+ $(portdir)/source/fat/io_m3sd.o\
+ $(portdir)/source/fat/io_nmmc.o $(portdir)/source/fat/io_scsd.o \
+ $(portdir)/source/fat/io_scsd_asm.o \
+ $(portdir)/source/fat/io_njsd.o \
+ $(portdir)/source/fat/io_mmcf.o \
+ $(portdir)/source/fat/io_sd_common.o \
+ $(portdir)/source/fat/io_m3_common.o \
+ $(portdir)/source/fat/io_dldi.o \
+ $(portdir)/source/fat/m3sd.o
+
+
+# $(portdir)/source/fat/io_cf_common.o $(portdir)/source/fat/io_m3_common.o\
+# $(portdir)/source/fat/io_sd_common.o $(portdir)/source/fat/io_scsd_s.o \
+# $(portdir)/source/fat/io_sc_common.o $(portdir)/source/fat/io_sd_common.o
+
+LIBCARTRESET_OBJS := $(portdir)/source/libcartreset/cartreset.o
+
+
+
+OBJS := $(DATA_OBJS) $(LIBCARTRESET_OBJS) $(PORT_OBJS) $(COMPRESSOR_OBJS) $(FAT_OBJS)
+
+
+
+MODULE_DIRS += .
+
+ndsall:
+ @[ -d $(BUILD) ] || mkdir -p $(BUILD)
+ make -C ./$(BUILD) -f ../makefile scummvm.nds
+
+include $(srcdir)/Makefile.common
+
+clean:
+ $(RM) $(OBJS) $(EXECUTABLE)
+ rm -fr $(BUILD)
+
+plugin_dist :
+ find . -name '*.plg' | while read p; do \
+ sh-elf-strip -g -o "`basename \"$$p\" | tr '[:lower:]' '[:upper:]'`" "$$p"; \
+ done
+
+dist : SCUMMVM.BIN plugins plugin_dist
+
+
+#---------------------------------------------------------------------------------
+# canned command sequence for binary data
+#---------------------------------------------------------------------------------
+#define bin2o
+# bin2s $< | $(AS) -mthumb -mthumb-interwork -o $(@)
+# echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_raw_end[];" > `(echo $(<F) | tr . _)`.h
+# echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_raw[];" >> `(echo $(<F) | tr . _)`.h
+# echo "extern const u32" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_raw_size";" >> `(echo $(<F) | tr . _)`.h
+#endef
+
+
+define bin2o
+ bin2s $< | $(AS) -mthumb -mthumb-interwork -o $(@)
+ echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"_end[];" > `(echo $(<F) | tr . _)`.h
+ echo "extern const u8" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`"[];" >> `(echo $(<F) | tr . _)`.h
+ echo "extern const u32" `(echo $(<F) | sed -e 's/^\([0-9]\)/_\1/' | tr . _)`_size";" >> `(echo $(<F) | tr . _)`.h
+endef
+
+
+#define bin2o
+# @echo $(*)
+# cp $(<) $(*).tmp
+# $(OBJCOPY) -I binary -O elf32-littlearm -B arm \
+# --rename-section .data=.rodata \
+# --redefine-sym _binary_$(subst .,_,$(subst /,_,$(*)))_tmp_start=$(notdir $*)\
+# --redefine-sym _binary_$(subst .,_,$(subst /,_,$(*)))_tmp_end=$(notdir $*)_end\
+# $(*).tmp $(@)
+# echo "extern const u8" $(notdir $*)"[] __attribute__ ((aligned (4)));" > $(*).h
+# echo "extern const u32" $(notdir $(*))_size[]";" >> $(*).h
+#
+# echo $(*).h
+# rm $(*).tmp
+#endef
+
+##############
+# Replacement rule for the one in makefile.common
+##############
+ifndef HAVE_GCC3
+# If you use GCC, disable the above and enable this for intelligent
+# dependency tracking.
+.cpp.o:
+ $(MKDIR) $(*D)/$(DEPDIR)
+ $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d2" $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
+# $(ECHO) "$(*D)/" > $(*D)/$(DEPDIR)/$(*F).d
+ $(CAT) "$(*D)/$(DEPDIR)/$(*F).d2" >> "$(*D)/$(DEPDIR)/$(*F).d"
+ $(RM) "$(*D)/$(DEPDIR)/$(*F).d2"
+else
+# If you even have GCC 3.x, you can use this build rule, which is safer; the above
+# rule can get you into a bad state if you Ctrl-C at the wrong moment.
+# Also, with this GCC inserts additional dummy rules for the involved headers,
+# which ensures a smooth compilation even if said headers become obsolete.
+.cpp.o:
+ $(MKDIR) $(*D)/$(DEPDIR)
+# $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
+ $(CXX) -MMD -MF "$(*D)/$(DEPDIR)/$(*F).d" $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
+endif
+
+
+#---------------------------------------------------------------------------------
+
+#---------------------------------------------------------------------------------
+%.o : %.pcx
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+#---------------------------------------------------------------------------------
+%.o : %.bin
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+#---------------------------------------------------------------------------------
+%.o : %.raw
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+#---------------------------------------------------------------------------------
+%.o : %.pal
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+#---------------------------------------------------------------------------------
+%.o : %.map
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+#---------------------------------------------------------------------------------
+%.o : %.mdl
+#---------------------------------------------------------------------------------
+ @echo $(notdir $<)
+ @$(bin2o)
+
+#---------------------------------------------------------------------------------
+%.nds: %.bin
+ @echo ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../../$(LOGO) "$(shell basename $@);ScummVM @VERSION@;DS Port"
+ ndstool -c $@ -9 scummvm.bin $(ARM7BIN) -b ../../$(LOGO) "$(shell basename $@);ScummVM @VERSION@;DS Port"
+ dsbuild $@ -l ../ndsloader.bin
+
+ padbin 16 $(basename $@).ds.gba
+
+#---------------------------------------------------------------------------------
+%.bin: %.elf
+ $(OBJCOPY) -S scummvm.elf scummvm-stripped.elf
+ $(OBJCOPY) -O binary scummvm-stripped.elf scummvm.bin
+
+#%.o: %.s
+# $(MKDIR) $(*D)/$(DEPDIR)
+# $(CXX) -Wp,-MMD,"$(*D)/$(DEPDIR)/$(*F).d",-MQ,"$@",-MP $(CXXFLAGS) $(CPPFLAGS) -c $(<) -o $*.o
+
diff --git a/backends/platform/symbian/res/scummvm.cer b/backends/platform/symbian/res/scummvm.cer
new file mode 100644
index 0000000000..70b765e6b4
--- /dev/null
+++ b/backends/platform/symbian/res/scummvm.cer
@@ -0,0 +1,21 @@
+-----BEGIN CERTIFICATE-----
+MIIDXTCCAxqgAwIBAgIBADALBgcqhkjOOAQDBQAwgZIxEDAOBgNVBAoTB1NjdW1t
+Vk0xfjB8BgNVBAMTdVNjdW1tVk0gUzYwdjM3OThiOTk0MDg2OTFhZThlZWM2N2Zl
+NGUxYmZjOTQ1YTI0YjRmYjZmMTlmMGJiNzE2N2FjYWEwYzBlNjc0OTM3MmEyY2Qw
+YjNiMmY5MWRmMGQyNTQwZjdlYzc0YzllNzhhYWJlMzkwZTAeFw0wNzA2MTAxOTQ4
+NTJaFw0wODA2MDkxOTQ4NTJaMIGSMRAwDgYDVQQKEwdTY3VtbVZNMX4wfAYDVQQD
+E3VTY3VtbVZNIFM2MHYzNzk4Yjk5NDA4NjkxYWU4ZWVjNjdmZTRlMWJmYzk0NWEy
+NGI0ZmI2ZjE5ZjBiYjcxNjdhY2FhMGMwZTY3NDkzNzJhMmNkMGIzYjJmOTFkZjBk
+MjU0MGY3ZWM3NGM5ZTc4YWFiZTM5MGUwggG3MIIBKwYHKoZIzjgEATCCAR4CgYEA
+ydXBoDldKAiq3DmfGPwReY9qHEMEh4AyuK5N4M7PvCSYUWU6sWp9PQJ1DDXOm54o
+k8IicM9/dmNdQVAGah2Oi5wizbaYV3HkFufLQOQdaOFg7uclJKp+4cnPsG8lz4DS
+j6o9kRxANZ9vJgE7qxWG5HnEPNm/l0mDbyWbtbAT//sCFQDCZT2JjR+U+o2orfUL
+tcojrwdLSQKBgGdx5eoIaGOxIXgP7ttNdL+7qOYMJD2wI93o5eRiLOaTme276pr3
+oYv3VVRZJa6UXD298b705ia/XQqO6KA9QJgPMjJnwD/8ydcZyZqmX6sNpv6dc7AN
+y/6BJN6DO0xUc9BTkQr4cYBhfkc1mYTBzxOj7bi4aATBjcCXzDXXyT2bA4GFAAKB
+gQCXsapLABnAVfz60pOQt+Kcl3x+/Rz+vXoItLg3O8cVjooi/q0uaaXF/AnO2njb
+lLHbQX3zmv/+tvD2PSyFtgNgscyTf/EECqWMK94Lb0/Jw1rvdNO86eWzsW7UzArF
+5KjJbUn64+PTSU8m7GTqGN4NFh6yFBk//Z2ljy+Zt0WZBDALBgcqhkjOOAQDBQAD
+MAAwLQIUJUCWx57QyGsiPM5w5qvX3ZYF0/kCFQC47QWyrzi4dr2y2iDNWsln7La4
+Qw==
+-----END CERTIFICATE-----
diff --git a/backends/platform/symbian/res/scummvm.key b/backends/platform/symbian/res/scummvm.key
new file mode 100644
index 0000000000..62e3d3858c
--- /dev/null
+++ b/backends/platform/symbian/res/scummvm.key
@@ -0,0 +1,15 @@
+-----BEGIN DSA PRIVATE KEY-----
+Proc-Type: 4,ENCRYPTED
+DEK-Info: DES-EDE3-CBC,AA4358B4EE40C19C
+
+OyPKZgptp6jQoGEckxKO4fHS9IL72F0rHduv4qguYHdKeyjREgWDN6+/QhI3SQWu
+9bch/oyo/mhO6ZcLjOukBVaygYNw8VTnuEUITmPPrLo7Hcrs12y5jr6MCJ1XBho8
+K0eBwJpqEYFlRZcGqLhJVcPbREEZAOY522MsnT4V3Sa2yerK0AWMSXSTjWRPVxlo
+RdqB7vdU/zp3FZvV1gXp+aAOb0WoUbZZYo5r4JnHS+6DGHJfWtXucz4VhcrYxLa8
+xNE3WvTvnIyudG1Yc4J5pl0fpS7wBHQHFtqv2ncRWhY49r9RNR6bfMLZULZj8mwo
+QRYkUeaAkdEkTiYlVl/KQ1i3Hh1qupaQwxF/WqCtfbvLA6KlzYLllTnGwsRHujid
+f97fGt1z8uWGtzDWQzKW3nY0I2psAA/bCYwL88G1aOPEyp4Ql1lkyxRm4Tw7Zu5M
+pF09dAgkFVvPH5Bn7o05ZS9ruNhF5K/5QNg3WTVDhZEqkqiXWRGXaEhc6ZfoK/+H
+ne1d3+QfKEX8rxAtjX1hVNkNG1ivmIExpa45wUmSE2pOIj31ny0gK1tCv4mdgEDL
+elR3M/oAw0BdxBn9LqmDaQ==
+-----END DSA PRIVATE KEY-----
diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
new file mode 100644
index 0000000000..856afd45ab
--- /dev/null
+++ b/backends/platform/wince/README-WinCE.txt
@@ -0,0 +1,616 @@
+ScummVM Windows CE FAQ
+Last updated: $Date: 2007-06-11 02:38:33 -0600 (Mon, 11 Jun 2007) $
+Release version: 0.10.0
+------------------------------------------------------------------------
+
+New in this version
+-------------------
+
+0.10.0:
+Major improvements have taken place in this version, mostly for behind-
+the-scenes stuff. First, we have migrated to GCC for building the Windows
+CE port. This helped take care of some obscure compiler bugs which were
+in there for quite a long time. It has also lead to efficient code
+generation due to GCC's advanced capabilities and consequently increased
+runtime speed. The second important change was the overhaul of the SDL
+library port. The benefits from this are twofold: The real-time code paths
+have been optimized, including contributed ARM assembly code for critical
+functions. Further, the screen display and mouse/keyboard input code has
+been partially rewritten to allow for increased compatibility across all
+devices.
+Due to the update of keyboard handling code, the keycodes have changed
+slightly. Running this version of ScummVM will overwrite your key bindings
+with the new defaults. See the section on how to play on Smartphones and
+Pocket PCs below for the new default keybindings.
+
+------------------------------------------------------------------------
+
+This document is intended to give common answers to specific ScummVM
+issues on Windows CE, in 3 sections
+ * "General questions" : browse this section to get started and see
+ general issues
+ * "Game specific questions" : lists some common game specific issues
+ * "Support and links" : how to get support if you're still puzzled
+
+------------------------------------------------------------------------
+General questions
+------------------------------------------------------------------------
+
+Which devices are supported ?
+-----------------------------
+
+Official build
+--------------
+
+The official build is based on the ARM architecture and should work with any
+Pocket PC 2000, Pocket PC 2002, Pocket PC 2003, Pocket PC 2003 SE, Smartphone
+2002, Smartphone 2003 or Windows Mobile based device.
+
+Support for old ARM architectures (Handheld PCs, Palm Size PCs) and other CPUs
+(MIPS, SH3) is discontinued. Feel free to generate builds for these
+architectures and contact us to include them on ScummVM website.
+
+Games supported
+---------------
+
+The Windows CE port of ScummVM supports all available game engines.
+
+ScummVM distinguishes devices based on two characteristics: Type and resolution.
+Supported types of devices are Smartphones (usually no stylus) and Pocket PCs
+(stylus). The supported resolutions are 176x220 (Smartphone), 240x240 (QVGA
+square), 240x320 (QVGA), 320x240 (QVGA landscape), 480x640 (VGA). Devices with
+resolutions larger than VGA should also be supported with automatic screen
+centering.
+
+* Low resolution Smartphones (176x220)
+
+Support is only provided for all 320x200 or 320x240 games. The font can get
+hard to read (you should prefer talkie games, or wear glasses :-P)
+Games with 640x480 resolution such as COMI or BSWORD cannot be scaled down
+to this resolution and still be playable.
+
+* QVGA square devices (240x240)
+
+Only 320x200 or 320x240 games are supported due to lack of downsampling scaler.
+
+* QVGA Pocket PCs or Smartphones (240x320 or 320x240)
+
+All games are playable in these devices. Landscape devices may not be able to
+rotate the screen around.
+
+* VGA (640x480) or higher Pocket PCs
+
+All non VGA games should work properly on these devices. They can be resized
+with different scalers. Moreover, VGA games will be displayed in true VGA mode.
+
+Partial / Discontinued support
+------------------------------
+
+Support for the following devices is not complete, not working properly or
+discontinued because the device is now obsolete. Feel free to contribute and
+improve the port for your favorite device, or use the last release built with
+the previous port architecture (0.5.1) which was less resource hungry and
+supported more exotic devices.
+
+* "Paletted" devices (non "true color")
+
+These devices will be supported through the GDI layer which will slow down the
+games a lot. You can try to disable the music/sound effects to get a better
+game experience.
+
+* "Mono" devices
+
+I don't even think anything will be displayed on these devices :) you can try
+and report your success ...
+
+* MIPS/SH3 devices with QVGA resolution (240x320), "true color"
+
+Some devices may be a bit too slow, especially if direct screen access (GAPI)
+is not supported on these devices.
+
+* ARM/MIPS/SH3 devices with VGA resolution (640x480) (Palm Size PC / Handheld
+ PC platform)
+
+True VGA games will probably be too slow to run properly on these devices even
+if they can support them ...
+
+* ARM/MIPS/SH3 devices with desktop resolution (800x600) (Handheld PC platform)
+
+No, there will never be ANY scaler supporting 800x600 resolution, because
+320x200 games CANNOT be resized to a 800x600 by a simple operation.
+
+And the device will probably be too slow to perform any kind of graphic
+transform anyway :)
+
+How do I install ScummVM for Windows CE ?
+-----------------------------------------
+
+Simple! Unpack the release package on your desktop pc, then copy all its contents
+to a folder on your device. Typically, you should at least have scummvm.exe,
+modern.ini and modern.zip in the same directory. Finally, upload your beloved games
+and fire it up :-)
+
+Some devices (like Pocket PC 2000) require GAPI to be present.
+
+How do I install a game ?
+-------------------------
+
+You'll at least need to copy all the data files from your game, in a
+sub-directory of your game directory.
+
+You'll need to put the data files in a directory named after ScummVM game
+name (see "Supported Games" section in ScummVM readme) for the games having
+"generic" data files (.LFL files). Recent games can be put in any directory.
+
+You can compress the multimedia files (sound/video) as described in the
+ScummVM readme.
+
+You can compress the audio tracks of Loom or Monkey Island 1 as described in
+the ScummVM readme. If you are running these games on a slow device with Ogg
+Vorbis compression, it's recommended to sample the files to 11 kHz (this sample
+rate is not supported by other versions of ScummVM).
+
+If you need more details, you can check SirDave's mini-manual online available
+at: http://forums.scummvm.org/viewtopic.php?t=936
+and at: http://www.pocketmatrix.com/forums/viewtopic.php?t=8606
+
+How do I run a game ?
+---------------------
+
+If it's the first time you're running ScummVM for Windows CE, have installed or
+removed games, you need to rescan your game directory.
+ * Select Add Game, tap the root directory of your games, and tap "Yes" to begin
+ an automatic scan of the installed games.
+
+Usually all games are detected and you can start playing right away. If your
+game is not detected check its directory name and your data files.
+
+To play a game, tap on its name then tap the "Start" button or double tap its
+name.
+
+How do I play a game on a Pocket PC or Handheld PC device ?
+-----------------------------------------------------------
+
+The stylus is your mouse cursor, and a tap is a left mouse button click.
+
+As the Pocket PC lacks some keys, a toolbar is displayed at the bottom of the
+screen to make the most common functions just a tap away
+ * The disk icon opens ScummVM options menu to save your game, or change your
+ current game settings (depends on the game)
+ * The movie icon skips a non interactive sequence, the current dialog or
+ behaves like the ESC key on a regular keyboard (depends on the game)
+ * The sound icon turns all sound effects and music off and on
+ * The key icon allow you to map a key action to a device button
+ * The monkey icon switches between portrait, landscape and inverse landscape
+ mode (depends on the display drivers)
+
+You can map additional actions on your device hardware buttons using the
+"Options" / "Key" menu in the ScummVM options menu. To associate an action to
+a key, tap the action, then the "Map" button and press the hardware key.
+The following actions are available :
+
+ * Pause : pause the game
+ * Save : open ScummVM option menu
+ * Quit : quit ScummVM (without saving, be careful when using it)
+ * Skip : skip a non interactive sequence, the current dialog or
+ behaves like the ESC key on a regular keyboard
+ * Hide : hide or display the toolbar
+ * Keyboard : hide or display the virtual keyboard
+ * Sound : turns all sound effects and music off and on
+ * Right click : acts as a right mouse button click
+ * Cursor : hide or display the mouse cursor
+ * Free look : go in or out of free-look mode. In this mode, you can tap
+ the screen to look for interesting locations without walking.
+ * Zoom up : magnify the upper part of the screen for 640x480 games
+ rendered on a QVGA device.
+ * Zoom down : magnify the lower part of the screen for 640x480 games
+ rendered on a QVGA device.
+ * Multi Function : this key performs a different function depending on the game
+ : Full Throttle -> win an action sequence (cheat)
+ : Fate of Atlantis -> sucker punch (cheat)
+ : Bargon -> F1 (start the game)
+ : All AGI games -> bring up the predictive input dialog
+ * Bind keys : map a key action to a device button
+ * Up,Down,Left :
+ Right, : emulate mouse/stylus behavior
+ Left Click :
+
+The default key bindings for Pocket PCs are (note that not all keys are mapped):
+ * Up, Down, Left, Right : (dpad) arrow keys
+ * Left Click : softkey A
+
+If you start a game when a Right click mapping is necessary, ScummVM will ask
+you to map one of your hardware key to this action before playing. Just press
+the key you want to map if you see this message.
+
+Notes:
+- THE TOOLBAR CAN BE CYCLED BY DOUBLE TAPPING (SEE BELOW)
+- YOU MUST HIDE THE TOOLBAR TO SCROLL THROUGH THE INVENTORY IN ZAK
+- YOU MUST DISPLAY THE KEYBOARD TO FIGHT IN INDIANA JONES 3
+- YOU MUST MAP THE RIGHT CLICK ACTION TO PLAY SEVERAL GAMES
+
+How do I hide the toolbar ?
+---------------------------
+
+Note: THIS IS A VERY USEFUL AND SOMETIMES NECESSARY SHORTCUT
+
+Double tapping the stylus at the top of the screen will switch between a
+visible toolbar panel, a virtual keyboard, and hiding panel. If any part of
+the screen is obscured by the toolbar (like the load/save game dialogs) you can
+use the invisible panel mode to get to it. For 320x200 games on QVGA Pocket
+PCs, when the panel is hidden the game screen is resized to 320x240 (aspect
+ratio correction) for better gaming experience.
+
+How do I play a game on a Smartphone device ?
+---------------------------------------------
+
+On non-stylus devices, the mouse cursor is emulated via a set of keys.
+The cursor will move faster if you keep the key down. You can tweak this
+behaviour in the configuration file described below.
+
+Here is
+the list of available actions for Smartphones:
+
+ * Up,Down,Left :
+ Right, : emulate mouse/stylus behavior
+ Left Click :
+ Right Click :
+ * Save : open ScummVM option menu
+ * Skip : skip a non interactive sequence, the current dialog or
+ behaves like the ESC key on a regular keyboard
+ * Zone : switch between the 3 different mouse zones
+ * Multi Function : this key performs a different function depending on the game
+ : Full Throttle -> win an action sequence (cheat)
+ : Fate of Atlantis -> sucker punch (cheat)
+ : Bargon -> F1 (start the game)
+ : All AGI games -> bring up the predictive input dialog
+ * Bind keys : map a key action to a device button
+ * Keyboard : hide or display the virtual keyboard
+ * Rotate : rotate the screen (also rotates dpad keys)
+ * Quit : quit ScummVM (without saving, be careful when using it)
+
+The "Zone" key is a *very* valuable addition allowing you to jump quickly
+between three screen zones : the game zone, the verbs zone and the inventory
+zone. When you switch to a zone the cursor will be reset to its former location
+in this zone.
+
+The default key map for these actions is:
+
+ * Up, Down, Left, Right : (dpad) arrow keys
+ * Left Click : softkey A
+ * Right Click : softkey B
+ * Save : call/talk
+ * Skip : back
+ * Zone : 9
+ * Multi Function : 8
+ * Bind keys : end call
+ * Keyboard : (dpad) enter
+ * Rotate : 5
+ * Quit : 0
+
+You can change the key mapping at any time by bringing up the key mapping menu
+(Bind keys action).
+
+How do I tweak the configuration of ScummVM ?
+---------------------------------------------
+
+See the section regarding the configuration file (scummvm.ini) in ScummVM
+README file - the same keywords apply.
+
+Some parameters are specific to this port :
+
+Game specific sections (f.e. [monkey2]) - performance options
+
+ * high_sample_rate bool Desktop quality (22 kHz) sound output if set.
+ 11 kHz otherwise. The default is 11 kHz.
+ If you have a fast device, you can set this to
+ true to enjoy better sound effects and music.
+ * FM_high_quality bool Desktop quality FM synthesis if set. Lower
+ quality otherwise. The default is low quality.
+ You can change this if you have a fast device.
+ * sound_thread_priority int Set the priority of the sound thread (0, 1, 2).
+ Depending on the release, this is set to 1
+ internally (above normal). If you get sound
+ stuttering try setting this to a higher value.
+ Set to 0 if your device is fast enough or if
+ you prefer better audio/video synchronization.
+ * Smush_force_redraw int Force a Smush frame redraw every X missed
+ frames. Mainly used for Full Throttle action
+ sequences. Setting it lower gives more
+ priority to screen redraws. Setting it higher
+ gives more priority to stylus/keyboard input.
+ The default is 30.
+
+Game specific sections (f.e. [monkey2]) - game options
+
+ * landscape int 0: Portrait, 1: Landscape, 2: Inverse Landscape
+ You can also use this in the [scummvm] section
+ in QVGA Pocket PCs to display the launcher in
+ landscape, for example, at startup.
+
+[scummvm] section - keys definition
+
+You usually do not wish to modify these values directly, as they are set
+by the option dialog, and are only given here for reference.
+
+ * action_mapping_version int Mapping version linked to ScummVM version.
+ * action_mapping string Hex codes describing the key associated to
+ each different action.
+ * debuglevel int Debug Level 1 is used by the WinCE port
+ for reporting diagnostic output in the
+ scummvm_stdout.txt and scummvm.stderr.txt
+ files in the current working directory.
+
+[scummvm] section - mouse emulation tuning
+
+You can tweak these parameters to customize how the cursor is handled.
+
+ * repeatTrigger int Number of milliseconds a key must be held to
+ consider being repeated.
+ * repeatX int Number of key repeat events before changing
+ horizontal cursor behaviour.
+ * stepX1 int Horizontal cursor offset value when the key is
+ not repeated.
+ * stepX2 int Horizontal cursor offset value when the key is
+ repeated less than repeatX.
+ * stepX3 int Horizontal cursor offset value when the key is
+ repeated more than repeatX.
+ * repeatY int Number of key repeat events before changing
+ vertical cursor behaviour.
+ * stepY1 int Vertical cursor offset value when the key is
+ not repeated.
+ * stepY2 int Horizontal cursor offset value when the key is
+ repeated less than repeatY.
+ * stepY3 int Vertical cursor offset value when the key is
+ repeated more than repeatY.
+
+------------------------------------------------------------------------
+Game specific questions
+------------------------------------------------------------------------
+
+---------------
+-- All Games --
+---------------
+
+I need to press a special key
+-----------------------------
+
+Bring up the virtual keyboard. On Smartphones take a look at the Keyboard action above.
+On Pocket PCs it's easier to double-tap at the top of the screen.
+
+The panel is obscuring the playfield area
+-----------------------------------------
+
+Double tap at the top of the screen to hide it. As an aside, the aspect ratio
+correction scaler will kick in if the game/device combo is appropriate.
+
+How do I name my save games ?
+-----------------------------
+
+Use the virtual keyboard (Keyboard action).
+
+ScummVM is stuck for some reason
+--------------------------------
+
+Bind and use the quit action to quit.
+
+I cannot rotate the screen to landscape/inverse landscape
+---------------------------------------------------------
+
+Depending on the video driver, ScummVM may opt to not provide such functionality.
+In general, when ScummVM starts in normal "portrait" orientation, the device driver
+reports better display characteristics and you should consider launching from portrait.
+
+I'm having problems. Is there diagnostic output available ?
+-----------------------------------------------------------
+
+Insert a line in the [scummvm] section of scummvm.ini with the following:
+debuglevel=1
+Run ScummVM. When it closes scummvm_stdout.txt and scummvm_stderr.txt files will be
+available at the program directory (see section above).
+
+ScummVM crashes and returns to desktop
+--------------------------------------
+
+File a bug report including diagnostic output (see previous question).
+
+--------------------------
+-- Beneath a Steel Sky --
+--------------------------
+
+Introduction movie is too slow or never ends ...
+-------------------------------------------------
+
+Skip it :)
+
+How can I open the inventory in Beneath a Steel Sky ?
+---------------------------------------------------
+
+Tap the top of the screen. Check your stylus calibration if you still cannot
+open it.
+
+How can I use an item in Beneath a Steel Sky ?
+----------------------------------------------
+
+You need to map the right click button (see the General Questions section).
+
+----------------------------
+-- Curse of Monkey Island --
+----------------------------
+
+How can I open the inventory in Curse of Monkey Island ?
+------------------------------------------------------
+
+You need to map the right click button (see the General Questions section).
+
+I'm experiencing random crashes ...
+------------------------------------
+
+This game has high memory requirements, and may crash sometimes on low
+memory devices. Continue your game with the latest automatically saved
+game and everything should be fine.
+You can consider removing the music and voice files (VOXDISK.BUN, MUSDISK.BUN)
+to lower these requirements.
+
+Sound synchronization is lost in Curse of Monkey Island videos
+--------------------------------------------------------------
+
+Use a faster device :-(
+
+--------------------
+-- Full Throttle --
+--------------------
+
+I'm experiencing random crashes ...
+------------------------------------
+
+This game has high memory requirements, and may crash sometimes on low
+memory devices. Continue your game with the latest automatically saved
+game and everything should be fine.
+You can consider removing the voice file (MONSTER.SOU) and disable the
+music to lower these requirements.
+
+----------------------------------------
+-- Indiana Jones and the Last Crusade --
+----------------------------------------
+
+How can I fight in Indiana Jones and the Last Crusade ?
+-----------------------------------------------------
+
+You need to map the keyboard button (see the General Questions section).
+
+---------------
+-- Sam & Max --
+---------------
+
+How can I change the current action ?
+-------------------------------------
+
+You need to map the right click button (see the General Questions section).
+
+How can I exit a mini game ?
+----------------------------
+
+Use the skip toolbar icon (see the General Questions section).
+
+-------------------
+-- Simon 1 and 2 --
+-------------------
+
+How can I save or quit in Simon ?
+--------------------------------
+
+"Use" (use the use verb :p) the postcard. The ScummVM option dialog is disabled
+in Simon games.
+
+On Smartphone, you'll need to push the Action button (center of the pad) to
+quit the game.
+
+-------------
+-- The Dig --
+-------------
+
+I'm experiencing random crashes ...
+------------------------------------
+
+This game has high memory requirements, and may crash sometimes on low
+memory devices. Continue your game with the latest automatically saved
+game and everything should be fine.
+You can consider removing the music and voice files (VOXDISK.BUN, MUSDISK.BUN)
+to lower these requirements.
+
+--------------------
+-- Zak Mc Kracken --
+--------------------
+
+How can I scroll through my inventory items in Zak Mc Kracken ?
+---------------------------------------------------------------
+
+You need to map the hide toolbar button (see the General Questions section) or
+double tap at the top of the screen (from 0.8.0+)
+
+------------------------
+-- Broken Sword 1 & 2 --
+------------------------
+
+I've installed the movies pack but they are not playing/they are slow
+---------------------------------------------------------------------
+
+MPEG 2 playback takes too much memory in the current release, and may prevent
+movies from playing in VGA mode. Consider changing to the DXA cutscene pack
+which is many times faster.
+
+---------------
+-- Gobliiins --
+---------------
+
+How do I enter a code ?
+-----------------------
+
+Use the virtual keyboard.
+
+-------------------
+-- Bargon Attack --
+-------------------
+
+How do I start the game (F1 : Game, F2 : Demo)
+----------------------------------------------
+
+Use the Multi Function action.
+
+----------------------
+-- AGI engine games --
+----------------------
+
+Do you expect me to play these games on keyboard less devices ?
+---------------------------------------------------------------
+
+Sure we do :-)
+If you want to get some mileage on your stylus you can use the virtual keyboard.
+There is a very useful alternative though, the AGI engine's predictive input dialog.
+It requires a dictionary to be present. Just tap on the command line or use the
+Multi Function action to bring it up. On Smartphones, when the dialog is shown
+all key mapping is disabled temporarily (including mouse emulation). Input is
+performed either by pressing the phone's numeric keypad keys and dpad enter to
+close the dialog, or by navigating the buttons using the dpad arrows and pressing
+with dpad enter. Check the main Readme file for more information on this.
+
+------------------------------------------------------------------------
+Support
+------------------------------------------------------------------------
+
+Help, I've read everything and ...
+-----------------------------------
+
+Luckily, as there is a huge variety of Windows CE devices, a specific forum
+is dedicated to this ScummVM port. You can ask your question on the WinCE
+ScummVM forum available at http://forums.scummvm.org/viewforum.php?f=6
+
+Some older questions and very nice tutorials are still available on the historic
+PocketMatrix forum at http://www.pocketmatrix.com/forums/viewforum.php?f=20
+where the community is always glad to help and have dealt with all the bugs for
+many years now :)
+
+I think I found a bug, ScummVM crashes in ...
+---------------------------------------------
+
+See the "Reporting Bugs" section in ScummVM readme.
+
+If you have a Pocket PC or Handheld PC, be sure to include its resolution (obtained
+on the second dialog displayed on the "About" menu) in your bug report.
+
+If you cannot reproduce this bug on another ScummVM version, you can cross
+post your bug report on ScummVM forums.
+
+I want to compile my own ScummVM for Windows CE
+-----------------------------------------------
+
+Take a look at:
+http://wiki.scummvm.org/index.php/Compiling_ScummVM/Windows_CE
+
+
+------------------------------------------------------------------------
+Good Luck and Happy Adventuring!
+The ScummVM team.
+http://www.scummvm.org/
+------------------------------------------------------------------------