diff --git a/CMakeLists.txt b/CMakeLists.txt
index f2fcabd64f..af18192df9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -124,6 +124,11 @@ option(OPROFILING "Enable profiling" OFF)
# TODO: Add DSPSpy
option(DSPTOOL "Build dsptool" OFF)
+# RetroAchievements developer tools require Windows hooks
+if(WIN32)
+ option(RC_CLIENT_SUPPORTS_RAINTEGRATION "Enables RetroAchievements developer tools" ON)
+endif()
+
# Enable SDL by default on operating systems that aren't Android.
if(NOT ANDROID)
option(ENABLE_SDL "Enables SDL as a generic controller backend" ON)
diff --git a/Externals/rcheevos/CMakeLists.txt b/Externals/rcheevos/CMakeLists.txt
index f8d9bee8da..666a5e11ec 100644
--- a/Externals/rcheevos/CMakeLists.txt
+++ b/Externals/rcheevos/CMakeLists.txt
@@ -43,9 +43,12 @@ add_library(rcheevos
rcheevos/src/rhash/hash.c
rcheevos/src/rhash/md5.c
rcheevos/src/rhash/md5.h
+ rcheevos/src/rhash/rc_hash_internal.h
rcheevos/src/rurl/url.c
rcheevos/src/rc_client.c
+ rcheevos/src/rc_client_external.c
rcheevos/src/rc_client_external.h
+ rcheevos/src/rc_client_external_versions.h
rcheevos/src/rc_client_internal.h
rcheevos/src/rc_client_raintegration.c
rcheevos/src/rc_client_raintegration_internal.h
@@ -61,6 +64,11 @@ target_include_directories(rcheevos PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/rcheevo
target_include_directories(rcheevos INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
target_compile_definitions(rcheevos PRIVATE "RC_DISABLE_LUA=1" "RCHEEVOS_URL_SSL")
target_compile_definitions(rcheevos PRIVATE "RC_CLIENT_SUPPORTS_HASH")
+target_compile_definitions(rcheevos PRIVATE "RC_CLIENT_SUPPORTS_EXTERNAL")
+target_compile_definitions(rcheevos PRIVATE "RC_HASH_NO_ENCRYPTED")
+target_compile_definitions(rcheevos PRIVATE "RC_HASH_NO_ROM")
+target_compile_definitions(rcheevos PRIVATE "RC_HASH_NO_ZIP")
if(CMAKE_SYSTEM_NAME MATCHES "Windows")
+ target_compile_definitions(rcheevos PRIVATE "RC_CLIENT_SUPPORTS_RAINTEGRATION")
target_compile_definitions(rcheevos PRIVATE "_CRT_SECURE_NO_WARNINGS")
endif()
diff --git a/Externals/rcheevos/rcheevos b/Externals/rcheevos/rcheevos
index d54cf8f105..022ac70cff 160000
--- a/Externals/rcheevos/rcheevos
+++ b/Externals/rcheevos/rcheevos
@@ -1 +1 @@
-Subproject commit d54cf8f1059cebc90a6f5ecdf03df69259f22054
+Subproject commit 022ac70cff6cf60c8957de63d6297998904a6f05
diff --git a/Externals/rcheevos/rcheevos.vcxproj b/Externals/rcheevos/rcheevos.vcxproj
index 51a94c7750..eda4fcd77f 100644
--- a/Externals/rcheevos/rcheevos.vcxproj
+++ b/Externals/rcheevos/rcheevos.vcxproj
@@ -41,6 +41,7 @@
+
@@ -68,7 +69,9 @@
+
+
@@ -76,7 +79,7 @@
- RC_DISABLE_LUA;RCHEEVOS_URL_SSL;RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)
+ RC_DISABLE_LUA;RCHEEVOS_URL_SSL;RC_CLIENT_SUPPORTS_HASH;RC_CLIENT_SUPPORTS_EXTERNAL;RC_CLIENT_SUPPORTS_RAINTEGRATION;RC_HASH_NO_ENCRYPTED;RC_HASH_NO_ROM;RC_HASH_NO_ZIP;%(PreprocessorDefinitions)
$(ProjectDir)rcheevos\include;%(AdditionalIncludeDirectories)
diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt
index b4437747e8..3bb2427cf5 100644
--- a/Source/Core/Core/CMakeLists.txt
+++ b/Source/Core/Core/CMakeLists.txt
@@ -787,4 +787,7 @@ if(USE_RETRO_ACHIEVEMENTS)
target_link_libraries(core PUBLIC rcheevos)
target_compile_definitions(core PUBLIC -DUSE_RETRO_ACHIEVEMENTS)
target_compile_definitions(core PUBLIC -DRC_CLIENT_SUPPORTS_HASH)
+ if(RC_CLIENT_SUPPORTS_RAINTEGRATION)
+ target_compile_definitions(core PUBLIC -DRC_CLIENT_SUPPORTS_RAINTEGRATION)
+ endif()
endif()
diff --git a/Source/Core/DolphinQt/CMakeLists.txt b/Source/Core/DolphinQt/CMakeLists.txt
index 38d481cdf9..b6e1659d4f 100644
--- a/Source/Core/DolphinQt/CMakeLists.txt
+++ b/Source/Core/DolphinQt/CMakeLists.txt
@@ -677,4 +677,7 @@ endif()
if(USE_RETRO_ACHIEVEMENTS)
target_link_libraries(dolphin-emu PRIVATE rcheevos)
target_compile_definitions(dolphin-emu PRIVATE -DUSE_RETRO_ACHIEVEMENTS)
+ if(RC_CLIENT_SUPPORTS_RAINTEGRATION)
+ target_compile_definitions(dolphin-emu PRIVATE -DRC_CLIENT_SUPPORTS_RAINTEGRATION)
+ endif()
endif()
diff --git a/Source/VSProps/Base.Dolphin.props b/Source/VSProps/Base.Dolphin.props
index eb1d50a141..3410b9fef6 100644
--- a/Source/VSProps/Base.Dolphin.props
+++ b/Source/VSProps/Base.Dolphin.props
@@ -46,6 +46,7 @@
HAVE_SDL2;%(PreprocessorDefinitions)
USE_RETRO_ACHIEVEMENTS;%(PreprocessorDefinitions)
RC_CLIENT_SUPPORTS_HASH;%(PreprocessorDefinitions)
+ RC_CLIENT_SUPPORTS_RAINTEGRATION;%(PreprocessorDefinitions)
HAVE_CUBEB;%(PreprocessorDefinitions)