ScummVM Windows CE FAQ
Last updated:    2006-06-20
Release version: 0.9.0
------------------------------------------------------------------------

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 me to include them on ScummVM website.

Full support
------------

* ARM based Windows Mobile handhelds with QVGA resolution (240x320) slower
  than 200 MHz (PocketPC platform)

All AdLib first generation games should work properly on these devices.
Sam'n'Max will be a bit too slow to be played with music.
More recent games (The Dig, Curse of Monkey Island, Broken Sword series)
and all VGA games will probably be too slow to be enjoyable.

* ARM based Windows Mobile handhelds with QVGA resolution (240x320) faster
  than 200 MHz

All games should work properly on these devices.
VGA games will be resized and the font gets hard to read in this case (be sure
to install the talkie version the game :p)

* ARM based Windows Mobile handhelds with VGA resolution (640x480) 

All non VGA games should work properly on these devices. They can be resized
with different scalers (not all desktop scalers are supported due to Embedded
Visual C++ very personal interpretation of the C++ standard).
VGA games will be displayed in true VGA mode, which can takes a lot of memory
and slow down the game (especially during scrollings). It will get better in
the next releases or with faster devices.

* Windows Mobile Smartphones (176x220 or 240x320)

Early support is provided for all 320x200 games.
The font can get hard to read (you should prefer talkie games, or wear glasses)

* Support for Windows Mobile 5 is experimental but should work. "Flipping" devices
such as the HTC Wizard or HTC Universal work only in portait (closed) mode for the
moment.

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 ?
-----------------------------------------

If the current release includes a .EXE installer, ScummVM for Windows CE
will be installed without hassle.
Otherwise, you'll unzip the release on your desktop computer, and copy 
all files on your device.

If you're using a Pocket PC 2000 operating system, be sure to have GAPI
installed - it's available on Microsoft website http://www.microsoft.com

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 Game" 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 Scan, 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 "Play" 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.
  * The movie icon skips a non interactive sequence, the current dialog or 
    behaves like the ESC key on a regular keyboard
  * 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.

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
    - YOU MUST HIDE THE TOOLBAR TO SCROLL THROUGH THE INVENTORY IN ZAK -
  * Keyboard    : hide or display the virtual keyboard
    - YOU MUST DISPLAY THE KEYBOARD TO FIGHT IN INDIANA JONES 3 -
  * Sound       : turns all sound effects and music off and on
  * Right click : acts as a right mouse button click
    - YOU MUST MAP THIS ACTION TO PLAY THE FOLLOWING GAMES -
    - SAM & MAX, BENEATH A STEEL SKY, CURSE OF MONKEY ISLAND -
  * 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 320x240 device.
  * Zoom down   : magnify the lower part of the screen for 640x480 games
    rendered on a 320x240 device.
  * FT Cheat    : win a Full Throttle action sequence
  * Bind keys   : map a key action to a device button
  * Up,Down,Left:
    Right,      : emulate mouse/stylus behavior
    Left Click  :

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.

How do I hide the toolbar ?
----------------------------

A shortcut is available to hide the toolbar directly from the game screen from
release 0.8.0. Double tapping the stylus at the top of the screen will switch
between a visible toolbar panel, a virtual keyboard, and an invisible 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 for better gaming experience.

How do I play a game on a Microsoft Smartphone device ?
-------------------------------------------------------

When playing on a Smartphone, the cursor and mouse buttons are emulated by
a set of default keys :
      4              Move up
      6              Move down
      8		     Move left
      2 	     Move right
      Hotkey 1       Left mouse button click
      Hotkey 2       Right mouse button click
      Return/Action  Open the key mapping menu

Note that this means that the input will be "inversed" on a 240x320 (Windows
Mobile 2005) Smartphone. You'll have to remap the keys.

A few options are also emulated by a set of default keys :

      0		   Options menu
      Back	   Skip
      #		   Zone option

The cursor will move faster if you keep the key down. You can tweak this
behaviour in the configuration file described below.

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. 

There are two more actions available for mapping:
   - Keyboard: Shows hides a virtual keyboard which can be use whenever text
               input is required in a game, or a dialog.
   - Rotate  : Flips the screen orientation between normal and inverse landscape.

You can change the keys mapping during the game in the key mapping menu.

Note that you'll need to push the Action button (center of the pad) to quit
a Simon game.

How can I apply a ScummVM command line option (f.e. to change the language) 
---------------------------------------------------------------------------

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 section (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 
                                (given to SetThreadPriority API)
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 section (f.e. [monkey2]) - game options

landscape	       int      0: Portrait, 1: Landscape, 2: Inverse Landscape

[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.

[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 xxx is too slow on my device
---------------------------------

Even if it shouldn't happen (this port is running almost correctly on a 
80 / 120 MHz first generation SPV phone), you can try some things :

  * Disable sound in the engine (see the global README)
  * Play with the priority of the sound thread (change the 
    sound_thread_priority value - the higher the lower priority)

And don't forget to report your progress in the ScummVM forum !

------------------------------------------------------------------------
Game specific questions 
------------------------------------------------------------------------

--------------------------
-- 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
--------------------------------------------------------------

This is a port bug which is very noticeable in VGA mode. It can probably be
fixed with a faster blitting routine or 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 2 --
--------------------

I've installed the movies pack but they are not playing
-------------------------------------------------------

MPEG 2 playback takes too much memory in the current release, and may prevent
movies from playing in VGA mode. This may get better in the next releases.

----------------
-- Gobliiins --
----------------

Cursor is grabled after loading a game 
--------------------------------------

Due to a bug in 0.8.0, you'll have to tap the stylus somewhere on the game
screen between 2 letters when entering a code. Otherwise the cursor will get
garbled.

This has not been retested for 0.8.1 but should be fixed.

------------------------------------------------------------------------
Support
------------------------------------------------------------------------

Help, I've read everything and ...
-----------------------------------

Luckily, as there is a huge variety of Windows Mobile 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 my bugs for more 
than three 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.

------------------------------------------------------------------------
Good Luck and Happy Adventuring!
The ScummVM team.
http://www.scummvm.org/
------------------------------------------------------------------------
