{
  "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": "cemu",
  "name": "Cemu",
  "revision": "2026-09-30.8",
  "origin": {
    "kind": "url",
    "url": "https://kouch.dev/emulators/cemu.kod"
  },
  "args": [
    "-g",
    "{rom}"
  ],
  "systems": [
    {
      "id": "wiiu",
      "folder": "wiiu",
      "name": "Wii U",
      "art": {
        "thumbnails": "Nintendo - Wii U"
      }
    }
  ],
  "extensions": [
    "code/*.rpx",
    "wua",
    "wud",
    "wux"
  ],
  "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
    }
  ],
  "hotkeys": {
    "pause": null,
    "save_state": null,
    "load_state": null,
    "reset": null,
    "screenshot": {
      "keys": [
        "f12"
      ]
    },
    "quit": null,
    "fullscreen": {
      "keys": [
        "alt",
        "enter"
      ]
    }
  },
  "pause": {
    "method": "suspend"
  },
  "user_data": {
    "folders": {
      "saves": "saves",
      "states": "states",
      "screenshots": "screenshots",
      "config": "config",
      "system": "system"
    },
    "cloud": [
      "saves"
    ],
    "links": [
      {
        "link": "{emulator_dir}/portable",
        "target": "{config}"
      },
      {
        "link": "{config}/screenshots",
        "target": "{screenshots}"
      }
    ],
    "config_edits": [
      {
        "file": "{config}/settings.xml",
        "format": "xml",
        "set": {
          "content/mlc_path": "{saves}/mlc01",
          "content/check_update": "false",
          "content/receive_untested_updates": "false",
          "content/fullscreen": "false",
          "content/fullscreen_menubar": "false",
          "content/vk_warning": "true",
          "content/gp_download": "true",
          "content/use_discord_presence": "false",
          "content/save_screenshot": "true",
          "content/Input/DSUC/@host": "{dsu_host}",
          "content/Input/DSUC/@port": "{dsu_port}"
        }
      },
      {
        "file": "{config}/controllerProfiles/controller0.xml",
        "format": "xml",
        "set": {
          "emulated_controller/type": "Wii U GamePad",
          "emulated_controller/controller/api": "DSUController",
          "emulated_controller/controller/uuid": "0",
          "emulated_controller/controller/display_name": "Kouch player 1",
          "emulated_controller/controller/motion": "true",
          "emulated_controller/controller/ip": "{dsu_host}",
          "emulated_controller/controller/port": "{dsu_port}",
          "emulated_controller/controller/mappings/entry[1]/mapping": "1",
          "emulated_controller/controller/mappings/entry[1]/button": "13",
          "emulated_controller/controller/mappings/entry[2]/mapping": "2",
          "emulated_controller/controller/mappings/entry[2]/button": "14",
          "emulated_controller/controller/mappings/entry[3]/mapping": "3",
          "emulated_controller/controller/mappings/entry[3]/button": "12",
          "emulated_controller/controller/mappings/entry[4]/mapping": "4",
          "emulated_controller/controller/mappings/entry[4]/button": "15",
          "emulated_controller/controller/mappings/entry[5]/mapping": "5",
          "emulated_controller/controller/mappings/entry[5]/button": "10",
          "emulated_controller/controller/mappings/entry[6]/mapping": "6",
          "emulated_controller/controller/mappings/entry[6]/button": "11",
          "emulated_controller/controller/mappings/entry[7]/mapping": "7",
          "emulated_controller/controller/mappings/entry[7]/button": "8",
          "emulated_controller/controller/mappings/entry[8]/mapping": "8",
          "emulated_controller/controller/mappings/entry[8]/button": "9",
          "emulated_controller/controller/mappings/entry[9]/mapping": "9",
          "emulated_controller/controller/mappings/entry[9]/button": "3",
          "emulated_controller/controller/mappings/entry[10]/mapping": "10",
          "emulated_controller/controller/mappings/entry[10]/button": "0",
          "emulated_controller/controller/mappings/entry[11]/mapping": "11",
          "emulated_controller/controller/mappings/entry[11]/button": "4",
          "emulated_controller/controller/mappings/entry[12]/mapping": "12",
          "emulated_controller/controller/mappings/entry[12]/button": "6",
          "emulated_controller/controller/mappings/entry[13]/mapping": "13",
          "emulated_controller/controller/mappings/entry[13]/button": "7",
          "emulated_controller/controller/mappings/entry[14]/mapping": "14",
          "emulated_controller/controller/mappings/entry[14]/button": "5",
          "emulated_controller/controller/mappings/entry[15]/mapping": "15",
          "emulated_controller/controller/mappings/entry[15]/button": "1",
          "emulated_controller/controller/mappings/entry[16]/mapping": "16",
          "emulated_controller/controller/mappings/entry[16]/button": "2",
          "emulated_controller/controller/mappings/entry[17]/mapping": "17",
          "emulated_controller/controller/mappings/entry[17]/button": "39",
          "emulated_controller/controller/mappings/entry[18]/mapping": "18",
          "emulated_controller/controller/mappings/entry[18]/button": "45",
          "emulated_controller/controller/mappings/entry[19]/mapping": "19",
          "emulated_controller/controller/mappings/entry[19]/button": "44",
          "emulated_controller/controller/mappings/entry[20]/mapping": "20",
          "emulated_controller/controller/mappings/entry[20]/button": "38",
          "emulated_controller/controller/mappings/entry[21]/mapping": "21",
          "emulated_controller/controller/mappings/entry[21]/button": "41",
          "emulated_controller/controller/mappings/entry[22]/mapping": "22",
          "emulated_controller/controller/mappings/entry[22]/button": "47",
          "emulated_controller/controller/mappings/entry[23]/mapping": "23",
          "emulated_controller/controller/mappings/entry[23]/button": "46",
          "emulated_controller/controller/mappings/entry[24]/mapping": "24",
          "emulated_controller/controller/mappings/entry[24]/button": "40"
        }
      },
      {
        "file": "{config}/controllerProfiles/controller1.xml",
        "format": "xml",
        "set": {
          "emulated_controller/type": "Wii U Pro Controller",
          "emulated_controller/controller/api": "DSUController",
          "emulated_controller/controller/uuid": "1",
          "emulated_controller/controller/display_name": "Kouch player 2",
          "emulated_controller/controller/motion": "true",
          "emulated_controller/controller/ip": "{dsu_host}",
          "emulated_controller/controller/port": "{dsu_port}",
          "emulated_controller/controller/mappings/entry[1]/mapping": "1",
          "emulated_controller/controller/mappings/entry[1]/button": "13",
          "emulated_controller/controller/mappings/entry[2]/mapping": "2",
          "emulated_controller/controller/mappings/entry[2]/button": "14",
          "emulated_controller/controller/mappings/entry[3]/mapping": "3",
          "emulated_controller/controller/mappings/entry[3]/button": "12",
          "emulated_controller/controller/mappings/entry[4]/mapping": "4",
          "emulated_controller/controller/mappings/entry[4]/button": "15",
          "emulated_controller/controller/mappings/entry[5]/mapping": "5",
          "emulated_controller/controller/mappings/entry[5]/button": "10",
          "emulated_controller/controller/mappings/entry[6]/mapping": "6",
          "emulated_controller/controller/mappings/entry[6]/button": "11",
          "emulated_controller/controller/mappings/entry[7]/mapping": "7",
          "emulated_controller/controller/mappings/entry[7]/button": "8",
          "emulated_controller/controller/mappings/entry[8]/mapping": "8",
          "emulated_controller/controller/mappings/entry[8]/button": "9",
          "emulated_controller/controller/mappings/entry[9]/mapping": "9",
          "emulated_controller/controller/mappings/entry[9]/button": "3",
          "emulated_controller/controller/mappings/entry[10]/mapping": "10",
          "emulated_controller/controller/mappings/entry[10]/button": "0",
          "emulated_controller/controller/mappings/entry[11]/mapping": "12",
          "emulated_controller/controller/mappings/entry[11]/button": "4",
          "emulated_controller/controller/mappings/entry[12]/mapping": "13",
          "emulated_controller/controller/mappings/entry[12]/button": "6",
          "emulated_controller/controller/mappings/entry[13]/mapping": "14",
          "emulated_controller/controller/mappings/entry[13]/button": "7",
          "emulated_controller/controller/mappings/entry[14]/mapping": "15",
          "emulated_controller/controller/mappings/entry[14]/button": "5",
          "emulated_controller/controller/mappings/entry[15]/mapping": "16",
          "emulated_controller/controller/mappings/entry[15]/button": "1",
          "emulated_controller/controller/mappings/entry[16]/mapping": "17",
          "emulated_controller/controller/mappings/entry[16]/button": "2",
          "emulated_controller/controller/mappings/entry[17]/mapping": "18",
          "emulated_controller/controller/mappings/entry[17]/button": "39",
          "emulated_controller/controller/mappings/entry[18]/mapping": "19",
          "emulated_controller/controller/mappings/entry[18]/button": "45",
          "emulated_controller/controller/mappings/entry[19]/mapping": "20",
          "emulated_controller/controller/mappings/entry[19]/button": "44",
          "emulated_controller/controller/mappings/entry[20]/mapping": "21",
          "emulated_controller/controller/mappings/entry[20]/button": "38",
          "emulated_controller/controller/mappings/entry[21]/mapping": "22",
          "emulated_controller/controller/mappings/entry[21]/button": "41",
          "emulated_controller/controller/mappings/entry[22]/mapping": "23",
          "emulated_controller/controller/mappings/entry[22]/button": "47",
          "emulated_controller/controller/mappings/entry[23]/mapping": "24",
          "emulated_controller/controller/mappings/entry[23]/button": "46",
          "emulated_controller/controller/mappings/entry[24]/mapping": "25",
          "emulated_controller/controller/mappings/entry[24]/button": "40"
        }
      },
      {
        "file": "{config}/controllerProfiles/controller2.xml",
        "format": "xml",
        "set": {
          "emulated_controller/type": "Wii U Pro Controller",
          "emulated_controller/controller/api": "DSUController",
          "emulated_controller/controller/uuid": "2",
          "emulated_controller/controller/display_name": "Kouch player 3",
          "emulated_controller/controller/motion": "true",
          "emulated_controller/controller/ip": "{dsu_host}",
          "emulated_controller/controller/port": "{dsu_port}",
          "emulated_controller/controller/mappings/entry[1]/mapping": "1",
          "emulated_controller/controller/mappings/entry[1]/button": "13",
          "emulated_controller/controller/mappings/entry[2]/mapping": "2",
          "emulated_controller/controller/mappings/entry[2]/button": "14",
          "emulated_controller/controller/mappings/entry[3]/mapping": "3",
          "emulated_controller/controller/mappings/entry[3]/button": "12",
          "emulated_controller/controller/mappings/entry[4]/mapping": "4",
          "emulated_controller/controller/mappings/entry[4]/button": "15",
          "emulated_controller/controller/mappings/entry[5]/mapping": "5",
          "emulated_controller/controller/mappings/entry[5]/button": "10",
          "emulated_controller/controller/mappings/entry[6]/mapping": "6",
          "emulated_controller/controller/mappings/entry[6]/button": "11",
          "emulated_controller/controller/mappings/entry[7]/mapping": "7",
          "emulated_controller/controller/mappings/entry[7]/button": "8",
          "emulated_controller/controller/mappings/entry[8]/mapping": "8",
          "emulated_controller/controller/mappings/entry[8]/button": "9",
          "emulated_controller/controller/mappings/entry[9]/mapping": "9",
          "emulated_controller/controller/mappings/entry[9]/button": "3",
          "emulated_controller/controller/mappings/entry[10]/mapping": "10",
          "emulated_controller/controller/mappings/entry[10]/button": "0",
          "emulated_controller/controller/mappings/entry[11]/mapping": "12",
          "emulated_controller/controller/mappings/entry[11]/button": "4",
          "emulated_controller/controller/mappings/entry[12]/mapping": "13",
          "emulated_controller/controller/mappings/entry[12]/button": "6",
          "emulated_controller/controller/mappings/entry[13]/mapping": "14",
          "emulated_controller/controller/mappings/entry[13]/button": "7",
          "emulated_controller/controller/mappings/entry[14]/mapping": "15",
          "emulated_controller/controller/mappings/entry[14]/button": "5",
          "emulated_controller/controller/mappings/entry[15]/mapping": "16",
          "emulated_controller/controller/mappings/entry[15]/button": "1",
          "emulated_controller/controller/mappings/entry[16]/mapping": "17",
          "emulated_controller/controller/mappings/entry[16]/button": "2",
          "emulated_controller/controller/mappings/entry[17]/mapping": "18",
          "emulated_controller/controller/mappings/entry[17]/button": "39",
          "emulated_controller/controller/mappings/entry[18]/mapping": "19",
          "emulated_controller/controller/mappings/entry[18]/button": "45",
          "emulated_controller/controller/mappings/entry[19]/mapping": "20",
          "emulated_controller/controller/mappings/entry[19]/button": "44",
          "emulated_controller/controller/mappings/entry[20]/mapping": "21",
          "emulated_controller/controller/mappings/entry[20]/button": "38",
          "emulated_controller/controller/mappings/entry[21]/mapping": "22",
          "emulated_controller/controller/mappings/entry[21]/button": "41",
          "emulated_controller/controller/mappings/entry[22]/mapping": "23",
          "emulated_controller/controller/mappings/entry[22]/button": "47",
          "emulated_controller/controller/mappings/entry[23]/mapping": "24",
          "emulated_controller/controller/mappings/entry[23]/button": "46",
          "emulated_controller/controller/mappings/entry[24]/mapping": "25",
          "emulated_controller/controller/mappings/entry[24]/button": "40"
        }
      },
      {
        "file": "{config}/controllerProfiles/controller3.xml",
        "format": "xml",
        "set": {
          "emulated_controller/type": "Wii U Pro Controller",
          "emulated_controller/controller/api": "DSUController",
          "emulated_controller/controller/uuid": "3",
          "emulated_controller/controller/display_name": "Kouch player 4",
          "emulated_controller/controller/motion": "true",
          "emulated_controller/controller/ip": "{dsu_host}",
          "emulated_controller/controller/port": "{dsu_port}",
          "emulated_controller/controller/mappings/entry[1]/mapping": "1",
          "emulated_controller/controller/mappings/entry[1]/button": "13",
          "emulated_controller/controller/mappings/entry[2]/mapping": "2",
          "emulated_controller/controller/mappings/entry[2]/button": "14",
          "emulated_controller/controller/mappings/entry[3]/mapping": "3",
          "emulated_controller/controller/mappings/entry[3]/button": "12",
          "emulated_controller/controller/mappings/entry[4]/mapping": "4",
          "emulated_controller/controller/mappings/entry[4]/button": "15",
          "emulated_controller/controller/mappings/entry[5]/mapping": "5",
          "emulated_controller/controller/mappings/entry[5]/button": "10",
          "emulated_controller/controller/mappings/entry[6]/mapping": "6",
          "emulated_controller/controller/mappings/entry[6]/button": "11",
          "emulated_controller/controller/mappings/entry[7]/mapping": "7",
          "emulated_controller/controller/mappings/entry[7]/button": "8",
          "emulated_controller/controller/mappings/entry[8]/mapping": "8",
          "emulated_controller/controller/mappings/entry[8]/button": "9",
          "emulated_controller/controller/mappings/entry[9]/mapping": "9",
          "emulated_controller/controller/mappings/entry[9]/button": "3",
          "emulated_controller/controller/mappings/entry[10]/mapping": "10",
          "emulated_controller/controller/mappings/entry[10]/button": "0",
          "emulated_controller/controller/mappings/entry[11]/mapping": "12",
          "emulated_controller/controller/mappings/entry[11]/button": "4",
          "emulated_controller/controller/mappings/entry[12]/mapping": "13",
          "emulated_controller/controller/mappings/entry[12]/button": "6",
          "emulated_controller/controller/mappings/entry[13]/mapping": "14",
          "emulated_controller/controller/mappings/entry[13]/button": "7",
          "emulated_controller/controller/mappings/entry[14]/mapping": "15",
          "emulated_controller/controller/mappings/entry[14]/button": "5",
          "emulated_controller/controller/mappings/entry[15]/mapping": "16",
          "emulated_controller/controller/mappings/entry[15]/button": "1",
          "emulated_controller/controller/mappings/entry[16]/mapping": "17",
          "emulated_controller/controller/mappings/entry[16]/button": "2",
          "emulated_controller/controller/mappings/entry[17]/mapping": "18",
          "emulated_controller/controller/mappings/entry[17]/button": "39",
          "emulated_controller/controller/mappings/entry[18]/mapping": "19",
          "emulated_controller/controller/mappings/entry[18]/button": "45",
          "emulated_controller/controller/mappings/entry[19]/mapping": "20",
          "emulated_controller/controller/mappings/entry[19]/button": "44",
          "emulated_controller/controller/mappings/entry[20]/mapping": "21",
          "emulated_controller/controller/mappings/entry[20]/button": "38",
          "emulated_controller/controller/mappings/entry[21]/mapping": "22",
          "emulated_controller/controller/mappings/entry[21]/button": "41",
          "emulated_controller/controller/mappings/entry[22]/mapping": "23",
          "emulated_controller/controller/mappings/entry[22]/button": "47",
          "emulated_controller/controller/mappings/entry[23]/mapping": "24",
          "emulated_controller/controller/mappings/entry[23]/button": "46",
          "emulated_controller/controller/mappings/entry[24]/mapping": "25",
          "emulated_controller/controller/mappings/entry[24]/button": "40"
        }
      }
    ],
    "private": [
      "saves/mlc01/sys/**",
      "config/keys.txt",
      "config/otp.bin",
      "config/seeprom.bin"
    ],
    "game_files": [
      {
        "part": "saves",
        "glob": "mlc01/usr/save/{title_id|slice:0:8|lower}/{title_id|slice:8:16|lower}/**"
      },
      {
        "part": "config",
        "glob": "gameProfiles/{title_id|lower}.ini"
      }
    ],
    "system_files": [
      {
        "names": [
          "keys.txt"
        ],
        "kind": "file",
        "what": "Game keys",
        "required": true,
        "features": "encrypted game copies",
        "read_at": "config"
      },
      {
        "names": [
          "otp.bin"
        ],
        "sizes": [
          1024
        ],
        "kind": "file",
        "what": "Console keys (OTP)",
        "required": false,
        "features": "online features and the system menus",
        "read_at": "config"
      },
      {
        "names": [
          "seeprom.bin"
        ],
        "sizes": [
          512
        ],
        "kind": "file",
        "what": "Console data (SEEPROM)",
        "required": false,
        "features": "online features and the system menus",
        "read_at": "config"
      }
    ]
  },
  "options": [
    {
      "id": "controller",
      "label": "Player 1's controller",
      "tab": "controls",
      "type": "controller",
      "default": "tablet",
      "values": [
        {
          "value": "tablet",
          "label": "Pad with a screen",
          "icon": "kouch:tablet-pad",
          "needs": [
            "motion"
          ],
          "edits": [
            {
              "file": "{config}/controllerProfiles/controller0.xml",
              "format": "xml",
              "set": {
                "emulated_controller/type": "Wii U GamePad",
                "emulated_controller/controller/api": "DSUController",
                "emulated_controller/controller/uuid": "0",
                "emulated_controller/controller/display_name": "Kouch player 1",
                "emulated_controller/controller/motion": "true",
                "emulated_controller/controller/ip": "{dsu_host}",
                "emulated_controller/controller/port": "{dsu_port}",
                "emulated_controller/controller/mappings/entry[1]/mapping": "1",
                "emulated_controller/controller/mappings/entry[1]/button": "13",
                "emulated_controller/controller/mappings/entry[2]/mapping": "2",
                "emulated_controller/controller/mappings/entry[2]/button": "14",
                "emulated_controller/controller/mappings/entry[3]/mapping": "3",
                "emulated_controller/controller/mappings/entry[3]/button": "12",
                "emulated_controller/controller/mappings/entry[4]/mapping": "4",
                "emulated_controller/controller/mappings/entry[4]/button": "15",
                "emulated_controller/controller/mappings/entry[5]/mapping": "5",
                "emulated_controller/controller/mappings/entry[5]/button": "10",
                "emulated_controller/controller/mappings/entry[6]/mapping": "6",
                "emulated_controller/controller/mappings/entry[6]/button": "11",
                "emulated_controller/controller/mappings/entry[7]/mapping": "7",
                "emulated_controller/controller/mappings/entry[7]/button": "8",
                "emulated_controller/controller/mappings/entry[8]/mapping": "8",
                "emulated_controller/controller/mappings/entry[8]/button": "9",
                "emulated_controller/controller/mappings/entry[9]/mapping": "9",
                "emulated_controller/controller/mappings/entry[9]/button": "3",
                "emulated_controller/controller/mappings/entry[10]/mapping": "10",
                "emulated_controller/controller/mappings/entry[10]/button": "0",
                "emulated_controller/controller/mappings/entry[11]/mapping": "11",
                "emulated_controller/controller/mappings/entry[11]/button": "4",
                "emulated_controller/controller/mappings/entry[12]/mapping": "12",
                "emulated_controller/controller/mappings/entry[12]/button": "6",
                "emulated_controller/controller/mappings/entry[13]/mapping": "13",
                "emulated_controller/controller/mappings/entry[13]/button": "7",
                "emulated_controller/controller/mappings/entry[14]/mapping": "14",
                "emulated_controller/controller/mappings/entry[14]/button": "5",
                "emulated_controller/controller/mappings/entry[15]/mapping": "15",
                "emulated_controller/controller/mappings/entry[15]/button": "1",
                "emulated_controller/controller/mappings/entry[16]/mapping": "16",
                "emulated_controller/controller/mappings/entry[16]/button": "2",
                "emulated_controller/controller/mappings/entry[17]/mapping": "17",
                "emulated_controller/controller/mappings/entry[17]/button": "39",
                "emulated_controller/controller/mappings/entry[18]/mapping": "18",
                "emulated_controller/controller/mappings/entry[18]/button": "45",
                "emulated_controller/controller/mappings/entry[19]/mapping": "19",
                "emulated_controller/controller/mappings/entry[19]/button": "44",
                "emulated_controller/controller/mappings/entry[20]/mapping": "20",
                "emulated_controller/controller/mappings/entry[20]/button": "38",
                "emulated_controller/controller/mappings/entry[21]/mapping": "21",
                "emulated_controller/controller/mappings/entry[21]/button": "41",
                "emulated_controller/controller/mappings/entry[22]/mapping": "22",
                "emulated_controller/controller/mappings/entry[22]/button": "47",
                "emulated_controller/controller/mappings/entry[23]/mapping": "23",
                "emulated_controller/controller/mappings/entry[23]/button": "46",
                "emulated_controller/controller/mappings/entry[24]/mapping": "24",
                "emulated_controller/controller/mappings/entry[24]/button": "40"
              }
            }
          ]
        },
        {
          "value": "pro",
          "label": "Pro-style pad",
          "icon": "kouch:pro-pad",
          "edits": [
            {
              "file": "{config}/controllerProfiles/controller0.xml",
              "format": "xml",
              "set": {
                "emulated_controller/type": "Wii U Pro Controller",
                "emulated_controller/controller/api": "DSUController",
                "emulated_controller/controller/uuid": "0",
                "emulated_controller/controller/display_name": "Kouch player 1",
                "emulated_controller/controller/motion": "true",
                "emulated_controller/controller/ip": "{dsu_host}",
                "emulated_controller/controller/port": "{dsu_port}",
                "emulated_controller/controller/mappings/entry[1]/mapping": "1",
                "emulated_controller/controller/mappings/entry[1]/button": "13",
                "emulated_controller/controller/mappings/entry[2]/mapping": "2",
                "emulated_controller/controller/mappings/entry[2]/button": "14",
                "emulated_controller/controller/mappings/entry[3]/mapping": "3",
                "emulated_controller/controller/mappings/entry[3]/button": "12",
                "emulated_controller/controller/mappings/entry[4]/mapping": "4",
                "emulated_controller/controller/mappings/entry[4]/button": "15",
                "emulated_controller/controller/mappings/entry[5]/mapping": "5",
                "emulated_controller/controller/mappings/entry[5]/button": "10",
                "emulated_controller/controller/mappings/entry[6]/mapping": "6",
                "emulated_controller/controller/mappings/entry[6]/button": "11",
                "emulated_controller/controller/mappings/entry[7]/mapping": "7",
                "emulated_controller/controller/mappings/entry[7]/button": "8",
                "emulated_controller/controller/mappings/entry[8]/mapping": "8",
                "emulated_controller/controller/mappings/entry[8]/button": "9",
                "emulated_controller/controller/mappings/entry[9]/mapping": "9",
                "emulated_controller/controller/mappings/entry[9]/button": "3",
                "emulated_controller/controller/mappings/entry[10]/mapping": "10",
                "emulated_controller/controller/mappings/entry[10]/button": "0",
                "emulated_controller/controller/mappings/entry[11]/mapping": "12",
                "emulated_controller/controller/mappings/entry[11]/button": "4",
                "emulated_controller/controller/mappings/entry[12]/mapping": "13",
                "emulated_controller/controller/mappings/entry[12]/button": "6",
                "emulated_controller/controller/mappings/entry[13]/mapping": "14",
                "emulated_controller/controller/mappings/entry[13]/button": "7",
                "emulated_controller/controller/mappings/entry[14]/mapping": "15",
                "emulated_controller/controller/mappings/entry[14]/button": "5",
                "emulated_controller/controller/mappings/entry[15]/mapping": "16",
                "emulated_controller/controller/mappings/entry[15]/button": "1",
                "emulated_controller/controller/mappings/entry[16]/mapping": "17",
                "emulated_controller/controller/mappings/entry[16]/button": "2",
                "emulated_controller/controller/mappings/entry[17]/mapping": "18",
                "emulated_controller/controller/mappings/entry[17]/button": "39",
                "emulated_controller/controller/mappings/entry[18]/mapping": "19",
                "emulated_controller/controller/mappings/entry[18]/button": "45",
                "emulated_controller/controller/mappings/entry[19]/mapping": "20",
                "emulated_controller/controller/mappings/entry[19]/button": "44",
                "emulated_controller/controller/mappings/entry[20]/mapping": "21",
                "emulated_controller/controller/mappings/entry[20]/button": "38",
                "emulated_controller/controller/mappings/entry[21]/mapping": "22",
                "emulated_controller/controller/mappings/entry[21]/button": "41",
                "emulated_controller/controller/mappings/entry[22]/mapping": "23",
                "emulated_controller/controller/mappings/entry[22]/button": "47",
                "emulated_controller/controller/mappings/entry[23]/mapping": "24",
                "emulated_controller/controller/mappings/entry[23]/button": "46",
                "emulated_controller/controller/mappings/entry[24]/mapping": "25",
                "emulated_controller/controller/mappings/entry[24]/button": "40"
              }
            }
          ]
        }
      ]
    },
    {
      "id": "resolution",
      "label": "Internal resolution",
      "tab": "graphics",
      "type": "choice",
      "description": "Uses the game’s graphics pack: the one the emulator downloaded for it (from its own Graphic packs window), or one added as a mod. Without a pack the game renders at its own resolution.",
      "values": [
        {
          "value": "",
          "label": "The game's own"
        },
        {
          "value": "960x540",
          "label": "540p"
        },
        {
          "value": "1280x720",
          "label": "720p"
        },
        {
          "value": "1600x900",
          "label": "900p"
        },
        {
          "value": "1920x1080",
          "label": "1080p"
        },
        {
          "value": "2560x1440",
          "label": "1440p"
        },
        {
          "value": "3200x1800",
          "label": "1800p"
        },
        {
          "value": "3840x2160",
          "label": "4K"
        },
        {
          "value": "5120x2880",
          "label": "5K"
        },
        {
          "value": "7680x4320",
          "label": "8K"
        }
      ],
      "default": "",
      "apply": {
        "kind": "arg",
        "args": []
      },
      "section": "Resolution",
      "restart": true,
      "role": "internal_resolution"
    },
    {
      "id": "renderer",
      "label": "Renderer",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 1,
          "label": "Vulkan"
        },
        {
          "value": 0,
          "label": "OpenGL"
        }
      ],
      "default": 1,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/api"
      },
      "role": "renderer",
      "section": "Renderer",
      "restart": true
    },
    {
      "id": "async_shaders",
      "label": "Build shaders in background",
      "tab": "graphics",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/AsyncCompile"
      },
      "role": "other",
      "section": "Renderer",
      "restart": true,
      "description": "With the Vulkan renderer only."
    },
    {
      "id": "accurate_barriers",
      "label": "Accurate barriers (Vulkan)",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/vkAccurateBarriers"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "drawdone_sync",
      "label": "Full sync at draw done (OpenGL)",
      "tab": "advanced",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/GX2DrawdoneSync"
      },
      "role": "other",
      "section": "Expert graphics",
      "restart": true
    },
    {
      "id": "upscale_filter",
      "label": "Upscale filter",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Bilinear"
        },
        {
          "value": 1,
          "label": "Bicubic"
        },
        {
          "value": 2,
          "label": "Hermite"
        },
        {
          "value": 3,
          "label": "Nearest neighbour"
        }
      ],
      "default": 1,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/UpscaleFilter"
      },
      "role": "output_filter",
      "section": "Resolution"
    },
    {
      "id": "downscale_filter",
      "label": "Downscale filter",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Bilinear"
        },
        {
          "value": 1,
          "label": "Bicubic"
        },
        {
          "value": 2,
          "label": "Hermite"
        },
        {
          "value": 3,
          "label": "Nearest neighbour"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/DownscaleFilter"
      },
      "role": "output_filter",
      "section": "Resolution"
    },
    {
      "id": "aspect",
      "label": "Screen shape",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Keep the shape"
        },
        {
          "value": 1,
          "label": "Stretch to fill"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/FullscreenScaling"
      },
      "role": "aspect",
      "section": "Resolution"
    },
    {
      "id": "vsync",
      "label": "V-Sync",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Off"
        },
        {
          "value": 1,
          "label": "On (double buffering)"
        },
        {
          "value": 2,
          "label": "Triple buffering (Vulkan)"
        },
        {
          "value": 3,
          "label": "Match the console (Vulkan)"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/VSync"
      },
      "role": "vsync",
      "section": "Display",
      "restart": true
    },
    {
      "id": "overlay",
      "label": "Performance overlay",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Off"
        },
        {
          "value": 1,
          "label": "Top left"
        },
        {
          "value": 2,
          "label": "Top centre"
        },
        {
          "value": 3,
          "label": "Top right"
        },
        {
          "value": 4,
          "label": "Bottom left"
        },
        {
          "value": 5,
          "label": "Bottom centre"
        },
        {
          "value": 6,
          "label": "Bottom right"
        }
      ],
      "default": 0,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Overlay/Position"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "overlay_fps",
      "label": "Overlay: frame rate",
      "tab": "graphics",
      "type": "toggle",
      "default": true,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Overlay/FPS"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "overlay_draw_calls",
      "label": "Overlay: draw calls",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Overlay/DrawCalls"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "overlay_cpu",
      "label": "Overlay: CPU use",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Overlay/CPUUsage"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "overlay_ram",
      "label": "Overlay: memory use",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Overlay/RAMUsage"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "overlay_vram",
      "label": "Overlay: video memory use",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Overlay/VRAMUsage"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "notifications",
      "label": "Notifications",
      "tab": "graphics",
      "type": "choice",
      "values": [
        {
          "value": 0,
          "label": "Off"
        },
        {
          "value": 1,
          "label": "Top left"
        },
        {
          "value": 2,
          "label": "Top centre"
        },
        {
          "value": 3,
          "label": "Top right"
        },
        {
          "value": 4,
          "label": "Bottom left"
        },
        {
          "value": 5,
          "label": "Bottom centre"
        },
        {
          "value": 6,
          "label": "Bottom right"
        }
      ],
      "default": 1,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Graphic/Notification/Position"
      },
      "role": "other",
      "section": "Display"
    },
    {
      "id": "second_screen",
      "label": "Pad’s screen in its own window",
      "tab": "graphics",
      "type": "toggle",
      "default": false,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/open_pad"
      },
      "role": "screen_layout",
      "section": "Screens"
    },
    {
      "id": "volume",
      "label": "Volume",
      "tab": "audio",
      "type": "slider",
      "min": 0,
      "max": 100,
      "step": 5,
      "default": 20,
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Audio/TVVolume"
      }
    },
    {
      "id": "pad_volume",
      "label": "Pad’s speaker",
      "tab": "audio",
      "type": "slider",
      "min": 0,
      "max": 100,
      "step": 5,
      "default": 0,
      "description": "The speaker in the pad with a screen. Most games play the same sound on the TV.",
      "apply": {
        "kind": "config_edit",
        "file": "{config}/settings.xml",
        "format": "xml",
        "key": "content/Audio/PadVolume"
      }
    }
  ],
  "presets": [
    {
      "id": "performance",
      "label": "Performance",
      "description": "Shaders compiled in the background. Resolution comes from each game’s graphics pack.",
      "values": {
        "async_shaders": true,
        "accurate_barriers": false,
        "upscale_filter": 0,
        "vsync": 0
      }
    },
    {
      "id": "balanced",
      "label": "Balanced",
      "description": "Shaders compiled in the background, with bicubic upscaling.",
      "values": {
        "async_shaders": true,
        "accurate_barriers": true,
        "upscale_filter": 1,
        "vsync": 0
      }
    },
    {
      "id": "quality",
      "label": "Quality",
      "description": "Shaders compiled before use (no pop-in), with bicubic upscaling.",
      "values": {
        "async_shaders": false,
        "accurate_barriers": true,
        "upscale_filter": 1,
        "vsync": 0
      }
    }
  ],
  "game_id": [
    {
      "from": "meta_file",
      "path": "meta/meta.xml",
      "field": "title_id",
      "version_field": "title_version",
      "name_field": "longname_en"
    },
    {
      "from": "header",
      "magic": [
        {
          "offset": 0,
          "bytes": "00010004"
        }
      ],
      "file": "title.tmd",
      "offset": 396,
      "len": 8,
      "encoding": "hex",
      "version": {
        "offset": 476,
        "len": 2,
        "encoding": "hex"
      }
    },
    {
      "from": "filename",
      "pattern": "\\[(?P<id>0005[0-9A-Fa-f]{12})\\]"
    }
  ],
  "platforms": {
    "windows": {
      "launch": {
        "kind": "exe",
        "path": "Cemu.exe"
      },
      "source": {
        "kind": "github_release",
        "repo": "cemu-project/Cemu",
        "asset": "cemu-*-windows-x64.zip",
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": "Cemu.exe",
        "auto_update": false,
        "feed": null
      }
    },
    "linux": {
      "launch": {
        "kind": "exe",
        "path": "Cemu.AppImage"
      },
      "source": {
        "kind": "github_release",
        "repo": "cemu-project/Cemu",
        "asset": "Cemu-*-x86_64.AppImage",
        "url": null,
        "sha256": null,
        "install_subdir": null,
        "executable": "Cemu.AppImage",
        "auto_update": false,
        "feed": null
      },
      "env": {
        "XDG_CONFIG_HOME": "{user_data}/xdg-config",
        "XDG_DATA_HOME": "{user_data}/xdg-data",
        "XDG_CACHE_HOME": "{user_data}/xdg-cache"
      }
    }
  },
  "mods": {
    "dir": "{config}/graphicPacks",
    "method": "link",
    "list_entry": {
      "file": "{config}/settings.xml",
      "list": "content/GraphicPack",
      "element": "Entry",
      "key": "filename",
      "value": "graphicPacks/{mod_id}/rules.txt",
      "children": [
        {
          "element": "Preset",
          "text": {
            "category": "Resolution",
            "preset": "{option:resolution}"
          }
        },
        {
          "element": "Preset",
          "text": {
            "preset": "{option:resolution}"
          }
        }
      ]
    },
    "title_packs": {
      "dir": "{config}/graphicPacks/downloadedGraphicPacks",
      "entry_prefix": "graphicPacks/downloadedGraphicPacks",
      "rules": "rules.txt",
      "option": "resolution",
      "categories": [
        "Resolution",
        "TV Resolution"
      ]
    }
  },
  "auto": {
    "renderer": 1
  },
  "unsupported": {
    "rumble": "Rumble can’t reach your controller: the emulator only rumbles controllers it reads itself, and Kouch passes it your controls another way.",
    "netplay": "The emulator has no online play.",
    "save_states": "The emulator has no save states."
  }
}
