Difference between revisions of "SDL Wii"

From WiiBrew
Jump to: navigation, search
m (SDL joystick mapping: fixed up table)
Line 63: Line 63:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! SDL button index !! {{WiimoteHorizontal}} !! {{Nunchuk}} !! {{ClassicController}}
+
! SDL button<br />index !! {{WiimoteHorizontal}} !! {{Nunchuk}} !! {{ClassicController}}
 
|-
 
|-
| 0 || {{WiimoteAButton}}
+
| 0 || {{WiimoteAButton}} || ||
 
|-
 
|-
| 1 || {{WiimoteBButton}}
+
| 1 || {{WiimoteBButton}} || ||
 
|-
 
|-
| 2 || {{Wiimote1Button}}
+
| 2 || {{Wiimote1Button}} || ||
 
|-
 
|-
| 3 || {{Wiimote2Button}}
+
| 3 || {{Wiimote2Button}} || ||
 
|-
 
|-
| 4 || {{WiimoteMinusButton}}
+
| 4 || {{WiimoteMinusButton}} || ||
 
|-
 
|-
| 5 || {{WiimotePlusButton}}
+
| 5 || {{WiimotePlusButton}} || ||
 
|-
 
|-
| 6 || {{WiimoteHomeButton}}
+
| 6 || {{WiimoteHomeButton}} || ||
 
|-
 
|-
| 7 || || {{NunchuckZButton}}
+
| 7 || || {{NunchuckZButton}} ||
 
|-
 
|-
| 8 || || {{NunchuckCButton}}
+
| 8 || || {{NunchuckCButton}} ||
 
|-
 
|-
 
| 9 || || || {{ClassicAButton}}
 
| 9 || || || {{ClassicAButton}}

Revision as of 06:46, 16 October 2009

SDL Wii
SDL logo.png
General
Author(s)Numerous
Maintainer(s)Tantric
TypeFramework library
Links
Download
Source

Simple DirectMedia Layer (SDL) is a cross-platform multimedia library designed to provide low level access to audio, keyboard, mouse, joystick, and video. It is used by MPEG playback software, emulators, and many popular games. SDL is written in C, but works with C++ natively.

SDL support on Wii is currently incomplete. Although SDL is useable, you will likely experience problems until this is rectified. Please contribute any improvements you make to the SDL Wii SVN.

Usage

  • Grab the latest devkitPPC and libogc
  • Copy all of the SDL files to the libogc folder (on Windows by default this is c:\devkitPro\libogc).

Remember to link the libraries in the right order:

LIBS	:=	-lSDL_net -lSDL_ttf -lSDL_gfx -lSDL_mixer -lSDL_image -lSDL \
                -lsmpeg -ljpeg -lpng -lfreetype -lvorbisidec \
                -lz -lfat -lwiiuse -lbte -logc -lm -lwiikeyboard


Use your friend google to learn how to use SDL.

There is also additional installation help available.

Tutorial

A simple but currently incomplete tutorial can be found here. Made by GabberNL.

Using SDL

SDL has graphics, sound, and input all in one. SDL is a very popular library used in many open source programs. It is most commonly used in games, but it is also used in emulators and media players. SDL is very easy to use and it is very easy to port apps that use it.

SDL joystick mapping

The sticks and axes are mapped this way:

SDL axis WiimoteHorizontal.svg Nunchuck alternative.svg ClassicController.svg Comments
0 (horizontal) Nunchuck Control Stick Classic Left Control Stick Only one expansion can be connected
1 (vertical) Nunchuck Control Stick Classic Left Control Stick
2 (horizontal) Classic Right Control Stick
3 (vertical) Classic Right Control Stick
4 (horizontal) Classic R Trigger
5 (vertical) Classic L Trigger

The D-pads on the Wii Remote and the Classic Controller are mapped as a joystick hat. Only one hat is reported per joystick, so when Classic Controller is plugged in, the D-pad on the Wii Remote is ignored. As far as orientation, SDL_HAT_UP is the up button on the Wii Remote's D-pad when it's held in horizontal position (with D-pad to the left).

The wiimote buttons are mapped this way in SDL:

SDL button
index
WiimoteHorizontal.svg Nunchuck alternative.svg ClassicController.svg
0 Wiimote A Button
1 Wiimote B Button
2 Wiimote 1 Button
3 Wiimote 2 Button
4 Wiimote - Button
5 Wiimote + Button
6 Wiimote HOME Button
7 Nunchuck Z Button
8 Nunchuck C Button
9 Classic a Button
10 Classic b Button
11 Classic x Button
12 Classic y Button
13 Classic L Trigger
14 Classic R Trigger
15 Classic ZL Button
16 Classic ZR Button
17 Classic - Button
18 Classic + Button
19 Wiimote HOME Button

Bugs

  • SDL_gfx eats up memory and can cause code dumps. If you get code dumps then try removing SDL_gfx.
  • There are no other known bugs besides the ones from the original SDL.

Source

Many authors have contributed to the SDL Wii port over the years. The original source is from libSDL. A GameCube version was found in the devkitPro CVS repository. Mindcry made the port compatible with the Wii and added on sound, SDL_mixer and SDL_image. Devildante recompiled a version of SDL_image with libjpeg support, and added SDL_gfx and SDL_ttf with FreeType. Numerous changes were also made by Yohannes (threading, audio, etc), and David Hudson updated to the latest SDL SVN. Tantric has also rewritten portions, including the file access, audio, and video systems.

See Also