From WiiBrew
Jump to navigation Jump to search
Author(s)Contributors (GitHub)
TypePC utility
LicenseGPLv2+ (since 2015)

Dolphin emulates the Wii and GameCube consoles, as well as various accessories for and derivatives of said consoles. It runs Wii and GameCube software with a x86_64 JIT (Windows, Linux, FreeBSD, macOS) and AArch64 (Android). On June 2008, Dolphin's source was released under the GPLv2 license and is currently under active development.

Obtaining a build

Recommended builds provides a buildbot for Windows and OS X builds from Git and a FAQ to help users.

Building from source

Follow the instructions to build under Windows, Linux or macOS. Windows and macOS users can use the buildbot to avoid compiling their own source code, but Linux users have to build it themselves in order to use Dolphin.

Usage with Homebrew

From the menu, File -> Open.... Select the elf or dol file you would like to run.

Note that you can cause the screen to be rendered to the main Dolphin window with the GraphicsRender to main window option.

General Notes / Disclaimer

  • Dolphin is useful to homebrew as it allows developers to test code on a PC before running it on real hardware. However, Dolphin does not support all the features of the Wii and some problems may be experienced running homebrew.
  • You may want to enable the MMU for more accurate emulation.
  • Dolphin hooks the typical printf functions when it is able to determine their location. If you are running an elf file (with symbols), and cannot see your debug output, this is could be the reason. Either strip your elf, run the dol, or modify dolphin so this HLE does not take place. The other reason could be that you are writing directly to the XFB (libogc's console output does this). In this case, you additionally need to enable the Graphics->Hacks->External Frame Buffer setting and check Real.
  • Homebrew applications may hang while initialising sound, i.e. on calling ASND_Init(). A work around would be to skip sound initialisation, so no sound, but there's no need to remove other sound calls in your code. Using the DSP LLE audio backend will improve sound accuracy, and may help avoid hangs.
  • You can find an SD Card image in something like User\Documents\Wii\sd.raw, kept in the Dolphin folder. If missing it may create it on the first run, you can add things to the sd.raw image with a tool such as winimage. On Linux, it can be simply mounted directly.
  • When using code that makes use of the SD Card make sure you use the full path name i.e. (sd:/apps/MyApp/gfxfiles/Image.png); using a relative path (/gfxfiles/Image.png) will not work as your application is launching from an unknown location.
  • When not using libogc, Dolphin may run the app in GameCube mode. This can be fixed by inserting the u32 0x7c13fba6 in a text segment. This instruction does not need to run, but it needs to be in a place that causes it to exist in the binary.


Note: This section is pretty outdated

The following was tested with examples from devkitPro svn r4455, running on Windows 7 (64bit), Dolphin svn r6430. Apps run with default settings unless noted otherwise. These results are provided so that one can quickly realize which options are needed for common tasks - such as using SD support, homebrew text console, etc.

Title Notes
examples\wii\audio\* Work acceptably. Requires DSP LLE plugin to be used. Audio may have artifacts.
examples\wii\devices\network\sockettest Does not work. Socket is not setup successfully.
examples\wii\devices\usbgecko\gdbstub Works correctly. Requires USBGecko device selected. Sets up a TCP server to accept connections (instead of a serial device). The TCP port used will be displayed on-screen when dolphin begins emulation.
examples\wii\devices\usbkeyboard\basic_stdin Works correctly. Requires Graphics->Hacks->External Frame Buffer->Real to be checked. Requires Config->Wii->Connect USB Keyboard to be enabled.
examples\wii\filesystem\directory Works correctly. Requires Graphics->Hacks->External Frame Buffer->Real to be checked. Requires Config->Wii->Insert SD Card to be enabled.
examples\wii\graphics\gx\gxSprites Works correctly.
examples\wii\graphics\gx\neheGX\lesson1-7 Work correctly.
examples\wii\graphics\gx\neheGX\lesson8 Texturing is broken.
examples\wii\graphics\gx\triangle Works correctly.
examples\wii\template Works correctly. Requires Graphics->Hacks->External Frame Buffer->Real to be checked.