Devkitppc setup (Windows)

From WiiBrew
Jump to: navigation, search

Introduction

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

  • Assuming you installed Programmer's Notepad through the installer, double click the .pnproj file in your new project.
  • Click on Tools->make or use the ALT+1 key combination
  • The output window at the bottom will show the build progress

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:

"((void(*)())(0x80001800))();"


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()":

PAD_ScanPads();

int buttonsDown = PAD_ButtonsHeld(0);

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

loader();

}

Roto 17:25, 24 March 2008 (PDT)

Links

devkitPro's 'Getting Started' Wiki