Nintendo Gamecube/Wii (Dolphin)¶
Background¶
A Nintendo Gamecube/Wii emulator for Android, Windows, Mac and Linux, written in C++.
The dolphin-libretro core supports OpenGL, Vulkan, and Direct3D 11 rendering.
The dolphin-libretro core is licensed under
A summary of the licenses behind RetroArch and its cores can be found here.
Requirements¶
- OpenGL/Open GL ES 3.0 or higher for the OpenGL renderer.
- Vulkan for the Vulkan renderer.
- Direct3D 11 for the Direct3D 11 renderer.
Setup¶
To function properly, the dolphin-libretro core requires the Dolphin Sys
folder to be in the proper location. This directory contains Dolphin's database of per-game compatibility settings/hacks, without which many games experience bugs of varying severity.
After downloading the core within RetroArch, do one of the following options:
A. Installing from the 'Core System Files Downloader' (Easy/Automatic)¶
If your frontend version has Main Menu > Online Updater > Core System Files Downloader
then that's the easiest solution. Just download 'Dolphin.zip' from that menu and it will place the files where it needs them. You're all done!
B. Installing from the GitHub repo (Hard/Manual)¶
-
Get a copy of the Dolphin
Sys
folder. This can be done by downloading the current source code. We provide two methods: one using Git and one without.- If you have Git (if not, see the next option) Just clone the most recent version of the code by running:
- **If you don't have Git ** You can download a zip file of the source code with the following URL: https://github.com/libretro/dolphin/archive/master.zip You can then extract it.
-
After downloading/extracting the code, navigate into the resulting source tree folder. The
Sys
folder you need is located in Data/Sys. This is the folder we will need to move/copy. - Find RetroArch's system folder path
If you didn't change its default location, the
system
folder is located at the top level of your RetroArch installation folder. Whether you moved it or not, you can find the location of yoursystem
folder (along with any other folders RetroArch uses) by going to Settings > Directory or by locating the system_directory line in the RetroArch configuration file (usuallyretroarch.cfg
). - In the
RETROARCH_SYSTEM_FOLDER
, create a new folder named dolphin-emu and move/copy theSys
folder into it.
When everything is set up properly, the Sys
folder path should look something like this:
The dolphin-libretro core will now work much more reliably.
BIOS¶
The (optional) BIOS file goes in the directory RETROARCH_SAVES_FOLDER/dolphin-emu/User/GC/<USA or EUR or JAP>
, with the file name IPL.bin
for all regions. It is not necessary to provide a BIOS for most games, but certain titles (particularly those which make heavy use of the system fonts, like Star Fox Assault) can be unplayable without it.
To play the Gamecube BIOS animation at game launch, once you have the aforementioned BIOS file placed and named correctly, open the Dolphin.ini
file located in RETROARCH_SAVES_FOLDER/dolphin-emu/User/GameSettings/Config/
with a text editor and change the line SkipIPL = True
to SkipIPL = False
.
Extensions¶
Content that can be loaded by the dolphin-libretro core have the following file extensions:
- .elf
- .iso
- .gcm
- .dol
- .tgc
- .wbfs
- .ciso
- .gcz
- .wad
- .rvz
RetroArch database(s) that are associated with the dolphin-libretro core:
Features¶
Frontend-level settings or features that the dolphin-libretro core respects.
Feature | Supported |
---|---|
Restart | ✔ |
Saves | ✔ |
States | ✔ |
Rewind | ✔ |
Netplay | ✕ |
Core Options | ✔ |
RetroAchievements | ✕ |
RetroArch Cheats | ✕ |
Native Cheats | ✔ |
Controls | ✔ |
Remapping | ✔ |
Multi-Mouse | ✕ |
Rumble | ✕ |
Sensors | ✕ |
Camera | ✕ |
Location | ✕ |
Subsystem | ✕ |
Softpatching | ✕ |
Disk Control | ✕ |
Username | ✕ |
Language | ✔ |
Crop Overscan | ✕ |
LEDs | ✕ |
Directories¶
In addition to the aforementioned RETROARCH_SYSTEM_FOLDER/dolphin-emu
directory, the dolphin-libretro core also creates a folder structure similar to that used by the standalone Dolphin emulator in RETROARCH_SAVES_FOLDER/dolphin-emu/User
. In this structure, you can access/edit most of the same functionality you would find in the standalone Dolphin emulator and can even copy some files--such as GAME.ini
and save files--back and forth between the dolphin-libretro core and the standalone Dolphin emulator.
Geometry and timing¶
- The dolphin-libretro core's core provided FPS is 60 (for NTSC) / 50 (for PAL)
- The dolphin-libretro core's core provided sample rate can be either 32000 Hz or 48000 Hz depending on user configuration
- The dolphin-libretro core's base width is dependent on the 'Internal Resolution' core option
- The dolphin-libretro core's base height is dependent on the 'Internal Resolution' core option
- The dolphin-libretro core's max width is dependent on the 'Internal Resolution' core option
- The dolphin-libretro core's max height is dependent on the 'Internal Resolution' core option
- The dolphin-libretro core's core provided aspect ratio is 4/3.
Language¶
When the Language
core option is set to automatic, the default dolphin-libretro language setting will be pulled from RetroArch's Language setting.
Internal Cheats¶
Disabled by default. Internal cheats can be handled via the GAME.ini files, but they will not take effect unless internal cheats are enabled in the core options. While there is no automatic way to add cheats to the dolphin-libretro core, it can use a cheat file generated by the standalone Dolphin emulator using the following process:
- Open standalone Dolphin emulator and right-click your game > Properties.
- Look at the title bar and remember the ID of the game (for example
GFZE01
forF-Zero GX USA
). - Go to
Gecko Codes
tab and clickDownload Codes
. - Check the boxes for the cheats you want to use then you can close Dolphin.
- Navigate to
My Documents\Dolphin Emulator\GameSettings
by default for Windows (or~/.local/share/dolphin-emu/GameSettings
for Linux). - Copy the .ini file with the ID of the game and paste it in your
RETROARCH_SAVES_FOLDER/dolphin-emu/User/GameSettings
folder. - Start the game, go to Quick Menu > Core Options and turn ON "Internal Cheats".
- And finally Quick Menu > Close Content, restart the game and the cheats should now be active.
If you need to enable another cheat later for that game, you don't need to do the whole process all over again. You can simply edit the .ini file(s) in your RETROARCH_SAVES_FOLDER/dolphin-emu/User/GameSettings
folder structure with a text editor to add the cheat title under the line [Gecko_Enabled].
OpenGL¶
Dolphin's OpenGL renderer can be used by setting RetroArch's video driver to gl.
The common option for all operating systems is OpenGL, requiring hardware that supports OpenGL/Open GL ES 3.0 or higher. It is an older, pre-Vulkan API, slower than Vulkan but with better compatibility. If you encounter problems with other APIs, try this one.
Vulkan¶
Dolphin's Vulkan renderer can be used by setting RetroArch's video driver to vulkan.
This is the latest and fastest API currently. It is most recommended for demanding less of your CPU, thus being the fastest.
D3D11¶
Dolphin's Direct3D 11 renderer can be used by setting RetroArch's video driver to d3d11.
In some cases Direct3D 11 may offer better performance than OpenGL, especially on integrated Intel graphics.
Core options¶
The Dolphin core has the following option(s) that can be tweaked from the core options menu. The default setting is bolded.
- Renderer [dolphin_renderer] (Hardware|Software)
- Internal Resolution [dolphin_efb_scale] (x1 (640 x 528)|x2 (1280 x 1056)|x3 (1920 x 1584)|x4 (2560 x 2112)|x5 (3200 x 2640)|x6 (3840 x 3168))
- Widescreen (Wii) [dolphin_widescreen] (ON|OFF)
- WideScreen Hack [dolphin_widescreen_hack] (OFF|ON)
- Shader Compilation Mode [dolphin_shader_compilation_mode] (sync|a-sync Skip Rendering|sync UberShaders|a-sync UberShaders)
- Wait for Shaders before Starting [dolphin_wait_for_shaders] (OFF|ON)
- Progressive Scan [dolphin_progressive_scan] (ON|OFF)
- PAL60 [dolphin_pal60] (ON|OFF)
- Max Anisotropy [dolphin_max_anisotropy] (1x|2x|4x|8x|16x)
- Skip Presenting Duplicate Frames [dolphin_skip_dupe_frames] (ON|OFF)
- Scaled EFB Copy [dolphin_efb_scaled_copy] (ON|OFF)
- Force Texture Filtering [dolphin_force_texture_filtering] (OFF|ON)
- Store EFB Copies on GPU [dolphin_efb_to_texture] (ON|OFF)
- Texture Cache Accuracy [dolphin_texture_cache_accuracy] (Fast|Middle|Safe)
- GPU Texture Decoding [dolphin_gpu_texture_decoding] (OFF|ON)
- Fast Depth Calculation [dolphin_fast_depth_calculation] (ON|OFF)
- Bounding Box Emulation [dolphin_bbox_enabled] (OFF|ON)
- Disable EFB to VRAM [dolphin_efb_to_vram] (OFF|ON)
- Load Custom Textures [dolphin_load_custom_textures] (OFF|ON)
- CPU Core [dolphin_cpu_core] (JIT64/JITARM64|Interpreter|Cached Interpreter)
- CPU Clock Rate [dolphin_cpu_clock_rate] (100%|from 5% to 300%)
- Fastmem [dolphin_fastmem] (ON|OFF)
- Wiimote IR Mode [dolphin_ir_mode] (Right Stick controls pointer (relative)|Right Stick controls pointer (absolute)|Mouse controls pointer)
- Wiimote IR Vertical Offset [dolphin_ir_offset] (10|from -50 to 50)
- Wiimote IR Total Yaw [dolphin_ir_yaw] (15|from 0 to 100)
- Wiimote IR Total Pitch [dolphin_ir_pitch] (15|from 0 to 100)
- Rumble [dolphin_enable_rumble] (ON|OFF)
- Sensor Bar Position [dolphin_sensor_bar_position] (Bottom|Top)
- Wiimote Continuous Scanning [dolphin_wiimote_continuous_scanning] (OFF|ON)
- Use ports 5-8 for GameCube controllers in Wii mode [dolphin_alt_gc_ports_on_wii] (OFF|ON)
- Audio Mixer Rate [dolphin_mixer_rate] (32000|48000)
- DSP HLE [dolphin_dsp_hle] (ON|OFF)
- DSP Enable JIT [dolphin_dsp_jit] (ON|OFF)
- Language [dolphin_language] (English|Japanese|German|French|Spanish|Italian|Dutch|Simplified Chinese|Traditional Chinese|Korean)
- Internal Cheats Enabled [dolphin_cheats_enabled] (OFF|ON)
- OSD Enabled [dolphin_osd_enabled] (ON|OFF)
- Log Level [dolphin_log_level] (Info|Notice|Error|Warning)
Joypad¶
RetroPad Inputs | GameCube Controller | Wiimote | Wiimote (sideways) | Wiimote + Nunchuk | Classic Controller | Classic Controller Pro |
---|---|---|---|---|---|---|
B | B | 1 | B | B | B | |
Y | 2 | B | Z | Y | Y | |
- | - | 2 | - | - | ||
Start | + | + | 1 | + | + | |
D-Pad Up | D-Pad Up | D-Pad Up | D-Pad Up | D-Pad Up | D-Pad Up | |
D-Pad Down | D-Pad Down | D-Pad Down | D-Pad Down | D-Pad Down | D-Pad Down | |
D-Pad Left | D-Pad Left | D-Pad Left | D-Pad Left | D-Pad Left | D-Pad Left | |
D-Pad Right | D-Pad Right | D-Pad Right | D-Pad Right | D-Pad Right | D-Pad Right | |
A | A | 2 | A | A | A | |
X | 1 | A | C | X | X | |
- | ZL | L | ||||
Z | + | ZR | R | |||
L | Shake Nunchuk | L | ZL | |||
R | Shake | Shake | Shake Wiimote | R | ZR | |
L-Analog | ||||||
R-Analog | Home | Home | Home | Home | Home | |
X | Analog X | Tilt X | Tilt X | Nunchuk Stick X | Left Stick X | Left Stick X |
Y | Analog Y | Tilt Y | Tilt Y | Nunchuk Stick Y | Left Stick Y | Left Stick Y |
X | C-Stick X | Tilt X | Right Stick X | Right Stick X | ||
Y | C-Stick Y | Tilt Y | Right Stick Y | Right Stick Y | ||
NOTE: The 'L-Analog' and 'R-Analog' inputs are half-presses of the analog L and R buttons, respectively. These inputs are required to progress in some games, such as Super Mario Sunshine. |