diff options
Diffstat (limited to 'backends/platform')
-rw-r--r-- | backends/platform/ds/arm9/makefile.in | 350 | ||||
-rw-r--r-- | backends/platform/symbian/res/scummvm.cer | 21 | ||||
-rw-r--r-- | backends/platform/symbian/res/scummvm.key | 15 | ||||
-rw-r--r-- | backends/platform/wince/README-WinCE.txt | 616 |
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/ +------------------------------------------------------------------------ |