In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "List of development tools"

From WiiBrew
Jump to navigation Jump to search
m (Added WiiLÖVE)
 
(69 intermediate revisions by 38 users not shown)
Line 1: Line 1:
''Also see [[:Category:Libraries]]''
+
These '''Development Tools''' can help you develop homebrew applications and games for the Wii. The most important tool for Wii development is [[DevkitPPC]], a port of the GCC toolchain along with supporting system libraries. The development tools listed below make development easier or to add additional functionality.
  
These '''Development Tools''' can help you develop homebrew applications and games for the Wii.  The most important tool for Wii development is [[DevkitPro]], a port of the GCC toolchain along with supporting system libraries.  The development tools listed below make development easier or to add additional functionality.
+
== Core development ==
  
==Libraries==
+
{| class="apptable sortable"
 +
|-
 +
! width="25%" | Title
 +
! Description
 +
! width="20%" | Author
 +
|-
 +
| [[devkitPPC]]
 +
| GCC/MSys and associated utilities, standard C libraries based on newlib
 +
| WinterMute
 +
|-
 +
| [[libogc]]
 +
| Low-level libraries for interacting with Wii-specific sub-systems
 +
| shagkur
 +
|}
 +
 
 +
== Framework libraries ==
 +
 
 +
{| class="apptable sortable"
 +
|-
 +
! width="25%" | Title
 +
! Description
 +
! width="20%" | Author
 +
|-
 +
| [[GameFramework|Game Framework]]
 +
| This is a basic framework to guide programmers in things like XML, Fonts, Images & the C++ Standard Template Library.
 +
| [[User:Titmouse|Titmouse]]
 +
|-
 +
| [[GRRLIB]]
 +
| GRRLib For GX Rgb Renderer Library, a simple C graphics library
 +
| NoNameNo
 +
|-
 +
| [[libwiigui]]
 +
| A GUI-making library, with a template included
 +
| [[User:Tantric|Tantric]]
 +
|-
 +
| [[libwiisprite]]
 +
| A C++ sprite library which uses GX as its underlying rendering engine
 +
| Chaosteil, (Feesh!)
 +
|-
 +
| [[MLlib]]
 +
| Framework for graphics, input, audio, and so on. Friendly, easy coding
 +
| [[User:Minishlink|Minishlink]]
 +
|-
 +
| [[MTek-GDL]]
 +
| An easy to use object-oriented game development library ideal for simple and advanced Wii game projects
 +
| [[User:TheCodingBrony|TheCodingBrony]]
 +
|-
 +
| [[SDL Wii]]
 +
| SDL port with SDL Mixer, Image, gfx, and ttf
 +
| Numerous
 +
|-
 +
| [[WiiLÖVE]]
 +
| Framework for making 2D Nintendo Wii homebrew games in Lua
 +
| [[User:HTV04|HTV04]]
 +
|-
 +
| [[Wire3D]]
 +
| Object oriented multiplatform 3D engine for Wii and Windows (DirectX)
 +
| [[User:Antibyte|antibyte]]
 +
|-
 +
| [[wit]]
 +
| A C++ development toolkit for event-driven programming
 +
| [[User:Ahigerd|ahigerd]]
 +
|}
 +
 
 +
== Libraries ==
 
{| class="apptable sortable"
 
{| class="apptable sortable"
 
|-
 
|-
Line 13: Line 77:
 
| A wrapper class for libFreeType which renders a compiled FreeType parsable font into a GX texture
 
| A wrapper class for libFreeType which renders a compiled FreeType parsable font into a GX texture
 
| [[User:ArminTamzarian|Armin Tamzarian]]
 
| [[User:ArminTamzarian|Armin Tamzarian]]
 +
|-
 +
| [[GEMS Wifi]]
 +
| A library to help with the initialization of wifi related stuff for Wii and DS.
 +
| [[User:GEMISIS|GEMISIS]]
 
|-
 
|-
 
| [[gl2gx]]
 
| [[gl2gx]]
Line 18: Line 86:
 
| noeska
 
| noeska
 
|-
 
|-
| [[GRRLIB]]
+
| [http://www.plaatsoft.nl/wiibrew/grrlib-4-2-x-freetype-support GRRLIB-FreeType]
| GRRLIB For GX Rgb Renderer Library, a simple C graphics library
+
| A easy extension on [[GRRLIB]] to support FreeType. Note: GRRLIB version 4.3.0 is supporting FreeType natively.
| NoNameNo
+
| [[User:wplaat|wplaat]]
 
|-
 
|-
 
| [[The HOMEbrew Menu Standard Library]]
 
| [[The HOMEbrew Menu Standard Library]]
Line 33: Line 101:
 
| Minimum runtime image drawing extension for [[libwiisprite]]
 
| Minimum runtime image drawing extension for [[libwiisprite]]
 
| [[User:henke37|henke37]]
 
| [[User:henke37|henke37]]
 +
|-
 +
| [[libdolfs]]
 +
| A read-only .dol-attached Ramdisk.
 +
| [[User:Hornpipe2|Hornpipe2]]
 
|-
 
|-
 
| [[Libmii]]
 
| [[Libmii]]
 
| Retrieves Mii data
 
| Retrieves Mii data
| [[User:Mjbauer95|Mjbauer95]]
+
| [[User:Mdbrim|mdbrim]]
 +
|-
 +
| [[libnfs]]
 +
| NFS driver for the Wii
 +
| [[User:r-win|r-win]]
 +
|-
 +
| [[libNoise]]
 +
| Noise generation library. Useful for terrain, and textures, among others.
 +
| [[User:myrkr|myrkr]]
 +
|-
 +
| [[LibProfile]]
 +
| Code Profiler
 +
| [[User:nuke|nuke]]
 +
|-
 +
| [[libsicksaxis]]
 +
| PS3 controllers to the Wii
 +
| [[User:Xerpi|xerpi]]
 
|-
 
|-
 
| [[libosk]]
 
| [[libosk]]
 
| An on screen keyboard
 
| An on screen keyboard
| beardface
+
| [[User:Beardface|Beardface]]
 
|-
 
|-
 
| [[User:Cboomf/libusbkbd|libusbkbd]]
 
| [[User:Cboomf/libusbkbd|libusbkbd]]
 
| Easy access to the USB keyboard interface
 
| Easy access to the USB keyboard interface
| Cboomf
+
| [[User:Cboomf|Cboomf]]
 
|-
 
|-
| [[User:Davyg/libwiikeyboard|libwiikeyboard]]
+
| [[libwc24]]
| A USB keyboard interface library.
+
| Library for WiiConnect24.
| Davyg
+
| [[User:Yellows8|Yellows8]]
 
|-
 
|-
| [[Libwiilight|libwiilight]]
+
| [[libwiilight]]
 
| Wii Disc slot light library
 
| Wii Disc slot light library
| Cboomf
+
| [[User:Cboomf|Cboomf]]
|-
 
| [[libwiisprite]]
 
| A C++ sprite library which uses GX as its underlying rendering engine
 
| Chaosteil, (Feesh!)
 
|-
 
| [[libwiiupdate|libwiiupdate]]
 
| Library for easy updating of your apps
 
| wackysystems (AlexLH)
 
 
|-
 
|-
 
| [[Metaphrasis]]
 
| [[Metaphrasis]]
Line 68: Line 148:
 
| [[PNGU]]
 
| [[PNGU]]
 
| A collection of functions for handling .png files
 
| A collection of functions for handling .png files
| frontier  
+
| [[User:frontier|frontier]]
|-
 
| [[Sndlib]]
 
| A Sound library for the Wii
 
| Hermes
 
 
|-
 
|-
 
| [[SpriteManager]]
 
| [[SpriteManager]]
Line 78: Line 154:
 
| [[User:Untitled|Untitled]]
 
| [[User:Untitled|Untitled]]
 
|-
 
|-
| [http://frontier-dev.net/2008/05/virtual-file-system.html VFSlib]
+
| [https://web.archive.org/web/20100430061620/http://frontier-dev.net/2008/05/virtual-file-system.html]
 
| A simple library to read from different sources, like KDE's KIO
 
| A simple library to read from different sources, like KDE's KIO
| frontier
+
| [[User:frontier|frontier]]
 
|-
 
|-
 
| [http://www.megaupload.com/es/?d=L8UKN5O5 VKeyboard]
 
| [http://www.megaupload.com/es/?d=L8UKN5O5 VKeyboard]
Line 86: Line 162:
 
| pho
 
| pho
 
|-
 
|-
| [[WiiNetwork]]
+
| [http://www.plaatsoft.nl/wiibrew/wii-network-library WiiNetwork]
 
| Wii network threaded tcp/http library
 
| Wii network threaded tcp/http library
 
| [[User:dhewg|dhewg]] and [[User:wplaat|wplaat]]   
 
| [[User:dhewg|dhewg]] and [[User:wplaat|wplaat]]   
 +
|-
 +
| [http://www.plaatsoft.nl/wiibrew/wii-trace-module Tracing]
 +
| A simple C++ library to trace logs event to file
 +
| [[User:wplaat|wplaat]]
 
|}
 
|}
  
==Ported Libraries ==
+
== Ported Libraries ==
 
{| class="apptable sortable"
 
{| class="apptable sortable"
 
|-
 
|-
Line 98: Line 178:
 
! width="20%" | Ported by
 
! width="20%" | Ported by
 
|-
 
|-
| [[Media:Minizip.zip|Minizip]]
+
| [https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/wiichat/box2d-wii.zip Box2D]
| Simple unzip implementation using zlib
+
| 2d physics library
| Tantric
+
| [[User:Beardface|Beardface]]
 
|-
 
|-
| [[SpiderMonkey]]
+
| [https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/melpo/FreeImage-Wii.zip FreeImage]
| Port of Mozilla's C implementation of JavaScript
+
| Popular image library
| [[User:Mjbauer95|Mjbauer95]]
+
| melpo
 
|-
 
|-
| [[Media:FreeType-PPC.rar|FreeType]]
+
| [[LibELM]]
| TTF/Type1 font support
+
| A FAT driver using ELM FatFs
| Tantric
+
| [[User:SquidMan|SquidMan]]
 
|-
 
|-
| [http://wiichat.googlecode.com/files/box2d-wii.zip Box2D]
+
| [[libntfs]]
| 2d physics library
+
| NTFS driver using NTFS-3G
| Beardface
+
| shareese
|-
 
| [http://wiichat.googlecode.com/files/mxml-wii.tgz Mini-XML]
 
| XML library
 
| Beardface
 
 
|-
 
|-
 
| [[Lua for Wii]]
 
| [[Lua for Wii]]
Line 122: Line 198:
 
| Feesh!
 
| Feesh!
 
|-
 
|-
| [[SDL-Port]]
+
| [[Media:Minizip.zip|Minizip]]
| SDL port to wii with SDl Mixer, Image, gfx, and ttf
+
| Simple unzip implementation using zlib
| mindcry, devildante
+
| [[User:Tantric|Tantric]]
 +
|-
 +
| [[SDL_draw]]
 +
| SDL_draw port to wii
 +
| GCSX
 
|-
 
|-
| [[WiiPy]]
+
| [[SpiderMonkey]]
| Python for the Wii
+
| Port of Mozilla's C implementation of JavaScript
| comex, tehpola
+
| [[User:Mjbauer95|Mjbauer95]]
 
|-
 
|-
| [http://melpo.googlecode.com/files/FreeImage-Wii.zip FreeImage]
+
| [http://wiimp.googlecode.com/files/sqlite3.6.11_wii.zip SQLite]
| Popular image library
+
| SQLite database library
| melpo
+
| [[User:DrTwox|DrTwox]]
 
|-
 
|-
| [[Media:Libpngwii.zip|libpng]]
+
| [[TinyXML]]
| PNG support library
+
| Simple C++ parser for XML files (Wii port)
| mavakadachi
+
| [[User:Slappy|Slappy]]
 
|-
 
|-
| [[Media:libjpeg.zip|libjpeg]]
+
| [[WiiPy]]
| JPEG support library
+
| Python for the Wii
| Thomas G. Lane
+
| [[User:Comex|Comex]], [[User:tehpola|tehpola]]
 
|-
 
|-
| [[pthread]]
+
| [http://www.greenmaw.com/ahigerd/bullet-2.77-wii.zip Bullet-2.77] ([http://bulletphysics.org/ Homepage])
| Bad/Basic wrapper of pthread
+
| Professional 3D physics library
| mavakadachi
+
| [[User:ahigerd|ahigerd]]
 
|-
 
|-
| [http://wiimp.googlecode.com/files/sqlite3.6.11_wii.zip SQLite]
+
| [[libext2fs]]
| SQLite database library
+
| EXT2/EXT3 and EXT4 file systems driver
| [[User:DrTwox|DrTwox]]
+
| [[User:Dimok|Dimok]]
 
|}
 
|}
  
==Resources==
+
== Resources ==
 
{| class="apptable sortable"
 
{| class="apptable sortable"
 
|-
 
|-
Line 165: Line 245:
 
| Compress BMPs into includable header files
 
| Compress BMPs into includable header files
 
| [[User:Cthulhu32|Cthulhu32]]
 
| [[User:Cthulhu32|Cthulhu32]]
 +
|-
 +
| [[Code::Blocks]]
 +
| Code::Blocks is an IDE that can be used for cross compiling.
 +
| [http://www.codeblocks.org/ website]
 
|-
 
|-
 
| [[Colorhelper]]
 
| [[Colorhelper]]
Line 170: Line 254:
 
| [[User:Pinecone|Pinecone]]
 
| [[User:Pinecone|Pinecone]]
 
|-
 
|-
| [[Dollz3]]
+
| [[Dollz]]
 
| Compress DOL files
 
| Compress DOL files
 
| softdev
 
| softdev
Line 185: Line 269:
 
| App to aid creation of XML files for HBC
 
| App to aid creation of XML files for HBC
 
| [[User:Pinecone|Pinecone]]
 
| [[User:Pinecone|Pinecone]]
 +
|-
 +
| [[Title Lister]]
 +
| Lists version info for all titles stored on the Wii's internal NAND flash
 +
| [[User:bushing|bushing]]
 
|-
 
|-
 
| [[USB mass storage device tester]]
 
| [[USB mass storage device tester]]
Line 192: Line 280:
 
| [[Wii Homebrew Cursors]]
 
| [[Wii Homebrew Cursors]]
 
| Cursor images for Wii homebrew software
 
| Cursor images for Wii homebrew software
| drmr
+
| [[User:drmr|drmr]]
 
|-
 
|-
 
| [[WiiBuilder]]
 
| [[WiiBuilder]]
Line 199: Line 287:
 
|-
 
|-
 
| [[Wiifuse server]]
 
| [[Wiifuse server]]
| Server for [[Wiifuse|wiifuse]] to remotely mount the Wii's nand file system
+
| Server for [[wiifuse]] to remotely mount the Wii's nand file system
| dhewg
+
| [[User:dhewg|dhewg]]
 +
 
 
|}
 
|}
  
 
{{Navbox devtools}}
 
 
[[Category:Development]]
 
[[Category:Development]]

Latest revision as of 06:14, 18 April 2022

These Development Tools can help you develop homebrew applications and games for the Wii. The most important tool for Wii development is DevkitPPC, a port of the GCC toolchain along with supporting system libraries. The development tools listed below make development easier or to add additional functionality.

Core development

Title Description Author
devkitPPC GCC/MSys and associated utilities, standard C libraries based on newlib WinterMute
libogc Low-level libraries for interacting with Wii-specific sub-systems shagkur

Framework libraries

Title Description Author
Game Framework This is a basic framework to guide programmers in things like XML, Fonts, Images & the C++ Standard Template Library. Titmouse
GRRLIB GRRLib For GX Rgb Renderer Library, a simple C graphics library NoNameNo
libwiigui A GUI-making library, with a template included Tantric
libwiisprite A C++ sprite library which uses GX as its underlying rendering engine Chaosteil, (Feesh!)
MLlib Framework for graphics, input, audio, and so on. Friendly, easy coding Minishlink
MTek-GDL An easy to use object-oriented game development library ideal for simple and advanced Wii game projects TheCodingBrony
SDL Wii SDL port with SDL Mixer, Image, gfx, and ttf Numerous
WiiLÖVE Framework for making 2D Nintendo Wii homebrew games in Lua HTV04
Wire3D Object oriented multiplatform 3D engine for Wii and Windows (DirectX) antibyte
wit A C++ development toolkit for event-driven programming ahigerd

Libraries

Title Description Author
FreeTypeGX A wrapper class for libFreeType which renders a compiled FreeType parsable font into a GX texture Armin Tamzarian
GEMS Wifi A library to help with the initialization of wifi related stuff for Wii and DS. GEMISIS
gl2gx OpenGL for the Wii and/or Gamecube. noeska
GRRLIB-FreeType A easy extension on GRRLIB to support FreeType. Note: GRRLIB version 4.3.0 is supporting FreeType natively. wplaat
The HOMEbrew Menu Standard Library Quickly enable a HOME menu in your programs Arikado, Pinball Wizard, WarpedFlash
HomeMenu A graphics library independent Home Menu library written in C MetaFight
libCanvas Minimum runtime image drawing extension for libwiisprite henke37
libdolfs A read-only .dol-attached Ramdisk. Hornpipe2
Libmii Retrieves Mii data mdbrim
libnfs NFS driver for the Wii r-win
libNoise Noise generation library. Useful for terrain, and textures, among others. myrkr
LibProfile Code Profiler nuke
libsicksaxis PS3 controllers to the Wii xerpi
libosk An on screen keyboard Beardface
libusbkbd Easy access to the USB keyboard interface Cboomf
libwc24 Library for WiiConnect24. Yellows8
libwiilight Wii Disc slot light library Cboomf
Metaphrasis A static conversion class for transforming RGBA image buffers into various GX texture formats Armin Tamzarian
PNGU A collection of functions for handling .png files frontier
SpriteManager A easy to use sprite handler for libwiisprite (allow freetype text rendering) Untitled
[1] A simple library to read from different sources, like KDE's KIO frontier
VKeyboard Easy-to-Use Virtual Keyboard using the Wiimote. pho
WiiNetwork Wii network threaded tcp/http library dhewg and wplaat
Tracing A simple C++ library to trace logs event to file wplaat

Ported Libraries

Title Description Ported by
Box2D 2d physics library Beardface
FreeImage Popular image library melpo
LibELM A FAT driver using ELM FatFs SquidMan
libntfs NTFS driver using NTFS-3G shareese
Lua for Wii Extensible scripting language Feesh!
Minizip Simple unzip implementation using zlib Tantric
SDL_draw SDL_draw port to wii GCSX
SpiderMonkey Port of Mozilla's C implementation of JavaScript Mjbauer95
SQLite SQLite database library DrTwox
TinyXML Simple C++ parser for XML files (Wii port) Slappy
WiiPy Python for the Wii Comex, tehpola
Bullet-2.77 (Homepage) Professional 3D physics library ahigerd
libext2fs EXT2/EXT3 and EXT4 file systems driver Dimok

Resources

Title Description Author
BCX-BASIC Using BCX Basic to develop applications for the WII georgp24
BmpToZlibGC Compress BMPs into includable header files Cthulhu32
Code::Blocks Code::Blocks is an IDE that can be used for cross compiling. website
Colorhelper A short .h file which defines 19 colours and their hex codes Pinecone
Dollz Compress DOL files softdev
EasyIOS An app for browsing the device tree and trying out quick IOS commands without doing builds Beardface
gxtexconv GX Texture Converter for Win32 and Linux shagkur
HBCXMLGen App to aid creation of XML files for HBC Pinecone
Title Lister Lists version info for all titles stored on the Wii's internal NAND flash bushing
USB mass storage device tester Tests USB mass storage device reading and writing svpe
Wii Homebrew Cursors Cursor images for Wii homebrew software drmr
WiiBuilder Windows software to use for Wii homebrew development Crayon
Wiifuse server Server for wiifuse to remotely mount the Wii's nand file system dhewg