mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-06-09 00:37:50 +00:00
Compare commits
16 Commits
5bdac2f287
...
4c833ebbee
Author | SHA1 | Date | |
---|---|---|---|
![]() |
4c833ebbee | ||
![]() |
5eb61024c6 | ||
![]() |
a27b845514 | ||
![]() |
1b1ca019a4 | ||
![]() |
241834709b | ||
![]() |
185b080f03 | ||
![]() |
903eafcf65 | ||
![]() |
2a7e8a4003 | ||
![]() |
5ec5db9240 | ||
![]() |
974c56d3c5 | ||
![]() |
ae26b38fc0 | ||
![]() |
2de9122b5f | ||
![]() |
a6a5e201b6 | ||
![]() |
e7f22515d3 | ||
![]() |
ec29d120b5 | ||
![]() |
d48e6e25ad |
5
Data/Sys/GameSettings/GD7.ini
Normal file
5
Data/Sys/GameSettings/GD7.ini
Normal file
@ -0,0 +1,5 @@
|
||||
# GD7JB2, GD7E70, GD7PB2 - Dragon Ball Z: Budokai
|
||||
|
||||
[Video_Hacks]
|
||||
# Frame pacing
|
||||
ImmediateXFBEnable = False
|
5
Data/Sys/GameSettings/GZ3.ini
Normal file
5
Data/Sys/GameSettings/GZ3.ini
Normal file
@ -0,0 +1,5 @@
|
||||
# GZ3E70, GZ3PB2 - Dragon Ball Z: Budokai 2
|
||||
|
||||
[Video_Hacks]
|
||||
# Frame pacing
|
||||
ImmediateXFBEnable = False
|
@ -45,6 +45,7 @@ const Info<bool> MAIN_ACCURATE_CPU_CACHE{{System::Main, "Core", "AccurateCPUCach
|
||||
const Info<bool> MAIN_DSP_HLE{{System::Main, "Core", "DSPHLE"}, true};
|
||||
const Info<int> MAIN_MAX_FALLBACK{{System::Main, "Core", "MaxFallback"}, 100};
|
||||
const Info<int> MAIN_TIMING_VARIANCE{{System::Main, "Core", "TimingVariance"}, 40};
|
||||
const Info<bool> MAIN_CORRECT_TIME_DRIFT{{System::Main, "Core", "CorrectTimeDrift"}, false};
|
||||
const Info<bool> MAIN_CPU_THREAD{{System::Main, "Core", "CPUThread"}, true};
|
||||
const Info<bool> MAIN_SYNC_ON_SKIP_IDLE{{System::Main, "Core", "SyncOnSkipIdle"}, true};
|
||||
const Info<std::string> MAIN_DEFAULT_ISO{{System::Main, "Core", "DefaultISO"}, ""};
|
||||
|
@ -63,6 +63,7 @@ extern const Info<bool> MAIN_ACCURATE_CPU_CACHE;
|
||||
extern const Info<bool> MAIN_DSP_HLE;
|
||||
extern const Info<int> MAIN_MAX_FALLBACK;
|
||||
extern const Info<int> MAIN_TIMING_VARIANCE;
|
||||
extern const Info<bool> MAIN_CORRECT_TIME_DRIFT;
|
||||
extern const Info<bool> MAIN_CPU_THREAD;
|
||||
extern const Info<bool> MAIN_SYNC_ON_SKIP_IDLE;
|
||||
extern const Info<std::string> MAIN_DEFAULT_ISO;
|
||||
|
@ -105,10 +105,20 @@ void CoreTimingManager::Init()
|
||||
|
||||
m_last_oc_factor = m_config_oc_factor;
|
||||
m_globals.last_OC_factor_inverted = m_config_oc_inv_factor;
|
||||
|
||||
m_on_state_changed_handle = Core::AddOnStateChangedCallback([this](Core::State state) {
|
||||
if (state == Core::State::Running)
|
||||
{
|
||||
// We don't want Throttle to attempt catch-up for all the time lost while paused.
|
||||
ResetThrottle(GetTicks());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
void CoreTimingManager::Shutdown()
|
||||
{
|
||||
Core::RemoveOnStateChangedCallback(&m_on_state_changed_handle);
|
||||
|
||||
std::lock_guard lk(m_ts_write_lock);
|
||||
MoveEvents();
|
||||
ClearPendingEvents();
|
||||
@ -131,6 +141,8 @@ void CoreTimingManager::RefreshConfig()
|
||||
|
||||
m_max_variance = std::chrono::duration_cast<DT>(DT_ms(Config::Get(Config::MAIN_TIMING_VARIANCE)));
|
||||
|
||||
m_correct_time_drift = Config::Get(Config::MAIN_CORRECT_TIME_DRIFT);
|
||||
|
||||
if (AchievementManager::GetInstance().IsHardcoreModeActive() &&
|
||||
Config::Get(Config::MAIN_EMULATION_SPEED) < 1.0f &&
|
||||
Config::Get(Config::MAIN_EMULATION_SPEED) > 0.0f)
|
||||
@ -428,7 +440,9 @@ void CoreTimingManager::Throttle(const s64 target_cycle)
|
||||
const TimePoint time = Clock::now();
|
||||
|
||||
const TimePoint min_target = time - m_max_fallback;
|
||||
if (target_time < min_target)
|
||||
|
||||
// "Correct Time Drift" setting prevents timing relaxing.
|
||||
if (!m_correct_time_drift && target_time < min_target)
|
||||
{
|
||||
// Core is running too slow.. i.e. CPU bottleneck.
|
||||
const DT adjustment = min_target - target_time;
|
||||
|
@ -211,6 +211,7 @@ private:
|
||||
|
||||
DT m_max_fallback = {};
|
||||
DT m_max_variance = {};
|
||||
bool m_correct_time_drift = false;
|
||||
double m_emulation_speed = 1.0;
|
||||
|
||||
bool IsSpeedUnlimited() const;
|
||||
@ -225,6 +226,8 @@ private:
|
||||
std::atomic_bool m_use_precision_timer = false;
|
||||
Common::PrecisionTimer m_precision_cpu_timer;
|
||||
Common::PrecisionTimer m_precision_gpu_timer;
|
||||
|
||||
int m_on_state_changed_handle;
|
||||
};
|
||||
|
||||
} // namespace CoreTiming
|
||||
|
@ -78,8 +78,8 @@ std::string USBHost::GetDeviceNameFromVIDPID(u16 vid, u16 pid)
|
||||
libusb_get_string_descriptor_ascii(handle, desc.iProduct, buffer, sizeof(buffer)) > 0)
|
||||
{
|
||||
device_name = reinterpret_cast<char*>(buffer);
|
||||
libusb_close(handle);
|
||||
}
|
||||
libusb_close(handle);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -15,7 +15,6 @@
|
||||
AboutDialog::AboutDialog(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowTitle(tr("About Dolphin"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
QString branch_str = QString::fromStdString(Common::GetScmBranchStr());
|
||||
const int commits_ahead = Common::GetScmCommitsAheadMaster();
|
||||
|
@ -27,7 +27,6 @@
|
||||
AchievementsWindow::AchievementsWindow(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowTitle(tr("Achievements"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateMainLayout();
|
||||
ConnectWidgets();
|
||||
|
@ -26,7 +26,6 @@ CheatsManager::CheatsManager(Core::System& system, QWidget* parent)
|
||||
: QDialog(parent), m_system(system)
|
||||
{
|
||||
setWindowTitle(tr("Cheats Manager"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this,
|
||||
&CheatsManager::OnStateChanged);
|
||||
|
@ -23,7 +23,6 @@
|
||||
|
||||
CheatCodeEditor::CheatCodeEditor(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowTitle(tr("Cheat Code Editor"));
|
||||
|
||||
CreateWidgets();
|
||||
|
@ -80,6 +80,36 @@ void ConfigSlider::OnConfigChanged()
|
||||
}
|
||||
}
|
||||
|
||||
ConfigSliderU32::ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting,
|
||||
u32 scale)
|
||||
: ConfigSliderU32(minimum, maximum, setting, nullptr, scale)
|
||||
{
|
||||
}
|
||||
|
||||
ConfigSliderU32::ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting,
|
||||
Config::Layer* layer, u32 scale)
|
||||
: ConfigControl(Qt::Horizontal, setting.GetLocation(), layer), m_setting(setting),
|
||||
m_scale(scale)
|
||||
|
||||
{
|
||||
setMinimum(minimum);
|
||||
setMaximum(maximum);
|
||||
setValue(ReadValue(setting));
|
||||
OnConfigChanged();
|
||||
|
||||
connect(this, &ConfigSliderU32::valueChanged, this, &ConfigSliderU32::Update);
|
||||
}
|
||||
|
||||
void ConfigSliderU32::Update(u32 value)
|
||||
{
|
||||
SaveValue(m_setting, value * m_scale);
|
||||
}
|
||||
|
||||
void ConfigSliderU32::OnConfigChanged()
|
||||
{
|
||||
setValue(ReadValue(m_setting) / m_scale);
|
||||
}
|
||||
|
||||
ConfigSliderLabel::ConfigSliderLabel(const QString& text, ConfigSlider* slider)
|
||||
: QLabel(text), m_slider(QPointer<ConfigSlider>(slider))
|
||||
{
|
||||
|
@ -11,6 +11,7 @@
|
||||
#include "DolphinQt/Config/ConfigControls/ConfigControl.h"
|
||||
#include "DolphinQt/Config/ToolTipControls/ToolTipSlider.h"
|
||||
|
||||
#include "Common/CommonTypes.h"
|
||||
#include "Common/Config/ConfigInfo.h"
|
||||
|
||||
class ConfigSlider final : public ConfigControl<ToolTipSlider>
|
||||
@ -38,6 +39,25 @@ private:
|
||||
std::vector<int> m_tick_values;
|
||||
};
|
||||
|
||||
class ConfigSliderU32 final : public ConfigControl<ToolTipSlider>
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting, u32 scale = 1);
|
||||
ConfigSliderU32(u32 minimum, u32 maximum, const Config::Info<u32>& setting, Config ::Layer* layer,
|
||||
u32 scale = 1);
|
||||
|
||||
void Update(u32 value);
|
||||
|
||||
protected:
|
||||
void OnConfigChanged() override;
|
||||
|
||||
private:
|
||||
const Config::Info<u32> m_setting;
|
||||
|
||||
u32 m_scale = 1;
|
||||
};
|
||||
|
||||
class ConfigSliderLabel final : public QLabel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
@ -17,7 +17,6 @@ ControllerInterfaceWindow::ControllerInterfaceWindow(QWidget* parent) : QDialog(
|
||||
CreateMainLayout();
|
||||
|
||||
setWindowTitle(tr("Alternate Input Sources"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
}
|
||||
|
||||
void ControllerInterfaceWindow::CreateMainLayout()
|
||||
|
@ -29,7 +29,6 @@ DualShockUDPClientAddServerDialog::DualShockUDPClientAddServerDialog(QWidget* pa
|
||||
void DualShockUDPClientAddServerDialog::CreateWidgets()
|
||||
{
|
||||
setWindowTitle(tr("Add New DSU Server"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
m_main_layout = new QGridLayout;
|
||||
|
||||
|
@ -17,7 +17,6 @@ FreeLookWindow::FreeLookWindow(QWidget* parent) : QDialog(parent)
|
||||
ConnectWidgets();
|
||||
|
||||
setWindowTitle(tr("Free Look Settings"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
}
|
||||
|
||||
void FreeLookWindow::CreateMainLayout()
|
||||
|
@ -22,7 +22,6 @@
|
||||
ColorCorrectionConfigWindow::ColorCorrectionConfigWindow(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowTitle(tr("Color Correction Configuration"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
Create();
|
||||
ConnectWidgets();
|
||||
|
@ -28,7 +28,6 @@ GraphicsWindow::GraphicsWindow(MainWindow* parent) : QDialog(parent), m_main_win
|
||||
CreateMainLayout();
|
||||
|
||||
setWindowTitle(tr("Graphics"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
OnBackendChanged(QString::fromStdString(Config::Get(Config::MAIN_GFX_BACKEND)));
|
||||
|
||||
|
@ -42,7 +42,6 @@ PostProcessingConfigWindow::PostProcessingConfigWindow(EnhancementsWidget* paren
|
||||
}
|
||||
|
||||
setWindowTitle(tr("Post-Processing Shader Configuration"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
PopulateGroups();
|
||||
Create();
|
||||
|
@ -17,8 +17,6 @@
|
||||
GCPadWiiUConfigDialog::GCPadWiiUConfigDialog(int port, QWidget* parent)
|
||||
: QDialog(parent), m_port{port}
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateLayout();
|
||||
|
||||
LoadSettings();
|
||||
|
@ -268,7 +268,6 @@ IOWindow::IOWindow(MappingWindow* window, ControllerEmu::EmulatedController* con
|
||||
connect(&Settings::Instance(), &Settings::ConfigChanged, this, &IOWindow::ConfigChanged);
|
||||
|
||||
setWindowTitle(type == IOWindow::Type::Input ? tr("Configure Input") : tr("Configure Output"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
ConfigChanged();
|
||||
|
||||
|
@ -65,7 +65,6 @@ MappingWindow::MappingWindow(QWidget* parent, Type type, int port_num)
|
||||
: QDialog(parent), m_port(port_num)
|
||||
{
|
||||
setWindowTitle(tr("Port %1").arg(port_num + 1));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateDevicesLayout();
|
||||
CreateProfilesLayout();
|
||||
|
@ -38,7 +38,6 @@ NewPatchDialog::NewPatchDialog(QWidget* parent, PatchEngine::Patch& patch)
|
||||
: QDialog(parent), m_patch(patch)
|
||||
{
|
||||
setWindowTitle(tr("Patch Editor"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateWidgets();
|
||||
ConnectWidgets();
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include "UICommon/GameFile.h"
|
||||
|
||||
PropertiesDialog::PropertiesDialog(QWidget* parent, const UICommon::GameFile& game)
|
||||
: StackedSettingsWindow{parent}
|
||||
: StackedSettingsWindow{parent}, m_filepath(game.GetFilePath())
|
||||
{
|
||||
setWindowTitle(QStringLiteral("%1: %2 - %3")
|
||||
.arg(QString::fromStdString(game.GetFileName()),
|
||||
|
@ -17,6 +17,7 @@ class PropertiesDialog final : public StackedSettingsWindow
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit PropertiesDialog(QWidget* parent, const UICommon::GameFile& game);
|
||||
const std::string& GetFilePath() const { return m_filepath; }
|
||||
|
||||
signals:
|
||||
void OpenGeneralSettings();
|
||||
@ -24,4 +25,7 @@ signals:
|
||||
#ifdef USE_RETRO_ACHIEVEMENTS
|
||||
void OpenAchievementSettings();
|
||||
#endif // USE_RETRO_ACHIEVEMENTS
|
||||
|
||||
private:
|
||||
const std::string m_filepath;
|
||||
};
|
||||
|
@ -24,8 +24,6 @@
|
||||
|
||||
StackedSettingsWindow::StackedSettingsWindow(QWidget* parent) : QDialog{parent}
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
// This eliminates the ugly line between the title bar and window contents with KDE Plasma.
|
||||
setStyleSheet(QStringLiteral("QDialog { border: none; }"));
|
||||
|
||||
|
@ -42,7 +42,6 @@ ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> fi
|
||||
ASSERT(!m_files.empty());
|
||||
|
||||
setWindowTitle(tr("Convert"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
QGridLayout* grid_layout = new QGridLayout;
|
||||
grid_layout->setColumnStretch(1, 1);
|
||||
|
@ -41,7 +41,6 @@ QString HtmlFormatErrorLine(const Common::GekkoAssembler::AssemblerError& err)
|
||||
AssembleInstructionDialog::AssembleInstructionDialog(QWidget* parent, u32 address, u32 value)
|
||||
: QDialog(parent), m_code(value), m_address(address)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowModality(Qt::WindowModal);
|
||||
setWindowTitle(tr("Instruction"));
|
||||
|
||||
|
@ -200,7 +200,7 @@ BranchWatchDialog::BranchWatchDialog(Core::System& system, Core::BranchWatch& br
|
||||
: QDialog(parent), m_system(system), m_branch_watch(branch_watch), m_code_widget(code_widget)
|
||||
{
|
||||
setWindowTitle(tr("Branch Watch Tool"));
|
||||
setWindowFlags((windowFlags() | Qt::WindowMinMaxButtonsHint) & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowFlags(windowFlags() | Qt::WindowMinMaxButtonsHint);
|
||||
|
||||
// Branch Watch Table
|
||||
m_table_view = new QTableView(nullptr);
|
||||
|
@ -24,7 +24,6 @@
|
||||
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent)
|
||||
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::New)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowTitle(tr("New Breakpoint"));
|
||||
CreateWidgets();
|
||||
ConnectWidgets();
|
||||
@ -36,7 +35,6 @@ BreakpointDialog::BreakpointDialog(BreakpointWidget* parent)
|
||||
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TBreakPoint* breakpoint)
|
||||
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::EditBreakPoint)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowTitle(tr("Edit Breakpoint"));
|
||||
CreateWidgets();
|
||||
ConnectWidgets();
|
||||
@ -56,7 +54,6 @@ BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TBreakPoint*
|
||||
BreakpointDialog::BreakpointDialog(BreakpointWidget* parent, const TMemCheck* memcheck)
|
||||
: QDialog(parent), m_parent(parent), m_open_mode(OpenMode::EditMemCheck)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowTitle(tr("Edit Breakpoint"));
|
||||
|
||||
CreateWidgets();
|
||||
|
@ -14,7 +14,6 @@
|
||||
PatchInstructionDialog::PatchInstructionDialog(QWidget* parent, u32 address, u32 value)
|
||||
: QDialog(parent), m_address(address)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowModality(Qt::WindowModal);
|
||||
setWindowTitle(tr("Instruction"));
|
||||
|
||||
|
@ -21,7 +21,6 @@ DiscordJoinRequestDialog::DiscordJoinRequestDialog(QWidget* parent, const std::s
|
||||
: QDialog(parent), m_user_id(id), m_close_timestamp(std::time(nullptr) + s_max_lifetime_seconds)
|
||||
{
|
||||
setWindowTitle(tr("Request to Join Your Party"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
QPixmap avatar_pixmap;
|
||||
|
||||
|
@ -59,10 +59,18 @@ FIFOPlayerWindow::FIFOPlayerWindow(FifoPlayer& fifo_player, FifoRecorder& fifo_r
|
||||
});
|
||||
|
||||
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
|
||||
// We don't want to trigger OnEmulationStarted when going from Paused to Running,
|
||||
// and nothing in UpdateControls treats Paused and Running differently
|
||||
if (state == Core::State::Paused)
|
||||
state = Core::State::Running;
|
||||
|
||||
// Skip redundant updates
|
||||
if (state == m_emu_state)
|
||||
return;
|
||||
|
||||
if (state == Core::State::Running && m_emu_state != Core::State::Paused)
|
||||
UpdateControls();
|
||||
|
||||
if (state == Core::State::Running)
|
||||
OnEmulationStarted();
|
||||
else if (state == Core::State::Uninitialized)
|
||||
OnEmulationStopped();
|
||||
@ -266,8 +274,6 @@ void FIFOPlayerWindow::StopRecording()
|
||||
|
||||
void FIFOPlayerWindow::OnEmulationStarted()
|
||||
{
|
||||
UpdateControls();
|
||||
|
||||
if (m_fifo_player.GetFile())
|
||||
OnFIFOLoaded();
|
||||
}
|
||||
@ -278,7 +284,6 @@ void FIFOPlayerWindow::OnEmulationStopped()
|
||||
if (m_fifo_recorder.IsRecording())
|
||||
StopRecording();
|
||||
|
||||
UpdateControls();
|
||||
// When emulation stops, switch away from the analyzer tab, as it no longer shows anything useful
|
||||
m_tab_widget->setCurrentWidget(m_main_widget);
|
||||
m_analyzer->Update();
|
||||
|
@ -60,7 +60,6 @@ GCMemcardCreateNewDialog::GCMemcardCreateNewDialog(QWidget* parent) : QDialog(pa
|
||||
});
|
||||
|
||||
setWindowTitle(tr("Create New Memory Card"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
}
|
||||
|
||||
GCMemcardCreateNewDialog::~GCMemcardCreateNewDialog() = default;
|
||||
|
@ -98,7 +98,6 @@ GCMemcardManager::GCMemcardManager(QWidget* parent) : QDialog(parent)
|
||||
resize(650, 500);
|
||||
|
||||
setWindowTitle(tr("GameCube Memory Card Manager"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
}
|
||||
|
||||
GCMemcardManager::~GCMemcardManager() = default;
|
||||
|
@ -566,6 +566,15 @@ void GameList::OpenProperties()
|
||||
if (!game)
|
||||
return;
|
||||
|
||||
auto property_windows = this->findChildren<PropertiesDialog*>();
|
||||
auto it =
|
||||
std::ranges::find(property_windows, game->GetFilePath(), &PropertiesDialog::GetFilePath);
|
||||
if (it != property_windows.end())
|
||||
{
|
||||
(*it)->raise();
|
||||
return;
|
||||
}
|
||||
|
||||
PropertiesDialog* properties = new PropertiesDialog(this, *game);
|
||||
|
||||
connect(properties, &PropertiesDialog::OpenGeneralSettings, this, &GameList::OpenGeneralSettings);
|
||||
|
@ -27,7 +27,6 @@ NANDRepairDialog::NANDRepairDialog(const WiiUtils::NANDCheckResult& result, QWid
|
||||
: QDialog(parent)
|
||||
{
|
||||
setWindowTitle(tr("NAND Check"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowIcon(Resources::GetAppIcon());
|
||||
|
||||
QVBoxLayout* main_layout = new QVBoxLayout();
|
||||
|
@ -30,7 +30,6 @@ bool NKitWarningDialog::ShowUnlessDisabled(QWidget* parent)
|
||||
NKitWarningDialog::NKitWarningDialog(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowTitle(tr("NKit Warning"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowIcon(Resources::GetAppIcon());
|
||||
|
||||
QVBoxLayout* main_layout = new QVBoxLayout;
|
||||
|
@ -45,7 +45,6 @@ ChunkedProgressDialog::ChunkedProgressDialog(QWidget* parent) : QDialog(parent)
|
||||
CreateWidgets();
|
||||
ConnectWidgets();
|
||||
setWindowTitle(tr("Data Transfer"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
}
|
||||
|
||||
void ChunkedProgressDialog::CreateWidgets()
|
||||
|
@ -14,7 +14,6 @@
|
||||
GameListDialog::GameListDialog(const GameListModel& game_list_model, QWidget* parent)
|
||||
: QDialog(parent), m_game_list_model(game_list_model)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowTitle(tr("Select a game"));
|
||||
|
||||
CreateWidgets();
|
||||
|
@ -32,7 +32,6 @@
|
||||
NetPlayBrowser::NetPlayBrowser(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowTitle(tr("NetPlay Session Browser"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateWidgets();
|
||||
RestoreSettings();
|
||||
@ -297,7 +296,6 @@ void NetPlayBrowser::accept()
|
||||
{
|
||||
QInputDialog dialog(this);
|
||||
|
||||
dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
dialog.setWindowTitle(tr("Enter password"));
|
||||
dialog.setLabelText(tr("This session requires a password:"));
|
||||
dialog.setWindowModality(Qt::WindowModal);
|
||||
|
@ -97,8 +97,6 @@ NetPlayDialog::NetPlayDialog(const GameListModel& game_list_model,
|
||||
: QDialog(parent), m_game_list_model(game_list_model),
|
||||
m_start_game_callback(std::move(start_game_callback))
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
setWindowTitle(tr("NetPlay"));
|
||||
setWindowIcon(Resources::GetAppIcon());
|
||||
|
||||
|
@ -32,7 +32,6 @@ NetPlaySetupDialog::NetPlaySetupDialog(const GameListModel& game_list_model, QWi
|
||||
: QDialog(parent), m_game_list_model(game_list_model)
|
||||
{
|
||||
setWindowTitle(tr("NetPlay Setup"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateMainLayout();
|
||||
|
||||
|
@ -17,7 +17,6 @@
|
||||
|
||||
PadMappingDialog::PadMappingDialog(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowTitle(tr("Assign Controllers"));
|
||||
|
||||
CreateWidgets();
|
||||
|
@ -26,7 +26,6 @@ public:
|
||||
ParallelProgressDialog(Args&&... args) : m_dialog{std::forward<Args>(args)...}
|
||||
{
|
||||
setParent(m_dialog.parent());
|
||||
m_dialog.setWindowFlags(m_dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
ConnectSignalsAndSlots();
|
||||
}
|
||||
|
||||
|
@ -24,7 +24,6 @@ ResourcePackManager::ResourcePackManager(QWidget* widget) : QDialog(widget)
|
||||
RepopulateTable();
|
||||
|
||||
setWindowTitle(tr("Resource Pack Manager"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
resize(QSize(900, 600));
|
||||
}
|
||||
|
@ -46,7 +46,6 @@ RiivolutionBootWidget::RiivolutionBootWidget(std::string game_id, std::optional<
|
||||
m_base_game_path(std::move(base_game_path))
|
||||
{
|
||||
setWindowTitle(tr("Start with Riivolution Patches"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
CreateWidgets();
|
||||
ConnectWidgets();
|
||||
|
@ -12,7 +12,6 @@
|
||||
#include <QLabel>
|
||||
#include <QRadioButton>
|
||||
#include <QSignalBlocker>
|
||||
#include <QSlider>
|
||||
#include <QVBoxLayout>
|
||||
#include <cmath>
|
||||
|
||||
@ -25,6 +24,8 @@
|
||||
#include "Core/System.h"
|
||||
|
||||
#include "DolphinQt/Config/ConfigControls/ConfigBool.h"
|
||||
#include "DolphinQt/Config/ConfigControls/ConfigFloatSlider.h"
|
||||
#include "DolphinQt/Config/ConfigControls/ConfigSlider.h"
|
||||
#include "DolphinQt/QtUtils/QtUtils.h"
|
||||
#include "DolphinQt/QtUtils/SignalBlocking.h"
|
||||
#include "DolphinQt/Settings.h"
|
||||
@ -89,6 +90,18 @@ void AdvancedPane::CreateLayout()
|
||||
"needed.<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
|
||||
cpu_options_group_layout->addWidget(m_accurate_cpu_cache_checkbox);
|
||||
|
||||
auto* const timing_group = new QGroupBox(tr("Timing"));
|
||||
main_layout->addWidget(timing_group);
|
||||
auto* timing_group_layout = new QVBoxLayout{timing_group};
|
||||
auto* const correct_time_drift =
|
||||
new ConfigBool{tr("Correct Time Drift"), Config::MAIN_CORRECT_TIME_DRIFT};
|
||||
correct_time_drift->SetDescription(
|
||||
tr("Allow the emulated console to run fast after stutters,"
|
||||
"<br>pursuing accurate overall elapsed time unless paused or speed-adjusted."
|
||||
"<br><br>This may be useful for internet play."
|
||||
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
|
||||
timing_group_layout->addWidget(correct_time_drift);
|
||||
|
||||
auto* clock_override = new QGroupBox(tr("Clock Override"));
|
||||
auto* clock_override_layout = new QVBoxLayout();
|
||||
clock_override->setLayout(clock_override_layout);
|
||||
@ -103,12 +116,24 @@ void AdvancedPane::CreateLayout()
|
||||
cpu_clock_override_slider_layout->setContentsMargins(0, 0, 0, 0);
|
||||
clock_override_layout->addLayout(cpu_clock_override_slider_layout);
|
||||
|
||||
m_cpu_clock_override_slider = new QSlider(Qt::Horizontal);
|
||||
m_cpu_clock_override_slider->setRange(1, 400);
|
||||
m_cpu_clock_override_slider = new ConfigFloatSlider(0.01f, 4.0f, Config::MAIN_OVERCLOCK, 0.01f);
|
||||
cpu_clock_override_slider_layout->addWidget(m_cpu_clock_override_slider);
|
||||
|
||||
m_cpu_clock_override_slider_label = new QLabel();
|
||||
cpu_clock_override_slider_layout->addWidget(m_cpu_clock_override_slider_label);
|
||||
m_cpu_label = new QLabel();
|
||||
cpu_clock_override_slider_layout->addWidget(m_cpu_label);
|
||||
|
||||
std::function<void()> cpu_text = [this]() {
|
||||
const float multi = Config::Get(Config::MAIN_OVERCLOCK);
|
||||
const int percent = static_cast<int>(std::round(multi * 100.f));
|
||||
const int core_clock =
|
||||
Core::System::GetInstance().GetSystemTimers().GetTicksPerSecond() / std::pow(10, 6);
|
||||
const int clock = static_cast<int>(std::round(multi * core_clock));
|
||||
m_cpu_label->setText(tr("%1% (%2 MHz)").arg(QString::number(percent), QString::number(clock)));
|
||||
};
|
||||
|
||||
cpu_text();
|
||||
connect(m_cpu_clock_override_slider, &QSlider::valueChanged, this,
|
||||
[this, cpu_text]() { cpu_text(); });
|
||||
|
||||
m_cpu_clock_override_checkbox->SetDescription(
|
||||
tr("Adjusts the emulated CPU's clock rate.<br><br>"
|
||||
@ -135,12 +160,25 @@ void AdvancedPane::CreateLayout()
|
||||
vi_rate_override_slider_layout->setContentsMargins(0, 0, 0, 0);
|
||||
vi_rate_override_layout->addLayout(vi_rate_override_slider_layout);
|
||||
|
||||
m_vi_rate_override_slider = new QSlider(Qt::Horizontal);
|
||||
m_vi_rate_override_slider->setRange(1, 500);
|
||||
m_vi_rate_override_slider = new ConfigFloatSlider(0.01f, 5.0f, Config::MAIN_VI_OVERCLOCK, 0.01f);
|
||||
vi_rate_override_slider_layout->addWidget(m_vi_rate_override_slider);
|
||||
|
||||
m_vi_rate_override_slider_label = new QLabel();
|
||||
vi_rate_override_slider_layout->addWidget(m_vi_rate_override_slider_label);
|
||||
m_vi_label = new QLabel();
|
||||
vi_rate_override_slider_layout->addWidget(m_vi_label);
|
||||
std::function<void()> vi_text = [this]() {
|
||||
const int percent =
|
||||
static_cast<int>(std::round(Config::Get(Config::MAIN_VI_OVERCLOCK) * 100.f));
|
||||
float vps =
|
||||
static_cast<float>(Core::System::GetInstance().GetVideoInterface().GetTargetRefreshRate());
|
||||
if (vps == 0.0f || !Config::Get(Config::MAIN_VI_OVERCLOCK_ENABLE))
|
||||
vps = 59.94f * Config::Get(Config::MAIN_VI_OVERCLOCK);
|
||||
m_vi_label->setText(
|
||||
tr("%1% (%2 VPS)").arg(QString::number(percent), QString::number(vps, 'f', 2)));
|
||||
};
|
||||
|
||||
vi_text();
|
||||
connect(m_vi_rate_override_slider, &QSlider::valueChanged, this,
|
||||
[this, vi_text]() { vi_text(); });
|
||||
|
||||
m_vi_rate_override_checkbox->SetDescription(
|
||||
tr("Adjusts the VBI frequency. Also adjusts the emulated CPU's "
|
||||
@ -167,27 +205,34 @@ void AdvancedPane::CreateLayout()
|
||||
mem1_override_slider_layout->setContentsMargins(0, 0, 0, 0);
|
||||
ram_override_layout->addLayout(mem1_override_slider_layout);
|
||||
|
||||
m_mem1_override_slider = new QSlider(Qt::Horizontal);
|
||||
m_mem1_override_slider->setRange(24, 64);
|
||||
m_mem1_override_slider = new ConfigSliderU32(24, 64, Config::MAIN_MEM1_SIZE, 0x100000);
|
||||
mem1_override_slider_layout->addWidget(m_mem1_override_slider);
|
||||
|
||||
m_mem1_override_slider_label = new QLabel();
|
||||
mem1_override_slider_layout->addWidget(m_mem1_override_slider_label);
|
||||
m_mem1_label =
|
||||
new QLabel(tr("%1 MB (MEM1)").arg(QString::number(m_mem1_override_slider->value())));
|
||||
mem1_override_slider_layout->addWidget(m_mem1_label);
|
||||
connect(m_mem1_override_slider, &QSlider::valueChanged, this, [this](int value) {
|
||||
m_mem1_label->setText(tr("%1 MB (MEM1)").arg(QString::number(value)));
|
||||
});
|
||||
|
||||
auto* mem2_override_slider_layout = new QHBoxLayout();
|
||||
mem2_override_slider_layout->setContentsMargins(0, 0, 0, 0);
|
||||
ram_override_layout->addLayout(mem2_override_slider_layout);
|
||||
|
||||
m_mem2_override_slider = new QSlider(Qt::Horizontal);
|
||||
m_mem2_override_slider->setRange(64, 128);
|
||||
m_mem2_override_slider = new ConfigSliderU32(64, 128, Config::MAIN_MEM2_SIZE, 0x100000);
|
||||
mem2_override_slider_layout->addWidget(m_mem2_override_slider);
|
||||
|
||||
m_mem2_override_slider_label = new QLabel();
|
||||
mem2_override_slider_layout->addWidget(m_mem2_override_slider_label);
|
||||
m_mem2_label =
|
||||
new QLabel(tr("%1 MB (MEM2)").arg(QString::number(m_mem2_override_slider->value())));
|
||||
mem2_override_slider_layout->addWidget(m_mem2_label);
|
||||
connect(m_mem2_override_slider, &QSlider::valueChanged, this, [this](int value) {
|
||||
m_mem2_label->setText(tr("%1 MB (MEM2)").arg(QString::number(value)));
|
||||
});
|
||||
|
||||
m_ram_override_checkbox->SetDescription(
|
||||
tr("Adjusts the amount of RAM in the emulated console.<br><br>"
|
||||
"<b>WARNING</b>: Enabling this will completely break many games.<br>Only a small number "
|
||||
"<b>WARNING</b>: Enabling this will completely break many games.<br>Only a small "
|
||||
"number "
|
||||
"of games can benefit from this."
|
||||
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"));
|
||||
|
||||
@ -227,36 +272,12 @@ void AdvancedPane::ConnectLayout()
|
||||
Config::SetBaseOrCurrent(Config::MAIN_CPU_CORE, cpu_cores[index]);
|
||||
});
|
||||
|
||||
connect(m_cpu_clock_override_slider, &QSlider::valueChanged, [this](int oc_factor) {
|
||||
const float factor = m_cpu_clock_override_slider->value() / 100.f;
|
||||
Config::SetBaseOrCurrent(Config::MAIN_OVERCLOCK, factor);
|
||||
Update();
|
||||
});
|
||||
|
||||
connect(m_vi_rate_override_slider, &QSlider::valueChanged, [this](int oc_factor) {
|
||||
const float factor = m_vi_rate_override_slider->value() / 100.f;
|
||||
Config::SetBaseOrCurrent(Config::MAIN_VI_OVERCLOCK, factor);
|
||||
Update();
|
||||
});
|
||||
|
||||
m_ram_override_checkbox->setChecked(Config::Get(Config::MAIN_RAM_OVERRIDE_ENABLE));
|
||||
connect(m_ram_override_checkbox, &QCheckBox::toggled, [this](bool enable_ram_override) {
|
||||
Config::SetBaseOrCurrent(Config::MAIN_RAM_OVERRIDE_ENABLE, enable_ram_override);
|
||||
Update();
|
||||
});
|
||||
|
||||
connect(m_mem1_override_slider, &QSlider::valueChanged, [this](int slider_value) {
|
||||
const u32 mem1_size = m_mem1_override_slider->value() * 0x100000;
|
||||
Config::SetBaseOrCurrent(Config::MAIN_MEM1_SIZE, mem1_size);
|
||||
Update();
|
||||
});
|
||||
|
||||
connect(m_mem2_override_slider, &QSlider::valueChanged, [this](int slider_value) {
|
||||
const u32 mem2_size = m_mem2_override_slider->value() * 0x100000;
|
||||
Config::SetBaseOrCurrent(Config::MAIN_MEM2_SIZE, mem2_size);
|
||||
Update();
|
||||
});
|
||||
|
||||
connect(m_custom_rtc_datetime, &QDateTimeEdit::dateTimeChanged, [this](QDateTime date_time) {
|
||||
Config::SetBaseOrCurrent(Config::MAIN_CUSTOM_RTC_VALUE,
|
||||
static_cast<u32>(date_time.toSecsSinceEpoch()));
|
||||
@ -295,21 +316,7 @@ void AdvancedPane::Update()
|
||||
}
|
||||
|
||||
m_cpu_clock_override_slider->setEnabled(enable_cpu_clock_override_widgets);
|
||||
m_cpu_clock_override_slider_label->setEnabled(enable_cpu_clock_override_widgets);
|
||||
|
||||
{
|
||||
const QSignalBlocker blocker(m_cpu_clock_override_slider);
|
||||
m_cpu_clock_override_slider->setValue(
|
||||
static_cast<int>(std::round(Config::Get(Config::MAIN_OVERCLOCK) * 100.f)));
|
||||
}
|
||||
|
||||
m_cpu_clock_override_slider_label->setText([] {
|
||||
int core_clock =
|
||||
Core::System::GetInstance().GetSystemTimers().GetTicksPerSecond() / std::pow(10, 6);
|
||||
int percent = static_cast<int>(std::round(Config::Get(Config::MAIN_OVERCLOCK) * 100.f));
|
||||
int clock = static_cast<int>(std::round(Config::Get(Config::MAIN_OVERCLOCK) * core_clock));
|
||||
return tr("%1% (%2 MHz)").arg(QString::number(percent), QString::number(clock));
|
||||
}());
|
||||
m_cpu_label->setEnabled(enable_cpu_clock_override_widgets);
|
||||
|
||||
QFont vi_bf = font();
|
||||
vi_bf.setBold(Config::GetActiveLayerForConfig(Config::MAIN_VI_OVERCLOCK_ENABLE) !=
|
||||
@ -318,53 +325,16 @@ void AdvancedPane::Update()
|
||||
m_vi_rate_override_checkbox->setChecked(enable_vi_rate_override_widgets);
|
||||
|
||||
m_vi_rate_override_slider->setEnabled(enable_vi_rate_override_widgets);
|
||||
m_vi_rate_override_slider_label->setEnabled(enable_vi_rate_override_widgets);
|
||||
|
||||
{
|
||||
const QSignalBlocker blocker(m_vi_rate_override_slider);
|
||||
m_vi_rate_override_slider->setValue(
|
||||
static_cast<int>(std::round(Config::Get(Config::MAIN_VI_OVERCLOCK) * 100.f)));
|
||||
}
|
||||
|
||||
m_vi_rate_override_slider_label->setText([] {
|
||||
int percent = static_cast<int>(std::round(Config::Get(Config::MAIN_VI_OVERCLOCK) * 100.f));
|
||||
float vps =
|
||||
static_cast<float>(Core::System::GetInstance().GetVideoInterface().GetTargetRefreshRate());
|
||||
if (vps == 0.0f || !Config::Get(Config::MAIN_VI_OVERCLOCK_ENABLE))
|
||||
vps = 59.94f * Config::Get(Config::MAIN_VI_OVERCLOCK);
|
||||
return tr("%1% (%2 VPS)").arg(QString::number(percent), QString::number(vps, 'f', 2));
|
||||
}());
|
||||
m_vi_label->setEnabled(enable_vi_rate_override_widgets);
|
||||
|
||||
m_ram_override_checkbox->setEnabled(is_uninitialized);
|
||||
SignalBlocking(m_ram_override_checkbox)->setChecked(enable_ram_override_widgets);
|
||||
|
||||
m_mem1_override_slider->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
m_mem1_override_slider_label->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
|
||||
{
|
||||
const QSignalBlocker blocker(m_mem1_override_slider);
|
||||
const u32 mem1_size = Config::Get(Config::MAIN_MEM1_SIZE) / 0x100000;
|
||||
m_mem1_override_slider->setValue(mem1_size);
|
||||
}
|
||||
|
||||
m_mem1_override_slider_label->setText([] {
|
||||
const u32 mem1_size = Config::Get(Config::MAIN_MEM1_SIZE) / 0x100000;
|
||||
return tr("%1 MB (MEM1)").arg(QString::number(mem1_size));
|
||||
}());
|
||||
m_mem1_label->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
|
||||
m_mem2_override_slider->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
m_mem2_override_slider_label->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
|
||||
{
|
||||
const QSignalBlocker blocker(m_mem2_override_slider);
|
||||
const u32 mem2_size = Config::Get(Config::MAIN_MEM2_SIZE) / 0x100000;
|
||||
m_mem2_override_slider->setValue(mem2_size);
|
||||
}
|
||||
|
||||
m_mem2_override_slider_label->setText([] {
|
||||
const u32 mem2_size = Config::Get(Config::MAIN_MEM2_SIZE) / 0x100000;
|
||||
return tr("%1 MB (MEM2)").arg(QString::number(mem2_size));
|
||||
}());
|
||||
m_mem2_label->setEnabled(enable_ram_override_widgets && is_uninitialized);
|
||||
|
||||
m_custom_rtc_checkbox->setEnabled(is_uninitialized);
|
||||
SignalBlocking(m_custom_rtc_checkbox)->setChecked(Config::Get(Config::MAIN_CUSTOM_RTC_ENABLE));
|
||||
|
@ -8,6 +8,9 @@
|
||||
#include <QWidget>
|
||||
|
||||
class ConfigBool;
|
||||
class ConfigFloatSlider;
|
||||
class ConfigSlider;
|
||||
class ConfigSliderU32;
|
||||
class QCheckBox;
|
||||
class QComboBox;
|
||||
class QLabel;
|
||||
@ -36,19 +39,19 @@ private:
|
||||
ConfigBool* m_pause_on_panic_checkbox;
|
||||
ConfigBool* m_accurate_cpu_cache_checkbox;
|
||||
ConfigBool* m_cpu_clock_override_checkbox;
|
||||
QSlider* m_cpu_clock_override_slider;
|
||||
QLabel* m_cpu_clock_override_slider_label;
|
||||
ConfigFloatSlider* m_cpu_clock_override_slider;
|
||||
QLabel* m_cpu_label;
|
||||
|
||||
ConfigBool* m_vi_rate_override_checkbox;
|
||||
QSlider* m_vi_rate_override_slider;
|
||||
QLabel* m_vi_rate_override_slider_label;
|
||||
ConfigFloatSlider* m_vi_rate_override_slider;
|
||||
QLabel* m_vi_label;
|
||||
|
||||
ConfigBool* m_custom_rtc_checkbox;
|
||||
QDateTimeEdit* m_custom_rtc_datetime;
|
||||
|
||||
ConfigBool* m_ram_override_checkbox;
|
||||
QSlider* m_mem1_override_slider;
|
||||
QLabel* m_mem1_override_slider_label;
|
||||
QSlider* m_mem2_override_slider;
|
||||
QLabel* m_mem2_override_slider_label;
|
||||
ConfigSliderU32* m_mem1_override_slider;
|
||||
QLabel* m_mem1_label;
|
||||
ConfigSliderU32* m_mem2_override_slider;
|
||||
QLabel* m_mem2_label;
|
||||
};
|
||||
|
@ -95,7 +95,6 @@ void BroadbandAdapterSettingsDialog::InitControls()
|
||||
}
|
||||
|
||||
setWindowTitle(window_title);
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
m_address_input = new QLineEdit(current_address);
|
||||
m_address_input->setPlaceholderText(address_placeholder);
|
||||
|
@ -42,7 +42,6 @@ USBDeviceAddToWhitelistDialog::USBDeviceAddToWhitelistDialog(QWidget* parent) :
|
||||
void USBDeviceAddToWhitelistDialog::InitControls()
|
||||
{
|
||||
setWindowTitle(tr("Add New USB Device"));
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
m_whitelist_buttonbox = new QDialogButtonBox();
|
||||
auto* add_button = new QPushButton(tr("Add"));
|
||||
|
@ -45,7 +45,6 @@ ControllerEmu::InputOverrideFunction InputOverrider::GetInputOverrideFunction()
|
||||
|
||||
TASInputWindow::TASInputWindow(QWidget* parent) : QDialog(parent)
|
||||
{
|
||||
setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
setWindowIcon(Resources::GetAppIcon());
|
||||
|
||||
QGridLayout* settings_layout = new QGridLayout;
|
||||
|
@ -59,7 +59,6 @@ void Updater::OnUpdateAvailable(const NewVersionInformation& info)
|
||||
QDialog* dialog = new QDialog(m_parent);
|
||||
dialog->setAttribute(Qt::WA_DeleteOnClose, true);
|
||||
dialog->setWindowTitle(tr("Update available"));
|
||||
dialog->setWindowFlags(dialog->windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
|
||||
auto* label = new QLabel(
|
||||
tr("<h2>A new version of Dolphin is available!</h2>Dolphin %1 is available for "
|
||||
|
@ -96,7 +96,6 @@ static WiiUtils::UpdateResult ShowProgress(QWidget* parent, Callable function, A
|
||||
UpdateProgressDialog dialog{parent};
|
||||
dialog.setLabelText(QObject::tr("Preparing to update...\nThis can take a while."));
|
||||
dialog.setWindowTitle(QObject::tr("Updating"));
|
||||
dialog.setWindowFlags(dialog.windowFlags() & ~Qt::WindowContextHelpButtonHint);
|
||||
// QProgressDialog doesn't set its minimum size correctly.
|
||||
dialog.setMinimumSize(360, 150);
|
||||
|
||||
|
@ -1007,6 +1007,12 @@ ShaderCode GeneratePixelShaderCode(APIType api_type, const ShaderHostConfig& hos
|
||||
out.Write("\tfrag_input.tex{0} = tex{0};\n", i);
|
||||
}
|
||||
|
||||
// Initialize other texture coordinates that are unused
|
||||
for (u32 i = uid_data->genMode_numtexgens; i < 8; i++)
|
||||
{
|
||||
out.Write("\tfrag_input.tex{0} = vec3(0, 0, 0);\n", i);
|
||||
}
|
||||
|
||||
if (!custom_contents.shader.empty())
|
||||
GenerateCustomLighting(&out, uid_data->lighting);
|
||||
|
||||
@ -2061,11 +2067,7 @@ static void WriteFragmentDefinitions(APIType api_type, const ShaderHostConfig& h
|
||||
out.Write("\tint layer;\n");
|
||||
out.Write("\tvec3 normal;\n");
|
||||
out.Write("\tvec3 position;\n");
|
||||
for (u32 i = 0; i < uid_data->genMode_numtexgens; i++)
|
||||
{
|
||||
out.Write("\tvec3 tex{};\n", i);
|
||||
}
|
||||
for (u32 i = uid_data->genMode_numtexgens; i < 8; i++)
|
||||
for (u32 i = 0; i < 8; i++)
|
||||
{
|
||||
out.Write("\tvec3 tex{};\n", i);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user