{
  "version": 3,
  "working_dir": null,
  "env": {},
  "window_mode": "borderless",
  "quit": {
    "method": "close",
    "force_kill_after_ms": 8000
  },
  "on_disconnect": "hold_neutral",
  "dsu": null,
  "native_gamepads": "disable_in_emulator_config",
  "update_check": true,
  "auto_update": false,
  "id": "azahar",
  "name": "Azahar",
  "revision": "2026-09-30.6",
  "origin": {
    "kind": "url",
    "url": "https://kouch.dev/emulators/azahar.kod"
  },
  "args": [
    "{rom}"
  ],
  "systems": [
    {
      "id": "n3ds",
      "folder": "n3ds",
      "name": "3DS",
      "art": {
        "thumbnails": "Nintendo - Nintendo 3DS"
      }
    }
  ],
  "extensions": [
    "3ds",
    "cci",
    "cxi",
    "3dsx",
    "zcci",
    "zcxi",
    "z3dsx"
  ],
  "max_players": 1,
  "players": [
    {
      "dsu": {
        "server": 0,
        "slot": 0
      },
      "vpad": null,
      "motion": true
    }
  ],
  "hotkeys": {
    "pause": {
      "keys": [
        "f4"
      ]
    },
    "save_state": {
      "keys": [
        "ctrl",
        "c"
      ]
    },
    "load_state": {
      "keys": [
        "ctrl",
        "v"
      ]
    },
    "reset": null,
    "screenshot": {
      "keys": [
        "ctrl",
        "p"
      ]
    },
    "quit": null,
    "extra": [
      {
        "id": "swap_screens",
        "label": "Swap screens",
        "chord": {
          "keys": [
            "f9"
          ]
        }
      },
      {
        "id": "next_layout",
        "label": "Next screen layout",
        "chord": {
          "keys": [
            "f10"
          ]
        }
      }
    ],
    "fullscreen": {
      "keys": [
        "f11"
      ]
    }
  },
  "pause": {
    "method": "hotkey",
    "chord": {
      "keys": [
        "f4"
      ]
    }
  },
  "user_data": {
    "folders": {
      "saves": "saves",
      "states": "states",
      "screenshots": "screenshots",
      "config": "config",
      "system": "system"
    },
    "cloud": [
      "saves"
    ],
    "links": [
      {
        "link": "{emulator_dir}/user",
        "target": "{config}"
      },
      {
        "link": "{config}/sysdata",
        "target": "{system}"
      },
      {
        "link": "{config}/nand",
        "target": "{saves}/nand"
      },
      {
        "link": "{config}/sdmc",
        "target": "{saves}/sdmc"
      }
    ],
    "config_edits": [
      {
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "set": {
          "Controls.profiles\\size": "1",
          "Controls.profiles\\1\\name": "Kouch",
          "Controls.profiles\\1\\button_a": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:1\"",
          "Controls.profiles\\1\\button_b": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:0\"",
          "Controls.profiles\\1\\button_x": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:3\"",
          "Controls.profiles\\1\\button_y": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:2\"",
          "Controls.profiles\\1\\button_up": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:11\"",
          "Controls.profiles\\1\\button_down": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:12\"",
          "Controls.profiles\\1\\button_left": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:13\"",
          "Controls.profiles\\1\\button_right": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:14\"",
          "Controls.profiles\\1\\button_l": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:9\"",
          "Controls.profiles\\1\\button_r": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:10\"",
          "Controls.profiles\\1\\button_start": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:6\"",
          "Controls.profiles\\1\\button_select": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:4\"",
          "Controls.profiles\\1\\button_zl": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},axis:4,direction:+,threshold:0.500000\"",
          "Controls.profiles\\1\\button_zr": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},axis:5,direction:+,threshold:0.500000\"",
          "Controls.profiles\\1\\button_home": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},button:5\"",
          "Controls.profiles\\1\\circle_pad": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},axis_x:0,axis_y:1,deadzone:0.100000\"",
          "Controls.profiles\\1\\c_stick": "\"engine:sdl,api:controller,maptype:guid+port,port:{seat_pad_1},axis_x:2,axis_y:3,deadzone:0.100000\"",
          "Controls.profiles\\1\\motion_device": "engine:cemuhookudp",
          "Controls.profiles\\1\\udp_input_address": "{dsu_host}",
          "Controls.profiles\\1\\udp_input_port": "{dsu_port}",
          "Controls.profiles\\1\\udp_pad_index": "0",
          "Data%20Storage.use_custom_storage": "false",
          "UI.confirmClose": "false",
          "UI.fullscreen": "false",
          "UI.first_start": "false",
          "UI.pause_when_in_background": "false",
          "UI.Paths\\screenshotPath": "{screenshots:/}/",
          "UI.check_for_update_on_start": "false",
          "Renderer.graphics_api\\default": "false",
          "Renderer.use_hw_shader\\default": "false",
          "Renderer.shaders_accurate_mul\\default": "false",
          "Renderer.use_shader_jit\\default": "false",
          "Renderer.spirv_shader_gen\\default": "false",
          "Renderer.disable_spirv_optimizer\\default": "false",
          "Renderer.async_shader_compilation\\default": "false",
          "Renderer.async_presentation\\default": "false",
          "Renderer.use_disk_shader_cache\\default": "false",
          "Renderer.simulate_3ds_gpu_timings\\default": "false",
          "Renderer.resolution_factor\\default": "false",
          "Renderer.use_integer_scaling\\default": "false",
          "Layout.filter_mode\\default": "false",
          "Renderer.texture_filter\\default": "false",
          "Renderer.texture_sampling\\default": "false",
          "Utility.custom_textures\\default": "false",
          "Utility.preload_textures\\default": "false",
          "Utility.async_custom_loading\\default": "false",
          "Renderer.use_vsync\\default": "false",
          "Renderer.use_skip_duplicate_frames\\default": "false",
          "Renderer.use_display_refresh_rate_detection\\default": "false",
          "Renderer.frame_limit\\default": "false",
          "Renderer.turbo_limit\\default": "false",
          "Layout.layout_option\\default": "false",
          "Layout.swap_screen\\default": "false",
          "Layout.upright_screen\\default": "false",
          "Layout.large_screen_proportion\\default": "false",
          "Layout.small_screen_position\\default": "false",
          "Layout.screen_gap\\default": "false",
          "Layout.screen_top_stretch\\default": "false",
          "Layout.screen_bottom_stretch\\default": "false",
          "Layout.render_3d\\default": "false",
          "Layout.factor_3d\\default": "false",
          "Layout.swap_eyes_3d\\default": "false",
          "Layout.mono_render_option\\default": "false",
          "Renderer.disable_right_eye_render\\default": "false",
          "Layout.layouts_to_cycle\\default": "false",
          "Layout.layouts_to_cycle": "2, 3, 0, 1, 5",
          "Audio.volume\\default": "false"
        }
      }
    ],
    "private": [
      "saves/nand/**",
      "saves/sdmc/Nintendo 3DS/*/*/title/*/*/content/**"
    ],
    "game_files": [
      {
        "part": "saves",
        "glob": "sdmc/Nintendo 3DS/*/*/title/{title_id|slice:0:8|lower}/{title_id|slice:8:16|lower}/data/**"
      },
      {
        "part": "config",
        "glob": "states/{title_id}.*"
      },
      {
        "part": "config",
        "glob": "config/custom/{title_id}.ini"
      }
    ],
    "system_files": [
      {
        "names": [
          "keys.txt"
        ],
        "kind": "file",
        "what": "Console keys",
        "required": false,
        "features": "encrypted games (most retail and store copies); homebrew runs without it"
      },
      {
        "names": [
          "seeddb.bin"
        ],
        "kind": "file",
        "what": "Seed database",
        "required": false,
        "features": "some newer store games that need it; most games don’t"
      },
      {
        "names": [
          "shared_font.bin"
        ],
        "kind": "file",
        "what": "System font and data",
        "required": false,
        "features": "rare cases only; the emulator has its own replacement"
      }
    ]
  },
  "options": [
    {
      "id": "controller",
      "label": "Controller",
      "tab": "controls",
      "type": "controller",
      "default": "handheld",
      "values": [
        {
          "value": "handheld",
          "label": "Handheld",
          "icon": "kouch:handheld",
          "needs": [
            "motion"
          ]
        }
      ]
    },
    {
      "id": "renderer",
      "label": "Renderer",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 2,
          "label": "Vulkan"
        },
        {
          "value": 1,
          "label": "OpenGL"
        },
        {
          "value": 0,
          "label": "Software"
        }
      ],
      "default": 1,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.graphics_api"
      },
      "role": "renderer",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "hw_shader",
      "label": "Hardware shaders",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_hw_shader"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "accurate_mul",
      "label": "Accurate multiplication",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.shaders_accurate_mul"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "shader_jit",
      "label": "Shader JIT",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_shader_jit"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "spirv_gen",
      "label": "SPIR-V shaders (Vulkan)",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.spirv_shader_gen"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "spirv_optimizer_off",
      "label": "Skip the SPIR-V optimizer",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.disable_spirv_optimizer"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "async_shaders",
      "label": "Build shaders in background",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.async_shader_compilation"
      },
      "role": "other",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "async_present",
      "label": "Present frames in the background",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.async_presentation"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "disk_shader_cache",
      "label": "Keep compiled shaders on disk",
      "tab": "graphics",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_disk_shader_cache"
      },
      "role": "other",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "gpu_timings",
      "label": "Original GPU timings",
      "tab": "advanced",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.simulate_3ds_gpu_timings"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "resolution",
      "label": "Internal resolution",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Auto (window size)"
        },
        {
          "value": 1,
          "label": "Native (400×240)"
        },
        {
          "value": 2,
          "label": "2× (800×480)"
        },
        {
          "value": 3,
          "label": "3× (1200×720)"
        },
        {
          "value": 4,
          "label": "4× (1600×960)"
        },
        {
          "value": 5,
          "label": "5× (2000×1200)"
        },
        {
          "value": 6,
          "label": "6× (2400×1440)"
        },
        {
          "value": 7,
          "label": "7× (2800×1680)"
        },
        {
          "value": 8,
          "label": "8× (3200×1920)"
        },
        {
          "value": 9,
          "label": "9× (3600×2160)"
        },
        {
          "value": 10,
          "label": "10× (4000×2400)"
        }
      ],
      "default": 1,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.resolution_factor"
      },
      "role": "internal_resolution",
      "section": "Resolution",
      "restart": true
    },
    {
      "id": "integer_scaling",
      "label": "Whole-pixel scaling",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_integer_scaling"
      },
      "role": "output_filter",
      "section": "Resolution"
    },
    {
      "id": "linear_filtering",
      "label": "Smooth the picture",
      "tab": "graphics",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.filter_mode"
      },
      "role": "output_filter",
      "section": "Resolution"
    },
    {
      "id": "texture_filter",
      "label": "Texture filter",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "None"
        },
        {
          "value": 1,
          "label": "Anime4K"
        },
        {
          "value": 2,
          "label": "Bicubic"
        },
        {
          "value": 3,
          "label": "ScaleForce"
        },
        {
          "value": 4,
          "label": "xBRZ"
        },
        {
          "value": 5,
          "label": "MMPX"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.texture_filter"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": true
    },
    {
      "id": "texture_sampling",
      "label": "Texture sampling",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "As the game sets it"
        },
        {
          "value": 1,
          "label": "Nearest neighbour"
        },
        {
          "value": 2,
          "label": "Linear"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.texture_sampling"
      },
      "role": "anisotropic",
      "section": "Image quality",
      "restart": true
    },
    {
      "id": "custom_textures",
      "label": "Use custom textures",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Utility.custom_textures"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": true
    },
    {
      "id": "preload_textures",
      "label": "Preload custom textures",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Utility.preload_textures"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": true
    },
    {
      "id": "async_textures",
      "label": "Load textures in background",
      "tab": "graphics",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Utility.async_custom_loading"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": true
    },
    {
      "id": "vsync",
      "label": "V-Sync",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_vsync"
      },
      "role": "vsync",
      "section": "Display",
      "restart": true
    },
    {
      "id": "skip_duplicate_frames",
      "label": "Skip duplicate frames",
      "tab": "advanced",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_skip_duplicate_frames"
      },
      "role": "frame_limit",
      "section": "Expert graphics"
    },
    {
      "id": "refresh_detection",
      "label": "Detect the refresh rate",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.use_display_refresh_rate_detection"
      },
      "role": "frame_limit",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "speed",
      "label": "Emulation speed (%)",
      "tab": "advanced",
      "type": "slider",
      "min": 10,
      "max": 500,
      "step": 10,
      "default": 100,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.frame_limit"
      },
      "role": "frame_limit",
      "section": "Speed"
    },
    {
      "id": "turbo_speed",
      "label": "Turbo speed (%)",
      "tab": "advanced",
      "type": "slider",
      "min": 100,
      "max": 1000,
      "step": 50,
      "default": 200,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.turbo_limit"
      },
      "role": "frame_limit",
      "section": "Speed"
    },
    {
      "id": "layout",
      "label": "Screen layout",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 2,
          "label": "Large main, small beside it"
        },
        {
          "value": 3,
          "label": "Side by side"
        },
        {
          "value": 0,
          "label": "Stacked"
        },
        {
          "value": 1,
          "label": "Main screen only"
        },
        {
          "value": 5,
          "label": "Large main with both small"
        }
      ],
      "default": 2,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.layout_option"
      },
      "role": "screen_layout",
      "section": "Screens",
      "description": "How the two screens share the display. A change applies at the next launch; in a game, the Quick Menu can cycle the layouts."
    },
    {
      "id": "swap_screens",
      "label": "Swap screens",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.swap_screen"
      },
      "role": "screen_layout",
      "section": "Screens",
      "description": "The second screen becomes the main one."
    },
    {
      "id": "upright",
      "label": "Rotate screens upright",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.upright_screen"
      },
      "role": "screen_layout",
      "section": "Screens"
    },
    {
      "id": "large_proportion",
      "label": "Main screen size",
      "tab": "graphics",
      "type": "slider",
      "min": 1,
      "max": 16,
      "step": 0.5,
      "default": 4,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.large_screen_proportion"
      },
      "role": "screen_layout",
      "section": "Screens",
      "description": "How many times bigger the main screen is than the second one."
    },
    {
      "id": "small_position",
      "label": "Second screen position",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Upper right"
        },
        {
          "value": 1,
          "label": "Middle right"
        },
        {
          "value": 2,
          "label": "Lower right"
        },
        {
          "value": 3,
          "label": "Upper left"
        },
        {
          "value": 4,
          "label": "Middle left"
        },
        {
          "value": 5,
          "label": "Lower left"
        },
        {
          "value": 6,
          "label": "Above the large screen"
        },
        {
          "value": 7,
          "label": "Below the large screen"
        }
      ],
      "default": 2,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.small_screen_position"
      },
      "role": "screen_layout",
      "section": "Screens"
    },
    {
      "id": "screen_gap",
      "label": "Gap between screens (px)",
      "tab": "graphics",
      "type": "slider",
      "min": 0,
      "max": 200,
      "step": 10,
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.screen_gap"
      },
      "role": "screen_layout",
      "section": "Screens"
    },
    {
      "id": "top_stretch",
      "label": "Stretch the top screen",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.screen_top_stretch"
      },
      "role": "aspect",
      "section": "Screens",
      "description": "In the one-screen and separate-window layouts."
    },
    {
      "id": "bottom_stretch",
      "label": "Stretch the bottom screen",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.screen_bottom_stretch"
      },
      "role": "aspect",
      "section": "Screens",
      "description": "In the one-screen and separate-window layouts."
    },
    {
      "id": "stereo_mode",
      "label": "Stereoscopic 3D",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Off"
        },
        {
          "value": 1,
          "label": "Side by side"
        },
        {
          "value": 2,
          "label": "Side by side, full width"
        },
        {
          "value": 3,
          "label": "Anaglyph"
        },
        {
          "value": 4,
          "label": "Interlaced"
        },
        {
          "value": 5,
          "label": "Reverse interlaced"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.render_3d"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D"
    },
    {
      "id": "stereo_depth",
      "label": "3D depth (%)",
      "tab": "graphics",
      "type": "slider",
      "min": 0,
      "max": 100,
      "step": 5,
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.factor_3d"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D"
    },
    {
      "id": "swap_eyes",
      "label": "Swap eyes",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.swap_eyes_3d"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D"
    },
    {
      "id": "mono_eye",
      "label": "Eye shown when 3D is off",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Left"
        },
        {
          "value": 1,
          "label": "Right"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Layout.mono_render_option"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D"
    },
    {
      "id": "right_eye_off",
      "label": "Skip drawing the right eye",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Renderer.disable_right_eye_render"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D"
    },
    {
      "id": "volume",
      "label": "Volume",
      "tab": "audio",
      "type": "choice",
      "default": 1,
      "values": [
        {
          "value": 0,
          "label": "Muted"
        },
        {
          "value": 0.25,
          "label": "25%"
        },
        {
          "value": 0.5,
          "label": "50%"
        },
        {
          "value": 0.75,
          "label": "75%"
        },
        {
          "value": 1,
          "label": "100%"
        }
      ],
      "apply": {
        "kind": "config_edit",
        "file": "{config}/config/qt-config.ini",
        "format": "ini",
        "key": "Audio.volume"
      }
    }
  ],
  "presets": [
    {
      "id": "performance",
      "label": "Performance",
      "description": "Native resolution, no texture filter, shaders compiled in the background.",
      "values": {
        "resolution": 1,
        "texture_filter": 0,
        "async_shaders": true,
        "hw_shader": true,
        "vsync": false
      }
    },
    {
      "id": "balanced",
      "label": "Balanced",
      "description": "Twice the native resolution.",
      "values": {
        "resolution": 2,
        "texture_filter": 0,
        "async_shaders": true,
        "hw_shader": true,
        "vsync": false
      }
    },
    {
      "id": "quality",
      "label": "Quality",
      "description": "Four times the native resolution with smoothed textures.",
      "values": {
        "resolution": 4,
        "texture_filter": 2,
        "async_shaders": false,
        "hw_shader": true,
        "vsync": false
      }
    }
  ],
  "game_id": [
    {
      "from": "header",
      "offset": 16664,
      "len": 8,
      "encoding": "hex_le",
      "magic": [
        {
          "offset": 16640,
          "bytes": "4E434348"
        }
      ],
      "extensions": [
        "3ds",
        "cci"
      ]
    },
    {
      "from": "header",
      "offset": 280,
      "len": 8,
      "encoding": "hex_le",
      "magic": [
        {
          "offset": 256,
          "bytes": "4E434348"
        }
      ],
      "extensions": [
        "cxi"
      ]
    },
    {
      "from": "smdh",
      "extensions": [
        "3ds",
        "cci",
        "cxi"
      ]
    }
  ],
  "mods": {
    "dir": "{config}/load/mods/{title_id}",
    "method": "link",
    "layout": "single"
  },
  "platforms": {
    "windows": {
      "launch": {
        "kind": "exe",
        "path": "azahar.exe"
      },
      "source": {
        "kind": "github_release",
        "repo": "azahar-emu/azahar",
        "asset": "azahar-windows-msvc-*.zip",
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": "azahar.exe",
        "auto_update": false,
        "feed": null
      }
    },
    "linux": {
      "launch": {
        "kind": "exe",
        "path": "Azahar.AppImage"
      },
      "source": {
        "kind": "github_release",
        "repo": "azahar-emu/azahar",
        "asset": "azahar.AppImage",
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": "Azahar.AppImage",
        "auto_update": false,
        "feed": null
      },
      "working_dir": "{emulator_dir}",
      "env": {
        "XDG_CONFIG_HOME": "{user_data}/xdg-config",
        "XDG_DATA_HOME": "{user_data}/xdg-data",
        "XDG_CACHE_HOME": "{user_data}/xdg-cache"
      }
    }
  },
  "auto": {
    "renderer": 1
  },
  "unsupported": {
    "rumble": "The console had no rumble.",
    "netplay": "Online play is started from the emulator’s own menus."
  }
}
