I don’t know if you remember this, but a couple of weeks ago there were several reports of strange lights hovering in the sky over Trondheim. Most people figured they were searchlights from some fancy nightclub, or maybe Batman on a routine mission, but I know better. You see, when I came home that night there was a small anonymous white package lying on my doorstep. Just lying there, looking at me.
Excited about the possibility of extraterrestrial contact I locked myself in as quickly as i could and tore of the wrapping. And I was happily surprised! What I was holding in my hands was small, beautiful, and green. I am of course talking about the Trolltech Greenphone.

It’s a Linux-based cell-phone with a largely open source phone-stack. The only parts missing are some low level modem handling, the DRM-functionality, and the code sandboxing, which I suspect most open source developers are not going to miss that much. Currently it’s running Qtopia 4.1.7, but 4.2.1 is soon to be released and hopefully it will solve some of the more annoying issues like the volume buttons not working and the strange echo effect when making a call.
Such issues are of course to be expected, as this is just as much as a learning-by-doing for Trolltech as it is for the rest of us — and especially considering that this phone is not a consumer device. It’s a developer phone, targeted at people who want to test their software on a real device to get that “true feeling”. And you’re actually reminded of this fact every time you boot the phone, as Trolltech has put up a nice little startup notice window that warns you about getting too comfortable. This can of course be easily removed, but it’s worth keeping in mind every time you start grumbling over details like why the messaging application doesn’t start each new message with an uppercase letter (It does on my Sony-Ericcson
).
Anyways. After a week or so of playing around, changing icons and themes and getting into the details of the phone, I decided to start a real project that would require more than some small edits of configuration files. So for the last couple of days I’ve been working on “porting” SDL to Qtopia 4.x, so I can play old classics like Day of the Tentacle and Indiana Jones and the Fate of Atlantis using ScummVM. Luckily most of the code could be based on the excellent Qtopia 3.x implementation by David Hedbor, so after rewriting parts of the painting code I had a running example.

I’m planning on adding more features, such as user-configurable key-bindings and an optimized paint routine, so the port won’t be ready for release just yet, but I’ll let you know when it is
Update:
I put in some hours on this during the week-end, and most of the features are done now, including user-mappable keys, support for stylus right click by pressing and holding the cursor, and increased paint speed. Here’s a couple of screenshots:



If you have a Greenphone (running Qtopia 4.1.7) and want to try it out get the binary tar-ball. It should be extract into /opt/Qtopia/ on your phone.
Edit the file /mnt/user/etc/ld.so.conf and add /opt/Qtopia.user/lib to your library search paths. Then run ldconfig -C /mnt/user/etc/ld.so.cache to generate the appropriate symlinks and update the cache.
Good luck!
PS: Demos of some of the old classics can be found here.
Update 2:
Source code can be found here. Although the implementation is thoroughly commented and fairly clean the build files are a complete mess. This is both because I started moving the implementation to Qtopia 4.2.1, and because I had to hack the build files to make it compile. But if anyone has use for the source, it’s there
I’ll try to clean it up and make a real patch against SDL if I find the time.