Virtual SD Card Guide

Dolphin can store data to a virtual SD card named sd.raw. By default, it will be created with the size of 128MB.

The virtual SD card has important use for homebrew apps on Dolphin. Project M and Mario Kart Wii custom tracks are two good examples, as some homebrew apps can only work using files stored on the SD card of the real hardware for which they were designed.

Creating a Virtual SD Card
It is recommend to create one with size at least 1GB for large homebrew apps, for example, Project M, and no more than 2GB for best compatibility as there are compatibility issues with some homebrew apps trying to run under an SDHC card on the real hardware.

Command Line and Executable Files
Download Virtual SD Card Maker then unzip it, and open one folder for your system. The file mksdcard will be used throughout this section. The user created batch file mksdcard.bat from \Windows\ is command-line interface (CLI), intended for users who favor graphical user interface (GUI).

Open the Command Prompt or Terminal then follow the supposed command line: mksdcard 2048M sd.raw
 * Drag and drop mksdcard file into the command window for the full directory pointing to mkscard.
 * Type 2048M for 2GB, or if desired, instead it with different size like 512M (512MB), 1024M (1GB), etc.
 * To replace the virtual SD Card, just drag and drop an existing sd.raw file into the command window, or use a different directory to create new.

The virtual SD card is located at (assuming default Global User Directory):
 * Linux: ./.dolphin-emu/Wii/sd.raw
 * OS X: ~/Library/Application\ Support/Dolphin/Wii/sd.raw
 * Windows: "%userprofile%\Documents\Dolphin Emulator\Wii\sd.raw" (quotation marks are necessary when copying it to Command Prompt)

Windows
The Windows users must use a third party software that can mount the virtual SD card. Speaking of which... ImDisk Virtual Disk Driver

Quick guide for mounting and editing the virtual SD card with the ImDisk Virtual Disk Driver:
 * 1) Right-click on sd.raw file then click "Mount as ImDisk Virtual Disk" from the context menu.
 * 2) Check box Removable media then hit "OK". The predefined drive letter and everything else will do just fine.
 * 3) *The virtual SD card will now appear as "Removable Disk" in which the native Explorer window can read and write in there.
 * 4) When done editing the virtual SD card, simply unmount it by right-click on the "Removable Disk" then click "Unmount ImDisk Virtual Disk" from the context menu.
 * 5) *The virtual SD card must be dismounted before using with Dolphin.

OS X
In Terminal window, type the following to mount the virtual SD card: hdiutil attach -imagekey diskimage-class=CRawDiskImage ~/Library/Application\ Support/Dolphin/Wii/sd.raw The virtual SD card can then be ejected through Finder when done being edited.

Linux
The virtual SD card can be edited by mounting it to a virtual disk. First create a directory: sudo mkdir /media/sdcard Then mount sd.raw to it: sudo mount -o defaults,umask=000 ./.dolphin-emu/Wii/sd.raw /media/sdcard When you are done, simply unmount it like this: sudo umount /media/sdcard

Dolphin Setting
Go to Options > Configure... > Wii > and enable Insert SD Card.

With Homebrew App
The external files used for the homebrew app must be stored within sd.raw and the homebrew app itself (boot.elf or boot.dol) must exist outside of it for Dolphin to load. Project M, for example, will load from SD root \projectm\ and Dolphin will need to launch Project M through \apps\projectm\boot.elf, NOT in the virtual SD card. For convenience's sake, it is ideal to have same copies paralleled between inside and outside of the virtual SD card.

Though, it is possible to start homebrew app from virtual SD card through homebrew exploits for Wii.

The homebrew app that was programmed to hack the Wii game will only work if a particular Wii game is set as the default ISO. Within the Dolphin game list, open context menu (right-click) on any Wii game and click Set as default ISO. Do this before loading a homebrew app with Dolphin.

For Netplay
Netplay will eventually desync if anything reads the virtual SD card that is not cloned, regardless of the same size it was created, and identical file/folder structures within its root. To prevent that, sd.raw must be copied from host's computer to joiners' computers before starting netplay.