GameINI: Difference between revisions

Jump to navigation Jump to search
2,551 bytes added ,  19 January 2022
I haven't seen this documented anywhere. PR #2533 implemented it and #4317 was an attempt to expose it to the UI
(I haven't seen this documented anywhere. PR #2533 implemented it and #4317 was an attempt to expose it to the UI)
(30 intermediate revisions by 10 users not shown)
Line 1: Line 1:
You can configure settings per game through their GameINI. GameINI is a plain text file with game's GameID as its file name and INI as its file extension. It can be retrieved from game's properties, right-click the game from game list then choose '''Properties''' from the context menu, then click on the '''Edit Config''' button and edit the empty text file that pops up. When editing, carefully arranged line, headings, and capitalization are important.
You can configure settings per game through their GameINI. GameINI is a plain text file with game's [[GameIDs|GameID]] as its file name and INI as its file extension. It can be retrieved from game's properties; right-click the game from game list then choose '''Properties''' from the context menu, then click on the '''Edit Config''' button and edit the empty text file that pops up. When editing, carefully arranged line, headings, and capitalization are important.


For controller settings, go to [[GameINI (Controller Settings)]].
For controller settings, go to [[GameINI (Controller Settings)]].
Line 18: Line 18:


== [Core] ==
== [Core] ==
The following entries go under [Core] section of the GameINI.
The following entries go under [Core] (or [Dolphin.Core]) section of the GameINI.


=== Dual Core ===
=== Dual Core ===
Line 33: Line 33:
=== CPU Emulator Engine ===
=== CPU Emulator Engine ===
*<code>CPUCore = 0</code> to set the CPU emulator engine to "Interpreter".
*<code>CPUCore = 0</code> to set the CPU emulator engine to "Interpreter".
*<code>CPUCore = 1</code> to set the CPU emulator engine to "JIT".
*<code>CPUCore = 1</code> to set the CPU emulator engine to "JIT x64".
*<code>CPUCore = 2</code> to set the CPU emulator engine to "JITIL". Removed (will do nothing) in {{revision|5.0-3792}} and later.
*<code>CPUCore = 2</code> to set the CPU emulator engine to "JITIL". Removed (will do nothing) in {{revision|5.0-3792}} and later.
*<code>CPUCore = 4</code> to set the CPU emulator engine to "JIT ARM64".
*<code>CPUCore = 5</code> to set the CPU emulator engine to "Cached Interpreter".
*<code>CPUCore = 5</code> to set the CPU emulator engine to "Cached Interpreter".


Line 71: Line 72:
Implemented in {{revision|5.0-2302}} and later.
Implemented in {{revision|5.0-2302}} and later.
*<code>OverclockEnable = True</code> or <code>False</code> to enable and disable "CPU Overclock" respectively.
*<code>OverclockEnable = True</code> or <code>False</code> to enable and disable "CPU Overclock" respectively.
*<code>Overclock = 1.0</code> translates to "100%" CPU clock, greater in value is considered overclocking and smaller in value is considered underclocking.
*<code>Overclock = 1.0</code> translates to "100%" CPU clock. The value of Overclock can be any float, and it acts as a multiplier; 0.5 is 50%, 1.0 is 100%, 1.5 is 150%, 2.0 is 200%, etc.


=== Synchronize GPU Thread ===
=== Synchronize GPU Thread ===
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.
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.
*<code>SyncGPU = True</code> or <code>False</code> to enable and disable the "Synchronize GPU thread" respectively.
*<code>SyncGPU = True</code> or <code>False</code> to enable and disable the "Synchronize GPU thread" respectively. Even with this setting set to false, Dolphin will still synchronize the threads during idle skipping.
On Android, the Synchronize GPU thread setting instead provides three choices. To set the same configurations through the GameINI (which also works on non-Android versions) use:
*<code>SyncGPU = True</code> and <code>SyncOnSkipIdle = True</code> for "Always"
*<code>SyncGPU = False</code> and <code>SyncOnSkipIdle = True</code> for "On idle skipping"
*<code>SyncGPU = False</code> and <code>SyncOnSkipIdle = False</code> for "Never"
 
=== GPU Overclock ===
*<code>SyncGpuOverclock= 1.0</code> translates to "100%" GPU clock. The value of Overclock can be any float, and it acts as a multiplier; 0.5 is 50%, 1.0 is 100%, 1.5 is 150%, 2.0 is 200%, etc. This setting has an effect only if SyncGPU is enabled or Dual Core is disabled. <!-- Deterministic dual core might work too -->


=== Speed Up Disc Transfer Rate ===
=== Speed Up Disc Transfer Rate ===
Line 82: Line 90:


=== Dualcore Determinism ===
=== Dualcore Determinism ===
*<code>GPUDeterminismMode = fake-completion</code> or <code>none</code> to enable and disable "Deterministic dual core" respectively.
*<code>GPUDeterminismMode = fake-completion</code> or <code>none</code> to enable and disable "Deterministic dual core" respectively. <code>GPUDeterminismMode = auto</code> will only enable "Deterministic dual core" during Netplay or movie recording/playback.


=== Memory Management Unit (MMU) ===
=== Memory Management Unit (MMU) ===
Line 105: Line 113:
  4 = Italian
  4 = Italian
  5 = Dutch
  5 = Dutch
== [Controls] ==
See [[GameINI (Controller Settings)]]


== [Video_Settings] ==
== [Video_Settings] ==
The following entries go under [Video_Settings] section of the GameINI.
The following entries go under [Video_Settings] (or [Graphics.Settings]) section of the GameINI.


=== Internal Resolution ===
=== Internal Resolution ===
Line 115: Line 126:
=== Shader Compilation ===
=== Shader Compilation ===
*<code>ShaderCompilationMode = 0</code>
*<code>ShaderCompilationMode = 0</code>
<pre>0 = Synchronous
<pre>0 = Specialized (Default)
1 = Synchronous (Ubershaders)
1 = Exclusive Ubershaders
2 = Asynchronous (Ubershaders)
2 = Hybrid Ubershaders
3 = Asynchronous (Skip Drawing)</pre>
3 = Skip Drawing</pre>


=== Compile Shaders Before Starting ===
=== Compile Shaders Before Starting ===
Line 128: Line 139:
*<code>SafeTextureCacheColorSamples = 512</code> -> Texture Cache Accuracy "Middle", the middle option on the slider.
*<code>SafeTextureCacheColorSamples = 512</code> -> Texture Cache Accuracy "Middle", the middle option on the slider.
*<code>SafeTextureCacheColorSamples = 128</code> -> Texture Cache Accuracy "Fast", the right most option on the slider.
*<code>SafeTextureCacheColorSamples = 128</code> -> Texture Cache Accuracy "Fast", the right most option on the slider.
=== GPU Texture Decoding ===
*<code>EnableGPUTextureDecoding = True</code> or <code>False</code> to enable and disable "GPU Texture Decoding" respectively.


=== Aspect Ratio ===
=== Aspect Ratio ===
Line 160: Line 174:
=== Load Custom Textures ===
=== Load Custom Textures ===
*<code>HiresTextures = True</code> or <code>False</code> to enable and disable "Load Custom Textures" respectively.
*<code>HiresTextures = True</code> or <code>False</code> to enable and disable "Load Custom Textures" respectively.
=== Prefetch Custom Textures ===
*<code>CacheHiresTextures = True</code> or <code>False</code> to enable and disable "Caching custom textures to RAM on startup".


== [Video_Enhancements] ==
== [Video_Enhancements] ==
The following entries go under [Video_Enhancements] section of the GameINI.
The following entries go under [Video_Enhancements] (or [Graphics.Enhancements]) section of the GameINI.


=== Anisotropic Filtering ===
=== Anisotropic Filtering ===
Line 172: Line 189:


=== Post-processing Effects ===
=== Post-processing Effects ===
This option will only work with the OpenGL and Vulkan backend. Use the names listed in the drop down menu of the option, below we use sepia as an example.
This option will only work with the OpenGL and Vulkan backend on versions before {{revision|5.0-9638}}. Use the names listed in the drop down menu of the option, below we use sepia as an example.
*<code>PostProcessingShader = sepia</code>, also you can put the name of your preferred shader here.
*<code>PostProcessingShader = sepia</code>, also you can put the name of your preferred shader here.


Line 185: Line 202:


== [Video_Hacks] ==
== [Video_Hacks] ==
The following entries go under [Video_Hacks] section of the GameINI.
The following entries go under [Video_Hacks] (or [Graphics.Hacks]) section of the GameINI.


=== EFB Copies ===
=== EFB Copies ===
Line 210: Line 227:
===Immediate XFB ===
===Immediate XFB ===
*<code>ImmediateXFBenable = True</code> or <code>False</code> to enable and disable "Immediate XFB" respectively.
*<code>ImmediateXFBenable = True</code> or <code>False</code> to enable and disable "Immediate XFB" respectively.
=== Skip Presenting Duplicate Frames ===
*<code>SkipDuplicateXFBs = True</code> or <code>False</code> to enable and disable "Skip Presenting Duplicate Frames" respectively.


=== Defer EFB copies to RAM ===
=== Defer EFB copies to RAM ===
Line 216: Line 236:
=== Defer EFB Cache Invalidation ===
=== Defer EFB Cache Invalidation ===
*<code>EFBAccessDeferInvalidation = True</code> or <code>False</code> to enable and disable "Defer EFB Cache Invalidation" respectively.
*<code>EFBAccessDeferInvalidation = True</code> or <code>False</code> to enable and disable "Defer EFB Cache Invalidation" respectively.
=== Manual Texture Sampling ===
*<code>FastTextureSampling = True</code> or <code>False</code> to disable and enable "Manual Texture Sampling" respectively. Beware that it has the opposite behavior of the GUI option!


== [Video_Hardware] ==
== [Video_Hardware] ==
The following entries go under [Video_Hardware] section of the GameINI.
The following entries go under [Video_Hardware] (or [Graphics.Hardware]) section of the GameINI.


=== V-Sync ===
=== V-Sync ===
Line 224: Line 247:


== [Video_Stereoscopy] ==
== [Video_Stereoscopy] ==
The following entries go under [Video_Stereoscopy] section of the GameINI.
The following entries go under [Video_Stereoscopy] (or [Graphics.Stereoscopy] although that is currently bugged, see [https://bugs.dolphin-emu.org/issues/12510?next_issue_id=12509#note-1 here]) section of the GameINI.


=== Stereoscopic 3D Offset Settings ===
=== Stereoscopic 3D Offset Settings ===
Line 241: Line 264:


== [DSP] ==
== [DSP] ==
The following entries go under [DSP] section of the GameINI.
The following entries go under [DSP] (or [Dolphin.DSP]) section of the GameINI.


=== Audio Backend ===
=== Audio Backend ===
*<code>Backend = OpenAL</code>
*<code>Backend = No audio output</code>
*<code>Backend = XAudio2</code>
*<code>Backend = ALSA</code>
*<code>Backend = Cubeb</code>
*<code>Backend = Cubeb</code>
*<code>Backend = WASAPI (Exclusive mode)</code>
*<code>Backend = ALSA</code>
*<code>Backend = Pulse</code>
*<code>Backend = Pulse</code>
*<code>Backend = OpenAL</code>
*<code>Backend = OpenSLES</code>
*<code>Backend = OpenSLES</code>
*<code>Backend = No audio output</code>
*<code>Backend = WASAPI (Exclusive Mode)</code>
*<code>Backend = XAudio2</code> This option was removed in {{revision|5.0-10950}} and later [https://dolphin-emu.org/blog/2019/11/07/dolphin-progress-report-october-2019/#50-10950-remove-xaudio2-by-ligfx for many reasons], Dolphin will try to use Cubeb instead.


=== DSP Emulator Engine ===
=== DSP Emulator Engine ===
Line 275: Line 298:
  8 = Traditional Chinese
  8 = Traditional Chinese
  9 = Korean
  9 = Korean
== See also ==
*[https://forums.dolphin-emu.org/Thread-unofficial-howto-using-gameini-settings-per-game Forum Thread]


[[Category:Tutorials]]
[[Category:Tutorials]]
208

edits

Navigation menu