User:PhoenixTank/Setting up Eclipse for Wii Development

From WiiBrew
< User:PhoenixTank
Jump to navigation Jump to search

The Eclipse Platform is a modern open source IDE with a built-in debugger GUI and support for several programming languages via plug-ins. Plug-ins can also be used to extend functionality. For many, programmer's notepad and insight will suffice, but others may find the combination a little out of date. This wiki will guide you through each stage in the setup process, but assumes that you are using Windows, have already installed DevkitPro and are relatively familiar with the concepts of developing Wii Homebrew. I hope it is of use to others ~ PhoenixTank | talk | contribs |

Requirements

Getting Started

  • Extract the eclipse zip to a directory of your choice. I recommend C:\eclipse\ N.B. There is no installer. Create yourself a shortcut to C:\eclipse\eclipse.exe, for convenience.
  • Fire up Eclipse, and if all goes to plan you should be greeted with a box asking you to select a workspace. Pick wherever you like, but for the sake of this guide, we will choose C:\WiiDev\projects\. You should choose to make this the default if you aren't interested in using Eclipse for any other development projects.
  • You are greeted with the Welcome splash screen. There are some tutorials on using Eclipse, but leave them for now. Head to File > New > C++ project (Or C Project, if you prefer, but this guide will reference C++ primarily)
  • In the dialogue box, name your project "HelloWorld" and chose Makefile ¬ Empty Project, then hit Finish.
  • Head to the workbench by clicking the far right arrow icon.
  • You now see the main IDE with Project Explorer, File Editor, Console and others panes.
  • There will be an error and a probably warning in the problems pane. Don't worry about them for now, and open C:\devkitPro\examples\wii\template\ in Windows Explorer. Select the Source folder and makefile, and copy them to clipboard. Return to Eclipse, right click the HelloWorld project in Project Explorer, and paste. The files should now be a part of your project.
  • Head to Projects > Properties, or do the same from the right click menu of helloworld. Click C/C++ Build then choose the behaviour tab. Here, change the value of Build (Incremental Build) to build, then hit OK.
  • With default settings, Eclipse will immediately build your project. The error should no longer be there to pester you.
  • If you have a warning like: Error launching external scanner info generator (gcc -E -P -v -dD C:/WiiDev/projects/.metadata/.plugins/org.eclipse.cdt.make.core/specs.cpp) then the easiest way to fix this is to add C:\devkitPro\devkitPPC\powerpc-gekko\bin; to the start of your path environment variable.

Custom Make Targets

On the right hand side of Eclipse you have a panel containing the script outline and make targets. This is useful for adding specific make commands to run and this is equivalent to the project tools in Programmer's Notepad. Build and Clean are already built in to the project menu, but custom make targets are useful. As an example, we are going to set up a run/wiiload shortcut. This assumes that you are still using the same makefile & template.c

  • Bring the Make Target panel into focus if it is not already, then click the folder with a slash through it (Hide empty folders).
  • Right click the project name and choose "Add Make Target".
  • Enter Wiiload (or another name) into the first box, and "run" in the second box and hit create.

Provided you have wiiload set up correctly, double clicking this will allow you to easily send your most recently compiled .dol/.elf to your Wii.

More Settings

Setting Environment Variables

Head to Control Panel, then (using classic view) System. Click the Advanced tab, then Environment Variables. After making changes here you may need to restart.

WIILOAD

This variable allows the wiiload program to send your .dol/.elf file over the network to be loaded by HBC (or other supporting loaders). Far simpler than removing a SD card and updating the file every time you want to test. Alternatively, there are GUI versions of Wiiload that do not require the variable to be set.

Under System Variables, add a new variable named "WIILOAD", with the value "tcp:xxx.xxx.xxx.xxx" where "xxx.xxx.xxx.xxx" signifies the IP of your Wii. For me, the value is "tcp:192.168.0.5", and thanks to my router, I can force my Wii to use that IP every time it connects (Look for something like "Address Reservation" in the router settings)

Path

This variable contains a list of paths, separated by a semi colon (;). The length and contents will vary but a fresh Windows XP install looks something like this:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem

The devkitpro installer should add "c:\devkitPro\msys\bin;" to the start, but you will likely have other paths added by other programs too. Be careful not to remove any of the existing paths.

Enabling Auto Complete

Unfortunately, auto complete (known as "content assist" in Eclipse), needs a helping hand in order to work correctly. Open your project's properties, head to C/C++ General, then Paths and Symbols. You then need to add the following paths, making sure to select "Add to all languages". Note that the folder names you need may vary, such as the 4.2.4 being higher or lower, and of course you need to correctly alter the paths to point to the location that you installed devkitPro to.

C:\devkitPro\libogc\include\
C:\devkitPro\devkitPPC\lib\gcc\powerpc-gekko\4.2.4\include\
C:\devkitPro\devkitPPC\powerpc-gekko\include\
C:\devkitPro\devkitPPC\powerpc-gekko\include\c++\4.2.4\
C:\devkitPro\devkitPPC\powerpc-gekko\include\c++\4.2.4\powerpc-gekko\

If you have subfolders within your project that contain source files, you may also need to add a path to your source folder. This should set up the majority of the locations for auto complete to work with. Default triggers are "." , "->" and "::" , but ctrl + space will also bring up auto complete.

Some Preferences

Eclipse is quite customisable, but the large amount of settings can be a struggle to wade through, in order to find what you are looking for. I have some personal preferences that may be of interest to others. From Window > Preferences:

  • General ¬ Workspace. Build automatically unchecked, Save automatically before build checked.
  • C/C++ ¬ Code Style. I use BSD/Allman, but the other most common styles are there too.
  • C/C++ ¬ Editor ¬ Content Assist. Drop the delay to 200 ms.
  • C/C++ ¬ New CDT project wizard ¬ Makefile Project : Behaviour tab. Uncheck Build on resource save, change value of Build (Incremental Build) to build

Debugging

*****This section is still being worked on, and is incomplete.*****

The Eclipse CDT has a nice integrated debugging GUI (which is half of the reason for this tutorial), but unfortunately does not support remote C/C++ applications "out of the box". To get around this Eclipse needs to be extended, and we are lucky enough to have a plug-in available to us. [3]

Zylin Plug-in

From Eclipse, head to Help > Software Updates.

  • On the Available Software tab click Add Site... , enter "http://opensource.zylin.com/zylincdt" and Hit OK. (You may need to add the zylin site via the "manage sites" section)
  • Next, check the box in the list next to "http://opensource.zylin.com/zylincdt" and hit Install... It will now go through the motions of downloading relevant files, and another box will pop up, letting you confirm the changes.
  • Hit next, accept the terms, then finish. It will install, and ask you if you want to restart Eclipse, and I suggest you do.

Debug Method & Settings

In order to debug a Wii application, you have to connect your debugger to it somehow. Your options consist of the use of a USB Gecko or a libogc wifi patch. Either way, the base setup is the same.

  • Head to Run > Debug Configurations. Select Zylin Embedded debug (Native) and create a new configuration.
  • Name it GDB (or other relevant name), and enter the path C:\devkitPro\devkitPPC\bin\powerpc-gekko-gdb.exe.

USB Gecko

I cannot provide instructions for this section as I have no USB Gecko (yet), but the instructions here should provide most of the relevant information.

Wifi Debugging Patch

AKA "The poor man's USB Gecko". This takes a little work to implement, but at a total cost of £0, who can complain?

You'll need to be familiar with checking out from a SVN, patching source files, and compiling libogc from source.