From cbfa876fb05a29978ce673eb9eb893e83430375e Mon Sep 17 00:00:00 2001 From: Zephyron Date: Wed, 29 Oct 2025 11:16:18 +1000 Subject: [PATCH] refactor: extract game title IDs into TitleID utility class Signed-off-by: Zephyron --- src/citron/CMakeLists.txt | 1 + src/citron/main.cpp | 4 +++- src/citron/util/title_ids.h | 19 +++++++++++++++++++ 3 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 src/citron/util/title_ids.h diff --git a/src/citron/CMakeLists.txt b/src/citron/CMakeLists.txt index 3d87b9515..2688ada31 100644 --- a/src/citron/CMakeLists.txt +++ b/src/citron/CMakeLists.txt @@ -229,6 +229,7 @@ add_executable(citron util/vram_overlay.h util/sequence_dialog/sequence_dialog.cpp util/sequence_dialog/sequence_dialog.h + util/title_ids.h util/url_request_interceptor.cpp util/url_request_interceptor.h util/util.cpp diff --git a/src/citron/main.cpp b/src/citron/main.cpp index 1153a4f39..7c895b353 100644 --- a/src/citron/main.cpp +++ b/src/citron/main.cpp @@ -181,6 +181,7 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual #include "citron/util/clickable_label.h" #include "citron/util/performance_overlay.h" #include "citron/util/multiplayer_room_overlay.h" +#include "citron/util/title_ids.h" #include "citron/util/vram_overlay.h" #include "citron/vk_device_info.h" @@ -2019,7 +2020,8 @@ void GMainWindow::BootGame(const QString& filename, Service::AM::FrontendAppletP system->ApplySettings(); // Final Fantasy Tactics requires single-core mode to boot properly - if (title_id == 0x010038B015560000ULL) { + if (title_id == UICommon::TitleID::FinalFantasyTactics) { + LOG_INFO(Frontend, "Applying workaround: forcing single-core mode for Final Fantasy Tactics"); Settings::values.use_multi_core.SetValue(false); } } diff --git a/src/citron/util/title_ids.h b/src/citron/util/title_ids.h new file mode 100644 index 000000000..b6671a7d0 --- /dev/null +++ b/src/citron/util/title_ids.h @@ -0,0 +1,19 @@ +// SPDX-FileCopyrightText: 2025 citron Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include "common/common_types.h" + +namespace UICommon { + +// Game-specific title IDs for workarounds and special handling +class TitleID { +private: + TitleID() = default; + +public: + static constexpr u64 FinalFantasyTactics = 0x010038B015560000ULL; +}; + +} // namespace UICommon