mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-15 22:21:25 +00:00
Migrate Savestates Home Menu (#16340)
This commit is contained in:
parent
b073d08a52
commit
b94ddb0cd3
12
BUILDING.md
12
BUILDING.md
@ -8,7 +8,7 @@ Other instructions may be found [here](https://wiki.rpcs3.net/index.php?title=Bu
|
||||
### Windows 10 or later
|
||||
|
||||
The following tools are required to build RPCS3 on Windows 10 or later:
|
||||
- [Visual Studio 2022](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community) (or at least Visual Studio 2019 16.11.xx+ as C++20 is not included in previous versions)
|
||||
- [Visual Studio 2022](https://visualstudio.microsoft.com/thank-you-downloading-visual-studio/?sku=Community)
|
||||
- **Optional** - [CMake 3.28.0+](https://www.cmake.org/download/) (add to PATH)
|
||||
|
||||
**NOTES:**
|
||||
@ -25,13 +25,13 @@ The following tools are required to build RPCS3 on Windows 10 or later:
|
||||
The `sln` solution available only on **Visual Studio** is the preferred building solution. It easily allows to build the **RPCS3** application in `Release` and `Debug` mode.
|
||||
|
||||
In order to build **RPCS3** with the `sln` solution (with **Visual Studio**), **Qt** libs need to be detected. To detect the libs:
|
||||
- add and set the `QTDIR` environment variable, e.g. `<QtInstallFolder>\6.8.0\msvc2019_64\`
|
||||
- or use the [Visual Studio Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2019)
|
||||
- add and set the `QTDIR` environment variable, e.g. `<QtInstallFolder>\6.8.0\msvc2022_64\`
|
||||
- or use the [Visual Studio Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.QtVisualStudioTools2022)
|
||||
|
||||
**NOTE:** If you have issues with the **Visual Studio Qt Plugin**, you may want to uninstall it and install the [Legacy Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.LEGACYQtVisualStudioTools2019) instead.
|
||||
**NOTE:** If you have issues with the **Visual Studio Qt Plugin**, you may want to uninstall it and install the [Legacy Qt Plugin](https://marketplace.visualstudio.com/items?itemName=TheQtCompany.LEGACYQtVisualStudioTools2022) instead.
|
||||
|
||||
In order to build **RPCS3** with the `CMake` solution (with both **Visual Studio** and standalone **CMake** tool):
|
||||
- add and set the `CMAKE_PREFIX_PATH` environment variable to the **Qt** libs path, e.g. `<QtInstallFolder>\6.8.0\msvc2019_64\`
|
||||
- add and set the `CMAKE_PREFIX_PATH` environment variable to the **Qt** libs path, e.g. `<QtInstallFolder>\6.8.0\msvc2022_64\`
|
||||
|
||||
### Linux
|
||||
|
||||
@ -119,7 +119,7 @@ Start **Visual Studio**, click on `Open a project or solution` and select the `r
|
||||
##### Configuring the Qt Plugin (if used)
|
||||
|
||||
1) go to `Extensions->Qt VS Tools->Qt Versions`
|
||||
2) add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\6.8.0\msvc2019_64`, version will fill in automatically
|
||||
2) add the path to your Qt installation with compiler e.g. `<QtInstallFolder>\6.8.0\msvc2022_64`, version will fill in automatically
|
||||
3) go to `Extensions->Qt VS Tools->Options->Legacy Project Format`. (Only available in the **Legacy Qt Plugin**)
|
||||
4) set `Build: Run pre-build setup` to `true`. (Only available in the **Legacy Qt Plugin**)
|
||||
|
||||
|
@ -523,6 +523,7 @@ target_sources(rpcs3_emu PRIVATE
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_message_box.cpp
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_page.cpp
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_settings.cpp
|
||||
RSX/Overlays/HomeMenu/overlay_home_menu_savestate.cpp
|
||||
RSX/Overlays/Network/overlay_recvmessage_dialog.cpp
|
||||
RSX/Overlays/Network/overlay_sendmessage_dialog.cpp
|
||||
RSX/Overlays/overlays.cpp
|
||||
|
@ -1,6 +1,8 @@
|
||||
#include "stdafx.h"
|
||||
#include "overlay_home_menu_main_menu.h"
|
||||
#include "overlay_home_menu_components.h"
|
||||
#include "overlay_home_menu_settings.h"
|
||||
#include "overlay_home_menu_savestate.h"
|
||||
#include "Emu/RSX/Overlays/FriendsList/overlay_friends_list_dialog.h"
|
||||
#include "Emu/RSX/Overlays/overlay_manager.h"
|
||||
#include "Emu/System.h"
|
||||
@ -8,7 +10,6 @@
|
||||
|
||||
extern atomic_t<bool> g_user_asked_for_recording;
|
||||
extern atomic_t<bool> g_user_asked_for_screenshot;
|
||||
extern bool boot_last_savestate(bool testing);
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
@ -74,48 +75,7 @@ namespace rsx
|
||||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
const bool suspend_mode = g_cfg.savestate.suspend_emu.get();
|
||||
|
||||
std::unique_ptr<overlay_element> save_state = std::make_unique<home_menu_entry>(get_localized_string(suspend_mode ? localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT : localized_string_id::HOME_MENU_SAVESTATE));
|
||||
add_item(save_state, [suspend_mode](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
|
||||
rsx_log.notice("User selected savestate in home menu");
|
||||
|
||||
Emu.CallFromMainThread([suspend_mode]()
|
||||
{
|
||||
if (!suspend_mode)
|
||||
{
|
||||
Emu.after_kill_callback = []()
|
||||
{
|
||||
Emu.Restart();
|
||||
};
|
||||
}
|
||||
|
||||
Emu.Kill(false, true);
|
||||
});
|
||||
|
||||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
if (!suspend_mode && boot_last_savestate(true))
|
||||
{
|
||||
std::unique_ptr<overlay_element> reload_state = std::make_unique<home_menu_entry>(get_localized_string(localized_string_id::HOME_MENU_RELOAD_SAVESTATE));
|
||||
add_item(reload_state, [](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
|
||||
rsx_log.notice("User selected reload savestate in home menu");
|
||||
|
||||
Emu.CallFromMainThread([]()
|
||||
{
|
||||
boot_last_savestate(false);
|
||||
});
|
||||
|
||||
return page_navigation::exit;
|
||||
});
|
||||
}
|
||||
add_page(std::make_shared<home_menu_savestate>(x, y, width, height, use_separators, this));
|
||||
|
||||
std::unique_ptr<overlay_element> restart = std::make_unique<home_menu_entry>(get_localized_string(localized_string_id::HOME_MENU_RESTART));
|
||||
add_item(restart, [](pad_button btn) -> page_navigation
|
||||
|
@ -1,7 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "overlay_home_menu_page.h"
|
||||
#include "overlay_home_menu_settings.h"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
|
@ -0,0 +1,50 @@
|
||||
#include "stdafx.h"
|
||||
#include "overlay_home_menu_savestate.h"
|
||||
#include "overlay_home_menu_components.h"
|
||||
#include "Emu/system_config.h"
|
||||
|
||||
extern bool boot_last_savestate(bool testing);
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
{
|
||||
home_menu_savestate::home_menu_savestate(s16 x, s16 y, u16 width, u16 height, bool use_separators, home_menu_page* parent)
|
||||
: home_menu_page(x, y, width, height, use_separators, parent, get_localized_string(localized_string_id::HOME_MENU_SAVESTATE))
|
||||
{
|
||||
const bool suspend_mode = g_cfg.savestate.suspend_emu.get();
|
||||
|
||||
std::unique_ptr<overlay_element> save_state = std::make_unique<home_menu_entry>(
|
||||
get_localized_string(suspend_mode ? localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT : localized_string_id::HOME_MENU_SAVESTATE_SAVE));
|
||||
|
||||
add_item(save_state, [suspend_mode](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
rsx_log.notice("User selected savestate in home menu");
|
||||
Emu.CallFromMainThread([suspend_mode]()
|
||||
{
|
||||
if (!suspend_mode)
|
||||
{
|
||||
Emu.after_kill_callback = []() { Emu.Restart(); };
|
||||
}
|
||||
Emu.Kill(false, true);
|
||||
});
|
||||
return page_navigation::exit;
|
||||
});
|
||||
|
||||
if (!suspend_mode && boot_last_savestate(true)) {
|
||||
std::unique_ptr<overlay_element> reload_state = std::make_unique<home_menu_entry>(
|
||||
get_localized_string(localized_string_id::HOME_MENU_RELOAD_SAVESTATE));
|
||||
|
||||
add_item(reload_state, [](pad_button btn) -> page_navigation
|
||||
{
|
||||
if (btn != pad_button::cross) return page_navigation::stay;
|
||||
rsx_log.notice("User selected reload savestate in home menu");
|
||||
Emu.CallFromMainThread([]() { boot_last_savestate(false); });
|
||||
return page_navigation::exit;
|
||||
});
|
||||
}
|
||||
apply_layout();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "overlay_home_menu_page.h"
|
||||
|
||||
namespace rsx
|
||||
{
|
||||
namespace overlays
|
||||
{
|
||||
struct home_menu_savestate : public home_menu_page
|
||||
{
|
||||
home_menu_savestate(s16 x, s16 y, u16 width, u16 height, bool use_separators, home_menu_page* parent);
|
||||
};
|
||||
}
|
||||
}
|
@ -265,6 +265,7 @@ enum class localized_string_id
|
||||
HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS,
|
||||
HOME_MENU_SCREENSHOT,
|
||||
HOME_MENU_SAVESTATE,
|
||||
HOME_MENU_SAVESTATE_SAVE,
|
||||
HOME_MENU_SAVESTATE_AND_EXIT,
|
||||
HOME_MENU_RELOAD_SAVESTATE,
|
||||
HOME_MENU_RECORDING,
|
||||
|
@ -120,6 +120,7 @@
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_main_menu.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_page.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\Network\overlay_recvmessage_dialog.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.cpp" />
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp" />
|
||||
@ -643,6 +644,7 @@
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_main_menu.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_page.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\Network\overlay_recvmessage_dialog.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\Network\overlay_sendmessage_dialog.h" />
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_animated_icon.h" />
|
||||
|
@ -1177,6 +1177,9 @@
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\RSX\Overlays\overlay_animated_icon.cpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClCompile>
|
||||
@ -2416,6 +2419,9 @@
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_settings.h">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\RSX\Overlays\HomeMenu\overlay_home_menu_savestate.h">
|
||||
<Filter>Emu\GPU\RSX\Overlays\HomeMenu\Pages</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\RSX\Overlays\overlay_loading_icon.hpp">
|
||||
<Filter>Emu\GPU\RSX\Overlays</Filter>
|
||||
</ClInclude>
|
||||
|
@ -2297,7 +2297,6 @@ void game_list_frame::BatchCreateCPUCaches(const std::vector<game_info>& game_da
|
||||
const QString main_label = tr("Creating all LLVM caches");
|
||||
|
||||
progress_dialog* pdlg = new progress_dialog(tr("LLVM Cache Batch Creation"), main_label, tr("Cancel"), 0, ::narrow<s32>(total), false, this);
|
||||
pdlg->setWindowFlags(Qt::Window | Qt::WindowMinimizeButtonHint);
|
||||
pdlg->setAutoClose(false);
|
||||
pdlg->setAutoReset(false);
|
||||
pdlg->show();
|
||||
|
@ -285,7 +285,8 @@ private:
|
||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_DISABLE_VIDEO_OUTPUT: return tr("Disable Video Output", "Debug");
|
||||
case localized_string_id::HOME_MENU_SETTINGS_DEBUG_TEXTURE_LOD_BIAS: return tr("Texture LOD Bias Addend", "Debug");
|
||||
case localized_string_id::HOME_MENU_SCREENSHOT: return tr("Take Screenshot");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE: return tr("Save Emulation State");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE: return tr("SaveState");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE_SAVE: return tr("Save Emulation State");
|
||||
case localized_string_id::HOME_MENU_SAVESTATE_AND_EXIT: return tr("Save Emulation State And Exit");
|
||||
case localized_string_id::HOME_MENU_RELOAD_SAVESTATE: return tr("Reload Last Emulation State");
|
||||
case localized_string_id::HOME_MENU_RECORDING: return tr("Start/Stop Recording");
|
||||
|
Loading…
x
Reference in New Issue
Block a user