I’ve been tuning SDL for better performance on the Compaq iPAQ (Linux,
not WinCE). For now I’m concentrating on the framebuffer console driver.
This provides a 320x240 16-bit display, and SDL worked with that more or
less out of the box. I added support for the iPAQ’s touchscreen (simple
mouse-like protocol), and fixed a VT switching bug that was causing
SDL_SetVideoMode to hang (as you might suspect, VT’s have little
relevance on the iPAQ). I added a --enable-ipaq-tweaks Autoconf option
(but you still need a mile-long configure command line to do the
build… I’ll probably supply a script for that). Audio worked with no
hassle. The iPAQ has the potential to become a very solid SDL platform
with a little more tweaking.
Apparently the X11 driver also works. Someone managed to port Doom to
the iPAQ with it, though controls didn’t work correctly.
There are a few remaining issues that I could use advice on:
-Keys. The iPAQ has a directional keypad and four other buttons along
the bottom. These do not fit into the current SDL keyboard model very
well. What would be the best way to make these keys accessible from SDL?
A 4-button joystick driver, perhaps? Map them onto new keysyms? Choose
existing keysyms to represent them?
-Screen rotation. By default, the iPAQ configures its display as a
normal 320x240 framebuffer. This means you have to hold the iPAQ
sideways to read the display. This aspect ratio makes porting existing
games simple, but most PDA users are accustomed to a 240x320 vertical
display. As far as I can tell, there is no way to re-orient the screen
in hardware (I’ll investigate this, though). Do we create some monstrous
hack to rotate the framebuffer and emulate a 240x320 video mode, or just
leave it up to PDA game developers to display their graphics sideways?