{
  "version": 3,
  "id": "dolphin",
  "name": "Dolphin",
  "revision": "2026-10-01.4",
  "origin": {
    "kind": "url",
    "url": "https://kouch.dev/emulators/dolphin.kod"
  },
  "args": [
    "-b",
    "-u",
    "{config}",
    "-e",
    "{rom}"
  ],
  "working_dir": null,
  "env": {},
  "systems": [
    {
      "id": "wii",
      "folder": "wii",
      "art": {
        "thumbnails": "Nintendo - Wii"
      },
      "name": "Wii"
    },
    {
      "id": "gc",
      "folder": "gc",
      "art": {
        "thumbnails": "Nintendo - GameCube"
      },
      "name": "GameCube"
    }
  ],
  "extensions": [
    "iso",
    "wbfs",
    "rvz",
    "gcz",
    "wia",
    "ciso",
    "wad",
    "gcm"
  ],
  "max_players": 4,
  "players": [
    {
      "dsu": {
        "server": 0,
        "slot": 0
      },
      "vpad": null,
      "motion": true
    },
    {
      "dsu": {
        "server": 0,
        "slot": 1
      },
      "vpad": null,
      "motion": true
    },
    {
      "dsu": {
        "server": 0,
        "slot": 2
      },
      "vpad": null,
      "motion": true
    },
    {
      "dsu": {
        "server": 0,
        "slot": 3
      },
      "vpad": null,
      "motion": true
    }
  ],
  "window_mode": "fullscreen",
  "hotkeys": {
    "pause": {
      "keys": [
        "f10"
      ]
    },
    "save_state": {
      "keys": [
        "shift",
        "f1"
      ]
    },
    "load_state": {
      "keys": [
        "f1"
      ]
    },
    "reset": null,
    "screenshot": {
      "keys": [
        "f9"
      ]
    },
    "quit": null,
    "fullscreen": {
      "keys": [
        "f11"
      ]
    }
  },
  "pause": {
    "method": "hotkey",
    "chord": {
      "keys": [
        "f10"
      ]
    }
  },
  "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,
  "user_data": {
    "folders": {
      "saves": "saves",
      "states": "states",
      "screenshots": "screenshots",
      "config": "config",
      "system": "system"
    },
    "cloud": [
      "saves"
    ],
    "config_edits": [
      {
        "file": "{user_data}/config/Config/Dolphin.ini",
        "format": "ini",
        "set": {
          "Analytics.PermissionAsked": "True",
          "Analytics.Enabled": "False",
          "AutoUpdate.UpdateTrack": "",
          "Interface.ConfirmStop": "False",
          "Interface.PauseOnFocusLost": "False",
          "Display.Fullscreen": "True",
          "Display.RenderToMain": "False",
          "General.NANDRootPath": "{saves}/nand",
          "Core.WiimoteContinuousScanning": "False",
          "Core.SIDevice0": "6",
          "Core.WiiSDCard": "False",
          "Interface.SkipNKitWarning": "True",
          "Interface.UsePanicHandlers": "False",
          "Core.SIDevice1": "6",
          "Core.SIDevice2": "6",
          "Core.SIDevice3": "6",
          "Core.SlotA": "8",
          "Core.GCIFolderAPathOverride": "{saves}/GC/Card A"
        }
      },
      {
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "set": {
          "Settings.BorderlessFullscreen": "True"
        }
      },
      {
        "file": "{user_data}/config/Config/DSUClient.ini",
        "format": "ini",
        "set": {
          "Server.Enabled": "True",
          "Server.Entries": "Kouch1:{dsu_host}:{dsu_port};Kouch2:{dsu_host}:{dsu_port_2};"
        }
      },
      {
        "file": "{user_data}/config/Config/Hotkeys.ini",
        "format": "ini",
        "set": {
          "Hotkeys.Device": "DInput/0/Keyboard Mouse",
          "Hotkeys.General/Toggle Pause": "`F10`",
          "Hotkeys.General/Take Screenshot": "`F9`",
          "Hotkeys.Load State/Load State Slot 1": "`F1`",
          "Hotkeys.Save State/Save State Slot 1": "@(`Shift`+`F1`)",
          "Hotkeys.General/Toggle Fullscreen": "`F11`"
        }
      },
      {
        "file": "{user_data}/config/Config/WiimoteNew.ini",
        "format": "ini",
        "set": {
          "Wiimote1.Device": "DSUClient/0/Kouch1",
          "Wiimote1.Source": "1",
          "Wiimote1.Extension": "Nunchuk",
          "Wiimote1.Buttons/A": "`Cross`",
          "Wiimote1.Buttons/B": "`Circle` | `R2`",
          "Wiimote1.Buttons/1": "`Square`",
          "Wiimote1.Buttons/2": "`Triangle`",
          "Wiimote1.Buttons/-": "`Share`",
          "Wiimote1.Buttons/+": "`Options`",
          "Wiimote1.Buttons/Home": "`R3`",
          "Wiimote1.D-Pad/Up": "`Pad N`",
          "Wiimote1.D-Pad/Down": "`Pad S`",
          "Wiimote1.D-Pad/Left": "`Pad W`",
          "Wiimote1.D-Pad/Right": "`Pad E`",
          "Wiimote1.IMUAccelerometer/Up": "`Accel Up`",
          "Wiimote1.IMUAccelerometer/Down": "`Accel Down`",
          "Wiimote1.IMUAccelerometer/Left": "`Accel Left`",
          "Wiimote1.IMUAccelerometer/Right": "`Accel Right`",
          "Wiimote1.IMUAccelerometer/Forward": "`Accel Forward`",
          "Wiimote1.IMUAccelerometer/Backward": "`Accel Backward`",
          "Wiimote1.IMUGyroscope/Pitch Up": "`Gyro Pitch Up`",
          "Wiimote1.IMUGyroscope/Pitch Down": "`Gyro Pitch Down`",
          "Wiimote1.IMUGyroscope/Roll Left": "`Gyro Roll Left`",
          "Wiimote1.IMUGyroscope/Roll Right": "`Gyro Roll Right`",
          "Wiimote1.IMUGyroscope/Yaw Left": "`Gyro Yaw Left`",
          "Wiimote1.IMUGyroscope/Yaw Right": "`Gyro Yaw Right`",
          "Wiimote1.Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote1.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote1.Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote1.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote1.Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote1.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote1.Nunchuk/Stick/Up": "`Left Y+`",
          "Wiimote1.Nunchuk/Stick/Down": "`Left Y-`",
          "Wiimote1.Nunchuk/Stick/Left": "`Left X-`",
          "Wiimote1.Nunchuk/Stick/Right": "`Left X+`",
          "Wiimote1.Nunchuk/Buttons/C": "`L1`",
          "Wiimote1.Nunchuk/Buttons/Z": "`L2`",
          "Wiimote2.Device": "DSUClient/1/Kouch1",
          "Wiimote2.Source": "1",
          "Wiimote2.Extension": "Nunchuk",
          "Wiimote2.Buttons/A": "`Cross`",
          "Wiimote2.Buttons/B": "`Circle` | `R2`",
          "Wiimote2.Buttons/1": "`Square`",
          "Wiimote2.Buttons/2": "`Triangle`",
          "Wiimote2.Buttons/-": "`Share`",
          "Wiimote2.Buttons/+": "`Options`",
          "Wiimote2.Buttons/Home": "`R3`",
          "Wiimote2.D-Pad/Up": "`Pad N`",
          "Wiimote2.D-Pad/Down": "`Pad S`",
          "Wiimote2.D-Pad/Left": "`Pad W`",
          "Wiimote2.D-Pad/Right": "`Pad E`",
          "Wiimote2.IMUAccelerometer/Up": "`Accel Up`",
          "Wiimote2.IMUAccelerometer/Down": "`Accel Down`",
          "Wiimote2.IMUAccelerometer/Left": "`Accel Left`",
          "Wiimote2.IMUAccelerometer/Right": "`Accel Right`",
          "Wiimote2.IMUAccelerometer/Forward": "`Accel Forward`",
          "Wiimote2.IMUAccelerometer/Backward": "`Accel Backward`",
          "Wiimote2.IMUGyroscope/Pitch Up": "`Gyro Pitch Up`",
          "Wiimote2.IMUGyroscope/Pitch Down": "`Gyro Pitch Down`",
          "Wiimote2.IMUGyroscope/Roll Left": "`Gyro Roll Left`",
          "Wiimote2.IMUGyroscope/Roll Right": "`Gyro Roll Right`",
          "Wiimote2.IMUGyroscope/Yaw Left": "`Gyro Yaw Left`",
          "Wiimote2.IMUGyroscope/Yaw Right": "`Gyro Yaw Right`",
          "Wiimote2.Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote2.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote2.Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote2.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote2.Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote2.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote2.Nunchuk/Stick/Up": "`Left Y+`",
          "Wiimote2.Nunchuk/Stick/Down": "`Left Y-`",
          "Wiimote2.Nunchuk/Stick/Left": "`Left X-`",
          "Wiimote2.Nunchuk/Stick/Right": "`Left X+`",
          "Wiimote2.Nunchuk/Buttons/C": "`L1`",
          "Wiimote2.Nunchuk/Buttons/Z": "`L2`",
          "Wiimote3.Device": "DSUClient/2/Kouch1",
          "Wiimote3.Source": "1",
          "Wiimote3.Buttons/A": "`Cross`",
          "Wiimote3.Buttons/B": "`Circle` | `R2`",
          "Wiimote3.Buttons/1": "`Square`",
          "Wiimote3.Buttons/2": "`Triangle`",
          "Wiimote3.Buttons/-": "`Share`",
          "Wiimote3.Buttons/+": "`Options`",
          "Wiimote3.D-Pad/Up": "`Pad N`",
          "Wiimote3.D-Pad/Down": "`Pad S`",
          "Wiimote3.D-Pad/Left": "`Pad W`",
          "Wiimote3.D-Pad/Right": "`Pad E`",
          "Wiimote3.IMUAccelerometer/Up": "`Accel Up`",
          "Wiimote3.IMUAccelerometer/Down": "`Accel Down`",
          "Wiimote3.IMUAccelerometer/Left": "`Accel Left`",
          "Wiimote3.IMUAccelerometer/Right": "`Accel Right`",
          "Wiimote3.IMUAccelerometer/Forward": "`Accel Forward`",
          "Wiimote3.IMUAccelerometer/Backward": "`Accel Backward`",
          "Wiimote3.IMUGyroscope/Pitch Up": "`Gyro Pitch Up`",
          "Wiimote3.IMUGyroscope/Pitch Down": "`Gyro Pitch Down`",
          "Wiimote3.IMUGyroscope/Roll Left": "`Gyro Roll Left`",
          "Wiimote3.IMUGyroscope/Roll Right": "`Gyro Roll Right`",
          "Wiimote3.IMUGyroscope/Yaw Left": "`Gyro Yaw Left`",
          "Wiimote3.IMUGyroscope/Yaw Right": "`Gyro Yaw Right`",
          "Wiimote3.Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote3.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote3.Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote3.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote3.Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote3.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote4.Device": "DSUClient/3/Kouch1",
          "Wiimote4.Source": "1",
          "Wiimote4.Buttons/A": "`Cross`",
          "Wiimote4.Buttons/B": "`Circle` | `R2`",
          "Wiimote4.Buttons/1": "`Square`",
          "Wiimote4.Buttons/2": "`Triangle`",
          "Wiimote4.Buttons/-": "`Share`",
          "Wiimote4.Buttons/+": "`Options`",
          "Wiimote4.D-Pad/Up": "`Pad N`",
          "Wiimote4.D-Pad/Down": "`Pad S`",
          "Wiimote4.D-Pad/Left": "`Pad W`",
          "Wiimote4.D-Pad/Right": "`Pad E`",
          "Wiimote4.IMUAccelerometer/Up": "`Accel Up`",
          "Wiimote4.IMUAccelerometer/Down": "`Accel Down`",
          "Wiimote4.IMUAccelerometer/Left": "`Accel Left`",
          "Wiimote4.IMUAccelerometer/Right": "`Accel Right`",
          "Wiimote4.IMUAccelerometer/Forward": "`Accel Forward`",
          "Wiimote4.IMUAccelerometer/Backward": "`Accel Backward`",
          "Wiimote4.IMUGyroscope/Pitch Up": "`Gyro Pitch Up`",
          "Wiimote4.IMUGyroscope/Pitch Down": "`Gyro Pitch Down`",
          "Wiimote4.IMUGyroscope/Roll Left": "`Gyro Roll Left`",
          "Wiimote4.IMUGyroscope/Roll Right": "`Gyro Roll Right`",
          "Wiimote4.IMUGyroscope/Yaw Left": "`Gyro Yaw Left`",
          "Wiimote4.IMUGyroscope/Yaw Right": "`Gyro Yaw Right`",
          "Wiimote4.Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote4.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote4.Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote4.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote4.Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
          "Wiimote4.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`"
        }
      },
      {
        "file": "{user_data}/config/Config/GCPadNew.ini",
        "format": "ini",
        "set": {
          "GCPad1.Device": "DSUClient/0/Kouch1",
          "GCPad1.Buttons/A": "`Cross`",
          "GCPad1.Buttons/B": "`Square`",
          "GCPad1.Buttons/X": "`Circle`",
          "GCPad1.Buttons/Y": "`Triangle`",
          "GCPad1.Buttons/Z": "`R1`",
          "GCPad1.Buttons/Start": "`Options`",
          "GCPad1.Main Stick/Up": "`Left Y+`",
          "GCPad1.Main Stick/Down": "`Left Y-`",
          "GCPad1.Main Stick/Left": "`Left X-`",
          "GCPad1.Main Stick/Right": "`Left X+`",
          "GCPad1.C-Stick/Up": "`Right Y+`",
          "GCPad1.C-Stick/Down": "`Right Y-`",
          "GCPad1.C-Stick/Left": "`Right X-`",
          "GCPad1.C-Stick/Right": "`Right X+`",
          "GCPad1.Triggers/L": "`L2`",
          "GCPad1.Triggers/R": "`R2`",
          "GCPad1.Triggers/L-Analog": "`L2`",
          "GCPad1.Triggers/R-Analog": "`R2`",
          "GCPad1.D-Pad/Up": "`Pad N`",
          "GCPad1.D-Pad/Down": "`Pad S`",
          "GCPad1.D-Pad/Left": "`Pad W`",
          "GCPad1.D-Pad/Right": "`Pad E`",
          "GCPad2.Device": "DSUClient/1/Kouch1",
          "GCPad2.Buttons/A": "`Cross`",
          "GCPad2.Buttons/B": "`Square`",
          "GCPad2.Buttons/X": "`Circle`",
          "GCPad2.Buttons/Y": "`Triangle`",
          "GCPad2.Buttons/Z": "`R1`",
          "GCPad2.Buttons/Start": "`Options`",
          "GCPad2.Main Stick/Up": "`Left Y+`",
          "GCPad2.Main Stick/Down": "`Left Y-`",
          "GCPad2.Main Stick/Left": "`Left X-`",
          "GCPad2.Main Stick/Right": "`Left X+`",
          "GCPad2.C-Stick/Up": "`Right Y+`",
          "GCPad2.C-Stick/Down": "`Right Y-`",
          "GCPad2.C-Stick/Left": "`Right X-`",
          "GCPad2.C-Stick/Right": "`Right X+`",
          "GCPad2.Triggers/L": "`L2`",
          "GCPad2.Triggers/R": "`R2`",
          "GCPad2.Triggers/L-Analog": "`L2`",
          "GCPad2.Triggers/R-Analog": "`R2`",
          "GCPad2.D-Pad/Up": "`Pad N`",
          "GCPad2.D-Pad/Down": "`Pad S`",
          "GCPad2.D-Pad/Left": "`Pad W`",
          "GCPad2.D-Pad/Right": "`Pad E`",
          "GCPad3.Device": "DSUClient/2/Kouch1",
          "GCPad3.Buttons/A": "`Cross`",
          "GCPad3.Buttons/B": "`Square`",
          "GCPad3.Buttons/X": "`Circle`",
          "GCPad3.Buttons/Y": "`Triangle`",
          "GCPad3.Buttons/Z": "`R1`",
          "GCPad3.Buttons/Start": "`Options`",
          "GCPad3.Main Stick/Up": "`Left Y+`",
          "GCPad3.Main Stick/Down": "`Left Y-`",
          "GCPad3.Main Stick/Left": "`Left X-`",
          "GCPad3.Main Stick/Right": "`Left X+`",
          "GCPad3.C-Stick/Up": "`Right Y+`",
          "GCPad3.C-Stick/Down": "`Right Y-`",
          "GCPad3.C-Stick/Left": "`Right X-`",
          "GCPad3.C-Stick/Right": "`Right X+`",
          "GCPad3.Triggers/L": "`L2`",
          "GCPad3.Triggers/R": "`R2`",
          "GCPad3.Triggers/L-Analog": "`L2`",
          "GCPad3.Triggers/R-Analog": "`R2`",
          "GCPad3.D-Pad/Up": "`Pad N`",
          "GCPad3.D-Pad/Down": "`Pad S`",
          "GCPad3.D-Pad/Left": "`Pad W`",
          "GCPad3.D-Pad/Right": "`Pad E`",
          "GCPad4.Device": "DSUClient/3/Kouch1",
          "GCPad4.Buttons/A": "`Cross`",
          "GCPad4.Buttons/B": "`Square`",
          "GCPad4.Buttons/X": "`Circle`",
          "GCPad4.Buttons/Y": "`Triangle`",
          "GCPad4.Buttons/Z": "`R1`",
          "GCPad4.Buttons/Start": "`Options`",
          "GCPad4.Main Stick/Up": "`Left Y+`",
          "GCPad4.Main Stick/Down": "`Left Y-`",
          "GCPad4.Main Stick/Left": "`Left X-`",
          "GCPad4.Main Stick/Right": "`Left X+`",
          "GCPad4.C-Stick/Up": "`Right Y+`",
          "GCPad4.C-Stick/Down": "`Right Y-`",
          "GCPad4.C-Stick/Left": "`Right X-`",
          "GCPad4.C-Stick/Right": "`Right X+`",
          "GCPad4.Triggers/L": "`L2`",
          "GCPad4.Triggers/R": "`R2`",
          "GCPad4.Triggers/L-Analog": "`L2`",
          "GCPad4.Triggers/R-Analog": "`R2`",
          "GCPad4.D-Pad/Up": "`Pad N`",
          "GCPad4.D-Pad/Down": "`Pad S`",
          "GCPad4.D-Pad/Left": "`Pad W`",
          "GCPad4.D-Pad/Right": "`Pad E`"
        }
      }
    ],
    "private": [
      "saves/nand/sys/**",
      "saves/nand/ticket/**",
      "saves/nand/shared1/**",
      "saves/nand/title/00000001/**",
      "saves/nand/title/*/*/content/**",
      "saves/nand/import/**",
      "saves/nand/meta/**",
      "saves/nand/tmp/**"
    ],
    "links": [
      {
        "link": "{config}/ScreenShots",
        "target": "{screenshots}"
      }
    ],
    "game_files": [
      {
        "part": "saves",
        "glob": "nand/title/00010000/{title_id|slice:0:4|hex}/**"
      },
      {
        "part": "config",
        "glob": "StateSaves/{title_id}.s*"
      },
      {
        "part": "config",
        "glob": "GameSettings/{title_id}.ini"
      }
    ],
    "system_files": [
      {
        "names": [
          "IPL.bin"
        ],
        "sizes": [
          2097152
        ],
        "kind": "file",
        "what": "Start-up ROM",
        "required": false,
        "features": "the console’s start-up animation and system menu",
        "sub_path_choices": [
          {
            "label": "USA",
            "sub_path": "USA"
          },
          {
            "label": "Europe",
            "sub_path": "EUR"
          },
          {
            "label": "Japan",
            "sub_path": "JAP"
          }
        ],
        "read_at": "config:GC"
      }
    ]
  },
  "options": [
    {
      "id": "controller",
      "label": "Controller",
      "tab": "controls",
      "type": "controller",
      "default": "attachment",
      "values": [
        {
          "value": "attachment",
          "label": "Remote with attachment",
          "icon": "kouch:remote-attachment",
          "needs": [
            "motion",
            "pointer",
            "second_piece"
          ],
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.Extension": "Nunchuk",
                "Wiimote1.Options/Sideways Wiimote": "False",
                "Wiimote1.Options/Upright Wiimote": "False",
                "Wiimote2.Extension": "Nunchuk",
                "Wiimote2.Options/Sideways Wiimote": "False",
                "Wiimote2.Options/Upright Wiimote": "False",
                "Wiimote3.Extension": "Nunchuk",
                "Wiimote3.Options/Sideways Wiimote": "False",
                "Wiimote3.Options/Upright Wiimote": "False",
                "Wiimote4.Extension": "Nunchuk",
                "Wiimote4.Options/Sideways Wiimote": "False",
                "Wiimote4.Options/Upright Wiimote": "False",
                "Wiimote1.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote1.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote1.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote1.Nunchuk/Stick/Up": "`Left Y+`",
                "Wiimote1.Nunchuk/Stick/Down": "`Left Y-`",
                "Wiimote1.Nunchuk/Stick/Left": "`Left X-`",
                "Wiimote1.Nunchuk/Stick/Right": "`Left X+`",
                "Wiimote1.Nunchuk/Buttons/C": "`L1`",
                "Wiimote1.Nunchuk/Buttons/Z": "`L2`",
                "Wiimote2.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote2.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote2.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote2.Nunchuk/Stick/Up": "`Left Y+`",
                "Wiimote2.Nunchuk/Stick/Down": "`Left Y-`",
                "Wiimote2.Nunchuk/Stick/Left": "`Left X-`",
                "Wiimote2.Nunchuk/Stick/Right": "`Left X+`",
                "Wiimote2.Nunchuk/Buttons/C": "`L1`",
                "Wiimote2.Nunchuk/Buttons/Z": "`L2`",
                "Wiimote3.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote3.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote3.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote3.Nunchuk/Stick/Up": "`Left Y+`",
                "Wiimote3.Nunchuk/Stick/Down": "`Left Y-`",
                "Wiimote3.Nunchuk/Stick/Left": "`Left X-`",
                "Wiimote3.Nunchuk/Stick/Right": "`Left X+`",
                "Wiimote3.Nunchuk/Buttons/C": "`L1`",
                "Wiimote3.Nunchuk/Buttons/Z": "`L2`",
                "Wiimote4.Nunchuk/Shake/X": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote4.Nunchuk/Shake/Y": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote4.Nunchuk/Shake/Z": "(smooth((abs(`Accel Up`) > 18) | (abs(`Accel Left`) > 18) | (abs(`Accel Forward`) > 18), 0, 0.9) > 0.5) | `R1`",
                "Wiimote4.Nunchuk/Stick/Up": "`Left Y+`",
                "Wiimote4.Nunchuk/Stick/Down": "`Left Y-`",
                "Wiimote4.Nunchuk/Stick/Left": "`Left X-`",
                "Wiimote4.Nunchuk/Stick/Right": "`Left X+`",
                "Wiimote4.Nunchuk/Buttons/C": "`L1`",
                "Wiimote4.Nunchuk/Buttons/Z": "`L2`"
              }
            }
          ]
        },
        {
          "value": "upright",
          "label": "Remote",
          "icon": "kouch:remote-upright",
          "needs": [
            "motion",
            "pointer"
          ],
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.Extension": "None",
                "Wiimote1.Options/Sideways Wiimote": "False",
                "Wiimote1.Options/Upright Wiimote": "False",
                "Wiimote2.Extension": "None",
                "Wiimote2.Options/Sideways Wiimote": "False",
                "Wiimote2.Options/Upright Wiimote": "False",
                "Wiimote3.Extension": "None",
                "Wiimote3.Options/Sideways Wiimote": "False",
                "Wiimote3.Options/Upright Wiimote": "False",
                "Wiimote4.Extension": "None",
                "Wiimote4.Options/Sideways Wiimote": "False",
                "Wiimote4.Options/Upright Wiimote": "False"
              }
            }
          ]
        },
        {
          "value": "sideways",
          "label": "Remote held sideways",
          "icon": "kouch:remote-sideways",
          "needs": [
            "motion"
          ],
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.Extension": "None",
                "Wiimote1.Options/Sideways Wiimote": "True",
                "Wiimote1.Options/Upright Wiimote": "False",
                "Wiimote2.Extension": "None",
                "Wiimote2.Options/Sideways Wiimote": "True",
                "Wiimote2.Options/Upright Wiimote": "False",
                "Wiimote3.Extension": "None",
                "Wiimote3.Options/Sideways Wiimote": "True",
                "Wiimote3.Options/Upright Wiimote": "False",
                "Wiimote4.Extension": "None",
                "Wiimote4.Options/Sideways Wiimote": "True",
                "Wiimote4.Options/Upright Wiimote": "False",
                "Wiimote1.Buttons/2": "`Cross`",
                "Wiimote1.Buttons/1": "`Square`",
                "Wiimote1.Buttons/A": "`Circle`",
                "Wiimote1.Buttons/B": "`Triangle` | `R2`",
                "Wiimote1.D-Pad/Up": "`Pad N` | `Left Y+`",
                "Wiimote1.D-Pad/Down": "`Pad S` | `Left Y-`",
                "Wiimote1.D-Pad/Left": "`Pad W` | `Left X-`",
                "Wiimote1.D-Pad/Right": "`Pad E` | `Left X+`",
                "Wiimote2.Buttons/2": "`Cross`",
                "Wiimote2.Buttons/1": "`Square`",
                "Wiimote2.Buttons/A": "`Circle`",
                "Wiimote2.Buttons/B": "`Triangle` | `R2`",
                "Wiimote2.D-Pad/Up": "`Pad N` | `Left Y+`",
                "Wiimote2.D-Pad/Down": "`Pad S` | `Left Y-`",
                "Wiimote2.D-Pad/Left": "`Pad W` | `Left X-`",
                "Wiimote2.D-Pad/Right": "`Pad E` | `Left X+`",
                "Wiimote3.Buttons/2": "`Cross`",
                "Wiimote3.Buttons/1": "`Square`",
                "Wiimote3.Buttons/A": "`Circle`",
                "Wiimote3.Buttons/B": "`Triangle` | `R2`",
                "Wiimote3.D-Pad/Up": "`Pad N` | `Left Y+`",
                "Wiimote3.D-Pad/Down": "`Pad S` | `Left Y-`",
                "Wiimote3.D-Pad/Left": "`Pad W` | `Left X-`",
                "Wiimote3.D-Pad/Right": "`Pad E` | `Left X+`",
                "Wiimote4.Buttons/2": "`Cross`",
                "Wiimote4.Buttons/1": "`Square`",
                "Wiimote4.Buttons/A": "`Circle`",
                "Wiimote4.Buttons/B": "`Triangle` | `R2`",
                "Wiimote4.D-Pad/Up": "`Pad N` | `Left Y+`",
                "Wiimote4.D-Pad/Down": "`Pad S` | `Left Y-`",
                "Wiimote4.D-Pad/Left": "`Pad W` | `Left X-`",
                "Wiimote4.D-Pad/Right": "`Pad E` | `Left X+`"
              }
            }
          ]
        },
        {
          "value": "classic",
          "label": "Classic pad",
          "icon": "kouch:classic-pad",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.Extension": "Classic",
                "Wiimote1.Options/Sideways Wiimote": "False",
                "Wiimote1.Options/Upright Wiimote": "False",
                "Wiimote2.Extension": "Classic",
                "Wiimote2.Options/Sideways Wiimote": "False",
                "Wiimote2.Options/Upright Wiimote": "False",
                "Wiimote3.Extension": "Classic",
                "Wiimote3.Options/Sideways Wiimote": "False",
                "Wiimote3.Options/Upright Wiimote": "False",
                "Wiimote4.Extension": "Classic",
                "Wiimote4.Options/Sideways Wiimote": "False",
                "Wiimote4.Options/Upright Wiimote": "False",
                "Wiimote1.Buttons/A": "",
                "Wiimote1.Buttons/B": "",
                "Wiimote1.Buttons/1": "",
                "Wiimote1.Buttons/2": "",
                "Wiimote1.Buttons/-": "",
                "Wiimote1.Buttons/+": "",
                "Wiimote1.Buttons/Home": "",
                "Wiimote1.D-Pad/Up": "",
                "Wiimote1.D-Pad/Down": "",
                "Wiimote1.D-Pad/Left": "",
                "Wiimote1.D-Pad/Right": "",
                "Wiimote1.Shake/X": "",
                "Wiimote1.Shake/Y": "",
                "Wiimote1.Shake/Z": "",
                "Wiimote1.Classic/Buttons/A": "`Circle`",
                "Wiimote1.Classic/Buttons/B": "`Cross`",
                "Wiimote1.Classic/Buttons/X": "`Triangle`",
                "Wiimote1.Classic/Buttons/Y": "`Square`",
                "Wiimote1.Classic/Buttons/ZL": "`L2`",
                "Wiimote1.Classic/Buttons/ZR": "`R2`",
                "Wiimote1.Classic/Buttons/-": "`Share`",
                "Wiimote1.Classic/Buttons/+": "`Options`",
                "Wiimote1.Classic/Buttons/Home": "`R3`",
                "Wiimote1.Classic/Triggers/L": "`L1`",
                "Wiimote1.Classic/Triggers/R": "`R1`",
                "Wiimote1.Classic/Triggers/L-Analog": "`L1`",
                "Wiimote1.Classic/Triggers/R-Analog": "`R1`",
                "Wiimote1.Classic/Left Stick/Up": "`Left Y+`",
                "Wiimote1.Classic/Left Stick/Down": "`Left Y-`",
                "Wiimote1.Classic/Left Stick/Left": "`Left X-`",
                "Wiimote1.Classic/Left Stick/Right": "`Left X+`",
                "Wiimote1.Classic/Right Stick/Up": "`Right Y+`",
                "Wiimote1.Classic/Right Stick/Down": "`Right Y-`",
                "Wiimote1.Classic/Right Stick/Left": "`Right X-`",
                "Wiimote1.Classic/Right Stick/Right": "`Right X+`",
                "Wiimote1.Classic/D-Pad/Up": "`Pad N`",
                "Wiimote1.Classic/D-Pad/Down": "`Pad S`",
                "Wiimote1.Classic/D-Pad/Left": "`Pad W`",
                "Wiimote1.Classic/D-Pad/Right": "`Pad E`",
                "Wiimote2.Buttons/A": "",
                "Wiimote2.Buttons/B": "",
                "Wiimote2.Buttons/1": "",
                "Wiimote2.Buttons/2": "",
                "Wiimote2.Buttons/-": "",
                "Wiimote2.Buttons/+": "",
                "Wiimote2.Buttons/Home": "",
                "Wiimote2.D-Pad/Up": "",
                "Wiimote2.D-Pad/Down": "",
                "Wiimote2.D-Pad/Left": "",
                "Wiimote2.D-Pad/Right": "",
                "Wiimote2.Shake/X": "",
                "Wiimote2.Shake/Y": "",
                "Wiimote2.Shake/Z": "",
                "Wiimote2.Classic/Buttons/A": "`Circle`",
                "Wiimote2.Classic/Buttons/B": "`Cross`",
                "Wiimote2.Classic/Buttons/X": "`Triangle`",
                "Wiimote2.Classic/Buttons/Y": "`Square`",
                "Wiimote2.Classic/Buttons/ZL": "`L2`",
                "Wiimote2.Classic/Buttons/ZR": "`R2`",
                "Wiimote2.Classic/Buttons/-": "`Share`",
                "Wiimote2.Classic/Buttons/+": "`Options`",
                "Wiimote2.Classic/Buttons/Home": "`R3`",
                "Wiimote2.Classic/Triggers/L": "`L1`",
                "Wiimote2.Classic/Triggers/R": "`R1`",
                "Wiimote2.Classic/Triggers/L-Analog": "`L1`",
                "Wiimote2.Classic/Triggers/R-Analog": "`R1`",
                "Wiimote2.Classic/Left Stick/Up": "`Left Y+`",
                "Wiimote2.Classic/Left Stick/Down": "`Left Y-`",
                "Wiimote2.Classic/Left Stick/Left": "`Left X-`",
                "Wiimote2.Classic/Left Stick/Right": "`Left X+`",
                "Wiimote2.Classic/Right Stick/Up": "`Right Y+`",
                "Wiimote2.Classic/Right Stick/Down": "`Right Y-`",
                "Wiimote2.Classic/Right Stick/Left": "`Right X-`",
                "Wiimote2.Classic/Right Stick/Right": "`Right X+`",
                "Wiimote2.Classic/D-Pad/Up": "`Pad N`",
                "Wiimote2.Classic/D-Pad/Down": "`Pad S`",
                "Wiimote2.Classic/D-Pad/Left": "`Pad W`",
                "Wiimote2.Classic/D-Pad/Right": "`Pad E`",
                "Wiimote3.Buttons/A": "",
                "Wiimote3.Buttons/B": "",
                "Wiimote3.Buttons/1": "",
                "Wiimote3.Buttons/2": "",
                "Wiimote3.Buttons/-": "",
                "Wiimote3.Buttons/+": "",
                "Wiimote3.Buttons/Home": "",
                "Wiimote3.D-Pad/Up": "",
                "Wiimote3.D-Pad/Down": "",
                "Wiimote3.D-Pad/Left": "",
                "Wiimote3.D-Pad/Right": "",
                "Wiimote3.Shake/X": "",
                "Wiimote3.Shake/Y": "",
                "Wiimote3.Shake/Z": "",
                "Wiimote3.Classic/Buttons/A": "`Circle`",
                "Wiimote3.Classic/Buttons/B": "`Cross`",
                "Wiimote3.Classic/Buttons/X": "`Triangle`",
                "Wiimote3.Classic/Buttons/Y": "`Square`",
                "Wiimote3.Classic/Buttons/ZL": "`L2`",
                "Wiimote3.Classic/Buttons/ZR": "`R2`",
                "Wiimote3.Classic/Buttons/-": "`Share`",
                "Wiimote3.Classic/Buttons/+": "`Options`",
                "Wiimote3.Classic/Buttons/Home": "`R3`",
                "Wiimote3.Classic/Triggers/L": "`L1`",
                "Wiimote3.Classic/Triggers/R": "`R1`",
                "Wiimote3.Classic/Triggers/L-Analog": "`L1`",
                "Wiimote3.Classic/Triggers/R-Analog": "`R1`",
                "Wiimote3.Classic/Left Stick/Up": "`Left Y+`",
                "Wiimote3.Classic/Left Stick/Down": "`Left Y-`",
                "Wiimote3.Classic/Left Stick/Left": "`Left X-`",
                "Wiimote3.Classic/Left Stick/Right": "`Left X+`",
                "Wiimote3.Classic/Right Stick/Up": "`Right Y+`",
                "Wiimote3.Classic/Right Stick/Down": "`Right Y-`",
                "Wiimote3.Classic/Right Stick/Left": "`Right X-`",
                "Wiimote3.Classic/Right Stick/Right": "`Right X+`",
                "Wiimote3.Classic/D-Pad/Up": "`Pad N`",
                "Wiimote3.Classic/D-Pad/Down": "`Pad S`",
                "Wiimote3.Classic/D-Pad/Left": "`Pad W`",
                "Wiimote3.Classic/D-Pad/Right": "`Pad E`",
                "Wiimote4.Buttons/A": "",
                "Wiimote4.Buttons/B": "",
                "Wiimote4.Buttons/1": "",
                "Wiimote4.Buttons/2": "",
                "Wiimote4.Buttons/-": "",
                "Wiimote4.Buttons/+": "",
                "Wiimote4.Buttons/Home": "",
                "Wiimote4.D-Pad/Up": "",
                "Wiimote4.D-Pad/Down": "",
                "Wiimote4.D-Pad/Left": "",
                "Wiimote4.D-Pad/Right": "",
                "Wiimote4.Shake/X": "",
                "Wiimote4.Shake/Y": "",
                "Wiimote4.Shake/Z": "",
                "Wiimote4.Classic/Buttons/A": "`Circle`",
                "Wiimote4.Classic/Buttons/B": "`Cross`",
                "Wiimote4.Classic/Buttons/X": "`Triangle`",
                "Wiimote4.Classic/Buttons/Y": "`Square`",
                "Wiimote4.Classic/Buttons/ZL": "`L2`",
                "Wiimote4.Classic/Buttons/ZR": "`R2`",
                "Wiimote4.Classic/Buttons/-": "`Share`",
                "Wiimote4.Classic/Buttons/+": "`Options`",
                "Wiimote4.Classic/Buttons/Home": "`R3`",
                "Wiimote4.Classic/Triggers/L": "`L1`",
                "Wiimote4.Classic/Triggers/R": "`R1`",
                "Wiimote4.Classic/Triggers/L-Analog": "`L1`",
                "Wiimote4.Classic/Triggers/R-Analog": "`R1`",
                "Wiimote4.Classic/Left Stick/Up": "`Left Y+`",
                "Wiimote4.Classic/Left Stick/Down": "`Left Y-`",
                "Wiimote4.Classic/Left Stick/Left": "`Left X-`",
                "Wiimote4.Classic/Left Stick/Right": "`Left X+`",
                "Wiimote4.Classic/Right Stick/Up": "`Right Y+`",
                "Wiimote4.Classic/Right Stick/Down": "`Right Y-`",
                "Wiimote4.Classic/Right Stick/Left": "`Right X-`",
                "Wiimote4.Classic/Right Stick/Right": "`Right X+`",
                "Wiimote4.Classic/D-Pad/Up": "`Pad N`",
                "Wiimote4.Classic/D-Pad/Down": "`Pad S`",
                "Wiimote4.Classic/D-Pad/Left": "`Pad W`",
                "Wiimote4.Classic/D-Pad/Right": "`Pad E`"
              }
            }
          ]
        }
      ]
    },
    {
      "id": "backend",
      "label": "Renderer",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": "D3D",
          "label": "Direct3D 11",
          "os": [
            "windows"
          ]
        },
        {
          "value": "D3D12",
          "label": "Direct3D 12",
          "os": [
            "windows"
          ]
        },
        {
          "value": "Vulkan",
          "label": "Vulkan"
        },
        {
          "value": "OGL",
          "label": "OpenGL"
        },
        {
          "value": "Software Renderer",
          "label": "Software (very slow)"
        }
      ],
      "default": "Vulkan",
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/Dolphin.ini",
        "format": "ini",
        "key": "Core.GFXBackend"
      },
      "role": "renderer",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "shader_compilation",
      "label": "Shader compilation",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Specialized (smooth once cached)"
        },
        {
          "value": 1,
          "label": "Ubershaders only"
        },
        {
          "value": 2,
          "label": "Hybrid ubershaders"
        },
        {
          "value": 3,
          "label": "Skip drawing until ready"
        }
      ],
      "default": 2,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.ShaderCompilationMode"
      },
      "role": "enhancement",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "wait_for_shaders",
      "label": "Compile shaders before starting",
      "tab": "graphics",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.WaitForShadersBeforeStarting",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "backend_multithreading",
      "label": "Multithreaded renderer",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.BackendMultithreading",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": false
    },
    {
      "id": "gpu_texture_decoding",
      "label": "Decode textures on the GPU",
      "tab": "advanced",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.EnableGPUTextureDecoding",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": false
    },
    {
      "id": "resolution",
      "label": "Internal resolution",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 1,
          "label": "Native (640×528)"
        },
        {
          "value": 2,
          "label": "2× (1280×1056) for 720p"
        },
        {
          "value": 3,
          "label": "3× (1920×1584) for 1080p"
        },
        {
          "value": 4,
          "label": "4× (2560×2112) for 1440p"
        },
        {
          "value": 5,
          "label": "5× (3200×2640)"
        },
        {
          "value": 6,
          "label": "6× (3840×3168) for 4K"
        },
        {
          "value": 7,
          "label": "7× (4480×3696)"
        },
        {
          "value": 8,
          "label": "8× (5120×4224) for 5K"
        }
      ],
      "default": 2,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.InternalResolution"
      },
      "role": "internal_resolution",
      "section": "Resolution",
      "restart": false
    },
    {
      "id": "output_resampling",
      "label": "Scaling filter",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Automatic"
        },
        {
          "value": 1,
          "label": "Bilinear"
        },
        {
          "value": 2,
          "label": "Bicubic: B-Spline"
        },
        {
          "value": 3,
          "label": "Bicubic: Mitchell-Netravali"
        },
        {
          "value": 4,
          "label": "Bicubic: Catmull-Rom"
        },
        {
          "value": 5,
          "label": "Sharp bilinear"
        },
        {
          "value": 6,
          "label": "Area sampling"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.OutputResampling"
      },
      "role": "output_filter",
      "section": "Resolution",
      "restart": false
    },
    {
      "id": "aspect",
      "label": "Screen shape",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "The game’s own"
        },
        {
          "value": 1,
          "label": "16:9"
        },
        {
          "value": 2,
          "label": "4:3"
        },
        {
          "value": 3,
          "label": "Stretch to fill"
        },
        {
          "value": 6,
          "label": "Square pixels"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.AspectRatio"
      },
      "role": "aspect",
      "section": "Resolution",
      "restart": false
    },
    {
      "id": "widescreen_hack",
      "label": "Widescreen",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.wideScreenHack",
        "on": "True",
        "off": "False"
      },
      "description": "Renders 3D games in 16:9; some games show glitches at the edges.",
      "role": "aspect",
      "section": "Resolution",
      "restart": false
    },
    {
      "id": "crop",
      "label": "Crop to the aspect ratio",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.Crop",
        "on": "True",
        "off": "False"
      },
      "role": "aspect",
      "section": "Resolution",
      "restart": false
    },
    {
      "id": "msaa",
      "label": "Anti-aliasing",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": "0x00000001",
          "label": "Off"
        },
        {
          "value": "0x00000002",
          "label": "2× MSAA"
        },
        {
          "value": "0x00000004",
          "label": "4× MSAA"
        },
        {
          "value": "0x00000008",
          "label": "8× MSAA"
        }
      ],
      "default": "0x00000001",
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.MSAA"
      },
      "role": "anti_aliasing",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "ssaa",
      "label": "Supersampling",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.SSAA",
        "on": "True",
        "off": "False"
      },
      "role": "anti_aliasing",
      "section": "Image quality",
      "restart": false,
      "description": "Uses the anti-aliasing level above: sharper and slower."
    },
    {
      "id": "anisotropy",
      "label": "Anisotropic filtering",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": -1,
          "label": "As the game sets it"
        },
        {
          "value": 0,
          "label": "1×"
        },
        {
          "value": 1,
          "label": "2×"
        },
        {
          "value": 2,
          "label": "4×"
        },
        {
          "value": 3,
          "label": "8×"
        },
        {
          "value": 4,
          "label": "16×"
        }
      ],
      "default": -1,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.MaxAnisotropy"
      },
      "role": "anisotropic",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "texture_filtering",
      "label": "Texture smoothing",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "As the game sets it"
        },
        {
          "value": 1,
          "label": "Sharp (nearest)"
        },
        {
          "value": 2,
          "label": "Smooth (linear)"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.ForceTextureFiltering"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "true_color",
      "label": "Force 24-bit colour",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.ForceTrueColor",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": false
    },
    {
      "id": "disable_copy_filter",
      "label": "Skip the copy filter",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.DisableCopyFilter",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": false
    },
    {
      "id": "mipmap_detection",
      "label": "Arbitrary mipmap detection",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.ArbitraryMipmapDetection",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": false
    },
    {
      "id": "pixel_lighting",
      "label": "Per-pixel lighting",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.EnablePixelLighting",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "disable_fog",
      "label": "Disable fog",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.DisableFog",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "scaled_efb_copy",
      "label": "Scaled EFB copy",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Hacks.EFBScaledCopy",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Expert graphics",
      "restart": false
    },
    {
      "id": "hires_textures",
      "label": "Load custom textures",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.HiresTextures",
        "on": "True",
        "off": "False"
      },
      "role": "enhancement",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "hdr",
      "label": "HDR post-processing",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Enhancements.HDROutput",
        "on": "True",
        "off": "False"
      },
      "role": "hdr",
      "section": "Image quality",
      "restart": false
    },
    {
      "id": "vsync",
      "label": "V-Sync",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Hardware.VSync",
        "on": "True",
        "off": "False"
      },
      "description": "Off by default in Kouch, for lower input lag.",
      "role": "vsync",
      "section": "Display",
      "restart": false
    },
    {
      "id": "show_fps",
      "label": "Show frame rate",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Settings.ShowFPS",
        "on": "True",
        "off": "False"
      },
      "role": "other",
      "section": "Display",
      "restart": false
    },
    {
      "id": "stereo_mode",
      "label": "Stereoscopic 3D",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Off"
        },
        {
          "value": 1,
          "label": "Side by side"
        },
        {
          "value": 2,
          "label": "Top and bottom"
        },
        {
          "value": 3,
          "label": "Anaglyph"
        },
        {
          "value": 5,
          "label": "Passive"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Stereoscopy.StereoMode"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D",
      "restart": false
    },
    {
      "id": "stereo_depth",
      "label": "3D depth",
      "tab": "graphics",
      "type": "slider",
      "min": 0,
      "max": 100,
      "step": 1,
      "default": 20,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Stereoscopy.StereoDepth"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D",
      "restart": false
    },
    {
      "id": "stereo_swap",
      "label": "Swap eyes",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/GFX.ini",
        "format": "ini",
        "key": "Stereoscopy.StereoSwapEyes",
        "on": "True",
        "off": "False"
      },
      "role": "stereo_3d",
      "section": "Stereoscopic 3D",
      "restart": false
    },
    {
      "id": "volume",
      "label": "Volume",
      "tab": "audio",
      "type": "slider",
      "min": 0,
      "max": 100,
      "step": 5,
      "default": 100,
      "apply": {
        "kind": "config_edit",
        "file": "{user_data}/config/Config/Dolphin.ini",
        "format": "ini",
        "key": "DSP.Volume"
      }
    },
    {
      "id": "pointer_motion",
      "label": "Aim with",
      "tab": "controls",
      "type": "choice",
      "values": [
        {
          "value": true,
          "label": "Moving the controller",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Enabled": "True",
                "Wiimote1.IR/Up": "",
                "Wiimote1.IR/Down": "",
                "Wiimote1.IR/Left": "",
                "Wiimote1.IR/Right": "",
                "Wiimote2.IMUIR/Enabled": "True",
                "Wiimote2.IR/Up": "",
                "Wiimote2.IR/Down": "",
                "Wiimote2.IR/Left": "",
                "Wiimote2.IR/Right": "",
                "Wiimote3.IMUIR/Enabled": "True",
                "Wiimote3.IR/Up": "",
                "Wiimote3.IR/Down": "",
                "Wiimote3.IR/Left": "",
                "Wiimote3.IR/Right": "",
                "Wiimote4.IMUIR/Enabled": "True",
                "Wiimote4.IR/Up": "",
                "Wiimote4.IR/Down": "",
                "Wiimote4.IR/Left": "",
                "Wiimote4.IR/Right": ""
              }
            }
          ]
        },
        {
          "value": false,
          "label": "Right stick",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Enabled": "False",
                "Wiimote1.IR/Up": "`Right Y+`",
                "Wiimote1.IR/Down": "`Right Y-`",
                "Wiimote1.IR/Left": "`Right X-`",
                "Wiimote1.IR/Right": "`Right X+`",
                "Wiimote2.IMUIR/Enabled": "False",
                "Wiimote2.IR/Up": "`Right Y+`",
                "Wiimote2.IR/Down": "`Right Y-`",
                "Wiimote2.IR/Left": "`Right X-`",
                "Wiimote2.IR/Right": "`Right X+`",
                "Wiimote3.IMUIR/Enabled": "False",
                "Wiimote3.IR/Up": "`Right Y+`",
                "Wiimote3.IR/Down": "`Right Y-`",
                "Wiimote3.IR/Left": "`Right X-`",
                "Wiimote3.IR/Right": "`Right X+`",
                "Wiimote4.IMUIR/Enabled": "False",
                "Wiimote4.IR/Up": "`Right Y+`",
                "Wiimote4.IR/Down": "`Right Y-`",
                "Wiimote4.IR/Left": "`Right X-`",
                "Wiimote4.IR/Right": "`Right X+`"
              }
            }
          ]
        },
        {
          "value": "trackpad",
          "label": "Trackpad",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Enabled": "False",
                "Wiimote1.IR/Up": "`Touch Y-`",
                "Wiimote1.IR/Down": "`Touch Y+`",
                "Wiimote1.IR/Left": "`Touch X-`",
                "Wiimote1.IR/Right": "`Touch X+`",
                "Wiimote2.IMUIR/Enabled": "False",
                "Wiimote2.IR/Up": "`Touch Y-`",
                "Wiimote2.IR/Down": "`Touch Y+`",
                "Wiimote2.IR/Left": "`Touch X-`",
                "Wiimote2.IR/Right": "`Touch X+`",
                "Wiimote3.IMUIR/Enabled": "False",
                "Wiimote3.IR/Up": "`Touch Y-`",
                "Wiimote3.IR/Down": "`Touch Y+`",
                "Wiimote3.IR/Left": "`Touch X-`",
                "Wiimote3.IR/Right": "`Touch X+`",
                "Wiimote4.IMUIR/Enabled": "False",
                "Wiimote4.IR/Up": "`Touch Y-`",
                "Wiimote4.IR/Down": "`Touch Y+`",
                "Wiimote4.IR/Left": "`Touch X-`",
                "Wiimote4.IR/Right": "`Touch X+`"
              }
            }
          ]
        }
      ],
      "default": true,
      "description": "How every player points at the screen: by moving the controller (the stick then stays free for the game), with the right stick, or by sliding a finger on the controller's trackpad."
    },
    {
      "id": "pointer_recenter",
      "label": "Re-centre the pointer with",
      "tab": "controls",
      "type": "choice",
      "values": [
        {
          "value": "l3",
          "label": "L3",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Recenter": "`L3`",
                "Wiimote2.IMUIR/Recenter": "`L3`",
                "Wiimote3.IMUIR/Recenter": "`L3`",
                "Wiimote4.IMUIR/Recenter": "`L3`"
              }
            }
          ]
        },
        {
          "value": "l3_hold",
          "label": "L3, held",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Recenter": "hold(`L3`, 0.6)",
                "Wiimote2.IMUIR/Recenter": "hold(`L3`, 0.6)",
                "Wiimote3.IMUIR/Recenter": "hold(`L3`, 0.6)",
                "Wiimote4.IMUIR/Recenter": "hold(`L3`, 0.6)"
              }
            }
          ]
        },
        {
          "value": "r3_hold",
          "label": "R3, held",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Recenter": "hold(`R3`, 0.6)",
                "Wiimote2.IMUIR/Recenter": "hold(`R3`, 0.6)",
                "Wiimote3.IMUIR/Recenter": "hold(`R3`, 0.6)",
                "Wiimote4.IMUIR/Recenter": "hold(`R3`, 0.6)"
              }
            }
          ]
        },
        {
          "value": "select_hold",
          "label": "Select, held",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Recenter": "hold(`Share`, 0.6)",
                "Wiimote2.IMUIR/Recenter": "hold(`Share`, 0.6)",
                "Wiimote3.IMUIR/Recenter": "hold(`Share`, 0.6)",
                "Wiimote4.IMUIR/Recenter": "hold(`Share`, 0.6)"
              }
            }
          ]
        },
        {
          "value": "off",
          "label": "Off",
          "edits": [
            {
              "file": "{user_data}/config/Config/WiimoteNew.ini",
              "format": "ini",
              "set": {
                "Wiimote1.IMUIR/Recenter": "",
                "Wiimote2.IMUIR/Recenter": "",
                "Wiimote3.IMUIR/Recenter": "",
                "Wiimote4.IMUIR/Recenter": ""
              }
            }
          ]
        }
      ],
      "default": "l3",
      "description": "The button that puts the pointer back in the middle of the screen while aiming by moving the controller. R3 and Select are buttons in the game too, so they re-centre only when held.",
      "shown_when": {
        "option": "pointer_motion",
        "is": true
      }
    }
  ],
  "mods": {
    "dir": "{config}/Load/GraphicMods",
    "method": "copy",
    "enable": {
      "file": "{user_data}/config/Config/GFX.ini",
      "format": "ini",
      "key": "Settings.EnableMods",
      "value": "True"
    }
  },
  "presets": [
    {
      "id": "performance",
      "label": "Performance",
      "values": {
        "resolution": 1,
        "msaa": "0x00000001",
        "ssaa": false,
        "anisotropy": -1,
        "shader_compilation": 2,
        "vsync": false,
        "output_resampling": 0
      },
      "description": "Native resolution, no anti-aliasing."
    },
    {
      "id": "balanced",
      "label": "Balanced",
      "values": {
        "resolution": 3,
        "msaa": "0x00000002",
        "ssaa": false,
        "anisotropy": 2,
        "shader_compilation": 2,
        "vsync": false,
        "output_resampling": 0
      },
      "description": "Sharp on a 1080p screen, with light anti-aliasing."
    },
    {
      "id": "quality",
      "label": "Quality",
      "values": {
        "resolution": 6,
        "msaa": "0x00000004",
        "ssaa": false,
        "anisotropy": 4,
        "shader_compilation": 2,
        "vsync": false,
        "output_resampling": 5
      },
      "description": "Sharp on a 4K screen, with anti-aliasing."
    }
  ],
  "game_id": [
    {
      "from": "header",
      "offset": 0,
      "len": 6,
      "encoding": "ascii",
      "version": {
        "offset": 7,
        "len": 1,
        "encoding": "hex"
      },
      "magic": [
        {
          "offset": 24,
          "bytes": "5D1C9EA3"
        },
        {
          "offset": 28,
          "bytes": "C2339F3D"
        }
      ],
      "id_pattern": "^[A-Z0-9]{6}$",
      "extensions": [
        "iso"
      ],
      "name": {
        "offset": 32,
        "len": 64
      }
    },
    {
      "from": "header",
      "offset": 512,
      "len": 6,
      "encoding": "ascii",
      "version": {
        "offset": 519,
        "len": 1,
        "encoding": "hex"
      },
      "magic": [
        {
          "offset": 536,
          "bytes": "5D1C9EA3"
        }
      ],
      "id_pattern": "^[A-Z0-9]{6}$",
      "extensions": [
        "wbfs"
      ],
      "name": {
        "offset": 544,
        "len": 64
      }
    },
    {
      "from": "header",
      "offset": 88,
      "len": 6,
      "encoding": "ascii",
      "version": {
        "offset": 95,
        "len": 1,
        "encoding": "hex"
      },
      "magic": [
        {
          "offset": 112,
          "bytes": "5D1C9EA3"
        },
        {
          "offset": 116,
          "bytes": "C2339F3D"
        }
      ],
      "id_pattern": "^[A-Z0-9]{6}$",
      "extensions": [
        "rvz",
        "wia"
      ],
      "name": {
        "offset": 120,
        "len": 64
      }
    },
    {
      "from": "header",
      "offset": 32768,
      "len": 6,
      "encoding": "ascii",
      "version": {
        "offset": 32775,
        "len": 1,
        "encoding": "hex"
      },
      "magic": [
        {
          "offset": 32792,
          "bytes": "5D1C9EA3"
        },
        {
          "offset": 32796,
          "bytes": "C2339F3D"
        }
      ],
      "id_pattern": "^[A-Z0-9]{6}$",
      "extensions": [
        "ciso"
      ],
      "name": {
        "offset": 32800,
        "len": 64
      }
    }
  ],
  "platforms": {
    "windows": {
      "launch": {
        "kind": "exe",
        "path": "Dolphin-x64/Dolphin.exe"
      },
      "source": {
        "kind": "json_feed",
        "repo": null,
        "asset": null,
        "url": "https://dolphin-emu.org/update/latest/beta/",
        "sha256": null,
        "install_subdir": null,
        "executable": "Dolphin-x64/Dolphin.exe",
        "auto_update": true,
        "feed": {
          "version": "shortrev",
          "assets": "artifacts",
          "match_field": "system",
          "match_value": "Windows x64",
          "url_field": "url",
          "sha256_field": null,
          "notes": "changelog_html"
        }
      }
    },
    "linux": {
      "launch": {
        "kind": "flatpak",
        "app_id": "org.DolphinEmu.dolphin-emu",
        "extra_args": [
          "--filesystem={user_data}",
          "--filesystem={config}",
          "--filesystem={saves}",
          "--filesystem={states}",
          "--filesystem={screenshots}"
        ]
      },
      "source": {
        "kind": "flatpak",
        "repo": null,
        "app_id": "org.DolphinEmu.dolphin-emu",
        "asset": null,
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": null,
        "auto_update": false,
        "feed": null
      }
    }
  },
  "rumble": {
    "file": "{user_data}/config/Config/WiimoteNew.ini",
    "format": "ini",
    "key": "Wiimote{player}.Rumble/Motor",
    "steam": "`XInput/{pad}/Gamepad:Motor L` | `XInput/{pad}/Gamepad:Motor R`"
  },
  "auto": {
    "renderer": "Vulkan"
  },
  "unsupported": {
    "netplay": "Online play is started from the emulator’s own menus."
  }
}
