Dolphin is a GameCube / Wii emulator, allowing you to play games for these two platforms on PC with improvements.
Go to file
Ryan Houdek 6d4867e36a Fixes missing objects on Adreno hardware.
This particular bug from our friends over at Qualcomm manifests itself due to our alpha testing code having a conditional if statement in it.
This is a fairly recent breakage this time around, it was introduced in the v95 driver which comes with Android 5.0 on the Nexus 5.

So to break this issue down; In our alpha testing code we have two comparisons that happen and if they are true we will continue rendering, but if
they aren't true we do an early discard and return. This is summed up with a fairly simple if statement.

if (!(condition_1 <logic op> condition_2)) { /* discard and return */ }

This particular issue isn't actually due to the conditions within the if statement, but the negation of the result. This is the particular issue that
causes Qualcomm to fall flat on its face while doing so.

I've got two simple test cases that demonstrate this.
Non-working: http://hastebin.com/evugohixov.avrasm
Working: http://hastebin.com/afimesuwen.avrasm

As one can see, the disassembled output between the two shaders is different even though in reality it should have the same visual result.

I'm currently writing up a simple test program for Qualcomm to enjoy, since they will be asking for one when I tell them about the bug.
It will be tracked in our video driver failure spreadsheet along with the others.
2014-10-29 06:21:03 -05:00
CMakeTests Fix LLVM 2014-10-28 01:36:27 +01:00
Data Merge pull request #1332 from Stevoisiak/bittosSettingsFile 2014-10-21 21:10:39 -04:00
docs Fix the capitalization of "GameCube" throughout the project. 2014-06-08 11:24:49 +09:00
Externals Fix OpenGL linker error on OS X 2014-10-22 00:34:31 -07:00
Installer Update dolphin-emu.spec 2014-10-03 04:42:00 +02:00
Languages Remove the 32-bit config platform from the VS solution and projects 2014-06-24 22:07:26 -04:00
Source Fixes missing objects on Adreno hardware. 2014-10-29 06:21:03 -05:00
Tools Add a tools that detects include cycles in the Dolphin codebase. 2014-02-22 21:01:39 +01:00
.gitignore Added IDEA/Clion project dir to .gitignore 2014-10-26 21:19:19 -07:00
.gitmodules Add Qt submodule for windows. 2014-09-15 15:07:42 -07:00
CMakeLists.txt Fix LLVM 2014-10-28 01:36:27 +01:00
Contributing.md Clarify the preferred prefix form to be within loops in the style guide 2014-07-27 07:45:34 -04:00
license.txt Engrish. :) 2008-12-01 09:49:24 +00:00
Readme.md Capitalized Dolphin 2014-10-18 13:16:02 -04:00

Dolphin - A GameCube / Triforce / Wii Emulator

Homepage | Project Site | Forums | Wiki | Issue Tracker | Coding Style | Transifex Page

Dolphin is an emulator for running GameCube, Triforce and Wii games on Windows/Linux/OS X systems and recent Android devices. It's licensed under the terms of the GNU General Public License, version 2 (GPLv2).

Please read the FAQ before use.

System Requirements

  • OS
    • Microsoft Windows (Vista or higher).
    • Linux or Apple Mac OS X (10.7 or higher).
    • Unix-like systems other than Linux might work but are not officially supported.
  • Processor
    • A CPU with SSE2 support.
    • A modern CPU (3 GHz and Dual Core, not older than 2008) is highly recommended.
  • Graphics
    • A reasonably modern graphics card (Direct3D 10.0 / OpenGL 3.0).
    • A graphics card that supports Direct3D 11 / OpenGL 4.4 is recommended.

Installation on Windows

Use the solution file Source/dolphin-emu.sln to build Dolphin on Windows. Visual Studio 2013 is a hard requirement since previous versions don't support many C++ features that we use. Other compilers might be able to build Dolphin on Windows but have not been tested and are not recommended to be used.

An installer can be created by using the Installer_win32.nsi and Installer_x64.nsi scripts in the Installer directory. This will require the Nullsoft Scriptable Install System (NSIS) to be installed. Creating an installer is not necessary to run Dolphin since the Build directory contains a working Dolphin distribution.

Installation on Linux/OS X

Dolphin requires CMake for systems other than Windows. Many libraries are bundled with Dolphin and used if they're not installed on your system. CMake will inform you if a bundled library is used or if you need to install any missing packages yourself.

Build steps:

  1. mkdir Build
  2. cd Build
  3. cmake ..
  4. make

On OS X, an application bundle will be created in ./Binaries.

On Linux, it's strongly recommended to perform a global installation via sudo make install.

Uninstalling

When Dolphin has been installed with the NSIS installer, you can uninstall Dolphin like any other Windows application.

Linux users can run cat install_manifest | xargs -d '\n' rm from the build directory to uninstall Dolphin from their system.

OS X users can simply delete Dolphin.app to uninstall it.

Additionally, you'll want to remove the global user directory (see below to see where it's stored) if you don't plan to reinstall Dolphin.

Command line usage

Usage: Dolphin [-h] [-d] [-l] [-e <str>] [-b] [-V <str>] [-A <str>]

  • -h, --help Show this help message
  • -d, --debugger Opens the debugger
  • -l, --logger Opens the logger
  • -e, --exec= Loads the specified file (DOL,ELF,WAD,GCM,ISO)
  • -b, --batch Exit Dolphin with emulator
  • -V, --video_backend= Specify a video backend
  • -A, --audio_emulation= Low level (LLE) or high level (HLE) audio

Available DSP emulation engines are HLE (High Level Emulation) and LLE (Low Level Emulation). HLE is fast but often less accurate while LLE is slow but close to perfect. Note that LLE has two submodes (Interpreter and Recompiler), which cannot be selected from the command line.

Available video backends are "D3D" (only available on Windows Vista or higher), "OGL". There's also "Software Renderer", which uses the CPU for rendering and is intended for debugging purposes, only.

Sys Files

  • totaldb.dsy: Database of symbols (for devs only)
  • GC/font_ansi.bin: font dumps
  • GC/font_sjis.bin: font dumps
  • GC/dsp_coef.bin: DSP dumps
  • GC/dsp_rom.bin: DSP dumps

The DSP dumps included with Dolphin have been written from scratch and do not contain any copyrighted material. They should work for most purposes, however some games implement copy protection by checksumming the dumps. You will need to dump the DSP files from a console and replace the default dumps if you want to fix those issues.

Folder structure

These folders are installed read-only and should not be changed:

  • GameSettings: per-game default settings database
  • GC: DSP and font dumps
  • Maps: symbol tables (dev only)
  • Shaders: post-processing shaders
  • Themes: icon themes for GUI
  • Wii: default Wii NAND contents

User folder structure

A number of user writeable directories are created for caching purposes or for allowing the user to edit their contents. On OS X and Linux these folders are stored in ~/Library/Application Support/Dolphin/ and ~/.dolphin-emu respectively. On Windows the user directory is stored in the My Documents folder by default, but there are various way to override this behavior:

  • Creating a file called portable.txt next to the Dolphin executable will store the user directory in a local directory called "User" next to the Dolphin executable.
  • If the registry string value LocalUserConfig exists in HKEY_CURRENT_USER/Dolphin Emulator and has the value 1, Dolphin will always start in portable mode.
  • If the registry string value UserConfigPath exists in HKEY_CURRENT_USER/Dolphin Emulator, the user folders will be stored in the directory given by that string. The other two methods will be prioritized over this setting.

List of user folders:

  • Cache: used to cache the ISO list
  • Config: configuration files
  • Dump: anything dumped from Dolphin
  • GameConfig: additional settings to be applied per-game
  • GC: memory cards and system BIOS
  • Load: custom textures
  • Logs: logs, if enabled
  • ScreenShots: screenshots taken via Dolphin
  • StateSaves: save states
  • Wii: Wii NAND contents

Custom textures

Custom textures have to be placed in the user directory under Load/Textures/[GameID]/. You can find the Game ID by right-clicking a game in the ISO list and selecting "ISO Properties".