/ src / citra / default_ini.h
default_ini.h
  1  // Copyright 2014 Citra Emulator Project
  2  // Licensed under GPLv2 or any later version
  3  // Refer to the license.txt file included.
  4  
  5  #pragma once
  6  
  7  namespace DefaultINI {
  8  
  9  const char* sdl2_config_file = R"(
 10  [Controls]
 11  # The input devices and parameters for each 3DS native input
 12  # It should be in the format of "engine:[engine_name],[param1]:[value1],[param2]:[value2]..."
 13  # Escape characters $0 (for ':'), $1 (for ',') and $2 (for '$') can be used in values
 14  
 15  # for button input, the following devices are available:
 16  #  - "keyboard" (default) for keyboard input. Required parameters:
 17  #      - "code": the code of the key to bind
 18  #  - "sdl" for joystick input using SDL. Required parameters:
 19  #      - "joystick": the index of the joystick to bind
 20  #      - "button"(optional): the index of the button to bind
 21  #      - "hat"(optional): the index of the hat to bind as direction buttons
 22  #      - "axis"(optional): the index of the axis to bind
 23  #      - "direction"(only used for hat): the direction name of the hat to bind. Can be "up", "down", "left" or "right"
 24  #      - "threshold"(only used for axis): a float value in (-1.0, 1.0) which the button is
 25  #          triggered if the axis value crosses
 26  #      - "direction"(only used for axis): "+" means the button is triggered when the axis value
 27  #          is greater than the threshold; "-" means the button is triggered when the axis value
 28  #          is smaller than the threshold
 29  button_a=
 30  button_b=
 31  button_x=
 32  button_y=
 33  button_up=
 34  button_down=
 35  button_left=
 36  button_right=
 37  button_l=
 38  button_r=
 39  button_start=
 40  button_select=
 41  button_debug=
 42  button_gpio14=
 43  button_zl=
 44  button_zr=
 45  button_home=
 46  
 47  # for analog input, the following devices are available:
 48  #  - "analog_from_button" (default) for emulating analog input from direction buttons. Required parameters:
 49  #      - "up", "down", "left", "right": sub-devices for each direction.
 50  #          Should be in the format as a button input devices using escape characters, for example, "engine$0keyboard$1code$00"
 51  #      - "modifier": sub-devices as a modifier.
 52  #      - "modifier_scale": a float number representing the applied modifier scale to the analog input.
 53  #          Must be in range of 0.0-1.0. Defaults to 0.5
 54  #  - "sdl" for joystick input using SDL. Required parameters:
 55  #      - "joystick": the index of the joystick to bind
 56  #      - "axis_x": the index of the axis to bind as x-axis (default to 0)
 57  #      - "axis_y": the index of the axis to bind as y-axis (default to 1)
 58  circle_pad=
 59  c_stick=
 60  
 61  # for motion input, the following devices are available:
 62  #  - "motion_emu" (default) for emulating motion input from mouse input. Required parameters:
 63  #      - "update_period": update period in milliseconds (default to 100)
 64  #      - "sensitivity": the coefficient converting mouse movement to tilting angle (default to 0.01)
 65  #      - "tilt_clamp": the max value of the tilt angle in degrees (default to 90)
 66  #  - "cemuhookudp" reads motion input from a udp server that uses cemuhook's udp protocol
 67  motion_device=
 68  
 69  # for touch input, the following devices are available:
 70  #  - "emu_window" (default) for emulating touch input from mouse input to the emulation window. No parameters required
 71  #  - "cemuhookudp" reads touch input from a udp server that uses cemuhook's udp protocol
 72  #      - "min_x", "min_y", "max_x", "max_y": defines the udp device's touch screen coordinate system
 73  touch_device=
 74  
 75  # Most desktop operating systems do not expose a way to poll the motion state of the controllers
 76  # so as a way around it, cemuhook created a udp client/server protocol to broadcast the data directly
 77  # from a controller device to the client program. Citra has a client that can connect and read
 78  # from any cemuhook compatible motion program.
 79  
 80  # IPv4 address of the udp input server (Default "127.0.0.1")
 81  udp_input_address=
 82  
 83  # Port of the udp input server. (Default 26760)
 84  udp_input_port=
 85  
 86  # The pad to request data on. Should be between 0 (Pad 1) and 3 (Pad 4). (Default 0)
 87  udp_pad_index=
 88  
 89  [Core]
 90  # Whether to use the Just-In-Time (JIT) compiler for CPU emulation
 91  # 0: Interpreter (slow), 1 (default): JIT (fast)
 92  use_cpu_jit =
 93  
 94  # Change the Clock Frequency of the emulated 3DS CPU.
 95  # Underclocking can increase the performance of the game at the risk of freezing.
 96  # Overclocking may fix lag that happens on console, but also comes with the risk of freezing.
 97  # Range is any positive integer (but we suspect 25 - 400 is a good idea) Default is 100
 98  cpu_clock_percentage =
 99  
100  [Renderer]
101  # Whether to render using OpenGL or Software
102  # 0: Software, 1: OpenGL (default), 2: Vulkan
103  graphics_api =
104  
105  # Whether to render using GLES or OpenGL
106  # 0 (default): OpenGL, 1: GLES
107  use_gles =
108  
109  # Whether to use hardware shaders to emulate 3DS shaders
110  # 0: Software, 1 (default): Hardware
111  use_hw_shader =
112  
113  # Whether to use accurate multiplication in hardware shaders
114  # 0: Off (Faster, but causes issues in some games) 1: On (Default. Slower, but correct)
115  shaders_accurate_mul =
116  
117  # Whether to use the Just-In-Time (JIT) compiler for shader emulation
118  # 0: Interpreter (slow), 1 (default): JIT (fast)
119  use_shader_jit =
120  
121  # Forces VSync on the display thread. Usually doesn't impact performance, but on some drivers it can
122  # so only turn this off if you notice a speed difference.
123  # 0: Off, 1 (default): On
124  use_vsync_new =
125  
126  # Reduce stuttering by storing and loading generated shaders to disk
127  # 0: Off, 1 (default. On)
128  use_disk_shader_cache =
129  
130  # Resolution scale factor
131  # 0: Auto (scales resolution to window size), 1: Native 3DS screen resolution, Otherwise a scale
132  # factor for the 3DS resolution
133  resolution_factor =
134  
135  # Texture filter
136  # 0: None, 1: Anime4K, 2: Bicubic, 3: Nearest Neighbor, 4: ScaleForce, 5: xBRZ
137  texture_filter =
138  
139  # Limits the speed of the game to run no faster than this value as a percentage of target speed.
140  # Will not have an effect if unthrottled is enabled.
141  # 5 - 995: Speed limit as a percentage of target game speed. 0 for unthrottled. 100 (default)
142  frame_limit =
143  
144  # Overrides the frame limiter to use frame_limit_alternate instead of frame_limit.
145  # 0: Off (default), 1: On
146  use_frame_limit_alternate =
147  
148  # Alternate speed limit to be used instead of frame_limit if use_frame_limit_alternate is enabled
149  # 5 - 995: Speed limit as a percentage of target game speed. 0 for unthrottled. 200 (default)
150  frame_limit_alternate =
151  
152  # The clear color for the renderer. What shows up on the sides of the bottom screen.
153  # Must be in range of 0.0-1.0. Defaults to 0.0 for all.
154  bg_red =
155  bg_blue =
156  bg_green =
157  
158  # Whether and how Stereoscopic 3D should be rendered
159  # 0 (default): Off, 1: Side by Side, 2: Anaglyph, 3: Interlaced, 4: Reverse Interlaced
160  render_3d =
161  
162  # Change 3D Intensity
163  # 0 - 100: Intensity. 0 (default)
164  factor_3d =
165  
166  # Change Default Eye to Render When in Monoscopic Mode
167  # 0 (default): Left, 1: Right
168  mono_render_option =
169  
170  # The name of the post processing shader to apply.
171  # Loaded from shaders if render_3d is off or side by side.
172  pp_shader_name =
173  
174  # The name of the shader to apply when render_3d is anaglyph.
175  # Loaded from shaders/anaglyph
176  anaglyph_shader_name =
177  
178  # Whether to enable linear filtering or not
179  # This is required for some shaders to work correctly
180  # 0: Nearest, 1 (default): Linear
181  filter_mode =
182  
183  [Layout]
184  # Layout for the screen inside the render window.
185  # 0 (default): Default Top Bottom Screen
186  # 1: Single Screen Only
187  # 2: Large Screen Small Screen
188  # 3: Side by Side
189  # 4: Separate Windows
190  # 5: Hybrid Screen
191  layout_option =
192  
193  # Toggle custom layout (using the settings below) on or off.
194  # 0 (default): Off, 1: On
195  custom_layout =
196  
197  # Screen placement when using Custom layout option
198  # 0x, 0y is the top left corner of the render window.
199  custom_top_left =
200  custom_top_top =
201  custom_top_right =
202  custom_top_bottom =
203  custom_bottom_left =
204  custom_bottom_top =
205  custom_bottom_right =
206  custom_bottom_bottom =
207  
208  # Opacity of second layer when using custom layout option (bottom screen unless swapped)
209  custom_second_layer_opacity =
210  
211  # Swaps the prominent screen with the other screen.
212  # For example, if Single Screen is chosen, setting this to 1 will display the bottom screen instead of the top screen.
213  # 0 (default): Top Screen is prominent, 1: Bottom Screen is prominent
214  swap_screen =
215  
216  # Toggle upright orientation, for book style games.
217  # 0 (default): Off, 1: On
218  upright_screen =
219  
220  # The proportion between the large and small screens when playing in Large Screen Small Screen layout.
221  # Must be a real value between 1.0 and 16.0. Default is 4
222  large_screen_proportion =
223  
224  # Dumps textures as PNG to dump/textures/[Title ID]/.
225  # 0 (default): Off, 1: On
226  dump_textures =
227  
228  # Reads PNG files from load/textures/[Title ID]/ and replaces textures.
229  # 0 (default): Off, 1: On
230  custom_textures =
231  
232  # Loads all custom textures into memory before booting.
233  # 0 (default): Off, 1: On
234  preload_textures =
235  
236  # Loads custom textures asynchronously with background threads.
237  # 0: Off, 1 (default): On
238  async_custom_loading =
239  
240  [Audio]
241  # Whether or not to enable DSP LLE
242  # 0 (default): No, 1: Yes
243  enable_dsp_lle =
244  
245  # Whether or not to run DSP LLE on a different thread
246  # 0 (default): No, 1: Yes
247  enable_dsp_lle_thread =
248  
249  # Whether or not to enable the audio-stretching post-processing effect.
250  # This effect adjusts audio speed to match emulation speed and helps prevent audio stutter,
251  # at the cost of increasing audio latency.
252  # 0: No, 1 (default): Yes
253  enable_audio_stretching =
254  
255  # Output volume.
256  # 1.0 (default): 100%, 0.0; mute
257  volume =
258  
259  # Which audio output type to use.
260  # 0 (default): Auto-select, 1: No audio output, 2: Cubeb (if available), 3: OpenAL (if available), 4: SDL2 (if available)
261  output_type =
262  
263  # Which audio output device to use.
264  # auto (default): Auto-select
265  output_device =
266  
267  # Which audio input type to use.
268  # 0 (default): Auto-select, 1: No audio input, 2: Static noise, 3: Cubeb (if available), 4: OpenAL (if available)
269  input_type =
270  
271  # Which audio input device to use.
272  # auto (default): Auto-select
273  input_device =
274  
275  [Data Storage]
276  # Whether to create a virtual SD card.
277  # 1 (default): Yes, 0: No
278  use_virtual_sd =
279  
280  # Whether to use custom storage locations
281  # 1: Yes, 0 (default): No
282  use_custom_storage =
283  
284  # The path of the virtual SD card directory.
285  # empty (default) will use the user_path
286  sdmc_directory =
287  
288  # The path of NAND directory.
289  # empty (default) will use the user_path
290  nand_directory =
291  
292  [System]
293  # The system model that Citra will try to emulate
294  # 0: Old 3DS, 1: New 3DS (default)
295  is_new_3ds =
296  
297  # Whether to use LLE system applets, if installed
298  # 0 (default): No, 1: Yes
299  lle_applets =
300  
301  # The system region that Citra will use during emulation
302  # -1: Auto-select (default), 0: Japan, 1: USA, 2: Europe, 3: Australia, 4: China, 5: Korea, 6: Taiwan
303  region_value =
304  
305  # The clock to use when citra starts
306  # 0: System clock (default), 1: fixed time
307  init_clock =
308  
309  # Time used when init_clock is set to fixed_time in the format %Y-%m-%d %H:%M:%S
310  # set to fixed time. Default 2000-01-01 00:00:01
311  # Note: 3DS can only handle times later then Jan 1 2000
312  init_time =
313  
314  # The system ticks count to use when citra starts
315  # 0: Random (default), 1: Fixed
316  init_ticks_type =
317  
318  # Tick count to use when init_ticks_type is set to Fixed.
319  # Defaults to 0.
320  init_ticks_override =
321  
322  [Camera]
323  # Which camera engine to use for the right outer camera
324  # blank (default): a dummy camera that always returns black image
325  camera_outer_right_name =
326  
327  # A config string for the right outer camera. Its meaning is defined by the camera engine
328  camera_outer_right_config =
329  
330  # The image flip to apply
331  # 0: None (default), 1: Horizontal, 2: Vertical, 3: Reverse
332  camera_outer_right_flip =
333  
334  # ... for the left outer camera
335  camera_outer_left_name =
336  camera_outer_left_config =
337  camera_outer_left_flip =
338  
339  # ... for the inner camera
340  camera_inner_name =
341  camera_inner_config =
342  camera_inner_flip =
343  
344  [Miscellaneous]
345  # A filter which removes logs below a certain logging level.
346  # Examples: *:Debug Kernel.SVC:Trace Service.*:Critical
347  log_filter = *:Info
348  
349  [Debugging]
350  # Record frame time data, can be found in the log directory. Boolean value
351  record_frame_times =
352  
353  # Port for listening to GDB connections.
354  use_gdbstub=false
355  gdbstub_port=24689
356  
357  # Whether to enable additional debugging information during emulation
358  # 0 (default): Off, 1: On
359  renderer_debug =
360  
361  # To LLE a service module add "LLE\<module name>=true"
362  
363  [WebService]
364  # Whether or not to enable telemetry
365  # 0 (default): No, 1: Yes
366  enable_telemetry =
367  # URL for Web API
368  web_api_url = https://api.citra-emu.org
369  # Username and token for Citra Web Service
370  # See https://profile.citra-emu.org/ for more info
371  citra_username =
372  citra_token =
373  
374  [Video Dumping]
375  # Format of the video to output, default: webm
376  output_format =
377  
378  # Options passed to the muxer (optional)
379  # This is a param package, format: [key1]:[value1],[key2]:[value2],...
380  format_options =
381  
382  # Video encoder used, default: libvpx-vp9
383  video_encoder =
384  
385  # Options passed to the video codec (optional)
386  video_encoder_options =
387  
388  # Video bitrate, default: 2500000
389  video_bitrate =
390  
391  # Audio encoder used, default: libvorbis
392  audio_encoder =
393  
394  # Options passed to the audio codec (optional)
395  audio_encoder_options =
396  
397  # Audio bitrate, default: 64000
398  audio_bitrate =
399  )";
400  }