{
 "app_id": "com.hylianmodding.modloader64",
 "source_url": "https://raw.githubusercontent.com/flathub/com.hylianmodding.modloader64/master/com.hylianmodding.modloader64.yml",
 "runtime": "org.freedesktop.Platform",
 "runtime_version": "26.08",
 "sdk": "org.freedesktop.Sdk",
 "finish_args": [
  "--share=ipc",
  "--share=network",
  "--socket=pulseaudio",
  "--socket=x11",
  "--device=all",
  "--device=dri",
  "--filesystem=xdg-run/discord-ipc-0"
 ],
 "module_count": 14,
 "fetched_at": "2026-09-28T14:06:44.106880+00:00",
 "manifest": {
  "app-id": "com.hylianmodding.modloader64",
  "runtime": "org.freedesktop.Platform",
  "runtime-version": "26.08",
  "sdk": "org.freedesktop.Sdk",
  "base": "org.electronjs.Electron2.BaseApp",
  "base-version": "26.08",
  "sdk-extensions": [
   "org.freedesktop.Sdk.Extension.node22"
  ],
  "command": "com.hylianmodding.modloader64",
  "finish-args": [
   "--share=ipc",
   "--socket=x11",
   "--device=dri",
   "--socket=pulseaudio",
   "--share=network",
   "--device=all",
   "--filesystem=xdg-run/discord-ipc-0"
  ],
  "build-options": {
   "append-path": "/usr/lib/sdk/node22/bin"
  },
  "modules": [
   {
    "name": "node-setup",
    "buildsystem": "simple",
    "build-commands": [
     "/usr/lib/sdk/node22/install-sdk.sh"
    ]
   },
   "shared-modules/glu/glu-9.json",
   "shared-modules/glew/glew.json",
   "shared-modules/SDL2/SDL2_ttf.json",
   "shared-modules/SDL2/SDL2_image.json",
   {
    "name": "glew-compat",
    "buildsystem": "simple",
    "build-commands": [
     "ln -sf libGLEW.so.2.3.1 /app/lib/libGLEW.so.2.1"
    ]
   },
   {
    "name": "sfml",
    "buildsystem": "cmake-ninja",
    "config-opts": [
     "-DCMAKE_POLICY_VERSION_MINIMUM=3.5",
     "-DCMAKE_BUILD_TYPE=Release",
     "-DCMAKE_INSTALL_PREFIX=/app",
     "-DSFML_BUILD_AUDIO=TRUE",
     "-DSFML_BUILD_GRAPHICS=TRUE",
     "-DSFML_BUILD_WINDOW=TRUE",
     "-DSFML_BUILD_NETWORK=FALSE",
     "-DSFML_BUILD_EXAMPLES=FALSE"
    ],
    "sources": [
     {
      "type": "git",
      "url": "https://github.com/SFML/SFML.git",
      "tag": "2.5.1",
      "commit": "2f11710abc5aa478503a7ff3f9e654bd2078ebab"
     }
    ]
   },
   {
    "name": "mupen64plus-plugins",
    "buildsystem": "simple",
    "build-commands": [
     "mkdir -p /app/lib/modloader64/emulator",
     "make -C mupen64plus-audio-sdl/projects/unix all -j $FLATPAK_BUILDER_N_JOBS APIDIR=\"$PWD/mupen64plus-core/src/api\" PREFIX=/app",
     "cp mupen64plus-audio-sdl/projects/unix/mupen64plus-audio-sdl.so /app/lib/modloader64/emulator/",
     "make -C mupen64plus-input-sdl/projects/unix all -j $FLATPAK_BUILDER_N_JOBS APIDIR=\"$PWD/mupen64plus-core/src/api\" PREFIX=/app",
     "cp mupen64plus-input-sdl/projects/unix/mupen64plus-input-sdl.so /app/lib/modloader64/emulator/",
     "make -C mupen64plus-rsp-hle/projects/unix all -j $FLATPAK_BUILDER_N_JOBS APIDIR=\"$PWD/mupen64plus-core/src/api\" PREFIX=/app",
     "cp mupen64plus-rsp-hle/projects/unix/mupen64plus-rsp-hle.so /app/lib/modloader64/emulator/"
    ],
    "sources": [
     {
      "type": "git",
      "url": "https://github.com/hylian-modding/mupen64plus-plugins.git",
      "commit": "77d13d6d6f5f99312191f6249b6a178ed0f12445"
     }
    ]
   },
   {
    "name": "gliden64",
    "buildsystem": "cmake-ninja",
    "subdir": "src",
    "config-opts": [
     "-DCMAKE_BUILD_TYPE=Release",
     "-DMUPENPLUSAPI=ON",
     "-DCMAKE_INSTALL_PREFIX=/app"
    ],
    "post-install": [
     "mkdir -p /app/lib/modloader64/emulator",
     "cp /app/lib/mupen64plus/mupen64plus-video-GLideN64.so /app/lib/modloader64/emulator/ || cp /app/lib/modloader64-video-GLideN64.so /app/lib/modloader64/emulator/ || true"
    ],
    "sources": [
     {
      "type": "git",
      "url": "https://github.com/gonetz/GLideN64.git",
      "tag": "github-actions",
      "commit": "41c7ba273a6c9afb43c0574cf3cf5d139182d070"
     }
    ]
   },
   {
    "name": "modloader64-core",
    "buildsystem": "simple",
    "build-options": {
     "env": {
      "HOME": "/run/build/modloader64-core",
      "XDG_CACHE_HOME": "/run/build/modloader64-core/flatpak-node/cache",
      "npm_config_cache": "/run/build/modloader64-core/flatpak-node/npm-cache"
     }
    },
    "build-commands": [
     "chmod +x build-modloader64-core.sh",
     "./build-modloader64-core.sh"
    ],
    "sources": [
     {
      "type": "git",
      "url": "https://github.com/hylian-modding/ModLoader64.git",
      "commit": "04fbf71e77be7dcebff4b8adfd696fa47621f9f1"
     },
     {
      "type": "file",
      "path": "build-modloader64-core.sh"
     },
     "node-sources/modloader64-core.json"
    ]
   },
   {
    "name": "emulator-plugin-integration",
    "buildsystem": "simple",
    "build-commands": [
     "install -Dm755 /app/lib/modloader64/emulator/mupen64plus-audio-sdl.so /app/lib/modloader64/ModLoader-template/emulator/mupen64plus-audio-sdl.so",
     "install -Dm755 /app/lib/modloader64/emulator/mupen64plus-input-sdl.so /app/lib/modloader64/ModLoader-template/emulator/mupen64plus-input-sdl.so",
     "install -Dm755 /app/lib/modloader64/emulator/mupen64plus-rsp-hle.so /app/lib/modloader64/ModLoader-template/emulator/mupen64plus-rsp-hle.so",
     "install -Dm755 /app/lib/modloader64/emulator/mupen64plus-video-GLideN64.so /app/lib/modloader64/ModLoader-template/emulator/mupen64plus-video-gliden64.so"
    ]
   },
   {
    "name": "node-addon-sfml-audio",
    "buildsystem": "simple",
    "build-options": {
     "append-path": "/usr/lib/sdk/node22/bin",
     "env": {
      "CXXFLAGS": "-I/app/include",
      "LDFLAGS": "-L/app/lib -Wl,-rpath,/app/lib"
     }
    },
    "build-commands": [
     "mkdir -p node_modules/node-addon-api",
     "tar -xf node-addon-api.tgz --strip-components=1 -C node_modules/node-addon-api",
     "/usr/lib/sdk/node22/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js rebuild --nodedir=/usr/lib/sdk/node22",
     "install -Dm755 build/Release/sfml_audio.node /app/lib/modloader64/ModLoader-template/emulator/sfml_audio.node"
    ],
    "sources": [
     {
      "type": "git",
      "url": "https://github.com/hylian-modding/node-addon-sfml-audio.git",
      "commit": "2bcde05a20979e8fc53bc62de41fd8b982f386a4"
     },
     {
      "type": "file",
      "url": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.0.tgz",
      "sha512": "b121c28167c9f8bba2feefb49ac177a320a0bdd921c436e4092e90f2e889aaecce8a690906f5fa865e5a49203b0d1d576cca5d33cafba618dc17adec178ae42a",
      "dest-filename": "node-addon-api.tgz"
     }
    ]
   },
   {
    "name": "modloader64-gui",
    "buildsystem": "simple",
    "build-options": {
     "env": {
      "HOME": "/run/build/modloader64-gui",
      "XDG_CACHE_HOME": "/run/build/modloader64-gui/flatpak-node/cache",
      "npm_config_cache": "/run/build/modloader64-gui/flatpak-node/npm-cache"
     }
    },
    "build-commands": [
     "mkdir -p /app/lib/modloader64/gui",
     "npm ci --offline --ignore-scripts --omit=peer",
     "npx patch-package",
     "mkdir -p node_modules/electron/dist",
     "unzip -qo flatpak-node/cache/electron/electron-v8.2.4-linux-*.zip -d node_modules/electron/dist",
     "chmod +x node_modules/electron/dist/electron",
     "npm run build",
     "cp -a . /app/lib/modloader64/gui/"
    ],
    "sources": [
     {
      "type": "git",
      "url": "https://github.com/hylian-modding/modloader64-gui.git",
      "commit": "342e5dd81f5c2fd62abf0f5b5b215a13ffd6d3d4"
     },
     "node-sources/modloader64-gui.json"
    ]
   },
   {
    "name": "app-integration",
    "buildsystem": "simple",
    "build-commands": [
     "sed -i 's|^exec zypak-wrapper|export LD_LIBRARY_PATH=\"/app/lib${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}\"\\nexec zypak-wrapper|' start-modloader64",
     "install -Dm755 start-modloader64 /app/bin/com.hylianmodding.modloader64",
     "install -Dm644 com.hylianmodding.modloader64.desktop /app/share/applications/com.hylianmodding.modloader64.desktop",
     "install -Dm644 com.hylianmodding.modloader64.metainfo.xml /app/share/metainfo/com.hylianmodding.modloader64.metainfo.xml",
     "install -d /app/share/icons/hicolor/512x512/apps",
     "ffmpeg -y -i icon.png -vf scale=512:512 /app/share/icons/hicolor/512x512/apps/com.hylianmodding.modloader64.png",
     "install -Dm644 LICENSE /app/share/licenses/com.hylianmodding.modloader64/LICENSE"
    ],
    "sources": [
     {
      "type": "file",
      "url": "https://raw.githubusercontent.com/hylian-modding/ModLoader64-flatpak/acda76929ae24e349124a090e68e697bd66678d8/start-modloader64",
      "sha256": "58c9884b734b6b0ad74be4179371f3b2b5bf099cfd1c6569ed91f629a46b09e9",
      "dest-filename": "start-modloader64"
     },
     {
      "type": "file",
      "url": "https://raw.githubusercontent.com/hylian-modding/ModLoader64-flatpak/acda76929ae24e349124a090e68e697bd66678d8/com.hylianmodding.ModLoader64.desktop",
      "sha256": "23286357966821730a51cb3721849ae8301ab54a54906055d09b52c0699923b2",
      "dest-filename": "com.hylianmodding.modloader64.desktop"
     },
     {
      "type": "file",
      "url": "https://raw.githubusercontent.com/hylian-modding/ModLoader64-flatpak/acda76929ae24e349124a090e68e697bd66678d8/com.hylianmodding.ModLoader64.metainfo.xml",
      "sha256": "0450fd0afaba85fe23c8001b8d93c25e53b3533c4b1c294dd1172dbd7e74e35b",
      "dest-filename": "com.hylianmodding.modloader64.metainfo.xml"
     },
     {
      "type": "file",
      "url": "https://raw.githubusercontent.com/hylian-modding/modloader64-gui/342e5dd81f5c2fd62abf0f5b5b215a13ffd6d3d4/resources/ml64.png",
      "sha256": "91b44e590023c2563d75a12fbd3d513f9ae411037c77ddead36e663f204a1520",
      "dest-filename": "icon.png"
     },
     {
      "type": "file",
      "url": "https://raw.githubusercontent.com/hylian-modding/ModLoader64/04fbf71e77be7dcebff4b8adfd696fa47621f9f1/LICENSE",
      "sha256": "3972dc9744f6499f0f9b2dbf76696f2ae7ad8af9b23dde66d6af86c9dfb36986",
      "dest-filename": "LICENSE"
     }
    ]
   }
  ]
 }
}