feat: Controller Overlay

This commit is contained in:
collecting
2025-10-29 05:22:42 +00:00
parent fa36de9b39
commit 94b77d68ef

View File

@@ -156,6 +156,8 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
#include "citron/about_dialog.h" #include "citron/about_dialog.h"
#include "citron/bootmanager.h" #include "citron/bootmanager.h"
#include "citron/compatdb.h" #include "citron/compatdb.h"
#include "citron/controller_overlay.h"
#include "core/core.h"
#include "citron/compatibility_list.h" #include "citron/compatibility_list.h"
#include "citron/configuration/configure_dialog.h" #include "citron/configuration/configure_dialog.h"
#include "citron/configuration/configure_input_per_game.h" #include "citron/configuration/configure_input_per_game.h"
@@ -181,7 +183,6 @@ static FileSys::VirtualFile VfsDirectoryCreateFileWrapper(const FileSys::Virtual
#include "citron/util/clickable_label.h" #include "citron/util/clickable_label.h"
#include "citron/util/performance_overlay.h" #include "citron/util/performance_overlay.h"
#include "citron/util/multiplayer_room_overlay.h" #include "citron/util/multiplayer_room_overlay.h"
#include "citron/util/title_ids.h"
#include "citron/util/vram_overlay.h" #include "citron/util/vram_overlay.h"
#include "citron/vk_device_info.h" #include "citron/vk_device_info.h"
@@ -1668,6 +1669,9 @@ void GMainWindow::ConnectMenuEvents() {
connect_menu(ui->action_Install_Keys, &GMainWindow::OnInstallDecryptionKeys); connect_menu(ui->action_Install_Keys, &GMainWindow::OnInstallDecryptionKeys);
connect_menu(ui->action_Check_For_Updates, &GMainWindow::OnCheckForUpdates); connect_menu(ui->action_Check_For_Updates, &GMainWindow::OnCheckForUpdates);
connect_menu(ui->action_About, &GMainWindow::OnAbout); connect_menu(ui->action_About, &GMainWindow::OnAbout);
connect(ui->actionControllerOverlay, &QAction::triggered, this, &GMainWindow::OnToggleControllerOverlay);
} }
void GMainWindow::UpdateMenuState() { void GMainWindow::UpdateMenuState() {
@@ -2020,8 +2024,7 @@ void GMainWindow::BootGame(const QString& filename, Service::AM::FrontendAppletP
system->ApplySettings(); system->ApplySettings();
// Final Fantasy Tactics requires single-core mode to boot properly // Final Fantasy Tactics requires single-core mode to boot properly
if (title_id == UICommon::TitleID::FinalFantasyTactics) { if (title_id == 0x010038B015560000ULL) {
LOG_INFO(Frontend, "Applying workaround: forcing single-core mode for Final Fantasy Tactics");
Settings::values.use_multi_core.SetValue(false); Settings::values.use_multi_core.SetValue(false);
} }
} }
@@ -4924,6 +4927,16 @@ void GMainWindow::OnAbout() {
aboutDialog.exec(); aboutDialog.exec();
} }
void GMainWindow::OnToggleControllerOverlay() {
const bool visible = ui->actionControllerOverlay->isChecked();
if (visible && !controller_overlay) {
controller_overlay = new ControllerOverlay(this);
}
if (controller_overlay) {
controller_overlay->setVisible(visible);
}
}
void GMainWindow::OnToggleFilterBar() { void GMainWindow::OnToggleFilterBar() {
game_list->SetFilterVisible(ui->action_Show_Filter_Bar->isChecked()); game_list->SetFilterVisible(ui->action_Show_Filter_Bar->isChecked());
if (ui->action_Show_Filter_Bar->isChecked()) { if (ui->action_Show_Filter_Bar->isChecked()) {