GameINI: Difference between revisions

→‎Internal Resolution: Increased to 12 in 5.0-20193
m (→‎Wii: it is Wii Remote not wiimote, keep things consistent.)
(→‎Internal Resolution: Increased to 12 in 5.0-20193)
(38 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]<!--Add [Dolphin.Core] once issue #12510 is fixed--> section of the GameINI.
The following entries go under [Core] (or [Dolphin.Core]) section of the GameINI.


=== Dual Core ===
=== Dual Core ===
Line 28: Line 28:
*<code>GFXBackend = OGL</code> to set the video backend to OpenGL.
*<code>GFXBackend = OGL</code> to set the video backend to OpenGL.
*<code>GFXBackend = Vulkan</code> to set the video backend to Vulkan.
*<code>GFXBackend = Vulkan</code> to set the video backend to Vulkan.
*<code>GFXBackend = Metal</code> to set the video backend to Metal (macOS only).
*<code>GFXBackend = Software Renderer</code> to set the video backend to Software.
*<code>GFXBackend = Software Renderer</code> to set the video backend to Software.
*<code>GFXBackend = Null</code> to set the video backend to Null(no output).
*<code>GFXBackend = Null</code> to set the video backend to Null(no output).
Line 45: Line 46:


If DSP HLE is disabled, DSL LLE will be used, it will use either DSP LLE recompiler or DSP LLE interpreter based on your general Dolphin settings, or see [[#DSP Emulator Engine]]. More information at [[Audio Emulation]].
If DSP HLE is disabled, DSL LLE will be used, it will use either DSP LLE recompiler or DSP LLE interpreter based on your general Dolphin settings, or see [[#DSP Emulator Engine]]. More information at [[Audio Emulation]].
=== DSP LLE on Dedicated Thread ===
Will do nothing in {{revision|4.0-4488}} and later.
*<code>DSPThread = True</code> or <code>False</code> to enable and disable the "DSP LLE on Dedicated Thread" respectively.


=== Emulation Speed (formerly Framelimit) ===
=== Emulation Speed (formerly Framelimit) ===
Line 77: Line 74:
*<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. 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.
*<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.
=== Memory Override ===
*<code>RAMOverrideEnable = True</code> or <code>False</code> to enable and disable "Emulate Memory Size Override" respectively.
*<code>MEM1Size = 0x01800000</code> size in bytes in hex or decimal.
*<code>MEM2Size = 0x04000000</code> size in bytes in hex or decimal.


=== 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, since {{revision|5.0-683}}, if Dual Core is disabled. <!-- Deterministic dual core might work too -->


=== Speed Up Disc Transfer Rate ===
=== Speed Up Disc Transfer Rate ===
Line 110: Line 119:
  4 = Italian
  4 = Italian
  5 = Dutch
  5 = Dutch
=== GameCube Slots ===
Implemented in {{revision|5.0-15842}}
*<code>SlotA = 8</code> for GCI Folder. Choose a number from below list to change what is in Slot A.
*<code>SlotB = 255</code> for Nothing. Choose a number from below list to change what is in Slot B.
0 = Dummy
1 = MemoryCard
4 = Microphone
7 = Gecko
8 = GCI Folder
9 = Advance Game Port
255 = Nothing
Set the full path to the memory card file.
*<code>MemcardAPath = pathtoslotAfile</code>
*<code>MemcardAPath = pathtoslotBfile</code>
Set the full path to the GCI Folder (since {{revision|5.0-17900}}).
*<code>GCIFolderAPath = gcifolderApath</code>
*<code>GCIFolderBPath = gcifolderBpath</code>
=== GameCube Serial Port ===
Implemented in {{revision|5.0-15842}}
*<code>SerialPort1 = 255</code> for nothing. Choose a number below which type of Broadband Adapter you are using.
5  = Broadband Adapter (TAP)
10 = Broadband Adapter (XLink Kai)
12 = Broadband Adapter (Built In)
*<code>BBA_MAC = MAC</code> to set the Ethernet MAC address.
*<code>BBA_XLINK_IP = 127.0.0.1</code> to set the IP address of the PC/device where XLink Kai is running.
*<code>BBA_BUILTIN_DNS = IPADDRESS</code> the DNS server to use for the builtin adapter
=== Wii Configuration ===
*<code>PAL60 = True</code> to enable EuRGB60 or <code>False</code> to disable.
*<code>WiiSDCard = True</code> to enable Wii SD/SDHC Card or <code>False</code> to disable.
*<code>WiiSDCardAllowWrites = True</code> to allow SDCard writes or <code>False</code> to disable.
== [Controls] ==
See [[GameINI (Controller Settings)]]


== [Video_Settings] ==
== [Video_Settings] ==
Line 117: Line 168:
Values starting from 0 represent the drop down order in the list that dolphin uses.
Values starting from 0 represent the drop down order in the list that dolphin uses.
*<code>InternalResolution = 0</code>
*<code>InternalResolution = 0</code>
To increase the maximum available resolutions in the UI, you can set:
*<code>MaxInternalResolution  = 9</code>
(the default is 12)


=== 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 130: Line 185:
=== Texture Cache Accuracy ===
=== Texture Cache Accuracy ===
Controls the "Texture Cache Accuracy" setting, shown as a slider in the GUI.
Controls the "Texture Cache Accuracy" setting, shown as a slider in the GUI.
*<code>SafeTextureCacheColorSamples = 0</code> -> Texture Cache Accuracy "Safe", the left most option on the slider.
*<code>SafeTextureCacheColorSamples = 0</code> Texture Cache Accuracy "Safe", the left most option on the slider.
*<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 150: Line 208:


=== External Frame Buffer ===
=== External Frame Buffer ===
Will do nothing in {{revision|5.0-5874}} and later.
Will do nothing in {{revision|5.0-5874}} and later. Use [[#XFB copies]] and [[#Immediate XFB]] instead.
*<code>UseXFB = True</code> or <code>False</code> to enable and disable "External Frame Buffer" respectively. Virtual or Real will be set according to what you have set it last at the general settings. To control it use together the line below:
*<code>UseXFB = True</code> or <code>False</code> to enable and disable "External Frame Buffer" respectively. Virtual or Real will be set according to what you have set it last at the general settings. To control it use together the line below:
*<code>UseRealXFB = True</code> or <code>False</code> to enable "Real XFB" or "Virtual XFB" respectively.
*<code>UseRealXFB = True</code> or <code>False</code> to enable "Real XFB" or "Virtual XFB" respectively.
Line 165: Line 223:
=== 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".
=== Crop to 4:3 or 16:9 ===
*<code>Crop = False</code> or <code>True</code> to crop the picture from native aspect ration to 4:3 or 16:9.
=== Cull Vertices on the CPU ===
*<code>CPUCull = True</code> or <code>False</code> to enable and disable "Cull Vertices on the CPU" respectively.


== [Video_Enhancements] ==
== [Video_Enhancements] ==
Line 174: Line 241:


=== Force Texture Filtering ===
=== Force Texture Filtering ===
As of {{revision|5.0-18025}} the option changed. Valid values are: <code>2</code> for linear, <code>1</code> for nearest and <code>0</code> for no filtering.
*<code>ForceTextureFiltering = 2</code> will set forced linear filtering.
For older builds, which at the time of writing includes beta 5.0-17995, use the following.
*<code>ForceFiltering = True</code> or <code>False</code> to enable and disable "Force Texture Filtering" respectively.
*<code>ForceFiltering = True</code> or <code>False</code> to enable and disable "Force Texture Filtering" respectively.


=== 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 188: Line 259:
=== Arbitrary Mipmap Detection ===
=== Arbitrary Mipmap Detection ===
*<code>ArbitraryMipmapDetection = True</code> or <code>False</code> to enable and disable "Arbitrary Mipmap Detection" respectively.
*<code>ArbitraryMipmapDetection = True</code> or <code>False</code> to enable and disable "Arbitrary Mipmap Detection" respectively.
=== OutputResamplingMode ===
  Default = 0,
  Bilinear = 1,
  BSpline = 2,
  MitchellNetravali = 3,
  CatmullRom = 4,
  SharpBilinear = 5,
  AreaSampling = 6,


== [Video_Hacks] ==
== [Video_Hacks] ==
Line 214: Line 294:


===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 ===
=== Skip Presenting Duplicate Frames ===
Line 224: Line 304:
=== 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] ==
Line 249: Line 332:


== [DSP] ==
== [DSP] ==
The following entries go under [DSP]<!--Add [Dolphin.DSP] once issue #12510 is fixed--> section of the GameINI.
The following entries go under [DSP] (or [Dolphin.DSP]) section of the GameINI.


=== Audio Backend ===
=== Audio Backend ===
Line 284: Line 367:
  9 = Korean
  9 = Korean


== [Controls] ==
=== Wii Aspect Ratio ===
=== Gamecube ===
Set the Wii Aspect Ratio to 4:3 or 16:9
Choosing Gamecube Port device per game (standard controller, gba, etc.).
*<code>Widescreen = True</code> for 16:9 or <code>False</code> for 4:3
 
*<code>PadType0 = 0</code> 0 is "None", see list for values.
*<code>PadType1 = 0</code> 0 is "None", see list for values.
*<code>PadType2 = 0</code> 0 is "None", see list for values.
*<code>PadType3 = 0</code> 0 is "None", see list for values.
 
Values
<pre>0  = None
5  = GBA
6  = Standard Controller
7  = Keyboard
8  = Steering Wheel
9  = Dance Mat
10 = TaruKonga Bongos
11 = AM Baseboard
12 = Gamecube Adapter for Wii U
13 = GBA (Integrated)</pre>
 
Choosing Control Profiles per game:
First you should have a control profile saved for each GameCube controller.
*<code>PadProfile1 = Your profile name here</code> This loads gcpad profile for player 1.
*<code>PadProfile2 = Your profile name here</code> This loads gcpad profile for player 2.
*<code>PadProfile3 = Your profile name here</code> This loads gcpad profile for player 3.
*<code>PadProfile4 = Your profile name here</code> This loads gcpad profile for player 4.
 
=== Wii ===
Choosing Wii Remote source per game (emulated Wii Remote, real Wii Remote, etc.).
 
*<code>WiimoteSource0 = 0</code> will set Wii Remote 1 to "None", 1 for "Emulated Wii Remote", 2 for "Real Wii Remote"
*<code>WiimoteSource1 = 0</code> will set Wii Remote 2 to "None", 1 for "Emulated Wii Remote", 2 for "Real Wii Remote"
*<code>WiimoteSource2 = 0</code> will set Wii Remote 3 to "None", 1 for "Emulated Wii Remote", 2 for "Real Wii Remote"
*<code>WiimoteSource3 = 0</code> will set Wii Remote 3 to "None", 1 for "Emulated Wii Remote", 2 for "Real Wii Remote"
*<code>WiimoteSourceBB = 0</code> will set balance board to "None", 2 for "Real Balance Board")


Choosing Control Profiles per game:
== [Dolphin.BluetoothPassthrough] ==
First you should have a control profile saved for each Wii Remote.
===Enable===
*<code>WiimoteProfile1 = Your profile name here</code> => This loads Wii Remote profile for player 1.
*<code>Enabled = True</code> or <code>False</code> to Enable or Disable bluetooth passthrough.
*<code>WiimoteProfile2 = Your profile name here</code> => This loads Wii Remote profile for player 2.
*<code>WiimoteProfile3 = Your profile name here</code> => This loads Wii Remote profile for player 3.
*<code>WiimoteProfile4 = Your profile name here</code> => This loads Wii Remote profile for player 4.


== See also ==
== See also ==