From e1538413e9dc6aee8bb5cdd83ab64435c1ebe562 Mon Sep 17 00:00:00 2001
From: Levi Akatsuki <akatsukilevi@yahoo.co.jp>
Date: Fri, 15 Mar 2024 21:48:09 +0000
Subject: [PATCH] Quality-of-Life Improvements

---
 externals/xbyak                               |   2 +-
 src/audio_core/in/audio_in.cpp                |   4 +-
 src/audio_core/in/audio_in_system.cpp         |   4 +-
 src/audio_core/out/audio_out.cpp              |   4 +-
 src/audio_core/out/audio_out_system.cpp       |   4 +-
 .../renderer/behavior/info_updater.cpp        |   7 +-
 .../renderer/memory/pool_mapper.cpp           |   4 +-
 src/common/CMakeLists.txt                     |   2 -
 src/common/address_space.h                    |   3 +-
 src/common/concepts.h                         |   6 +-
 src/common/expected.h                         |   8 +-
 src/common/intrusive_red_black_tree.h         |   6 +-
 src/common/multi_level_page_table.h           |   8 +-
 src/common/polyfill_ranges.h                  |   6 +-
 src/common/settings.h                         |   5 +-
 src/common/telemetry.cpp                      | 119 -------
 src/common/telemetry.h                        | 209 -------------
 src/common/tree.h                             |   6 +-
 src/common/vector_math.h                      |  12 +-
 src/common/virtual_buffer.h                   |   4 +-
 src/common/x64/native_clock.cpp               |   4 +-
 src/core/CMakeLists.txt                       |   2 -
 src/core/arm/dynarmic/arm_dynarmic_32.cpp     |   4 +-
 src/core/arm/dynarmic/arm_dynarmic_64.cpp     |   4 +-
 src/core/core.cpp                             |  32 --
 src/core/core.h                               |   7 -
 src/core/file_sys/card_image.cpp              |   4 +-
 src/core/file_sys/fs_path_utility.h           |   8 +-
 src/core/file_sys/submission_package.cpp      |   6 +-
 src/core/file_sys/xts_archive.cpp             |   8 +-
 src/core/hle/kernel/k_auto_object.h           |  16 +-
 src/core/hle/kernel/k_memory_layout.cpp       |   4 +-
 src/core/hle/kernel/k_priority_queue.h        |  48 ++-
 src/core/hle/kernel/k_scoped_lock.h           |   9 +-
 src/core/hle/result.h                         |   8 +-
 src/core/hle/service/acc/acc.cpp              |   4 +-
 .../service/am/frontend/applet_cabinet.cpp    |   5 +-
 .../service/am/service/application_proxy.cpp  |   4 +-
 .../am/service/library_applet_creator.cpp     |   4 +-
 .../am/service/library_applet_proxy.cpp       |   4 +-
 .../service/am/service/self_controller.cpp    |   4 +-
 .../am/service/system_applet_proxy.cpp        |   4 +-
 .../service/am/service/window_controller.cpp  |   4 +-
 .../service/aoc/purchase_event_manager.cpp    |   4 +-
 src/core/hle/service/audio/audio_in.cpp       |   5 +-
 .../hle/service/audio/audio_in_manager.cpp    |   4 +-
 src/core/hle/service/audio/audio_renderer.cpp |   4 +-
 .../bcat/news/newly_arrived_event_holder.cpp  |   5 +-
 .../bcat/news/overwrite_event_holder.cpp      |   4 +-
 .../filesystem/fsp/fs_i_filesystem.cpp        |   4 +-
 .../fsp/fs_i_save_data_info_reader.cpp        |   4 +-
 .../hle/service/glue/time/alarm_worker.cpp    |   4 +-
 src/core/hle/service/glue/time/manager.cpp    |   6 +-
 src/core/hle/service/glue/time/time_zone.cpp  |   6 +-
 src/core/hle/service/glue/time/worker.cpp     |   8 +-
 src/core/hle/service/hid/hid_debug_server.cpp |   4 +-
 src/core/hle/service/ipc_helpers.h            |   4 +-
 src/core/hle/service/jit/jit_context.cpp      |   4 +-
 src/core/hle/service/mii/mii.cpp              |   4 +-
 src/core/hle/service/psc/time/alarms.cpp      |   4 +-
 .../standard_user_system_clock_core.cpp       |   4 +-
 src/core/hle/service/psc/time/common.cpp      |   4 +-
 src/core/hle/service/psc/time/manager.h       |   4 +-
 .../service/psc/time/power_state_service.cpp  |   4 +-
 src/core/hle/service/psc/time/static.cpp      |   4 +-
 .../hle/service/psc/time/steady_clock.cpp     |   4 +-
 .../hle/service/psc/time/system_clock.cpp     |   4 +-
 .../service/psc/time/time_zone_service.cpp    |   4 +-
 src/core/hle/service/sm/sm.cpp                |   4 +-
 .../vi/application_display_service.cpp        |   4 +-
 src/core/memory/cheat_engine.cpp              |   4 +-
 src/core/telemetry_session.cpp                | 294 ------------------
 src/core/telemetry_session.h                  | 101 ------
 src/input_common/input_poller.cpp             |   4 +-
 .../frontend/maxwell/control_flow.cpp         |   4 +-
 .../maxwell/structured_control_flow.cpp       |   4 +-
 src/suyu/applets/qt_web_browser.cpp           |   4 +-
 src/suyu/bootmanager.cpp                      |   4 +-
 src/suyu/compatdb.cpp                         |  11 +-
 src/suyu/compatdb.h                           |   5 +-
 src/suyu/configuration/configure_dialog.cpp   |   6 +-
 .../configuration/configure_input_player.cpp  |  10 +-
 .../configuration/configure_mouse_panning.ui  |   4 +-
 src/suyu/configuration/configure_per_game.cpp |  26 +-
 src/suyu/configuration/configure_per_game.h   |   4 +
 src/suyu/configuration/configure_per_game.ui  | 131 ++++----
 src/suyu/configuration/configure_web.cpp      |  26 +-
 src/suyu/configuration/configure_web.h        |   1 -
 src/suyu/configuration/configure_web.ui       |  50 ---
 src/suyu/configuration/shared_widget.cpp      |   4 +-
 src/suyu/game_list.cpp                        |  70 ++++-
 src/suyu/game_list.h                          |   2 +
 src/suyu/game_list_worker.cpp                 |  44 ++-
 src/suyu/main.cpp                             |  41 +--
 src/suyu/main.h                               |   2 +-
 src/suyu/main.ui                              |  14 +-
 src/suyu/multiplayer/direct_connect.cpp       |   4 +-
 src/suyu/multiplayer/host_room.cpp            |   5 +-
 src/suyu/multiplayer/lobby.cpp                |   5 +-
 src/suyu/uisettings.h                         |   1 +
 src/suyu_cmd/suyu.cpp                         |   4 -
 src/video_core/cdma_pusher.cpp                |   4 +-
 src/video_core/dma_pusher.cpp                 |   4 +-
 src/video_core/engines/maxwell_3d.cpp         |   5 +-
 src/video_core/engines/puller.cpp             |   4 +-
 src/video_core/host1x/codecs/decoder.cpp      |   4 +-
 src/video_core/host1x/host1x.cpp              |   4 +-
 src/video_core/host1x/vic.cpp                 |   4 +-
 src/video_core/memory_manager.cpp             |   4 +-
 src/video_core/query_cache/query_cache.h      |   4 +-
 .../renderer_opengl/gl_compute_pipeline.cpp   |   4 +-
 .../renderer_opengl/gl_query_cache.cpp        |   5 +-
 .../renderer_opengl/renderer_opengl.cpp       |  33 +-
 .../renderer_opengl/renderer_opengl.h         |   6 +-
 .../renderer_vulkan/present/fsr.cpp           |   4 +-
 .../renderer_vulkan/renderer_vulkan.cpp       |  72 +----
 .../renderer_vulkan/renderer_vulkan.h         |   6 +-
 .../renderer_vulkan/vk_compute_pass.cpp       |   4 +-
 .../renderer_vulkan/vk_compute_pipeline.cpp   |   4 +-
 .../renderer_vulkan/vk_present_manager.cpp    |   4 +-
 .../renderer_vulkan/vk_query_cache.cpp        |   7 +-
 .../vk_staging_buffer_pool.cpp                |   4 +-
 src/video_core/shader_environment.cpp         |   4 +-
 src/video_core/video_core.cpp                 |  10 +-
 src/video_core/vulkan_common/vulkan_wrapper.h |  12 +-
 src/web_service/CMakeLists.txt                |   2 -
 src/web_service/telemetry_json.cpp            | 130 --------
 src/web_service/telemetry_json.h              |  44 ---
 128 files changed, 494 insertions(+), 1525 deletions(-)
 delete mode 100644 src/common/telemetry.cpp
 delete mode 100644 src/common/telemetry.h
 delete mode 100644 src/core/telemetry_session.cpp
 delete mode 100644 src/core/telemetry_session.h
 delete mode 100644 src/web_service/telemetry_json.cpp
 delete mode 100644 src/web_service/telemetry_json.h

diff --git a/externals/xbyak b/externals/xbyak
index a1ac3750f9..9c0f5d3ecb 160000
--- a/externals/xbyak
+++ b/externals/xbyak
@@ -1 +1 @@
-Subproject commit a1ac3750f9a639b5a6c6d6c7da4259b8d6790989
+Subproject commit 9c0f5d3ecb06d2c93c2b59becb9b3b763213e74e
diff --git a/src/audio_core/in/audio_in.cpp b/src/audio_core/in/audio_in.cpp
index df8c44d1f2..b28eb69786 100644
--- a/src/audio_core/in/audio_in.cpp
+++ b/src/audio_core/in/audio_in.cpp
@@ -8,8 +8,8 @@
 namespace AudioCore::AudioIn {
 
 In::In(Core::System& system_, Manager& manager_, Kernel::KEvent* event_, size_t session_id_)
-    : manager{manager_}, parent_mutex{manager.mutex}, event{event_}, system{system_, event,
-                                                                            session_id_} {}
+    : manager{manager_}, parent_mutex{manager.mutex}, event{event_},
+      system{system_, event, session_id_} {}
 
 void In::Free() {
     std::scoped_lock l{parent_mutex};
diff --git a/src/audio_core/in/audio_in_system.cpp b/src/audio_core/in/audio_in_system.cpp
index b2dd3ef9f7..84d99877cb 100644
--- a/src/audio_core/in/audio_in_system.cpp
+++ b/src/audio_core/in/audio_in_system.cpp
@@ -14,8 +14,8 @@
 namespace AudioCore::AudioIn {
 
 System::System(Core::System& system_, Kernel::KEvent* event_, const size_t session_id_)
-    : system{system_}, buffer_event{event_},
-      session_id{session_id_}, session{std::make_unique<DeviceSession>(system_)} {}
+    : system{system_}, buffer_event{event_}, session_id{session_id_},
+      session{std::make_unique<DeviceSession>(system_)} {}
 
 System::~System() {
     Finalize();
diff --git a/src/audio_core/out/audio_out.cpp b/src/audio_core/out/audio_out.cpp
index b7ea134055..d31bced9df 100644
--- a/src/audio_core/out/audio_out.cpp
+++ b/src/audio_core/out/audio_out.cpp
@@ -8,8 +8,8 @@
 namespace AudioCore::AudioOut {
 
 Out::Out(Core::System& system_, Manager& manager_, Kernel::KEvent* event_, size_t session_id_)
-    : manager{manager_}, parent_mutex{manager.mutex}, event{event_}, system{system_, event,
-                                                                            session_id_} {}
+    : manager{manager_}, parent_mutex{manager.mutex}, event{event_},
+      system{system_, event, session_id_} {}
 
 void Out::Free() {
     std::scoped_lock l{parent_mutex};
diff --git a/src/audio_core/out/audio_out_system.cpp b/src/audio_core/out/audio_out_system.cpp
index 7b3ff4e881..4c940be2d3 100644
--- a/src/audio_core/out/audio_out_system.cpp
+++ b/src/audio_core/out/audio_out_system.cpp
@@ -14,8 +14,8 @@
 namespace AudioCore::AudioOut {
 
 System::System(Core::System& system_, Kernel::KEvent* event_, size_t session_id_)
-    : system{system_}, buffer_event{event_},
-      session_id{session_id_}, session{std::make_unique<DeviceSession>(system_)} {}
+    : system{system_}, buffer_event{event_}, session_id{session_id_},
+      session{std::make_unique<DeviceSession>(system_)} {}
 
 System::~System() {
     Finalize();
diff --git a/src/audio_core/renderer/behavior/info_updater.cpp b/src/audio_core/renderer/behavior/info_updater.cpp
index 3dae6069f7..163127789c 100644
--- a/src/audio_core/renderer/behavior/info_updater.cpp
+++ b/src/audio_core/renderer/behavior/info_updater.cpp
@@ -19,10 +19,9 @@ namespace AudioCore::Renderer {
 
 InfoUpdater::InfoUpdater(std::span<const u8> input_, std::span<u8> output_,
                          Kernel::KProcess* process_handle_, BehaviorInfo& behaviour_)
-    : input{input_.data() + sizeof(UpdateDataHeader)},
-      input_origin{input_}, output{output_.data() + sizeof(UpdateDataHeader)},
-      output_origin{output_}, in_header{reinterpret_cast<const UpdateDataHeader*>(
-                                  input_origin.data())},
+    : input{input_.data() + sizeof(UpdateDataHeader)}, input_origin{input_},
+      output{output_.data() + sizeof(UpdateDataHeader)}, output_origin{output_},
+      in_header{reinterpret_cast<const UpdateDataHeader*>(input_origin.data())},
       out_header{reinterpret_cast<UpdateDataHeader*>(output_origin.data())},
       expected_input_size{input_.size()}, expected_output_size{output_.size()},
       process_handle{process_handle_}, behaviour{behaviour_} {
diff --git a/src/audio_core/renderer/memory/pool_mapper.cpp b/src/audio_core/renderer/memory/pool_mapper.cpp
index e47eb66d51..1df786feb5 100644
--- a/src/audio_core/renderer/memory/pool_mapper.cpp
+++ b/src/audio_core/renderer/memory/pool_mapper.cpp
@@ -13,8 +13,8 @@ PoolMapper::PoolMapper(Kernel::KProcess* process_handle_, bool force_map_)
 
 PoolMapper::PoolMapper(Kernel::KProcess* process_handle_, std::span<MemoryPoolInfo> pool_infos_,
                        u32 pool_count_, bool force_map_)
-    : process_handle{process_handle_}, pool_infos{pool_infos_.data()},
-      pool_count{pool_count_}, force_map{force_map_} {}
+    : process_handle{process_handle_}, pool_infos{pool_infos_.data()}, pool_count{pool_count_},
+      force_map{force_map_} {}
 
 void PoolMapper::ClearUseState(std::span<MemoryPoolInfo> pools, const u32 count) {
     for (u32 i = 0; i < count; i++) {
diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt
index 3baae5a30d..f8d431a770 100644
--- a/src/common/CMakeLists.txt
+++ b/src/common/CMakeLists.txt
@@ -136,8 +136,6 @@ add_library(common STATIC
     string_util.cpp
     string_util.h
     swap.h
-    telemetry.cpp
-    telemetry.h
     thread.cpp
     thread.h
     thread_queue_list.h
diff --git a/src/common/address_space.h b/src/common/address_space.h
index 8683c23c39..694bb2aed3 100644
--- a/src/common/address_space.h
+++ b/src/common/address_space.h
@@ -12,8 +12,7 @@
 
 namespace Common {
 template <typename VaType, size_t AddressSpaceBits>
-concept AddressSpaceValid = std::is_unsigned_v<VaType> && sizeof(VaType) * 8 >=
-AddressSpaceBits;
+concept AddressSpaceValid = std::is_unsigned_v<VaType> && sizeof(VaType) * 8 >= AddressSpaceBits;
 
 struct EmptyStruct {};
 
diff --git a/src/common/concepts.h b/src/common/concepts.h
index 61df1d32a2..a9acff3e79 100644
--- a/src/common/concepts.h
+++ b/src/common/concepts.h
@@ -16,9 +16,9 @@ concept IsContiguousContainer = std::contiguous_iterator<typename T::iterator>;
 //       is available on all supported platforms.
 template <typename Derived, typename Base>
 concept DerivedFrom = requires {
-                          std::is_base_of_v<Base, Derived>;
-                          std::is_convertible_v<const volatile Derived*, const volatile Base*>;
-                      };
+    std::is_base_of_v<Base, Derived>;
+    std::is_convertible_v<const volatile Derived*, const volatile Base*>;
+};
 
 // TODO: Replace with std::convertible_to when libc++ implements it.
 template <typename From, typename To>
diff --git a/src/common/expected.h b/src/common/expected.h
index 5fccfbcbdd..c62e43164d 100644
--- a/src/common/expected.h
+++ b/src/common/expected.h
@@ -598,14 +598,14 @@ public:
     template <typename G = E, std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
               std::enable_if_t<!std::is_convertible_v<G&&, E>>* = nullptr>
     constexpr explicit Expected(Unexpected<G>&& e) noexcept(std::is_nothrow_constructible_v<E, G&&>)
-        : impl_base{unexpect_t{}, std::move(e.value())}, ctor_base{
-                                                             detail::default_constructor_tag{}} {}
+        : impl_base{unexpect_t{}, std::move(e.value())},
+          ctor_base{detail::default_constructor_tag{}} {}
 
     template <typename G = E, std::enable_if_t<std::is_constructible_v<E, G&&>>* = nullptr,
               std::enable_if_t<std::is_convertible_v<G&&, E>>* = nullptr>
     constexpr Expected(Unexpected<G>&& e) noexcept(std::is_nothrow_constructible_v<E, G&&>)
-        : impl_base{unexpect_t{}, std::move(e.value())}, ctor_base{
-                                                             detail::default_constructor_tag{}} {}
+        : impl_base{unexpect_t{}, std::move(e.value())},
+          ctor_base{detail::default_constructor_tag{}} {}
 
     template <typename... Args, std::enable_if_t<std::is_constructible_v<E, Args&&...>>* = nullptr>
     constexpr explicit Expected(unexpect_t, Args&&... args)
diff --git a/src/common/intrusive_red_black_tree.h b/src/common/intrusive_red_black_tree.h
index 6809acb47d..554194bb0b 100644
--- a/src/common/intrusive_red_black_tree.h
+++ b/src/common/intrusive_red_black_tree.h
@@ -238,10 +238,8 @@ public:
 
 template <typename T>
 concept HasRedBlackKeyType = requires {
-                                 {
-                                     std::is_same<typename T::RedBlackKeyType, void>::value
-                                     } -> std::convertible_to<bool>;
-                             };
+    { std::is_same<typename T::RedBlackKeyType, void>::value } -> std::convertible_to<bool>;
+};
 
 namespace impl {
 
diff --git a/src/common/multi_level_page_table.h b/src/common/multi_level_page_table.h
index 31f6676a06..4eefb4d5f8 100644
--- a/src/common/multi_level_page_table.h
+++ b/src/common/multi_level_page_table.h
@@ -25,12 +25,12 @@ public:
 
     MultiLevelPageTable(MultiLevelPageTable&& other) noexcept
         : address_space_bits{std::exchange(other.address_space_bits, 0)},
-          first_level_bits{std::exchange(other.first_level_bits, 0)}, page_bits{std::exchange(
-                                                                          other.page_bits, 0)},
+          first_level_bits{std::exchange(other.first_level_bits, 0)},
+          page_bits{std::exchange(other.page_bits, 0)},
           first_level_shift{std::exchange(other.first_level_shift, 0)},
           first_level_chunk_size{std::exchange(other.first_level_chunk_size, 0)},
-          first_level_map{std::move(other.first_level_map)}, base_ptr{std::exchange(other.base_ptr,
-                                                                                    nullptr)} {}
+          first_level_map{std::move(other.first_level_map)},
+          base_ptr{std::exchange(other.base_ptr, nullptr)} {}
 
     MultiLevelPageTable& operator=(MultiLevelPageTable&& other) noexcept {
         address_space_bits = std::exchange(other.address_space_bits, 0);
diff --git a/src/common/polyfill_ranges.h b/src/common/polyfill_ranges.h
index 512dbcbcb7..ea542fe120 100644
--- a/src/common/polyfill_ranges.h
+++ b/src/common/polyfill_ranges.h
@@ -18,9 +18,9 @@ namespace ranges {
 
 template <typename T>
 concept range = requires(T& t) {
-                    begin(t);
-                    end(t);
-                };
+    begin(t);
+    end(t);
+};
 
 template <typename T>
 concept input_range = range<T>;
diff --git a/src/common/settings.h b/src/common/settings.h
index 8b86ee991f..d010713ea6 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -530,9 +530,9 @@ struct Values {
     Setting<bool> mouse_enabled{linkage, false, "mouse_enabled", Category::Controls};
 
     Setting<u8, true> mouse_panning_x_sensitivity{
-        linkage, 50, 1, 100, "mouse_panning_x_sensitivity", Category::Controls};
+        linkage, 50, 1, 200, "mouse_panning_x_sensitivity", Category::Controls};
     Setting<u8, true> mouse_panning_y_sensitivity{
-        linkage, 50, 1, 100, "mouse_panning_y_sensitivity", Category::Controls};
+        linkage, 50, 1, 200, "mouse_panning_y_sensitivity", Category::Controls};
     Setting<u8, true> mouse_panning_deadzone_counterweight{
         linkage, 20, 0, 100, "mouse_panning_deadzone_counterweight", Category::Controls};
     Setting<u8, true> mouse_panning_decay_strength{
@@ -611,7 +611,6 @@ struct Values {
                                            Category::Network};
 
     // WebService
-    Setting<bool> enable_telemetry{linkage, false, "enable_telemetry", Category::WebService};
     Setting<std::string> web_api_url{linkage, "http://74.113.97.71:3000", "web_api_url",
                                      Category::WebService};
     Setting<std::string> suyu_username{linkage, std::string(), "suyu_username",
diff --git a/src/common/telemetry.cpp b/src/common/telemetry.cpp
deleted file mode 100644
index 929ed67e4a..0000000000
--- a/src/common/telemetry.cpp
+++ /dev/null
@@ -1,119 +0,0 @@
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <algorithm>
-#include <cstring>
-#include "common/scm_rev.h"
-#include "common/telemetry.h"
-
-#ifdef ARCHITECTURE_x86_64
-#include "common/x64/cpu_detect.h"
-#endif
-
-namespace Common::Telemetry {
-
-void FieldCollection::Accept(VisitorInterface& visitor) const {
-    for (const auto& field : fields) {
-        field.second->Accept(visitor);
-    }
-}
-
-void FieldCollection::AddField(std::unique_ptr<FieldInterface> field) {
-    fields[field->GetName()] = std::move(field);
-}
-
-template <class T>
-void Field<T>::Accept(VisitorInterface& visitor) const {
-    visitor.Visit(*this);
-}
-
-template class Field<bool>;
-template class Field<double>;
-template class Field<float>;
-template class Field<u8>;
-template class Field<u16>;
-template class Field<u32>;
-template class Field<u64>;
-template class Field<s8>;
-template class Field<s16>;
-template class Field<s32>;
-template class Field<s64>;
-template class Field<std::string>;
-template class Field<const char*>;
-template class Field<std::chrono::microseconds>;
-
-void AppendBuildInfo(FieldCollection& fc) {
-    const bool is_git_dirty{std::strstr(Common::g_scm_desc, "dirty") != nullptr};
-    fc.AddField(FieldType::App, "Git_IsDirty", is_git_dirty);
-    fc.AddField(FieldType::App, "Git_Branch", Common::g_scm_branch);
-    fc.AddField(FieldType::App, "Git_Revision", Common::g_scm_rev);
-    fc.AddField(FieldType::App, "BuildDate", Common::g_build_date);
-    fc.AddField(FieldType::App, "BuildName", Common::g_build_name);
-}
-
-void AppendCPUInfo(FieldCollection& fc) {
-#ifdef ARCHITECTURE_x86_64
-
-    const auto& caps = Common::GetCPUCaps();
-    const auto add_field = [&fc](std::string_view field_name, const auto& field_value) {
-        fc.AddField(FieldType::UserSystem, field_name, field_value);
-    };
-    add_field("CPU_Model", caps.cpu_string);
-    add_field("CPU_BrandString", caps.brand_string);
-
-    add_field("CPU_Extension_x64_SSE", caps.sse);
-    add_field("CPU_Extension_x64_SSE2", caps.sse2);
-    add_field("CPU_Extension_x64_SSE3", caps.sse3);
-    add_field("CPU_Extension_x64_SSSE3", caps.ssse3);
-    add_field("CPU_Extension_x64_SSE41", caps.sse4_1);
-    add_field("CPU_Extension_x64_SSE42", caps.sse4_2);
-
-    add_field("CPU_Extension_x64_AVX", caps.avx);
-    add_field("CPU_Extension_x64_AVX_VNNI", caps.avx_vnni);
-    add_field("CPU_Extension_x64_AVX2", caps.avx2);
-
-    // Skylake-X/SP level AVX512, for compatibility with the previous telemetry field
-    add_field("CPU_Extension_x64_AVX512",
-              caps.avx512f && caps.avx512cd && caps.avx512vl && caps.avx512dq && caps.avx512bw);
-
-    add_field("CPU_Extension_x64_AVX512F", caps.avx512f);
-    add_field("CPU_Extension_x64_AVX512CD", caps.avx512cd);
-    add_field("CPU_Extension_x64_AVX512VL", caps.avx512vl);
-    add_field("CPU_Extension_x64_AVX512DQ", caps.avx512dq);
-    add_field("CPU_Extension_x64_AVX512BW", caps.avx512bw);
-    add_field("CPU_Extension_x64_AVX512BITALG", caps.avx512bitalg);
-    add_field("CPU_Extension_x64_AVX512VBMI", caps.avx512vbmi);
-
-    add_field("CPU_Extension_x64_AES", caps.aes);
-    add_field("CPU_Extension_x64_BMI1", caps.bmi1);
-    add_field("CPU_Extension_x64_BMI2", caps.bmi2);
-    add_field("CPU_Extension_x64_F16C", caps.f16c);
-    add_field("CPU_Extension_x64_FMA", caps.fma);
-    add_field("CPU_Extension_x64_FMA4", caps.fma4);
-    add_field("CPU_Extension_x64_GFNI", caps.gfni);
-    add_field("CPU_Extension_x64_INVARIANT_TSC", caps.invariant_tsc);
-    add_field("CPU_Extension_x64_LZCNT", caps.lzcnt);
-    add_field("CPU_Extension_x64_MONITORX", caps.monitorx);
-    add_field("CPU_Extension_x64_MOVBE", caps.movbe);
-    add_field("CPU_Extension_x64_PCLMULQDQ", caps.pclmulqdq);
-    add_field("CPU_Extension_x64_POPCNT", caps.popcnt);
-    add_field("CPU_Extension_x64_SHA", caps.sha);
-    add_field("CPU_Extension_x64_WAITPKG", caps.waitpkg);
-#else
-    fc.AddField(FieldType::UserSystem, "CPU_Model", "Other");
-#endif
-}
-
-void AppendOSInfo(FieldCollection& fc) {
-#ifdef __APPLE__
-    fc.AddField(FieldType::UserSystem, "OsPlatform", "Apple");
-#elif defined(_WIN32)
-    fc.AddField(FieldType::UserSystem, "OsPlatform", "Windows");
-#elif defined(__linux__) || defined(linux) || defined(__linux)
-    fc.AddField(FieldType::UserSystem, "OsPlatform", "Linux");
-#else
-    fc.AddField(FieldType::UserSystem, "OsPlatform", "Unknown");
-#endif
-}
-
-} // namespace Common::Telemetry
diff --git a/src/common/telemetry.h b/src/common/telemetry.h
deleted file mode 100644
index 124f0dbf09..0000000000
--- a/src/common/telemetry.h
+++ /dev/null
@@ -1,209 +0,0 @@
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project & 2024 suyu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <chrono>
-#include <map>
-#include <memory>
-#include <string>
-#include "common/common_funcs.h"
-#include "common/common_types.h"
-
-namespace Common::Telemetry {
-
-/// Field type, used for grouping fields together in the final submitted telemetry log
-enum class FieldType : u8 {
-    None = 0,     ///< No specified field group
-    App,          ///< suyu application fields (e.g. version, branch, etc.)
-    Session,      ///< Emulated session fields (e.g. title ID, log, etc.)
-    Performance,  ///< Emulated performance (e.g. fps, emulated CPU speed, etc.)
-    UserFeedback, ///< User submitted feedback (e.g. star rating, user notes, etc.)
-    UserConfig,   ///< User configuration fields (e.g. emulated CPU core, renderer, etc.)
-    UserSystem,   ///< User system information (e.g. host CPU type, RAM, etc.)
-};
-
-struct VisitorInterface;
-
-/**
- * Interface class for telemetry data fields.
- */
-class FieldInterface {
-public:
-    virtual ~FieldInterface() = default;
-
-    /**
-     * Accept method for the visitor pattern.
-     * @param visitor Reference to the visitor that will visit this field.
-     */
-    virtual void Accept(VisitorInterface& visitor) const = 0;
-
-    /**
-     * Gets the name of this field.
-     * @returns Name of this field as a string.
-     */
-    virtual const std::string& GetName() const = 0;
-};
-
-/**
- * Represents a telemetry data field, i.e. a unit of data that gets logged and submitted to our
- * telemetry web service.
- */
-template <typename T>
-class Field : public FieldInterface {
-public:
-    SUYU_NON_COPYABLE(Field);
-
-    Field(FieldType type_, std::string_view name_, T value_)
-        : name(name_), type(type_), value(std::move(value_)) {}
-
-    ~Field() override = default;
-
-    Field(Field&&) noexcept = default;
-    Field& operator=(Field&& other) noexcept = default;
-
-    void Accept(VisitorInterface& visitor) const override;
-
-    [[nodiscard]] const std::string& GetName() const override {
-        return name;
-    }
-
-    /**
-     * Returns the type of the field.
-     */
-    [[nodiscard]] FieldType GetType() const {
-        return type;
-    }
-
-    /**
-     * Returns the value of the field.
-     */
-    [[nodiscard]] const T& GetValue() const {
-        return value;
-    }
-
-    [[nodiscard]] bool operator==(const Field& other) const {
-        return (type == other.type) && (name == other.name) && (value == other.value);
-    }
-
-    [[nodiscard]] bool operator!=(const Field& other) const {
-        return !operator==(other);
-    }
-
-private:
-    std::string name; ///< Field name, must be unique
-    FieldType type{}; ///< Field type, used for grouping fields together
-    T value;          ///< Field value
-};
-
-/**
- * Collection of data fields that have been logged.
- */
-class FieldCollection final {
-public:
-    SUYU_NON_COPYABLE(FieldCollection);
-
-    FieldCollection() = default;
-    ~FieldCollection() = default;
-
-    FieldCollection(FieldCollection&&) noexcept = default;
-    FieldCollection& operator=(FieldCollection&&) noexcept = default;
-
-    /**
-     * Accept method for the visitor pattern, visits each field in the collection.
-     * @param visitor Reference to the visitor that will visit each field.
-     */
-    void Accept(VisitorInterface& visitor) const;
-
-    /**
-     * Creates a new field and adds it to the field collection.
-     * @param type Type of the field to add.
-     * @param name Name of the field to add.
-     * @param value Value for the field to add.
-     */
-    template <typename T>
-    void AddField(FieldType type, std::string_view name, T value) {
-        return AddField(std::make_unique<Field<T>>(type, name, std::move(value)));
-    }
-
-    /**
-     * Adds a new field to the field collection.
-     * @param field Field to add to the field collection.
-     */
-    void AddField(std::unique_ptr<FieldInterface> field);
-
-private:
-    std::map<std::string, std::unique_ptr<FieldInterface>> fields;
-};
-
-/**
- * Telemetry fields visitor interface class. A backend to log to a web service should implement
- * this interface.
- */
-struct VisitorInterface {
-    virtual ~VisitorInterface() = default;
-
-    virtual void Visit(const Field<bool>& field) = 0;
-    virtual void Visit(const Field<double>& field) = 0;
-    virtual void Visit(const Field<float>& field) = 0;
-    virtual void Visit(const Field<u8>& field) = 0;
-    virtual void Visit(const Field<u16>& field) = 0;
-    virtual void Visit(const Field<u32>& field) = 0;
-    virtual void Visit(const Field<u64>& field) = 0;
-    virtual void Visit(const Field<s8>& field) = 0;
-    virtual void Visit(const Field<s16>& field) = 0;
-    virtual void Visit(const Field<s32>& field) = 0;
-    virtual void Visit(const Field<s64>& field) = 0;
-    virtual void Visit(const Field<std::string>& field) = 0;
-    virtual void Visit(const Field<const char*>& field) = 0;
-    virtual void Visit(const Field<std::chrono::microseconds>& field) = 0;
-
-    /// Completion method, called once all fields have been visited
-    virtual void Complete() = 0;
-    virtual bool SubmitTestcase() = 0;
-};
-
-/**
- * Empty implementation of VisitorInterface that drops all fields. Used when a functional
- * backend implementation is not available.
- */
-struct NullVisitor final : public VisitorInterface {
-    SUYU_NON_COPYABLE(NullVisitor);
-
-    NullVisitor() = default;
-    ~NullVisitor() override = default;
-
-    void Visit(const Field<bool>& /*field*/) override {}
-    void Visit(const Field<double>& /*field*/) override {}
-    void Visit(const Field<float>& /*field*/) override {}
-    void Visit(const Field<u8>& /*field*/) override {}
-    void Visit(const Field<u16>& /*field*/) override {}
-    void Visit(const Field<u32>& /*field*/) override {}
-    void Visit(const Field<u64>& /*field*/) override {}
-    void Visit(const Field<s8>& /*field*/) override {}
-    void Visit(const Field<s16>& /*field*/) override {}
-    void Visit(const Field<s32>& /*field*/) override {}
-    void Visit(const Field<s64>& /*field*/) override {}
-    void Visit(const Field<std::string>& /*field*/) override {}
-    void Visit(const Field<const char*>& /*field*/) override {}
-    void Visit(const Field<std::chrono::microseconds>& /*field*/) override {}
-
-    void Complete() override {}
-    bool SubmitTestcase() override {
-        return false;
-    }
-};
-
-/// Appends build-specific information to the given FieldCollection,
-/// such as branch name, revision hash, etc.
-void AppendBuildInfo(FieldCollection& fc);
-
-/// Appends CPU-specific information to the given FieldCollection,
-/// such as instruction set extensions, etc.
-void AppendCPUInfo(FieldCollection& fc);
-
-/// Appends OS-specific information to the given FieldCollection,
-/// such as platform name, etc.
-void AppendOSInfo(FieldCollection& fc);
-
-} // namespace Common::Telemetry
diff --git a/src/common/tree.h b/src/common/tree.h
index f4fc43de36..a260e83a32 100644
--- a/src/common/tree.h
+++ b/src/common/tree.h
@@ -103,9 +103,9 @@ concept IsRBEntry = CheckRBEntry<T>::value;
 
 template <typename T>
 concept HasRBEntry = requires(T& t, const T& ct) {
-                         { t.GetRBEntry() } -> std::same_as<RBEntry<T>&>;
-                         { ct.GetRBEntry() } -> std::same_as<const RBEntry<T>&>;
-                     };
+    { t.GetRBEntry() } -> std::same_as<RBEntry<T>&>;
+    { ct.GetRBEntry() } -> std::same_as<const RBEntry<T>&>;
+};
 
 template <typename T>
     requires HasRBEntry<T>
diff --git a/src/common/vector_math.h b/src/common/vector_math.h
index b4885835df..720e89f491 100644
--- a/src/common/vector_math.h
+++ b/src/common/vector_math.h
@@ -362,7 +362,9 @@ public:
 // _DEFINE_SWIZZLER2 defines a single such function, DEFINE_SWIZZLER2 defines all of them for all
 // component names (x<->r) and permutations (xy<->yx)
 #define _DEFINE_SWIZZLER2(a, b, name)                                                              \
-    [[nodiscard]] constexpr Vec2<T> name() const { return Vec2<T>(a, b); }
+    [[nodiscard]] constexpr Vec2<T> name() const {                                                 \
+        return Vec2<T>(a, b);                                                                      \
+    }
 #define DEFINE_SWIZZLER2(a, b, a2, b2, a3, b3, a4, b4)                                             \
     _DEFINE_SWIZZLER2(a, b, a##b);                                                                 \
     _DEFINE_SWIZZLER2(a, b, a2##b2);                                                               \
@@ -555,7 +557,9 @@ public:
 // DEFINE_SWIZZLER2_COMP2 defines two component functions for all component names (x<->r) and
 // permutations (xy<->yx)
 #define _DEFINE_SWIZZLER2(a, b, name)                                                              \
-    [[nodiscard]] constexpr Vec2<T> name() const { return Vec2<T>(a, b); }
+    [[nodiscard]] constexpr Vec2<T> name() const {                                                 \
+        return Vec2<T>(a, b);                                                                      \
+    }
 #define DEFINE_SWIZZLER2_COMP1(a, a2)                                                              \
     _DEFINE_SWIZZLER2(a, a, a##a);                                                                 \
     _DEFINE_SWIZZLER2(a, a, a2##a2)
@@ -580,7 +584,9 @@ public:
 #undef _DEFINE_SWIZZLER2
 
 #define _DEFINE_SWIZZLER3(a, b, c, name)                                                           \
-    [[nodiscard]] constexpr Vec3<T> name() const { return Vec3<T>(a, b, c); }
+    [[nodiscard]] constexpr Vec3<T> name() const {                                                 \
+        return Vec3<T>(a, b, c);                                                                   \
+    }
 #define DEFINE_SWIZZLER3_COMP1(a, a2)                                                              \
     _DEFINE_SWIZZLER3(a, a, a, a##a##a);                                                           \
     _DEFINE_SWIZZLER3(a, a, a, a2##a2##a2)
diff --git a/src/common/virtual_buffer.h b/src/common/virtual_buffer.h
index 4f6e3e6e5c..a6cf25baa2 100644
--- a/src/common/virtual_buffer.h
+++ b/src/common/virtual_buffer.h
@@ -33,8 +33,8 @@ public:
     VirtualBuffer& operator=(const VirtualBuffer&) = delete;
 
     VirtualBuffer(VirtualBuffer&& other) noexcept
-        : alloc_size{std::exchange(other.alloc_size, 0)}, base_ptr{std::exchange(other.base_ptr),
-                                                                   nullptr} {}
+        : alloc_size{std::exchange(other.alloc_size, 0)},
+          base_ptr{std::exchange(other.base_ptr), nullptr} {}
 
     VirtualBuffer& operator=(VirtualBuffer&& other) noexcept {
         alloc_size = std::exchange(other.alloc_size, 0);
diff --git a/src/common/x64/native_clock.cpp b/src/common/x64/native_clock.cpp
index d2d27fafea..80d6e2bc5c 100644
--- a/src/common/x64/native_clock.cpp
+++ b/src/common/x64/native_clock.cpp
@@ -8,8 +8,8 @@
 namespace Common::X64 {
 
 NativeClock::NativeClock(u64 rdtsc_frequency_)
-    : rdtsc_frequency{rdtsc_frequency_}, ns_rdtsc_factor{GetFixedPoint64Factor(NsRatio::den,
-                                                                               rdtsc_frequency)},
+    : rdtsc_frequency{rdtsc_frequency_},
+      ns_rdtsc_factor{GetFixedPoint64Factor(NsRatio::den, rdtsc_frequency)},
       us_rdtsc_factor{GetFixedPoint64Factor(UsRatio::den, rdtsc_frequency)},
       ms_rdtsc_factor{GetFixedPoint64Factor(MsRatio::den, rdtsc_frequency)},
       cntpct_rdtsc_factor{GetFixedPoint64Factor(CNTFRQ, rdtsc_frequency)},
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 5f9bbc543b..fbaa281b50 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -1136,8 +1136,6 @@ add_library(core STATIC
     precompiled_headers.h
     reporter.cpp
     reporter.h
-    telemetry_session.cpp
-    telemetry_session.h
     tools/freezer.cpp
     tools/freezer.h
     tools/renderdoc.cpp
diff --git a/src/core/arm/dynarmic/arm_dynarmic_32.cpp b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
index 36478f7224..c9df0c022e 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_32.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_32.cpp
@@ -16,8 +16,8 @@ using namespace Common::Literals;
 class DynarmicCallbacks32 : public Dynarmic::A32::UserCallbacks {
 public:
     explicit DynarmicCallbacks32(ArmDynarmic32& parent, Kernel::KProcess* process)
-        : m_parent{parent}, m_memory(process->GetMemory()),
-          m_process(process), m_debugger_enabled{parent.m_system.DebuggerEnabled()},
+        : m_parent{parent}, m_memory(process->GetMemory()), m_process(process),
+          m_debugger_enabled{parent.m_system.DebuggerEnabled()},
           m_check_memory_access{m_debugger_enabled ||
                                 !Settings::values.cpuopt_ignore_memory_aborts.GetValue()} {}
 
diff --git a/src/core/arm/dynarmic/arm_dynarmic_64.cpp b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
index c811c8ad56..77a0b352f1 100644
--- a/src/core/arm/dynarmic/arm_dynarmic_64.cpp
+++ b/src/core/arm/dynarmic/arm_dynarmic_64.cpp
@@ -16,8 +16,8 @@ using namespace Common::Literals;
 class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks {
 public:
     explicit DynarmicCallbacks64(ArmDynarmic64& parent, Kernel::KProcess* process)
-        : m_parent{parent}, m_memory(process->GetMemory()),
-          m_process(process), m_debugger_enabled{parent.m_system.DebuggerEnabled()},
+        : m_parent{parent}, m_memory(process->GetMemory()), m_process(process),
+          m_debugger_enabled{parent.m_system.DebuggerEnabled()},
           m_check_memory_access{m_debugger_enabled ||
                                 !Settings::values.cpuopt_ignore_memory_aborts.GetValue()} {}
 
diff --git a/src/core/core.cpp b/src/core/core.cpp
index e1c8b41ee5..0cb81d6d8f 100644
--- a/src/core/core.cpp
+++ b/src/core/core.cpp
@@ -55,7 +55,6 @@
 #include "core/memory/cheat_engine.h"
 #include "core/perf_stats.h"
 #include "core/reporter.h"
-#include "core/telemetry_session.h"
 #include "core/tools/freezer.h"
 #include "core/tools/renderdoc.h"
 #include "hid_core/hid_core.h"
@@ -272,8 +271,6 @@ struct System::Impl {
     }
 
     SystemResultStatus SetupForApplicationProcess(System& system, Frontend::EmuWindow& emu_window) {
-        telemetry_session = std::make_unique<Core::TelemetrySession>();
-
         host1x_core = std::make_unique<Tegra::Host1x::Host1x>(system);
         gpu_core = VideoCore::CreateGPU(emu_window, system);
         if (!gpu_core) {
@@ -354,8 +351,6 @@ struct System::Impl {
             return init_result;
         }
 
-        telemetry_session->AddInitialInfo(*app_loader, fs_controller, *content_provider);
-
         // Initialize cheat engine
         if (cheat_engine) {
             cheat_engine->Initialize();
@@ -401,21 +396,6 @@ struct System::Impl {
     void ShutdownMainProcess() {
         SetShuttingDown(true);
 
-        // Log last frame performance stats if game was loaded
-        if (perf_stats) {
-            const auto perf_results = GetAndResetPerfStats();
-            constexpr auto performance = Common::Telemetry::FieldType::Performance;
-
-            telemetry_session->AddField(performance, "Shutdown_EmulationSpeed",
-                                        perf_results.emulation_speed * 100.0);
-            telemetry_session->AddField(performance, "Shutdown_Framerate",
-                                        perf_results.average_game_fps);
-            telemetry_session->AddField(performance, "Shutdown_Frametime",
-                                        perf_results.frametime * 1000.0);
-            telemetry_session->AddField(performance, "Mean_Frametime_MS",
-                                        perf_stats->GetMeanFrametime());
-        }
-
         is_powered_on = false;
         exit_locked = false;
         exit_requested = false;
@@ -434,7 +414,6 @@ struct System::Impl {
         service_manager.reset();
         fs_controller.Reset();
         cheat_engine.reset();
-        telemetry_session.reset();
         core_timing.ClearPendingEvents();
         app_loader.reset();
         audio_core.reset();
@@ -534,9 +513,6 @@ struct System::Impl {
     /// Services
     std::unique_ptr<Service::Services> services;
 
-    /// Telemetry session for this emulation session
-    std::unique_ptr<Core::TelemetrySession> telemetry_session;
-
     /// Network instance
     Network::NetworkInstance network_instance;
 
@@ -663,14 +639,6 @@ PerfStatsResults System::GetAndResetPerfStats() {
     return impl->GetAndResetPerfStats();
 }
 
-TelemetrySession& System::TelemetrySession() {
-    return *impl->telemetry_session;
-}
-
-const TelemetrySession& System::TelemetrySession() const {
-    return *impl->telemetry_session;
-}
-
 Kernel::PhysicalCore& System::CurrentPhysicalCore() {
     return impl->kernel.CurrentPhysicalCore();
 }
diff --git a/src/core/core.h b/src/core/core.h
index 90826bd3a1..0cc1108b80 100644
--- a/src/core/core.h
+++ b/src/core/core.h
@@ -122,7 +122,6 @@ class GPUDirtyMemoryManager;
 class PerfStats;
 class Reporter;
 class SpeedLimiter;
-class TelemetrySession;
 
 struct PerfStatsResults;
 
@@ -218,12 +217,6 @@ public:
      */
     [[nodiscard]] bool IsPoweredOn() const;
 
-    /// Gets a reference to the telemetry session for this emulation session.
-    [[nodiscard]] Core::TelemetrySession& TelemetrySession();
-
-    /// Gets a reference to the telemetry session for this emulation session.
-    [[nodiscard]] const Core::TelemetrySession& TelemetrySession() const;
-
     /// Prepare the core emulation for a reschedule
     void PrepareReschedule(u32 core_index);
 
diff --git a/src/core/file_sys/card_image.cpp b/src/core/file_sys/card_image.cpp
index 0bcf40cf86..396a40d013 100644
--- a/src/core/file_sys/card_image.cpp
+++ b/src/core/file_sys/card_image.cpp
@@ -29,8 +29,8 @@ constexpr std::array partition_names{
 
 XCI::XCI(VirtualFile file_, u64 program_id, size_t program_index)
     : file(std::move(file_)), program_nca_status{Loader::ResultStatus::ErrorXCIMissingProgramNCA},
-      partitions(partition_names.size()),
-      partitions_raw(partition_names.size()), keys{Core::Crypto::KeyManager::Instance()} {
+      partitions(partition_names.size()), partitions_raw(partition_names.size()),
+      keys{Core::Crypto::KeyManager::Instance()} {
     const auto header_status = TryReadHeader();
     if (header_status != Loader::ResultStatus::Success) {
         status = header_status;
diff --git a/src/core/file_sys/fs_path_utility.h b/src/core/file_sys/fs_path_utility.h
index cdfd8c7729..51418ee160 100644
--- a/src/core/file_sys/fs_path_utility.h
+++ b/src/core/file_sys/fs_path_utility.h
@@ -91,8 +91,12 @@ public:
     }
 
 #define DECLARE_PATH_FLAG_HANDLER(__WHICH__)                                                       \
-    constexpr bool Is##__WHICH__##Allowed() const { return (m_value & __WHICH__##Flag) != 0; }     \
-    constexpr void Allow##__WHICH__() { m_value |= __WHICH__##Flag; }
+    constexpr bool Is##__WHICH__##Allowed() const {                                                \
+        return (m_value & __WHICH__##Flag) != 0;                                                   \
+    }                                                                                              \
+    constexpr void Allow##__WHICH__() {                                                            \
+        m_value |= __WHICH__##Flag;                                                                \
+    }
 
     DECLARE_PATH_FLAG_HANDLER(WindowsPath)
     DECLARE_PATH_FLAG_HANDLER(RelativePath)
diff --git a/src/core/file_sys/submission_package.cpp b/src/core/file_sys/submission_package.cpp
index 68e8ec22fc..59173c6170 100644
--- a/src/core/file_sys/submission_package.cpp
+++ b/src/core/file_sys/submission_package.cpp
@@ -19,9 +19,9 @@
 namespace FileSys {
 
 NSP::NSP(VirtualFile file_, u64 title_id_, std::size_t program_index_)
-    : file(std::move(file_)), expected_program_id(title_id_),
-      program_index(program_index_), status{Loader::ResultStatus::Success},
-      pfs(std::make_shared<PartitionFilesystem>(file)), keys{Core::Crypto::KeyManager::Instance()} {
+    : file(std::move(file_)), expected_program_id(title_id_), program_index(program_index_),
+      status{Loader::ResultStatus::Success}, pfs(std::make_shared<PartitionFilesystem>(file)),
+      keys{Core::Crypto::KeyManager::Instance()} {
     if (pfs->GetStatus() != Loader::ResultStatus::Success) {
         status = pfs->GetStatus();
         return;
diff --git a/src/core/file_sys/xts_archive.cpp b/src/core/file_sys/xts_archive.cpp
index 6692211e1d..64fa442826 100644
--- a/src/core/file_sys/xts_archive.cpp
+++ b/src/core/file_sys/xts_archive.cpp
@@ -44,8 +44,8 @@ static bool CalculateHMAC256(Destination* out, const SourceKey* key, std::size_t
 }
 
 NAX::NAX(VirtualFile file_)
-    : header(std::make_unique<NAXHeader>()),
-      file(std::move(file_)), keys{Core::Crypto::KeyManager::Instance()} {
+    : header(std::make_unique<NAXHeader>()), file(std::move(file_)),
+      keys{Core::Crypto::KeyManager::Instance()} {
     std::string path = Common::FS::SanitizePath(file->GetFullPath());
     static const std::regex nax_path_regex("/registered/(000000[0-9A-F]{2})/([0-9A-F]{32})\\.nca",
                                            std::regex_constants::ECMAScript |
@@ -62,8 +62,8 @@ NAX::NAX(VirtualFile file_)
 }
 
 NAX::NAX(VirtualFile file_, std::array<u8, 0x10> nca_id)
-    : header(std::make_unique<NAXHeader>()),
-      file(std::move(file_)), keys{Core::Crypto::KeyManager::Instance()} {
+    : header(std::make_unique<NAXHeader>()), file(std::move(file_)),
+      keys{Core::Crypto::KeyManager::Instance()} {
     Core::Crypto::SHA256Hash hash{};
     mbedtls_sha256_ret(nca_id.data(), nca_id.size(), hash.data(), 0);
     status = Parse(fmt::format("/registered/000000{:02X}/{}.nca", hash[0],
diff --git a/src/core/hle/kernel/k_auto_object.h b/src/core/hle/kernel/k_auto_object.h
index 3ec056119b..6e1a5246de 100644
--- a/src/core/hle/kernel/k_auto_object.h
+++ b/src/core/hle/kernel/k_auto_object.h
@@ -24,7 +24,9 @@ private:
     friend class ::Kernel::KClassTokenGenerator;                                                   \
     static constexpr inline auto ObjectType = ::Kernel::KClassTokenGenerator::ObjectType::CLASS;   \
     static constexpr inline const char* const TypeName = #CLASS;                                   \
-    static constexpr inline ClassTokenType ClassToken() { return ::Kernel::ClassToken<CLASS>; }    \
+    static constexpr inline ClassTokenType ClassToken() {                                          \
+        return ::Kernel::ClassToken<CLASS>;                                                        \
+    }                                                                                              \
                                                                                                    \
 public:                                                                                            \
     SUYU_NON_COPYABLE(CLASS);                                                                      \
@@ -35,9 +37,15 @@ public:
         constexpr ClassTokenType Token = ClassToken();                                             \
         return TypeObj(TypeName, Token);                                                           \
     }                                                                                              \
-    static constexpr const char* GetStaticTypeName() { return TypeName; }                          \
-    virtual TypeObj GetTypeObj() ATTRIBUTE { return GetStaticTypeObj(); }                          \
-    virtual const char* GetTypeName() ATTRIBUTE { return GetStaticTypeName(); }                    \
+    static constexpr const char* GetStaticTypeName() {                                             \
+        return TypeName;                                                                           \
+    }                                                                                              \
+    virtual TypeObj GetTypeObj() ATTRIBUTE {                                                       \
+        return GetStaticTypeObj();                                                                 \
+    }                                                                                              \
+    virtual const char* GetTypeName() ATTRIBUTE {                                                  \
+        return GetStaticTypeName();                                                                \
+    }                                                                                              \
                                                                                                    \
 private:                                                                                           \
     constexpr bool operator!=(const TypeObj& rhs)
diff --git a/src/core/hle/kernel/k_memory_layout.cpp b/src/core/hle/kernel/k_memory_layout.cpp
index bec7146688..8aec520010 100644
--- a/src/core/hle/kernel/k_memory_layout.cpp
+++ b/src/core/hle/kernel/k_memory_layout.cpp
@@ -128,8 +128,8 @@ KVirtualAddress KMemoryRegionTree::GetRandomAlignedRegion(size_t size, size_t al
 
 KMemoryLayout::KMemoryLayout()
     : m_virtual_tree{m_memory_region_allocator}, m_physical_tree{m_memory_region_allocator},
-      m_virtual_linear_tree{m_memory_region_allocator}, m_physical_linear_tree{
-                                                            m_memory_region_allocator} {}
+      m_virtual_linear_tree{m_memory_region_allocator},
+      m_physical_linear_tree{m_memory_region_allocator} {}
 
 void KMemoryLayout::InitializeLinearMemoryRegionTrees(KPhysicalAddress aligned_linear_phys_start,
                                                       KVirtualAddress linear_virtual_start) {
diff --git a/src/core/hle/kernel/k_priority_queue.h b/src/core/hle/kernel/k_priority_queue.h
index 26677ec65c..b250700293 100644
--- a/src/core/hle/kernel/k_priority_queue.h
+++ b/src/core/hle/kernel/k_priority_queue.h
@@ -17,38 +17,32 @@ namespace Kernel {
 class KThread;
 
 template <typename T>
-concept KPriorityQueueAffinityMask = !
-std::is_reference_v<T>&& requires(T& t) {
-                             { t.GetAffinityMask() } -> Common::ConvertibleTo<u64>;
-                             { t.SetAffinityMask(0) };
+concept KPriorityQueueAffinityMask = !std::is_reference_v<T> && requires(T& t) {
+    { t.GetAffinityMask() } -> Common::ConvertibleTo<u64>;
+    { t.SetAffinityMask(0) };
 
-                             { t.GetAffinity(0) } -> std::same_as<bool>;
-                             { t.SetAffinity(0, false) };
-                             { t.SetAll() };
-                         };
+    { t.GetAffinity(0) } -> std::same_as<bool>;
+    { t.SetAffinity(0, false) };
+    { t.SetAll() };
+};
 
 template <typename T>
-concept KPriorityQueueMember = !
-std::is_reference_v<T>&& requires(T& t) {
-                             { typename T::QueueEntry() };
-                             { (typename T::QueueEntry()).Initialize() };
-                             { (typename T::QueueEntry()).SetPrev(std::addressof(t)) };
-                             { (typename T::QueueEntry()).SetNext(std::addressof(t)) };
-                             { (typename T::QueueEntry()).GetNext() } -> std::same_as<T*>;
-                             { (typename T::QueueEntry()).GetPrev() } -> std::same_as<T*>;
-                             {
-                                 t.GetPriorityQueueEntry(0)
-                                 } -> std::same_as<typename T::QueueEntry&>;
+concept KPriorityQueueMember = !std::is_reference_v<T> && requires(T& t) {
+    { typename T::QueueEntry() };
+    { (typename T::QueueEntry()).Initialize() };
+    { (typename T::QueueEntry()).SetPrev(std::addressof(t)) };
+    { (typename T::QueueEntry()).SetNext(std::addressof(t)) };
+    { (typename T::QueueEntry()).GetNext() } -> std::same_as<T*>;
+    { (typename T::QueueEntry()).GetPrev() } -> std::same_as<T*>;
+    { t.GetPriorityQueueEntry(0) } -> std::same_as<typename T::QueueEntry&>;
 
-                             { t.GetAffinityMask() };
-                             {
-                                 std::remove_cvref_t<decltype(t.GetAffinityMask())>()
-                                 } -> KPriorityQueueAffinityMask;
+    { t.GetAffinityMask() };
+    { std::remove_cvref_t<decltype(t.GetAffinityMask())>() } -> KPriorityQueueAffinityMask;
 
-                             { t.GetActiveCore() } -> Common::ConvertibleTo<s32>;
-                             { t.GetPriority() } -> Common::ConvertibleTo<s32>;
-                             { t.IsDummyThread() } -> Common::ConvertibleTo<bool>;
-                         };
+    { t.GetActiveCore() } -> Common::ConvertibleTo<s32>;
+    { t.GetPriority() } -> Common::ConvertibleTo<s32>;
+    { t.IsDummyThread() } -> Common::ConvertibleTo<bool>;
+};
 
 template <typename Member, size_t NumCores_, int LowestPriority, int HighestPriority>
     requires KPriorityQueueMember<Member>
diff --git a/src/core/hle/kernel/k_scoped_lock.h b/src/core/hle/kernel/k_scoped_lock.h
index 629a7d20dd..bc9830b4da 100644
--- a/src/core/hle/kernel/k_scoped_lock.h
+++ b/src/core/hle/kernel/k_scoped_lock.h
@@ -10,11 +10,10 @@
 namespace Kernel {
 
 template <typename T>
-concept KLockable = !
-std::is_reference_v<T>&& requires(T& t) {
-                             { t.Lock() } -> std::same_as<void>;
-                             { t.Unlock() } -> std::same_as<void>;
-                         };
+concept KLockable = !std::is_reference_v<T> && requires(T& t) {
+    { t.Lock() } -> std::same_as<void>;
+    { t.Unlock() } -> std::same_as<void>;
+};
 
 template <typename T>
     requires KLockable<T>
diff --git a/src/core/hle/result.h b/src/core/hle/result.h
index 9a7c10efae..7016a5ecea 100644
--- a/src/core/hle/result.h
+++ b/src/core/hle/result.h
@@ -458,9 +458,13 @@ constexpr inline Result __TmpCurrentResultReference = ResultSuccess;
         if (true)
 
 #define R_CONVERT(catch_type, convert_type)                                                        \
-    R_CATCH(catch_type) { R_THROW(static_cast<Result>(convert_type)); }
+    R_CATCH(catch_type) {                                                                          \
+        R_THROW(static_cast<Result>(convert_type));                                                \
+    }
 
 #define R_CONVERT_ALL(convert_type)                                                                \
-    R_CATCH_ALL() { R_THROW(static_cast<Result>(convert_type)); }
+    R_CATCH_ALL() {                                                                                \
+        R_THROW(static_cast<Result>(convert_type));                                                \
+    }
 
 #define R_ASSERT(res_expr) ASSERT(R_SUCCEEDED(res_expr))
diff --git a/src/core/hle/service/acc/acc.cpp b/src/core/hle/service/acc/acc.cpp
index 099fdbc368..4f176e4f8a 100644
--- a/src/core/hle/service/acc/acc.cpp
+++ b/src/core/hle/service/acc/acc.cpp
@@ -1028,8 +1028,8 @@ void Module::Interface::TrySelectUserWithoutInteraction(HLERequestContext& ctx)
 Module::Interface::Interface(std::shared_ptr<Module> module_,
                              std::shared_ptr<ProfileManager> profile_manager_,
                              Core::System& system_, const char* name)
-    : ServiceFramework{system_, name}, module{std::move(module_)}, profile_manager{std::move(
-                                                                       profile_manager_)} {}
+    : ServiceFramework{system_, name}, module{std::move(module_)},
+      profile_manager{std::move(profile_manager_)} {}
 
 Module::Interface::~Interface() = default;
 
diff --git a/src/core/hle/service/am/frontend/applet_cabinet.cpp b/src/core/hle/service/am/frontend/applet_cabinet.cpp
index 4cbc80d639..2fb9a83531 100644
--- a/src/core/hle/service/am/frontend/applet_cabinet.cpp
+++ b/src/core/hle/service/am/frontend/applet_cabinet.cpp
@@ -18,9 +18,8 @@ namespace Service::AM::Frontend {
 
 Cabinet::Cabinet(Core::System& system_, std::shared_ptr<Applet> applet_,
                  LibraryAppletMode applet_mode_, const Core::Frontend::CabinetApplet& frontend_)
-    : FrontendApplet{system_, applet_, applet_mode_}, frontend{frontend_}, service_context{
-                                                                               system_,
-                                                                               "CabinetApplet"} {
+    : FrontendApplet{system_, applet_, applet_mode_}, frontend{frontend_},
+      service_context{system_, "CabinetApplet"} {
 
     availability_change_event =
         service_context.CreateEvent("CabinetApplet:AvailabilityChangeEvent");
diff --git a/src/core/hle/service/am/service/application_proxy.cpp b/src/core/hle/service/am/service/application_proxy.cpp
index 6e1328fee7..633f2c2bbd 100644
--- a/src/core/hle/service/am/service/application_proxy.cpp
+++ b/src/core/hle/service/am/service/application_proxy.cpp
@@ -18,8 +18,8 @@ namespace Service::AM {
 
 IApplicationProxy::IApplicationProxy(Core::System& system_, std::shared_ptr<Applet> applet,
                                      Kernel::KProcess* process, WindowSystem& window_system)
-    : ServiceFramework{system_, "IApplicationProxy"},
-      m_window_system{window_system}, m_process{process}, m_applet{std::move(applet)} {
+    : ServiceFramework{system_, "IApplicationProxy"}, m_window_system{window_system},
+      m_process{process}, m_applet{std::move(applet)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&IApplicationProxy::GetCommonStateGetter>, "GetCommonStateGetter"},
diff --git a/src/core/hle/service/am/service/library_applet_creator.cpp b/src/core/hle/service/am/service/library_applet_creator.cpp
index 3ffb03bc97..d61aa42516 100644
--- a/src/core/hle/service/am/service/library_applet_creator.cpp
+++ b/src/core/hle/service/am/service/library_applet_creator.cpp
@@ -165,8 +165,8 @@ std::shared_ptr<ILibraryAppletAccessor> CreateFrontendApplet(Core::System& syste
 
 ILibraryAppletCreator::ILibraryAppletCreator(Core::System& system_, std::shared_ptr<Applet> applet,
                                              WindowSystem& window_system)
-    : ServiceFramework{system_, "ILibraryAppletCreator"},
-      m_window_system{window_system}, m_applet{std::move(applet)} {
+    : ServiceFramework{system_, "ILibraryAppletCreator"}, m_window_system{window_system},
+      m_applet{std::move(applet)} {
     static const FunctionInfo functions[] = {
         {0, D<&ILibraryAppletCreator::CreateLibraryApplet>, "CreateLibraryApplet"},
         {1, nullptr, "TerminateAllLibraryApplets"},
diff --git a/src/core/hle/service/am/service/library_applet_proxy.cpp b/src/core/hle/service/am/service/library_applet_proxy.cpp
index f9cfb82a90..655dd69b29 100644
--- a/src/core/hle/service/am/service/library_applet_proxy.cpp
+++ b/src/core/hle/service/am/service/library_applet_proxy.cpp
@@ -20,8 +20,8 @@ namespace Service::AM {
 
 ILibraryAppletProxy::ILibraryAppletProxy(Core::System& system_, std::shared_ptr<Applet> applet,
                                          Kernel::KProcess* process, WindowSystem& window_system)
-    : ServiceFramework{system_, "ILibraryAppletProxy"},
-      m_window_system{window_system}, m_process{process}, m_applet{std::move(applet)} {
+    : ServiceFramework{system_, "ILibraryAppletProxy"}, m_window_system{window_system},
+      m_process{process}, m_applet{std::move(applet)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&ILibraryAppletProxy::GetCommonStateGetter>, "GetCommonStateGetter"},
diff --git a/src/core/hle/service/am/service/self_controller.cpp b/src/core/hle/service/am/service/self_controller.cpp
index e2b17099a3..52efda973d 100644
--- a/src/core/hle/service/am/service/self_controller.cpp
+++ b/src/core/hle/service/am/service/self_controller.cpp
@@ -16,8 +16,8 @@ namespace Service::AM {
 
 ISelfController::ISelfController(Core::System& system_, std::shared_ptr<Applet> applet,
                                  Kernel::KProcess* process)
-    : ServiceFramework{system_, "ISelfController"}, m_process{process}, m_applet{
-                                                                            std::move(applet)} {
+    : ServiceFramework{system_, "ISelfController"}, m_process{process},
+      m_applet{std::move(applet)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&ISelfController::Exit>, "Exit"},
diff --git a/src/core/hle/service/am/service/system_applet_proxy.cpp b/src/core/hle/service/am/service/system_applet_proxy.cpp
index c435288a26..609c4aad3e 100644
--- a/src/core/hle/service/am/service/system_applet_proxy.cpp
+++ b/src/core/hle/service/am/service/system_applet_proxy.cpp
@@ -20,8 +20,8 @@ namespace Service::AM {
 
 ISystemAppletProxy::ISystemAppletProxy(Core::System& system_, std::shared_ptr<Applet> applet,
                                        Kernel::KProcess* process, WindowSystem& window_system)
-    : ServiceFramework{system_, "ISystemAppletProxy"},
-      m_window_system{window_system}, m_process{process}, m_applet{std::move(applet)} {
+    : ServiceFramework{system_, "ISystemAppletProxy"}, m_window_system{window_system},
+      m_process{process}, m_applet{std::move(applet)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&ISystemAppletProxy::GetCommonStateGetter>, "GetCommonStateGetter"},
diff --git a/src/core/hle/service/am/service/window_controller.cpp b/src/core/hle/service/am/service/window_controller.cpp
index 54396affbe..6b1759f037 100644
--- a/src/core/hle/service/am/service/window_controller.cpp
+++ b/src/core/hle/service/am/service/window_controller.cpp
@@ -11,8 +11,8 @@ namespace Service::AM {
 
 IWindowController::IWindowController(Core::System& system_, std::shared_ptr<Applet> applet,
                                      WindowSystem& window_system)
-    : ServiceFramework{system_, "IWindowController"},
-      m_window_system{window_system}, m_applet{std::move(applet)} {
+    : ServiceFramework{system_, "IWindowController"}, m_window_system{window_system},
+      m_applet{std::move(applet)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, nullptr, "CreateWindow"},
diff --git a/src/core/hle/service/aoc/purchase_event_manager.cpp b/src/core/hle/service/aoc/purchase_event_manager.cpp
index 9e718510b4..1192263f8a 100644
--- a/src/core/hle/service/aoc/purchase_event_manager.cpp
+++ b/src/core/hle/service/aoc/purchase_event_manager.cpp
@@ -9,8 +9,8 @@ namespace Service::AOC {
 constexpr Result ResultNoPurchasedProductInfoAvailable{ErrorModule::NIMShop, 400};
 
 IPurchaseEventManager::IPurchaseEventManager(Core::System& system_)
-    : ServiceFramework{system_, "IPurchaseEventManager"}, service_context{system,
-                                                                          "IPurchaseEventManager"} {
+    : ServiceFramework{system_, "IPurchaseEventManager"},
+      service_context{system, "IPurchaseEventManager"} {
     // clang-format off
         static const FunctionInfo functions[] = {
             {0, D<&IPurchaseEventManager::SetDefaultDeliveryTarget>, "SetDefaultDeliveryTarget"},
diff --git a/src/core/hle/service/audio/audio_in.cpp b/src/core/hle/service/audio/audio_in.cpp
index 416803acc3..9240cc3363 100644
--- a/src/core/hle/service/audio/audio_in.cpp
+++ b/src/core/hle/service/audio/audio_in.cpp
@@ -12,9 +12,8 @@ IAudioIn::IAudioIn(Core::System& system_, Manager& manager, size_t session_id,
                    const std::string& device_name, const AudioInParameter& in_params,
                    Kernel::KProcess* handle, u64 applet_resource_user_id)
     : ServiceFramework{system_, "IAudioIn"}, process{handle}, service_context{system_, "IAudioIn"},
-      event{service_context.CreateEvent("AudioInEvent")}, impl{std::make_shared<In>(system_,
-                                                                                    manager, event,
-                                                                                    session_id)} {
+      event{service_context.CreateEvent("AudioInEvent")},
+      impl{std::make_shared<In>(system_, manager, event, session_id)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&IAudioIn::GetAudioInState>, "GetAudioInState"},
diff --git a/src/core/hle/service/audio/audio_in_manager.cpp b/src/core/hle/service/audio/audio_in_manager.cpp
index 2675a57735..d55da17c84 100644
--- a/src/core/hle/service/audio/audio_in_manager.cpp
+++ b/src/core/hle/service/audio/audio_in_manager.cpp
@@ -10,8 +10,8 @@ namespace Service::Audio {
 using namespace AudioCore::AudioIn;
 
 IAudioInManager::IAudioInManager(Core::System& system_)
-    : ServiceFramework{system_, "audin:u"}, impl{std::make_unique<AudioCore::AudioIn::Manager>(
-                                                system_)} {
+    : ServiceFramework{system_, "audin:u"},
+      impl{std::make_unique<AudioCore::AudioIn::Manager>(system_)} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&IAudioInManager::ListAudioIns>, "ListAudioIns"},
diff --git a/src/core/hle/service/audio/audio_renderer.cpp b/src/core/hle/service/audio/audio_renderer.cpp
index fc4aad2339..b78660cea6 100644
--- a/src/core/hle/service/audio/audio_renderer.cpp
+++ b/src/core/hle/service/audio/audio_renderer.cpp
@@ -14,8 +14,8 @@ IAudioRenderer::IAudioRenderer(Core::System& system_, Manager& manager_,
                                s32 session_id)
     : ServiceFramework{system_, "IAudioRenderer"}, service_context{system_, "IAudioRenderer"},
       rendered_event{service_context.CreateEvent("IAudioRendererEvent")}, manager{manager_},
-      impl{std::make_unique<Renderer>(system_, manager, rendered_event)}, process_handle{
-                                                                              process_handle_} {
+      impl{std::make_unique<Renderer>(system_, manager, rendered_event)},
+      process_handle{process_handle_} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&IAudioRenderer::GetSampleRate>, "GetSampleRate"},
diff --git a/src/core/hle/service/bcat/news/newly_arrived_event_holder.cpp b/src/core/hle/service/bcat/news/newly_arrived_event_holder.cpp
index ed393f7a26..8d64bd697a 100644
--- a/src/core/hle/service/bcat/news/newly_arrived_event_holder.cpp
+++ b/src/core/hle/service/bcat/news/newly_arrived_event_holder.cpp
@@ -7,9 +7,8 @@
 namespace Service::News {
 
 INewlyArrivedEventHolder::INewlyArrivedEventHolder(Core::System& system_)
-    : ServiceFramework{system_, "INewlyArrivedEventHolder"}, service_context{
-                                                                 system_,
-                                                                 "INewlyArrivedEventHolder"} {
+    : ServiceFramework{system_, "INewlyArrivedEventHolder"},
+      service_context{system_, "INewlyArrivedEventHolder"} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&INewlyArrivedEventHolder::Get>, "Get"},
diff --git a/src/core/hle/service/bcat/news/overwrite_event_holder.cpp b/src/core/hle/service/bcat/news/overwrite_event_holder.cpp
index 1712971e4d..33ea7c8951 100644
--- a/src/core/hle/service/bcat/news/overwrite_event_holder.cpp
+++ b/src/core/hle/service/bcat/news/overwrite_event_holder.cpp
@@ -7,8 +7,8 @@
 namespace Service::News {
 
 IOverwriteEventHolder::IOverwriteEventHolder(Core::System& system_)
-    : ServiceFramework{system_, "IOverwriteEventHolder"}, service_context{system_,
-                                                                          "IOverwriteEventHolder"} {
+    : ServiceFramework{system_, "IOverwriteEventHolder"},
+      service_context{system_, "IOverwriteEventHolder"} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&IOverwriteEventHolder::Get>, "Get"},
diff --git a/src/core/hle/service/filesystem/fsp/fs_i_filesystem.cpp b/src/core/hle/service/filesystem/fsp/fs_i_filesystem.cpp
index d881e144d3..de7b550544 100644
--- a/src/core/hle/service/filesystem/fsp/fs_i_filesystem.cpp
+++ b/src/core/hle/service/filesystem/fsp/fs_i_filesystem.cpp
@@ -11,8 +11,8 @@
 namespace Service::FileSystem {
 
 IFileSystem::IFileSystem(Core::System& system_, FileSys::VirtualDir dir_, SizeGetter size_getter_)
-    : ServiceFramework{system_, "IFileSystem"}, backend{std::make_unique<FileSys::Fsa::IFileSystem>(
-                                                    dir_)},
+    : ServiceFramework{system_, "IFileSystem"},
+      backend{std::make_unique<FileSys::Fsa::IFileSystem>(dir_)},
       size_getter{std::move(size_getter_)} {
     static const FunctionInfo functions[] = {
         {0, D<&IFileSystem::CreateFile>, "CreateFile"},
diff --git a/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.cpp b/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.cpp
index ff823586b3..9a603e89a2 100644
--- a/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.cpp
+++ b/src/core/hle/service/filesystem/fsp/fs_i_save_data_info_reader.cpp
@@ -12,8 +12,8 @@ namespace Service::FileSystem {
 ISaveDataInfoReader::ISaveDataInfoReader(Core::System& system_,
                                          std::shared_ptr<SaveDataController> save_data_controller_,
                                          FileSys::SaveDataSpaceId space)
-    : ServiceFramework{system_, "ISaveDataInfoReader"}, save_data_controller{
-                                                            save_data_controller_} {
+    : ServiceFramework{system_, "ISaveDataInfoReader"},
+      save_data_controller{save_data_controller_} {
     static const FunctionInfo functions[] = {
         {0, D<&ISaveDataInfoReader::ReadSaveDataInfo>, "ReadSaveDataInfo"},
     };
diff --git a/src/core/hle/service/glue/time/alarm_worker.cpp b/src/core/hle/service/glue/time/alarm_worker.cpp
index 3ff071f4a0..21ace76936 100644
--- a/src/core/hle/service/glue/time/alarm_worker.cpp
+++ b/src/core/hle/service/glue/time/alarm_worker.cpp
@@ -11,8 +11,8 @@
 namespace Service::Glue::Time {
 
 AlarmWorker::AlarmWorker(Core::System& system, StandardSteadyClockResource& steady_clock_resource)
-    : m_system{system}, m_ctx{system, "Glue:AlarmWorker"}, m_steady_clock_resource{
-                                                               steady_clock_resource} {}
+    : m_system{system}, m_ctx{system, "Glue:AlarmWorker"},
+      m_steady_clock_resource{steady_clock_resource} {}
 
 AlarmWorker::~AlarmWorker() {
     m_system.CoreTiming().UnscheduleEvent(m_timer_timing_event);
diff --git a/src/core/hle/service/glue/time/manager.cpp b/src/core/hle/service/glue/time/manager.cpp
index 77bf8896cd..c1faf8eaab 100644
--- a/src/core/hle/service/glue/time/manager.cpp
+++ b/src/core/hle/service/glue/time/manager.cpp
@@ -87,10 +87,8 @@ static Service::PSC::Time::LocationName GetTimeZoneString(
 }
 
 TimeManager::TimeManager(Core::System& system)
-    : m_steady_clock_resource{system}, m_time_zone_binary{system}, m_worker{
-                                                                       system,
-                                                                       m_steady_clock_resource,
-                                                                       m_file_timestamp_worker} {
+    : m_steady_clock_resource{system}, m_time_zone_binary{system},
+      m_worker{system, m_steady_clock_resource, m_file_timestamp_worker} {
     m_time_m =
         system.ServiceManager().GetService<Service::PSC::Time::ServiceManager>("time:m", true);
 
diff --git a/src/core/hle/service/glue/time/time_zone.cpp b/src/core/hle/service/glue/time/time_zone.cpp
index b2e8159653..a89df753a4 100644
--- a/src/core/hle/service/glue/time/time_zone.cpp
+++ b/src/core/hle/service/glue/time/time_zone.cpp
@@ -22,9 +22,9 @@ TimeZoneService::TimeZoneService(
     std::shared_ptr<Service::PSC::Time::TimeZoneService> time_zone_service)
     : ServiceFramework{system_, "ITimeZoneService"}, m_system{system},
       m_can_write_timezone_device_location{can_write_timezone_device_location},
-      m_file_timestamp_worker{file_timestamp_worker}, m_wrapped_service{std::move(
-                                                          time_zone_service)},
-      m_operation_event{m_system}, m_time_zone_binary{time_zone_binary} {
+      m_file_timestamp_worker{file_timestamp_worker},
+      m_wrapped_service{std::move(time_zone_service)}, m_operation_event{m_system},
+      m_time_zone_binary{time_zone_binary} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0,   D<&TimeZoneService::GetDeviceLocationName>, "GetDeviceLocationName"},
diff --git a/src/core/hle/service/glue/time/worker.cpp b/src/core/hle/service/glue/time/worker.cpp
index 1dab3e9dcb..90cfe0a973 100644
--- a/src/core/hle/service/glue/time/worker.cpp
+++ b/src/core/hle/service/glue/time/worker.cpp
@@ -19,11 +19,11 @@ namespace Service::Glue::Time {
 
 TimeWorker::TimeWorker(Core::System& system, StandardSteadyClockResource& steady_clock_resource,
                        FileTimestampWorker& file_timestamp_worker)
-    : m_system{system}, m_ctx{m_system, "Glue:TimeWorker"}, m_event{m_ctx.CreateEvent(
-                                                                "Glue:TimeWorker:Event")},
+    : m_system{system}, m_ctx{m_system, "Glue:TimeWorker"},
+      m_event{m_ctx.CreateEvent("Glue:TimeWorker:Event")},
       m_steady_clock_resource{steady_clock_resource},
-      m_file_timestamp_worker{file_timestamp_worker}, m_timer_steady_clock{m_ctx.CreateEvent(
-                                                          "Glue:TimeWorker:SteadyClockTimerEvent")},
+      m_file_timestamp_worker{file_timestamp_worker},
+      m_timer_steady_clock{m_ctx.CreateEvent("Glue:TimeWorker:SteadyClockTimerEvent")},
       m_timer_file_system{m_ctx.CreateEvent("Glue:TimeWorker:FileTimeTimerEvent")},
       m_alarm_worker{m_system, m_steady_clock_resource}, m_pm_state_change_handler{m_alarm_worker} {
     m_timer_steady_clock_timing_event = Core::Timing::CreateEvent(
diff --git a/src/core/hle/service/hid/hid_debug_server.cpp b/src/core/hle/service/hid/hid_debug_server.cpp
index 4e26636725..debc9b4910 100644
--- a/src/core/hle/service/hid/hid_debug_server.cpp
+++ b/src/core/hle/service/hid/hid_debug_server.cpp
@@ -17,8 +17,8 @@ namespace Service::HID {
 
 IHidDebugServer::IHidDebugServer(Core::System& system_, std::shared_ptr<ResourceManager> resource,
                                  std::shared_ptr<HidFirmwareSettings> settings)
-    : ServiceFramework{system_, "hid:dbg"}, resource_manager{resource}, firmware_settings{
-                                                                            settings} {
+    : ServiceFramework{system_, "hid:dbg"}, resource_manager{resource},
+      firmware_settings{settings} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, nullptr, "DeactivateDebugPad"},
diff --git a/src/core/hle/service/ipc_helpers.h b/src/core/hle/service/ipc_helpers.h
index 4b02872fba..97b46d5889 100644
--- a/src/core/hle/service/ipc_helpers.h
+++ b/src/core/hle/service/ipc_helpers.h
@@ -72,8 +72,8 @@ public:
                              u32 num_handles_to_copy_ = 0, u32 num_objects_to_move_ = 0,
                              Flags flags = Flags::None)
         : RequestHelperBase(ctx), normal_params_size(normal_params_size_),
-          num_handles_to_copy(num_handles_to_copy_),
-          num_objects_to_move(num_objects_to_move_), kernel{ctx.kernel} {
+          num_handles_to_copy(num_handles_to_copy_), num_objects_to_move(num_objects_to_move_),
+          kernel{ctx.kernel} {
 
         memset(cmdbuf, 0, sizeof(u32) * IPC::COMMAND_BUFFER_LENGTH);
 
diff --git a/src/core/hle/service/jit/jit_context.cpp b/src/core/hle/service/jit/jit_context.cpp
index 0090e8568d..8df63f9e26 100644
--- a/src/core/hle/service/jit/jit_context.cpp
+++ b/src/core/hle/service/jit/jit_context.cpp
@@ -40,8 +40,8 @@ class DynarmicCallbacks64 : public Dynarmic::A64::UserCallbacks {
 public:
     explicit DynarmicCallbacks64(Core::Memory::Memory& memory_, std::vector<u8>& local_memory_,
                                  IntervalSet& mapped_ranges_, JITContextImpl& parent_)
-        : memory{memory_}, local_memory{local_memory_},
-          mapped_ranges{mapped_ranges_}, parent{parent_} {}
+        : memory{memory_}, local_memory{local_memory_}, mapped_ranges{mapped_ranges_},
+          parent{parent_} {}
 
     u8 MemoryRead8(u64 vaddr) override {
         return ReadMemory<u8>(vaddr);
diff --git a/src/core/hle/service/mii/mii.cpp b/src/core/hle/service/mii/mii.cpp
index adaaea571a..5232bcd050 100644
--- a/src/core/hle/service/mii/mii.cpp
+++ b/src/core/hle/service/mii/mii.cpp
@@ -23,8 +23,8 @@ class IDatabaseService final : public ServiceFramework<IDatabaseService> {
 public:
     explicit IDatabaseService(Core::System& system_, std::shared_ptr<MiiManager> mii_manager,
                               bool is_system_)
-        : ServiceFramework{system_, "IDatabaseService"}, manager{mii_manager}, is_system{
-                                                                                   is_system_} {
+        : ServiceFramework{system_, "IDatabaseService"}, manager{mii_manager},
+          is_system{is_system_} {
         // clang-format off
         static const FunctionInfo functions[] = {
             {0, D<&IDatabaseService::IsUpdated>, "IsUpdated"},
diff --git a/src/core/hle/service/psc/time/alarms.cpp b/src/core/hle/service/psc/time/alarms.cpp
index 5e52c19f82..64af6db573 100644
--- a/src/core/hle/service/psc/time/alarms.cpp
+++ b/src/core/hle/service/psc/time/alarms.cpp
@@ -30,8 +30,8 @@ Alarm::~Alarm() {
 Alarms::Alarms(Core::System& system, StandardSteadyClockCore& steady_clock,
                PowerStateRequestManager& power_state_request_manager)
     : m_system{system}, m_ctx{system, "Psc:Alarms"}, m_steady_clock{steady_clock},
-      m_power_state_request_manager{power_state_request_manager}, m_event{m_ctx.CreateEvent(
-                                                                      "Psc:Alarms:Event")} {}
+      m_power_state_request_manager{power_state_request_manager},
+      m_event{m_ctx.CreateEvent("Psc:Alarms:Event")} {}
 
 Alarms::~Alarms() {
     m_ctx.CloseEvent(m_event);
diff --git a/src/core/hle/service/psc/time/clocks/standard_user_system_clock_core.cpp b/src/core/hle/service/psc/time/clocks/standard_user_system_clock_core.cpp
index 31ed273966..aa5b4c33c2 100644
--- a/src/core/hle/service/psc/time/clocks/standard_user_system_clock_core.cpp
+++ b/src/core/hle/service/psc/time/clocks/standard_user_system_clock_core.cpp
@@ -11,8 +11,8 @@ StandardUserSystemClockCore::StandardUserSystemClockCore(
     StandardNetworkSystemClockCore& network_clock)
     : SystemClockCore{local_clock.GetSteadyClock()}, m_system{system},
       m_ctx{m_system, "Psc:StandardUserSystemClockCore"}, m_local_system_clock{local_clock},
-      m_network_system_clock{network_clock}, m_event{m_ctx.CreateEvent(
-                                                 "Psc:StandardUserSystemClockCore:Event")} {}
+      m_network_system_clock{network_clock},
+      m_event{m_ctx.CreateEvent("Psc:StandardUserSystemClockCore:Event")} {}
 
 StandardUserSystemClockCore::~StandardUserSystemClockCore() {
     m_ctx.CloseEvent(m_event);
diff --git a/src/core/hle/service/psc/time/common.cpp b/src/core/hle/service/psc/time/common.cpp
index a6d9f02ca3..1728c84499 100644
--- a/src/core/hle/service/psc/time/common.cpp
+++ b/src/core/hle/service/psc/time/common.cpp
@@ -6,8 +6,8 @@
 
 namespace Service::PSC::Time {
 OperationEvent::OperationEvent(Core::System& system)
-    : m_ctx{system, "Time:OperationEvent"}, m_event{
-                                                m_ctx.CreateEvent("Time:OperationEvent:Event")} {}
+    : m_ctx{system, "Time:OperationEvent"},
+      m_event{m_ctx.CreateEvent("Time:OperationEvent:Event")} {}
 
 OperationEvent::~OperationEvent() {
     m_ctx.CloseEvent(m_event);
diff --git a/src/core/hle/service/psc/time/manager.h b/src/core/hle/service/psc/time/manager.h
index 62ded12475..57c682c690 100644
--- a/src/core/hle/service/psc/time/manager.h
+++ b/src/core/hle/service/psc/time/manager.h
@@ -29,8 +29,8 @@ public:
           m_standard_user_system_clock{m_system, m_standard_local_system_clock,
                                        m_standard_network_system_clock},
           m_ephemeral_network_clock{m_tick_based_steady_clock}, m_shared_memory{m_system},
-          m_power_state_request_manager{m_system}, m_alarms{m_system, m_standard_steady_clock,
-                                                            m_power_state_request_manager},
+          m_power_state_request_manager{m_system},
+          m_alarms{m_system, m_standard_steady_clock, m_power_state_request_manager},
           m_local_system_clock_context_writer{m_system, m_shared_memory},
           m_network_system_clock_context_writer{m_system, m_shared_memory,
                                                 m_standard_user_system_clock},
diff --git a/src/core/hle/service/psc/time/power_state_service.cpp b/src/core/hle/service/psc/time/power_state_service.cpp
index ab1d32c703..6fe03dc2e8 100644
--- a/src/core/hle/service/psc/time/power_state_service.cpp
+++ b/src/core/hle/service/psc/time/power_state_service.cpp
@@ -8,8 +8,8 @@ namespace Service::PSC::Time {
 
 IPowerStateRequestHandler::IPowerStateRequestHandler(
     Core::System& system_, PowerStateRequestManager& power_state_request_manager)
-    : ServiceFramework{system_, "time:p"}, m_system{system}, m_power_state_request_manager{
-                                                                 power_state_request_manager} {
+    : ServiceFramework{system_, "time:p"}, m_system{system},
+      m_power_state_request_manager{power_state_request_manager} {
     // clang-format off
         static const FunctionInfo functions[] = {
             {0, D<&IPowerStateRequestHandler::GetPowerStateRequestEventReadableHandle>, "GetPowerStateRequestEventReadableHandle"},
diff --git a/src/core/hle/service/psc/time/static.cpp b/src/core/hle/service/psc/time/static.cpp
index 9a0adb2955..591849813e 100644
--- a/src/core/hle/service/psc/time/static.cpp
+++ b/src/core/hle/service/psc/time/static.cpp
@@ -37,8 +37,8 @@ StaticService::StaticService(Core::System& system_, StaticServiceSetupInfo setup
       m_user_system_clock{m_time->m_standard_user_system_clock},
       m_network_system_clock{m_time->m_standard_network_system_clock},
       m_time_zone{m_time->m_time_zone},
-      m_ephemeral_network_clock{m_time->m_ephemeral_network_clock}, m_shared_memory{
-                                                                        m_time->m_shared_memory} {
+      m_ephemeral_network_clock{m_time->m_ephemeral_network_clock},
+      m_shared_memory{m_time->m_shared_memory} {
     // clang-format off
         static const FunctionInfo functions[] = {
             {0,   D<&StaticService::GetStandardUserSystemClock>, "GetStandardUserSystemClock"},
diff --git a/src/core/hle/service/psc/time/steady_clock.cpp b/src/core/hle/service/psc/time/steady_clock.cpp
index 78dcf532ce..cb10024f2f 100644
--- a/src/core/hle/service/psc/time/steady_clock.cpp
+++ b/src/core/hle/service/psc/time/steady_clock.cpp
@@ -12,8 +12,8 @@ SteadyClock::SteadyClock(Core::System& system_, std::shared_ptr<TimeManager> man
                          bool can_write_steady_clock, bool can_write_uninitialized_clock)
     : ServiceFramework{system_, "ISteadyClock"}, m_system{system},
       m_clock_core{manager->m_standard_steady_clock},
-      m_can_write_steady_clock{can_write_steady_clock}, m_can_write_uninitialized_clock{
-                                                            can_write_uninitialized_clock} {
+      m_can_write_steady_clock{can_write_steady_clock},
+      m_can_write_uninitialized_clock{can_write_uninitialized_clock} {
     // clang-format off
          static const FunctionInfo functions[] = {
         {0, D<&SteadyClock::GetCurrentTimePoint>, "GetCurrentTimePoint"},
diff --git a/src/core/hle/service/psc/time/system_clock.cpp b/src/core/hle/service/psc/time/system_clock.cpp
index 9f841d8e04..ed9f098045 100644
--- a/src/core/hle/service/psc/time/system_clock.cpp
+++ b/src/core/hle/service/psc/time/system_clock.cpp
@@ -11,8 +11,8 @@ namespace Service::PSC::Time {
 SystemClock::SystemClock(Core::System& system_, SystemClockCore& clock_core, bool can_write_clock,
                          bool can_write_uninitialized_clock)
     : ServiceFramework{system_, "ISystemClock"}, m_system{system}, m_clock_core{clock_core},
-      m_can_write_clock{can_write_clock}, m_can_write_uninitialized_clock{
-                                              can_write_uninitialized_clock} {
+      m_can_write_clock{can_write_clock},
+      m_can_write_uninitialized_clock{can_write_uninitialized_clock} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0, D<&SystemClock::GetCurrentTime>, "GetCurrentTime"},
diff --git a/src/core/hle/service/psc/time/time_zone_service.cpp b/src/core/hle/service/psc/time/time_zone_service.cpp
index 9e0674f275..92e695a326 100644
--- a/src/core/hle/service/psc/time/time_zone_service.cpp
+++ b/src/core/hle/service/psc/time/time_zone_service.cpp
@@ -13,8 +13,8 @@ namespace Service::PSC::Time {
 TimeZoneService::TimeZoneService(Core::System& system_, StandardSteadyClockCore& clock_core,
                                  TimeZone& time_zone, bool can_write_timezone_device_location)
     : ServiceFramework{system_, "ITimeZoneService"}, m_system{system}, m_clock_core{clock_core},
-      m_time_zone{time_zone}, m_can_write_timezone_device_location{
-                                  can_write_timezone_device_location} {
+      m_time_zone{time_zone},
+      m_can_write_timezone_device_location{can_write_timezone_device_location} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {0,   D<&TimeZoneService::GetDeviceLocationName>, "GetDeviceLocationName"},
diff --git a/src/core/hle/service/sm/sm.cpp b/src/core/hle/service/sm/sm.cpp
index 1095dcf6c3..1373da17fa 100644
--- a/src/core/hle/service/sm/sm.cpp
+++ b/src/core/hle/service/sm/sm.cpp
@@ -251,8 +251,8 @@ void SM::UnregisterService(HLERequestContext& ctx) {
 }
 
 SM::SM(ServiceManager& service_manager_, Core::System& system_)
-    : ServiceFramework{system_, "sm:", 4},
-      service_manager{service_manager_}, kernel{system_.Kernel()} {
+    : ServiceFramework{system_, "sm:", 4}, service_manager{service_manager_},
+      kernel{system_.Kernel()} {
     RegisterHandlers({
         {0, &SM::Initialize, "Initialize"},
         {1, &SM::GetServiceCmif, "GetService"},
diff --git a/src/core/hle/service/vi/application_display_service.cpp b/src/core/hle/service/vi/application_display_service.cpp
index 6b0bcb5362..2cc38c24d3 100644
--- a/src/core/hle/service/vi/application_display_service.cpp
+++ b/src/core/hle/service/vi/application_display_service.cpp
@@ -15,8 +15,8 @@ namespace Service::VI {
 
 IApplicationDisplayService::IApplicationDisplayService(Core::System& system_,
                                                        std::shared_ptr<Container> container)
-    : ServiceFramework{system_, "IApplicationDisplayService"},
-      m_container{std::move(container)}, m_context{system, "IApplicationDisplayService"} {
+    : ServiceFramework{system_, "IApplicationDisplayService"}, m_container{std::move(container)},
+      m_context{system, "IApplicationDisplayService"} {
     // clang-format off
     static const FunctionInfo functions[] = {
         {100, C<&IApplicationDisplayService::GetRelayService>, "GetRelayService"},
diff --git a/src/core/memory/cheat_engine.cpp b/src/core/memory/cheat_engine.cpp
index d8921e5658..ae651631d6 100644
--- a/src/core/memory/cheat_engine.cpp
+++ b/src/core/memory/cheat_engine.cpp
@@ -218,8 +218,8 @@ std::vector<CheatEntry> TextCheatParser::Parse(std::string_view data) const {
 
 CheatEngine::CheatEngine(System& system_, std::vector<CheatEntry> cheats_,
                          const std::array<u8, 0x20>& build_id_)
-    : vm{std::make_unique<StandardVmCallbacks>(system_, metadata)},
-      cheats(std::move(cheats_)), core_timing{system_.CoreTiming()}, system{system_} {
+    : vm{std::make_unique<StandardVmCallbacks>(system_, metadata)}, cheats(std::move(cheats_)),
+      core_timing{system_.CoreTiming()}, system{system_} {
     metadata.main_nso_build_id = build_id_;
 }
 
diff --git a/src/core/telemetry_session.cpp b/src/core/telemetry_session.cpp
deleted file mode 100644
index 4097c421e1..0000000000
--- a/src/core/telemetry_session.cpp
+++ /dev/null
@@ -1,294 +0,0 @@
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project & 2024 suyu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <array>
-
-#include <mbedtls/ctr_drbg.h>
-#include <mbedtls/entropy.h>
-
-#include "common/assert.h"
-#include "common/common_types.h"
-#include "common/fs/file.h"
-#include "common/fs/fs.h"
-#include "common/fs/path_util.h"
-#include "common/logging/log.h"
-
-#include "common/settings.h"
-#include "common/settings_enums.h"
-#include "core/file_sys/control_metadata.h"
-#include "core/file_sys/patch_manager.h"
-#include "core/loader/loader.h"
-#include "core/telemetry_session.h"
-
-#ifdef ENABLE_WEB_SERVICE
-#include "web_service/telemetry_json.h"
-#include "web_service/verify_login.h"
-#endif
-
-namespace Core {
-
-namespace Telemetry = Common::Telemetry;
-
-static u64 GenerateTelemetryId() {
-    u64 telemetry_id{};
-
-    mbedtls_entropy_context entropy;
-    mbedtls_entropy_init(&entropy);
-    mbedtls_ctr_drbg_context ctr_drbg;
-    static constexpr std::array<char, 18> personalization{{"suyu Telemetry ID"}};
-
-    mbedtls_ctr_drbg_init(&ctr_drbg);
-    ASSERT(mbedtls_ctr_drbg_seed(&ctr_drbg, mbedtls_entropy_func, &entropy,
-                                 reinterpret_cast<const unsigned char*>(personalization.data()),
-                                 personalization.size()) == 0);
-    ASSERT(mbedtls_ctr_drbg_random(&ctr_drbg, reinterpret_cast<unsigned char*>(&telemetry_id),
-                                   sizeof(u64)) == 0);
-
-    mbedtls_ctr_drbg_free(&ctr_drbg);
-    mbedtls_entropy_free(&entropy);
-
-    return telemetry_id;
-}
-
-static const char* TranslateRenderer(Settings::RendererBackend backend) {
-    switch (backend) {
-    case Settings::RendererBackend::OpenGL:
-        return "OpenGL";
-    case Settings::RendererBackend::Vulkan:
-        return "Vulkan";
-    case Settings::RendererBackend::Null:
-        return "Null";
-    }
-    return "Unknown";
-}
-
-static const char* TranslateGPUAccuracyLevel(Settings::GpuAccuracy backend) {
-    switch (backend) {
-    case Settings::GpuAccuracy::Normal:
-        return "Normal";
-    case Settings::GpuAccuracy::High:
-        return "High";
-    case Settings::GpuAccuracy::Extreme:
-        return "Extreme";
-    }
-    return "Unknown";
-}
-
-static const char* TranslateNvdecEmulation(Settings::NvdecEmulation backend) {
-    switch (backend) {
-    case Settings::NvdecEmulation::Off:
-        return "Off";
-    case Settings::NvdecEmulation::Cpu:
-        return "CPU";
-    case Settings::NvdecEmulation::Gpu:
-        return "GPU";
-    }
-    return "Unknown";
-}
-
-static constexpr const char* TranslateVSyncMode(Settings::VSyncMode mode) {
-    switch (mode) {
-    case Settings::VSyncMode::Immediate:
-        return "Immediate";
-    case Settings::VSyncMode::Mailbox:
-        return "Mailbox";
-    case Settings::VSyncMode::Fifo:
-        return "FIFO";
-    case Settings::VSyncMode::FifoRelaxed:
-        return "FIFO Relaxed";
-    }
-    return "Unknown";
-}
-
-static constexpr const char* TranslateASTCDecodeMode(Settings::AstcDecodeMode mode) {
-    switch (mode) {
-    case Settings::AstcDecodeMode::Cpu:
-        return "CPU";
-    case Settings::AstcDecodeMode::Gpu:
-        return "GPU";
-    case Settings::AstcDecodeMode::CpuAsynchronous:
-        return "CPU Asynchronous";
-    }
-    return "Unknown";
-}
-
-u64 GetTelemetryId() {
-    u64 telemetry_id{};
-    const auto filename = Common::FS::GetSuyuPath(Common::FS::SuyuPath::ConfigDir) / "telemetry_id";
-
-    bool generate_new_id = !Common::FS::Exists(filename);
-
-    if (!generate_new_id) {
-        Common::FS::IOFile file{filename, Common::FS::FileAccessMode::Read,
-                                Common::FS::FileType::BinaryFile};
-
-        if (!file.IsOpen()) {
-            LOG_ERROR(Core, "failed to open telemetry_id: {}",
-                      Common::FS::PathToUTF8String(filename));
-            return {};
-        }
-
-        if (!file.ReadObject(telemetry_id) || telemetry_id == 0) {
-            LOG_ERROR(Frontend, "telemetry_id is 0. Generating a new one.", telemetry_id);
-            generate_new_id = true;
-        }
-    }
-
-    if (generate_new_id) {
-        Common::FS::IOFile file{filename, Common::FS::FileAccessMode::Write,
-                                Common::FS::FileType::BinaryFile};
-
-        if (!file.IsOpen()) {
-            LOG_ERROR(Core, "failed to open telemetry_id: {}",
-                      Common::FS::PathToUTF8String(filename));
-            return {};
-        }
-
-        telemetry_id = GenerateTelemetryId();
-
-        if (!file.WriteObject(telemetry_id)) {
-            LOG_ERROR(Core, "Failed to write telemetry_id to file.");
-        }
-    }
-
-    return telemetry_id;
-}
-
-u64 RegenerateTelemetryId() {
-    const u64 new_telemetry_id{GenerateTelemetryId()};
-    const auto filename = Common::FS::GetSuyuPath(Common::FS::SuyuPath::ConfigDir) / "telemetry_id";
-
-    Common::FS::IOFile file{filename, Common::FS::FileAccessMode::Write,
-                            Common::FS::FileType::BinaryFile};
-
-    if (!file.IsOpen()) {
-        LOG_ERROR(Core, "failed to open telemetry_id: {}", Common::FS::PathToUTF8String(filename));
-        return {};
-    }
-
-    if (!file.WriteObject(new_telemetry_id)) {
-        LOG_ERROR(Core, "Failed to write telemetry_id to file.");
-    }
-
-    return new_telemetry_id;
-}
-
-bool VerifyLogin(const std::string& username, const std::string& token) {
-#ifdef ENABLE_WEB_SERVICE
-    return WebService::VerifyLogin(Settings::values.web_api_url.GetValue(), username, token);
-#else
-    return false;
-#endif
-}
-
-TelemetrySession::TelemetrySession() = default;
-
-TelemetrySession::~TelemetrySession() {
-    // Log one-time session end information
-    const s64 shutdown_time{std::chrono::duration_cast<std::chrono::milliseconds>(
-                                std::chrono::system_clock::now().time_since_epoch())
-                                .count()};
-    AddField(Telemetry::FieldType::Session, "Shutdown_Time", shutdown_time);
-
-#ifdef ENABLE_WEB_SERVICE
-    auto backend = std::make_unique<WebService::TelemetryJson>(
-        Settings::values.web_api_url.GetValue(), Settings::values.suyu_username.GetValue(),
-        Settings::values.suyu_token.GetValue());
-#else
-    auto backend = std::make_unique<Telemetry::NullVisitor>();
-#endif
-
-    // Complete the session, submitting to the web service backend if necessary
-    field_collection.Accept(*backend);
-    if (Settings::values.enable_telemetry) {
-        backend->Complete();
-    }
-}
-
-void TelemetrySession::AddInitialInfo(Loader::AppLoader& app_loader,
-                                      const Service::FileSystem::FileSystemController& fsc,
-                                      const FileSys::ContentProvider& content_provider) {
-    // Log one-time top-level information
-    AddField(Telemetry::FieldType::None, "TelemetryId", GetTelemetryId());
-
-    // Log one-time session start information
-    const s64 init_time{std::chrono::duration_cast<std::chrono::milliseconds>(
-                            std::chrono::system_clock::now().time_since_epoch())
-                            .count()};
-    AddField(Telemetry::FieldType::Session, "Init_Time", init_time);
-
-    u64 program_id{};
-    const Loader::ResultStatus res{app_loader.ReadProgramId(program_id)};
-    if (res == Loader::ResultStatus::Success) {
-        const std::string formatted_program_id{fmt::format("{:016X}", program_id)};
-        AddField(Telemetry::FieldType::Session, "ProgramId", formatted_program_id);
-
-        std::string name;
-        app_loader.ReadTitle(name);
-
-        if (name.empty()) {
-            const auto metadata = [&content_provider, &fsc, program_id] {
-                const FileSys::PatchManager pm{program_id, fsc, content_provider};
-                return pm.GetControlMetadata();
-            }();
-            if (metadata.first != nullptr) {
-                name = metadata.first->GetApplicationName();
-            }
-        }
-
-        if (!name.empty()) {
-            AddField(Telemetry::FieldType::Session, "ProgramName", name);
-        }
-    }
-
-    AddField(Telemetry::FieldType::Session, "ProgramFormat",
-             static_cast<u8>(app_loader.GetFileType()));
-
-    // Log application information
-    Telemetry::AppendBuildInfo(field_collection);
-
-    // Log user system information
-    Telemetry::AppendCPUInfo(field_collection);
-    Telemetry::AppendOSInfo(field_collection);
-
-    // Log user configuration information
-    constexpr auto field_type = Telemetry::FieldType::UserConfig;
-    AddField(field_type, "Audio_SinkId",
-             Settings::CanonicalizeEnum(Settings::values.sink_id.GetValue()));
-    AddField(field_type, "Core_UseMultiCore", Settings::values.use_multi_core.GetValue());
-    AddField(field_type, "Renderer_Backend",
-             TranslateRenderer(Settings::values.renderer_backend.GetValue()));
-    AddField(field_type, "Renderer_UseSpeedLimit", Settings::values.use_speed_limit.GetValue());
-    AddField(field_type, "Renderer_SpeedLimit", Settings::values.speed_limit.GetValue());
-    AddField(field_type, "Renderer_UseDiskShaderCache",
-             Settings::values.use_disk_shader_cache.GetValue());
-    AddField(field_type, "Renderer_GPUAccuracyLevel",
-             TranslateGPUAccuracyLevel(Settings::values.gpu_accuracy.GetValue()));
-    AddField(field_type, "Renderer_UseAsynchronousGpuEmulation",
-             Settings::values.use_asynchronous_gpu_emulation.GetValue());
-    AddField(field_type, "Renderer_NvdecEmulation",
-             TranslateNvdecEmulation(Settings::values.nvdec_emulation.GetValue()));
-    AddField(field_type, "Renderer_AccelerateASTC",
-             TranslateASTCDecodeMode(Settings::values.accelerate_astc.GetValue()));
-    AddField(field_type, "Renderer_UseVsync",
-             TranslateVSyncMode(Settings::values.vsync_mode.GetValue()));
-    AddField(field_type, "Renderer_ShaderBackend",
-             static_cast<u32>(Settings::values.shader_backend.GetValue()));
-    AddField(field_type, "Renderer_UseAsynchronousShaders",
-             Settings::values.use_asynchronous_shaders.GetValue());
-    AddField(field_type, "System_UseDockedMode", Settings::IsDockedMode());
-}
-
-bool TelemetrySession::SubmitTestcase() {
-#ifdef ENABLE_WEB_SERVICE
-    auto backend = std::make_unique<WebService::TelemetryJson>(
-        Settings::values.web_api_url.GetValue(), Settings::values.suyu_username.GetValue(),
-        Settings::values.suyu_token.GetValue());
-    field_collection.Accept(*backend);
-    return backend->SubmitTestcase();
-#else
-    return false;
-#endif
-}
-
-} // namespace Core
diff --git a/src/core/telemetry_session.h b/src/core/telemetry_session.h
deleted file mode 100644
index 71437ba1de..0000000000
--- a/src/core/telemetry_session.h
+++ /dev/null
@@ -1,101 +0,0 @@
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <string>
-#include "common/telemetry.h"
-
-namespace FileSys {
-class ContentProvider;
-}
-
-namespace Loader {
-class AppLoader;
-}
-
-namespace Service::FileSystem {
-class FileSystemController;
-}
-
-namespace Core {
-
-/**
- * Instruments telemetry for this emulation session. Creates a new set of telemetry fields on each
- * session, logging any one-time fields. Interfaces with the telemetry backend used for submitting
- * data to the web service. Submits session data on close.
- */
-class TelemetrySession {
-public:
-    explicit TelemetrySession();
-    ~TelemetrySession();
-
-    TelemetrySession(const TelemetrySession&) = delete;
-    TelemetrySession& operator=(const TelemetrySession&) = delete;
-
-    TelemetrySession(TelemetrySession&&) = delete;
-    TelemetrySession& operator=(TelemetrySession&&) = delete;
-
-    /**
-     * Adds the initial telemetry info necessary when starting up a title.
-     *
-     * This includes information such as:
-     *   - Telemetry ID
-     *   - Initialization time
-     *   - Title ID
-     *   - Title name
-     *   - Title file format
-     *   - Miscellaneous settings values.
-     *
-     * @param app_loader       The application loader to use to retrieve
-     *                         title-specific information.
-     * @param fsc              Filesystem controller to use to retrieve info.
-     * @param content_provider Content provider to use to retrieve info.
-     */
-    void AddInitialInfo(Loader::AppLoader& app_loader,
-                        const Service::FileSystem::FileSystemController& fsc,
-                        const FileSys::ContentProvider& content_provider);
-
-    /**
-     * Wrapper around the Telemetry::FieldCollection::AddField method.
-     * @param type Type of the field to add.
-     * @param name Name of the field to add.
-     * @param value Value for the field to add.
-     */
-    template <typename T>
-    void AddField(Common::Telemetry::FieldType type, const char* name, T value) {
-        field_collection.AddField(type, name, std::move(value));
-    }
-
-    /**
-     * Submits a Testcase.
-     * @returns A bool indicating whether the submission succeeded
-     */
-    bool SubmitTestcase();
-
-private:
-    /// Tracks all added fields for the session
-    Common::Telemetry::FieldCollection field_collection;
-};
-
-/**
- * Gets TelemetryId, a unique identifier used for the user's telemetry sessions.
- * @returns The current TelemetryId for the session.
- */
-u64 GetTelemetryId();
-
-/**
- * Regenerates TelemetryId, a unique identifier used for the user's telemetry sessions.
- * @returns The new TelemetryId that was generated.
- */
-u64 RegenerateTelemetryId();
-
-/**
- * Verifies the username and token.
- * @param username suyu username to use for authentication.
- * @param token suyu token to use for authentication.
- * @returns Future with bool indicating whether the verification succeeded
- */
-bool VerifyLogin(const std::string& username, const std::string& token);
-
-} // namespace Core
diff --git a/src/input_common/input_poller.cpp b/src/input_common/input_poller.cpp
index 0cc0fecb34..f7e6986938 100644
--- a/src/input_common/input_poller.cpp
+++ b/src/input_common/input_poller.cpp
@@ -148,8 +148,8 @@ public:
                             Common::Input::AnalogProperties properties_y_,
                             InputEngine* input_engine_)
         : identifier(identifier_), axis_x(axis_x_), axis_y(axis_y_), properties_x(properties_x_),
-          properties_y(properties_y_),
-          input_engine(input_engine_), invert_axis_y{input_engine_->GetEngineName() == "sdl"} {
+          properties_y(properties_y_), input_engine(input_engine_),
+          invert_axis_y{input_engine_->GetEngineName() == "sdl"} {
         UpdateCallback engine_callback{[this]() { OnChange(); }};
         const InputIdentifier x_input_identifier{
             .identifier = identifier,
diff --git a/src/shader_recompiler/frontend/maxwell/control_flow.cpp b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
index dce414cb47..e0d6315754 100644
--- a/src/shader_recompiler/frontend/maxwell/control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/control_flow.cpp
@@ -186,8 +186,8 @@ Function::Function(ObjectPool<Block>& block_pool, Location start_address)
 
 CFG::CFG(Environment& env_, ObjectPool<Block>& block_pool_, Location start_address,
          bool exits_to_dispatcher_)
-    : env{env_}, block_pool{block_pool_}, program_start{start_address}, exits_to_dispatcher{
-                                                                            exits_to_dispatcher_} {
+    : env{env_}, block_pool{block_pool_}, program_start{start_address},
+      exits_to_dispatcher{exits_to_dispatcher_} {
     if (exits_to_dispatcher) {
         dispatch_block = block_pool.Create(Block{});
         dispatch_block->begin = {};
diff --git a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
index 80c90fe6ac..93538fa4cf 100644
--- a/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
+++ b/src/shader_recompiler/frontend/maxwell/structured_control_flow.cpp
@@ -112,8 +112,8 @@ struct Statement : ListBaseHook {
     Statement(SetVariable, u32 id_, Statement* op_, Statement* up_)
         : op{op_}, id{id_}, up{up_}, type{StatementType::SetVariable} {}
     Statement(SetIndirectBranchVariable, IR::Reg branch_reg_, s32 branch_offset_, Statement* up_)
-        : branch_offset{branch_offset_},
-          branch_reg{branch_reg_}, up{up_}, type{StatementType::SetIndirectBranchVariable} {}
+        : branch_offset{branch_offset_}, branch_reg{branch_reg_}, up{up_},
+          type{StatementType::SetIndirectBranchVariable} {}
     Statement(Variable, u32 id_, Statement* up_)
         : id{id_}, up{up_}, type{StatementType::Variable} {}
     Statement(IndirectBranchCond, u32 location_, Statement* up_)
diff --git a/src/suyu/applets/qt_web_browser.cpp b/src/suyu/applets/qt_web_browser.cpp
index a7d7a5ce65..7c06bb6104 100644
--- a/src/suyu/applets/qt_web_browser.cpp
+++ b/src/suyu/applets/qt_web_browser.cpp
@@ -54,8 +54,8 @@ QtNXWebEngineView::QtNXWebEngineView(QWidget* parent, Core::System& system,
     : QWebEngineView(parent), input_subsystem{input_subsystem_},
       url_interceptor(std::make_unique<UrlRequestInterceptor>()),
       input_interpreter(std::make_unique<InputInterpreter>(system)),
-      default_profile{QWebEngineProfile::defaultProfile()}, global_settings{
-                                                                default_profile->settings()} {
+      default_profile{QWebEngineProfile::defaultProfile()},
+      global_settings{default_profile->settings()} {
     default_profile->setPersistentStoragePath(QString::fromStdString(Common::FS::PathToUTF8String(
         Common::FS::GetSuyuPath(Common::FS::SuyuPath::SuyuDir) / "qtwebengine")));
 
diff --git a/src/suyu/bootmanager.cpp b/src/suyu/bootmanager.cpp
index 3c536e3072..470455692b 100644
--- a/src/suyu/bootmanager.cpp
+++ b/src/suyu/bootmanager.cpp
@@ -284,8 +284,8 @@ struct NullRenderWidget : public RenderWidget {
 GRenderWindow::GRenderWindow(GMainWindow* parent, EmuThread* emu_thread_,
                              std::shared_ptr<InputCommon::InputSubsystem> input_subsystem_,
                              Core::System& system_)
-    : QWidget(parent),
-      emu_thread(emu_thread_), input_subsystem{std::move(input_subsystem_)}, system{system_} {
+    : QWidget(parent), emu_thread(emu_thread_), input_subsystem{std::move(input_subsystem_)},
+      system{system_} {
     setWindowTitle(QStringLiteral("suyu %1 | %2-%3")
                        .arg(QString::fromUtf8(Common::g_build_name),
                             QString::fromUtf8(Common::g_scm_branch),
diff --git a/src/suyu/compatdb.cpp b/src/suyu/compatdb.cpp
index 8f63a4b555..eacc49ea58 100644
--- a/src/suyu/compatdb.cpp
+++ b/src/suyu/compatdb.cpp
@@ -6,14 +6,12 @@
 #include <QPushButton>
 #include <QtConcurrent/qtconcurrentrun.h>
 #include "common/logging/log.h"
-#include "common/telemetry.h"
-#include "core/telemetry_session.h"
 #include "suyu/compatdb.h"
 #include "ui_compatdb.h"
 
-CompatDB::CompatDB(Core::TelemetrySession& telemetry_session_, QWidget* parent)
+CompatDB::CompatDB(QWidget* parent)
     : QWizard(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint),
-      ui{std::make_unique<Ui::CompatDB>()}, telemetry_session{telemetry_session_} {
+      ui{std::make_unique<Ui::CompatDB>()} {
     ui->setupUi(this);
 
     connect(ui->radioButton_GameBoot_Yes, &QRadioButton::clicked, this, &CompatDB::EnableNext);
@@ -114,15 +112,10 @@ void CompatDB::Submit() {
     case CompatDBPage::Final:
         back();
         LOG_INFO(Frontend, "Compatibility Rating: {}", compatibility);
-        telemetry_session.AddField(Common::Telemetry::FieldType::UserFeedback, "Compatibility",
-                                   compatibility);
 
         button(NextButton)->setEnabled(false);
         button(NextButton)->setText(tr("Submitting"));
         button(CancelButton)->setVisible(false);
-
-        testcase_watcher.setFuture(
-            QtConcurrent::run([this] { return telemetry_session.SubmitTestcase(); }));
         break;
     default:
         LOG_ERROR(Frontend, "Unexpected page: {}", currentId());
diff --git a/src/suyu/compatdb.h b/src/suyu/compatdb.h
index 37e11278b9..4e788d09c4 100644
--- a/src/suyu/compatdb.h
+++ b/src/suyu/compatdb.h
@@ -6,7 +6,6 @@
 #include <memory>
 #include <QFutureWatcher>
 #include <QWizard>
-#include "core/telemetry_session.h"
 
 namespace Ui {
 class CompatDB;
@@ -25,7 +24,7 @@ class CompatDB : public QWizard {
     Q_OBJECT
 
 public:
-    explicit CompatDB(Core::TelemetrySession& telemetry_session_, QWidget* parent = nullptr);
+    explicit CompatDB(QWidget* parent = nullptr);
     ~CompatDB();
     int nextId() const override;
 
@@ -38,6 +37,4 @@ private:
     CompatibilityStatus CalculateCompatibility() const;
     void OnTestcaseSubmitted();
     void EnableNext();
-
-    Core::TelemetrySession& telemetry_session;
 };
diff --git a/src/suyu/configuration/configure_dialog.cpp b/src/suyu/configuration/configure_dialog.cpp
index 0d6ac9ad82..d81edaa3b2 100644
--- a/src/suyu/configuration/configure_dialog.cpp
+++ b/src/suyu/configuration/configure_dialog.cpp
@@ -32,9 +32,9 @@ ConfigureDialog::ConfigureDialog(QWidget* parent, HotkeyRegistry& registry_,
                                  InputCommon::InputSubsystem* input_subsystem,
                                  std::vector<VkDeviceInfo::Record>& vk_device_records,
                                  Core::System& system_, bool enable_web_config)
-    : QDialog(parent), ui{std::make_unique<Ui::ConfigureDialog>()},
-      registry(registry_), system{system_}, builder{std::make_unique<ConfigurationShared::Builder>(
-                                                this, !system_.IsPoweredOn())},
+    : QDialog(parent), ui{std::make_unique<Ui::ConfigureDialog>()}, registry(registry_),
+      system{system_},
+      builder{std::make_unique<ConfigurationShared::Builder>(this, !system_.IsPoweredOn())},
       applets_tab{std::make_unique<ConfigureApplets>(system_, nullptr, *builder, this)},
       audio_tab{std::make_unique<ConfigureAudio>(system_, nullptr, *builder, this)},
       cpu_tab{std::make_unique<ConfigureCpu>(system_, nullptr, *builder, this)},
diff --git a/src/suyu/configuration/configure_input_player.cpp b/src/suyu/configuration/configure_input_player.cpp
index 1fd176e987..ec0c09790e 100644
--- a/src/suyu/configuration/configure_input_player.cpp
+++ b/src/suyu/configuration/configure_input_player.cpp
@@ -293,11 +293,11 @@ ConfigureInputPlayer::ConfigureInputPlayer(QWidget* parent, std::size_t player_i
                                            InputCommon::InputSubsystem* input_subsystem_,
                                            InputProfiles* profiles_, Core::HID::HIDCore& hid_core_,
                                            bool is_powered_on_, bool debug_)
-    : QWidget(parent),
-      ui(std::make_unique<Ui::ConfigureInputPlayer>()), player_index{player_index_}, debug{debug_},
-      is_powered_on{is_powered_on_}, input_subsystem{input_subsystem_}, profiles(profiles_),
-      timeout_timer(std::make_unique<QTimer>()),
-      poll_timer(std::make_unique<QTimer>()), bottom_row{bottom_row_}, hid_core{hid_core_} {
+    : QWidget(parent), ui(std::make_unique<Ui::ConfigureInputPlayer>()),
+      player_index{player_index_}, debug{debug_}, is_powered_on{is_powered_on_},
+      input_subsystem{input_subsystem_}, profiles(profiles_),
+      timeout_timer(std::make_unique<QTimer>()), poll_timer(std::make_unique<QTimer>()),
+      bottom_row{bottom_row_}, hid_core{hid_core_} {
     if (player_index == 0) {
         auto* emulated_controller_p1 =
             hid_core.GetEmulatedController(Core::HID::NpadIdType::Player1);
diff --git a/src/suyu/configuration/configure_mouse_panning.ui b/src/suyu/configuration/configure_mouse_panning.ui
index 84fb7ee809..d6072f4527 100644
--- a/src/suyu/configuration/configure_mouse_panning.ui
+++ b/src/suyu/configuration/configure_mouse_panning.ui
@@ -43,7 +43,7 @@
            <number>1</number>
           </property>
           <property name="maximum">
-           <number>100</number>
+           <number>200</number>
           </property>
           <property name="value">
            <number>50</number>
@@ -69,7 +69,7 @@
            <number>1</number>
           </property>
           <property name="maximum">
-           <number>100</number>
+           <number>200</number>
           </property>
           <property name="value">
            <number>50</number>
diff --git a/src/suyu/configuration/configure_per_game.cpp b/src/suyu/configuration/configure_per_game.cpp
index 2cadba72ff..7caff1035b 100644
--- a/src/suyu/configuration/configure_per_game.cpp
+++ b/src/suyu/configuration/configure_per_game.cpp
@@ -17,14 +17,17 @@
 #include <QTimer>
 
 #include "common/fs/fs_util.h"
+#include "common/hex_util.h"
 #include "common/settings_enums.h"
 #include "common/settings_input.h"
 #include "configuration/shared_widget.h"
 #include "core/core.h"
 #include "core/file_sys/control_metadata.h"
+#include "core/file_sys/ips_layer.h"
 #include "core/file_sys/patch_manager.h"
 #include "core/file_sys/xts_archive.h"
 #include "core/loader/loader.h"
+#include "core/loader/nso.h"
 #include "frontend_common/config.h"
 #include "suyu/configuration/configuration_shared.h"
 #include "suyu/configuration/configure_audio.h"
@@ -44,10 +47,12 @@
 ConfigurePerGame::ConfigurePerGame(QWidget* parent, u64 title_id_, const std::string& file_name,
                                    std::vector<VkDeviceInfo::Record>& vk_device_records,
                                    Core::System& system_)
-    : QDialog(parent),
-      ui(std::make_unique<Ui::ConfigurePerGame>()), title_id{title_id_}, system{system_},
+    : QDialog(parent), ui(std::make_unique<Ui::ConfigurePerGame>()),
+      pm{title_id_, system_.GetFileSystemController(), system_.GetContentProvider()},
+      title_id{title_id_}, system{system_},
       builder{std::make_unique<ConfigurationShared::Builder>(this, !system_.IsPoweredOn())},
       tab_group{std::make_shared<std::vector<ConfigurationShared::Tab*>>()} {
+
     const auto file_path = std::filesystem::path(Common::FS::ToU8String(file_name));
     const auto config_file_name = title_id == 0 ? Common::FS::PathToUTF8String(file_path.filename())
                                                 : fmt::format("{:016X}", title_id);
@@ -141,6 +146,14 @@ void ConfigurePerGame::LoadFromFile(FileSys::VirtualFile file_) {
     LoadConfiguration();
 }
 
+std::string ConfigurePerGame::GetBuildID() {
+    LOG_INFO(Core, "{}", file->GetExtension());
+
+    // https://github.com/Ryujinx/Ryujinx/blob/master/src/Ryujinx.UI.Common/App/ApplicationData.cs#L71
+
+    return "Invalid File";
+}
+
 void ConfigurePerGame::LoadConfiguration() {
     if (file == nullptr) {
         return;
@@ -148,13 +161,14 @@ void ConfigurePerGame::LoadConfiguration() {
 
     addons_tab->LoadFromFile(file);
 
+    const auto control = pm.GetControlMetadata();
+    const auto loader = Loader::GetLoader(system, file);
+
     ui->display_title_id->setText(
         QStringLiteral("%1").arg(title_id, 16, 16, QLatin1Char{'0'}).toUpper());
 
-    const FileSys::PatchManager pm{title_id, system.GetFileSystemController(),
-                                   system.GetContentProvider()};
-    const auto control = pm.GetControlMetadata();
-    const auto loader = Loader::GetLoader(system, file);
+    // TODO: Should get proper build id for UI
+    // ui->display_build_id->setText(QString::fromStdString(GetBuildID()));
 
     if (control.first != nullptr) {
         ui->display_version->setText(QString::fromStdString(control.first->GetVersionString()));
diff --git a/src/suyu/configuration/configure_per_game.h b/src/suyu/configuration/configure_per_game.h
index 3fa03b1d88..7e1aff28db 100644
--- a/src/suyu/configuration/configure_per_game.h
+++ b/src/suyu/configuration/configure_per_game.h
@@ -11,6 +11,7 @@
 #include <QList>
 
 #include "configuration/shared_widget.h"
+#include "core/file_sys/patch_manager.h"
 #include "core/file_sys/vfs/vfs_types.h"
 #include "frontend_common/config.h"
 #include "suyu/configuration/configuration_shared.h"
@@ -68,8 +69,11 @@ private:
 
     void LoadConfiguration();
 
+    std::string GetBuildID();
+
     std::unique_ptr<Ui::ConfigurePerGame> ui;
     FileSys::VirtualFile file;
+    FileSys::PatchManager pm;
     u64 title_id;
 
     QGraphicsScene* scene;
diff --git a/src/suyu/configuration/configure_per_game.ui b/src/suyu/configuration/configure_per_game.ui
index 99ba2fd180..712705e082 100644
--- a/src/suyu/configuration/configure_per_game.ui
+++ b/src/suyu/configuration/configure_per_game.ui
@@ -67,8 +67,18 @@
         </item>
         <item>
          <layout class="QGridLayout" name="gridLayout_2">
+          <item row="2" column="1">
+           <widget class="QLineEdit" name="display_developer">
+            <property name="enabled">
+             <bool>true</bool>
+            </property>
+            <property name="readOnly">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
           <item row="6" column="1">
-           <widget class="QLineEdit" name="display_size">
+           <widget class="QLineEdit" name="display_format">
             <property name="enabled">
              <bool>true</bool>
             </property>
@@ -77,20 +87,17 @@
             </property>
            </widget>
           </item>
-          <item row="3" column="1">
-           <widget class="QLineEdit" name="display_version">
-            <property name="enabled">
-             <bool>true</bool>
-            </property>
-            <property name="readOnly">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="1" column="0">
-           <widget class="QLabel" name="label">
+          <item row="7" column="0">
+           <widget class="QLabel" name="label_6">
             <property name="text">
-             <string>Name</string>
+             <string>Size</string>
+            </property>
+           </widget>
+          </item>
+          <item row="8" column="0">
+           <widget class="QLabel" name="label_7">
+            <property name="text">
+             <string>Filename</string>
             </property>
            </widget>
           </item>
@@ -101,6 +108,13 @@
             </property>
            </widget>
           </item>
+          <item row="1" column="0">
+           <widget class="QLabel" name="label">
+            <property name="text">
+             <string>Name</string>
+            </property>
+           </widget>
+          </item>
           <item row="4" column="1">
            <widget class="QLineEdit" name="display_title_id">
             <property name="enabled">
@@ -111,7 +125,38 @@
             </property>
            </widget>
           </item>
-          <item row="7" column="1">
+          <item row="2" column="0">
+           <widget class="QLabel" name="label_2">
+            <property name="text">
+             <string>Developer</string>
+            </property>
+           </widget>
+          </item>
+          <item row="6" column="0">
+           <widget class="QLabel" name="label_5">
+            <property name="text">
+             <string>Format</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="1">
+           <widget class="QLineEdit" name="display_version">
+            <property name="enabled">
+             <bool>true</bool>
+            </property>
+            <property name="readOnly">
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <widget class="QLabel" name="label_3">
+            <property name="text">
+             <string>Version</string>
+            </property>
+           </widget>
+          </item>
+          <item row="8" column="1">
            <widget class="QLineEdit" name="display_filename">
             <property name="enabled">
              <bool>true</bool>
@@ -121,23 +166,6 @@
             </property>
            </widget>
           </item>
-          <item row="5" column="1">
-           <widget class="QLineEdit" name="display_format">
-            <property name="enabled">
-             <bool>true</bool>
-            </property>
-            <property name="readOnly">
-             <bool>true</bool>
-            </property>
-           </widget>
-          </item>
-          <item row="7" column="0">
-           <widget class="QLabel" name="label_7">
-            <property name="text">
-             <string>Filename</string>
-            </property>
-           </widget>
-          </item>
           <item row="1" column="1">
            <widget class="QLineEdit" name="display_name">
             <property name="enabled">
@@ -148,8 +176,8 @@
             </property>
            </widget>
           </item>
-          <item row="2" column="1">
-           <widget class="QLineEdit" name="display_developer">
+          <item row="7" column="1">
+           <widget class="QLineEdit" name="display_size">
             <property name="enabled">
              <bool>true</bool>
             </property>
@@ -157,35 +185,22 @@
              <bool>true</bool>
             </property>
            </widget>
+           </item>
+          <!-- TODO: Gotta implement proper working build id -->
+          <!--item row="5" column="1">
+           <widget class="QLineEdit" name="display_build_id">
+            <property name="readOnly">
+             <bool>true</bool>
+            </property>
+           </widget>
           </item>
           <item row="5" column="0">
-           <widget class="QLabel" name="label_5">
+           <widget class="QLabel" name="label_9">
             <property name="text">
-             <string>Format</string>
+             <string>Build ID</string>
             </property>
            </widget>
-          </item>
-          <item row="3" column="0">
-           <widget class="QLabel" name="label_3">
-            <property name="text">
-             <string>Version</string>
-            </property>
-           </widget>
-          </item>
-          <item row="6" column="0">
-           <widget class="QLabel" name="label_6">
-            <property name="text">
-             <string>Size</string>
-            </property>
-           </widget>
-          </item>
-          <item row="2" column="0">
-           <widget class="QLabel" name="label_2">
-            <property name="text">
-             <string>Developer</string>
-            </property>
-           </widget>
-          </item>
+          </item-->
          </layout>
         </item>
         <item>
diff --git a/src/suyu/configuration/configure_web.cpp b/src/suyu/configuration/configure_web.cpp
index 196f5001cf..3b55bb9763 100644
--- a/src/suyu/configuration/configure_web.cpp
+++ b/src/suyu/configuration/configure_web.cpp
@@ -5,7 +5,6 @@
 #include <QMessageBox>
 #include <QtConcurrent/QtConcurrentRun>
 #include "common/settings.h"
-#include "core/telemetry_session.h"
 #include "suyu/configuration/configure_web.h"
 #include "suyu/uisettings.h"
 #include "ui_configure_web.h"
@@ -38,8 +37,6 @@ static std::string TokenFromDisplayToken(const std::string& display_token) {
 ConfigureWeb::ConfigureWeb(QWidget* parent)
     : QWidget(parent), ui(std::make_unique<Ui::ConfigureWeb>()) {
     ui->setupUi(this);
-    connect(ui->button_regenerate_telemetry_id, &QPushButton::clicked, this,
-            &ConfigureWeb::RefreshTelemetryID);
     connect(ui->button_verify_login, &QPushButton::clicked, this, &ConfigureWeb::VerifyLogin);
     connect(&verify_watcher, &QFutureWatcher<bool>::finished, this, &ConfigureWeb::OnLoginVerified);
 
@@ -64,10 +61,6 @@ void ConfigureWeb::changeEvent(QEvent* event) {
 void ConfigureWeb::RetranslateUI() {
     ui->retranslateUi(this);
 
-    ui->telemetry_learn_more->setText(
-        tr("<a href='https://suyu.dev/help/feature/telemetry/'><span style=\"text-decoration: "
-           "underline; color:#039be5;\">Learn more</span></a>"));
-
     ui->web_signup_link->setText(
         tr("<a href='https://profile.suyu.dev/'><span style=\"text-decoration: underline; "
            "color:#039be5;\">Sign up</span></a>"));
@@ -75,15 +68,11 @@ void ConfigureWeb::RetranslateUI() {
     ui->web_token_info_link->setText(
         tr("<a href='https://suyu.dev/wiki/suyu-web-service/'><span style=\"text-decoration: "
            "underline; color:#039be5;\">What is my token?</span></a>"));
-
-    ui->label_telemetry_id->setText(
-        tr("Telemetry ID: 0x%1").arg(QString::number(Core::GetTelemetryId(), 16).toUpper()));
 }
 
 void ConfigureWeb::SetConfiguration() {
     ui->web_credentials_disclaimer->setWordWrap(true);
 
-    ui->telemetry_learn_more->setOpenExternalLinks(true);
     ui->web_signup_link->setOpenExternalLinks(true);
     ui->web_token_info_link->setOpenExternalLinks(true);
 
@@ -93,7 +82,6 @@ void ConfigureWeb::SetConfiguration() {
         ui->username->setText(QString::fromStdString(Settings::values.suyu_username.GetValue()));
     }
 
-    ui->toggle_telemetry->setChecked(Settings::values.enable_telemetry.GetValue());
     ui->edit_token->setText(QString::fromStdString(GenerateDisplayToken(
         Settings::values.suyu_username.GetValue(), Settings::values.suyu_token.GetValue())));
 
@@ -106,7 +94,6 @@ void ConfigureWeb::SetConfiguration() {
 }
 
 void ConfigureWeb::ApplyConfiguration() {
-    Settings::values.enable_telemetry = ui->toggle_telemetry->isChecked();
     UISettings::values.enable_discord_presence = ui->toggle_discordrpc->isChecked();
     if (user_verified) {
         Settings::values.suyu_username =
@@ -119,12 +106,6 @@ void ConfigureWeb::ApplyConfiguration() {
     }
 }
 
-void ConfigureWeb::RefreshTelemetryID() {
-    const u64 new_telemetry_id{Core::RegenerateTelemetryId()};
-    ui->label_telemetry_id->setText(
-        tr("Telemetry ID: 0x%1").arg(QString::number(new_telemetry_id, 16).toUpper()));
-}
-
 void ConfigureWeb::OnLoginChanged() {
     if (ui->edit_token->text().isEmpty()) {
         user_verified = true;
@@ -150,7 +131,12 @@ void ConfigureWeb::VerifyLogin() {
     verify_watcher.setFuture(QtConcurrent::run(
         [username = UsernameFromDisplayToken(ui->edit_token->text().toStdString()),
          token = TokenFromDisplayToken(ui->edit_token->text().toStdString())] {
-            return Core::VerifyLogin(username, token);
+#ifdef ENABLE_WEB_SERVICE
+            return WebService::VerifyLogin(Settings::values.web_api_url.GetValue(), username,
+                                           token);
+#else
+            return false;
+#endif
         }));
 }
 
diff --git a/src/suyu/configuration/configure_web.h b/src/suyu/configuration/configure_web.h
index 03feb55f85..cadbc0fa0a 100644
--- a/src/suyu/configuration/configure_web.h
+++ b/src/suyu/configuration/configure_web.h
@@ -25,7 +25,6 @@ private:
     void changeEvent(QEvent* event) override;
     void RetranslateUI();
 
-    void RefreshTelemetryID();
     void OnLoginChanged();
     void VerifyLogin();
     void OnLoginVerified();
diff --git a/src/suyu/configuration/configure_web.ui b/src/suyu/configuration/configure_web.ui
index 35779e8285..2cdcd1bc60 100644
--- a/src/suyu/configuration/configure_web.ui
+++ b/src/suyu/configuration/configure_web.ui
@@ -125,56 +125,6 @@
        </property>
       </widget>
      </item>
-     <item>
-      <widget class="QGroupBox" name="groupBox">
-       <property name="title">
-        <string>Telemetry</string>
-       </property>
-       <layout class="QVBoxLayout" name="verticalLayout_2">
-        <item>
-         <widget class="QCheckBox" name="toggle_telemetry">
-          <property name="text">
-           <string>Share anonymous usage data with the suyu team</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <widget class="QLabel" name="telemetry_learn_more">
-          <property name="text">
-           <string>Learn more</string>
-          </property>
-         </widget>
-        </item>
-        <item>
-         <layout class="QGridLayout" name="gridLayoutTelemetryId">
-          <item row="0" column="0">
-           <widget class="QLabel" name="label_telemetry_id">
-            <property name="text">
-             <string>Telemetry ID:</string>
-            </property>
-           </widget>
-          </item>
-          <item row="0" column="1">
-           <widget class="QPushButton" name="button_regenerate_telemetry_id">
-            <property name="sizePolicy">
-             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
-              <horstretch>0</horstretch>
-              <verstretch>0</verstretch>
-             </sizepolicy>
-            </property>
-            <property name="layoutDirection">
-             <enum>Qt::RightToLeft</enum>
-            </property>
-            <property name="text">
-             <string>Regenerate</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </item>
-       </layout>
-      </widget>
-     </item>
     </layout>
    </item>
    <item>
diff --git a/src/suyu/configuration/shared_widget.cpp b/src/suyu/configuration/shared_widget.cpp
index 76a6b417cd..1e77bb62c3 100644
--- a/src/suyu/configuration/shared_widget.cpp
+++ b/src/suyu/configuration/shared_widget.cpp
@@ -766,8 +766,8 @@ Widget::Widget(Settings::BasicSetting* setting_, const TranslationMap& translati
 
 Builder::Builder(QWidget* parent_, bool runtime_lock_)
     : translations{InitializeTranslations(parent_)},
-      combobox_translations{ComboboxEnumeration(parent_)}, parent{parent_}, runtime_lock{
-                                                                                runtime_lock_} {}
+      combobox_translations{ComboboxEnumeration(parent_)}, parent{parent_},
+      runtime_lock{runtime_lock_} {}
 
 Builder::~Builder() = default;
 
diff --git a/src/suyu/game_list.cpp b/src/suyu/game_list.cpp
index 478838bc84..b12cdb7bf9 100644
--- a/src/suyu/game_list.cpp
+++ b/src/suyu/game_list.cpp
@@ -3,7 +3,6 @@
 
 // Modified by palfaiate on <2024/03/07>
 
-#include <regex>
 #include <QApplication>
 #include <QDir>
 #include <QFileInfo>
@@ -384,6 +383,17 @@ GameList::~GameList() {
     UnloadController();
 }
 
+void GameList::ClearList() {
+    // Clear all items
+    item_model->setRowCount(0);
+
+    // Notify a reload is pending
+    UISettings::values.is_game_list_reload_pending.exchange(true);
+    UISettings::values.is_game_list_reload_pending.notify_all();
+
+    // Load stuff back up
+}
+
 void GameList::SetFilterFocus() {
     if (tree_view->model()->rowCount() > 0) {
         search_field->setFocus();
@@ -413,6 +423,10 @@ void GameList::AddEntry(const QList<QStandardItem*>& entry_items, GameListDir* p
     parent->appendRow(entry_items);
 }
 
+void GameList::AddRootEntry(const QList<QStandardItem*>& entry_items) {
+    item_model->invisibleRootItem()->appendRow(entry_items);
+}
+
 void GameList::ValidateEntry(const QModelIndex& item) {
     const auto selected = item.sibling(item.row(), 0);
 
@@ -468,7 +482,9 @@ bool GameList::IsEmpty() const {
 void GameList::DonePopulating(const QStringList& watch_list) {
     emit ShowList(!IsEmpty());
 
-    item_model->invisibleRootItem()->appendRow(new GameListAddDir());
+    if (UISettings::values.show_folders_in_list) {
+        item_model->invisibleRootItem()->appendRow(new GameListAddDir());
+    }
 
     // Add favorites row
     item_model->invisibleRootItem()->insertRow(0, new GameListFavorites());
@@ -485,6 +501,7 @@ void GameList::DonePopulating(const QStringList& watch_list) {
     if (!watch_dirs.isEmpty()) {
         watcher->removePaths(watch_dirs);
     }
+
     // Workaround: Add the watch paths in chunks to allow the gui to refresh
     // This prevents the UI from stalling when a large number of watch paths are added
     // Also artificially caps the watcher to a certain number of directories
@@ -886,23 +903,44 @@ void GameList::ToggleFavorite(u64 program_id) {
 void GameList::AddFavorite(u64 program_id) {
     auto* favorites_row = item_model->item(0);
 
-    for (int i = 1; i < item_model->rowCount() - 1; i++) {
-        const auto* folder = item_model->item(i);
-        for (int j = 0; j < folder->rowCount(); j++) {
-            if (folder->child(j)->data(GameListItemPath::ProgramIdRole).toULongLong() ==
-                program_id) {
-                QList<QStandardItem*> list;
-                for (int k = 0; k < COLUMN_COUNT; k++) {
-                    list.append(folder->child(j, k)->clone());
-                }
-                list[0]->setData(folder->child(j)->data(GameListItem::SortRole),
-                                 GameListItem::SortRole);
-                list[0]->setText(folder->child(j)->data(Qt::DisplayRole).toString());
+    if (UISettings::values.show_folders_in_list) {
+        for (int i = 0; i < item_model->rowCount(); i++) {
+            const auto* folder = item_model->item(i);
+            for (int j = 0; j < folder->rowCount(); j++) {
+                if (folder->child(j)->data(GameListItemPath::ProgramIdRole).toULongLong() ==
+                    program_id) {
+                    QList<QStandardItem*> list;
+                    for (int k = 0; k < COLUMN_COUNT; k++) {
+                        list.append(folder->child(j, k)->clone());
+                    }
+                    list[0]->setData(folder->child(j)->data(GameListItem::SortRole),
+                                     GameListItem::SortRole);
+                    list[0]->setText(folder->child(j)->data(Qt::DisplayRole).toString());
 
-                favorites_row->appendRow(list);
-                return;
+                    favorites_row->appendRow(list);
+                    return;
+                }
             }
         }
+        return;
+    } else {
+        for (int i = 0; i < item_model->rowCount(); i++) {
+            const auto* game = item_model->item(i);
+            if (game->data(GameListItemPath::ProgramIdRole).toULongLong() != program_id) {
+                continue;
+            }
+
+            QList<QStandardItem*> list;
+            for (int j = 0; j < COLUMN_COUNT; j++) {
+                list.append(item_model->item(i, j)->clone());
+            }
+
+            list[0]->setData(game->data(GameListItem::SortRole), GameListItem::SortRole);
+            list[0]->setText(game->data(Qt::DisplayRole).toString());
+
+            favorites_row->appendRow(list);
+            return;
+        }
     }
 }
 
diff --git a/src/suyu/game_list.h b/src/suyu/game_list.h
index f8796fa821..45a50fe2f3 100644
--- a/src/suyu/game_list.h
+++ b/src/suyu/game_list.h
@@ -84,6 +84,7 @@ public:
     ~GameList() override;
 
     QString GetLastFilterResultItem() const;
+    void ClearList();
     void ClearFilter();
     void SetFilterFocus();
     void SetFilterVisible(bool visibility);
@@ -137,6 +138,7 @@ private:
 
     void AddDirEntry(GameListDir* entry_items);
     void AddEntry(const QList<QStandardItem*>& entry_items, GameListDir* parent);
+    void AddRootEntry(const QList<QStandardItem*>& entry_items);
     void DonePopulating(const QStringList& watch_list);
 
 private:
diff --git a/src/suyu/game_list_worker.cpp b/src/suyu/game_list_worker.cpp
index 9243464780..93eeb40a14 100644
--- a/src/suyu/game_list_worker.cpp
+++ b/src/suyu/game_list_worker.cpp
@@ -234,8 +234,8 @@ GameListWorker::GameListWorker(FileSys::VirtualFilesystem vfs_,
                                const PlayTime::PlayTimeManager& play_time_manager_,
                                Core::System& system_)
     : vfs{std::move(vfs_)}, provider{provider_}, game_dirs{game_dirs_},
-      compatibility_list{compatibility_list_}, play_time_manager{play_time_manager_}, system{
-                                                                                          system_} {
+      compatibility_list{compatibility_list_}, play_time_manager{play_time_manager_},
+      system{system_} {
     // We want the game list to manage our lifetime.
     setAutoDelete(false);
 }
@@ -330,7 +330,13 @@ void GameListWorker::AddTitlesToGameList(GameListDir* parent_dir) {
 
         auto entry = MakeGameListEntry(file->GetFullPath(), name, file->GetSize(), icon, *loader,
                                        program_id, compatibility_list, play_time_manager, patch);
-        RecordEvent([=](GameList* game_list) { game_list->AddEntry(entry, parent_dir); });
+        RecordEvent([=](GameList* game_list) {
+            if (UISettings::values.show_folders_in_list) {
+                game_list->AddEntry(entry, parent_dir);
+            } else {
+                game_list->AddRootEntry(entry);
+            }
+        });
     }
 }
 
@@ -408,8 +414,7 @@ void GameListWorker::ScanFileSystem(ScanTarget target, const std::string& dir_pa
                             physical_name, name, Common::FS::GetSize(physical_name), icon, *loader,
                             id, compatibility_list, play_time_manager, patch);
 
-                        RecordEvent(
-                            [=](GameList* game_list) { game_list->AddEntry(entry, parent_dir); });
+                        RecordEvent([=](GameList* game_list) { game_list->AddRootEntry(entry); });
                     }
                 } else {
                     std::vector<u8> icon;
@@ -425,8 +430,13 @@ void GameListWorker::ScanFileSystem(ScanTarget target, const std::string& dir_pa
                         physical_name, name, Common::FS::GetSize(physical_name), icon, *loader,
                         program_id, compatibility_list, play_time_manager, patch);
 
-                    RecordEvent(
-                        [=](GameList* game_list) { game_list->AddEntry(entry, parent_dir); });
+                    RecordEvent([=](GameList* game_list) {
+                        if (UISettings::values.show_folders_in_list) {
+                            game_list->AddEntry(entry, parent_dir);
+                        } else {
+                            game_list->AddRootEntry(entry);
+                        }
+                    });
                 }
             }
         } else if (is_dir) {
@@ -459,20 +469,32 @@ void GameListWorker::run() {
 
         if (game_dir.path == std::string("SDMC")) {
             auto* const game_list_dir = new GameListDir(game_dir, GameListItemType::SdmcDir);
-            DirEntryReady(game_list_dir);
+
+            if (UISettings::values.show_folders_in_list)
+                DirEntryReady(game_list_dir);
+
             AddTitlesToGameList(game_list_dir);
         } else if (game_dir.path == std::string("UserNAND")) {
             auto* const game_list_dir = new GameListDir(game_dir, GameListItemType::UserNandDir);
-            DirEntryReady(game_list_dir);
+
+            if (UISettings::values.show_folders_in_list)
+                DirEntryReady(game_list_dir);
+
             AddTitlesToGameList(game_list_dir);
         } else if (game_dir.path == std::string("SysNAND")) {
             auto* const game_list_dir = new GameListDir(game_dir, GameListItemType::SysNandDir);
-            DirEntryReady(game_list_dir);
+
+            if (UISettings::values.show_folders_in_list)
+                DirEntryReady(game_list_dir);
+
             AddTitlesToGameList(game_list_dir);
         } else {
             watch_list.append(QString::fromStdString(game_dir.path));
             auto* const game_list_dir = new GameListDir(game_dir);
-            DirEntryReady(game_list_dir);
+
+            if (UISettings::values.show_folders_in_list)
+                DirEntryReady(game_list_dir);
+
             ScanFileSystem(ScanTarget::FillManualContentProvider, game_dir.path, game_dir.deep_scan,
                            game_list_dir);
             ScanFileSystem(ScanTarget::PopulateGameList, game_dir.path, game_dir.deep_scan,
diff --git a/src/suyu/main.cpp b/src/suyu/main.cpp
index 4963dde610..8952b324df 100644
--- a/src/suyu/main.cpp
+++ b/src/suyu/main.cpp
@@ -100,7 +100,6 @@
 #include "common/x64/cpu_detect.h"
 #endif
 #include "common/settings.h"
-#include "common/telemetry.h"
 #include "core/core.h"
 #include "core/core_timing.h"
 #include "core/crypto/key_manager.h"
@@ -119,7 +118,6 @@
 #include "core/hle/service/sm/sm.h"
 #include "core/loader/loader.h"
 #include "core/perf_stats.h"
-#include "core/telemetry_session.h"
 #include "frontend_common/config.h"
 #include "input_common/drivers/tas_input.h"
 #include "input_common/drivers/virtual_amiibo.h"
@@ -188,28 +186,9 @@ constexpr size_t CopyBufferSize = 1_MiB;
  * user. This is 32-bits - if we have more than 32 callouts, we should retire and recycle old ones.
  */
 enum class CalloutFlag : uint32_t {
-    Telemetry = 0x1,
     DRDDeprecation = 0x2,
 };
 
-void GMainWindow::ShowTelemetryCallout() {
-    if (UISettings::values.callout_flags.GetValue() &
-        static_cast<uint32_t>(CalloutFlag::Telemetry)) {
-        return;
-    }
-
-    UISettings::values.callout_flags =
-        UISettings::values.callout_flags.GetValue() | static_cast<uint32_t>(CalloutFlag::Telemetry);
-    const QString telemetry_message =
-        tr("<a href='https://suyu.dev/help/feature/telemetry/'>Anonymous "
-           "data is collected</a> to help improve suyu. "
-           "<br/><br/>Would you like to share your usage data with us?");
-    if (!question(this, tr("Telemetry"), telemetry_message)) {
-        Settings::values.enable_telemetry = false;
-        system->ApplySettings();
-    }
-}
-
 const int GMainWindow::max_recent_files_item;
 
 static void RemoveCachedContents() {
@@ -417,9 +396,6 @@ GMainWindow::GMainWindow(std::unique_ptr<QtConfig> config_, bool has_broken_vulk
     game_list->LoadCompatibilityList();
     game_list->PopulateAsync(UISettings::values.game_dirs);
 
-    // Show one-time "callout" messages to the user
-    ShowTelemetryCallout();
-
     // make sure menubar has the arrow cursor instead of inheriting from this
     ui->menubar->setCursor(QCursor());
     statusBar()->setCursor(QCursor());
@@ -1440,6 +1416,7 @@ void GMainWindow::RestoreUIState() {
     game_list->SetFilterVisible(ui->action_Show_Filter_Bar->isChecked());
 
     ui->action_Show_Status_Bar->setChecked(UISettings::values.show_status_bar.GetValue());
+    ui->action_Show_Folders_In_List->setChecked(UISettings::values.show_folders_in_list.GetValue());
     statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked());
     Debugger::ToggleConsole();
 }
@@ -1555,6 +1532,7 @@ void GMainWindow::ConnectMenuEvents() {
     connect_menu(ui->action_Display_Dock_Widget_Headers, &GMainWindow::OnDisplayTitleBars);
     connect_menu(ui->action_Show_Filter_Bar, &GMainWindow::OnToggleFilterBar);
     connect_menu(ui->action_Show_Status_Bar, &GMainWindow::OnToggleStatusBar);
+    connect_menu(ui->action_Show_Folders_In_List, &GMainWindow::OnToggleFoldersInList);
 
     connect_menu(ui->action_Reset_Window_Size_720, &GMainWindow::ResetWindowSize720);
     connect_menu(ui->action_Reset_Window_Size_900, &GMainWindow::ResetWindowSize900);
@@ -1870,8 +1848,6 @@ bool GMainWindow::LoadROM(const QString& filename, Service::AM::FrontendAppletPa
         return false;
     }
     current_game_path = filename;
-
-    system->TelemetrySession().AddField(Common::Telemetry::FieldType::App, "Frontend", "Qt");
     return true;
 }
 
@@ -3380,7 +3356,7 @@ void GMainWindow::OnMenuReportCompatibility() {
 
     if (!Settings::values.suyu_token.GetValue().empty() &&
         !Settings::values.suyu_username.GetValue().empty()) {
-        CompatDB compatdb{system->TelemetrySession(), this};
+        CompatDB compatdb{this};
         compatdb.exec();
     } else {
         QMessageBox::critical(
@@ -3610,8 +3586,6 @@ void GMainWindow::OnConfigure() {
 
         SetDefaultUIGeometry();
         RestoreUIState();
-
-        ShowTelemetryCallout();
     }
     InitializeHotkeys();
 
@@ -4213,6 +4187,14 @@ void GMainWindow::OnToggleStatusBar() {
     statusBar()->setVisible(ui->action_Show_Status_Bar->isChecked());
 }
 
+void GMainWindow::OnToggleFoldersInList() {
+    UISettings::values.show_folders_in_list = ui->action_Show_Folders_In_List->isChecked();
+
+    game_list->ClearList();
+    game_list->LoadCompatibilityList();
+    game_list->PopulateAsync(UISettings::values.game_dirs);
+}
+
 void GMainWindow::OnAlbum() {
     constexpr u64 AlbumId = static_cast<u64>(Service::AM::AppletProgramId::PhotoViewer);
     auto bis_system = system->GetFileSystemController().GetSystemNANDContents();
@@ -4601,6 +4583,7 @@ void GMainWindow::UpdateUISettings() {
     UISettings::values.display_titlebar = ui->action_Display_Dock_Widget_Headers->isChecked();
     UISettings::values.show_filter_bar = ui->action_Show_Filter_Bar->isChecked();
     UISettings::values.show_status_bar = ui->action_Show_Status_Bar->isChecked();
+    UISettings::values.show_folders_in_list = ui->action_Show_Folders_In_List->isChecked();
     UISettings::values.first_start = false;
 }
 
diff --git a/src/suyu/main.h b/src/suyu/main.h
index 1705c491bf..7fa28477a7 100644
--- a/src/suyu/main.h
+++ b/src/suyu/main.h
@@ -275,7 +275,6 @@ private:
     void BootGameFromList(const QString& filename, StartGameType with_config);
     void ShutdownGame();
 
-    void ShowTelemetryCallout();
     void SetDiscordEnabled(bool state);
     void LoadAmiibo(const QString& filename);
 
@@ -384,6 +383,7 @@ private slots:
     void OnAbout();
     void OnToggleFilterBar();
     void OnToggleStatusBar();
+    void OnToggleFoldersInList();
     void OnDisplayTitleBars(bool);
     void InitializeHotkeys();
     void ToggleFullscreen();
diff --git a/src/suyu/main.ui b/src/suyu/main.ui
index 439dc4ba36..fece5f7069 100644
--- a/src/suyu/main.ui
+++ b/src/suyu/main.ui
@@ -45,7 +45,7 @@
      <x>0</x>
      <y>0</y>
      <width>1280</width>
-     <height>22</height>
+     <height>21</height>
     </rect>
    </property>
    <widget class="QMenu" name="menu_File">
@@ -124,6 +124,7 @@
     <addaction name="action_Display_Dock_Widget_Headers"/>
     <addaction name="action_Show_Filter_Bar"/>
     <addaction name="action_Show_Status_Bar"/>
+    <addaction name="action_Show_Folders_In_List" />
     <addaction name="separator"/>
     <addaction name="menu_Reset_Window_Size"/>
     <addaction name="menu_View_Debugging"/>
@@ -288,6 +289,17 @@
     <string>Show Status Bar</string>
    </property>
   </action>
+  <action name="action_Show_Folders_In_List">
+   <property name="checkable">
+    <bool>true</bool>
+   </property>
+   <property name="text">
+    <string>Show Folders in List</string>
+   </property>
+   <property name="iconText">
+    <string>Show Status Bar</string>
+   </property>
+  </action>
   <action name="action_View_Lobby">
    <property name="enabled">
     <bool>true</bool>
diff --git a/src/suyu/multiplayer/direct_connect.cpp b/src/suyu/multiplayer/direct_connect.cpp
index 5d5cb7aabc..7adde5168d 100644
--- a/src/suyu/multiplayer/direct_connect.cpp
+++ b/src/suyu/multiplayer/direct_connect.cpp
@@ -24,8 +24,8 @@ enum class ConnectionType : u8 { TraversalServer, IP };
 
 DirectConnectWindow::DirectConnectWindow(Core::System& system_, QWidget* parent)
     : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint),
-      ui(std::make_unique<Ui::DirectConnect>()), system{system_}, room_network{
-                                                                      system.GetRoomNetwork()} {
+      ui(std::make_unique<Ui::DirectConnect>()), system{system_},
+      room_network{system.GetRoomNetwork()} {
 
     ui->setupUi(this);
 
diff --git a/src/suyu/multiplayer/host_room.cpp b/src/suyu/multiplayer/host_room.cpp
index 6c71454c8e..66733837bc 100644
--- a/src/suyu/multiplayer/host_room.cpp
+++ b/src/suyu/multiplayer/host_room.cpp
@@ -31,9 +31,8 @@ HostRoomWindow::HostRoomWindow(QWidget* parent, QStandardItemModel* list,
                                std::shared_ptr<Core::AnnounceMultiplayerSession> session,
                                Core::System& system_)
     : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint),
-      ui(std::make_unique<Ui::HostRoom>()),
-      announce_multiplayer_session(session), system{system_}, room_network{
-                                                                  system.GetRoomNetwork()} {
+      ui(std::make_unique<Ui::HostRoom>()), announce_multiplayer_session(session), system{system_},
+      room_network{system.GetRoomNetwork()} {
     ui->setupUi(this);
 
     // set up validation for all of the fields
diff --git a/src/suyu/multiplayer/lobby.cpp b/src/suyu/multiplayer/lobby.cpp
index b4c0596632..9fca35461c 100644
--- a/src/suyu/multiplayer/lobby.cpp
+++ b/src/suyu/multiplayer/lobby.cpp
@@ -27,9 +27,8 @@
 Lobby::Lobby(QWidget* parent, QStandardItemModel* list,
              std::shared_ptr<Core::AnnounceMultiplayerSession> session, Core::System& system_)
     : QDialog(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint),
-      ui(std::make_unique<Ui::Lobby>()),
-      announce_multiplayer_session(session), system{system_}, room_network{
-                                                                  system.GetRoomNetwork()} {
+      ui(std::make_unique<Ui::Lobby>()), announce_multiplayer_session(session), system{system_},
+      room_network{system.GetRoomNetwork()} {
     ui->setupUi(this);
 
     // setup the watcher for background connections
diff --git a/src/suyu/uisettings.h b/src/suyu/uisettings.h
index 89fc353589..f1956bddf1 100644
--- a/src/suyu/uisettings.h
+++ b/src/suyu/uisettings.h
@@ -200,6 +200,7 @@ struct Values {
     std::atomic_bool is_game_list_reload_pending{false};
     Setting<bool> cache_game_list{linkage, true, "cache_game_list", Category::UiGameList};
     Setting<bool> favorites_expanded{linkage, true, "favorites_expanded", Category::UiGameList};
+    Setting<bool> show_folders_in_list{linkage, true, "show_folders_in_list", Category::UiGameList};
     QVector<u64> favorited_ids;
 
     // Compatibility List
diff --git a/src/suyu_cmd/suyu.cpp b/src/suyu_cmd/suyu.cpp
index cb91dde5d8..f559c74f5b 100644
--- a/src/suyu_cmd/suyu.cpp
+++ b/src/suyu_cmd/suyu.cpp
@@ -19,7 +19,6 @@
 #include "common/scope_exit.h"
 #include "common/settings.h"
 #include "common/string_util.h"
-#include "common/telemetry.h"
 #include "core/core.h"
 #include "core/core_timing.h"
 #include "core/cpu_manager.h"
@@ -29,7 +28,6 @@
 #include "core/hle/service/am/applet_manager.h"
 #include "core/hle/service/filesystem/filesystem.h"
 #include "core/loader/loader.h"
-#include "core/telemetry_session.h"
 #include "frontend_common/config.h"
 #include "input_common/main.h"
 #include "network/network.h"
@@ -403,8 +401,6 @@ int main(int argc, char** argv) {
         break;
     }
 
-    system.TelemetrySession().AddField(Common::Telemetry::FieldType::App, "Frontend", "SDL");
-
     if (use_multiplayer) {
         if (auto member = system.GetRoomNetwork().GetRoomMember().lock()) {
             member->BindOnChatMessageReceived(OnMessageReceived);
diff --git a/src/video_core/cdma_pusher.cpp b/src/video_core/cdma_pusher.cpp
index 3bcf1b0664..24d73bd843 100644
--- a/src/video_core/cdma_pusher.cpp
+++ b/src/video_core/cdma_pusher.cpp
@@ -18,8 +18,8 @@ namespace Tegra {
 
 CDmaPusher::CDmaPusher(Host1x::Host1x& host1x_, s32 id)
     : host1x{host1x_}, memory_manager{host1x.GMMU()},
-      host_processor{std::make_unique<Host1x::Control>(host1x_)}, current_class{
-                                                                      static_cast<ChClassId>(id)} {
+      host_processor{std::make_unique<Host1x::Control>(host1x_)},
+      current_class{static_cast<ChClassId>(id)} {
     thread = std::jthread([this](std::stop_token stop_token) { ProcessEntries(stop_token); });
 }
 
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp
index fb2060ca43..33ef54edef 100644
--- a/src/video_core/dma_pusher.cpp
+++ b/src/video_core/dma_pusher.cpp
@@ -18,8 +18,8 @@ constexpr u32 ComputeInline = 0x6D;
 
 DmaPusher::DmaPusher(Core::System& system_, GPU& gpu_, MemoryManager& memory_manager_,
                      Control::ChannelState& channel_state_)
-    : gpu{gpu_}, system{system_}, memory_manager{memory_manager_}, puller{gpu_, memory_manager_,
-                                                                          *this, channel_state_} {}
+    : gpu{gpu_}, system{system_}, memory_manager{memory_manager_},
+      puller{gpu_, memory_manager_, *this, channel_state_} {}
 
 DmaPusher::~DmaPusher() = default;
 
diff --git a/src/video_core/engines/maxwell_3d.cpp b/src/video_core/engines/maxwell_3d.cpp
index 0d47b032c8..5e070fa3b4 100644
--- a/src/video_core/engines/maxwell_3d.cpp
+++ b/src/video_core/engines/maxwell_3d.cpp
@@ -24,9 +24,8 @@ constexpr u32 MacroRegistersStart = 0xE00;
 
 Maxwell3D::Maxwell3D(Core::System& system_, MemoryManager& memory_manager_)
     : draw_manager{std::make_unique<DrawManager>(this)}, system{system_},
-      memory_manager{memory_manager_}, macro_engine{GetMacroEngine(*this)}, upload_state{
-                                                                                memory_manager,
-                                                                                regs.upload} {
+      memory_manager{memory_manager_}, macro_engine{GetMacroEngine(*this)},
+      upload_state{memory_manager, regs.upload} {
     dirty.flags.flip();
     InitializeRegisterDefaults();
     execution_mask.reset();
diff --git a/src/video_core/engines/puller.cpp b/src/video_core/engines/puller.cpp
index 8dd34c04ab..415bac9c98 100644
--- a/src/video_core/engines/puller.cpp
+++ b/src/video_core/engines/puller.cpp
@@ -21,8 +21,8 @@ namespace Tegra::Engines {
 
 Puller::Puller(GPU& gpu_, MemoryManager& memory_manager_, DmaPusher& dma_pusher_,
                Control::ChannelState& channel_state_)
-    : gpu{gpu_}, memory_manager{memory_manager_}, dma_pusher{dma_pusher_}, channel_state{
-                                                                               channel_state_} {}
+    : gpu{gpu_}, memory_manager{memory_manager_}, dma_pusher{dma_pusher_},
+      channel_state{channel_state_} {}
 
 Puller::~Puller() = default;
 
diff --git a/src/video_core/host1x/codecs/decoder.cpp b/src/video_core/host1x/codecs/decoder.cpp
index 49a601969c..c62c11e28f 100644
--- a/src/video_core/host1x/codecs/decoder.cpp
+++ b/src/video_core/host1x/codecs/decoder.cpp
@@ -11,8 +11,8 @@ namespace Tegra {
 
 Decoder::Decoder(Host1x::Host1x& host1x_, s32 id_, const Host1x::NvdecCommon::NvdecRegisters& regs_,
                  Host1x::FrameQueue& frame_queue_)
-    : host1x(host1x_), memory_manager{host1x.GMMU()}, regs{regs_}, id{id_}, frame_queue{
-                                                                                frame_queue_} {}
+    : host1x(host1x_), memory_manager{host1x.GMMU()}, regs{regs_}, id{id_},
+      frame_queue{frame_queue_} {}
 
 Decoder::~Decoder() = default;
 
diff --git a/src/video_core/host1x/host1x.cpp b/src/video_core/host1x/host1x.cpp
index 293bca6d79..7499ee77ec 100644
--- a/src/video_core/host1x/host1x.cpp
+++ b/src/video_core/host1x/host1x.cpp
@@ -9,8 +9,8 @@
 namespace Tegra::Host1x {
 
 Host1x::Host1x(Core::System& system_)
-    : system{system_}, syncpoint_manager{},
-      memory_manager(system.DeviceMemory()), gmmu_manager{system, memory_manager, 32, 0, 12},
+    : system{system_}, syncpoint_manager{}, memory_manager(system.DeviceMemory()),
+      gmmu_manager{system, memory_manager, 32, 0, 12},
       allocator{std::make_unique<Common::FlatAllocator<u32, 0, 32>>(1 << 12)} {}
 
 Host1x::~Host1x() = default;
diff --git a/src/video_core/host1x/vic.cpp b/src/video_core/host1x/vic.cpp
index 3ad56bb80c..2d06580609 100644
--- a/src/video_core/host1x/vic.cpp
+++ b/src/video_core/host1x/vic.cpp
@@ -94,8 +94,8 @@ void SwizzleSurface(std::span<u8> output, u32 out_stride, std::span<const u8> in
 } // namespace
 
 Vic::Vic(Host1x& host1x_, s32 id_, u32 syncpt, FrameQueue& frame_queue_)
-    : CDmaPusher{host1x_, id_}, id{id_}, syncpoint{syncpt},
-      frame_queue{frame_queue_}, has_sse41{HasSSE41()} {
+    : CDmaPusher{host1x_, id_}, id{id_}, syncpoint{syncpt}, frame_queue{frame_queue_},
+      has_sse41{HasSSE41()} {
     LOG_INFO(HW_GPU, "Created vic {}", id);
 }
 
diff --git a/src/video_core/memory_manager.cpp b/src/video_core/memory_manager.cpp
index ffafc48eff..aa60938119 100644
--- a/src/video_core/memory_manager.cpp
+++ b/src/video_core/memory_manager.cpp
@@ -28,8 +28,8 @@ MemoryManager::MemoryManager(Core::System& system_, MaxwellDeviceMemoryManager&
       split_address{split_address_}, page_bits{page_bits_}, big_page_bits{big_page_bits_},
       entries{}, big_entries{}, page_table{address_space_bits, address_space_bits + page_bits - 38,
                                            page_bits != big_page_bits ? page_bits : 0},
-      kind_map{PTEKind::INVALID}, unique_identifier{unique_identifier_generator.fetch_add(
-                                      1, std::memory_order_acq_rel)},
+      kind_map{PTEKind::INVALID},
+      unique_identifier{unique_identifier_generator.fetch_add(1, std::memory_order_acq_rel)},
       accumulator{std::make_unique<VideoCommon::InvalidationAccumulator>()} {
     address_space_size = 1ULL << address_space_bits;
     page_size = 1ULL << page_bits;
diff --git a/src/video_core/query_cache/query_cache.h b/src/video_core/query_cache/query_cache.h
index 08b7790555..d4ee55dea0 100644
--- a/src/video_core/query_cache/query_cache.h
+++ b/src/video_core/query_cache/query_cache.h
@@ -115,8 +115,8 @@ struct QueryCacheBase<Traits>::QueryCacheBaseImpl {
     QueryCacheBaseImpl(QueryCacheBase<Traits>* owner_, VideoCore::RasterizerInterface& rasterizer_,
                        Tegra::MaxwellDeviceMemoryManager& device_memory_, RuntimeType& runtime_,
                        Tegra::GPU& gpu_)
-        : owner{owner_}, rasterizer{rasterizer_},
-          device_memory{device_memory_}, runtime{runtime_}, gpu{gpu_} {
+        : owner{owner_}, rasterizer{rasterizer_}, device_memory{device_memory_}, runtime{runtime_},
+          gpu{gpu_} {
         streamer_mask = 0;
         for (size_t i = 0; i < static_cast<size_t>(QueryType::MaxQueryTypes); i++) {
             streamers[i] = runtime.GetStreamerInterface(static_cast<QueryType>(i));
diff --git a/src/video_core/renderer_opengl/gl_compute_pipeline.cpp b/src/video_core/renderer_opengl/gl_compute_pipeline.cpp
index d705018607..bb974bfd2b 100644
--- a/src/video_core/renderer_opengl/gl_compute_pipeline.cpp
+++ b/src/video_core/renderer_opengl/gl_compute_pipeline.cpp
@@ -31,8 +31,8 @@ ComputePipeline::ComputePipeline(const Device& device, TextureCache& texture_cac
                                  BufferCache& buffer_cache_, ProgramManager& program_manager_,
                                  const Shader::Info& info_, std::string code,
                                  std::vector<u32> code_v, bool force_context_flush)
-    : texture_cache{texture_cache_}, buffer_cache{buffer_cache_},
-      program_manager{program_manager_}, info{info_} {
+    : texture_cache{texture_cache_}, buffer_cache{buffer_cache_}, program_manager{program_manager_},
+      info{info_} {
     switch (device.GetShaderBackend()) {
     case Settings::ShaderBackend::Glsl:
         source_program = CreateProgram(code, GL_COMPUTE_SHADER);
diff --git a/src/video_core/renderer_opengl/gl_query_cache.cpp b/src/video_core/renderer_opengl/gl_query_cache.cpp
index 2147d587f7..ca00d7c3b7 100644
--- a/src/video_core/renderer_opengl/gl_query_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_query_cache.cpp
@@ -66,9 +66,8 @@ bool QueryCache::AnyCommandQueued() const noexcept {
 
 HostCounter::HostCounter(QueryCache& cache_, std::shared_ptr<HostCounter> dependency_,
                          VideoCore::QueryType type_)
-    : HostCounterBase{std::move(dependency_)}, cache{cache_}, type{type_}, query{
-                                                                               cache.AllocateQuery(
-                                                                                   type)} {
+    : HostCounterBase{std::move(dependency_)}, cache{cache_}, type{type_},
+      query{cache.AllocateQuery(type)} {
     glBeginQuery(GetTarget(type), query.handle);
 }
 
diff --git a/src/video_core/renderer_opengl/renderer_opengl.cpp b/src/video_core/renderer_opengl/renderer_opengl.cpp
index 452af27872..5d437299da 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.cpp
+++ b/src/video_core/renderer_opengl/renderer_opengl.cpp
@@ -1,27 +1,19 @@
 // SPDX-FileCopyrightText: 2014 Citra Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <algorithm>
-#include <cstddef>
-#include <cstdlib>
 #include <memory>
 
 #include <glad/glad.h>
 
 #include "common/assert.h"
 #include "common/logging/log.h"
-#include "common/microprofile.h"
 #include "common/settings.h"
-#include "common/telemetry.h"
-#include "core/core_timing.h"
 #include "core/frontend/emu_window.h"
-#include "core/telemetry_session.h"
 #include "video_core/capture.h"
 #include "video_core/present.h"
 #include "video_core/renderer_opengl/gl_blit_screen.h"
 #include "video_core/renderer_opengl/gl_rasterizer.h"
 #include "video_core/renderer_opengl/gl_shader_manager.h"
-#include "video_core/renderer_opengl/gl_shader_util.h"
 #include "video_core/renderer_opengl/renderer_opengl.h"
 #include "video_core/textures/decoders.h"
 
@@ -90,20 +82,18 @@ void APIENTRY DebugHandler(GLenum source, GLenum type, GLuint id, GLenum severit
 }
 } // Anonymous namespace
 
-RendererOpenGL::RendererOpenGL(Core::TelemetrySession& telemetry_session_,
-                               Core::Frontend::EmuWindow& emu_window_,
+RendererOpenGL::RendererOpenGL(Core::Frontend::EmuWindow& emu_window_,
                                Tegra::MaxwellDeviceMemoryManager& device_memory_, Tegra::GPU& gpu_,
                                std::unique_ptr<Core::Frontend::GraphicsContext> context_)
-    : RendererBase{emu_window_, std::move(context_)}, telemetry_session{telemetry_session_},
-      emu_window{emu_window_}, device_memory{device_memory_}, gpu{gpu_}, device{emu_window_},
-      state_tracker{}, program_manager{device},
+    : RendererBase{emu_window_, std::move(context_)}, emu_window{emu_window_},
+      device_memory{device_memory_}, gpu{gpu_}, device{emu_window_}, state_tracker{},
+      program_manager{device},
       rasterizer(emu_window, gpu, device_memory, device, program_manager, state_tracker) {
     if (Settings::values.renderer_debug && GLAD_GL_KHR_debug) {
         glEnable(GL_DEBUG_OUTPUT);
         glEnable(GL_DEBUG_OUTPUT_SYNCHRONOUS);
         glDebugMessageCallback(DebugHandler, nullptr);
     }
-    AddTelemetryFields();
 
     // Initialize default attributes to match hardware's disabled attributes
     GLint max_attribs{};
@@ -155,21 +145,6 @@ void RendererOpenGL::Composite(std::span<const Tegra::FramebufferConfig> framebu
     render_window.OnFrameDisplayed();
 }
 
-void RendererOpenGL::AddTelemetryFields() {
-    const char* const gl_version{reinterpret_cast<char const*>(glGetString(GL_VERSION))};
-    const char* const gpu_vendor{reinterpret_cast<char const*>(glGetString(GL_VENDOR))};
-    const char* const gpu_model{reinterpret_cast<char const*>(glGetString(GL_RENDERER))};
-
-    LOG_INFO(Render_OpenGL, "GL_VERSION: {}", gl_version);
-    LOG_INFO(Render_OpenGL, "GL_VENDOR: {}", gpu_vendor);
-    LOG_INFO(Render_OpenGL, "GL_RENDERER: {}", gpu_model);
-
-    constexpr auto user_system = Common::Telemetry::FieldType::UserSystem;
-    telemetry_session.AddField(user_system, "GPU_Vendor", std::string(gpu_vendor));
-    telemetry_session.AddField(user_system, "GPU_Model", std::string(gpu_model));
-    telemetry_session.AddField(user_system, "GPU_OpenGL_Version", std::string(gl_version));
-}
-
 void RendererOpenGL::RenderToBuffer(std::span<const Tegra::FramebufferConfig> framebuffers,
                                     const Layout::FramebufferLayout& layout, void* dst) {
     GLint old_read_fb;
diff --git a/src/video_core/renderer_opengl/renderer_opengl.h b/src/video_core/renderer_opengl/renderer_opengl.h
index 60d6a1477e..20ed3730f0 100644
--- a/src/video_core/renderer_opengl/renderer_opengl.h
+++ b/src/video_core/renderer_opengl/renderer_opengl.h
@@ -34,8 +34,7 @@ class BlitScreen;
 
 class RendererOpenGL final : public VideoCore::RendererBase {
 public:
-    explicit RendererOpenGL(Core::TelemetrySession& telemetry_session_,
-                            Core::Frontend::EmuWindow& emu_window_,
+    explicit RendererOpenGL(Core::Frontend::EmuWindow& emu_window_,
                             Tegra::MaxwellDeviceMemoryManager& device_memory_, Tegra::GPU& gpu_,
                             std::unique_ptr<Core::Frontend::GraphicsContext> context_);
     ~RendererOpenGL() override;
@@ -53,14 +52,11 @@ public:
     }
 
 private:
-    void AddTelemetryFields();
-
     void RenderToBuffer(std::span<const Tegra::FramebufferConfig> framebuffers,
                         const Layout::FramebufferLayout& layout, void* dst);
     void RenderScreenshot(std::span<const Tegra::FramebufferConfig> framebuffers);
     void RenderAppletCaptureLayer(std::span<const Tegra::FramebufferConfig> framebuffers);
 
-    Core::TelemetrySession& telemetry_session;
     Core::Frontend::EmuWindow& emu_window;
     Tegra::MaxwellDeviceMemoryManager& device_memory;
     Tegra::GPU& gpu;
diff --git a/src/video_core/renderer_vulkan/present/fsr.cpp b/src/video_core/renderer_vulkan/present/fsr.cpp
index 3f708be704..55606deb83 100644
--- a/src/video_core/renderer_vulkan/present/fsr.cpp
+++ b/src/video_core/renderer_vulkan/present/fsr.cpp
@@ -24,8 +24,8 @@ using PushConstants = std::array<u32, 4 * 4>;
 
 FSR::FSR(const Device& device, MemoryAllocator& memory_allocator, size_t image_count,
          VkExtent2D extent)
-    : m_device{device}, m_memory_allocator{memory_allocator},
-      m_image_count{image_count}, m_extent{extent} {
+    : m_device{device}, m_memory_allocator{memory_allocator}, m_image_count{image_count},
+      m_extent{extent} {
 
     CreateImages();
     CreateRenderPasses();
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.cpp b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
index c553f5b3d9..2ec8c08bf5 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.cpp
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.cpp
@@ -1,24 +1,17 @@
 // SPDX-FileCopyrightText: Copyright 2018 yuzu Emulator Project
 // SPDX-License-Identifier: GPL-2.0-or-later
 
-#include <algorithm>
-#include <array>
 #include <cstring>
 #include <memory>
 #include <optional>
-#include <string>
 #include <vector>
 
 #include <fmt/format.h>
 
 #include "common/logging/log.h"
-#include "common/polyfill_ranges.h"
 #include "common/scope_exit.h"
 #include "common/settings.h"
-#include "common/telemetry.h"
-#include "core/core_timing.h"
 #include "core/frontend/graphics_context.h"
-#include "core/telemetry_session.h"
 #include "video_core/capture.h"
 #include "video_core/gpu.h"
 #include "video_core/present.h"
@@ -53,37 +46,6 @@ constexpr VkExtent3D CaptureImageExtent{
 };
 
 constexpr VkFormat CaptureFormat = VK_FORMAT_A8B8G8R8_UNORM_PACK32;
-
-std::string GetReadableVersion(u32 version) {
-    return fmt::format("{}.{}.{}", VK_VERSION_MAJOR(version), VK_VERSION_MINOR(version),
-                       VK_VERSION_PATCH(version));
-}
-
-std::string GetDriverVersion(const Device& device) {
-    // Extracted from
-    // https://github.com/SaschaWillems/vulkan.gpuinfo.org/blob/5dddea46ea1120b0df14eef8f15ff8e318e35462/functions.php#L308-L314
-    const u32 version = device.GetDriverVersion();
-
-    if (device.GetDriverID() == VK_DRIVER_ID_NVIDIA_PROPRIETARY) {
-        const u32 major = (version >> 22) & 0x3ff;
-        const u32 minor = (version >> 14) & 0x0ff;
-        const u32 secondary = (version >> 6) & 0x0ff;
-        const u32 tertiary = version & 0x003f;
-        return fmt::format("{}.{}.{}.{}", major, minor, secondary, tertiary);
-    }
-    if (device.GetDriverID() == VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS) {
-        const u32 major = version >> 14;
-        const u32 minor = version & 0x3fff;
-        return fmt::format("{}.{}", major, minor);
-    }
-    return GetReadableVersion(version);
-}
-
-std::string BuildCommaSeparatedExtensions(
-    const std::set<std::string, std::less<>>& available_extensions) {
-    return fmt::format("{}", fmt::join(available_extensions, ","));
-}
-
 } // Anonymous namespace
 
 Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dld,
@@ -98,12 +60,11 @@ Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dl
     return Device(*instance, physical_device, surface, dld);
 }
 
-RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
-                               Core::Frontend::EmuWindow& emu_window,
+RendererVulkan::RendererVulkan(Core::Frontend::EmuWindow& emu_window,
                                Tegra::MaxwellDeviceMemoryManager& device_memory_, Tegra::GPU& gpu_,
                                std::unique_ptr<Core::Frontend::GraphicsContext> context_) try
-    : RendererBase(emu_window, std::move(context_)), telemetry_session(telemetry_session_),
-      device_memory(device_memory_), gpu(gpu_), library(OpenLibrary(context.get())),
+    : RendererBase(emu_window, std::move(context_)), device_memory(device_memory_), gpu(gpu_),
+      library(OpenLibrary(context.get())),
       instance(CreateInstance(*library, dld, VK_API_VERSION_1_1, render_window.GetWindowInfo().type,
                               Settings::values.renderer_debug.GetValue())),
       debug_messenger(Settings::values.renderer_debug ? CreateDebugUtilsCallback(instance)
@@ -128,7 +89,6 @@ RendererVulkan::RendererVulkan(Core::TelemetrySession& telemetry_session_,
         turbo_mode.emplace(instance, dld);
         scheduler.RegisterOnSubmit([this] { turbo_mode->QueueSubmitted(); });
     }
-    Report();
 } catch (const vk::Exception& exception) {
     LOG_ERROR(Render_Vulkan, "Vulkan initialization failed with error: {}", exception.what());
     throw std::runtime_error{fmt::format("Vulkan initialization error {}", exception.what())};
@@ -166,32 +126,6 @@ void RendererVulkan::Composite(std::span<const Tegra::FramebufferConfig> framebu
     rasterizer.TickFrame();
 }
 
-void RendererVulkan::Report() const {
-    using namespace Common::Literals;
-    const std::string vendor_name{device.GetVendorName()};
-    const std::string model_name{device.GetModelName()};
-    const std::string driver_version = GetDriverVersion(device);
-    const std::string driver_name = fmt::format("{} {}", vendor_name, driver_version);
-
-    const std::string api_version = GetReadableVersion(device.ApiVersion());
-
-    const std::string extensions = BuildCommaSeparatedExtensions(device.GetAvailableExtensions());
-
-    const auto available_vram = static_cast<f64>(device.GetDeviceLocalMemory()) / f64{1_GiB};
-
-    LOG_INFO(Render_Vulkan, "Driver: {}", driver_name);
-    LOG_INFO(Render_Vulkan, "Device: {}", model_name);
-    LOG_INFO(Render_Vulkan, "Vulkan: {}", api_version);
-    LOG_INFO(Render_Vulkan, "Available VRAM: {:.2f} GiB", available_vram);
-
-    static constexpr auto field = Common::Telemetry::FieldType::UserSystem;
-    telemetry_session.AddField(field, "GPU_Vendor", vendor_name);
-    telemetry_session.AddField(field, "GPU_Model", model_name);
-    telemetry_session.AddField(field, "GPU_Vulkan_Driver", driver_name);
-    telemetry_session.AddField(field, "GPU_Vulkan_Version", api_version);
-    telemetry_session.AddField(field, "GPU_Vulkan_Extensions", extensions);
-}
-
 vk::Buffer RendererVulkan::RenderToBuffer(std::span<const Tegra::FramebufferConfig> framebuffers,
                                           const Layout::FramebufferLayout& layout, VkFormat format,
                                           VkDeviceSize buffer_size) {
diff --git a/src/video_core/renderer_vulkan/renderer_vulkan.h b/src/video_core/renderer_vulkan/renderer_vulkan.h
index fb9d83412a..77a57f4196 100644
--- a/src/video_core/renderer_vulkan/renderer_vulkan.h
+++ b/src/video_core/renderer_vulkan/renderer_vulkan.h
@@ -40,8 +40,7 @@ Device CreateDevice(const vk::Instance& instance, const vk::InstanceDispatch& dl
 
 class RendererVulkan final : public VideoCore::RendererBase {
 public:
-    explicit RendererVulkan(Core::TelemetrySession& telemtry_session,
-                            Core::Frontend::EmuWindow& emu_window,
+    explicit RendererVulkan(Core::Frontend::EmuWindow& emu_window,
                             Tegra::MaxwellDeviceMemoryManager& device_memory_, Tegra::GPU& gpu_,
                             std::unique_ptr<Core::Frontend::GraphicsContext> context_);
     ~RendererVulkan() override;
@@ -59,15 +58,12 @@ public:
     }
 
 private:
-    void Report() const;
-
     vk::Buffer RenderToBuffer(std::span<const Tegra::FramebufferConfig> framebuffers,
                               const Layout::FramebufferLayout& layout, VkFormat format,
                               VkDeviceSize buffer_size);
     void RenderScreenshot(std::span<const Tegra::FramebufferConfig> framebuffers);
     void RenderAppletCaptureLayer(std::span<const Tegra::FramebufferConfig> framebuffers);
 
-    Core::TelemetrySession& telemetry_session;
     Tegra::MaxwellDeviceMemoryManager& device_memory;
     Tegra::GPU& gpu;
 
diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.cpp b/src/video_core/renderer_vulkan/vk_compute_pass.cpp
index 617f92910c..6455e5eb75 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pass.cpp
+++ b/src/video_core/renderer_vulkan/vk_compute_pass.cpp
@@ -531,8 +531,8 @@ ASTCDecoderPass::ASTCDecoderPass(const Device& device_, Scheduler& scheduler_,
                   ASTC_PASS_DESCRIPTOR_UPDATE_TEMPLATE_ENTRY, ASTC_BANK_INFO,
                   COMPUTE_PUSH_CONSTANT_RANGE<sizeof(AstcPushConstants)>, ASTC_DECODER_COMP_SPV),
       scheduler{scheduler_}, staging_buffer_pool{staging_buffer_pool_},
-      compute_pass_descriptor_queue{compute_pass_descriptor_queue_}, memory_allocator{
-                                                                         memory_allocator_} {}
+      compute_pass_descriptor_queue{compute_pass_descriptor_queue_},
+      memory_allocator{memory_allocator_} {}
 
 ASTCDecoderPass::~ASTCDecoderPass() = default;
 
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
index 73e585c2b7..689c7d760c 100644
--- a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
+++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp
@@ -31,8 +31,8 @@ ComputePipeline::ComputePipeline(const Device& device_, vk::PipelineCache& pipel
                                  PipelineStatistics* pipeline_statistics,
                                  VideoCore::ShaderNotify* shader_notify, const Shader::Info& info_,
                                  vk::ShaderModule spv_module_)
-    : device{device_},
-      pipeline_cache(pipeline_cache_), guest_descriptor_queue{guest_descriptor_queue_}, info{info_},
+    : device{device_}, pipeline_cache(pipeline_cache_),
+      guest_descriptor_queue{guest_descriptor_queue_}, info{info_},
       spv_module(std::move(spv_module_)) {
     if (shader_notify) {
         shader_notify->MarkShaderBuilding();
diff --git a/src/video_core/renderer_vulkan/vk_present_manager.cpp b/src/video_core/renderer_vulkan/vk_present_manager.cpp
index 5e7518d968..8fcc5ede32 100644
--- a/src/video_core/renderer_vulkan/vk_present_manager.cpp
+++ b/src/video_core/renderer_vulkan/vk_present_manager.cpp
@@ -100,8 +100,8 @@ PresentManager::PresentManager(const vk::Instance& instance_,
                                Swapchain& swapchain_, vk::SurfaceKHR& surface_)
     : instance{instance_}, render_window{render_window_}, device{device_},
       memory_allocator{memory_allocator_}, scheduler{scheduler_}, swapchain{swapchain_},
-      surface{surface_}, blit_supported{CanBlitToSwapchain(device.GetPhysical(),
-                                                           swapchain.GetImageViewFormat())},
+      surface{surface_},
+      blit_supported{CanBlitToSwapchain(device.GetPhysical(), swapchain.GetImageViewFormat())},
       use_present_thread{Settings::values.async_presentation.GetValue()} {
     SetImageCount();
 
diff --git a/src/video_core/renderer_vulkan/vk_query_cache.cpp b/src/video_core/renderer_vulkan/vk_query_cache.cpp
index a28296bdaf..6c25212819 100644
--- a/src/video_core/renderer_vulkan/vk_query_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_query_cache.cpp
@@ -1161,10 +1161,9 @@ struct QueryCacheRuntimeImpl {
                           StagingBufferPool& staging_pool_,
                           ComputePassDescriptorQueue& compute_pass_descriptor_queue,
                           DescriptorPool& descriptor_pool)
-        : rasterizer{rasterizer_}, device_memory{device_memory_},
-          buffer_cache{buffer_cache_}, device{device_},
-          memory_allocator{memory_allocator_}, scheduler{scheduler_}, staging_pool{staging_pool_},
-          guest_streamer(0, runtime),
+        : rasterizer{rasterizer_}, device_memory{device_memory_}, buffer_cache{buffer_cache_},
+          device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_},
+          staging_pool{staging_pool_}, guest_streamer(0, runtime),
           sample_streamer(static_cast<size_t>(QueryType::ZPassPixelCount64), runtime, rasterizer,
                           device, scheduler, memory_allocator, compute_pass_descriptor_queue,
                           descriptor_pool),
diff --git a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
index 03a0b7280b..9f24741493 100644
--- a/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
+++ b/src/video_core/renderer_vulkan/vk_staging_buffer_pool.cpp
@@ -49,8 +49,8 @@ size_t GetStreamBufferSize(const Device& device) {
 StagingBufferPool::StagingBufferPool(const Device& device_, MemoryAllocator& memory_allocator_,
                                      Scheduler& scheduler_)
     : device{device_}, memory_allocator{memory_allocator_}, scheduler{scheduler_},
-      stream_buffer_size{GetStreamBufferSize(device)}, region_size{stream_buffer_size /
-                                                                   StagingBufferPool::NUM_SYNCS} {
+      stream_buffer_size{GetStreamBufferSize(device)},
+      region_size{stream_buffer_size / StagingBufferPool::NUM_SYNCS} {
     VkBufferCreateInfo stream_ci = {
         .sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO,
         .pNext = nullptr,
diff --git a/src/video_core/shader_environment.cpp b/src/video_core/shader_environment.cpp
index 282bb04ae5..54d2b95f29 100644
--- a/src/video_core/shader_environment.cpp
+++ b/src/video_core/shader_environment.cpp
@@ -398,8 +398,8 @@ u32 GraphicsEnvironment::ReadViewportTransformState() {
 ComputeEnvironment::ComputeEnvironment(Tegra::Engines::KeplerCompute& kepler_compute_,
                                        Tegra::MemoryManager& gpu_memory_, GPUVAddr program_base_,
                                        u32 start_address_)
-    : GenericEnvironment{gpu_memory_, program_base_, start_address_}, kepler_compute{
-                                                                          &kepler_compute_} {
+    : GenericEnvironment{gpu_memory_, program_base_, start_address_},
+      kepler_compute{&kepler_compute_} {
     const auto& qmd{kepler_compute->launch_description};
     stage = Shader::Stage::Compute;
     local_memory_size = qmd.local_pos_alloc + qmd.local_crs_alloc;
diff --git a/src/video_core/video_core.cpp b/src/video_core/video_core.cpp
index 0efb7b49d5..fba258113d 100644
--- a/src/video_core/video_core.cpp
+++ b/src/video_core/video_core.cpp
@@ -6,7 +6,6 @@
 #include "common/logging/log.h"
 #include "common/settings.h"
 #include "core/core.h"
-#include "video_core/host1x/gpu_device_memory_manager.h"
 #include "video_core/host1x/host1x.h"
 #include "video_core/renderer_base.h"
 #include "video_core/renderer_null/renderer_null.h"
@@ -19,16 +18,15 @@ namespace {
 std::unique_ptr<VideoCore::RendererBase> CreateRenderer(
     Core::System& system, Core::Frontend::EmuWindow& emu_window, Tegra::GPU& gpu,
     std::unique_ptr<Core::Frontend::GraphicsContext> context) {
-    auto& telemetry_session = system.TelemetrySession();
     auto& device_memory = system.Host1x().MemoryManager();
 
     switch (Settings::values.renderer_backend.GetValue()) {
     case Settings::RendererBackend::OpenGL:
-        return std::make_unique<OpenGL::RendererOpenGL>(telemetry_session, emu_window,
-                                                        device_memory, gpu, std::move(context));
+        return std::make_unique<OpenGL::RendererOpenGL>(emu_window, device_memory, gpu,
+                                                        std::move(context));
     case Settings::RendererBackend::Vulkan:
-        return std::make_unique<Vulkan::RendererVulkan>(telemetry_session, emu_window,
-                                                        device_memory, gpu, std::move(context));
+        return std::make_unique<Vulkan::RendererVulkan>(emu_window, device_memory, gpu,
+                                                        std::move(context));
     case Settings::RendererBackend::Null:
         return std::make_unique<Null::RendererNull>(emu_window, gpu, std::move(context));
     default:
diff --git a/src/video_core/vulkan_common/vulkan_wrapper.h b/src/video_core/vulkan_common/vulkan_wrapper.h
index 757f3c8afb..fd14decd9f 100644
--- a/src/video_core/vulkan_common/vulkan_wrapper.h
+++ b/src/video_core/vulkan_common/vulkan_wrapper.h
@@ -625,8 +625,8 @@ class Image {
 public:
     explicit Image(VkImage handle_, VkDevice owner_, VmaAllocator allocator_,
                    VmaAllocation allocation_, const DeviceDispatch& dld_) noexcept
-        : handle{handle_}, owner{owner_}, allocator{allocator_},
-          allocation{allocation_}, dld{&dld_} {}
+        : handle{handle_}, owner{owner_}, allocator{allocator_}, allocation{allocation_},
+          dld{&dld_} {}
     Image() = default;
 
     Image(const Image&) = delete;
@@ -680,8 +680,8 @@ public:
     explicit Buffer(VkBuffer handle_, VkDevice owner_, VmaAllocator allocator_,
                     VmaAllocation allocation_, std::span<u8> mapped_, bool is_coherent_,
                     const DeviceDispatch& dld_) noexcept
-        : handle{handle_}, owner{owner_}, allocator{allocator_},
-          allocation{allocation_}, mapped{mapped_}, is_coherent{is_coherent_}, dld{&dld_} {}
+        : handle{handle_}, owner{owner_}, allocator{allocator_}, allocation{allocation_},
+          mapped{mapped_}, is_coherent{is_coherent_}, dld{&dld_} {}
     Buffer() = default;
 
     Buffer(const Buffer&) = delete;
@@ -689,8 +689,8 @@ public:
 
     Buffer(Buffer&& rhs) noexcept
         : handle{std::exchange(rhs.handle, nullptr)}, owner{rhs.owner}, allocator{rhs.allocator},
-          allocation{rhs.allocation}, mapped{rhs.mapped},
-          is_coherent{rhs.is_coherent}, dld{rhs.dld} {}
+          allocation{rhs.allocation}, mapped{rhs.mapped}, is_coherent{rhs.is_coherent},
+          dld{rhs.dld} {}
 
     Buffer& operator=(Buffer&& rhs) noexcept {
         Release();
diff --git a/src/web_service/CMakeLists.txt b/src/web_service/CMakeLists.txt
index 1abf366960..6238d99092 100644
--- a/src/web_service/CMakeLists.txt
+++ b/src/web_service/CMakeLists.txt
@@ -5,8 +5,6 @@ add_library(web_service STATIC
     announce_room_json.cpp
     announce_room_json.h
     precompiled_headers.h
-    telemetry_json.cpp
-    telemetry_json.h
     verify_login.cpp
     verify_login.h
     verify_user_jwt.cpp
diff --git a/src/web_service/telemetry_json.cpp b/src/web_service/telemetry_json.cpp
deleted file mode 100644
index 51c7920045..0000000000
--- a/src/web_service/telemetry_json.cpp
+++ /dev/null
@@ -1,130 +0,0 @@
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <nlohmann/json.hpp>
-#include "common/detached_tasks.h"
-#include "web_service/telemetry_json.h"
-#include "web_service/web_backend.h"
-#include "web_service/web_result.h"
-
-namespace WebService {
-
-namespace Telemetry = Common::Telemetry;
-
-struct TelemetryJson::Impl {
-    Impl(std::string host_, std::string username_, std::string token_)
-        : host{std::move(host_)}, username{std::move(username_)}, token{std::move(token_)} {}
-
-    nlohmann::json& TopSection() {
-        return sections[static_cast<u8>(Telemetry::FieldType::None)];
-    }
-
-    const nlohmann::json& TopSection() const {
-        return sections[static_cast<u8>(Telemetry::FieldType::None)];
-    }
-
-    template <class T>
-    void Serialize(Telemetry::FieldType type, const std::string& name, T value) {
-        sections[static_cast<u8>(type)][name] = value;
-    }
-
-    void SerializeSection(Telemetry::FieldType type, const std::string& name) {
-        TopSection()[name] = sections[static_cast<unsigned>(type)];
-    }
-
-    nlohmann::json output;
-    std::array<nlohmann::json, 7> sections;
-    std::string host;
-    std::string username;
-    std::string token;
-};
-
-TelemetryJson::TelemetryJson(std::string host, std::string username, std::string token)
-    : impl{std::make_unique<Impl>(std::move(host), std::move(username), std::move(token))} {}
-TelemetryJson::~TelemetryJson() = default;
-
-void TelemetryJson::Visit(const Telemetry::Field<bool>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<double>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<float>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<u8>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<u16>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<u32>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<u64>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<s8>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<s16>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<s32>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<s64>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<std::string>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue());
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<const char*>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), std::string(field.GetValue()));
-}
-
-void TelemetryJson::Visit(const Telemetry::Field<std::chrono::microseconds>& field) {
-    impl->Serialize(field.GetType(), field.GetName(), field.GetValue().count());
-}
-
-void TelemetryJson::Complete() {
-    impl->SerializeSection(Telemetry::FieldType::App, "App");
-    impl->SerializeSection(Telemetry::FieldType::Session, "Session");
-    impl->SerializeSection(Telemetry::FieldType::Performance, "Performance");
-    impl->SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig");
-    impl->SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem");
-
-    auto content = impl->TopSection().dump();
-    // Send the telemetry async but don't handle the errors since they were written to the log
-    Common::DetachedTasks::AddTask([host{impl->host}, content]() {
-        Client{host, "", ""}.PostJson("/telemetry", content, true);
-    });
-}
-
-bool TelemetryJson::SubmitTestcase() {
-    impl->SerializeSection(Telemetry::FieldType::App, "App");
-    impl->SerializeSection(Telemetry::FieldType::Session, "Session");
-    impl->SerializeSection(Telemetry::FieldType::UserFeedback, "UserFeedback");
-    impl->SerializeSection(Telemetry::FieldType::UserSystem, "UserSystem");
-    impl->SerializeSection(Telemetry::FieldType::UserConfig, "UserConfig");
-
-    auto content = impl->TopSection().dump();
-    Client client(impl->host, impl->username, impl->token);
-    auto value = client.PostJson("/gamedb/testcase", content, false);
-
-    return value.result_code == WebResult::Code::Success;
-}
-
-} // namespace WebService
diff --git a/src/web_service/telemetry_json.h b/src/web_service/telemetry_json.h
deleted file mode 100644
index 4cef345d55..0000000000
--- a/src/web_service/telemetry_json.h
+++ /dev/null
@@ -1,44 +0,0 @@
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project & 2024 suyu Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#pragma once
-
-#include <chrono>
-#include <string>
-#include "common/telemetry.h"
-
-namespace WebService {
-
-/**
- * Implementation of VisitorInterface that serialized telemetry into JSON, and submits it to the
- * suyu web service
- */
-class TelemetryJson : public Common::Telemetry::VisitorInterface {
-public:
-    TelemetryJson(std::string host, std::string username, std::string token);
-    ~TelemetryJson() override;
-
-    void Visit(const Common::Telemetry::Field<bool>& field) override;
-    void Visit(const Common::Telemetry::Field<double>& field) override;
-    void Visit(const Common::Telemetry::Field<float>& field) override;
-    void Visit(const Common::Telemetry::Field<u8>& field) override;
-    void Visit(const Common::Telemetry::Field<u16>& field) override;
-    void Visit(const Common::Telemetry::Field<u32>& field) override;
-    void Visit(const Common::Telemetry::Field<u64>& field) override;
-    void Visit(const Common::Telemetry::Field<s8>& field) override;
-    void Visit(const Common::Telemetry::Field<s16>& field) override;
-    void Visit(const Common::Telemetry::Field<s32>& field) override;
-    void Visit(const Common::Telemetry::Field<s64>& field) override;
-    void Visit(const Common::Telemetry::Field<std::string>& field) override;
-    void Visit(const Common::Telemetry::Field<const char*>& field) override;
-    void Visit(const Common::Telemetry::Field<std::chrono::microseconds>& field) override;
-
-    void Complete() override;
-    bool SubmitTestcase() override;
-
-private:
-    struct Impl;
-    std::unique_ptr<Impl> impl;
-};
-
-} // namespace WebService