mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-08-02 22:30:39 +00:00
Merge branch 'master' into rsx-volatile
This commit is contained in:
commit
e4c8a688a4
20 changed files with 314 additions and 248 deletions
|
@ -1,5 +1,7 @@
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||||
|
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
#pragma GCC diagnostic ignored "-Wmissing-declarations"
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
|
|
|
@ -622,7 +622,7 @@ bool spursKernel2SelectWorkload(spu_thread& spu)
|
||||||
void spursKernelDispatchWorkload(spu_thread& spu, u64 widAndPollStatus)
|
void spursKernelDispatchWorkload(spu_thread& spu, u64 widAndPollStatus)
|
||||||
{
|
{
|
||||||
const auto ctxt = spu._ptr<SpursKernelContext>(0x100);
|
const auto ctxt = spu._ptr<SpursKernelContext>(0x100);
|
||||||
auto isKernel2 = ctxt->spurs->flags1 & SF1_32_WORKLOADS ? true : false;
|
const bool isKernel2 = ctxt->spurs->flags1 & SF1_32_WORKLOADS ? true : false;
|
||||||
|
|
||||||
auto pollStatus = static_cast<u32>(widAndPollStatus);
|
auto pollStatus = static_cast<u32>(widAndPollStatus);
|
||||||
auto wid = static_cast<u32>(widAndPollStatus >> 32);
|
auto wid = static_cast<u32>(widAndPollStatus >> 32);
|
||||||
|
@ -674,7 +674,7 @@ void spursKernelDispatchWorkload(spu_thread& spu, u64 widAndPollStatus)
|
||||||
bool spursKernelWorkloadExit(spu_thread& spu)
|
bool spursKernelWorkloadExit(spu_thread& spu)
|
||||||
{
|
{
|
||||||
const auto ctxt = spu._ptr<SpursKernelContext>(0x100);
|
const auto ctxt = spu._ptr<SpursKernelContext>(0x100);
|
||||||
auto isKernel2 = ctxt->spurs->flags1 & SF1_32_WORKLOADS ? true : false;
|
const bool isKernel2 = ctxt->spurs->flags1 & SF1_32_WORKLOADS ? true : false;
|
||||||
|
|
||||||
// Select next workload to run
|
// Select next workload to run
|
||||||
spu.gpr[3].clear();
|
spu.gpr[3].clear();
|
||||||
|
@ -701,7 +701,7 @@ bool spursKernelEntry(spu_thread& spu)
|
||||||
ctxt->spuNum = spu.gpr[3]._u32[3];
|
ctxt->spuNum = spu.gpr[3]._u32[3];
|
||||||
ctxt->spurs.set(spu.gpr[4]._u64[1]);
|
ctxt->spurs.set(spu.gpr[4]._u64[1]);
|
||||||
|
|
||||||
auto isKernel2 = ctxt->spurs->flags1 & SF1_32_WORKLOADS ? true : false;
|
const bool isKernel2 = ctxt->spurs->flags1 & SF1_32_WORKLOADS ? true : false;
|
||||||
|
|
||||||
// Initialise the SPURS context to its initial values
|
// Initialise the SPURS context to its initial values
|
||||||
ctxt->dmaTagId = CELL_SPURS_KERNEL_DMA_TAG_ID;
|
ctxt->dmaTagId = CELL_SPURS_KERNEL_DMA_TAG_ID;
|
||||||
|
@ -785,8 +785,8 @@ void spursSysServiceIdleHandler(spu_thread& spu, SpursKernelContext* ctxt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool allSpusIdle = nIdlingSpus == spurs->nSpus ? true : false;
|
const bool allSpusIdle = nIdlingSpus == spurs->nSpus;
|
||||||
bool exitIfNoWork = spurs->flags1 & SF1_EXIT_IF_NO_WORK ? true : false;
|
const bool exitIfNoWork = spurs->flags1 & SF1_EXIT_IF_NO_WORK ? true : false;
|
||||||
shouldExit = allSpusIdle && exitIfNoWork;
|
shouldExit = allSpusIdle && exitIfNoWork;
|
||||||
|
|
||||||
// Check if any workloads can be scheduled
|
// Check if any workloads can be scheduled
|
||||||
|
@ -843,7 +843,7 @@ void spursSysServiceIdleHandler(spu_thread& spu, SpursKernelContext* ctxt)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool spuIdling = spurs->spuIdling & (1 << ctxt->spuNum) ? true : false;
|
const bool spuIdling = spurs->spuIdling & (1 << ctxt->spuNum) ? true : false;
|
||||||
if (foundReadyWorkload && shouldExit == false)
|
if (foundReadyWorkload && shouldExit == false)
|
||||||
{
|
{
|
||||||
spurs->spuIdling &= ~(1 << ctxt->spuNum);
|
spurs->spuIdling &= ~(1 << ctxt->spuNum);
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include "Emu/CPU/CPUThread.h"
|
#include "Emu/CPU/CPUThread.h"
|
||||||
#include "Emu/Cell/ErrorCodes.h"
|
#include "Emu/Cell/ErrorCodes.h"
|
||||||
#include "Emu/Cell/timers.hpp"
|
#include "Emu/Cell/timers.hpp"
|
||||||
|
#include "Emu/Memory/vm_reservation.h"
|
||||||
#include "Emu/IdManager.h"
|
#include "Emu/IdManager.h"
|
||||||
#include "Emu/IPC.h"
|
#include "Emu/IPC.h"
|
||||||
|
|
||||||
|
@ -68,11 +69,6 @@ struct ppu_non_sleeping_count_t
|
||||||
u32 onproc_count;
|
u32 onproc_count;
|
||||||
};
|
};
|
||||||
|
|
||||||
namespace vm
|
|
||||||
{
|
|
||||||
extern u8 g_reservations[65536 / 128 * 64];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Base class for some kernel objects (shared set of 8192 objects).
|
// Base class for some kernel objects (shared set of 8192 objects).
|
||||||
struct lv2_obj
|
struct lv2_obj
|
||||||
{
|
{
|
||||||
|
@ -469,8 +465,12 @@ public:
|
||||||
|
|
||||||
if (cpu != &g_to_notify)
|
if (cpu != &g_to_notify)
|
||||||
{
|
{
|
||||||
if (cpu >= vm::g_reservations && cpu <= vm::g_reservations + (std::size(vm::g_reservations) - 1))
|
const auto res_start = vm::reservation_notifier(0).second;
|
||||||
|
const auto res_end = vm::reservation_notifier(umax).second;
|
||||||
|
|
||||||
|
if (cpu >= res_start && cpu <= res_end)
|
||||||
{
|
{
|
||||||
|
// Notify SPU reservation
|
||||||
atomic_wait_engine::notify_all(cpu);
|
atomic_wait_engine::notify_all(cpu);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -33,7 +33,7 @@ std::vector<std::pair<u128, id_manager::typeinfo>>& id_manager::get_typeinfo_map
|
||||||
return s_map;
|
return s_map;
|
||||||
}
|
}
|
||||||
|
|
||||||
id_manager::id_key* idm::allocate_id(std::span<id_manager::id_key> keys, usz& highest_index, u32 type_id, u32 dst_id, u32 base, u32 step, u32 count, bool uses_lowest_id, std::pair<u32, u32> invl_range)
|
id_manager::id_key* idm::allocate_id(std::span<id_manager::id_key> keys, u32& highest_index, u32 type_id, u32 dst_id, u32 base, u32 step, u32 count, bool uses_lowest_id, std::pair<u32, u32> invl_range)
|
||||||
{
|
{
|
||||||
if (dst_id != (base ? 0 : u32{umax}))
|
if (dst_id != (base ? 0 : u32{umax}))
|
||||||
{
|
{
|
||||||
|
@ -41,7 +41,7 @@ id_manager::id_key* idm::allocate_id(std::span<id_manager::id_key> keys, usz& hi
|
||||||
const u32 index = id_manager::get_index(dst_id, base, step, count, invl_range);
|
const u32 index = id_manager::get_index(dst_id, base, step, count, invl_range);
|
||||||
ensure(index < count);
|
ensure(index < count);
|
||||||
|
|
||||||
highest_index = std::max<usz>(highest_index, index + 1);
|
highest_index = std::max(highest_index, index + 1);
|
||||||
|
|
||||||
if (keys[index].type() != umax)
|
if (keys[index].type() != umax)
|
||||||
{
|
{
|
||||||
|
|
|
@ -286,7 +286,7 @@ namespace id_manager
|
||||||
std::array<stx::atomic_ptr<T>, T::id_count> vec_data{};
|
std::array<stx::atomic_ptr<T>, T::id_count> vec_data{};
|
||||||
std::array<stx::shared_ptr<T>, T::id_count> private_copy{};
|
std::array<stx::shared_ptr<T>, T::id_count> private_copy{};
|
||||||
std::array<id_key, T::id_count> vec_keys{};
|
std::array<id_key, T::id_count> vec_keys{};
|
||||||
usz highest_index = 0;
|
u32 highest_index = 0;
|
||||||
|
|
||||||
shared_mutex mutex{}; // TODO: Use this instead of global mutex
|
shared_mutex mutex{}; // TODO: Use this instead of global mutex
|
||||||
|
|
||||||
|
@ -330,11 +330,11 @@ namespace id_manager
|
||||||
// Simulate construction semantics (idm::last_id() value)
|
// Simulate construction semantics (idm::last_id() value)
|
||||||
g_id = id;
|
g_id = id;
|
||||||
|
|
||||||
const usz object_index = get_index(id, info->base, info->step, info->count, info->invl_range);
|
const u32 object_index = get_index(id, info->base, info->step, info->count, info->invl_range);
|
||||||
auto& obj = ::at32(vec_data, object_index);
|
auto& obj = ::at32(vec_data, object_index);
|
||||||
ensure(!obj);
|
ensure(!obj);
|
||||||
|
|
||||||
highest_index = std::max<usz>(highest_index, object_index + 1);
|
highest_index = std::max(highest_index, object_index + 1);
|
||||||
|
|
||||||
vec_keys[object_index] = id_key(id, static_cast<u32>(static_cast<u64>(type_init_pos >> 64)));
|
vec_keys[object_index] = id_key(id, static_cast<u32>(static_cast<u64>(type_init_pos >> 64)));
|
||||||
info->load(ar)(&obj);
|
info->load(ar)(&obj);
|
||||||
|
@ -383,7 +383,7 @@ namespace id_manager
|
||||||
reader_lock lock(g_mutex);
|
reader_lock lock(g_mutex);
|
||||||
|
|
||||||
// Save all entries
|
// Save all entries
|
||||||
for (usz i = 0; i < highest_index; i++)
|
for (u32 i = 0; i < highest_index; i++)
|
||||||
{
|
{
|
||||||
private_copy[i] = vec_data[i].load();
|
private_copy[i] = vec_data[i].load();
|
||||||
}
|
}
|
||||||
|
@ -489,7 +489,7 @@ class idm
|
||||||
}
|
}
|
||||||
|
|
||||||
// Prepare new ID (returns nullptr if out of resources)
|
// Prepare new ID (returns nullptr if out of resources)
|
||||||
static id_manager::id_key* allocate_id(std::span<id_manager::id_key> vec, usz& highest_index, u32 type_id, u32 dst_id, u32 base, u32 step, u32 count, bool uses_lowest_id, std::pair<u32, u32> invl_range);
|
static id_manager::id_key* allocate_id(std::span<id_manager::id_key> keys, u32& highest_index, u32 type_id, u32 dst_id, u32 base, u32 step, u32 count, bool uses_lowest_id, std::pair<u32, u32> invl_range);
|
||||||
|
|
||||||
// Get object by internal index if exists (additionally check type if types are not equal)
|
// Get object by internal index if exists (additionally check type if types are not equal)
|
||||||
template <typename T, typename Type>
|
template <typename T, typename Type>
|
||||||
|
|
|
@ -27,6 +27,10 @@
|
||||||
#elif defined(__APPLE__)
|
#elif defined(__APPLE__)
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
#pragma GCC diagnostic ignored "-Wold-style-cast"
|
||||||
|
#pragma GCC diagnostic ignored "-Wdeprecated-declarations"
|
||||||
|
#pragma GCC diagnostic ignored "-Wmissing-declarations"
|
||||||
|
#pragma GCC diagnostic ignored "-Wnullability-completeness"
|
||||||
|
#pragma GCC diagnostic ignored "-Wdeprecated-anon-enum-enum-conversion"
|
||||||
#include <ApplicationServices/ApplicationServices.h>
|
#include <ApplicationServices/ApplicationServices.h>
|
||||||
#include <Carbon/Carbon.h>
|
#include <Carbon/Carbon.h>
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
|
|
@ -588,7 +588,10 @@
|
||||||
<ClInclude Include="Emu\IPC_socket.h" />
|
<ClInclude Include="Emu\IPC_socket.h" />
|
||||||
<ClInclude Include="Emu\localized_string.h" />
|
<ClInclude Include="Emu\localized_string.h" />
|
||||||
<ClInclude Include="Emu\localized_string_id.h" />
|
<ClInclude Include="Emu\localized_string_id.h" />
|
||||||
|
<ClInclude Include="Emu\NP\fb_helpers.h" />
|
||||||
<ClInclude Include="Emu\NP\generated\np2_structs_generated.h" />
|
<ClInclude Include="Emu\NP\generated\np2_structs_generated.h" />
|
||||||
|
<ClInclude Include="Emu\NP\np_contexts.h" />
|
||||||
|
<ClInclude Include="Emu\NP\np_gui_cache.h" />
|
||||||
<ClInclude Include="Emu\NP\np_handler.h" />
|
<ClInclude Include="Emu\NP\np_handler.h" />
|
||||||
<ClInclude Include="Emu\NP\rpcn_countries.h" />
|
<ClInclude Include="Emu\NP\rpcn_countries.h" />
|
||||||
<ClInclude Include="Emu\NP\signaling_handler.h" />
|
<ClInclude Include="Emu\NP\signaling_handler.h" />
|
||||||
|
|
|
@ -2659,6 +2659,15 @@
|
||||||
<ClInclude Include="Emu\RSX\Core\RSXDriverState.h">
|
<ClInclude Include="Emu\RSX\Core\RSXDriverState.h">
|
||||||
<Filter>Emu\GPU\RSX\Core</Filter>
|
<Filter>Emu\GPU\RSX\Core</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
|
<ClInclude Include="Emu\NP\fb_helpers.h">
|
||||||
|
<Filter>Emu\NP</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Emu\NP\np_contexts.h">
|
||||||
|
<Filter>Emu\NP</Filter>
|
||||||
|
</ClInclude>
|
||||||
|
<ClInclude Include="Emu\NP\np_gui_cache.h">
|
||||||
|
<Filter>Emu\NP</Filter>
|
||||||
|
</ClInclude>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<None Include="Emu\RSX\Program\GLSLSnippets\GPUDeswizzle.glsl">
|
<None Include="Emu\RSX\Program\GLSLSnippets\GPUDeswizzle.glsl">
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#include "module_verifier.hpp"
|
#include "module_verifier.hpp"
|
||||||
#include "util/dyn_lib.hpp"
|
#include "util/dyn_lib.hpp"
|
||||||
|
#include <shellapi.h>
|
||||||
|
|
||||||
// TODO(cjj19970505@live.cn)
|
// TODO(cjj19970505@live.cn)
|
||||||
// When compiling with WIN32_LEAN_AND_MEAN definition
|
// When compiling with WIN32_LEAN_AND_MEAN definition
|
||||||
|
@ -620,11 +620,26 @@ int main(int argc, char** argv)
|
||||||
std::string argument_str;
|
std::string argument_str;
|
||||||
for (int i = 0; i < argc; i++)
|
for (int i = 0; i < argc; i++)
|
||||||
{
|
{
|
||||||
|
if (i > 0) argument_str += " ";
|
||||||
argument_str += '\'' + std::string(argv[i]) + '\'';
|
argument_str += '\'' + std::string(argv[i]) + '\'';
|
||||||
if (i != argc - 1) argument_str += " ";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sys_log.notice("argc: %d, argv: %s", argc, argument_str);
|
sys_log.notice("argc: %d, argv: %s", argc, argument_str);
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
int n_args = 0;
|
||||||
|
if (LPWSTR* arg_list = CommandLineToArgvW(GetCommandLineW(), &n_args))
|
||||||
|
{
|
||||||
|
std::string utf8_args;
|
||||||
|
for (int i = 0; i < n_args; i++)
|
||||||
|
{
|
||||||
|
if (i > 0) utf8_args += " ";
|
||||||
|
utf8_args += '\'' + wchar_to_utf8(arg_list[i]) + '\'';
|
||||||
|
}
|
||||||
|
sys_log.notice("argv_utf8: %s", utf8_args);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Before we proceed, run some sanity checks
|
// Before we proceed, run some sanity checks
|
||||||
run_platform_sanity_checks();
|
run_platform_sanity_checks();
|
||||||
|
|
||||||
|
|
|
@ -2069,6 +2069,7 @@
|
||||||
<None Include="..\buildfiles\msvc\rpcs3_debug.props" />
|
<None Include="..\buildfiles\msvc\rpcs3_debug.props" />
|
||||||
<None Include="..\buildfiles\msvc\rpcs3_default.props" />
|
<None Include="..\buildfiles\msvc\rpcs3_default.props" />
|
||||||
<None Include="..\buildfiles\msvc\rpcs3_release.props" />
|
<None Include="..\buildfiles\msvc\rpcs3_release.props" />
|
||||||
|
<None Include="..\darwin\util\sysinfo_darwin.mm" />
|
||||||
<None Include="..\Utilities\git-version-gen.cmd" />
|
<None Include="..\Utilities\git-version-gen.cmd" />
|
||||||
<None Include="update_helper.sh" />
|
<None Include="update_helper.sh" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
|
@ -190,6 +190,9 @@
|
||||||
<Filter Include="Io\Move">
|
<Filter Include="Io\Move">
|
||||||
<UniqueIdentifier>{f8a98f7b-dc23-47c0-8a5f-d0b76eaf0df5}</UniqueIdentifier>
|
<UniqueIdentifier>{f8a98f7b-dc23-47c0-8a5f-d0b76eaf0df5}</UniqueIdentifier>
|
||||||
</Filter>
|
</Filter>
|
||||||
|
<Filter Include="Darwin">
|
||||||
|
<UniqueIdentifier>{f6b701aa-7f4a-4816-b05f-80d24cb70e13}</UniqueIdentifier>
|
||||||
|
</Filter>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ClCompile Include="main.cpp">
|
<ClCompile Include="main.cpp">
|
||||||
|
@ -1806,5 +1809,8 @@
|
||||||
<None Include="..\.ci\optimize-mac.sh">
|
<None Include="..\.ci\optimize-mac.sh">
|
||||||
<Filter>CI</Filter>
|
<Filter>CI</Filter>
|
||||||
</None>
|
</None>
|
||||||
|
<None Include="..\darwin\util\sysinfo_darwin.mm">
|
||||||
|
<Filter>Darwin</Filter>
|
||||||
|
</None>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Project>
|
</Project>
|
|
@ -13,6 +13,7 @@ enum Category
|
||||||
Home,
|
Home,
|
||||||
Media,
|
Media,
|
||||||
Data,
|
Data,
|
||||||
|
OS,
|
||||||
Unknown_Cat,
|
Unknown_Cat,
|
||||||
Others,
|
Others,
|
||||||
};
|
};
|
||||||
|
@ -50,5 +51,6 @@ namespace cat
|
||||||
const QStringList psp_games = { cat_psp_game, cat_psp_mini, cat_psp_rema };
|
const QStringList psp_games = { cat_psp_game, cat_psp_mini, cat_psp_rema };
|
||||||
const QStringList media = { cat_app_photo, cat_app_video, cat_bc_video, cat_app_music, cat_app_store, cat_app_tv, cat_web_tv };
|
const QStringList media = { cat_app_photo, cat_app_video, cat_bc_video, cat_app_music, cat_app_store, cat_app_tv, cat_web_tv };
|
||||||
const QStringList data = { cat_ps3_data, cat_ps2_data, cat_ps3_save, cat_psp_save };
|
const QStringList data = { cat_ps3_data, cat_ps2_data, cat_ps3_save, cat_psp_save };
|
||||||
const QStringList others = { cat_network, cat_store_fe, cat_ps3_os };
|
const QStringList os = { cat_ps3_os };
|
||||||
|
const QStringList others = { cat_network, cat_store_fe };
|
||||||
}
|
}
|
||||||
|
|
|
@ -200,6 +200,7 @@ enum class emu_settings_type
|
||||||
KeyboardType,
|
KeyboardType,
|
||||||
EnterButtonAssignment,
|
EnterButtonAssignment,
|
||||||
EnableHostRoot,
|
EnableHostRoot,
|
||||||
|
EmptyHdd0Tmp,
|
||||||
LimitCacheSize,
|
LimitCacheSize,
|
||||||
MaximumCacheSize,
|
MaximumCacheSize,
|
||||||
ConsoleTimeOffset,
|
ConsoleTimeOffset,
|
||||||
|
@ -399,6 +400,7 @@ inline static const std::map<emu_settings_type, cfg_location> settings_location
|
||||||
{ emu_settings_type::KeyboardType, { "System", "Keyboard Type"} },
|
{ emu_settings_type::KeyboardType, { "System", "Keyboard Type"} },
|
||||||
{ emu_settings_type::EnterButtonAssignment, { "System", "Enter button assignment"}},
|
{ emu_settings_type::EnterButtonAssignment, { "System", "Enter button assignment"}},
|
||||||
{ emu_settings_type::EnableHostRoot, { "VFS", "Enable /host_root/"}},
|
{ emu_settings_type::EnableHostRoot, { "VFS", "Enable /host_root/"}},
|
||||||
|
{ emu_settings_type::EmptyHdd0Tmp, { "VFS", "Empty /dev_hdd0/tmp/"}},
|
||||||
{ emu_settings_type::LimitCacheSize, { "VFS", "Limit disk cache size"}},
|
{ emu_settings_type::LimitCacheSize, { "VFS", "Limit disk cache size"}},
|
||||||
{ emu_settings_type::MaximumCacheSize, { "VFS", "Disk cache maximum size (MB)"}},
|
{ emu_settings_type::MaximumCacheSize, { "VFS", "Disk cache maximum size (MB)"}},
|
||||||
{ emu_settings_type::ConsoleTimeOffset, { "System", "Console time offset (s)"}},
|
{ emu_settings_type::ConsoleTimeOffset, { "System", "Console time offset (s)"}},
|
||||||
|
|
|
@ -125,6 +125,7 @@ QStringList gui_settings::GetGameListCategoryFilters(bool is_list_mode) const
|
||||||
if (GetCategoryVisibility(Category::Home, is_list_mode)) filterList.append(cat::cat_home);
|
if (GetCategoryVisibility(Category::Home, is_list_mode)) filterList.append(cat::cat_home);
|
||||||
if (GetCategoryVisibility(Category::Media, is_list_mode)) filterList.append(cat::media);
|
if (GetCategoryVisibility(Category::Media, is_list_mode)) filterList.append(cat::media);
|
||||||
if (GetCategoryVisibility(Category::Data, is_list_mode)) filterList.append(cat::data);
|
if (GetCategoryVisibility(Category::Data, is_list_mode)) filterList.append(cat::data);
|
||||||
|
if (GetCategoryVisibility(Category::OS, is_list_mode)) filterList.append(cat::os);
|
||||||
if (GetCategoryVisibility(Category::Unknown_Cat, is_list_mode)) filterList.append(cat::cat_unknown);
|
if (GetCategoryVisibility(Category::Unknown_Cat, is_list_mode)) filterList.append(cat::cat_unknown);
|
||||||
if (GetCategoryVisibility(Category::Others, is_list_mode)) filterList.append(cat::others);
|
if (GetCategoryVisibility(Category::Others, is_list_mode)) filterList.append(cat::others);
|
||||||
|
|
||||||
|
@ -205,7 +206,7 @@ bool gui_settings::GetBootConfirmation(QWidget* parent, const gui_save& gui_save
|
||||||
{
|
{
|
||||||
if (Emu.GetStatus(false) != system_state::stopping)
|
if (Emu.GetStatus(false) != system_state::stopping)
|
||||||
{
|
{
|
||||||
ensure(info == Emu.GetEmulationIdentifier(old_status == system_state::stopping ? true : false));
|
ensure(info == Emu.GetEmulationIdentifier(old_status == system_state::stopping));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,6 +345,7 @@ gui_save gui_settings::GetGuiSaveForCategory(int cat, bool is_list_mode)
|
||||||
case Category::PSP_Game: return is_list_mode ? gui::cat_psp_game : gui::grid_cat_psp_game;
|
case Category::PSP_Game: return is_list_mode ? gui::cat_psp_game : gui::grid_cat_psp_game;
|
||||||
case Category::Media: return is_list_mode ? gui::cat_audio_video : gui::grid_cat_audio_video;
|
case Category::Media: return is_list_mode ? gui::cat_audio_video : gui::grid_cat_audio_video;
|
||||||
case Category::Data: return is_list_mode ? gui::cat_game_data : gui::grid_cat_game_data;
|
case Category::Data: return is_list_mode ? gui::cat_game_data : gui::grid_cat_game_data;
|
||||||
|
case Category::OS: return is_list_mode ? gui::cat_os : gui::grid_cat_os;
|
||||||
case Category::Unknown_Cat: return is_list_mode ? gui::cat_unknown : gui::grid_cat_unknown;
|
case Category::Unknown_Cat: return is_list_mode ? gui::cat_unknown : gui::grid_cat_unknown;
|
||||||
case Category::Others: return is_list_mode ? gui::cat_other : gui::grid_cat_other;
|
case Category::Others: return is_list_mode ? gui::cat_other : gui::grid_cat_other;
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -161,6 +161,7 @@ namespace gui
|
||||||
const gui_save cat_home = gui_save(game_list, "categoryVisibleHome", true);
|
const gui_save cat_home = gui_save(game_list, "categoryVisibleHome", true);
|
||||||
const gui_save cat_audio_video = gui_save(game_list, "categoryVisibleAudioVideo", true);
|
const gui_save cat_audio_video = gui_save(game_list, "categoryVisibleAudioVideo", true);
|
||||||
const gui_save cat_game_data = gui_save(game_list, "categoryVisibleGameData", false);
|
const gui_save cat_game_data = gui_save(game_list, "categoryVisibleGameData", false);
|
||||||
|
const gui_save cat_os = gui_save(game_list, "categoryVisibleOS", false);
|
||||||
const gui_save cat_unknown = gui_save(game_list, "categoryVisibleUnknown", true);
|
const gui_save cat_unknown = gui_save(game_list, "categoryVisibleUnknown", true);
|
||||||
const gui_save cat_other = gui_save(game_list, "categoryVisibleOther", true);
|
const gui_save cat_other = gui_save(game_list, "categoryVisibleOther", true);
|
||||||
|
|
||||||
|
@ -172,6 +173,7 @@ namespace gui
|
||||||
const gui_save grid_cat_home = gui_save(game_list, "gridCategoryVisibleHome", true);
|
const gui_save grid_cat_home = gui_save(game_list, "gridCategoryVisibleHome", true);
|
||||||
const gui_save grid_cat_audio_video = gui_save(game_list, "gridCategoryVisibleAudioVideo", true);
|
const gui_save grid_cat_audio_video = gui_save(game_list, "gridCategoryVisibleAudioVideo", true);
|
||||||
const gui_save grid_cat_game_data = gui_save(game_list, "gridCategoryVisibleGameData", false);
|
const gui_save grid_cat_game_data = gui_save(game_list, "gridCategoryVisibleGameData", false);
|
||||||
|
const gui_save grid_cat_os = gui_save(game_list, "gridCategoryVisibleOS", false);
|
||||||
const gui_save grid_cat_unknown = gui_save(game_list, "gridCategoryVisibleUnknown", true);
|
const gui_save grid_cat_unknown = gui_save(game_list, "gridCategoryVisibleUnknown", true);
|
||||||
const gui_save grid_cat_other = gui_save(game_list, "gridCategoryVisibleOther", true);
|
const gui_save grid_cat_other = gui_save(game_list, "gridCategoryVisibleOther", true);
|
||||||
|
|
||||||
|
|
|
@ -2391,6 +2391,7 @@ void main_window::UpdateFilterActions()
|
||||||
ui->showCatHomeAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Home, m_is_list_mode));
|
ui->showCatHomeAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Home, m_is_list_mode));
|
||||||
ui->showCatAudioVideoAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Media, m_is_list_mode));
|
ui->showCatAudioVideoAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Media, m_is_list_mode));
|
||||||
ui->showCatGameDataAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Data, m_is_list_mode));
|
ui->showCatGameDataAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Data, m_is_list_mode));
|
||||||
|
ui->showCatOSAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::OS, m_is_list_mode));
|
||||||
ui->showCatUnknownAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Unknown_Cat, m_is_list_mode));
|
ui->showCatUnknownAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Unknown_Cat, m_is_list_mode));
|
||||||
ui->showCatOtherAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Others, m_is_list_mode));
|
ui->showCatOtherAct->setChecked(m_gui_settings->GetCategoryVisibility(Category::Others, m_is_list_mode));
|
||||||
}
|
}
|
||||||
|
@ -2551,6 +2552,7 @@ void main_window::CreateActions()
|
||||||
m_category_visible_act_group->addAction(ui->showCatHomeAct);
|
m_category_visible_act_group->addAction(ui->showCatHomeAct);
|
||||||
m_category_visible_act_group->addAction(ui->showCatAudioVideoAct);
|
m_category_visible_act_group->addAction(ui->showCatAudioVideoAct);
|
||||||
m_category_visible_act_group->addAction(ui->showCatGameDataAct);
|
m_category_visible_act_group->addAction(ui->showCatGameDataAct);
|
||||||
|
m_category_visible_act_group->addAction(ui->showCatOSAct);
|
||||||
m_category_visible_act_group->addAction(ui->showCatUnknownAct);
|
m_category_visible_act_group->addAction(ui->showCatUnknownAct);
|
||||||
m_category_visible_act_group->addAction(ui->showCatOtherAct);
|
m_category_visible_act_group->addAction(ui->showCatOtherAct);
|
||||||
m_category_visible_act_group->setExclusive(false);
|
m_category_visible_act_group->setExclusive(false);
|
||||||
|
@ -3227,16 +3229,17 @@ void main_window::CreateConnects()
|
||||||
const auto get_cats = [this](QAction* act, int& id) -> QStringList
|
const auto get_cats = [this](QAction* act, int& id) -> QStringList
|
||||||
{
|
{
|
||||||
QStringList categories;
|
QStringList categories;
|
||||||
if (act == ui->showCatHDDGameAct) { categories += cat::cat_hdd_game; id = Category::HDD_Game; }
|
if (act == ui->showCatHDDGameAct) { categories.append(cat::cat_hdd_game); id = Category::HDD_Game; }
|
||||||
else if (act == ui->showCatDiscGameAct) { categories += cat::cat_disc_game; id = Category::Disc_Game; }
|
else if (act == ui->showCatDiscGameAct) { categories.append(cat::cat_disc_game); id = Category::Disc_Game; }
|
||||||
else if (act == ui->showCatPS1GamesAct) { categories += cat::cat_ps1_game; id = Category::PS1_Game; }
|
else if (act == ui->showCatPS1GamesAct) { categories.append(cat::cat_ps1_game); id = Category::PS1_Game; }
|
||||||
else if (act == ui->showCatPS2GamesAct) { categories += cat::ps2_games; id = Category::PS2_Game; }
|
else if (act == ui->showCatPS2GamesAct) { categories.append(cat::ps2_games); id = Category::PS2_Game; }
|
||||||
else if (act == ui->showCatPSPGamesAct) { categories += cat::psp_games; id = Category::PSP_Game; }
|
else if (act == ui->showCatPSPGamesAct) { categories.append(cat::psp_games); id = Category::PSP_Game; }
|
||||||
else if (act == ui->showCatHomeAct) { categories += cat::cat_home; id = Category::Home; }
|
else if (act == ui->showCatHomeAct) { categories.append(cat::cat_home); id = Category::Home; }
|
||||||
else if (act == ui->showCatAudioVideoAct) { categories += cat::media; id = Category::Media; }
|
else if (act == ui->showCatAudioVideoAct) { categories.append(cat::media); id = Category::Media; }
|
||||||
else if (act == ui->showCatGameDataAct) { categories += cat::data; id = Category::Data; }
|
else if (act == ui->showCatGameDataAct) { categories.append(cat::data); id = Category::Data; }
|
||||||
else if (act == ui->showCatUnknownAct) { categories += cat::cat_unknown; id = Category::Unknown_Cat; }
|
else if (act == ui->showCatOSAct) { categories.append(cat::os); id = Category::OS; }
|
||||||
else if (act == ui->showCatOtherAct) { categories += cat::others; id = Category::Others; }
|
else if (act == ui->showCatUnknownAct) { categories.append(cat::cat_unknown); id = Category::Unknown_Cat; }
|
||||||
|
else if (act == ui->showCatOtherAct) { categories.append(cat::others); id = Category::Others; }
|
||||||
else { gui_log.warning("categoryVisibleActGroup: category action not found"); }
|
else { gui_log.warning("categoryVisibleActGroup: category action not found"); }
|
||||||
return categories;
|
return categories;
|
||||||
};
|
};
|
||||||
|
@ -3276,6 +3279,7 @@ void main_window::CreateConnects()
|
||||||
set_cat_count(ui->showCatHomeAct, tr("Home"));
|
set_cat_count(ui->showCatHomeAct, tr("Home"));
|
||||||
set_cat_count(ui->showCatAudioVideoAct, tr("Audio/Video"));
|
set_cat_count(ui->showCatAudioVideoAct, tr("Audio/Video"));
|
||||||
set_cat_count(ui->showCatGameDataAct, tr("Game Data"));
|
set_cat_count(ui->showCatGameDataAct, tr("Game Data"));
|
||||||
|
set_cat_count(ui->showCatOSAct, tr("Operating System"));
|
||||||
set_cat_count(ui->showCatUnknownAct, tr("Unknown"));
|
set_cat_count(ui->showCatUnknownAct, tr("Unknown"));
|
||||||
set_cat_count(ui->showCatOtherAct, tr("Other"));
|
set_cat_count(ui->showCatOtherAct, tr("Other"));
|
||||||
});
|
});
|
||||||
|
|
|
@ -355,6 +355,7 @@
|
||||||
<addaction name="showCatHomeAct"/>
|
<addaction name="showCatHomeAct"/>
|
||||||
<addaction name="showCatAudioVideoAct"/>
|
<addaction name="showCatAudioVideoAct"/>
|
||||||
<addaction name="showCatGameDataAct"/>
|
<addaction name="showCatGameDataAct"/>
|
||||||
|
<addaction name="showCatOSAct"/>
|
||||||
<addaction name="showCatUnknownAct"/>
|
<addaction name="showCatUnknownAct"/>
|
||||||
<addaction name="showCatOtherAct"/>
|
<addaction name="showCatOtherAct"/>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -883,9 +884,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>HDD Games</string>
|
<string>HDD Games</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -894,9 +892,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Disc Games</string>
|
<string>Disc Games</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -905,9 +900,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>PS1 Games</string>
|
<string>PS1 Games</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -916,9 +908,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>PS2 Games</string>
|
<string>PS2 Games</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -927,9 +916,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>PSP Games</string>
|
<string>PSP Games</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -938,9 +924,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Home</string>
|
<string>Home</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -949,9 +932,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Audio/Video</string>
|
<string>Audio/Video</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -960,9 +940,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Game Data</string>
|
<string>Game Data</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -971,9 +948,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Unknown</string>
|
<string>Unknown</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -1090,9 +1064,6 @@
|
||||||
<property name="checkable">
|
<property name="checkable">
|
||||||
<bool>true</bool>
|
<bool>true</bool>
|
||||||
</property>
|
</property>
|
||||||
<property name="checked">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Other</string>
|
<string>Other</string>
|
||||||
</property>
|
</property>
|
||||||
|
@ -1402,6 +1373,14 @@
|
||||||
<string>PS Move</string>
|
<string>PS Move</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="showCatOSAct">
|
||||||
|
<property name="checkable">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="text">
|
||||||
|
<string>Operating System</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
<layoutdefault spacing="6" margin="11"/>
|
||||||
<resources>
|
<resources>
|
||||||
|
|
|
@ -1428,6 +1428,9 @@ settings_dialog::settings_dialog(std::shared_ptr<gui_settings> gui_settings, std
|
||||||
m_emu_settings->EnhanceCheckBox(ui->enableHostRoot, emu_settings_type::EnableHostRoot);
|
m_emu_settings->EnhanceCheckBox(ui->enableHostRoot, emu_settings_type::EnableHostRoot);
|
||||||
SubscribeTooltip(ui->enableHostRoot, tooltips.settings.enable_host_root);
|
SubscribeTooltip(ui->enableHostRoot, tooltips.settings.enable_host_root);
|
||||||
|
|
||||||
|
m_emu_settings->EnhanceCheckBox(ui->emptyHdd0Tmp, emu_settings_type::EmptyHdd0Tmp);
|
||||||
|
SubscribeTooltip(ui->emptyHdd0Tmp, tooltips.settings.empty_hdd0_tmp);
|
||||||
|
|
||||||
m_emu_settings->EnhanceCheckBox(ui->enableCacheClearing, emu_settings_type::LimitCacheSize);
|
m_emu_settings->EnhanceCheckBox(ui->enableCacheClearing, emu_settings_type::LimitCacheSize);
|
||||||
SubscribeTooltip(ui->gb_DiskCacheClearing, tooltips.settings.limit_cache_size);
|
SubscribeTooltip(ui->gb_DiskCacheClearing, tooltips.settings.limit_cache_size);
|
||||||
if (game)
|
if (game)
|
||||||
|
|
|
@ -1900,206 +1900,237 @@
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
<string>System</string>
|
<string>System</string>
|
||||||
</attribute>
|
</attribute>
|
||||||
<layout class="QVBoxLayout" name="systemTab_layout" stretch="0,0,0,0,1,0">
|
<layout class="QVBoxLayout" name="systemTab_layout" stretch="0,1,0">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="systemTabLayout1" stretch="1,1,1">
|
<layout class="QHBoxLayout" name="systemTabHorizontalLayout" stretch="1,1,1">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QGroupBox" name="gb_sysLang">
|
<layout class="QVBoxLayout" name="systemTabLeftLayout">
|
||||||
<property name="title">
|
<item>
|
||||||
<string>Console Language</string>
|
<widget class="QGroupBox" name="gb_sysLang">
|
||||||
</property>
|
<property name="title">
|
||||||
<layout class="QVBoxLayout" name="gb_sysLang_layout">
|
<string>Console Language</string>
|
||||||
<item>
|
</property>
|
||||||
<widget class="QComboBox" name="sysLangBox"/>
|
<layout class="QVBoxLayout" name="gb_sysLang_layout">
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_keyboardType">
|
|
||||||
<property name="title">
|
|
||||||
<string>Keyboard Type</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_keyboardType">
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="keyboardType"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_homebrew">
|
|
||||||
<property name="title">
|
|
||||||
<string>Homebrew</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="gb_homebrew_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QCheckBox" name="enableHostRoot">
|
|
||||||
<property name="text">
|
|
||||||
<string>Enable /host_root/</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="systemTabLayout2" stretch="1,1,1">
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_console_region">
|
|
||||||
<property name="title">
|
|
||||||
<string>Console Region</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="gb_console_region_layout">
|
|
||||||
<item>
|
|
||||||
<widget class="QComboBox" name="console_region"/>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QGroupBox" name="gb_console_time">
|
|
||||||
<property name="title">
|
|
||||||
<string>Console Time</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
|
||||||
<item>
|
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QDateTimeEdit" name="console_time_edit">
|
<widget class="QComboBox" name="sysLangBox"/>
|
||||||
<property name="sizePolicy">
|
</item>
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
</layout>
|
||||||
<horstretch>10</horstretch>
|
</widget>
|
||||||
<verstretch>0</verstretch>
|
</item>
|
||||||
</sizepolicy>
|
<item>
|
||||||
</property>
|
<widget class="QGroupBox" name="gb_console_region">
|
||||||
<property name="layoutDirection">
|
<property name="title">
|
||||||
<enum>Qt::LayoutDirection::LeftToRight</enum>
|
<string>Console Region</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="wrapping">
|
<layout class="QVBoxLayout" name="gb_console_region_layout">
|
||||||
<bool>false</bool>
|
<item>
|
||||||
</property>
|
<widget class="QComboBox" name="console_region"/>
|
||||||
<property name="frame">
|
</item>
|
||||||
<bool>true</bool>
|
</layout>
|
||||||
</property>
|
</widget>
|
||||||
<property name="alignment">
|
</item>
|
||||||
<set>Qt::AlignmentFlag::AlignCenter</set>
|
<item>
|
||||||
</property>
|
<widget class="QGroupBox" name="gb_enterButtonAssignment">
|
||||||
<property name="readOnly">
|
<property name="title">
|
||||||
<bool>false</bool>
|
<string>Enter Button Assignment</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="buttonSymbols">
|
<layout class="QVBoxLayout" name="gb_enterButtonAssignment_layout">
|
||||||
<enum>QAbstractSpinBox::ButtonSymbols::UpDownArrows</enum>
|
<item>
|
||||||
</property>
|
<widget class="QRadioButton" name="enterButtonAssignCircle">
|
||||||
<property name="accelerated">
|
<property name="text">
|
||||||
<bool>true</bool>
|
<string notr="true">Enter with the Circle button</string>
|
||||||
</property>
|
|
||||||
<property name="showGroupSeparator" stdset="0">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
<property name="calendarPopup">
|
|
||||||
<bool>true</bool>
|
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="console_time_reset">
|
<widget class="QRadioButton" name="enterButtonAssignCross">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Set to Now</string>
|
<string notr="true">Enter with the Cross button</string>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</widget>
|
||||||
</layout>
|
</item>
|
||||||
</widget>
|
<item>
|
||||||
|
<widget class="QGroupBox" name="gb_DiskCacheClearing">
|
||||||
|
<property name="title">
|
||||||
|
<string>Disk Cache</string>
|
||||||
|
</property>
|
||||||
|
<layout class="QVBoxLayout" name="gb_DiskCacheClearing_layout">
|
||||||
|
<item>
|
||||||
|
<widget class="QCheckBox" name="enableCacheClearing">
|
||||||
|
<property name="text">
|
||||||
|
<string>Clear cache automatically</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QLabel" name="maximumCacheSizeLabel">
|
||||||
|
<property name="text">
|
||||||
|
<string>Cache size: 3072 MB</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QSlider" name="maximumCacheSize">
|
||||||
|
<property name="pageStep">
|
||||||
|
<number>512</number>
|
||||||
|
</property>
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Horizontal</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickPosition">
|
||||||
|
<enum>QSlider::TickPosition::TicksBelow</enum>
|
||||||
|
</property>
|
||||||
|
<property name="tickInterval">
|
||||||
|
<number>1024</number>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="systemTabLeftVerticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="systemTabSpacerWidget2" native="true"/>
|
<layout class="QVBoxLayout" name="systemTabMiddleLayout">
|
||||||
</item>
|
<item>
|
||||||
</layout>
|
<widget class="QGroupBox" name="gb_keyboardType">
|
||||||
</item>
|
<property name="title">
|
||||||
<item>
|
<string>Keyboard Type</string>
|
||||||
<layout class="QHBoxLayout" name="systemTabLayout3" stretch="1,1,1">
|
</property>
|
||||||
<item>
|
<layout class="QVBoxLayout" name="verticalLayout_keyboardType">
|
||||||
<widget class="QGroupBox" name="gb_enterButtonAssignment">
|
<item>
|
||||||
<property name="title">
|
<widget class="QComboBox" name="keyboardType"/>
|
||||||
<string>Enter Button Assignment</string>
|
</item>
|
||||||
</property>
|
</layout>
|
||||||
<layout class="QVBoxLayout" name="gb_enterButtonAssignment_layout">
|
</widget>
|
||||||
<item>
|
</item>
|
||||||
<widget class="QRadioButton" name="enterButtonAssignCircle">
|
<item>
|
||||||
<property name="text">
|
<widget class="QGroupBox" name="gb_console_time">
|
||||||
<string notr="true">Enter with the Circle button</string>
|
<property name="title">
|
||||||
</property>
|
<string>Console Time</string>
|
||||||
</widget>
|
</property>
|
||||||
</item>
|
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||||
<item>
|
<item>
|
||||||
<widget class="QRadioButton" name="enterButtonAssignCross">
|
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||||
<property name="text">
|
<item>
|
||||||
<string notr="true">Enter with the Cross button</string>
|
<widget class="QDateTimeEdit" name="console_time_edit">
|
||||||
</property>
|
<property name="sizePolicy">
|
||||||
</widget>
|
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||||
</item>
|
<horstretch>10</horstretch>
|
||||||
</layout>
|
<verstretch>0</verstretch>
|
||||||
</widget>
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="layoutDirection">
|
||||||
|
<enum>Qt::LayoutDirection::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
<property name="wrapping">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="frame">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignmentFlag::AlignCenter</set>
|
||||||
|
</property>
|
||||||
|
<property name="readOnly">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="buttonSymbols">
|
||||||
|
<enum>QAbstractSpinBox::ButtonSymbols::UpDownArrows</enum>
|
||||||
|
</property>
|
||||||
|
<property name="accelerated">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
<property name="showGroupSeparator" stdset="0">
|
||||||
|
<bool>false</bool>
|
||||||
|
</property>
|
||||||
|
<property name="calendarPopup">
|
||||||
|
<bool>true</bool>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="QPushButton" name="console_time_reset">
|
||||||
|
<property name="text">
|
||||||
|
<string>Set to Now</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<spacer name="systemTabMiddleVerticalSpacer">
|
||||||
|
<property name="orientation">
|
||||||
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
|
</property>
|
||||||
|
<property name="sizeHint" stdset="0">
|
||||||
|
<size>
|
||||||
|
<width>0</width>
|
||||||
|
<height>0</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
</spacer>
|
||||||
|
</item>
|
||||||
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QWidget" name="systemTabSpacerWidget3" native="true"/>
|
<layout class="QVBoxLayout" name="systemTabRightLayout">
|
||||||
</item>
|
<item>
|
||||||
<item>
|
<widget class="QGroupBox" name="gb_homebrew">
|
||||||
<widget class="QWidget" name="systemTabSpacerWidget4" native="true"/>
|
<property name="title">
|
||||||
</item>
|
<string>Homebrew</string>
|
||||||
</layout>
|
</property>
|
||||||
</item>
|
<layout class="QVBoxLayout" name="gb_homebrew_layout">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QHBoxLayout" name="systemTabLayout4" stretch="1,1,1">
|
<widget class="QCheckBox" name="enableHostRoot">
|
||||||
<item>
|
<property name="text">
|
||||||
<widget class="QGroupBox" name="gb_DiskCacheClearing">
|
<string>Enable /host_root/</string>
|
||||||
<property name="title">
|
</property>
|
||||||
<string>Disk Cache</string>
|
</widget>
|
||||||
</property>
|
</item>
|
||||||
<layout class="QVBoxLayout" name="gb_DiskCacheClearing_layout">
|
<item>
|
||||||
<item>
|
<widget class="QCheckBox" name="emptyHdd0Tmp">
|
||||||
<widget class="QCheckBox" name="enableCacheClearing">
|
<property name="text">
|
||||||
<property name="text">
|
<string>Empty /dev_hdd0/tmp/</string>
|
||||||
<string>Clear cache automatically</string>
|
</property>
|
||||||
</property>
|
</widget>
|
||||||
</widget>
|
</item>
|
||||||
</item>
|
</layout>
|
||||||
<item>
|
</widget>
|
||||||
<widget class="QLabel" name="maximumCacheSizeLabel">
|
</item>
|
||||||
<property name="text">
|
<item>
|
||||||
<string>Cache size: 3072 MB</string>
|
<spacer name="systemTabRightVerticalSpacer">
|
||||||
</property>
|
<property name="orientation">
|
||||||
</widget>
|
<enum>Qt::Orientation::Vertical</enum>
|
||||||
</item>
|
</property>
|
||||||
<item>
|
<property name="sizeHint" stdset="0">
|
||||||
<widget class="QSlider" name="maximumCacheSize">
|
<size>
|
||||||
<property name="pageStep">
|
<width>0</width>
|
||||||
<number>512</number>
|
<height>0</height>
|
||||||
</property>
|
</size>
|
||||||
<property name="orientation">
|
</property>
|
||||||
<enum>Qt::Orientation::Horizontal</enum>
|
</spacer>
|
||||||
</property>
|
</item>
|
||||||
<property name="tickPosition">
|
</layout>
|
||||||
<enum>QSlider::TickPosition::TicksBelow</enum>
|
|
||||||
</property>
|
|
||||||
<property name="tickInterval">
|
|
||||||
<number>1024</number>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="systemTabSpacerWidget5" native="true"/>
|
|
||||||
</item>
|
|
||||||
<item>
|
|
||||||
<widget class="QWidget" name="systemTabSpacerWidget6" native="true"/>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
|
|
@ -260,7 +260,8 @@ public:
|
||||||
const QString system_language = tr("Some games may fail to boot if the system language is not available in the game itself.\nOther games will switch language automatically to what is selected here.\nIt is recommended leaving this on a language supported by the game.");
|
const QString system_language = tr("Some games may fail to boot if the system language is not available in the game itself.\nOther games will switch language automatically to what is selected here.\nIt is recommended leaving this on a language supported by the game.");
|
||||||
const QString keyboard_type = tr("Sets the used keyboard layout.\nCurrently only US, Japanese and German layouts are fully supported at this moment.");
|
const QString keyboard_type = tr("Sets the used keyboard layout.\nCurrently only US, Japanese and German layouts are fully supported at this moment.");
|
||||||
const QString enter_button_assignment = tr("The button used for enter/accept/confirm in system dialogs.\nChange this to use the Circle button instead, which is the default configuration on Japanese systems and in many Japanese games.\nIn these cases having the cross button assigned can often lead to confusion.");
|
const QString enter_button_assignment = tr("The button used for enter/accept/confirm in system dialogs.\nChange this to use the Circle button instead, which is the default configuration on Japanese systems and in many Japanese games.\nIn these cases having the cross button assigned can often lead to confusion.");
|
||||||
const QString enable_host_root = tr("Required for some Homebrew.\nIf unsure, don't use this option.");
|
const QString enable_host_root = tr("Required for some Homebrew.\nIf unsure, do not use this option.");
|
||||||
|
const QString empty_hdd0_tmp = tr("Required for some Homebrew or Game Mods.\nIf unsure, do not use this option");
|
||||||
const QString limit_cache_size = tr("Automatically removes older files from disk cache on boot if it grows larger than the specified value.\nGames can use the cache folder to temporarily store data outside of system memory. It is not used for long-term storage.\n\nThis setting is only available in the global configuration.");
|
const QString limit_cache_size = tr("Automatically removes older files from disk cache on boot if it grows larger than the specified value.\nGames can use the cache folder to temporarily store data outside of system memory. It is not used for long-term storage.\n\nThis setting is only available in the global configuration.");
|
||||||
const QString console_time_offset = tr("Sets the time to be used within the console. This will be applied as an offset that tracks wall clock time.\nCan be reset to current wall clock time by clicking \"Set to Now\".");
|
const QString console_time_offset = tr("Sets the time to be used within the console. This will be applied as an offset that tracks wall clock time.\nCan be reset to current wall clock time by clicking \"Set to Now\".");
|
||||||
} settings;
|
} settings;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue