| Title | Port SDL 1.3 to the Nintendo DS, add touch input API |
|---|---|
| Student | Darren Alton |
| Mentor | Sam Lantinga |
| Abstract | |
|
The Nintendo DS is a popular handheld gaming console. It has two LCD screens (the lower of which is touch-sensitive), stereo sound, a microphone, WiFi networking, and gamepad inputs. On a lower level, the DS has powerful 2D and 3D graphics modes. Additionally, using third-party flash adapters the DS can access to up to two flash memory cards such as SD cards.
There is an existing port of the older SDL 1.2.9 (found at http://gpf.dcemu.co.uk/ndsSDL.shtml by GPF). This port, however, does not have support for many of the features mentioned above; it supports only one display, has no touch input, and is somewhat unoptimized. A more complete port of SDL 1.3 would allow for this functionality to be used and might offer improved performance. Multi-display support is a feature of the SDL 1.3 API, allowing developers to make games and applications that use several monitors at once. This could be implemented for the DS, treating both LCD screens as "monitors" in the implementation. Touch input support is proposed for SDL 1.3. A general touch API could be designed for SDL, and it could implemented on the DS using its touch-sensitive hardware. Additionally, it may be possible to add mouse emulation using the touch-screen, allowing existing mouse-driven SDL programs to easily be rebuilt for the DS. SDL_net could be written using the DS' WiFi capabilities. This would allow games that use networking to be ported easily, transparently using the wireless access points that the host DS is configured to use. Some extra features that might also be implemented are sound recording (using the DS' microphone) and force feedback (using the rumble pack). These would be useful additions after the basic functionality detailed above is in place. In addition, utility libraries like SDL_image could be ported. It is clear that the DS is capable of much of SDL's functionality. With a proper port using all of these features, SDL could become a useful API for homebrew Nintendo DS programming. Such a port would allow SDL game developers to consider the DS a target platform for their games; it would also cause amateur game developers who wish to write programs for the Nintendo DS to consider using SDL, facilitating later ports to any other platforms supported by SDL. |
|