Dolphin Core Settings and what they do: (Right click a game and go to properties)

When you right click a game from your game list and go to properties you will be on the Game Config Tab. And you will see a list of Core Settings. These settings are manually set for every game, but you may be able to improve performance of any one game by turning on and off certain options. Here is an explanation as to what each one is and what they do:

​

Enable Dual Core: (Used to access all of your computer's cores)

​

Provides a significant speedup on modern systems. Recommended on most titles, though may cause issues like crashing or graphic issues on some titles. Refer to this page for a list of titles that require disabling Dual Core. For example Skies of Arcadia Legends Requires it to be off so the text in the pause menu won't look all glitched.

​

https://wiki.dolphin-emu.org/index.php?title=Category:Enable_Dual_Core_(Config_Required)

​

Enable Idle Skipping (Has to do with sound)

​

Has to do with sound, note: In more recent builds of Dolphin it is always turned on and even the option to turn it off has been removed. Maybe it's best to keep it on?

​

JosJuice (One of the Dolphin Developers):

​

"Idle skipping is always turned on, starting with Dolphin 5.0-948. We've only removed the ability to turn it off, not the feature itself."

​

Enable MMU: (Involves RAM usage)

​

The Memory Management Unit, or MMU, is responsible for quickly giving games access to data and code. Rather than directly accessing available RAM, games interface with virtual memory which is then translated to physical memory by the MMU. This can be done in two ways, with Block Address Translations (BATs) for huge portions of memory or the page tables for small fine-grained mappings.

​

The games are given access to virtual memory instead of real memory for several reasons. First of all, it gives the CPU an opportunity to cache accesses, greatly speeding up the efficiency of accessing often used values. Secondly, the GameCube only has 24MB (and some specialized areas) of RAM across a 4GB address space, meaning most memory addresses have no RAM backing them! If a game were to access a real memory address with no backing memory, it'd get garbage or even crash! By using virtual memory, the MMU can throw an exception giving the game a way to handle the situation or provide valuable feedback to developers on what went wrong.

​

Dolphin is able to emulate the MMU with several degrees of accuracy based on theories of how the game is going to behave.

​

Skip DCBZ clearing (Involves memory)

​

The Data Cache Block Set to Zero (dcbz) instruction in Power ISA establishes a cache block in the data cache and fills it with zero bytes without accessing memory if the effective address of the dcbz is marked cacheable and non-write-through. This instruction is often used to efficiently zero large sections of memory without first fetching that memory into the cache. In a memory copy routine, the dcbz instruction is used to simply establish a destination data block in the cache so that subsequent store instructions result in cache hits. In addition, unnecessary loads from the destination memory are eliminated.

​

Enable FPRF (very few games use this)

​

Most floating-point operations on the Wii/GC set result flags based on the result of the operation. As most games don't seem to care about this feature, it was only implemented in the interpreter, and the JIT would fallback to the interpreter for result flags in the few games that required them. But one well known engine aggressively uses FPRF in a way that breaks if they're not emulated: none other than the one behind the Super Monkey Ball series and F-Zero GX.

​

Falling back to the interpreter in order to support this is incredibly slow.

Adding FPRF to the JIT avoids the interpreter fallback and the speed hit. POVRay, the homebrew commonly used for benchmarking Dolphin, is almost entirely floating point operations, so it shows the benefits very clearly. Of course no game uses FPRF as much as POVRay, so the speed benefits will not be as extreme in games as it is in POVRay.

​

There is still a small performance hit however, and since very few games care about this, for now FPRF is not going to be enabled by default. However, if you encounter a game with some odd problems that don't occur in interpreter, try adding "EnableFPRF=true" to the game's INI and see if that fixes the issue. Thanks to this change, you can easily try it for extended periods of time without impacting that game's playability.

​

Synchronize GPU thread (Should be used in conjunction with Enable Dual Core)

​

SyncGPU is a speed hack for dual core mode to allow games to get around dual core glitches without having to use single core. Usually not much faster than single core mode

​

Speed up Disc Transfer Rate (Can improve load times)

​

Disk transfer rate – the speed at which information is transmitted to or away from a disk drive. The speed depends on the location of the track; data stored on the outer tracks of the disk is transferred at a faster rate as compared to that stored on the inner tracks. The rate is expressed in bits or bytes per second.

​

From user u/GrandCategory on Reddit:

"I haven't seen much discussion about this option. I enabled it and almost all the games I've tried have drastically improved or even near instant load times. I assume it can cause issues in some games though? All the ones I've tried seem to work fine at least."

​

From user TSLPrescott on Reddit:

​

"I imagine it is an option in order to preserve emulation accuracy, instead of it being the default, just like the optional CPU overclock. They usually don't cause any issues. If the Dolphin Compatibility Wiki says to turn it off I would, but otherwise you'll probably be fine."

​

DSP HLE emulation VS. LLE (for sound issues)

​

HLE (High Level Emulation): HLE works by using a DSP engine created by the developers from studying the real DSP. DSP HLE is with almost no overhead and does not require any additional files, however it may have some problems in some games. 3.5-78 and 3.5-1154 corrected most of the problems in the AX ucode, the most common audio microcode on the GameCube and Wii. 4.0-7286 and New-Zelda-HLE rewrote the Zelda ucode, improving it for the remaining games. Currently DSP HLE will have perfect sound in most games. However, some issues may remain, and all sound issues need to be confirmed with LLE.

​

DSP HLE is the fastest DSP Emulator Engine. It is very reliable, and only a few titles still have problems with it.

​

LLE (Low Level Emulation): LLE uses DSP ROM files to emulate the DSP's hardware behavior. This unfortunately requires a lot more processing power, but provides perfect sound in nearly all games. As of 3.5-1031 Dolphin includes a developer-created DSP ROM which allows DSP LLE to function without dumping LLE files from a console. Its compatibility is very good, but it will have errors that a DSP ROM from a console does not have.

For the absolute best audio, DSP ROM files should be dumped from a console. There are several ways to dump DSP files, but the easiest method is to use DSPSpy on a Wii with the Homebrew Channel installed. For details on other methods to dump DSP files, go to the forum thread.

​

​

Key notes:

These games require Enable Dual Core to be turned off:

​

Turning on Synchronize GPU thread and Speed up Disc Transfer Rate with all others turned off might improve performance in The Legend of Zelda: Ocarina of Time.

Posted Dec 11, 2021, 4:21 PM UTC · edited

46
Loading comments…