README.ds
author Sam Lantinga <slouken@libsdl.org>
Sun, 06 Mar 2011 21:12:19 -0800
changeset 5423 b69fa50e80d7
parent 5289 1916a9e9714d
child 5430 1b318d81c85f
permissions -rw-r--r--
a Nintendo ds update Frank Zago to SDL For those interested, here's a snapshot of the current port. I did away with most of the previous attempt which was based of the sprite engine, because the support is limited to 128 64x64 sprites. Instead I'm using the gl engine. The drawback is that either the frame buffer or the gl engine can be used because there's not that much video memory on a DS. With minimal changes to their code, it can now run the following tests: , testspriteminimal, testscale and testsprite2. The last 2 only run under the emulator for some reason. The tests are not included in this patch for size reason. In 16 bits mode, the 16th bit indicated transparency/opacity. If 0, the color is not displayed. So I had to patch a few core file to set that bit to 1. See patch for src/video/SDL_RLEaccel.c and src/video/SDL_blit.h. Is that ok, or is there a better way ? The nds also doesn't support windowed mode, so I force the fullscreen in src/video/SDL_video.c. Is that ok, or is there a better way ? To get a smaller library, I also tried to not compile the software renderer when the hardware renderer is compiled in, and define SDL_NO_COMPAT; however the compilation eventually fails in SDL_surface.c because SDL_SRCCOLORKEY is defined in SDL_compat.h. Is SDL_NO_COMPAT only for application and not SDL itself ?
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5289
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     1
================================================================================
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     2
Simple DirectMedia Layer for Nintendo DS
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     3
================================================================================
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     4
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
     5
-Requirements-
5423
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
     6
* The devkitpro SDK available at http://devkitpro.org.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
     7
  Read the information at http://devkitpro.org/wiki/Getting_Started/devkitARM
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
     8
  The necessary packages are devkitARM, libnds and default arm7.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
     9
* The hardware renderer is using the libgl2d abstraction library that can be found at:
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    10
    http://rel.phatcode.net/junk.php?id=117
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    11
  Build it, and install the library and the header where SDL can find them (ie. in
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    12
  the libnds/lib and libnds/include directories).
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    13
5289
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    14
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    15
-Building SDL-
5423
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    16
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    17
After setting the devkitpro environment, cd into your SDL directory and type:
5289
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    18
  make -f Makefile.ds
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    19
5423
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    20
This will compile and install the library and headers into the proper libnds
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    21
directories. Additionnaly it will compile several tests that you can run
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    22
either on the DS or with desmume. For instance:
5289
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    23
  desmume test/nds-test-progs/general/general.nds
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    24
5423
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    25
-Notes-
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    26
* The renderer code is based on the gl like engine. It's not using the sprite engine.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    27
* The port is very basic and incomplete:
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    28
  - SDL currently has to be compiled for either framebuffer mode or render mode.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    29
     See USE_HW_RENDERER in Makefile.ds.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    30
  - some optionnal renderer functions are not implemented.
5289
1916a9e9714d Frank Zago to SDL
Sam Lantinga <slouken@libsdl.org>
parents:
diff changeset
    31
5423
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    32
-Limitations-
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    33
* in hardware renderer mode, don't load too many textures. The internal format is
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    34
  2 bytes per pixel. And there is only 256KB reserved for the textures. For instance,
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    35
  testscale won't display sample.bmp, unless it's resized to a smaller picture.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    36
* the screen size is 256 x 384. Anything else won't work.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    37
* there is no 8 bits/pixel mode because SDL 1.3 doesn't support palettes.
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    38
b69fa50e80d7 a Nintendo ds update
Sam Lantinga <slouken@libsdl.org>
parents: 5289
diff changeset
    39