mirror of
https://github.com/libretro/dolphin
synced 2024-12-22 13:16:32 +00:00
cc858c63b8
Changed several enums from Memmap.h to be static vars and implemented Get functions to query them. This seems to have boosted speed a bit in some titles? The new variables and some previously statically initialized items are now initialized via Memory::Init() and the new AddressSpace::Init(). s_ram_size_real and the new s_exram_size_real in particular are initialized from new OnionConfig values "MAIN_MEM1_SIZE" and "MAIN_MEM2_SIZE", only if "MAIN_RAM_OVERRIDE_ENABLE" is true. GUI features have been added to Config > Advanced to adjust the new OnionConfig values. A check has been added to State::doState to ensure savestates with memory configurations different from the current settings aren't loaded. The STATE_VERSION is now 115. FIFO Files have been updated from version 4 to version 5, now including the MEM1 and MEM2 sizes from the time of DFF creation. FIFO Logs not using the new features (OnionConfig MAIN_RAM_OVERRIDE_ENABLE is false) are still backwards compatible. FIFO Logs that do use the new features have a MIN_LOADER_VERSION of 5. Thanks to the order of function calls, FIFO logs are able to automatically configure the new OnionConfig settings to match what is needed. This is a bit hacky, though, so I also threw in a failsafe for if the conditions that allow this to work ever go away. I took the liberty of adding a log message to explain why the core fails to initialize if the MIN_LOADER_VERSION is too great. Some IOS code has had the function "RAMOverrideForIOSMemoryValues" appended to it to recalculate IOS Memory Values from retail IOSes/apploaders to fit the extended memory sizes. Worry not, if MAIN_RAM_OVERRIDE_ENABLE is false, this function does absolutely nothing. A hotfix in DolphinQt/MenuBar.cpp has been implemented for RAM Override.
51 lines
1 KiB
C++
51 lines
1 KiB
C++
// Copyright 2017 Dolphin Emulator Project
|
|
// Licensed under GPLv2+
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <vector>
|
|
|
|
#include <QWidget>
|
|
|
|
class QCheckBox;
|
|
class QComboBox;
|
|
class QLabel;
|
|
class QRadioButton;
|
|
class QSlider;
|
|
class QDateTimeEdit;
|
|
|
|
namespace Core
|
|
{
|
|
enum class State;
|
|
}
|
|
|
|
class AdvancedPane final : public QWidget
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit AdvancedPane(QWidget* parent = nullptr);
|
|
|
|
private:
|
|
void CreateLayout();
|
|
void ConnectLayout();
|
|
void Update();
|
|
|
|
QComboBox* m_cpu_emulation_engine_combobox;
|
|
QCheckBox* m_enable_mmu_checkbox;
|
|
QCheckBox* m_cpu_clock_override_checkbox;
|
|
QSlider* m_cpu_clock_override_slider;
|
|
QLabel* m_cpu_clock_override_slider_label;
|
|
QLabel* m_cpu_clock_override_description;
|
|
|
|
QCheckBox* m_custom_rtc_checkbox;
|
|
QDateTimeEdit* m_custom_rtc_datetime;
|
|
|
|
QCheckBox* 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;
|
|
QLabel* m_ram_override_description;
|
|
};
|