diff --git a/.github/workflows/cooker.yml b/.github/workflows/cooker.yml
index 8f197aa1..4d27c088 100644
--- a/.github/workflows/cooker.yml
+++ b/.github/workflows/cooker.yml
@@ -6,9 +6,17 @@ name: Cooker
 on:
   # Triggers the workflow on push or pull request events but only for the main branch
   push:
+<<<<<<< HEAD
+    branches:
+     - cooker
+  pull_request: 
+    branches:
+     - cooker
+=======
     branches: [ '*' ]
   pull_request: 
     branches: [ '*' ]
+>>>>>>> main
 
   # Allows you to run this workflow manually from the Actions tab
   workflow_dispatch:
@@ -27,9 +35,19 @@ jobs:
 
       - name: Prepearing enviornment
         run: |
+<<<<<<< HEAD
+          git submodule init
+          git submodule update
+          sudo add-apt-repository ppa:alexlarsson/flatpak
+          sudo apt-get update
+          sudo apt install flatpak flatpak-builder p7zip-full
+          sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
+          sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08 io.qt.qtwebengine.BaseApp/x86_64/5.15-21.08
+=======
           sudo apt install flatpak flatpak-builder
           sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
           sudo flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08
+>>>>>>> main
       
       # Runs a set of commands using the runners shell
       - name: Building flatpak
@@ -38,14 +56,29 @@ jobs:
           sudo flatpak-builder --repo=local --force-clean localrepo com.xargon.retrodeck.yml
           sudo flatpak build-bundle local RetroDECK.flatpak com.xargon.retrodeck
 
+<<<<<<< HEAD
+      - name: Get date for artifacts
+        id: date
+        run: echo "::set-output name=date::$(date +'%Y%m%d_%H%M')"
+
+      - name: Publish the flatpak in a new cooker release
+        uses: ncipollo/release-action@v1
+        with:
+          tag: "${{ steps.date.outputs.date }}"
+=======
       - name: Publish the flatpak in a new cooker release
         uses: ncipollo/release-action@v1
         with:
           tag: "${{ steps.version.outputs.version }}"
+>>>>>>> main
           body: |
             # Release Notes (Cooker)
             This is a cooker snapshot based on the commit: ${{ github.event.repository.full_name }}@${{github.sha}}.
     
+<<<<<<< HEAD
+            Cooker channel is provided for the community to test fixes and explore new functionality.
+            Please DO NOT open issues or ask support on this build.
+=======
             Cooker channel is provided for the community to test fixes and explore new functionality.  Please DO NOT open issues on this build and instead post in the `#pre-release-feedback` section of discord.
             
             See the [wiki](https://amberelec.org/Contributing-to-AmberELEC) for more info.
@@ -56,6 +89,7 @@ jobs:
             ### Upgrade Instructions
             You can update to this release using the `prerelease` channel on your device. This is the recommended way to use prerelease versions.
 
+>>>>>>> main
 
           artifacts: "RetroDECK.flatpak"
           allowUpdates: true
diff --git a/.gitmodules b/.gitmodules
index 1e7a9909..c4ddce75 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,12 @@
 [submodule "shared-modules"]
 	path = shared-modules
 	url = https://github.com/flathub/shared-modules.git
+[submodule "rd-submodules/retroarch"]
+	path = rd-submodules/retroarch
+	url = https://github.com/flathub/org.libretro.RetroArch.git
+[submodule "rd-submodules/yuzu"]
+	path = rd-submodules/yuzu
+	url = https://github.com/flathub/org.yuzu_emu.yuzu
+[submodule "rd-submodules/pcsx2"]
+	path = rd-submodules/pcsx2
+	url = https://github.com/flathub/net.pcsx2.PCSX2.git
diff --git a/build-flatpak.sh b/build-flatpak.sh
deleted file mode 100755
index 0d7a145f..00000000
--- a/build-flatpak.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-
-INSTALL_DIR=$PWD
-PREVIOUS_DIR=$PWD
-
-echo "Welcome to the RetroDECK flatpak builder."
-echo "This script is helping the flatpak building in $INSTALL_DIR."
-
-read -n 1 -r -s -p $'Press enter to continue...\n'
-echo "Building RetroDECK, please stand by."
-
-if command -v apt >/dev/null; then
-  sudo apt install flatpak flatpak-builder
-elif command -v apt-get >/dev/null; then
-  sudo apt-get install flatpak flatpak-builder
-elif command -v yum >/dev/null; then
-  sudo yum install flatpak flatpak-builder # not sure about this
-else
-  sudo pacman -S flatpak flatpak-builder
-fi
-
-echo "Initializing Flatpak"
-flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
-flatpak install -y org.kde.Sdk//5.15-21.08 org.kde.Platform//5.15-21.08
-
-cd $INSTALL_DIR
-
-# External flatpaks import
-# To update change branch and update the manifest.
-# Some json must be converted with this: https://codebeautify.org/json-to-yaml
-
-# RetroArch
-# https://github.com/flathub/org.libretro.RetroArch/blob/master/org.libretro.RetroArch.json
-git clone --recursive --branch update-v1.10.2 https://github.com/flathub/org.libretro.RetroArch.git
-# removing not needed and potentially dangerous files
-#rm -rf org.libretro.RetroArch/shared-modules
-#rm -f org.libretro.RetroArch/retroarch.cfg
-#rm -f org.libretro.RetroArch/README.md
-#rm -f org.libretro.RetroArch/org.libretro.RetroArch.json
-#rm -f org.libretro.RetroArch/COPYING
-#rm -rf org.libretro.RetroArch/.*
-ln -s org.libretro.RetroArch/* $INSTALL_DIR/
-
-# Yuzu
-# https://github.com/flathub/org.yuzu_emu.yuzu/blob/master/org.yuzu_emu.yuzu.json
-#git clone --recursive https://github.com/flathub/org.yuzu_emu.yuzu
-#rm -rf org.yuzu_emu.yuzu/shared-modules
-#rm -rf org.yuzu_emu.yuzu/.*
-#ln -s org.yuzu_emu.yuzu/* $INSTALL_DIR/
-
-
-cd $INSTALL_DIR
-flatpak-builder retrodeck-flatpak com.xargon.retrodeck.yml --force-clean
-
-# Useful commands:
-# flatpak-builder --user --install --force-clean retrodeck-flatpak com.xargon.retrodeck.yml
-# flatpak run com.xargon.retrodeck
-#
-# flatpak --user remote-add --no-gpg-verify xargon-dev repo
-# flatpak --user install xargon-dev com.xargon.retrodeck
-#
-# flatpak run --command=/bin/bash com.xargon.retrodeck
-
-# Cleaning up
-#rm -rf org.libretro.RetroArch
-#rm -rf org.yuzu_emu.yuzu
-
-# removing orphaned symlinks
-find -L . -name . -o -type d -prune -o -type l -exec rm {} +
-
-echo "Building terminated, you can install retrodeck by typing: flatpak run com.xargon.retrodeck"
-
-cd $PREVIOUS_DIR
\ No newline at end of file
diff --git a/com.xargon.retrodeck.yml b/com.xargon.retrodeck.yml
index 77833256..f66195e9 100644
--- a/com.xargon.retrodeck.yml
+++ b/com.xargon.retrodeck.yml
@@ -2,6 +2,10 @@ app-id: com.xargon.retrodeck
 runtime: org.kde.Platform
 runtime-version: '5.15-21.08'
 sdk: org.kde.Sdk
+# Needed for Yuzu
+base: io.qt.qtwebengine.BaseApp
+base-version: 5.15-21.08
+# /Needed for Yuzu
 command: retrodeck.sh
 
 finish-args:
@@ -33,6 +37,20 @@ cleanup:
   - /lib/libfreeimage.a
   - /lib/libogg.a
   - /lib/libvpx.a
+  # Yuzu
+  - /include
+  - /bin/glslangValidator
+  - /bin/zip*
+  - /bin/zstd*
+  - /lib/pkg-config
+  - /share/doc
+  - /share/man
+  - /src
+  - '*.a'
+  - '*.la'
+cleanup-commands:
+  # Yuzu
+  - /app/cleanup-BaseApp.sh
 
 modules:
 
@@ -178,7 +196,6 @@ modules:
   # External manifests start
 
   # RetroArch - https://github.com/flathub/org.libretro.RetroArch
-  # nope: remember to put ' /org.libretro.RetroArch/' as submodules prefix
 
   - name: retroarch
     config-opts:
@@ -190,9 +207,9 @@ modules:
         url: https://github.com/libretro/RetroArch.git
         branch: de4e56ecf28a09057734f8624af6d62f3088734f
       - type: file
-        path: org.libretro.RetroArch.appdata.xml
+        path: rd-submodules/retroarch/org.libretro.RetroArch.appdata.xml
       - type: file
-        path: retroarch.cfg
+        path: rd-submodules/retroarch/retroarch.cfg
     post-install:
       - mkdir -p ${FLATPAK_DEST}/share/icons/hicolor/scalable/apps/
       - >-
@@ -310,183 +327,318 @@ modules:
 
   # Yuzu - https://github.com/flathub/org.yuzu_emu.yuzu
 
-  #- shared-modules/libusb/libusb.json
-  #- name: libzip
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz
-  #      sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 10649
-  #        url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz
-  #- name: zstd
-  #  buildsystem: simple
-  #  build-commands:
-  #    - make -j $FLATPAK_BUILDER_N_JOBS
-  #    - make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install
-  #  sources:
-  #    - type: archive
-  #      url: >-
-  #        https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
-  #      sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 12083
-  #        url-template: >-
-  #          https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz
-  #- name: fmt
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DFMT_TEST=OFF'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip
-  #      sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 11526
-  #        url-template: >-
-  #          https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip
-  #- name: glslang
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=Release'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/KhronosGroup/glslang/archive/11.8.0.tar.gz
-  #      sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0
-  #      x-checker-data:
-  #        type: anitya
-  #        stable-only: true
-  #        project-id: 205796
-  #        url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
-  #- name: catch2
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=Release'
-  #    - '-DCATCH_BUILD_TESTING=OFF'
-  #  builddir: true
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz
-  #      sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a
-  #      x-checker-data:
-  #        type: anitya
-  #        stable-only: true
-  #        project-id: 7680
-  #        url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz
-  #- name: nlohmann-json
-  #  buildsystem: cmake-ninja
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=Release'
-  #    - '-DJSON_BuildTests=OFF'
-  #  sources:
-  #    - type: archive
-  #      url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz
-  #      sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 141453
-  #        url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz
-  #- name: boost
-  #  buildsystem: simple
-  #  build-commands:
-  #    - ./bootstrap.sh --with-libraries=context,container,system,headers
-  #    - ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app
-  #  sources:
-  #    - type: archive
-  #      url: >-
-  #        https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
-  #      sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc
-  #      x-checker-data:
-  #        type: anitya
-  #        project-id: 6845
-  #        url-template: >-
-  #          https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_0.tar.bz2
-  #- name: nv-codec-headers
-  #  make-install-args:
-  #    - PREFIX=/app
-  #  no-autogen: true
-  #  cleanup:
-  #    - '*'
-  #  sources:
-  #    - type: git
-  #      url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
-  #      tag: n11.1.5.1
-  #      commit: 84483da70d903239d4536763fde8c7e6c4e80784
-  #      x-checker-data:
-  #        type: git
-  #        tag-pattern: ^n([\d.]+)$
-  #- name: yuzu
-  #  buildsystem: cmake-ninja
-  #  builddir: true
-  #  config-opts:
-  #    - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
-  #    - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
-  #    - '-DENABLE_QT_TRANSLATION=ON'
-  #    - '-DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON'
-  #    - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
-  #    - '-DYUZU_USE_QT_WEB_ENGINE=ON'
-  #    - '-DYUZU_USE_BUNDLED_FFMPEG=ON'
-  #    - '-DDISPLAY_VERSION=963'
-  #    - '-DBUILD_TAG=mainline-963'
-  #    - '-DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline'
-  #  build-options:
-  #    env:
-  #      TITLEBARFORMATIDLE: yuzu {}
-  #      TITLEBARFORMATRUNNING: yuzu {} | {}
-  #      LDFLAGS: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed'
-  #  cleanup:
-  #    - /share/man
-  #    - /share/pixmaps
-  #  post-install:
-  #    - install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher
-  #    - >-
-  #      install -Dm644 ../org.yuzu_emu.yuzu.metainfo.xml
-  #      /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml
-  #    - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop
-  #    - >-
-  #      desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key
-  #      Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop
-  #    - >-
-  #      install -Dm644 ../dist/yuzu.svg
-  #      /app/share/icons/hicolor/scalable/apps/yuzu.svg
-  #    - >-
-  #      mv /app/share/mime/packages/yuzu.xml
-  #      /app/share/mime/packages/org.yuzu_emu.yuzu.xml
-  #    - >-
-  #      sed 's/yuzu/org.yuzu_emu.yuzu/g' -i
-  #      /app/share/mime/packages/org.yuzu_emu.yuzu.xml
-  #  sources:
-  #    - type: git
-  #      url: https://github.com/yuzu-emu/yuzu-mainline.git
-  #      tag: mainline-0-963
-  #      commit: 15bf148daf441e69265ea99771e0f1d327c5c10e
-  #      disable-shallow-clone: true
-  #      x-checker-data:
-  #        type: git
-  #        tag-pattern: ^(mainline-0-\d+)$
-  #    - type: file
-  #      path: org.yuzu_emu.yuzu.metainfo.xml
-  #    - type: file
-  #      path: yuzu-launcher.sh
-  #    - type: file
-  #      path: compatibility_list.json
-
+  - name: libzip
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
+    sources:
+      - type: archive
+        url: https://github.com/nih-at/libzip/archive/v1.8.0.tar.gz
+        sha256: 83e5d6d5dbe8f9df80aad388fa523ca3558398ed440a5afda6ef9b36b0ffdc1f
+        x-checker-data:
+          type: anitya
+          project-id: 10649
+          url-template: https://github.com/nih-at/libzip/archive/v$version.tar.gz
+  - name: zstd
+    buildsystem: simple
+    build-commands:
+      - make -j $FLATPAK_BUILDER_N_JOBS
+      - make PREFIX=/ DESTDIR="${FLATPAK_DEST}" install
+    sources:
+      - type: archive
+        url: >-
+          https://github.com/facebook/zstd/releases/download/v1.5.2/zstd-1.5.2.tar.gz
+        sha256: 7c42d56fac126929a6a85dbc73ff1db2411d04f104fae9bdea51305663a83fd0
+        x-checker-data:
+          type: anitya
+          project-id: 12083
+          url-template: >-
+            https://github.com/facebook/zstd/releases/download/v$version/zstd-$version.tar.gz
+  - name: fmt
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DFMT_TEST=OFF'
+    sources:
+      - type: archive
+        url: https://github.com/fmtlib/fmt/releases/download/8.1.1/fmt-8.1.1.zip
+        sha256: 23778bad8edba12d76e4075da06db591f3b0e3c6c04928ced4a7282ca3400e5d
+        x-checker-data:
+          type: anitya
+          project-id: 11526
+          url-template: >-
+            https://github.com/fmtlib/fmt/releases/download/$version/fmt-$version.zip
+  - name: glslang
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+    sources:
+      - type: archive
+        url: https://github.com/KhronosGroup/glslang/archive/11.8.0.tar.gz
+        sha256: 9e5fbe5b844d203da5e61bcd84eda76326e0ff5dc696cb862147bbe01d2febb0
+        x-checker-data:
+          type: anitya
+          stable-only: true
+          project-id: 205796
+          url-template: https://github.com/KhronosGroup/glslang/archive/$version.tar.gz
+  - name: catch2
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+      - '-DCATCH_BUILD_TESTING=OFF'
+    builddir: true
+    sources:
+      - type: archive
+        url: https://github.com/catchorg/Catch2/archive/v2.13.8.tar.gz
+        sha256: b9b592bd743c09f13ee4bf35fc30eeee2748963184f6bea836b146e6cc2a585a
+        x-checker-data:
+          type: anitya
+          stable-only: true
+          project-id: 7680
+          url-template: https://github.com/catchorg/Catch2/archive/v$version.tar.gz
+  - name: nlohmann-json
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+      - '-DJSON_BuildTests=OFF'
+    sources:
+      - type: archive
+        url: https://github.com/nlohmann/json/archive/v3.10.5.tar.gz
+        sha256: 5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4
+        x-checker-data:
+          type: anitya
+          project-id: 141453
+          url-template: https://github.com/nlohmann/json/archive/v$version.tar.gz
+  - name: boost
+    buildsystem: simple
+    build-commands:
+      - ./bootstrap.sh --with-libraries=context,container,system,headers
+      - ./b2 -j $FLATPAK_BUILDER_N_JOBS install --prefix=/app
+    sources:
+      - type: archive
+        url: >-
+          https://boostorg.jfrog.io/artifactory/main/release/1.78.0/source/boost_1_78_0.tar.bz2
+        sha256: 8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc
+        x-checker-data:
+          type: anitya
+          project-id: 6845
+          url-template: >-
+            https://boostorg.jfrog.io/artifactory/main/release/$version/source/boost_1_78_0.tar.bz2
+  - name: nv-codec-headers
+    make-install-args:
+      - PREFIX=/app
+    no-autogen: true
+    cleanup:
+      - '*'
+    sources:
+      - type: git
+        url: https://git.videolan.org/git/ffmpeg/nv-codec-headers.git
+        tag: n11.1.5.1
+        commit: 84483da70d903239d4536763fde8c7e6c4e80784
+        x-checker-data:
+          type: git
+          tag-pattern: ^n([\d.]+)$
+  - name: yuzu
+    buildsystem: cmake-ninja
+    builddir: true
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=RelWithDebInfo'
+      - '-DCMAKE_INTERPROCEDURAL_OPTIMIZATION=ON'
+      - '-DENABLE_QT_TRANSLATION=ON'
+      - '-DYUZU_ENABLE_COMPATIBILITY_REPORTING=ON'
+      - '-DENABLE_COMPATIBILITY_LIST_DOWNLOAD=ON'
+      - '-DYUZU_USE_QT_WEB_ENGINE=ON'
+      - '-DYUZU_USE_BUNDLED_FFMPEG=ON'
+      - '-DDISPLAY_VERSION=969'
+      - '-DBUILD_TAG=mainline-969'
+      - '-DBUILD_REPOSITORY=yuzu-emu/yuzu-mainline'
+    build-options:
+      env:
+        TITLEBARFORMATIDLE: yuzu {}
+        TITLEBARFORMATRUNNING: yuzu {} | {}
+        LDFLAGS: '-L/app/lib -Wl,-z,relro,-z,now -Wl,--as-needed'
+    cleanup:
+      - /share/man
+      - /share/pixmaps
+    post-install:
+      - install -Dm755 ../yuzu-launcher.sh /app/bin/yuzu-launcher
+      - >-
+        install -Dm644 ../org.yuzu_emu.yuzu.metainfo.xml
+        /app/share/appdata/org.yuzu_emu.yuzu.metainfo.xml
+      - desktop-file-install --dir=/app/share/applications ../dist/yuzu.desktop
+      - >-
+        desktop-file-edit --set-key StartupWMClass --set-value yuzu --set-key
+        Exec --set-value yuzu-launcher /app/share/applications/yuzu.desktop
+      - >-
+        install -Dm644 ../dist/yuzu.svg
+        /app/share/icons/hicolor/scalable/apps/yuzu.svg
+      - >-
+        mv /app/share/mime/packages/yuzu.xml
+        /app/share/mime/packages/org.yuzu_emu.yuzu.xml
+      - >-
+        sed 's/yuzu/org.yuzu_emu.yuzu/g' -i
+        /app/share/mime/packages/org.yuzu_emu.yuzu.xml
+    sources:
+      - type: git
+        url: https://github.com/yuzu-emu/yuzu-mainline.git
+        tag: mainline-0-969
+        commit: d179e12137cd8ff88b0eade7d13de801661f869b
+        disable-shallow-clone: true
+        x-checker-data:
+          type: git
+          tag-pattern: ^(mainline-0-\d+)$
+      - type: file
+        path: rd-submodules/yuzu/org.yuzu_emu.yuzu.metainfo.xml
+      - type: file
+        path: rd-submodules/yuzu/yuzu-launcher.sh
+      - type: file
+        path: rd-submodules/yuzu/compatibility_list.json
+        
   # Yuzu - END
 
+  # pcsx2 - https://github.com/flathub/net.pcsx2.PCSX2
+
+  - name: wxWidgets
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+    cleanup:
+      - /bin
+      - /include
+      - /lib/wx/include
+    sources:
+      - type: git
+        url: https://github.com/wxWidgets/wxWidgets.git
+        tag: v3.1.5
+        commit: 9c0a8be1dc32063d91ed1901fd5fcd54f4f955a1
+        x-checker-data:
+          type: git
+          tag-pattern: ^v([\d.]+)$
+    modules:
+      - shared-modules/glu/glu-9.json
+  - name: libaio
+    no-autogen: true
+    make-install-args:
+      - prefix=${FLATPAK_DEST}
+    sources:
+      - type: git
+        url: https://pagure.io/libaio.git
+        tag: libaio-0.3.112
+        commit: d025927efa75a0d1b46ca3a5ef331caa2f46ee0e
+        x-checker-data:
+          type: git
+          tag-pattern: ^libaio-([\d.]+)$
+    cleanup:
+      - /include
+      - /lib/*.a
+  - name: portaudio
+    buildsystem: cmake-ninja
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+    cleanup:
+      - /include
+      - /share/doc
+      - /lib/cmake
+      - /lib/pkgconfig
+      - /lib/*.a
+    sources:
+      - type: git
+        url: https://github.com/PortAudio/portaudio.git
+        tag: v19.7.0
+        commit: 147dd722548358763a8b649b3e4b41dfffbcfbb6
+        x-checker-data:
+          type: git
+          tag-pattern: ^v([\d.]+)$
+  - name: soundtouch
+    buildsystem: cmake-ninja
+    sources:
+      - type: git
+        url: https://codeberg.org/soundtouch/soundtouch.git
+        tag: 2.3.1
+        commit: e1f315f5358d9db5cee35a7a2886425489fcefe8
+        x-checker-data:
+          type: git
+          tag-pattern: ^([\d.]+)$
+    cleanup:
+      - /bin
+      - /include
+      - /lib/cmake
+      - /lib/pkgconfig
+      - /share/doc
+      - /lib/*.a
+  - name: png++
+    disabled: true
+    buildsystem: simple
+    build-commands:
+      - make
+      - make prefix=/app install
+    sources:
+      - type: archive
+        url: >-
+          https://download.savannah.nongnu.org/releases/pngpp/png++-0.2.10.tar.gz
+        sha256: 998af216ab16ebb88543fbaa2dbb9175855e944775b66f2996fc945c8444eee1
+  - name: libpcap
+    buildsystem: cmake-ninja
+    sources:
+      - type: git
+        url: https://github.com/the-tcpdump-group/libpcap.git
+        tag: libpcap-1.10.1
+        commit: c7642e2cc0c5bd65754685b160d25dc23c76c6bd
+        x-checker-data:
+          type: git
+          tag-pattern: ^libpcap-([\d.]+)$
+    cleanup:
+      - /bin
+      - /include
+      - /share/man
+      - /lib/pkgconfig
+      - /lib/*.a
+  - name: pcsx2
+    buildsystem: cmake-ninja
+    builddir: true
+    config-opts:
+      - '-DCMAKE_BUILD_TYPE=Release'
+      - '-DPACKAGE_MODE=TRUE'
+      - '-DXDG_STD=TRUE'
+      - '-DDISABLE_BUILD_DATE=TRUE'
+      - '-DDISABLE_PCSX2_WRAPPER=TRUE'
+      - '-DDISABLE_ADVANCE_SIMD=TRUE'
+      - '-DSDL2_API=TRUE'
+    cleanup:
+      - /share/pixmaps
+      - /share/man
+      - /share/doc
+    post-install:
+      - >-
+        desktop-file-edit --set-key=Exec --set-value=pcsx2
+        /app/share/applications/PCSX2.desktop
+      - >-
+        install -Dm644 ../AppIcon128.png
+        /app/share/icons/hicolor/128x128/apps/PCSX2.png
+      - >-
+        install -Dm644 ../net.pcsx2.PCSX2.metainfo.xml
+        /app/share/metainfo/net.pcsx2.PCSX2.metainfo.xml
+    sources:
+      - type: git
+        url: https://github.com/PCSX2/pcsx2.git
+        tag: v1.7.2554
+        commit: 0d1675fbaa0d40874df98eed6270efc55620271b
+      - type: file
+        path: rd-submodules/pcsx2/net.pcsx2.PCSX2.metainfo.xml
+      - type: file
+        path: rd-submodules/pcsx2/AppIcon128.png
+
+  # pcsx2 - END
+
 
   # Ryujinx
   # Xemu
   # Rpcs3
-  # pcsx2
   # vita3k
   # dolphin
   # arduboy
+  # pocket station
+  # cemu - win only: wine
+  # Anbox?
 
 
   # External manifests end
@@ -514,6 +666,7 @@ modules:
         # Tools
         - mkdir -p ${FLATPAK_DEST}/retrodeck/tools/
         - cp start-retroarch.sh ${FLATPAK_DEST}/retrodeck/tools/
+        - cp move-roms.sh ${FLATPAK_DEST}/retrodeck/tools/
         - cp tools-gamelist.xml ${FLATPAK_DEST}/retrodeck/
         
         - cp retrodeck.sh /app/bin/retrodeck.sh
diff --git a/rd-submodules/pcsx2 b/rd-submodules/pcsx2
new file mode 160000
index 00000000..68a40d61
--- /dev/null
+++ b/rd-submodules/pcsx2
@@ -0,0 +1 @@
+Subproject commit 68a40d61b37b6f9c9033dc93d426570b86938e3f
diff --git a/rd-submodules/retroarch b/rd-submodules/retroarch
new file mode 160000
index 00000000..bcd152ba
--- /dev/null
+++ b/rd-submodules/retroarch
@@ -0,0 +1 @@
+Subproject commit bcd152baf434eea464b9e58e48078ff674c13886
diff --git a/rd-submodules/yuzu b/rd-submodules/yuzu
new file mode 160000
index 00000000..c2395647
--- /dev/null
+++ b/rd-submodules/yuzu
@@ -0,0 +1 @@
+Subproject commit c23956479d76c12b559316cfd30755eef5e09902
diff --git a/retrodeck.sh b/retrodeck.sh
old mode 100644
new mode 100755
index dadd3c21..de186d2e
--- a/retrodeck.sh
+++ b/retrodeck.sh
@@ -22,20 +22,20 @@ then
         if is_mounted "/run/media/mmcblk0p1"
         then
             roms_folder=/run/media/mmcblk0p1/retrodeck/roms
-            mkdir -p /run/media/mmcblk0p1/retrodeck/
         else
             kdialog --title "RetroDECK" --error "SD Card is not readable, please check if it inserted or mounted correctly and run RetroDECK again."
             exit 0
         fi
     fi
 
+    mkdir -p $roms_folder
+
     # initializing ES-DE
 
     mkdir -p /var/config/retrodeck/tools
 
     # Cleaning
     rm -rf /var/config/emulationstation/
-    rm ~/retrodeck/bios
     rm /var/config/retrodeck/tools/*
 
     kdialog --title "RetroDECK" --msgbox "EmulationStation will now initialize the system, please don't edit the roms location, just select:\n\nCREATE DIRECTORIES, YES, QUIT\n\nRetroDECK will manage the rest."
@@ -46,9 +46,9 @@ then
 
 	kdialog --title "RetroDECK" --msgbox "RetroDECK will now install the needed files, please wait one minute, another message will notify when the process will be finished.\n\nPress OK to continue."
 
-    mv /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak
+    mv -f /var/config/emulationstation/ROMs /var/config/emulationstation/ROMs.bak
     ln -s $roms_folder /var/config/emulationstation/ROMs
-    mv /var/config/emulationstation/ROMs.bak $roms_folder
+    mv -f /var/config/emulationstation/ROMs.bak/* $roms_folder/
 
     # XMLSTARLET HERE
     cp /app/retrodeck/es_settings.xml /var/config/emulationstation/.emulationstation/es_settings.xml
@@ -56,15 +56,17 @@ then
     mkdir -p ~/retrodeck/saves
     mkdir -p ~/retrodeck/states
     mkdir -p ~/retrodeck/screenshots
+    mkdir -p ~/retrodeck/bios
+    mkdir -p /var/config/retroarch/
 
-    cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools
+    cp -r /app/retrodeck/tools/* /var/config/retrodeck/tools/
 
-    mkdir -p /var/config/retroarch/system
-    ln -s ~/.var/app/com.xargon.retrodeck/config/retroarch/system ~/retrodeck/bios
+    rm -rf /var/config/retroarch/system
+    ln -s ~/retrodeck/bios /var/config/retroarch/system
 
     cp /app/retrodeck/retrodeck-retroarch.cfg /var/config/retroarch/retroarch.cfg
 
-    mkdir -p /var/config/emulationstation/.emulationstation/gamelists/tools/
+    mkdir -p /var/config/emulationstation/.emulationstation/custom_systems/tools/
     cp /app/retrodeck/tools-gamelist.xml /var/config/emulationstation/.emulationstation/custom_systems/tools/gamelist.xml
 
     mkdir -p /var/config/retroarch/cores/
@@ -72,7 +74,7 @@ then
 
     touch ~/retrodeck/.lock
 
-    kdialog --title "RetroDECK" --msgbox "Initialization completed, please put your roms in: $roms_folder.\nIf you wish to change the roms location you may use the tool located the tools section of RetroDECK (coming soon)."
+    kdialog --title "RetroDECK" --msgbox "Initialization completed.\nplease put your roms in:\n\n$roms_folder\n\nand your bioses in\n\n~/retrodeck/bios\n\nThen start the program again.\nIf you wish to change the roms location, you may use the tool located the tools section of RetroDECK.\n\nIt's suggested to add RetroDECK to your Steam Library for a quick access."
 else
     emulationstation --home /var/config/emulationstation
 fi
diff --git a/tools-gamelist.xml b/tools-gamelist.xml
index 99e1e1f5..3c867b28 100644
--- a/tools-gamelist.xml
+++ b/tools-gamelist.xml
@@ -5,10 +5,14 @@
 		<name>Start RetroArch</name>
 		<sortname>RetroArch</sortname>
 		<desc>Start RetroArch to manually tweak your settings.</desc>
-		<releasedate>20100525T000000</releasedate>
-		<developer>Libretro</developer>
-		<publisher>Libretro</publisher>
-		<genre>Emulator</genre>
+		<nogamecount>true</nogamecount>
+		<nomultiscrape>true</nomultiscrape>
+	</game>
+	<game>
+		<path>./move-roms.sh</path>
+		<name>Move roms folder</name>
+		<sortname>Move roms folder</sortname>
+		<desc>Move roms folder from internal to external and vice versa.</desc>
 		<nogamecount>true</nogamecount>
 		<nomultiscrape>true</nomultiscrape>
 	</game>
diff --git a/tools/move-roms.sh b/tools/move-roms.sh
new file mode 100644
index 00000000..6128ab9a
--- /dev/null
+++ b/tools/move-roms.sh
@@ -0,0 +1,25 @@
+#!/bin/bash
+
+if [ -d ~/retrodeck/roms ] && [ -d ~/retrodeck/roms ]
+then # found both internal and sd folders
+    kdialog --title "RetroDECK" --warning "I found a roms folder both in internal and SD Card, in order to make this tool useful you should remove one of the two."
+    exit 0
+fi
+
+if [ -d ~/retrodeck/roms ] && [ ! -d /run/media/mmcblk0p1/retrodeck/roms ] 
+then # found internal folder and not the external
+    roms_path=~/retrodeck
+    new_roms_path=/run/media/mmcblk0p1/retrodeck
+fi
+
+if [ ! -d ~/retrodeck/roms ] && [ -d /run/media/mmcblk0p1/retrodeck/roms ] 
+then # found external folder and not the internal
+    roms_path=/run/media/mmcblk0p1/retrodeck
+    new_roms_path=~/retrodeck
+fi
+
+mkdir -p $new_roms_path
+mv -f $roms_path/roms $new_roms_path/roms
+rm -f /var/config/emulationstation/ROMs
+ln -s $new_roms_path/roms /var/config/emulationstation/ROMs
+rm -f $roms_path/roms
diff --git a/tools/start-retroarch.sh b/tools/start-retroarch.sh
index 11de5e1a..621a1b24 100644
--- a/tools/start-retroarch.sh
+++ b/tools/start-retroarch.sh
@@ -1,5 +1,5 @@
 #!/bin/bash
 
-kdialog --title "RetroDECK" --warningyesno "Doing some changes in the RetroArch configuration may create serious issues, please continue only if you know what you're doing. Are you sure do you want to continue?"
+kdialog --title "RetroDECK" --warningyesno "Doing some changes in the RetroArch configuration may create serious issues, please continue only if you know what you're doing.\n\nDo you want to continue?"
 if [ $? == 0 ]; then
     retroarch
\ No newline at end of file