Another tutorial here - worth a read

Subforum for discussion and help with ScummVM's PocketPC/HandheldPC port

Moderator: ScummVM Team

Post Reply
Menneisyys
Posts: 6
Joined: Tue Jul 03, 2007 11:48 am

Another tutorial here - worth a read

Post by Menneisyys »

Many of you may have heard of ScummVM, THE multiplatform (including Windows Mobile) interpreter for LucasArts (and similar) adventure games.

In my emulation-related article & tutorial series, I’ve deliberately waited for the final version of the brand new and pretty much groundbreaking ScummVM 0.10.0 (AKA Tic-Tac-Toe, coming from the Roman numeral form 0.X.0) to appear so that the article doesn’t get outdated too soon. (BTW, this is the reason I haven’t come up with a FPSEce article either. I’ll only publish it when the new release, which is slated for the near future, is released. In the meantime, go give a try to the current version – it REALLY shines at emulating the Sony PlayStation!)

I think it was worth waiting: the new Tic-Tac-Toe edition is really great and indeed represents a breakthrough in interpreting many graphics adventures released in the late eighties and during the entire nineties.

Some of the adventures ScummVM supports include Adventure Soft's Simon the Sorcerer 1 and 2; Revolution's Beneath A Steel Sky, Broken Sword 1 and Broken Sword 2; Flight of the Amazon Queen; Wyrmkeep's Inherit the Earth; Coktel Vision's Gobliiins; Westwood Studios' The Legend of Kyrandia and games based on LucasArts' SCUMM (Script Creation Utility for Maniac Mansion) system such as Monkey Island, Day of the Tentacle, Sam and Max and more. You can find a thorough list with details on which games are supported and how well on the compatibility page. (Note that the latter reflects the state of the latest nightly build. The official 0.10.0 compatibility chart is HERE. As of 07/02/2007, it’s only Sierra’s Gold Rush! that has better compatibility rate than with the 0.10.0 version).

Image

Important note: PocketScumm used to be the name of the PocketPC port of ScummVM, but that name is now deprecated. Now, the official name is “ScummVM for Windows CE”. Don’t use the former to look for reviews or downloads as it will only show very old versions.

1.1 Why should you bother?

It’s very simple: no other emulator is capable of emulating these games so well. There surely are several Amiga, MS-DOS, Atari ST, NES, C64 etc. emulators out there for Windows Mobile, but none of them runs these games so well – if at all.

As far as MS-DOS is concerned – that is, the platform that both
  1. quantity (it has ALL the titles - for example, all titles released after 1994 are MS-DOS and Mac OS only and not any more released for other platforms) and,
  2. except for some VERY rare exceptions (for example, the FM Towns version of Zak McKracken and the Alien Mindbenders because of the 256 colors and/or the CD music tracks), quality-wise (for example, games and/or remakes released for MS-DOS, starting with 1992, have native 256-color VGA support, unlike the, say, 32-color and, therefore, much worse-looking Amiga versions)
is the best, the available native emulators (see their FULL review & roundup HERE) all
  • are restricted to playing pre-1994 games (no 32-bit, Windows, 80386 and/or high-res VGA games, sorry), while many, excellent adventure games were released for platforms that, currently, isn’t possible to emulate on Windows Mobile. Examples of these games are Broken Sword I/II, Monkey Island 3, The Dig etc.
  • have mouse pointer problems (for example, NONE of the current MS-DOS emulators can emulate the cursor in DOTT – see the related info in the MS-DOS emulator article)
  • if they at all (for example, the commercial PocketDOS doesn’t emulate anything else than the beeper) emulate Adlib / SoundBlaster sound, it will most probably be stuttering, even on the fastest, 624 MHz devices
  • use the CPU excessively, meaning short battery life, device heatup and, when used together with A2DP, excessive sound stuttering and additional slowdown (because of A2DP’s being CPU intensive).
In addition, there are no other interpreters at all to play these games. There is only a Sierra AGI interpreter, PocketSarien (see review & tutorial HERE), but it, if AGI games are sufficient for you, suffers from several problems (Portrait mode only; no SIP on VGA devices etc). ScummVM, fortunately, supports AGI games (while getting rid of the above-explained problems with PocketSarien) – and a LOT more!

It’s worth pointing out that FM Towns, one of the most remarkable platform having received the, technically (256-color VGA graphics and CD audio sound even as early as 1989!), best possible ports of these old games between 1988 and 1992, has no emulators for Windows Mobile. That is, you can not rely on emulating these platforms to play the games ported exclusively for them.

As far as other, in general, home systems are concerned, which also have ports of these old adventure games, they are either (vastly) inferior to MS-DOS (for example, the mouse-less NES and the C64 or, strictly as far as the visual quality of Lucasarts titles – number of colors – and emulation problems (with the Amiga emulator, lack of disk swapping capabilities; stuttering, useless sound etc.; with the Atari emulator, mouse dragging problems) is concerned, Amiga / Atari ST) or have no emulators (Mac OS). Needless to say, these emulators put MUCH more burden on the CPU than ScummVM – 100%, apart from some excellent NES emulators (for example, SmartGear).

Finally, there is only one native Windows Mobile port of the games emulated by ScummVM; that of Broken Sword. However, even with that, in cases, you will want to prefer playing the original version under ScummVM than the native one (as opposed to the general rule of native apps / games being far better than emulated / interpreted ones). I’ll elaborate on this later, in a separate section.

(Note that as far as the recently added Sierra AGI support is concerned, there's no SCI support, albeit there's talk of integrating the FreeSCI engine HERE. See the above-linked article for more info on running Sierra SCI games on Windows Mobile. Also note that PocketSarien automatically skips the age verification system in LSL1; ScummVM doesn’t. As it’s not possible to press Alt-X, unless you are ready to jot down the right answers, you may want to prefer PocketSarien to play this game. Speaking of passing initial code entering, if you get into problems with Monkey 2, you’ll want to read THIS and THIS).

1.2 The Tutorial: Downloading, installing and playing games

In this entire 1.2 section, I explain what you can play, whether it’s worth playing, where you can download / get the games from and, finally, how you can play them.

Note that, in here, I will also frequently refer to three important, additional documentation (in addition to the ScummVM Wiki pages). The most important of them is SirDave's PocketScumm Manual in the WindowsCE forum of ScummVM. The two other files are in the distribution ZIP file of ScummVM, in the Doc subdirectory. In there, ‘README’ contains generic and ‘README-WinCE.txt’ contains Windows Mobile-related information.

I recommend reading all these three documents (in any order) to get a full picture of ScummVM. However, in here, I also present you a self-sufficient tutorial, should you find reading all the linked tutorials and manuals far too overwhelming (I would) - it will suffice in most cases. It's only with, say, extracting CD audio tracks and ripping / compressing CD-only games that you will REALLY need to consult the other documents; most importantly, SirDave's tutorial.

First, what games are playable?

A LOT – and not just Lucasfilm games, but from a lot of other software companies. As has already been stated, you will want to check out THIS page for the list of supported games.

Even VGA games (Touche, Broken Sword etc) are playable – on VGA Pocket PC’s, using high-resolution VGA. These games even run on QVGA Windows Mobile devices, with downscaled, resized graphics – with some zoom-in capabilities to magnify the upper and lower half of the screen to make text more readable. I’ll elaborate on scaling issues later.

1.2.1 What about Broken Sword, the only old game having a native PPC port?

ScummVM may even be better at emulating an old title than native games for Windows Mobile. Take, for example, Broken Sword, the only game that has been natively ported to the Pocket PC.

The emulated version of Broken Sword is, generally, superior to the native one when played on a VGA device, particularly in the following respects:
  1. much better music and sound: much higher sampling frequency, no compression effects and, at times (for example, the sound of the wind right at the start of the game), stereo.
  2. Much lower CPU usage (~17% as opposed to ~42% on a 624 MHz device) and, therefore, better battery life
  3. It has somewhat lower memory requirements
In this case, shouldn't you have the original Broken Sword disks but if you still want to prefer it over the native PPC port, I recommend buying the latter. This way you support continued native Windows Mobile development by supporting the company that ported Broken Sword, AstraWare.

You will, however, want to stick to the native Windows Mobile version if:
  1. you have a QVGA device and you MUST read the text at the bottom of the screen. Then, the native port is the way to go – just compare THIS QVGA screenshot of the native version to that of the emulated game running on a QVGA device. Zooming only partially helps the bad readibility of the latter as can be seen in HERE.
  2. you need the additional, really useful “Tool” functionality of the native WM version, which is an excellent way to combat the lack of a “free look” mode (see THIS with enabled tools; also see THIS “What's Free Look is for?” thread).
1.2.2 Downloading / getting games

While it’s pretty hard to find these old games in shops, most of them can be found on eBay. Also see THIS thread for more info.

Note that the official ‘Extras’ download page of ScummVM has two full games ('Beneath a Steel Sky' and 'Flight of the Amazon Queen'). You may want to start with them.

1.2.2.1 Source platform considerations - what version should you use?

ScummVM is not only able to make use of MS-DOS data files, but also those initially created for other platforms: Amigas, Atari ST's, Commodore 64's, NES'es, Acorns.

Unfortunately, these data files are, in cases, vastly inferior to the MS-DOS versions, particularly color depth-wise. A typical Amiga game uses 32 colors and is, therefore, visually much less appealing than a 256-color MS-DOS version.

Furthermore, you will need to do some manual work to extract the files from these versions. If you have the original machine and you have a way to transfer them (via, say, some kind of a networking connection), you can do this from the operating system of the given platform. If, on the othe rhand, you don't have these, you will need to turn to various disk and ROM image file extractor tools to do the trick as the C64 / Atari / Amiga / NES games are mostly distributed as .D64 / .AMS / .ADF / .NES disk/ROM images, respectively, and ScummVM isn't able to parse these disk/ROM images.

To extract the needed data files from these files, you'll need the various disk image extractor tools in the Tools package available for a separate download HERE. As you most probably won't want to use them (again and again, try preferring the MS-DOS or the FM Towns versions because of, at least, the superior graphics), I don't provide a full tutorial to using them.

Note that as far as the Commodore 64 version of Zak version is concerned (Maniac doesn’t work per the documenation), the version accessible at c64.com isn’t recognized (with side A being disk1 and B disk2) and the data file extractor doesn’t find anything. This means you may encounter incompatibility issues like this with other games too.

1.2.3 Installing ScummVM for WinCE

After downloading the archive file containing the emulator, you'll need to extract at least SCUMMVM.exe from it (and the two MODERN.* files if you need gradually colored dialog boxes -if you don't use them, then, the ScummVM dialogs won't have a gradient-colored background as can be seen in HERE – as opposed to the normal, default case).

Transfer SCUMMVM.exe (and, if you need them, the two MODERN.* files) anywhere on your handheld. As the EXE file is pretty big, I recommend a storage card, but you can also put it in the main storage (making sure you do NOT put it in the root directory of your PDA - then, running auto scan will most probably result in a crash). Note that, as opposed to what SirDave's tutorial states, you do NOT need to put the games into a subdirectory under the SCUMMVM.exe executable file.

Note that there are some other files in the ZIP distribution archive as well. They are additional data files for some games. You can easily guess, by their name, which game they stand for (Kyrandia, Beneath a Steel Sky, Flight of the Amazon Queen). You won't need them unless you want to play these games.

Finally, there's a file called pred.dic in there. If you plan to play Sierra AGI games using the predictive touchpad (simulator), you'll want to make sure you also transfer it to the destination.

(Of course, you can safely copy over all the files to your handheld, without ever thinking of what you can leave out.)

1.2.4 Installing games

First, create a directory to store the files of the particular game (separately for each game). It can - as opposed to some remarks and recommendations - be named anything, ScummVM will correctly identify its platform, game, language etc. This means you do NOT need to put the (data) files of, for example, Maniac Mansion in a subdirectory named "maniac"; the same stands for for example Day of the Tentacle. That is, you don't need to use the directory name "tentacle" to store its data files in – it can be given any name.

If you want to play more than one games under ScummVM, I recommend putting all the games, in separate subdirectories, under a common parent directory (for example, \Storage Card\ScummVM Games); then, you will be able to make ScummVM recognize all your games with a single click (by just selecting that parent directory). These mass game addition capabilities are really useful and let for really reducing the number of taps needed to deploy more than a handful of games.

If you don't want to fuss around, just copy all the files of your game to this directory (as a rule of thumb, you can safely leave out .EXE files). If you do want to save some storage space OR you're trying to put an originally CD-based game in there, you will need to do some more serious work.

First, there is a great Wiki page on the needed datafiles HERE at the ScummVM Wiki. SirDave's PocketScumm Manual also has some excellent subtutorials for Zak McKracken-FM Towns, Monkey Island 1-CD Version, Loom CD Version, Monkey Island 1-Floppy Disk VGA Version, Monkey Island 2, Sam and Max Hit the Road, Day of the Tentacle, Indiana Jones: Fate of Atlantis, The Dig, Curse of Monkey Island, Beneath A Steel Sky-WinCD Version, Simon The Sorcerer DOS and Windows Talkie, Simon The Sorcerer 2 DOS and Windows Talkie, Broken Sword 1 & 2 and Full Throttle. That is, should you need to know how these mostly CD-based games need to be installed (for example, the audio CD tracks extracted, the sound / music / video files compressed etc.), make sure you read the relevant section in the tutorial.

As far as the games not discussed in SirDave's PocketScumm Manual are concerned, the "just copy everything over" approach works in most cases (as these games are mostly non-CD-based). Should you still want to know what files can be deleted, again, consult THIS page.

Note that the SirDave tutorial discusses a previous version of CDex, a CD audio track extractor program; the current one uses a slightly different GUI and needs a different approach. In the following subsection, I elaborate on this.

1.2.4.1 Differences in using CDex

While extracting the CD audio tracks with Cdex is done pretty much the same way as is described in the " Monkey Island 1-CD Version" section of SirDave's tutorial, the following needs to be added:

1, you MUST explicitly set the file name format. By default, it'd add a number before the manually entered "TrackX" name, which confuses ScummVM (that is, it just won't play back these tracks). To do this, go to the Filenames tab and make sure you only leave %4 in the Filename Format field as can be seen in THIS screenshot.

2. In the Encoder tab, you don’t need to touch anything. You can decrease the value of Output samplerate, but I don’t recommend it – playing back MP3 files at 44 kHz instead o, say, 32 kHz doesn’t put much additional burden on the CPU. This also means I do NOT recommend using low sampling rates like 22 kHz: why should you use low-quality sound when, with almost no additional CPU usage, you can have MUCH better sound quality? This also means I recommend using 128 kbps MP3's, as opposed to 64 kbps ones (the latter are sufficient for 22 kHz MP3's but not for 44 kHz ones).

1.2.5 Starting games

After you've copied the (data) files (along with additional stuff like MP3'ized CD audio tracks, if present) of your favorite oldies to their directories, you can fire up ScummVM. I recommend creating a shortcut to Windows\Start Menu\Programs (or any subfolder) so that you can avoid having to start it from a file manager. Including them there also fixes one (possible) problem described in THIS and THIS threads, which discusses the question "What to do if the on-screen keyboard pops up when clicking its standard place". The solution, as has been explained, is just starting it from a menu (for example, Start menu) where no SIP icon is displayed - this will be inherited by the interpreters.

After the main GUI is presented, click 'Add Game…’ and navigate to the directory you've stored your game(s) in (note that you'll be presented a "Do you want to perform an automatic scan" dialog there. You can safely press Yes; if nothing is found, you'll be taken back to the directory selector screen - that is, the same as with the case of selecting No). Either highlight the directory as can be seen in HERE or step into it and select Choose.

Now, if you've indeed transferred all the needed (data) files, ScummVM recognizes the game, its language, version etc., and shows it in a new listbox. Then, just select the game you want to play and click the now-enabled Start button.

(Another screenshot of the directory selection dialog; you can also select the parent of it to avoid having to add all games one by one; the results will be like THIS.)

1.2.5.1 Key / button mapping

If the game requires (for example, Gobliiins needs mapping the right click action, Broken Sword requires a keymap to quickly hide / show the toolbar etc.) additional, mandatory key or functionality mappings, you'll be prompted before launching a game that requires the given functionality to be mapped to a hardware button. For example, starting Gobliiins will result in THIS dialog to be presented.

Note that these key mappings are generic and need to be done only once. That is, if you fire up a game that requires the right click functionality to be mandatorily assigned to a hardware button, this setting will be used in other titles too, upon subsequent starts. Currently, there are no separate, game-specific settings, unlike with some other emulators / interpreters (for example, Finalburn Alpha with Neo-Geo games and button mappings).

To map a specific functionality to a given button / key, select it in the list (screenshot HERE, showing assigning a button to right-click), click Map (result HERE), and press the button to map the functionality to (result HERE). When you're presented a mandatory (optional) button mapping dialog at startup, you'll also need to press OK after different mappings to move to the next mapping (or the game itself, when there are no more mandatory / optional mappings). Note that, with optional mappings you don't necessarily want to do (for example, the absolutely useless double Zoom mapping on a VGA device when playing VGA titles), you will want to click Cancel right away, without losing two buttons for the (useless) zoom mappings.

There are several useful mappings:
  1. Right-click is very important with many games; for example, Gobliiins
  2. Hiding the taskbar is very important in some cases; for example, Broken Sword. With these games, you’re, as usual, prompted to assign the rihgt mouse button and to hide the toolbar.

    Without hiding the toolbar, you won’t see the transcript as can be seen in HERE and HERE (first screenshot with displayed toolbar; second with hidden).
  3. The Zoom (which is very useful on QVGA devices playing originally VGA games to make the text somewhat more readable ) mapping is optionally asked when starting a VGA game. Note that VGA Pocket PC users are also asked to set it as can be seen in HERE; naturally, this is a bug - on VGA devices, there's no point in defining zoom buttons, only on QVGA ones.
  4. Mapping the four directions may also be VERY useful, particularly with Smartphone devices with Sierra AGI games. With these titles, you may want to direct your character using the D-pad, while using other buttons / keys (or phonepad buttons - for example, 2/4/6/8, that is, the traditional phonepad buttons for directions) to direct the cursor itself. In order to do this, you'll need to assign the four directions to, say, 2/4/6/8. Then, D-pad will be exclusively used to emulate the cursor keys on an IBM PC keyboard, while the 2/4/6/8 phonepad keys to control the mouse cursor (not that important with old Sierra AGI games). Note that, if you add at least the up/down arrows this way, you'll also be able to navigate lists in the ScummVM GUI's (but, unfortunately, not the entire GUI - unlike with most native WM5+ GUI's).
  5. And, of course, the multi-function mapping is also of high importance. See the dedicated section for more info.
On Smartphones, the default key mappings are as follows:

* Up, Down, Left, Right : (dpad) arrow keys
* Left Click : softkey A
* Right Click : softkey B
* Save : call/talk
* Skip : back
* Zone : 9
* Multi Function (for example, predictive input dialog with Sierra AGI games) : 8
* Bind keys : end call
* Keyboard : (dpad) enter
* Rotate : 5
* Quit : 0

Again, note that direction mappings are NOT implemented by default. Should you need them (in a, say, Sierra AGI game), you'll need to manually add them.

1.2.6 Toolbar icons

When the game starts, you’ll be shown some icons. They are pretty easy to use:

The Menu icon (only displayed in Lucasarts games) brings up the standard menu.

The Escape icon helps a lot with quickly skipping animations and other non-interactive scenes.

The Mute icon quickly mutes / unmutes sound.

The Button Assignment icon takes you to the already-known button assignment dialog. You WILL want to use it to make your life much easier.

The Change Orientation icon lets for changing the screen orientation. Note the following: in many cases, you’ll only be able to switch between left- and right-handed Landscape mode. You can only use Portrait mode with originally 320*2x0 games played on either a QVGA or a VGA screen; the latter in the default, 1x scaling mode.

1.2.7 Predictive dialpad support – even onscreen!

With Sierra AGI games (that is, games that require excessive text input), if you plan to play them on a Smartphone (or any Pocket PC device with a built-in dialpad; for example, some ASUS PPC PE edition models – for example, the P525), you will be able to use the phonepad in predictive mode, with a special dictionary built up from the dictionary of English language Sierra AGI titles. It’s pretty much similar to using predictive (T9) input on Smartphone devices and is really a pleasure to use.

If you have a Pocket PC without a hardware dialpad but, like me, really dislike the really bad on-screen keyboard of ScummVM, you will want to assign the Multi Function functionality to a hardware button as can be seen in HERE. After this, in a Sierra AGI game, you’ll only need to press this button to quickly bring up the predictive keyboard and tap the on-screen buttons corresponding to the command; for example, in THIS example, ‘look’. After clicking OK, the command will be executed just great.

Incidentally, “Multi Function” button does a lot more in other games. A quick search for “Multi Function” in README-WinCE.txt reveals the following:

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

1.2.8 Built-in QWERTY keyboard support

Fortunately, built-in QWERTY keyboards are (at least as far as Pocket PC’s are concerned) supported, which is VERY good news for Sierra AGI players. As the game also supports left-handed landscape mode, you won’t need to continuously turn the device between Landscape and Portrait mode either, unlike with the Portrait-only PocketSarien.

On my test HTC Wizard, everything worked OK (as opposed to what is stated in HERE). Note that the keyboard must be opened AFTER the GUI comes up – NOT before starting ScummVM!

On my test HTC Universal (WM6 VGA): everything is OK too.

Note that some xv6700 users reported keyboard problems – see THIS and THIS.

As far as MS Smartphones are concerned, the HTC Vox (s710) has the same problem as in many other games / apps / emulators: numbers are used on keyboard, and not the original letters and this can’t be fixed. That is, only a subset of original English characters is accessible.

1.2.9 “Zone” mode for MS Smartphones

ScummVM has excellent Smartphone support – something not at all supported by most emulators. Apart from some bugs (for example, the lack of working (!) Zone mode on QVGA Smartphones) and the pretty hard to read text on low-res Smartphones, it has an excellent feature: Zone mode (it’s not available for key binding in the Pocket PC, that is, touchscreen-enabled version).

Zone mode stands for quickly transferring the cursor between the Action verb area, the inventory area and the main screen when you press the assigned button (by default, it’s 9 on Smartphones). Example screenshots of this (I’ve just pressed ‘9’ between these screenshots and didn’t touch the D-pad to control the cursor): the cursor is in main screen; in the middle of the Verb area, in the middle of the (in here, empty) inventory area. See how faster it is to quickly switch the cursor between the three most important areas? This really saves a lot of time.

Again, note that this, currently, ONLY works on low-res (176*220) Smartphones, NOT on QVGA ones. This bug will, hopefully, be soon fixed.

1.3 What are the problems?

Unfortunately, ScummVM also has some (minor) problems.

1.3.1 Pretty much useless on-screen keyboard

The biggest problem with the emulator is the bad, two-line, non-qwerty keyboard, in which respect MOST alternative methods are FAR better (particularly the transparent keyboard in n0p’s DOSBox port and PocketHobbit, but even PocketDOS’ on-screen landscape-mode keyboard is better)

Just compare the easiness of entering any text on the following on-screen keyboard:

Image

to that of n0p’s DOSBox (in transparent mode; a non-transparent screenshot is HERE):

Image

Fortunately, it’s with very few games (typically, Sierra AGI games) that you’ll need to use this on-screen keyboard. With non-Sierra ones, you will hardly need to bring it up (for example, with Touche to tap ‘y’ to exit). If you absolutely hate it, don’t have a built-in QWERTY keyboard in your handheld and don’t want to use the predictive on-screen dialpad (see the related section) on your Pocket PC either but would prefer the standard SIP keyboard, you will want to switch back to PocketSarien.

1.3.2 Lack of MIDI / MT-32 support

General MIDI or MT-32 support is very important with games released in the early nineties, when digitized music was still not used, except for some titles with CD audio tracks. An example of the former is almost all titles (for example, Monkey 1, Loom etc.); of the latter, the CD version of Monkey Island 1 (in some versions, it also contained Monkey 2; the latter didn't at all use the audio tracks of the CD). As far as CD audio is concerned, if possible, try preferring these soundtracks to emulated, bad-sounding Adlib music.

Unfortunately, the PPC version doesn’t support MIDI / MT-32 at all. The reason for this is the huge CPU usage of midi emulation, which just can’t be provided by current Windows Mobile-based hardware. See THIS for more info.

This is why there’s absolutely no support for it as can be seen in HERE and HERE. The first secreenshot is a PPC screenshot of the Options menu; the second is a desktop one.

It, however, supports playing back the audio tracks of some (even early) games like the CD version of Monkey Island or the FM Town version of Zak. Games, for example, Broken Sword, that entirely have digitized music are supported very well. See the CDEx-related parts of the WinCE tutorial for more info.

1.3.3 Minor QVGA Smartphone bugs

Unlike on 176*220 Smartphones, the interpreter running on QVGA Smartphones doesn’t support zoning. (See section 1.4.2.)

Furthermore, while the built-in, slide-out or clamshell keyboard worked on all my test Pocket PC’s, it failed to do the same on my HTC Vox (s710). It produced the same problems as with many other SDL-based games / apps: numbers were input instead of letters. (Also see the dedicated section on keyboard usage.)

1.3.4 No scalers for VGA Portrait mode and Portrait doesn’t work on many QVGA devices

It’s a well-known fact many Pocket PC’s (and, of course, Smartphones – like the HTC s310 (Oxygen)) have severe polarization issues in Landscape (see for example THIS for more info). Therefore, it may be preferable to be able to switch to Portrait mode on these devices.

On VGA devices, you can only play QVGA / 320*200 games in Portrait mode in the standard, non-doubled case. This, however, means the actve screen content will only occupy a small portion of the screen as can be seen in HERE. That is, there is no 1.5* scaler to at least horizontally make use of the full screen estate.

On QVGA devices, while there’s a 0.75 scaler (to convert the originally 320-pixel-wide screen to fit the 240-pixel wide screen), it seems to refuse to work on many QVGA models (example screenshot of this mode HERE); for example, my WM5 AKU3 HTC Wizard and WM6 HTC Vox (s710) Smartphone. It, however, does work great on my WM2003 HP iPAQ 2210 and my PPC2k2 Compaq iPAQ 3660.

1.3.5 No D-pad-based quick focus transfer in the ScummVM GUI

Unfortunately, when accessing the GUI (menus) of ScummVM, you can't use the D-pad to quickly transfer the focus from one GUI element to another. This is a real pain the back on no-touchscreen Smartphone devices. It's only the lists (for example, the button mapping list) and the on-screen predictive input engine that supports quick focus transfer. The latter, of course, isn't really needed as you will most probably use the phonepad keys to quickly enter the command (and, then, press the Action button) instead of slowly transferring the focus to the on-screen buttons and pressing Action with every single letter.

Hope this functionality will be added for Smartphone users some time.

1.4 Generic compatibility and speed

It’s compatible with both Pocket PC’s (VGA, QVGA and 240*240 square-screen devices alike) and MS Smartphones (both 176*220 QQVGA and QVGA ones). The latest, brand new version, 0.10.0, no longer supports non-ARM architectures and Handheld PC’s.

As the CPU usage of ScummVM is REALLY small (MUCH-MUCH smaller than even most native games or other emulators), it flawlessly runs, with enabled (and, in most cases, even high-quality) sound / music, on even the lowest-end, Pocket PC 2000 / 2002 devices like the Compaq iPAQ 36xx series. If you (still) have a PPC2k2 device, don’t hesitate to install ScummVM on it: you’ll like it very much!

1.4.1 Down- and upscaling issues

If you’ve already read my Commodore 64 and Sinclair ZX Spectrum emulation articles (see THIS and THIS), you already know there must be some kind of scaling when trying to “squeeze in” the original screen size of CGA / low-res EGA / low-res VGA / low-res MCGA, 320*200 games, into Portrait-mode QVGA, that is, 240*320 (but not in 320*240 Landscape: in Landscape mode, no downscaling is necessary because the physical, available screen width is the same as the original and the screen height is even bigger) or 176*220 Smartphone screens. Also, the same stands for downscaling originally high-resolution (VGA, 640*480) games into QVGA screens.

During this, inevitable problems surface because when you downscale an image, information loss will happen. In the following two subsections, I explain the issues coming up. In the next section, however, I speak of the opposite direction – that is, upscaling a game to a Pocket PC with a (W)VGA screen.

1.4.1.1 Downscaling

If you squeeze a 320*2x0 (where x is either 0 or 4) image into Portrait orientation, you practically throw away every fourth column (and, if you keep the aspect ratio – which is NOT necessary and can be configured in ScummVM -, also rows). That’s not much of a loss and text, generally, remains pretty well readable. (This also applies to square-screen, 240*240 devices). An example of this downscaling can be seen in HERE.

Incidentally, the same happens when running 320*2x0 games on the 240-pixel-wide screen of current square-screen models. The square-screen converter (the one that renders 320*2x0 games on these models) works exactly the same way as the Portrait converter.

The situation is worse with traditional, low-resolution 176*220 Smartphones. First, they’re only used in Landscape mode but, even then, the text readability becomes definitely worse than with QVGA screens in Portrait mode because of the width of 220 pixels (which is 20 pixels less than the width of the QVGA screen in Portrait mode). Most games are on the verge of playability on these Smartphones.

Example screenshots of a 176*220 Smartphones running 320*200 games are HERE (GUI menu), HERE and HERE.

The worst happens when you try to downscale VGA to QVGA (because you play a VGA game on a QVGA handheld), you practically throw away every other row and (!) column. This may result in major quality degradation, particularly text readability-wise. Needless to say, you can’t downscale VGA to 240*240 square-screen devices, let alone 176*220 Smartphones – then, about two of every three pixel rows / columns should be thrown away. This also means you can’t play VGA games on a QVGA device otherwise allowing Portrait play (for example, the HP iPAQ 2210) in Portrait mode either, unlike with traditional 320*200 games.

An example of the results of VGA -> QVGA downscaling can be seen HERE and HERE; the latter using zooming. These are Touche screenshots; I’ve provided some VGA vs. downscaled QVGA screenshots with Broken Sword.

Note that zooming only works with vertical zooming (zooming into either the upper or the lower half of the screen): other people have also recommended using four quarters to make it possible to use a 1:1 rendering mode, as is the case with, say, PocketDOS.

1.4.1.2 Upscaling on VGA devices

Note: this section ONLY applies to VGA device users. Just skip it if you “only” have a handheld with a QVGA (or even worse) screen.

If you run ScummVM on a VGA device, you’ll quickly find it uses only the quarter of the available screen estate (as can be seen in HERE) in both games and when using the ScummVM GUI. To quickly fix this, click Options in the game launcher screen and select for example 2xSAI in the “Graphics mode” list as can be seen in HERE. Click OK. After a restart, both the GUI and non-VGA games will use the full screen estate – but in Landscape only. (This means if you are sensible to the Landscape polarization problems of your VGA Dell Axim x50v/x51v, you will NOT want to use pixel doubling, but stay with the original mode because it offers Portrait, no matter how tiny the actual game screen will be.)

Note that there are several options in this drop-down list. The original documentation of ScummVM (see section 5.3 Graphics filters) emphasizes there are major speed / CPU usage differences between the different video modes. Using Windows Mobile, I haven’t encountered ANY difference (including CPU usage and animation speed), except for the simple pixel doubler 2x. That is, you can safely use any of these options (except for the blocky 2x) – for example, 2xSAI. You won’t want to test the other modes.

1.4.1.2.1 Pixel doubling (2x mode) vs aliasing filters

As has already been pointed out, the standard, non-enhanced 2x mode results in blocky, badly pixelizated results. ALL the other options result in a FAR better visual experience as can be seen in for example HERE. I REALLY recommend comparing the “blockiness” of both the icons, the text and the background images. Only the blind don’t see the difference.

All in all, NEVER use the 2x mode. The other modes deliver MUCh prettier modes – as if the original game were native VGA, and not just a low-res QVGA one.

1.5 Recommended links

My other articles on emulators and game interpreters – they are a MUST.

Adventure Gaming on the Go by David Dolan (pretty old and outdated, but still a good read)

See the following links for more info on (some) of these games:

Cinematique evo1 engine (Note that Cruise for a Corpse (which is no longer based on the evo1 engine) is NOT supported as yet. See THIS for more info.)
Future Wars (asks for code)
Operation Stealth

GOB engine: Bargon Attack, Gobliiins, Gobliins 2, Goblins 3, Ween: The Prophecy

Adventure Soft’s Simon the Sorcerer series

LucasArts' games:

Maniac Mansion
Zak McKracken and the Alien Mindbenders. Note that the vastly enhanced FM Towns version wasn’t converted back to the IBM PC as can also be read in HERE
Indiana Jones and the Last Crusade: The Graphic Adventure
Loom
Day of the Tentacle
The Dig
Full Throttle
The Curse of Monkey Island.
clem
Posts: 2159
Joined: Mon Oct 31, 2005 11:14 am

Post by clem »

that sure is one long post

from the opening sentence "Many of you may have heard of ScummVM [...]" I gather that this tutorial is also hosted elsewhere - wouldn't it be far easier to just post a link to that?

clem
User avatar
knakos
ScummVM Porter
Posts: 423
Joined: Wed Nov 02, 2005 2:35 pm
Location: Athens, Greece

Post by knakos »

Thanks for the review/tutorial combo and your kind words. A couple of responses for your reported "annoyances" (yeah, I don't call them bugs :twisted: ):

Display not being able to rotate: ScummVM only tries to obey the reported screen parameters in the safest manner so that maximum compatibility is ensured across the wide range of devices. Hence, on some devices the display cannot be rotated due to this safe-treading technique.

QWERTY keyboard problems: They should be solved in 99% of the cases (the cited post was in the middle of development). Users w/ devices with problems should report bugs at the bugtracker so we can interact and proceed there.

On screen keyboard's usability: ScummVM and the supported engines did not traditionally rely on a full keyboard being present. AGI which mandates it got the predictive input method. So better on-screen keyboard support is of lower priority for me (but not 0).

Other/Scalers/etc: We're working on it :)
Menneisyys
Posts: 6
Joined: Tue Jul 03, 2007 11:48 am

Post by Menneisyys »

clem wrote:that sure is one long post

from the opening sentence "Many of you may have heard of ScummVM [...]" I gather that this tutorial is also hosted elsewhere - wouldn't it be far easier to just post a link to that?

clem
Yup, it's a cross-post. I prefer cross-posting my articles to related forums in their entirety in order to avoid accusations of promoting an external board / magazine.
clem
Posts: 2159
Joined: Mon Oct 31, 2005 11:14 am

Post by clem »

Menneisyys wrote:Yup, it's a cross-post. I prefer cross-posting my articles to related forums in their entirety in order to avoid accusations of promoting an external board / magazine.
makes it harder to update, though
fingolfin
Retired
Posts: 1452
Joined: Wed Sep 21, 2005 4:12 pm

Post by fingolfin »

Hopefully we'll get better (and "unified" across ports) virtual keyboard support in the future; we have a project in the "Google Summer of Code" running which aims to work on that.
Menneisyys
Posts: 6
Joined: Tue Jul 03, 2007 11:48 am

Post by Menneisyys »

clem wrote:
Menneisyys wrote:Yup, it's a cross-post. I prefer cross-posting my articles to related forums in their entirety in order to avoid accusations of promoting an external board / magazine.
makes it harder to update, though
yup - when I come up with an update, I generally cross-post a "UPDATE" new post to avoid having to re-edit the original article.
Menneisyys
Posts: 6
Joined: Tue Jul 03, 2007 11:48 am

Post by Menneisyys »

Menneisyys wrote:
clem wrote:
Menneisyys wrote:Yup, it's a cross-post. I prefer cross-posting my articles to related forums in their entirety in order to avoid accusations of promoting an external board / magazine.
makes it harder to update, though
yup - when I come up with an update, I generally cross-post a "UPDATE" new post to avoid having to re-edit the original article.
Now that I see this tutorial has been stickied, I may re-edit directly the original article to avoid readers' having to also check out the updates.
SirDave
Posts: 33
Joined: Sat Nov 05, 2005 2:18 am

Post by SirDave »

Your manual provides some very useful (and some updated) information not present in my manual so I would advise anyone planning to set up these games to read it in addition to the manual.

However, some clarifications are in order:

Menneisyys: 'However, in here, I also present you a self-sufficient tutorial, should you find reading all the linked tutorials and manuals far too overwhelming (I would) - it will suffice in most cases.'

My manual was designed to provide in-depth information on setting up PocketScumm (still an easier term to use than ScummVM for Windows Mobile CE) from start to finish including game-specific information including all files needed (no need to find this info on the ScummVM site), in-depth information on using the Scumm Tools including file compression and batch files to accomplish it, plus tips on how to play individual games, information that, in my experience, most people looking for help here need. So, if people don't need any of that information then your statement above applies. Yes, I understand that you refer people to my manual more than once, but then it makes the 'will suffice in most cases' statement seem all the more 'unusual' to me. Again, I suggest people read both posts since they complement rather than replace each other.

Menneisyys: 'Note that the SirDave tutorial discusses a previous version of CDex, a CD audio track extractor program; the current one uses a slightly different GUI and needs a different approach.'

The manual discusses the current CDEX release/stable version 1.51 which was retested just in the last few weeks. The version 1.70 is a Beta 2 release which, though I mention it in the manual, I found to be buggy so I still recommend v.151.

Also regarding your references to the Cdex information in the manual:

The Cdex filename information has been in the manual since it was created: 'To the right of 'File Name Format' make sure that only %4 is present (this will create the MP3 track names correctly).'

Your recommendation that people use the sample rate of 44khz and 128 kbps for MP3s is a good one for most people except for the following situations:

-some people are still using older PocketPCs with less powerful CPUs and smaller memory cards. Not everyone is setting up these games on a Dell 51v with a 4g memory card.

-when originally tested, the Loom sound files did not play correctly as 128 kbps MP3s, but did at 64 kbps. Perhaps that has changed with recent PocketScumm releases.

Menneisyys: 'Transfer SCUMMVM.exe (and, if you need them, the two MODERN.* files) anywhere on your handheld... Note that, as opposed to what SirDave's tutorial states, you do NOT need to put the games into a subdirectory under the SCUMMVM.exe executable file.'

While you're correct that you do NOT need to put the games into a subdirectory under the executable and, likewise, you can put SCUMMVM.exe almost anywhere, there are a few good reasons to do it as I recommend in the manual. One of those is that if everything needed to run your games is in one main directory, then, since, in addition, the executable is never tied to the individual Mobile WinCE registry, PocketScumm becomes completely portable on a memory card ie. it can be transferred complete to another PocketPC. Another benefit is that when the executable is updated as it frequently is, it is much easier to simply copy it over once to the Scumm (or whatever one calls it) directory on a memory card.
Menneisyys
Posts: 6
Joined: Tue Jul 03, 2007 11:48 am

Post by Menneisyys »

Thanks for the remarks; most importantly about the Loom bug, which I wasn't aware of when recommending going for 128 kbps / 44 kHz CD Audio MP3's.

I meant 'self-sufficiency' by non-CD-based / non-FM Towns, earlier titles, as I didn't want to duplicate the info already present in your tutorial; rather, present a gentle ("no need to read the over 100 kbytes of the other three tutorials") and, as far as non-CD-games are concerned, all-in-one intro for WM users. With non-simple (CD-based) titles, this is why I've also emphasized the following, referring readers to your tutorial:

"SirDave's PocketScumm Manual also has some excellent subtutorials for Zak McKracken-FM Towns, Monkey Island 1-CD Version, Loom CD Version, Monkey Island 1-Floppy Disk VGA Version, Monkey Island 2, Sam and Max Hit the Road, Day of the Tentacle, Indiana Jones: Fate of Atlantis, The Dig, Curse of Monkey Island, Beneath A Steel Sky-WinCD Version, Simon The Sorcerer DOS and Windows Talkie, Simon The Sorcerer 2 DOS and Windows Talkie, Broken Sword 1 & 2 and Full Throttle. That is, should you need to know how these mostly CD-based games need to be installed (for example, the audio CD tracks extracted, the sound / music / video files compressed etc.), make sure you read the relevant section in the tutorial."
flexikon
Posts: 6
Joined: Mon May 11, 2009 7:45 pm

Post by flexikon »

On my HTC touch Diamond2 the whole up/down-scaling issue is easily resolved by just flipping the screen with the nice little monkey. ofcourse you'll have to flip the screen with a non-alligned pointer first, to be able to use it correctly when the screen is flipped. the only games it didn't work with are monkey island 1 & 2, but the other games allign the pointer just fine, or after flipping the screen.

when I have 2xSAI scaling on, this also goes up for the older games from lucasarts I play, which then present themselves in nice landscapes mode, though the big gaps (depending on which way you flipped the screen) left & right of the screen are still a small annoyance to me, but furthermore the games work perfectly. the small WVGFIX app that I found on another forum (which is linked here somewhere, dunno where exactly, google it!) works fine for the people who still find trouble with their stylus-allignment being off...so try flipping the screen when all else fails...a simple solution to a great annoyance so to speak...
Post Reply