author Sam Lantinga <>
Wed, 26 Sep 2012 20:14:37 -0700
changeset 6464 ab55284b389f
parent 6285 f12649068adb
permissions -rw-r--r--
Fixed bug 1573 - SDL does not support system clipboard on Android. Philipp Wiesemann 2012-08-18 14:09:47 PDT there is currently no way in SDL to interact with the system clipboard on Android. I attached a patch which tries to implement the three clipboard functions for Android. It does not add the CLIPBOARDUPDATE event because this seems to require Android API 11 or polling.

Simple DirectMedia Layer for Nintendo DS

* The devkitpro SDK available at
  Read the information at
  The necessary packages are devkitARM, libnds, libfat and default arm7.
* Optionally, use a DS emulator, such as desmume (
  to program and debug.

-Building SDL-

After setting the devkitpro environment, cd into your SDL directory and type:
  make -f Makefile.ds

This will compile and install the library and headers into the
devkitpro's portlibs directory (../portlibs/arm/lib/ and
../portlibs/arm/include/). Additionally it will compile several tests
that you can run either on the DS or with desmume. For instance:
  desmume --cflash-path=test/ test/nds-test-progs/testsprite2/testsprite2.nds
  desmume --cflash-path=test/ test/nds-test-progs/testspriteminimal/testspriteminimal.nds
  desmume --cflash-path=test/ test/nds-test-progs/testscale/testscale.nds 
  desmume test/nds-test-progs/general/general.nds

* The renderer code is based on the gl like engine. It's not using the sprite engine.
* The hardware renderer is using the parts of the libgl2d abstraction library that can be found at:
  Used with the author's permission.
* The port is very basic and incomplete:
  - SDL currently has to be compiled for either framebuffer mode or renderer mode.
     See USE_HW_RENDERER in Makefile.ds.
  - some optional renderer functions are not implemented.
  - no sound

* in hardware renderer mode, don't load too many textures. The internal format is
  2 bytes per pixel. And there is only 256KB reserved for the textures. For instance,
  testscale won't display sample.bmp, unless it's resized to a smaller picture.
* the screen size is 256 x 384. Anything else won't work.
* there is no 8 bits/pixel mode because SDL 2.0 doesn't support palettes.

-Joystick mapping-
The Joystick presented to SDL has 2 axes and 8 buttons

 KEY      | Code
  A       |   0
  B       |   1
  X       |   2
  Y       |   3
  L       |   4
  R       |   5
  select  |   6
  start   |   7

 Left-right is axe 0.
 Up-down is axe 1.

-Mouse mapping-

Due to memory limitations, to be able to successfully run the testscale example, sample.bmp must be resized to 256x105.