ScummVM on maemo

It took surprisingly long, but eventually people figured out what the Nokia 770 is good for: playing retro games, of course. Some weird people like C64 emulators, I much prefer ScummVM.

Compiling ScummVM for maemo/ARM is very easy, see below. You only need to manually define the SCUMM_NEED_ALIGNMENT configuration variable, possibly because QEMU is taking some shortcuts or the configure script is missing a check or something.

% ./configure
% perl -pi -e 's,#undef,#define, if /SCUMM_NEED_ALIGNMENT/' config.h
% make

So far I’ve tried playing the following games on Nokia 770, more or less thoroughly, and they all seem to be quite enjoyable:

Random observations:

  • Sounds and especially music are too silent for the speaker. Sound effects and speech are OK with headphones, but music is barely audible.
  • There is no F5 key so you can’t save or restore games, which is likely to become very annoying very quickly. Small tweak to make use of the Menu key (i.e. F4) would be nice.
  • Since there’s no input method support one should create savegame files beforehand which can be selected in game instead of having to type new names.
  • The cursor gets easily offset if you tap outside the game area. It’s easy to recalibrate with the arrow keys, but it’s still annoing.
  • Beneath a Steel Sky requires right mouse button, which 770 does not have. (IIRC Last Crusade requires it also for the balloon ride.)
  • The copy protection in Monkey Island 2: LeChuck’s Revenge requires keyboard, or at least some way to enter numbers.
  • It might be good for performance if pixel doubling and the sounds could be handled in hardware rather than software.

I am yet to try more games, but so far it seems that ScummVM, like many other applications, mostly works without any modifications. To integrate with the platform really nicely changes, some more complicated than others, are required. Especially the input methods for non-gtk+ applications are somewhat a challenge.