diff --git a/rd-submodules/citra/rd-submodules/citra/unified-source-compat.patch b/rd-submodules/citra/rd-submodules/citra/unified-source-compat.patch
new file mode 100644
index 00000000..6a1ca47c
--- /dev/null
+++ b/rd-submodules/citra/rd-submodules/citra/unified-source-compat.patch
@@ -0,0 +1,56 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 710f3fcfb..e5f4f4687 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -94,7 +94,11 @@ function(check_submodules_present)
+         endif()
+     endforeach()
+ endfunction()
+-check_submodules_present()
++
++if (EXISTS "${PROJECT_SOURCE_DIR}/.git/objects")
++    # only check submodules when source is obtained via Git
++    check_submodules_present()
++endif()
+ 
+ configure_file(${PROJECT_SOURCE_DIR}/dist/compatibility_list/compatibility_list.qrc
+                ${PROJECT_BINARY_DIR}/dist/compatibility_list/compatibility_list.qrc
+diff --git a/CMakeModules/GenerateSCMRev.cmake b/CMakeModules/GenerateSCMRev.cmake
+index a011c6cbf..87e9eef35 100644
+--- a/CMakeModules/GenerateSCMRev.cmake
++++ b/CMakeModules/GenerateSCMRev.cmake
+@@ -6,15 +6,27 @@ endfunction()
+ 
+ list(APPEND CMAKE_MODULE_PATH "${SRC_DIR}/externals/cmake-modules")
+ 
+-# Find the package here with the known path so that the GetGit commands can find it as well
+-find_package(Git QUIET PATHS "${GIT_EXECUTABLE}")
+-
+ # generate git/build information
+-include(GetGitRevisionDescription)
+-get_git_head_revision(GIT_REF_SPEC GIT_REV)
+-git_describe(GIT_DESC --always --long --dirty)
+-git_branch_name(GIT_BRANCH)
+ get_timestamp(BUILD_DATE)
++if (EXISTS "${SRC_DIR}/.git/objects")
++    # Find the package here with the known path so that the GetGit commands can find it as well
++    find_package(Git QUIET PATHS "${GIT_EXECUTABLE}")
++    # only use Git to check revision info when source is obtained via Git
++    include(GetGitRevisionDescription)
++    get_git_head_revision(GIT_REF_SPEC GIT_REV)
++    git_describe(GIT_DESC --always --long --dirty)
++    git_branch_name(GIT_BRANCH)
++elseif(EXISTS "${SRC_DIR}/GIT-COMMIT" AND EXISTS "${SRC_DIR}/GIT-TAG")
++    # unified source archive
++    file(READ "${SRC_DIR}/GIT-COMMIT" GIT_REV_RAW LIMIT 64)
++    string(STRIP "${GIT_REV_RAW}" GIT_REV)
++    string(SUBSTRING "${GIT_REV_RAW}" 0 9 GIT_DESC)
++    set(GIT_BRANCH "HEAD")
++else()
++    # self-packed archive?
++    set(GIT_DESC "UNKNOWN")
++    set(GIT_BRANCH "UNKNOWN")
++endif()
+ 
+ # Generate cpp with Git revision from template
+ # Also if this is a CI build, add the build name (ie: Nightly, Canary) to the scm_rev file as well
\ No newline at end of file