From 4a78a2533f6650d2103e25b6a53e080f3d5748ca Mon Sep 17 00:00:00 2001
From: Crimson-Hawk <warrobots.5psiml@gmail.com>
Date: Tue, 5 Mar 2024 20:10:18 +0800
Subject: [PATCH] imported hiddenFiles from legacy

 On branch master
 Your branch is up to date with 'origin/master'.

 Changes to be committed:
	new file:   hiddenFiles/.DS_Store
	new file:   hiddenFiles/.ci/.DS_Store
	new file:   hiddenFiles/.ci/scripts/android/build.sh
	new file:   hiddenFiles/.ci/scripts/android/eabuild.sh
	new file:   hiddenFiles/.ci/scripts/android/mainlinebuild.sh
	new file:   hiddenFiles/.ci/scripts/android/upload.sh
	new file:   hiddenFiles/.ci/scripts/clang/docker.sh
	new file:   hiddenFiles/.ci/scripts/clang/exec.sh
	new file:   hiddenFiles/.ci/scripts/clang/upload.sh
	new file:   hiddenFiles/.ci/scripts/common/post-upload.sh
	new file:   hiddenFiles/.ci/scripts/common/pre-upload.sh
	new file:   hiddenFiles/.ci/scripts/format/docker.sh
	new file:   hiddenFiles/.ci/scripts/format/exec.sh
	new file:   hiddenFiles/.ci/scripts/format/script.sh
	new file:   hiddenFiles/.ci/scripts/linux/docker.sh
	new file:   hiddenFiles/.ci/scripts/linux/exec.sh
	new file:   hiddenFiles/.ci/scripts/linux/upload.sh
	new file:   hiddenFiles/.ci/scripts/merge/apply-patches-by-label-private.py
	new file:   hiddenFiles/.ci/scripts/merge/apply-patches-by-label.py
	new file:   hiddenFiles/.ci/scripts/merge/check-label-presence.py
	new file:   hiddenFiles/.ci/scripts/merge/yuzubot-git-config.sh
	new file:   hiddenFiles/.ci/scripts/transifex/docker.sh
	new file:   hiddenFiles/.ci/scripts/windows/docker.sh
	new file:   hiddenFiles/.ci/scripts/windows/exec.sh
	new file:   hiddenFiles/.ci/scripts/windows/install-vulkan-sdk.ps1
	new file:   hiddenFiles/.ci/scripts/windows/scan_dll.py
	new file:   hiddenFiles/.ci/scripts/windows/upload.ps1
	new file:   hiddenFiles/.ci/scripts/windows/upload.sh
	new file:   hiddenFiles/.ci/templates/build-mock.yml
	new file:   hiddenFiles/.ci/templates/build-msvc.yml
	new file:   hiddenFiles/.ci/templates/build-single.yml
	new file:   hiddenFiles/.ci/templates/build-standard.yml
	new file:   hiddenFiles/.ci/templates/build-testing.yml
	new file:   hiddenFiles/.ci/templates/format-check.yml
	new file:   hiddenFiles/.ci/templates/merge-private.yml
	new file:   hiddenFiles/.ci/templates/merge.yml
	new file:   hiddenFiles/.ci/templates/mergebot-private.yml
	new file:   hiddenFiles/.ci/templates/mergebot.yml
	new file:   hiddenFiles/.ci/templates/release-download.yml
	new file:   hiddenFiles/.ci/templates/release-github.yml
	new file:   hiddenFiles/.ci/templates/release-private-tag.yml
	new file:   hiddenFiles/.ci/templates/release-universal.yml
	new file:   hiddenFiles/.ci/templates/retrieve-artifact-source.yml
	new file:   hiddenFiles/.ci/templates/retrieve-master-source.yml
	new file:   hiddenFiles/.ci/templates/sync-source.yml
	new file:   hiddenFiles/.ci/yuzu-mainline-step1.yml
	new file:   hiddenFiles/.ci/yuzu-mainline-step2.yml
	new file:   hiddenFiles/.ci/yuzu-patreon-step1.yml
	new file:   hiddenFiles/.ci/yuzu-patreon-step2.yml
	new file:   hiddenFiles/.ci/yuzu-repo-sync.yml
	new file:   hiddenFiles/.ci/yuzu-verify.yml
	new file:   hiddenFiles/.codespellrc
	new file:   hiddenFiles/.git-blame-ignore-revs
	new file:   hiddenFiles/.gitattributes
	new file:   hiddenFiles/.gitmodules
	new file:   hiddenFiles/.reuse/dep5
---
 hiddenFiles/.DS_Store                         | Bin 0 -> 6148 bytes
 hiddenFiles/.ci/.DS_Store                     | Bin 0 -> 6148 bytes
 hiddenFiles/.ci/scripts/android/build.sh      |  29 ++++
 hiddenFiles/.ci/scripts/android/eabuild.sh    |  21 +++
 .../.ci/scripts/android/mainlinebuild.sh      |  21 +++
 hiddenFiles/.ci/scripts/android/upload.sh     |  22 +++
 hiddenFiles/.ci/scripts/clang/docker.sh       |  32 ++++
 hiddenFiles/.ci/scripts/clang/exec.sh         |  11 ++
 hiddenFiles/.ci/scripts/clang/upload.sh       |  23 +++
 hiddenFiles/.ci/scripts/common/post-upload.sh |  20 +++
 hiddenFiles/.ci/scripts/common/pre-upload.sh  |  10 ++
 hiddenFiles/.ci/scripts/format/docker.sh      |   9 +
 hiddenFiles/.ci/scripts/format/exec.sh        |  10 ++
 hiddenFiles/.ci/scripts/format/script.sh      |  37 ++++
 hiddenFiles/.ci/scripts/linux/docker.sh       |  79 +++++++++
 hiddenFiles/.ci/scripts/linux/exec.sh         |  16 ++
 hiddenFiles/.ci/scripts/linux/upload.sh       |  67 ++++++++
 .../merge/apply-patches-by-label-private.py   |  48 ++++++
 .../scripts/merge/apply-patches-by-label.py   |  38 +++++
 .../.ci/scripts/merge/check-label-presence.py |  21 +++
 .../.ci/scripts/merge/yuzubot-git-config.sh   |   5 +
 hiddenFiles/.ci/scripts/transifex/docker.sh   |  19 +++
 hiddenFiles/.ci/scripts/windows/docker.sh     |  66 +++++++
 hiddenFiles/.ci/scripts/windows/exec.sh       |  11 ++
 .../scripts/windows/install-vulkan-sdk.ps1    |  33 ++++
 hiddenFiles/.ci/scripts/windows/scan_dll.py   | 109 ++++++++++++
 hiddenFiles/.ci/scripts/windows/upload.ps1    | 118 +++++++++++++
 hiddenFiles/.ci/scripts/windows/upload.sh     |  22 +++
 hiddenFiles/.ci/templates/build-mock.yml      |   8 +
 hiddenFiles/.ci/templates/build-msvc.yml      |  31 ++++
 hiddenFiles/.ci/templates/build-single.yml    |  26 +++
 hiddenFiles/.ci/templates/build-standard.yml  |  33 ++++
 hiddenFiles/.ci/templates/build-testing.yml   |  40 +++++
 hiddenFiles/.ci/templates/format-check.yml    |  17 ++
 hiddenFiles/.ci/templates/merge-private.yml   |  44 +++++
 hiddenFiles/.ci/templates/merge.yml           |  43 +++++
 .../.ci/templates/mergebot-private.yml        |  33 ++++
 hiddenFiles/.ci/templates/mergebot.yml        |  18 ++
 .../.ci/templates/release-download.yml        |  16 ++
 hiddenFiles/.ci/templates/release-github.yml  |  16 ++
 .../.ci/templates/release-private-tag.yml     |  12 ++
 .../.ci/templates/release-universal.yml       |  13 ++
 .../templates/retrieve-artifact-source.yml    |  19 +++
 .../.ci/templates/retrieve-master-source.yml  |  14 ++
 hiddenFiles/.ci/templates/sync-source.yml     |  10 ++
 hiddenFiles/.ci/yuzu-mainline-step1.yml       |  14 ++
 hiddenFiles/.ci/yuzu-mainline-step2.yml       |  64 +++++++
 hiddenFiles/.ci/yuzu-patreon-step1.yml        |  14 ++
 hiddenFiles/.ci/yuzu-patreon-step2.yml        |  59 +++++++
 hiddenFiles/.ci/yuzu-repo-sync.yml            |  22 +++
 hiddenFiles/.ci/yuzu-verify.yml               |  23 +++
 hiddenFiles/.codespellrc                      |   6 +
 hiddenFiles/.git-blame-ignore-revs            |   5 +
 hiddenFiles/.gitattributes                    |   7 +
 hiddenFiles/.gitmodules                       |  69 ++++++++
 hiddenFiles/.reuse/dep5                       | 161 ++++++++++++++++++
 56 files changed, 1734 insertions(+)
 create mode 100644 hiddenFiles/.DS_Store
 create mode 100644 hiddenFiles/.ci/.DS_Store
 create mode 100755 hiddenFiles/.ci/scripts/android/build.sh
 create mode 100644 hiddenFiles/.ci/scripts/android/eabuild.sh
 create mode 100644 hiddenFiles/.ci/scripts/android/mainlinebuild.sh
 create mode 100755 hiddenFiles/.ci/scripts/android/upload.sh
 create mode 100755 hiddenFiles/.ci/scripts/clang/docker.sh
 create mode 100644 hiddenFiles/.ci/scripts/clang/exec.sh
 create mode 100755 hiddenFiles/.ci/scripts/clang/upload.sh
 create mode 100644 hiddenFiles/.ci/scripts/common/post-upload.sh
 create mode 100644 hiddenFiles/.ci/scripts/common/pre-upload.sh
 create mode 100644 hiddenFiles/.ci/scripts/format/docker.sh
 create mode 100644 hiddenFiles/.ci/scripts/format/exec.sh
 create mode 100755 hiddenFiles/.ci/scripts/format/script.sh
 create mode 100755 hiddenFiles/.ci/scripts/linux/docker.sh
 create mode 100644 hiddenFiles/.ci/scripts/linux/exec.sh
 create mode 100755 hiddenFiles/.ci/scripts/linux/upload.sh
 create mode 100644 hiddenFiles/.ci/scripts/merge/apply-patches-by-label-private.py
 create mode 100644 hiddenFiles/.ci/scripts/merge/apply-patches-by-label.py
 create mode 100644 hiddenFiles/.ci/scripts/merge/check-label-presence.py
 create mode 100644 hiddenFiles/.ci/scripts/merge/yuzubot-git-config.sh
 create mode 100755 hiddenFiles/.ci/scripts/transifex/docker.sh
 create mode 100755 hiddenFiles/.ci/scripts/windows/docker.sh
 create mode 100644 hiddenFiles/.ci/scripts/windows/exec.sh
 create mode 100644 hiddenFiles/.ci/scripts/windows/install-vulkan-sdk.ps1
 create mode 100644 hiddenFiles/.ci/scripts/windows/scan_dll.py
 create mode 100644 hiddenFiles/.ci/scripts/windows/upload.ps1
 create mode 100755 hiddenFiles/.ci/scripts/windows/upload.sh
 create mode 100644 hiddenFiles/.ci/templates/build-mock.yml
 create mode 100644 hiddenFiles/.ci/templates/build-msvc.yml
 create mode 100644 hiddenFiles/.ci/templates/build-single.yml
 create mode 100644 hiddenFiles/.ci/templates/build-standard.yml
 create mode 100644 hiddenFiles/.ci/templates/build-testing.yml
 create mode 100644 hiddenFiles/.ci/templates/format-check.yml
 create mode 100644 hiddenFiles/.ci/templates/merge-private.yml
 create mode 100644 hiddenFiles/.ci/templates/merge.yml
 create mode 100644 hiddenFiles/.ci/templates/mergebot-private.yml
 create mode 100644 hiddenFiles/.ci/templates/mergebot.yml
 create mode 100644 hiddenFiles/.ci/templates/release-download.yml
 create mode 100644 hiddenFiles/.ci/templates/release-github.yml
 create mode 100644 hiddenFiles/.ci/templates/release-private-tag.yml
 create mode 100644 hiddenFiles/.ci/templates/release-universal.yml
 create mode 100644 hiddenFiles/.ci/templates/retrieve-artifact-source.yml
 create mode 100644 hiddenFiles/.ci/templates/retrieve-master-source.yml
 create mode 100644 hiddenFiles/.ci/templates/sync-source.yml
 create mode 100644 hiddenFiles/.ci/yuzu-mainline-step1.yml
 create mode 100644 hiddenFiles/.ci/yuzu-mainline-step2.yml
 create mode 100644 hiddenFiles/.ci/yuzu-patreon-step1.yml
 create mode 100644 hiddenFiles/.ci/yuzu-patreon-step2.yml
 create mode 100644 hiddenFiles/.ci/yuzu-repo-sync.yml
 create mode 100644 hiddenFiles/.ci/yuzu-verify.yml
 create mode 100644 hiddenFiles/.codespellrc
 create mode 100644 hiddenFiles/.git-blame-ignore-revs
 create mode 100644 hiddenFiles/.gitattributes
 create mode 100644 hiddenFiles/.gitmodules
 create mode 100644 hiddenFiles/.reuse/dep5

diff --git a/hiddenFiles/.DS_Store b/hiddenFiles/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..8192d4dc7111bda0c6c9bf4ebe45b35819b296b9
GIT binary patch
literal 6148
zcmeHKyH3L}6ul-DiqxeN3!`@=Q2)SG;S2f$s1E^Bqg0^o`3-)6g^dj{Gx0@ioa1ZS
z7y=_gaIa(^=e~2K*s+MX$!0MY8Hq@VL3CX72-Ur&z2r=zV~+83-qh=!6u(!+-U~UF
zxm>L-y8S;s>@0OtRkKwygQmP2zCPW)JfC*0i*Ky!%TCt9BTV*D?^>3!ksDd&RS)hz
z+Pk%nPPVnP9Cfqn;47c34~c!S7ZYQ^7%&Emf&a$<&TL9KRJ7R`Fb0f)Ed$&iJO(i&
zY!&0yfhk@AfCH$bV9mP(V|>DpuvLTw;xrVfp)Or9oQ6a1lV3>KDr&g6SQ&Xz<@d{r
zi`Aj`(Oq0nwAmOi266@peH`)pKf@=}d&$p3?8z7~2L2cWZct6D30^9lt)E_xXRXIL
s$Dq)!<pP3r_7i{y?jwiMsCLga{6fN3ky)sZ;XwNlh=kZ=4Ez8CZ*4k9ZvX%Q

literal 0
HcmV?d00001

diff --git a/hiddenFiles/.ci/.DS_Store b/hiddenFiles/.ci/.DS_Store
new file mode 100644
index 0000000000000000000000000000000000000000..78ffb2a0b45251cbde71ffafb2d505835a3b500a
GIT binary patch
literal 6148
zcmeHKu};H447EcgQn7SoykF?Vgh;FK1^oeNivTH6B3kzR27kfM%)}?~Be3y&c1xoK
z#8d&YCEvUF?40v*iSLMrr}xV-(TIprs9-Wg(<3r2+L6R8GRW~BHLYn?T#sjqs^jg3
z-^hTxyF*&hg6`;+cHUoEYr6Hk>rqyDJ})X6NzY#2o*rJFCw*SaA9&R_vRZ65ew0av
zSVdP<BAbFPW8c=)CZ`iwsXbo1d7UQjo4k5GKXd!uvz?!OCoax_GvEyTc?M9kMbaZh
zZ=C^Wz!}&wApeH|70e79#rW$$6ORDE0nAa*k9#Cw5CbqXY!qREu!aIPl<kPY8V-9f
zzs#^v)NtZBGwx$Evz<`bc4!=;J8`Dytux>Zv>7<i%aPRo^RLhU?I6E$2AqL^#Q+cT
zSw6)hS#9k+oYdL?y?}~{U!%AUK_`}C_(~~0hDL!sNC%i1Hj1!7d?OHP@WvU~D+3?G
C5myNS

literal 0
HcmV?d00001

diff --git a/hiddenFiles/.ci/scripts/android/build.sh b/hiddenFiles/.ci/scripts/android/build.sh
new file mode 100755
index 0000000000..98593017f0
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/android/build.sh
@@ -0,0 +1,29 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+export NDK_CCACHE="$(which ccache)"
+ccache -s
+
+BUILD_FLAVOR="mainline"
+
+BUILD_TYPE="release"
+if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then
+    BUILD_TYPE="relWithDebInfo"
+fi
+
+if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
+    export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
+    base64 --decode <<< "${ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
+fi
+
+cd src/android
+chmod +x ./gradlew
+./gradlew "assemble${BUILD_FLAVOR}${BUILD_TYPE}" "bundle${BUILD_FLAVOR}${BUILD_TYPE}"
+
+ccache -s
+
+if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
+    rm "${ANDROID_KEYSTORE_FILE}"
+fi
diff --git a/hiddenFiles/.ci/scripts/android/eabuild.sh b/hiddenFiles/.ci/scripts/android/eabuild.sh
new file mode 100644
index 0000000000..1672f29489
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/android/eabuild.sh
@@ -0,0 +1,21 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+export NDK_CCACHE="$(which ccache)"
+ccache -s
+
+export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
+base64 --decode <<< "${EA_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
+export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}"
+export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}"
+export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json"
+base64 --decode <<< "${EA_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}"
+./gradlew "publishEaReleaseBundle"
+
+ccache -s
+
+if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
+    rm "${ANDROID_KEYSTORE_FILE}"
+fi
diff --git a/hiddenFiles/.ci/scripts/android/mainlinebuild.sh b/hiddenFiles/.ci/scripts/android/mainlinebuild.sh
new file mode 100644
index 0000000000..f3b89ed1c1
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/android/mainlinebuild.sh
@@ -0,0 +1,21 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2024 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+export NDK_CCACHE="$(which ccache)"
+ccache -s
+
+export ANDROID_KEYSTORE_FILE="${GITHUB_WORKSPACE}/ks.jks"
+base64 --decode <<< "${MAINLINE_PLAY_ANDROID_KEYSTORE_B64}" > "${ANDROID_KEYSTORE_FILE}"
+export ANDROID_KEY_ALIAS="${PLAY_ANDROID_KEY_ALIAS}"
+export ANDROID_KEYSTORE_PASS="${PLAY_ANDROID_KEYSTORE_PASS}"
+export SERVICE_ACCOUNT_KEY_PATH="${GITHUB_WORKSPACE}/sa.json"
+base64 --decode <<< "${MAINLINE_SERVICE_ACCOUNT_KEY_B64}" > "${SERVICE_ACCOUNT_KEY_PATH}"
+./gradlew "publishMainlineReleaseBundle"
+
+ccache -s
+
+if [ ! -z "${ANDROID_KEYSTORE_B64}" ]; then
+    rm "${ANDROID_KEYSTORE_FILE}"
+fi
diff --git a/hiddenFiles/.ci/scripts/android/upload.sh b/hiddenFiles/.ci/scripts/android/upload.sh
new file mode 100755
index 0000000000..26b1a7efa2
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/android/upload.sh
@@ -0,0 +1,22 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+. ./.ci/scripts/common/pre-upload.sh
+
+REV_NAME="yuzu-${GITDATE}-${GITREV}"
+
+BUILD_FLAVOR="mainline"
+
+BUILD_TYPE_LOWER="release"
+BUILD_TYPE_UPPER="Release"
+if [ "${GITHUB_REPOSITORY}" == "yuzu-emu/yuzu" ]; then
+    BUILD_TYPE_LOWER="relWithDebInfo"
+    BUILD_TYPE_UPPER="RelWithDebInfo"
+fi
+
+cp src/android/app/build/outputs/apk/"${BUILD_FLAVOR}/${BUILD_TYPE_LOWER}/app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.apk" \
+  "artifacts/${REV_NAME}.apk"
+cp src/android/app/build/outputs/bundle/"${BUILD_FLAVOR}${BUILD_TYPE_UPPER}"/"app-${BUILD_FLAVOR}-${BUILD_TYPE_LOWER}.aab" \
+  "artifacts/${REV_NAME}.aab"
diff --git a/hiddenFiles/.ci/scripts/clang/docker.sh b/hiddenFiles/.ci/scripts/clang/docker.sh
new file mode 100755
index 0000000000..f878e24e15
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/clang/docker.sh
@@ -0,0 +1,32 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Exit on error, rather than continuing with the rest of the script.
+set -e
+
+ccache -s
+
+mkdir build || true && cd build
+cmake .. \
+      -DCMAKE_BUILD_TYPE=Release \
+      -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
+      -DCMAKE_CXX_COMPILER=/usr/lib/ccache/clang++ \
+      -DCMAKE_C_COMPILER=/usr/lib/ccache/clang \
+      -DCMAKE_INSTALL_PREFIX="/usr" \
+      -DDISPLAY_VERSION=$1 \
+      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
+      -DENABLE_QT_TRANSLATION=ON \
+      -DUSE_DISCORD_PRESENCE=ON \
+      -DYUZU_CRASH_DUMPS=ON \
+      -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
+      -DYUZU_USE_BUNDLED_FFMPEG=ON \
+      -GNinja
+
+ninja
+
+ccache -s
+
+ctest -VV -C Release
+
diff --git a/hiddenFiles/.ci/scripts/clang/exec.sh b/hiddenFiles/.ci/scripts/clang/exec.sh
new file mode 100644
index 0000000000..664fce5f84
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/clang/exec.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+mkdir -p "ccache"  || true
+chmod a+x ./.ci/scripts/clang/docker.sh
+# the UID for the container yuzu user is 1027
+sudo chown -R 1027 ./
+docker run -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/clang/docker.sh "$1"
+sudo chown -R $UID ./
diff --git a/hiddenFiles/.ci/scripts/clang/upload.sh b/hiddenFiles/.ci/scripts/clang/upload.sh
new file mode 100755
index 0000000000..0b4b3e330b
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/clang/upload.sh
@@ -0,0 +1,23 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+. .ci/scripts/common/pre-upload.sh
+
+REV_NAME="yuzu-linux-${GITDATE}-${GITREV}"
+ARCHIVE_NAME="${REV_NAME}.tar.xz"
+COMPRESSION_FLAGS="-cJvf"
+
+if [ "${RELEASE_NAME}" = "mainline" ]; then
+    DIR_NAME="${REV_NAME}"
+else
+    DIR_NAME="${REV_NAME}_${RELEASE_NAME}"
+fi
+
+mkdir "$DIR_NAME"
+
+cp build/bin/yuzu-cmd "$DIR_NAME"
+cp build/bin/yuzu "$DIR_NAME"
+
+. .ci/scripts/common/post-upload.sh
diff --git a/hiddenFiles/.ci/scripts/common/post-upload.sh b/hiddenFiles/.ci/scripts/common/post-upload.sh
new file mode 100644
index 0000000000..0930b7a7bd
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/common/post-upload.sh
@@ -0,0 +1,20 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Copy documentation
+cp LICENSE.txt "$DIR_NAME"
+cp README.md "$DIR_NAME"
+
+if [[ -z "${NO_SOURCE_PACK}" ]]; then
+  git clone --depth 1 file://$(readlink -e .) ${REV_NAME}-source
+  tar -cJvf "${REV_NAME}-source.tar.xz" ${REV_NAME}-source
+  cp -v "${REV_NAME}-source.tar.xz" "$DIR_NAME"
+  cp -v "${REV_NAME}-source.tar.xz" "${ARTIFACTS_DIR}/"
+fi
+
+tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$DIR_NAME"
+
+# move the compiled archive into the artifacts directory to be uploaded by travis releases
+mv "$ARCHIVE_NAME" "${ARTIFACTS_DIR}/"
diff --git a/hiddenFiles/.ci/scripts/common/pre-upload.sh b/hiddenFiles/.ci/scripts/common/pre-upload.sh
new file mode 100644
index 0000000000..3583f98402
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/common/pre-upload.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`"
+GITREV="`git show -s --format='%h'`"
+ARTIFACTS_DIR="$PWD/artifacts"
+
+mkdir -p "${ARTIFACTS_DIR}/"
diff --git a/hiddenFiles/.ci/scripts/format/docker.sh b/hiddenFiles/.ci/scripts/format/docker.sh
new file mode 100644
index 0000000000..a0f7a61cce
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/format/docker.sh
@@ -0,0 +1,9 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Run clang-format
+cd /yuzu
+chmod a+x ./.ci/scripts/format/script.sh
+./.ci/scripts/format/script.sh
diff --git a/hiddenFiles/.ci/scripts/format/exec.sh b/hiddenFiles/.ci/scripts/format/exec.sh
new file mode 100644
index 0000000000..40ab41abda
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/format/exec.sh
@@ -0,0 +1,10 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+chmod a+x ./.ci/scripts/format/docker.sh
+# the UID for the container yuzu user is 1027
+sudo chown -R 1027 ./
+docker run -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-clang-format /bin/bash -ex /yuzu/.ci/scripts/format/docker.sh
+sudo chown -R $UID ./
diff --git a/hiddenFiles/.ci/scripts/format/script.sh b/hiddenFiles/.ci/scripts/format/script.sh
new file mode 100755
index 0000000000..f9c63dbfa3
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/format/script.sh
@@ -0,0 +1,37 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+shopt -s nullglob globstar
+
+if git grep -nrI '\s$' src **/*.yml **/*.txt **/*.md Doxyfile .gitignore .gitmodules .ci* dist/*.desktop dist/*.svg dist/*.xml; then
+    echo Trailing whitespace found, aborting
+    exit 1
+fi
+
+# Default clang-format points to default 3.5 version one
+CLANG_FORMAT="${CLANG_FORMAT:-clang-format-15}"
+"$CLANG_FORMAT" --version
+
+# Turn off tracing for this because it's too verbose
+set +x
+
+# Check everything for branch pushes
+FILES_TO_LINT="$(find src/ -name '*.cpp' -or -name '*.h')"
+
+for f in $FILES_TO_LINT; do
+    echo "$f"
+    "$CLANG_FORMAT" -i "$f"
+done
+
+DIFF=$(git -c core.fileMode=false diff)
+
+if [ ! -z "$DIFF" ]; then
+    echo "!!! Not compliant to coding style, here is the fix:"
+    echo "$DIFF"
+    exit 1
+fi
+
+cd src/android
+./gradlew ktlintCheck
diff --git a/hiddenFiles/.ci/scripts/linux/docker.sh b/hiddenFiles/.ci/scripts/linux/docker.sh
new file mode 100755
index 0000000000..7bba01d62a
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/linux/docker.sh
@@ -0,0 +1,79 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Exit on error, rather than continuing with the rest of the script.
+set -e
+
+ccache -s
+
+mkdir build || true && cd build
+cmake .. \
+      -DBoost_USE_STATIC_LIBS=ON \
+      -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+      -DCMAKE_CXX_FLAGS="-march=x86-64-v2" \
+      -DCMAKE_CXX_COMPILER=/usr/lib/ccache/g++ \
+      -DCMAKE_C_COMPILER=/usr/lib/ccache/gcc \
+      -DCMAKE_INSTALL_PREFIX="/usr" \
+      -DDISPLAY_VERSION=$1 \
+      -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
+      -DENABLE_QT_TRANSLATION=ON \
+      -DUSE_DISCORD_PRESENCE=ON \
+      -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${ENABLE_COMPATIBILITY_REPORTING:-"OFF"} \
+      -DYUZU_USE_BUNDLED_FFMPEG=ON \
+      -DYUZU_ENABLE_LTO=ON \
+      -DYUZU_CRASH_DUMPS=ON \
+      -GNinja
+
+ninja
+
+ccache -s
+
+ctest -VV -C Release
+
+# Separate debug symbols from specified executables
+for EXE in yuzu; do
+    EXE_PATH="bin/$EXE"
+    # Copy debug symbols out
+    objcopy --only-keep-debug $EXE_PATH $EXE_PATH.debug
+    # Add debug link and strip debug symbols
+    objcopy -g --add-gnu-debuglink=$EXE_PATH.debug $EXE_PATH $EXE_PATH.out
+    # Overwrite original with stripped copy
+    mv $EXE_PATH.out $EXE_PATH
+done
+# Strip debug symbols from all executables
+find bin/ -type f -not -regex '.*.debug' -exec strip -g {} ';'
+
+DESTDIR="$PWD/AppDir" ninja install
+rm -vf AppDir/usr/bin/yuzu-cmd AppDir/usr/bin/yuzu-tester
+
+# Download tools needed to build an AppImage
+wget -nc https://raw.githubusercontent.com/yuzu-emu/ext-linux-bin/main/appimage/deploy-linux.sh
+wget -nc https://raw.githubusercontent.com/yuzu-emu/AppImageKit-checkrt/old/AppRun.sh
+wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/exec-x86_64.so
+# Set executable bit
+chmod 755 \
+    deploy-linux.sh \
+    AppRun.sh \
+    exec-x86_64.so \
+
+# Workaround for https://github.com/AppImage/AppImageKit/issues/828
+export APPIMAGE_EXTRACT_AND_RUN=1
+
+mkdir -p AppDir/usr/optional
+mkdir -p AppDir/usr/optional/libstdc++
+mkdir -p AppDir/usr/optional/libgcc_s
+
+# Deploy yuzu's needed dependencies
+DEPLOY_QT=1 ./deploy-linux.sh AppDir/usr/bin/yuzu AppDir
+
+# Workaround for libQt5MultimediaGstTools indirectly requiring libwayland-client and breaking Vulkan usage on end-user systems
+find AppDir -type f -regex '.*libwayland-client\.so.*' -delete -print
+
+# Workaround for building yuzu with GCC 10 but also trying to distribute it to Ubuntu 18.04 et al.
+# See https://github.com/darealshinji/AppImageKit-checkrt
+cp exec-x86_64.so AppDir/usr/optional/exec.so
+cp AppRun.sh AppDir/AppRun
+cp --dereference /usr/lib/x86_64-linux-gnu/libstdc++.so.6 AppDir/usr/optional/libstdc++/libstdc++.so.6
+cp --dereference /lib/x86_64-linux-gnu/libgcc_s.so.1 AppDir/usr/optional/libgcc_s/libgcc_s.so.1
diff --git a/hiddenFiles/.ci/scripts/linux/exec.sh b/hiddenFiles/.ci/scripts/linux/exec.sh
new file mode 100644
index 0000000000..04e2486a1b
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/linux/exec.sh
@@ -0,0 +1,16 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+mkdir -p "ccache"  || true
+chmod a+x ./.ci/scripts/linux/docker.sh
+# the UID for the container yuzu user is 1027
+sudo chown -R 1027 ./
+
+# The environment variables listed below:
+# AZURECIREPO TITLEBARFORMATIDLE TITLEBARFORMATRUNNING DISPLAYVERSION
+#  are requested in src/common/CMakeLists.txt and appear to be provided somewhere in Azure DevOps
+
+docker run -e AZURECIREPO -e TITLEBARFORMATIDLE -e TITLEBARFORMATRUNNING -e DISPLAYVERSION -e ENABLE_COMPATIBILITY_REPORTING -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-fresh /bin/bash /yuzu/.ci/scripts/linux/docker.sh "$1"
+sudo chown -R $UID ./
diff --git a/hiddenFiles/.ci/scripts/linux/upload.sh b/hiddenFiles/.ci/scripts/linux/upload.sh
new file mode 100755
index 0000000000..fbb2d9c1b0
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/linux/upload.sh
@@ -0,0 +1,67 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+. .ci/scripts/common/pre-upload.sh
+
+APPIMAGE_NAME="yuzu-${RELEASE_NAME}-${GITDATE}-${GITREV}.AppImage"
+BASE_NAME="yuzu-linux"
+REV_NAME="${BASE_NAME}-${GITDATE}-${GITREV}"
+ARCHIVE_NAME="${REV_NAME}.tar.xz"
+COMPRESSION_FLAGS="-cJvf"
+
+if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
+    DIR_NAME="${BASE_NAME}-${RELEASE_NAME}"
+else
+    DIR_NAME="${REV_NAME}-${RELEASE_NAME}"
+fi
+
+mkdir "$DIR_NAME"
+
+cp build/bin/yuzu-cmd "$DIR_NAME"
+if [ "${RELEASE_NAME}" != "early-access" ] && [ "${RELEASE_NAME}" != "mainline" ]; then
+    cp build/bin/yuzu "$DIR_NAME"
+fi
+
+# Build an AppImage
+cd build
+
+wget -nc https://github.com/yuzu-emu/ext-linux-bin/raw/main/appimage/appimagetool-x86_64.AppImage
+chmod 755 appimagetool-x86_64.AppImage
+
+# if FUSE is not available, then fallback to extract and run
+if ! ./appimagetool-x86_64.AppImage --version; then
+    export APPIMAGE_EXTRACT_AND_RUN=1
+fi
+
+# Don't let AppImageLauncher ask to integrate EA
+if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
+    echo "X-AppImage-Integrate=false" >> AppDir/org.yuzu_emu.yuzu.desktop
+fi
+
+if [ "${RELEASE_NAME}" = "mainline" ]; then
+    # Generate update information if releasing to mainline
+    ./appimagetool-x86_64.AppImage -u "gh-releases-zsync|yuzu-emu|yuzu-${RELEASE_NAME}|latest|yuzu-*.AppImage.zsync" AppDir "${APPIMAGE_NAME}"
+else
+    ./appimagetool-x86_64.AppImage AppDir "${APPIMAGE_NAME}"
+fi
+cd ..
+
+# Copy the AppImage and update info to the artifacts directory and avoid compressing it
+cp "build/${APPIMAGE_NAME}" "${ARTIFACTS_DIR}/"
+if [ -f "build/${APPIMAGE_NAME}.zsync" ]; then
+    cp "build/${APPIMAGE_NAME}.zsync" "${ARTIFACTS_DIR}/"
+fi
+
+# Copy the AppImage to the general release directory and remove git revision info
+if [ "${RELEASE_NAME}" = "mainline" ] || [ "${RELEASE_NAME}" = "early-access" ]; then
+    cp "build/${APPIMAGE_NAME}" "${DIR_NAME}/yuzu-${RELEASE_NAME}.AppImage"
+fi
+
+# Copy debug symbols to artifacts
+cd build/bin
+tar $COMPRESSION_FLAGS "${ARTIFACTS_DIR}/${REV_NAME}-debug.tar.xz" *.debug
+cd -
+
+. .ci/scripts/common/post-upload.sh
diff --git a/hiddenFiles/.ci/scripts/merge/apply-patches-by-label-private.py b/hiddenFiles/.ci/scripts/merge/apply-patches-by-label-private.py
new file mode 100644
index 0000000000..c640c4c4da
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/merge/apply-patches-by-label-private.py
@@ -0,0 +1,48 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Download all pull requests as patches that match a specific label
+# Usage: python download-patches-by-label.py <Label to Match> <Root Path Folder to DL to>
+
+import requests, sys, json, shutil, subprocess, os, traceback
+
+org = os.getenv("PRIVATEMERGEORG", "yuzu-emu")
+repo = os.getenv("PRIVATEMERGEREPO", "yuzu-private")
+tagline = sys.argv[3]
+user = sys.argv[1]
+
+dl_list = {}
+
+TAG_NAME = sys.argv[2]
+
+def check_individual(repo_id, pr_id):
+    url = 'https://%sdev.azure.com/%s/%s/_apis/git/repositories/%s/pullRequests/%s/labels?api-version=5.1-preview.1' % (user, org, repo, repo_id, pr_id)
+    response = requests.get(url)
+    if (response.ok):
+        try:
+            js = response.json()
+            return any(tag.get('name') == TAG_NAME for tag in js['value'])
+        except:
+            return False
+    return False
+
+def merge_pr(pn, ref):
+    print("Matched PR# %s" % pn)
+    print(subprocess.check_output(["git", "fetch", "https://%sdev.azure.com/%s/_git/%s" % (user, org, repo), ref, "-f", "--no-recurse-submodules"]))
+    print(subprocess.check_output(["git", "merge", "--squash", 'origin/' + ref.replace('refs/heads/','')]))
+    print(subprocess.check_output(["git", "commit", "-m\"Merge %s PR %s\"" % (tagline, pn)]))
+
+def main():
+    url = 'https://%sdev.azure.com/%s/%s/_apis/git/pullrequests?api-version=5.1' % (user, org, repo)
+    response = requests.get(url)
+    if (response.ok):
+        js = response.json()
+        tagged_prs = filter(lambda pr: check_individual(pr['repository']['id'], pr['pullRequestId']), js['value'])
+        map(lambda pr: merge_pr(pr['pullRequestId'], pr['sourceRefName']), tagged_prs)
+
+if __name__ == '__main__':
+    try:
+        main()
+    except:
+        traceback.print_exc(file=sys.stdout)
+        sys.exit(-1)
diff --git a/hiddenFiles/.ci/scripts/merge/apply-patches-by-label.py b/hiddenFiles/.ci/scripts/merge/apply-patches-by-label.py
new file mode 100644
index 0000000000..17bb7dc13d
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/merge/apply-patches-by-label.py
@@ -0,0 +1,38 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Download all pull requests as patches that match a specific label
+# Usage: python apply-patches-by-label.py <Label to Match>
+
+import json, requests, subprocess, sys, traceback
+
+tagline = sys.argv[2]
+
+def check_individual(labels):
+    for label in labels:
+        if (label["name"] == sys.argv[1]):
+            return True
+    return False
+
+def do_page(page):
+    url = f"https://api.github.com/repos/yuzu-emu/yuzu/pulls?page={page}"
+    response = requests.get(url)
+    response.raise_for_status()
+    if (response.ok):
+        j = json.loads(response.content)
+        if j == []:
+            return
+        for pr in j:
+            if (check_individual(pr["labels"])):
+                pn = pr["number"]
+                print(f"Matched PR# {pn}")
+                print(subprocess.check_output(["git", "fetch", "https://github.com/yuzu-emu/yuzu.git", f"pull/{pn}/head:pr-{pn}", "-f", "--no-recurse-submodules"]))
+                print(subprocess.check_output(["git", "merge", "--squash", f"pr-{pn}"]))
+                print(subprocess.check_output(["git", "commit", f"-m\"Merge {tagline} PR {pn}\""]))
+
+try:
+    for i in range(1,10):
+        do_page(i)
+except:
+    traceback.print_exc(file=sys.stdout)
+    sys.exit(-1)
diff --git a/hiddenFiles/.ci/scripts/merge/check-label-presence.py b/hiddenFiles/.ci/scripts/merge/check-label-presence.py
new file mode 100644
index 0000000000..51cf681291
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/merge/check-label-presence.py
@@ -0,0 +1,21 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Checks to see if the specified pull request # has the specified tag
+# Usage: python check-label-presence.py <Pull Request ID> <Name of Label>
+
+import requests, json, sys
+
+try:
+    url = 'https://api.github.com/repos/yuzu-emu/yuzu/issues/%s' % sys.argv[1]
+    response = requests.get(url)
+    if (response.ok):
+        j = json.loads(response.content)
+        for label in j["labels"]:
+            if label["name"] == sys.argv[2]:
+                print('##vso[task.setvariable variable=enabletesting;]true')
+                sys.exit()
+except:
+    sys.exit(-1)
+
+print('##vso[task.setvariable variable=enabletesting;]false')
diff --git a/hiddenFiles/.ci/scripts/merge/yuzubot-git-config.sh b/hiddenFiles/.ci/scripts/merge/yuzubot-git-config.sh
new file mode 100644
index 0000000000..d7f1f29dba
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/merge/yuzubot-git-config.sh
@@ -0,0 +1,5 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+git config --global user.email "yuzu@yuzu-emu.org"
+git config --global user.name "yuzubot"
\ No newline at end of file
diff --git a/hiddenFiles/.ci/scripts/transifex/docker.sh b/hiddenFiles/.ci/scripts/transifex/docker.sh
new file mode 100755
index 0000000000..6ddbfd0dda
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/transifex/docker.sh
@@ -0,0 +1,19 @@
+#!/bin/bash -e
+
+# SPDX-FileCopyrightText: 2021 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set -x
+
+echo -e "\e[1m\e[33mBuild tools information:\e[0m"
+cmake --version
+gcc -v
+tx --version
+
+mkdir build && cd build
+cmake .. -DENABLE_QT_TRANSLATION=ON -DGENERATE_QT_TRANSLATION=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_SDL2=OFF -DYUZU_TESTS=OFF -DYUZU_USE_BUNDLED_VCPKG=ON
+make translation
+cd ..
+
+cd dist/languages
+tx push -s
diff --git a/hiddenFiles/.ci/scripts/windows/docker.sh b/hiddenFiles/.ci/scripts/windows/docker.sh
new file mode 100755
index 0000000000..44023600d7
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/windows/docker.sh
@@ -0,0 +1,66 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+set -e
+
+#cd /yuzu
+
+ccache -sv
+
+mkdir -p build && cd build
+cmake .. \
+    -DCMAKE_BUILD_TYPE=Release \
+    -DCMAKE_TOOLCHAIN_FILE="${PWD}/../CMakeModules/MinGWCross.cmake" \
+    -DDISPLAY_VERSION="$1" \
+    -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON \
+    -DENABLE_QT_TRANSLATION=ON \
+    -DUSE_CCACHE=ON \
+    -DYUZU_USE_BUNDLED_SDL2=OFF \
+    -DYUZU_USE_EXTERNAL_SDL2=OFF \
+    -DYUZU_TESTS=OFF \
+    -GNinja
+ninja yuzu yuzu-cmd
+
+ccache -sv
+
+echo "Tests skipped"
+#ctest -VV -C Release
+
+echo 'Prepare binaries...'
+cd ..
+mkdir package
+
+if [ -d "/usr/x86_64-w64-mingw32/lib/qt5/plugins/platforms/" ]; then
+  QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt5/plugins'
+else
+  #fallback to qt
+  QT_PLUGINS_PATH='/usr/x86_64-w64-mingw32/lib/qt/plugins'
+fi
+
+find build/ -name "yuzu*.exe" -exec cp {} 'package' \;
+
+# copy Qt plugins
+mkdir package/platforms
+cp -v "${QT_PLUGINS_PATH}/platforms/qwindows.dll" package/platforms/
+cp -rv "${QT_PLUGINS_PATH}/mediaservice/" package/
+cp -rv "${QT_PLUGINS_PATH}/imageformats/" package/
+cp -rv "${QT_PLUGINS_PATH}/styles/" package/
+rm -f package/mediaservice/*d.dll
+
+for i in package/*.exe; do
+  # we need to process pdb here, however, cv2pdb
+  # does not work here, so we just simply strip all the debug symbols
+  x86_64-w64-mingw32-strip "${i}"
+done
+
+python3 .ci/scripts/windows/scan_dll.py package/*.exe package/imageformats/*.dll "package/"
+
+# copy FFmpeg libraries
+EXTERNALS_PATH="$(pwd)/build/externals"
+FFMPEG_DLL_PATH="$(find "${EXTERNALS_PATH}" -maxdepth 1 -type d | grep 'ffmpeg-')/bin"
+find ${FFMPEG_DLL_PATH} -type f -regex ".*\.dll" -exec cp -nv {} package/ ';'
+
+# copy libraries from yuzu.exe path
+find "$(pwd)/build/bin/" -type f -regex ".*\.dll" -exec cp -v {} package/ ';'
diff --git a/hiddenFiles/.ci/scripts/windows/exec.sh b/hiddenFiles/.ci/scripts/windows/exec.sh
new file mode 100644
index 0000000000..ca74eeba56
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/windows/exec.sh
@@ -0,0 +1,11 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+mkdir -p "ccache" || true
+chmod a+x ./.ci/scripts/windows/docker.sh
+# the UID for the container yuzu user is 1027
+sudo chown -R 1027 ./
+docker run -e CCACHE_DIR=/yuzu/ccache -v "$(pwd):/yuzu" -w /yuzu yuzuemu/build-environments:linux-mingw /bin/bash -ex /yuzu/.ci/scripts/windows/docker.sh "$1"
+sudo chown -R $UID ./
diff --git a/hiddenFiles/.ci/scripts/windows/install-vulkan-sdk.ps1 b/hiddenFiles/.ci/scripts/windows/install-vulkan-sdk.ps1
new file mode 100644
index 0000000000..de218d90ad
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/windows/install-vulkan-sdk.ps1
@@ -0,0 +1,33 @@
+# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+$ErrorActionPreference = "Stop"
+
+$VulkanSDKVer = "1.3.250.1"
+$ExeFile = "VulkanSDK-$VulkanSDKVer-Installer.exe"
+$Uri = "https://sdk.lunarg.com/sdk/download/$VulkanSDKVer/windows/$ExeFile"
+$Destination = "./$ExeFile"
+
+echo "Downloading Vulkan SDK $VulkanSDKVer from $Uri"
+$WebClient = New-Object System.Net.WebClient
+$WebClient.DownloadFile($Uri, $Destination)
+echo "Finished downloading $ExeFile"
+
+$VULKAN_SDK = "C:/VulkanSDK/$VulkanSDKVer"
+$Arguments = "--root `"$VULKAN_SDK`" --accept-licenses --default-answer --confirm-command install"
+
+echo "Installing Vulkan SDK $VulkanSDKVer"
+$InstallProcess = Start-Process -FilePath $Destination -NoNewWindow -PassThru -Wait -ArgumentList $Arguments
+$ExitCode = $InstallProcess.ExitCode
+
+if ($ExitCode -ne 0) {
+    echo "Error installing Vulkan SDK $VulkanSDKVer (Error: $ExitCode)"
+    Exit $ExitCode
+}
+
+echo "Finished installing Vulkan SDK $VulkanSDKVer"
+
+if ("$env:GITHUB_ACTIONS" -eq "true") {
+    echo "VULKAN_SDK=$VULKAN_SDK" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+    echo "$VULKAN_SDK/Bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
+}
diff --git a/hiddenFiles/.ci/scripts/windows/scan_dll.py b/hiddenFiles/.ci/scripts/windows/scan_dll.py
new file mode 100644
index 0000000000..a536f73759
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/windows/scan_dll.py
@@ -0,0 +1,109 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+import pefile
+import sys
+import re
+import os
+import queue
+import shutil
+
+# constant definitions
+KNOWN_SYS_DLLS = ['WINMM.DLL', 'MSVCRT.DLL', 'VERSION.DLL', 'MPR.DLL',
+                  'DWMAPI.DLL', 'UXTHEME.DLL', 'DNSAPI.DLL', 'IPHLPAPI.DLL']
+# below is for Ubuntu 18.04 with specified PPA enabled, if you are using
+# other distro or different repositories, change the following accordingly
+DLL_PATH = [
+    '/usr/x86_64-w64-mingw32/bin/',
+    '/usr/x86_64-w64-mingw32/lib/',
+    '/usr/lib/gcc/x86_64-w64-mingw32/7.3-posix/'
+]
+
+missing = []
+
+
+def parse_imports(file_name):
+    results = []
+    pe = pefile.PE(file_name, fast_load=True)
+    pe.parse_data_directories()
+
+    for entry in pe.DIRECTORY_ENTRY_IMPORT:
+        current = entry.dll.decode()
+        current_u = current.upper()  # b/c Windows is often case insensitive
+        # here we filter out system dlls
+        # dll w/ names like *32.dll are likely to be system dlls
+        if current_u.upper() not in KNOWN_SYS_DLLS and not re.match(string=current_u, pattern=r'.*32\.DLL'):
+            results.append(current)
+
+    return results
+
+
+def parse_imports_recursive(file_name, path_list=[]):
+    q = queue.Queue()  # create a FIFO queue
+    # file_name can be a string or a list for the convenience
+    if isinstance(file_name, str):
+        q.put(file_name)
+    elif isinstance(file_name, list):
+        for i in file_name:
+            q.put(i)
+    full_list = []
+    while q.qsize():
+        current = q.get_nowait()
+        print('> %s' % current)
+        deps = parse_imports(current)
+        # if this dll does not have any import, ignore it
+        if not deps:
+            continue
+        for dep in deps:
+            # the dependency already included in the list, skip
+            if dep in full_list:
+                continue
+            # find the requested dll in the provided paths
+            full_path = find_dll(dep)
+            if not full_path:
+                missing.append(dep)
+                continue
+            full_list.append(dep)
+            q.put(full_path)
+            path_list.append(full_path)
+    return full_list
+
+
+def find_dll(name):
+    for path in DLL_PATH:
+        for root, _, files in os.walk(path):
+            for f in files:
+                if name.lower() == f.lower():
+                    return os.path.join(root, f)
+
+
+def deploy(name, dst, dry_run=False):
+    dlls_path = []
+    parse_imports_recursive(name, dlls_path)
+    for dll_entry in dlls_path:
+        if not dry_run:
+            shutil.copy(dll_entry, dst)
+        else:
+            print('[Dry-Run] Copy %s to %s' % (dll_entry, dst))
+    print('Deploy completed.')
+    return dlls_path
+
+
+def main():
+    if len(sys.argv) < 3:
+        print('Usage: %s [files to examine ...] [target deploy directory]')
+        return 1
+    to_deploy = sys.argv[1:-1]
+    tgt_dir = sys.argv[-1]
+    if not os.path.isdir(tgt_dir):
+        print('%s is not a directory.' % tgt_dir)
+        return 1
+    print('Scanning dependencies...')
+    deploy(to_deploy, tgt_dir)
+    if missing:
+        print('Following DLLs are not found: %s' % ('\n'.join(missing)))
+    return 0
+
+
+if __name__ == '__main__':
+    main()
diff --git a/hiddenFiles/.ci/scripts/windows/upload.ps1 b/hiddenFiles/.ci/scripts/windows/upload.ps1
new file mode 100644
index 0000000000..492763420e
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/windows/upload.ps1
@@ -0,0 +1,118 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+param($BUILD_NAME)
+
+$GITDATE = $(git show -s --date=short --format='%ad') -replace "-", ""
+$GITREV = $(git show -s --format='%h')
+
+if ("$BUILD_NAME" -eq "mainline") {
+    $RELEASE_DIST = "yuzu-windows-msvc"
+}
+else {
+    $RELEASE_DIST = "yuzu-windows-msvc-$BUILD_NAME"
+}
+
+$MSVC_BUILD_ZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.zip" -replace " ", ""
+$MSVC_BUILD_PDB = "yuzu-windows-msvc-$GITDATE-$GITREV-debugsymbols.zip" -replace " ", ""
+$MSVC_SEVENZIP = "yuzu-windows-msvc-$GITDATE-$GITREV.7z" -replace " ", ""
+$MSVC_TAR = "yuzu-windows-msvc-$GITDATE-$GITREV.tar" -replace " ", ""
+$MSVC_TARXZ = "yuzu-windows-msvc-$GITDATE-$GITREV.tar.xz" -replace " ", ""
+$MSVC_SOURCE = "yuzu-windows-msvc-source-$GITDATE-$GITREV" -replace " ", ""
+$MSVC_SOURCE_TAR = "$MSVC_SOURCE.tar"
+$MSVC_SOURCE_TARXZ = "$MSVC_SOURCE_TAR.xz"
+
+$env:BUILD_ZIP = $MSVC_BUILD_ZIP
+$env:BUILD_SYMBOLS = $MSVC_BUILD_PDB
+$env:BUILD_UPDATE = $MSVC_SEVENZIP
+
+if (Test-Path -Path ".\build\bin\Release") {
+    $BUILD_DIR = ".\build\bin\Release"
+} else {
+    $BUILD_DIR = ".\build\bin\"
+}
+
+# Cleanup unneeded data in submodules
+git submodule foreach git clean -fxd
+
+# Upload debugging symbols
+mkdir pdb
+Get-ChildItem "$BUILD_DIR\" -Recurse -Filter "*.pdb" | Copy-Item -destination .\pdb
+7z a -tzip $MSVC_BUILD_PDB .\pdb\*.pdb
+rm "$BUILD_DIR\*.pdb"
+
+# Create artifact directories
+mkdir $RELEASE_DIST
+mkdir $MSVC_SOURCE
+mkdir "artifacts"
+
+$CURRENT_DIR = Convert-Path .
+
+# Build a tar.xz for the source of the release
+git clone --depth 1 file://$CURRENT_DIR $MSVC_SOURCE
+7z a -r -ttar $MSVC_SOURCE_TAR $MSVC_SOURCE
+7z a -r -txz $MSVC_SOURCE_TARXZ $MSVC_SOURCE_TAR
+
+# Following section is quick hack to package artifacts differently for GitHub Actions
+if ("$env:GITHUB_ACTIONS" -eq "true") {
+    echo "Hello GitHub Actions"
+
+    # With vcpkg we now have a few more dll files
+    ls .\build\bin\*.dll
+    cp .\build\bin\*.dll .\artifacts\
+
+    # Hopefully there is an exe in either .\build\bin or .\build\bin\Release
+    cp .\build\bin\yuzu*.exe .\artifacts\
+    Copy-Item "$BUILD_DIR\*" -Destination "artifacts" -Recurse
+    Remove-Item .\artifacts\tests.exe -ErrorAction ignore
+
+    # None of the other GHA builds are including source, so commenting out today
+    #Copy-Item $MSVC_SOURCE_TARXZ -Destination "artifacts"
+
+    # Debugging symbols
+    cp .\build\bin\yuzu*.pdb .\artifacts\
+
+    # Write out a tag BUILD_TAG to environment for the Upload step
+    # We're getting ${{ github.event.number }} as $env:PR_NUMBER"
+    echo "env:PR_NUMBER: $env:PR_NUMBER"
+    if (Test-Path env:PR_NUMBER) {
+        $PR_NUMBER = $env:PR_NUMBER.Substring(2) -as [int]
+        $PR_NUMBER_TAG = "pr"+([string]$PR_NUMBER).PadLeft(5,'0')
+        if ($PR_NUMBER -gt 1){
+            $BUILD_TAG="verify-$PR_NUMBER_TAG-$GITDATE-$GITREV"
+        } else {
+            $BUILD_TAG = "verify-$GITDATE-$GITREV"
+        }
+    } else {
+        # If env:PR_NUMBER isn't set, we should still write out a variable
+        $BUILD_TAG = "verify-$GITDATE-$GITREV"
+    }
+    echo "BUILD_TAG=$BUILD_TAG"
+    echo "BUILD_TAG=$BUILD_TAG" >> $env:GITHUB_ENV
+
+    # For extra job, just the exe
+    $INDIVIDUAL_EXE = "yuzu-msvc-$BUILD_TAG.exe"
+    echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE"
+    echo "INDIVIDUAL_EXE=$INDIVIDUAL_EXE" >> $env:GITHUB_ENV
+    echo "Just the exe: $INDIVIDUAL_EXE"
+    cp .\artifacts\yuzu.exe .\$INDIVIDUAL_EXE
+
+
+} else {
+
+# Build the final release artifacts
+Copy-Item $MSVC_SOURCE_TARXZ -Destination $RELEASE_DIST
+Copy-Item "$BUILD_DIR\*" -Destination $RELEASE_DIST -Recurse
+rm "$RELEASE_DIST\*.exe"
+Get-ChildItem "$BUILD_DIR" -Recurse -Filter "yuzu*.exe" | Copy-Item -destination $RELEASE_DIST
+Get-ChildItem "$BUILD_DIR" -Recurse -Filter "QtWebEngineProcess*.exe" | Copy-Item -destination $RELEASE_DIST
+7z a -tzip $MSVC_BUILD_ZIP $RELEASE_DIST\*
+7z a $MSVC_SEVENZIP $RELEASE_DIST
+
+7z a -r -ttar $MSVC_TAR $RELEASE_DIST
+7z a -r -txz $MSVC_TARXZ $MSVC_TAR
+
+Get-ChildItem . -Filter "*.zip" | Copy-Item -destination "artifacts"
+Get-ChildItem . -Filter "*.7z" | Copy-Item -destination "artifacts"
+Get-ChildItem . -Filter "*.tar.xz" | Copy-Item -destination "artifacts"
+}
diff --git a/hiddenFiles/.ci/scripts/windows/upload.sh b/hiddenFiles/.ci/scripts/windows/upload.sh
new file mode 100755
index 0000000000..4aa5be544f
--- /dev/null
+++ b/hiddenFiles/.ci/scripts/windows/upload.sh
@@ -0,0 +1,22 @@
+#!/bin/bash -ex
+
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+. .ci/scripts/common/pre-upload.sh
+
+REV_NAME="yuzu-windows-mingw-${GITDATE}-${GITREV}"
+ARCHIVE_NAME="${REV_NAME}.tar.xz"
+COMPRESSION_FLAGS="-cJvf"
+
+if [ "${RELEASE_NAME}" = "mainline" ]; then
+    DIR_NAME="${REV_NAME}"
+else
+    DIR_NAME="${REV_NAME}_${RELEASE_NAME}"
+fi
+
+mkdir "$DIR_NAME"
+# get around the permission issues
+cp -r package/* "$DIR_NAME"
+
+. .ci/scripts/common/post-upload.sh
diff --git a/hiddenFiles/.ci/templates/build-mock.yml b/hiddenFiles/.ci/templates/build-mock.yml
new file mode 100644
index 0000000000..3d3bb6d866
--- /dev/null
+++ b/hiddenFiles/.ci/templates/build-mock.yml
@@ -0,0 +1,8 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+  - script: mkdir artifacts || echo 'X' > artifacts/T1.txt
+  - publish: artifacts
+    artifact: 'yuzu-$(BuildName)-mock'
+    displayName: 'Upload Artifacts'
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/build-msvc.yml b/hiddenFiles/.ci/templates/build-msvc.yml
new file mode 100644
index 0000000000..1e259df059
--- /dev/null
+++ b/hiddenFiles/.ci/templates/build-msvc.yml
@@ -0,0 +1,31 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  artifactSource: 'true'
+  cache: 'false'
+  version: ''
+
+steps:
+- task: Powershell@2
+  displayName: 'Install Vulkan SDK'
+  inputs:
+    targetType: 'filePath'
+    filePath: './.ci/scripts/windows/install-vulkan-sdk.ps1'
+- script: refreshenv && glslangValidator --version && mkdir build && cd build && cmake -E env CXXFLAGS="/Gw" cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_POLICY_DEFAULT_CMP0069=NEW -DYUZU_ENABLE_LTO=ON -DYUZU_USE_BUNDLED_QT=1 -DYUZU_USE_BUNDLED_SDL2=1 -DYUZU_USE_QT_WEB_ENGINE=ON -DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON -DYUZU_ENABLE_COMPATIBILITY_REPORTING=${COMPAT} -DYUZU_TESTS=OFF -DUSE_DISCORD_PRESENCE=ON -DENABLE_QT_TRANSLATION=ON -DDISPLAY_VERSION=${{ parameters['version'] }} -DCMAKE_BUILD_TYPE=Release -DYUZU_CRASH_DUMPS=ON .. && cd ..
+  displayName: 'Configure CMake'
+- task: MSBuild@1
+  displayName: 'Build'
+  inputs:
+    solution: 'build/yuzu.sln'
+    maximumCpuCount: true
+    configuration: release
+- task: PowerShell@2
+  displayName: 'Package Artifacts'
+  inputs:
+    targetType: 'filePath'
+    filePath: './.ci/scripts/windows/upload.ps1'
+    arguments: '$(BuildName)'
+- publish: artifacts
+  artifact: 'yuzu-$(BuildName)-windows-msvc'
+  displayName: 'Upload Artifacts'
diff --git a/hiddenFiles/.ci/templates/build-single.yml b/hiddenFiles/.ci/templates/build-single.yml
new file mode 100644
index 0000000000..3f81f91978
--- /dev/null
+++ b/hiddenFiles/.ci/templates/build-single.yml
@@ -0,0 +1,26 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  artifactSource: 'true'
+  cache: 'false'
+  version: ''
+
+steps:
+- task: DockerInstaller@0
+  displayName: 'Prepare Environment'
+  inputs:
+    dockerVersion: '17.09.0-ce'
+- task: CacheBeta@0
+  displayName: 'Cache Build System'
+  inputs:
+    key: yuzu-v1-$(BuildName)-$(BuildSuffix)-$(CacheSuffix)
+    path: $(System.DefaultWorkingDirectory)/ccache
+    cacheHitVar: CACHE_RESTORED
+- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/exec.sh && ./.ci/scripts/$(ScriptFolder)/exec.sh ${{ parameters['version'] }}
+  displayName: 'Build'
+- script: chmod a+x ./.ci/scripts/$(ScriptFolder)/upload.sh && RELEASE_NAME=$(BuildName) ./.ci/scripts/$(ScriptFolder)/upload.sh
+  displayName: 'Package Artifacts'
+- publish: artifacts
+  artifact: 'yuzu-$(BuildName)-$(BuildSuffix)'
+  displayName: 'Upload Artifacts'
diff --git a/hiddenFiles/.ci/templates/build-standard.yml b/hiddenFiles/.ci/templates/build-standard.yml
new file mode 100644
index 0000000000..314076f1fd
--- /dev/null
+++ b/hiddenFiles/.ci/templates/build-standard.yml
@@ -0,0 +1,33 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  version: ''
+
+jobs:
+- job: build
+  displayName: 'standard'
+  pool:
+    vmImage: ubuntu-latest
+  strategy:
+    maxParallel: 10
+    matrix:
+      windows:
+        BuildSuffix: 'windows-mingw'
+        ScriptFolder: 'windows'
+      clang:
+        BuildSuffix: 'clang'
+        ScriptFolder: 'clang'
+      linux:
+        BuildSuffix: 'linux'
+        ScriptFolder: 'linux'
+  steps:
+  - template: ./sync-source.yml
+    parameters:
+      artifactSource: $(parameters.artifactSource)
+      needSubmodules: 'true'
+  - template: ./build-single.yml
+    parameters:
+      artifactSource: 'false'
+      cache: $(parameters.cache)
+      version: $(parameters.version)
diff --git a/hiddenFiles/.ci/templates/build-testing.yml b/hiddenFiles/.ci/templates/build-testing.yml
new file mode 100644
index 0000000000..c8390b3276
--- /dev/null
+++ b/hiddenFiles/.ci/templates/build-testing.yml
@@ -0,0 +1,40 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  version: ''
+
+jobs:
+- job: build_test
+  displayName: 'testing'
+  pool:
+    vmImage: ubuntu-latest
+  strategy:
+    maxParallel: 5
+    matrix:
+      windows:
+        BuildSuffix: 'windows-testing'
+        ScriptFolder: 'windows'
+  steps:
+  - script: sudo apt-get update && sudo apt-get --only-upgrade -y install python3-pip && pip install requests urllib3
+    displayName: 'Prepare Environment'
+  - task: PythonScript@0
+    condition: eq(variables['Build.Reason'], 'PullRequest')
+    displayName: 'Determine Testing Status'
+    inputs:
+      scriptSource: 'filePath'
+      scriptPath: '.ci/scripts/merge/check-label-presence.py'
+      arguments: '$(System.PullRequest.PullRequestNumber) create-testing-build'
+  - ${{ if eq(variables.enabletesting, 'true') }}:
+    - template: ./sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./mergebot.yml
+      parameters:
+        matchLabel: 'testing-merge'
+    - template: ./build-single.yml
+      parameters:
+        artifactSource: 'false'
+        cache: 'false'
+        version: $(parameters.version)
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/format-check.yml b/hiddenFiles/.ci/templates/format-check.yml
new file mode 100644
index 0000000000..1042e7d132
--- /dev/null
+++ b/hiddenFiles/.ci/templates/format-check.yml
@@ -0,0 +1,17 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  artifactSource: 'true'
+
+steps:
+- template: ./sync-source.yml
+  parameters:
+    artifactSource: $(parameters.artifactSource)
+    needSubmodules: 'false'
+- task: DockerInstaller@0
+  displayName: 'Prepare Environment'
+  inputs:
+    dockerVersion: '17.09.0-ce'
+- script: chmod a+x ./.ci/scripts/format/exec.sh && ./.ci/scripts/format/exec.sh
+  displayName: 'Verify Formatting'
diff --git a/hiddenFiles/.ci/templates/merge-private.yml b/hiddenFiles/.ci/templates/merge-private.yml
new file mode 100644
index 0000000000..8b14065a39
--- /dev/null
+++ b/hiddenFiles/.ci/templates/merge-private.yml
@@ -0,0 +1,44 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+jobs:
+- job: merge
+  displayName: 'pull requests'
+  pool:
+    vmImage: 'ubuntu-latest'
+  steps:
+  - checkout: self
+    submodules: recursive
+  - template: ./mergebot-private.yml
+    parameters:
+      matchLabel: '$(BuildName)-merge'
+      matchLabelPublic: '$(PublicBuildName)-merge'
+  - task: ArchiveFiles@2
+    displayName: 'Package Source'
+    inputs:
+      rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
+      includeRootFolder: false
+      archiveType: '7z'
+      archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
+  - task: PublishPipelineArtifact@1
+    displayName: 'Upload Artifacts'
+    inputs:
+      targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
+      artifact: 'yuzu-$(BuildName)-source'
+      replaceExistingArchive: true
+- job: upload_source
+  displayName: 'upload'
+  dependsOn: merge
+  pool:
+    vmImage: 'ubuntu-latest'
+  steps:
+  - template: ./sync-source.yml
+    parameters:
+      artifactSource: 'true'
+      needSubmodules: 'true'
+  - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+    displayName: 'Apply Git Configuration'
+  - script: git remote add other $(GitRepoPushChangesURL)
+    displayName: 'Register Repository'
+  - script: git push --force other HEAD:$(GitPushBranch)
+    displayName: 'Update Code'
diff --git a/hiddenFiles/.ci/templates/merge.yml b/hiddenFiles/.ci/templates/merge.yml
new file mode 100644
index 0000000000..eec3421202
--- /dev/null
+++ b/hiddenFiles/.ci/templates/merge.yml
@@ -0,0 +1,43 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+jobs:
+- job: merge
+  displayName: 'pull requests'
+  pool:
+    vmImage: 'ubuntu-latest'
+  steps:
+  - checkout: self
+    submodules: recursive
+  - template: ./mergebot.yml
+    parameters:
+      matchLabel: '$(BuildName)-merge'
+  - task: ArchiveFiles@2
+    displayName: 'Package Source'
+    inputs:
+      rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
+      includeRootFolder: false
+      archiveType: '7z'
+      archiveFile: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
+  - task: PublishPipelineArtifact@1
+    displayName: 'Upload Artifacts'
+    inputs:
+      targetPath: '$(Build.ArtifactStagingDirectory)/yuzu-$(BuildName)-source.7z'
+      artifact: 'yuzu-$(BuildName)-source'
+      replaceExistingArchive: true
+- job: upload_source
+  displayName: 'upload'
+  dependsOn: merge
+  pool:
+    vmImage: 'ubuntu-latest'
+  steps:
+  - template: ./sync-source.yml
+    parameters:
+      artifactSource: 'true'
+      needSubmodules: 'true'
+  - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+    displayName: 'Apply Git Configuration'
+  - script: git remote add other $(GitRepoPushChangesURL)
+    displayName: 'Register Repository'
+  - script: git push --force other HEAD:$(GitPushBranch)
+    displayName: 'Update Code'
diff --git a/hiddenFiles/.ci/templates/mergebot-private.yml b/hiddenFiles/.ci/templates/mergebot-private.yml
new file mode 100644
index 0000000000..1560f9a9ca
--- /dev/null
+++ b/hiddenFiles/.ci/templates/mergebot-private.yml
@@ -0,0 +1,33 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  matchLabel: 'dummy-merge'
+  matchLabelPublic: 'dummy-merge'
+
+steps:
+  - script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
+    displayName: 'Prepare Environment'
+  - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+    displayName: 'Apply Git Configuration'
+  - task: PythonScript@0
+    displayName: 'Discover, Download, and Apply Patches (Mainline)'
+    inputs:
+      scriptSource: 'filePath'
+      scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
+      arguments: '${{ parameters.matchLabelPublic }} $(MergeTaglinePublic) patches-public'
+      workingDirectory: '$(System.DefaultWorkingDirectory)'
+  - task: PythonScript@0
+    displayName: 'Discover, Download, and Apply Patches (Patreon Public)'
+    inputs:
+      scriptSource: 'filePath'
+      scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
+      arguments: '${{ parameters.matchLabel }} "$(MergeTaglinePrivate) Public" patches-mixed-public'
+      workingDirectory: '$(System.DefaultWorkingDirectory)'
+  - task: PythonScript@0
+    displayName: 'Discover, Download, and Apply Patches (Patreon Private)'
+    inputs:
+      scriptSource: 'filePath'
+      scriptPath: '.ci/scripts/merge/apply-patches-by-label-private.py'
+      arguments: '$(PrivateMergeUser) ${{ parameters.matchLabel }} "$(MergeTaglinePrivate) Private" patches-private'
+      workingDirectory: '$(System.DefaultWorkingDirectory)'
diff --git a/hiddenFiles/.ci/templates/mergebot.yml b/hiddenFiles/.ci/templates/mergebot.yml
new file mode 100644
index 0000000000..59523161c8
--- /dev/null
+++ b/hiddenFiles/.ci/templates/mergebot.yml
@@ -0,0 +1,18 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  matchLabel: 'dummy-merge'
+
+steps:
+  - script: mkdir $(System.DefaultWorkingDirectory)/patches && pip install requests urllib3
+    displayName: 'Prepare Environment'
+  - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+    displayName: 'Apply Git Configuration'
+  - task: PythonScript@0
+    displayName: 'Discover, Download, and Apply Patches'
+    inputs:
+      scriptSource: 'filePath'
+      scriptPath: '.ci/scripts/merge/apply-patches-by-label.py'
+      arguments: '${{ parameters.matchLabel }} Tagged patches'
+      workingDirectory: '$(System.DefaultWorkingDirectory)'
diff --git a/hiddenFiles/.ci/templates/release-download.yml b/hiddenFiles/.ci/templates/release-download.yml
new file mode 100644
index 0000000000..bd32de3959
--- /dev/null
+++ b/hiddenFiles/.ci/templates/release-download.yml
@@ -0,0 +1,16 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+  - task: DownloadPipelineArtifact@2
+    displayName: 'Download Windows Release'
+    inputs:
+      artifactName: 'yuzu-$(BuildName)-windows-msvc'
+      buildType: 'current'
+      targetPath: '$(Build.ArtifactStagingDirectory)'
+  - task: DownloadPipelineArtifact@2
+    displayName: 'Download Linux Release'
+    inputs:
+      artifactName: 'yuzu-$(BuildName)-linux'
+      buildType: 'current'
+      targetPath: '$(Build.ArtifactStagingDirectory)'
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/release-github.yml b/hiddenFiles/.ci/templates/release-github.yml
new file mode 100644
index 0000000000..d20296ca08
--- /dev/null
+++ b/hiddenFiles/.ci/templates/release-github.yml
@@ -0,0 +1,16 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+  - template: ./release-download.yml
+  - task: GitHubRelease@0
+    displayName: 'GitHub Release'
+    inputs:
+      action: 'create'
+      title: '$(ReleasePrefix) $(DisplayVersion)'
+      assets: '$(Build.ArtifactStagingDirectory)/*'
+      gitHubConnection: $(GitHubReleaseConnectionName)
+      repositoryName: '$(Build.Repository.Name)'
+      target: '$(Build.SourceVersion)'
+      tagSource: manual
+      tag: $(BuildName)-$(DisplayPrefix)-$(DisplayVersion)
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/release-private-tag.yml b/hiddenFiles/.ci/templates/release-private-tag.yml
new file mode 100644
index 0000000000..70a8543b59
--- /dev/null
+++ b/hiddenFiles/.ci/templates/release-private-tag.yml
@@ -0,0 +1,12 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+  - script: chmod a+x $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh && $(System.DefaultWorkingDirectory)/.ci/scripts/merge/yuzubot-git-config.sh
+    displayName: 'Apply Git Configuration'
+  - script: git tag -a $(BuildName)-$(DisplayPrefix)-$(DisplayVersion) -m "yuzu $(BuildName) $(Build.BuildNumber) $(Build.DefinitionName) $(DisplayPrefix)-$(DisplayVersion)"
+    displayName: 'Tag Source'
+  - script: git remote add other $(GitRepoPushChangesURL)
+    displayName: 'Register Repository'
+  - script: git push other $(BuildName)-$(DisplayPrefix)-$(DisplayVersion)
+    displayName: 'Update Code'
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/release-universal.yml b/hiddenFiles/.ci/templates/release-universal.yml
new file mode 100644
index 0000000000..151c8f35ce
--- /dev/null
+++ b/hiddenFiles/.ci/templates/release-universal.yml
@@ -0,0 +1,13 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+  - template: ./release-download.yml
+  - task: UniversalPackages@0
+    displayName: Publish Artifacts
+    inputs:
+      command: publish
+      publishDirectory: '$(Build.ArtifactStagingDirectory)'
+      vstsFeedPublish: 'yuzu-$(BuildName)'
+      vstsFeedPackagePublish: 'main'
+      packagePublishDescription: 'Yuzu Windows and Linux Executable Packages'
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/retrieve-artifact-source.yml b/hiddenFiles/.ci/templates/retrieve-artifact-source.yml
new file mode 100644
index 0000000000..b4cce58901
--- /dev/null
+++ b/hiddenFiles/.ci/templates/retrieve-artifact-source.yml
@@ -0,0 +1,19 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+- checkout: none
+- task: DownloadPipelineArtifact@2
+  displayName: 'Download Source'
+  inputs:
+    artifactName: 'yuzu-$(BuildName)-source'
+    buildType: 'current'
+    targetPath: '$(Build.ArtifactStagingDirectory)'
+- script: rm -rf $(System.DefaultWorkingDirectory) && mkdir $(System.DefaultWorkingDirectory)
+  displayName: 'Clean Working Directory'
+- task: ExtractFiles@1
+  displayName: 'Prepare Source'
+  inputs:
+    archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/*.7z'
+    destinationFolder: '$(System.DefaultWorkingDirectory)'
+    cleanDestinationFolder: false
\ No newline at end of file
diff --git a/hiddenFiles/.ci/templates/retrieve-master-source.yml b/hiddenFiles/.ci/templates/retrieve-master-source.yml
new file mode 100644
index 0000000000..e497c0e180
--- /dev/null
+++ b/hiddenFiles/.ci/templates/retrieve-master-source.yml
@@ -0,0 +1,14 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+parameters:
+  needSubmodules: 'true'
+
+steps:
+- checkout: self
+  displayName: 'Checkout Recursive'
+  submodules: recursive
+#  condition: eq(parameters.needSubmodules, 'true')
+#- checkout: self
+#  displayName: 'Checkout Fast'
+#  condition: ne(parameters.needSubmodules, 'true')
diff --git a/hiddenFiles/.ci/templates/sync-source.yml b/hiddenFiles/.ci/templates/sync-source.yml
new file mode 100644
index 0000000000..e796b6238a
--- /dev/null
+++ b/hiddenFiles/.ci/templates/sync-source.yml
@@ -0,0 +1,10 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+steps:
+- ${{ if eq(parameters.artifactSource, 'true') }}:
+  - template: ./retrieve-artifact-source.yml
+- ${{ if ne(parameters.artifactSource, 'true') }}:
+  - template: ./retrieve-master-source.yml
+    parameters:
+      needSubmodules: $(parameters.needSubmodules)
\ No newline at end of file
diff --git a/hiddenFiles/.ci/yuzu-mainline-step1.yml b/hiddenFiles/.ci/yuzu-mainline-step1.yml
new file mode 100644
index 0000000000..207bddfa31
--- /dev/null
+++ b/hiddenFiles/.ci/yuzu-mainline-step1.yml
@@ -0,0 +1,14 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+trigger:
+- master
+
+pool:
+  vmImage: 'ubuntu-latest'
+
+stages:
+- stage: merge
+  displayName: 'merge'
+  jobs:
+  - template: ./templates/merge.yml
diff --git a/hiddenFiles/.ci/yuzu-mainline-step2.yml b/hiddenFiles/.ci/yuzu-mainline-step2.yml
new file mode 100644
index 0000000000..825be121ae
--- /dev/null
+++ b/hiddenFiles/.ci/yuzu-mainline-step2.yml
@@ -0,0 +1,64 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+trigger:
+- master
+
+variables:
+  DisplayVersion: $[counter(variables['DisplayPrefix'], 1)]
+
+stages:
+- stage: build
+  displayName: 'build'
+  jobs:
+  - job: build
+    timeoutInMinutes: 120
+    displayName: 'standard'
+    pool:
+      vmImage: ubuntu-latest
+    strategy:
+      maxParallel: 10
+      matrix:
+        linux:
+          BuildSuffix: 'linux'
+          ScriptFolder: 'linux'
+    steps:
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-single.yml
+      parameters:
+        artifactSource: 'false'
+        cache: 'true'
+        version: $(DisplayVersion)
+- stage: build_win
+  displayName: 'build-windows'
+  jobs:
+  - job: build
+    timeoutInMinutes: 120
+    displayName: 'msvc'
+    pool:
+      vmImage: windows-2022
+    steps:
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-msvc.yml
+      parameters:
+        artifactSource: 'false'
+        cache: 'true'
+        version: $(DisplayVersion)
+- stage: release
+  displayName: 'release'
+  dependsOn:
+  - build
+  - build_win
+  jobs:
+  - job: github
+    displayName: 'github'
+    pool:
+      vmImage: ubuntu-latest
+    steps:
+    - template: ./templates/release-github.yml
diff --git a/hiddenFiles/.ci/yuzu-patreon-step1.yml b/hiddenFiles/.ci/yuzu-patreon-step1.yml
new file mode 100644
index 0000000000..44e0a5c819
--- /dev/null
+++ b/hiddenFiles/.ci/yuzu-patreon-step1.yml
@@ -0,0 +1,14 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+trigger:
+- master
+
+pool:
+  vmImage: 'ubuntu-latest'
+
+stages:
+- stage: merge
+  displayName: 'merge'
+  jobs:
+  - template: ./templates/merge-private.yml
diff --git a/hiddenFiles/.ci/yuzu-patreon-step2.yml b/hiddenFiles/.ci/yuzu-patreon-step2.yml
new file mode 100644
index 0000000000..71a23ebe62
--- /dev/null
+++ b/hiddenFiles/.ci/yuzu-patreon-step2.yml
@@ -0,0 +1,59 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+trigger:
+- master
+
+variables:
+  DisplayVersion: $[counter(variables['DisplayPrefix'], 1)]
+
+stages:
+- stage: build
+  displayName: 'build'
+  jobs:
+  - job: linux
+    timeoutInMinutes: 120
+    displayName: 'linux'
+    pool:
+      vmImage: ubuntu-latest
+    strategy:
+      maxParallel: 10
+      matrix:
+        linux:
+          BuildSuffix: 'linux'
+          ScriptFolder: 'linux'
+    steps:
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-single.yml
+      parameters:
+        artifactSource: 'false'
+        cache: $(parameters.cache)
+        version: $(DisplayVersion)
+  - job: msvc
+    timeoutInMinutes: 120
+    displayName: 'windows'
+    pool:
+      vmImage: windows-2022
+    steps:
+    - template: ./templates/sync-source.yml
+      parameters:
+        artifactSource: $(parameters.artifactSource)
+        needSubmodules: 'true'
+    - template: ./templates/build-msvc.yml
+      parameters:
+        artifactSource: 'false'
+        cache: $(parameters.cache)
+        version: $(DisplayVersion)
+- stage: release
+  displayName: 'release'
+  dependsOn: build
+  jobs:
+    - job: release
+      displayName: 'source'
+      pool:
+        vmImage: 'ubuntu-latest'
+      steps:
+        - template: ./templates/release-private-tag.yml
diff --git a/hiddenFiles/.ci/yuzu-repo-sync.yml b/hiddenFiles/.ci/yuzu-repo-sync.yml
new file mode 100644
index 0000000000..c5b6ba927f
--- /dev/null
+++ b/hiddenFiles/.ci/yuzu-repo-sync.yml
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+trigger:
+- master
+
+jobs:
+- job: copy
+  displayName: 'Sync Repository'
+  pool:
+    vmImage: 'ubuntu-latest'
+  steps:
+  - script: echo 'https://$(GitUsername):$(GitAccessToken)@dev.azure.com' > $HOME/.git-credentials
+    displayName: 'Load Credentials'
+  - script: git config --global credential.helper store
+    displayName: 'Register Credential Helper'
+  - script: git remote add other $(GitRepoPushChangesURL)
+    displayName: 'Register Repository'
+  - script: git push --force other HEAD:$(GitPushBranch)
+    displayName: 'Update Code'
+  - script: rm -rf $HOME/.git-credentials
+    displayName: 'Clear Cached Credentials'
diff --git a/hiddenFiles/.ci/yuzu-verify.yml b/hiddenFiles/.ci/yuzu-verify.yml
new file mode 100644
index 0000000000..38e3e6121e
--- /dev/null
+++ b/hiddenFiles/.ci/yuzu-verify.yml
@@ -0,0 +1,23 @@
+# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+stages:
+- stage: format
+  displayName: 'format'
+  jobs:
+  - job: format
+    displayName: 'clang'
+    pool:
+      vmImage: ubuntu-latest
+    steps:
+    - template: ./templates/format-check.yml
+      parameters:
+        artifactSource: 'false'
+- stage: build
+  displayName: 'build'
+  dependsOn: format
+  jobs:
+  - template: ./templates/build-standard.yml
+    parameters:
+      cache: 'false'
+  - template: ./templates/build-testing.yml
diff --git a/hiddenFiles/.codespellrc b/hiddenFiles/.codespellrc
new file mode 100644
index 0000000000..1874359d30
--- /dev/null
+++ b/hiddenFiles/.codespellrc
@@ -0,0 +1,6 @@
+; SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+; SPDX-License-Identifier: GPL-2.0-or-later
+
+[codespell]
+skip = ./.git,./build,./dist,./Doxyfile,./externals,./LICENSES,./src/android/app/src/main/res
+ignore-words-list = aci,allright,ba,canonicalizations,deques,fpr,froms,hda,inout,lod,masia,nam,nax,nce,nd,optin,pullrequests,pullrequest,te,transfered,unstall,uscaled,vas,zink
diff --git a/hiddenFiles/.git-blame-ignore-revs b/hiddenFiles/.git-blame-ignore-revs
new file mode 100644
index 0000000000..109f2f45e7
--- /dev/null
+++ b/hiddenFiles/.git-blame-ignore-revs
@@ -0,0 +1,5 @@
+# SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# CRLF -> LF
+90aa937593e53a5d5e070fb623b228578b0b225f
diff --git a/hiddenFiles/.gitattributes b/hiddenFiles/.gitattributes
new file mode 100644
index 0000000000..99172a7f34
--- /dev/null
+++ b/hiddenFiles/.gitattributes
@@ -0,0 +1,7 @@
+# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+dist/languages/* linguist-vendored
+dist/qt_themes/* linguist-vendored
+externals/* linguist-vendored
+*.h linguist-language=cpp
diff --git a/hiddenFiles/.gitmodules b/hiddenFiles/.gitmodules
new file mode 100644
index 0000000000..52256d86f7
--- /dev/null
+++ b/hiddenFiles/.gitmodules
@@ -0,0 +1,69 @@
+# SPDX-FileCopyrightText: 2014 Citra Emulator Project
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+[submodule "enet"]
+	path = externals/enet
+	url = https://github.com/lsalzman/enet.git
+[submodule "cubeb"]
+	path = externals/cubeb
+	url = https://github.com/mozilla/cubeb.git
+[submodule "dynarmic"]
+	path = externals/dynarmic
+	url = https://github.com/merryhime/dynarmic.git
+[submodule "libusb"]
+	path = externals/libusb/libusb
+	url = https://github.com/libusb/libusb.git
+[submodule "discord-rpc"]
+	path = externals/discord-rpc
+	url = https://github.com/yuzu-emu/discord-rpc.git
+[submodule "Vulkan-Headers"]
+	path = externals/Vulkan-Headers
+	url = https://github.com/KhronosGroup/Vulkan-Headers.git
+[submodule "sirit"]
+	path = externals/sirit
+	url = https://github.com/yuzu-emu/sirit.git
+[submodule "mbedtls"]
+	path = externals/mbedtls
+	url = https://github.com/yuzu-emu/mbedtls.git
+[submodule "xbyak"]
+	path = externals/xbyak
+	url = https://github.com/herumi/xbyak.git
+[submodule "opus"]
+	path = externals/opus
+	url = https://github.com/xiph/opus.git
+[submodule "SDL"]
+	path = externals/SDL
+	url = https://github.com/libsdl-org/SDL.git
+[submodule "cpp-httplib"]
+	path = externals/cpp-httplib
+	url = https://github.com/yhirose/cpp-httplib.git
+[submodule "ffmpeg"]
+	path = externals/ffmpeg/ffmpeg
+	url = https://github.com/FFmpeg/FFmpeg.git
+[submodule "vcpkg"]
+	path = externals/vcpkg
+	url = https://github.com/microsoft/vcpkg.git
+[submodule "cpp-jwt"]
+	path = externals/cpp-jwt
+	url = https://github.com/arun11299/cpp-jwt.git
+[submodule "libadrenotools"]
+	path = externals/libadrenotools
+	url = https://github.com/bylaws/libadrenotools.git
+[submodule "tzdb_to_nx"]
+	path = externals/nx_tzdb/tzdb_to_nx
+	url = https://github.com/lat9nq/tzdb_to_nx.git
+[submodule "VulkanMemoryAllocator"]
+	path = externals/VulkanMemoryAllocator
+	url = https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator.git
+[submodule "breakpad"]
+	path = externals/breakpad
+	url = https://github.com/yuzu-emu/breakpad.git
+[submodule "simpleini"]
+	path = externals/simpleini
+	url = https://github.com/brofield/simpleini.git
+[submodule "oaknut"]
+	path = externals/oaknut
+	url = https://github.com/merryhime/oaknut
+[submodule "Vulkan-Utility-Libraries"]
+	path = externals/Vulkan-Utility-Libraries
+	url = https://github.com/KhronosGroup/Vulkan-Utility-Libraries.git
diff --git a/hiddenFiles/.reuse/dep5 b/hiddenFiles/.reuse/dep5
new file mode 100644
index 0000000000..b9ae96d0b1
--- /dev/null
+++ b/hiddenFiles/.reuse/dep5
@@ -0,0 +1,161 @@
+Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Comment: It is best to use this file to record copyright information about
+         generated, binary and third party files
+
+Files: dist/english_plurals/*
+       dist/icons/controller/*.png
+       dist/icons/overlay/*.png
+       dist/languages/*
+       dist/qt_themes/*/icons/48x48/sd_card.png
+       dist/qt_themes/*/icons/index.theme
+       dist/qt_themes/default/style.qss
+Copyright: yuzu Emulator Project
+License: GPL-2.0-or-later
+
+Files: dist/qt_themes/default/icons/256x256/yuzu.png
+       dist/yuzu.bmp
+       dist/yuzu.icns
+       dist/yuzu.ico
+       dist/yuzu.svg
+Copyright: yuzu Emulator Project
+License: GPL-2.0-or-later
+
+Files: dist/qt_themes/qdarkstyle*/LICENSE.*
+       dist/qt_themes/qdarkstyle*/style.qrc
+       dist/qt_themes/qdarkstyle*/style.qss
+Copyright: 2013 Colin Duquesnoy
+           2019 Daniel Cosmo Pizetta
+License: MIT
+
+Files: dist/qt_themes/qdarkstyle*/rc/*
+Copyright: 2013 Colin Duquesnoy
+           2019 Daniel Cosmo Pizetta
+License: CC-BY-4.0
+
+Files: dist/qt_themes/default/icons/256x256/plus_folder.png
+       dist/qt_themes/default/icons/48x48/bad_folder.png
+       dist/qt_themes/default/icons/48x48/chip.png
+       dist/qt_themes/default/icons/48x48/folder.png
+       dist/qt_themes/default/icons/48x48/star.png
+       dist/qt_themes/qdarkstyle/icons/256x256/plus_folder.png
+       dist/qt_themes/qdarkstyle/icons/48x48/bad_folder.png
+       dist/qt_themes/qdarkstyle/icons/48x48/chip.png
+       dist/qt_themes/qdarkstyle/icons/48x48/folder.png
+       dist/qt_themes/qdarkstyle/icons/48x48/star.png
+Copyright: Refactoring UI Inc.
+License: MIT
+Comment: https://github.com/tailwindlabs/heroicons
+
+Files: dist/qt_themes/colorful/icons/16x16/lock.png
+       dist/qt_themes/colorful/icons/256x256/plus_folder.png
+       dist/qt_themes/colorful/icons/48x48/bad_folder.png
+       dist/qt_themes/colorful/icons/48x48/chip.png
+       dist/qt_themes/colorful/icons/48x48/folder.png
+       dist/qt_themes/colorful_dark/icons/16x16/lock.png
+       dist/qt_themes/colorful/icons/16x16/info.png
+       dist/qt_themes/colorful/icons/16x16/sync.png
+Copyright: Icons8
+License: MIT
+Comment: https://github.com/icons8/flat-color-icons
+
+Files: dist/qt_themes/*/icons/16x16/connected.png
+       dist/qt_themes/*/icons/16x16/connected_notification.png
+       dist/qt_themes/*/icons/16x16/disconnected.png
+Copyright: GNOME Project
+License: CC-BY-SA-3.0
+Comment: connected_notification and disconnected are modified
+
+Files: dist/qt_themes/*/icons/48x48/no_avatar.png
+Copyright: Ionic (http://ionic.io/)
+License: MIT
+
+Files: dist/qt_themes/colorful/icons/48x48/star.png
+       dist/qt_themes/colorful/icons/16x16/checked.png
+       dist/qt_themes/colorful/icons/16x16/failed.png
+Copyright: SVG Repo
+License: CC0-1.0
+
+Files: dist/qt_themes/*/icons/16x16/view-refresh.png
+       dist/qt_themes/default/icons/16x16/lock.png
+       dist/qt_themes/qdarkstyle/icons/16x16/lock.png
+Copyright: Google, Inc.
+License: Apache-2.0
+
+Files: dist/qt_themes/*/icons/48x48/list-add.png
+Copyright: Docteh
+License: CC0-1.0
+
+Files: externals/getopt/getopt.c
+       externals/getopt/getopt.h
+Copyright: 2011 Ludvik Jerabek
+License: LGPL-3.0-or-later
+
+Files: externals/glad/include/glad/glad.h
+       externals/glad/src/glad.c
+Copyright: The Khronos Group Inc.
+License: (WTFPL OR CC0-1.0) AND Apache-2.0
+Comment: https://github.com/Dav1dde/glad/issues/365#issuecomment-1138419515
+
+Files: externals/glad/include/KHR/khrplatform.h
+Copyright: 2008-2018 The Khronos Group Inc.
+License: MIT
+
+Files: externals/microprofile/*
+Copyright: Jonas Meyer
+License: Unlicense
+
+Files: externals/FidelityFX-FSR/*
+Copyright: 2021 Advanced Micro Devices, Inc.
+License: MIT
+
+Files: src/yuzu/*.ui
+Copyright: 2018-2022 yuzu Emulator Project
+License: GPL-2.0-or-later
+
+Files: src/yuzu/compatdb.ui
+       src/yuzu/main.ui
+Copyright: 2014-2017 Citra Emulator Project
+License: GPL-2.0-or-later
+
+Files: src/yuzu/loading_screen.ui
+Copyright: 2019 James Rowe <jroweboy@gmail.com>
+License: GPL-2.0-or-later
+
+Files: src/yuzu/applets/aboutdialog.ui
+       src/yuzu/applets/qt_software_keyboard.ui
+       src/yuzu/util/overlay_dialog.ui
+Copyright: 2020-2021 Its-Rei <kupfel@gmail.com>
+           2020-2021 yuzu Emulator Project
+License: GPL-2.0-or-later
+
+Files: vcpkg.json
+Copyright: 2022 yuzu Emulator Project
+License: GPL-3.0-or-later
+
+Files: .github/ISSUE_TEMPLATE/*
+Copyright: 2022 yuzu Emulator Project
+License: GPL-2.0-or-later
+
+Files: src/android/app/src/ea/res/*
+Copyright: 2023 yuzu Emulator Project
+License: GPL-3.0-or-later
+
+Files: src/android/app/src/main/res/*
+Copyright: 2023 yuzu Emulator Project
+License: GPL-3.0-or-later
+
+Files: src/android/gradle/wrapper/*
+Copyright: 2023 yuzu Emulator Project
+License: GPL-3.0-or-later
+
+Files: externals/stb/*
+Copyright: Sean Barrett
+License: MIT
+
+Files: externals/gamemode/*
+Copyright: Copyright 2017-2019 Feral Interactive
+License: BSD-3-Clause
+
+Files: src/android/app/debug.keystore
+Copyright: 2023 yuzu Emulator Project
+License: GPL-3.0-or-later