From 6ad267017c8581855f269032b46ceaba3d63c96a Mon Sep 17 00:00:00 2001 From: LillyJadeKatrin Date: Tue, 1 Apr 2025 21:17:35 -0400 Subject: [PATCH 01/10] Refactor AchievementBox to const pointer Not sure when or why this became necessary but it works. --- Source/Core/DolphinQt/Achievements/AchievementBox.cpp | 2 +- Source/Core/DolphinQt/Achievements/AchievementBox.h | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Source/Core/DolphinQt/Achievements/AchievementBox.cpp b/Source/Core/DolphinQt/Achievements/AchievementBox.cpp index 2b73ba83b0..1fe85131cc 100644 --- a/Source/Core/DolphinQt/Achievements/AchievementBox.cpp +++ b/Source/Core/DolphinQt/Achievements/AchievementBox.cpp @@ -22,7 +22,7 @@ static constexpr size_t PROGRESS_LENGTH = 24; -AchievementBox::AchievementBox(QWidget* parent, rc_client_achievement_t* achievement) +AchievementBox::AchievementBox(QWidget* parent, const rc_client_achievement_t* achievement) : QGroupBox(parent), m_achievement(achievement) { const auto& instance = AchievementManager::GetInstance(); diff --git a/Source/Core/DolphinQt/Achievements/AchievementBox.h b/Source/Core/DolphinQt/Achievements/AchievementBox.h index 92b1e75878..7d6e163641 100644 --- a/Source/Core/DolphinQt/Achievements/AchievementBox.h +++ b/Source/Core/DolphinQt/Achievements/AchievementBox.h @@ -18,7 +18,7 @@ class AchievementBox final : public QGroupBox { Q_OBJECT public: - explicit AchievementBox(QWidget* parent, rc_client_achievement_t* achievement); + explicit AchievementBox(QWidget* parent, const rc_client_achievement_t* achievement); void UpdateData(); void UpdateProgress(); @@ -28,7 +28,7 @@ private: QProgressBar* m_progress_bar; QLabel* m_progress_label; - rc_client_achievement_t* m_achievement; + const rc_client_achievement_t* m_achievement; }; #endif // USE_RETRO_ACHIEVEMENTS From cab5bc5680a40a7ddb032e49d3a5a26068c13e5f Mon Sep 17 00:00:00 2001 From: LillyJadeKatrin Date: Sat, 3 Aug 2024 23:48:16 -0400 Subject: [PATCH 02/10] Update rcheevos submodule to newest master --- CMakeLists.txt | 5 +++++ Externals/rcheevos/CMakeLists.txt | 8 ++++++++ Externals/rcheevos/rcheevos | 2 +- Externals/rcheevos/rcheevos.vcxproj | 5 ++++- Source/Core/Core/CMakeLists.txt | 3 +++ Source/Core/DolphinQt/CMakeLists.txt | 3 +++ Source/VSProps/Base.Dolphin.props | 1 + 7 files changed, 25 insertions(+), 2 deletions(-) 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)