Difference between revisions of "DevkitPPC"

From WiiBrew
Jump to navigation Jump to search
(Put some more comprehensive info on devkitppc/libogc)
Line 1: Line 1:
DevkitPro is the toolchain of choice for homebrew game development.  It is  currently available for GameBoy Advance, GP32, Playstation Portable (PSP), GameCube, and Wii. More platforms will be added as time permits.
+
DevkitPro is the toolchain of choice for homebrew game development.  It is  currently available for GameBoy Advance, GP32, Playstation Portable (PSP), GameCube, and Wii. Instructions for setting up the system are available for [[Getting_Started_with_devkitppc|Windows]], [[Getting_started_with_DevkitPPC_on_Mac_OS_X|Mac OSX]] and [[Getting_started_with_DevkitPPC_on_Linux|Linux]].
 +
 
 +
It consists of several parts, with the following being relevant to gamecube/wii development:
 +
 
 +
==devkitPPC==
 +
 
 +
This is a port of the GNU Compiler Collection (GCC) and includes a C (gcc) and C++ compiler (g++), a debugger (gdb) and associated utilities, with the architecture "powerpc-gekko".  It also includes standard C libraries based on [http://sourceware.org/newlib newlib], which is specifically designed for embedded systems.  Compilers and libraries are also included for the MN10200, the Matsushita (Panasonic) chip used in the Wii DVD controller.
 +
 
 +
For Windows users it comes with the [http://www.mingw.org/msys.shtml MSYS] environment, which is a minimal set of unix-like tools such as a shell.
 +
 
 +
==libogc==
 +
 
 +
libogc is a collection of libraries for the gamecube and Wii.  It includes the following low-level wii/gamecube specific sub-systems:
 +
*ARAM
 +
*AUDIO
 +
*EXI - Support routines for the system bus which connects many internal devices to the CPU
 +
*IRQ - Hardware Interrupts
 +
*DSP
 +
*DVD
 +
*GX
 +
*VIDEO
 +
*Cache
 +
*Memory Card
 +
*Console
 +
*Threads
 +
**Messages
 +
**Mutexes
 +
**Semaphores
 +
**Condition Variables
 +
Information on many of these sub-systems can be found in [[YAGCD]].
 +
 
 +
 
 +
It also incorporates the following libraries (which may be custom versions of external libraries):
 +
*libdb - routines to support remote debugging
 +
*[http://www.wiiuse.net wiiuse] - an API for the wiimote (also available on windows and linux)
 +
*libfat - routines for accessing FAT filesystems such as those on SD cards
 +
*libmodplay - music module player library
 +
*[http://www.underbit.com/products/mad/ libmad] - MPEG audio decoder library
 +
*[http://www.zlib.net zlib] - compression routines
 +
*libbte - ????
 +
*tinysmb - [http://en.wikipedia.org/wiki/Server_Message_Block SMB] implementation (protocol used by Windows file sharing)
 +
 
 +
 
 +
----
  
 
[http://www.devkitpro.org/ DevkitPro home page]
 
[http://www.devkitpro.org/ DevkitPro home page]

Revision as of 07:10, 29 June 2008

DevkitPro is the toolchain of choice for homebrew game development. It is currently available for GameBoy Advance, GP32, Playstation Portable (PSP), GameCube, and Wii. Instructions for setting up the system are available for Windows, Mac OSX and Linux.

It consists of several parts, with the following being relevant to gamecube/wii development:

devkitPPC

This is a port of the GNU Compiler Collection (GCC) and includes a C (gcc) and C++ compiler (g++), a debugger (gdb) and associated utilities, with the architecture "powerpc-gekko". It also includes standard C libraries based on newlib, which is specifically designed for embedded systems. Compilers and libraries are also included for the MN10200, the Matsushita (Panasonic) chip used in the Wii DVD controller.

For Windows users it comes with the MSYS environment, which is a minimal set of unix-like tools such as a shell.

libogc

libogc is a collection of libraries for the gamecube and Wii. It includes the following low-level wii/gamecube specific sub-systems:

  • ARAM
  • AUDIO
  • EXI - Support routines for the system bus which connects many internal devices to the CPU
  • IRQ - Hardware Interrupts
  • DSP
  • DVD
  • GX
  • VIDEO
  • Cache
  • Memory Card
  • Console
  • Threads
    • Messages
    • Mutexes
    • Semaphores
    • Condition Variables

Information on many of these sub-systems can be found in YAGCD.


It also incorporates the following libraries (which may be custom versions of external libraries):

  • libdb - routines to support remote debugging
  • wiiuse - an API for the wiimote (also available on windows and linux)
  • libfat - routines for accessing FAT filesystems such as those on SD cards
  • libmodplay - music module player library
  • libmad - MPEG audio decoder library
  • zlib - compression routines
  • libbte - ????
  • tinysmb - SMB implementation (protocol used by Windows file sharing)



DevkitPro home page