Devkitppc setup (Windows)

From WiiBrew
Jump to navigation Jump to search


This tutorial aims to:

  • Show you how to setup the devkitppc development enviroment on a Windows computer
  • Run a hello world example on the include Gcube emulator
  • Set you on the road to creating your own homebrew software to be loaded with the Twilight Hack

Installing devkitpro

  • Goto [[1]] and download the latest Windows installer.
  • Let it install to the C:\devkitPro\ to make it easier to follow the tutorial for now.
  • When installing it, you can deselect devkitarm and devkitpsp
  • Click next until it finishes installing

Setup your project folder

Setup your project folder

  • Under no circumstances should you place projects within the devkitPro folder. The windows updater can and will overwrite/delete your files.
  • Create a new folder outside the devkitPro folder, c:\projects\wii for example. This path should not contain spaces.
  • Copy the folder C:\devkitPro\examples\wii\template\ to this new directory and rename it to "helloworld" so that the full path is c:\projects\wii\helloworld\

Compile the Hello World Example

  • Run msys.bat again.
  • type "ls" and press enter to see the directories in your home directory
  • type "cd helloworld" and press enter to switch into the helloworld directory
  • type "make" and press enter to complile the example

Run the Hello World Example

  • Now, browse to the helloworld folder. There should be a helloworld.dol file here now.
  • Open this file, and when windows asks what program to use, tell it to use C:\devkitpro\emulators\gcube\gcube.exe

The resulting dol should be compatible with the Twilight Hack

Some Code snippets

Here are some code snippets, that can be very usefully (all without quotes!):

Reload .elf:


Return to Loader (i.e. USBGecko with geckoloader) on START+Z-Trigger:

  • Add this to your definitions on the top of your source file:

typedef void (*Loader_Entry)(void);

Loader_Entry loader = (Loader_Entry)0x80001800;

  • Add this in your main while loop, under "VIDEO_WaitVSync()":


int buttonsDown = PAD_ButtonsHeld(0);

if( (buttonsDown & PAD_TRIGGER_Z) && (buttonsDown & PAD_BUTTON_START)) {



Roto 17:25, 24 March 2008 (PDT)


devkitPro's 'Getting Started' Wiki