1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-22 18:53:28 +01:00

Old ini-manager only partially used in VFS. Global configuration used as defualt.

This commit is contained in:
O1L 2015-10-27 01:09:31 +04:00
parent e8ebb005fd
commit c0255208cc
47 changed files with 328 additions and 403 deletions

View File

@ -1,9 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "AutoPause.h" #include "AutoPause.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/File.h" #include "Utilities/File.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
using namespace Debug; using namespace Debug;
@ -77,8 +77,8 @@ void AutoPause::Reload(void)
} }
} }
m_pause_syscall_enable = Ini.DBGAutoPauseSystemCall.GetValue(); m_pause_syscall_enable = rpcs3::config.misc.debug.auto_pause_syscall.value();
m_pause_function_enable = Ini.DBGAutoPauseFunctionCall.GetValue(); m_pause_function_enable = rpcs3::config.misc.debug.auto_pause_func_call.value();
initialized = true; initialized = true;
} }

View File

@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Log.h" #include "Log.h"
#include "rpcs3/Ini.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/CPU/CPUThreadManager.h" #include "Emu/CPU/CPUThreadManager.h"
#include "Emu/CPU/CPUThread.h" #include "Emu/CPU/CPUThread.h"
#include "Emu/Cell/RawSPUThread.h" #include "Emu/Cell/RawSPUThread.h"
@ -1273,14 +1273,14 @@ void named_thread_t::start(std::function<std::string()> name, std::function<void
{ {
g_thread_count++; g_thread_count++;
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(GENERAL, "Thread started"); LOG_NOTICE(GENERAL, "Thread started");
} }
func(); func();
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(GENERAL, "Thread ended"); LOG_NOTICE(GENERAL, "Thread ended");
} }

View File

@ -1,5 +1,4 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"

View File

@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "rpcs3/Ini.h" #include "Emu/state.h"
#include "OpenALThread.h" #include "OpenALThread.h"
@ -104,7 +104,7 @@ void OpenALThread::Open(const void* src, int size)
for (uint i = 0; i<g_al_buffers_count; ++i) for (uint i = 0; i<g_al_buffers_count; ++i)
{ {
alBufferData(m_buffers[i], Ini.AudioConvertToU16.GetValue() ? AL_FORMAT_71CHN16 : AL_FORMAT_71CHN32, src, m_buffer_size, 48000); alBufferData(m_buffers[i], rpcs3::config.audio.convert_to_u16.value() ? AL_FORMAT_71CHN16 : AL_FORMAT_71CHN32, src, m_buffer_size, 48000);
checkForAlError("alBufferData"); checkForAlError("alBufferData");
} }
@ -139,7 +139,7 @@ void OpenALThread::AddData(const void* src, int size)
int bsize = size < m_buffer_size ? size : m_buffer_size; int bsize = size < m_buffer_size ? size : m_buffer_size;
alBufferData(buffer, Ini.AudioConvertToU16.GetValue() ? AL_FORMAT_71CHN16 : AL_FORMAT_71CHN32, bsrc, bsize, 48000); alBufferData(buffer, rpcs3::config.audio.convert_to_u16.value() ? AL_FORMAT_71CHN16 : AL_FORMAT_71CHN32, bsrc, bsize, 48000);
checkForAlError("alBufferData"); checkForAlError("alBufferData");
alSourceQueueBuffers(m_source, 1, &buffer); alSourceQueueBuffers(m_source, 1, &buffer);

View File

@ -1,8 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "AudioManager.h" #include "AudioManager.h"
#include "Emu/state.h"
#include "AL/OpenALThread.h" #include "AL/OpenALThread.h"
#include "Emu/state.h"
#include "Null/NullAudioThread.h" #include "Null/NullAudioThread.h"
#include "XAudio2/XAudio2Thread.h" #include "XAudio2/XAudio2Thread.h"

View File

@ -1,6 +1,8 @@
#include "stdafx.h" #include "stdafx.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "rpcs3/Ini.h" #include "rpcs3/Ini.h"
#if defined (_WIN32) #if defined (_WIN32)
@ -102,11 +104,11 @@ void XAudio2Thread::Open(const void* src, int size)
{ {
HRESULT hr; HRESULT hr;
WORD sample_size = Ini.AudioConvertToU16.GetValue() ? sizeof(u16) : sizeof(float); WORD sample_size = rpcs3::config.audio.convert_to_u16.value() ? sizeof(u16) : sizeof(float);
WORD channels = 8; WORD channels = 8;
WAVEFORMATEX waveformatex; WAVEFORMATEX waveformatex;
waveformatex.wFormatTag = Ini.AudioConvertToU16.GetValue() ? WAVE_FORMAT_PCM : WAVE_FORMAT_IEEE_FLOAT; waveformatex.wFormatTag = rpcs3::config.audio.convert_to_u16.value() ? WAVE_FORMAT_PCM : WAVE_FORMAT_IEEE_FLOAT;
waveformatex.nChannels = channels; waveformatex.nChannels = channels;
waveformatex.nSamplesPerSec = 48000; waveformatex.nSamplesPerSec = 48000;
waveformatex.nAvgBytesPerSec = 48000 * (DWORD)channels * (DWORD)sample_size; waveformatex.nAvgBytesPerSec = 48000 * (DWORD)channels * (DWORD)sample_size;

View File

@ -1,8 +1,8 @@
#include "stdafx.h" #include "stdafx.h"
#ifdef LLVM_AVAILABLE #ifdef LLVM_AVAILABLE
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/Cell/PPUDisAsm.h" #include "Emu/Cell/PPUDisAsm.h"
#include "Emu/Cell/PPULLVMRecompiler.h" #include "Emu/Cell/PPULLVMRecompiler.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
@ -292,8 +292,8 @@ const Executable RecompilationEngine::GetCompiledExecutableIfAvailable(u32 addre
if (!isAddressCommited(address / 4)) if (!isAddressCommited(address / 4))
return nullptr; return nullptr;
u32 id = FunctionCache[address / 4].second; u32 id = FunctionCache[address / 4].second;
if (Ini.LLVMExclusionRange.GetValue() && if (rpcs3::state.config.core.llvm.exclusion_range.value() &&
(id >= Ini.LLVMMinId.GetValue() && id <= Ini.LLVMMaxId.GetValue())) (id >= rpcs3::state.config.core.llvm.min_id.value() && id <= rpcs3::state.config.core.llvm.max_id.value()))
return nullptr; return nullptr;
return FunctionCache[address / 4].first; return FunctionCache[address / 4].first;
} }
@ -377,7 +377,7 @@ bool RecompilationEngine::IncreaseHitCounterAndBuild(u32 address) {
BlockEntry &block = It->second; BlockEntry &block = It->second;
if (!block.is_compiled) { if (!block.is_compiled) {
block.num_hits++; block.num_hits++;
if (block.num_hits >= Ini.LLVMThreshold.GetValue()) { if (block.num_hits >= rpcs3::state.config.core.llvm.threshold.value()) {
CompileBlock(block); CompileBlock(block);
return true; return true;
} }

View File

@ -1,5 +1,4 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"

View File

@ -1,5 +1,4 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
@ -381,7 +380,7 @@ void SPUThread::do_dma_list_cmd(u32 cmd, spu_mfc_arg_t args)
void SPUThread::process_mfc_cmd(u32 cmd) void SPUThread::process_mfc_cmd(u32 cmd)
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "DMA %s: cmd=0x%x, lsa=0x%x, ea=0x%llx, tag=0x%x, size=0x%x", get_mfc_cmd_name(cmd), cmd, ch_mfc_args.lsa, ch_mfc_args.ea, ch_mfc_args.tag, ch_mfc_args.size); LOG_NOTICE(SPU, "DMA %s: cmd=0x%x, lsa=0x%x, ea=0x%llx, tag=0x%x, size=0x%x", get_mfc_cmd_name(cmd), cmd, ch_mfc_args.lsa, ch_mfc_args.ea, ch_mfc_args.tag, ch_mfc_args.size);
} }
@ -573,7 +572,7 @@ void SPUThread::set_interrupt_status(bool enable)
u32 SPUThread::get_ch_count(u32 ch) u32 SPUThread::get_ch_count(u32 ch)
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "get_ch_count(ch=%d [%s])", ch, ch < 128 ? spu_ch_name[ch] : "???"); LOG_NOTICE(SPU, "get_ch_count(ch=%d [%s])", ch, ch < 128 ? spu_ch_name[ch] : "???");
} }
@ -600,7 +599,7 @@ u32 SPUThread::get_ch_count(u32 ch)
u32 SPUThread::get_ch_value(u32 ch) u32 SPUThread::get_ch_value(u32 ch)
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "get_ch_value(ch=%d [%s])", ch, ch < 128 ? spu_ch_name[ch] : "???"); LOG_NOTICE(SPU, "get_ch_value(ch=%d [%s])", ch, ch < 128 ? spu_ch_name[ch] : "???");
} }
@ -764,7 +763,7 @@ u32 SPUThread::get_ch_value(u32 ch)
void SPUThread::set_ch_value(u32 ch, u32 value) void SPUThread::set_ch_value(u32 ch, u32 value)
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "set_ch_value(ch=%d [%s], value=0x%x)", ch, ch < 128 ? spu_ch_name[ch] : "???", value); LOG_NOTICE(SPU, "set_ch_value(ch=%d [%s], value=0x%x)", ch, ch < 128 ? spu_ch_name[ch] : "???", value);
} }
@ -823,7 +822,7 @@ void SPUThread::set_ch_value(u32 ch, u32 value)
ch_out_mbox.set_value(data, 0); ch_out_mbox.set_value(data, 0);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "sys_spu_thread_send_event(spup=%d, data0=0x%x, data1=0x%x)", spup, value & 0x00ffffff, data); LOG_NOTICE(SPU, "sys_spu_thread_send_event(spup=%d, data0=0x%x, data1=0x%x)", spup, value & 0x00ffffff, data);
} }
@ -862,7 +861,7 @@ void SPUThread::set_ch_value(u32 ch, u32 value)
ch_out_mbox.set_value(data, 0); ch_out_mbox.set_value(data, 0);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_WARNING(SPU, "sys_spu_thread_throw_event(spup=%d, data0=0x%x, data1=0x%x)", spup, value & 0x00ffffff, data); LOG_WARNING(SPU, "sys_spu_thread_throw_event(spup=%d, data0=0x%x, data1=0x%x)", spup, value & 0x00ffffff, data);
} }
@ -912,7 +911,7 @@ void SPUThread::set_ch_value(u32 ch, u32 value)
throw EXCEPTION("sys_event_flag_set_bit(id=%d, value=0x%x (flag=%d)): Invalid flag", data, value, flag); throw EXCEPTION("sys_event_flag_set_bit(id=%d, value=0x%x (flag=%d)): Invalid flag", data, value, flag);
} }
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_WARNING(SPU, "sys_event_flag_set_bit(id=%d, value=0x%x (flag=%d))", data, value, flag); LOG_WARNING(SPU, "sys_event_flag_set_bit(id=%d, value=0x%x (flag=%d))", data, value, flag);
} }
@ -956,7 +955,7 @@ void SPUThread::set_ch_value(u32 ch, u32 value)
throw EXCEPTION("sys_event_flag_set_bit_impatient(id=%d, value=0x%x (flag=%d)): Invalid flag", data, value, flag); throw EXCEPTION("sys_event_flag_set_bit_impatient(id=%d, value=0x%x (flag=%d)): Invalid flag", data, value, flag);
} }
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_WARNING(SPU, "sys_event_flag_set_bit_impatient(id=%d, value=0x%x (flag=%d))", data, value, flag); LOG_WARNING(SPU, "sys_event_flag_set_bit_impatient(id=%d, value=0x%x (flag=%d))", data, value, flag);
} }
@ -1155,7 +1154,7 @@ void SPUThread::set_ch_value(u32 ch, u32 value)
void SPUThread::stop_and_signal(u32 code) void SPUThread::stop_and_signal(u32 code)
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "stop_and_signal(code=0x%x)", code); LOG_NOTICE(SPU, "stop_and_signal(code=0x%x)", code);
} }
@ -1226,7 +1225,7 @@ void SPUThread::stop_and_signal(u32 code)
ch_out_mbox.set_value(spuq, 0); ch_out_mbox.set_value(spuq, 0);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "sys_spu_thread_receive_event(spuq=0x%x)", spuq); LOG_NOTICE(SPU, "sys_spu_thread_receive_event(spuq=0x%x)", spuq);
} }
@ -1352,7 +1351,7 @@ void SPUThread::stop_and_signal(u32 code)
ch_out_mbox.set_value(value, 0); ch_out_mbox.set_value(value, 0);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "sys_spu_thread_group_exit(status=0x%x)", value); LOG_NOTICE(SPU, "sys_spu_thread_group_exit(status=0x%x)", value);
} }
@ -1391,7 +1390,7 @@ void SPUThread::stop_and_signal(u32 code)
throw EXCEPTION("sys_spu_thread_exit(): Out_MBox is empty"); throw EXCEPTION("sys_spu_thread_exit(): Out_MBox is empty");
} }
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "sys_spu_thread_exit(status=0x%x)", ch_out_mbox.get_value()); LOG_NOTICE(SPU, "sys_spu_thread_exit(status=0x%x)", ch_out_mbox.get_value());
} }
@ -1422,7 +1421,7 @@ void SPUThread::stop_and_signal(u32 code)
void SPUThread::halt() void SPUThread::halt()
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(SPU, "halt()"); LOG_NOTICE(SPU, "halt()");
} }

View File

@ -5,10 +5,12 @@
#include "vfsDirBase.h" #include "vfsDirBase.h"
#include "Emu/HDD/HDD.h" #include "Emu/HDD/HDD.h"
#include "vfsDeviceLocalFile.h" #include "vfsDeviceLocalFile.h"
#include "Ini.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Ini.h"
std::vector<std::string> simplify_path_blocks(const std::string& path) std::vector<std::string> simplify_path_blocks(const std::string& path)
{ {
// fmt::tolower() removed // fmt::tolower() removed
@ -480,9 +482,9 @@ void VFS::Init(const std::string& path)
std::string mpath = entry.path; std::string mpath = entry.path;
// TODO: This shouldn't use current dir // TODO: This shouldn't use current dir
// If no value assigned to SysEmulationDirPath in INI, use the path that with executable. // If no value assigned to SysEmulationDirPath in INI, use the path that with executable.
if (Ini.SysEmulationDirPathEnable.GetValue()) if (rpcs3::config.system.emulation_dir_path_enable.value())
{ {
fmt::Replace(mpath, "$(EmulatorDir)", Ini.SysEmulationDirPath.GetValue()); fmt::Replace(mpath, "$(EmulatorDir)", rpcs3::config.system.emulation_dir_path.value());
} }
else else
{ {
@ -526,13 +528,13 @@ void VFS::SaveLoadDevices(std::vector<VFSManagerEntry>& res, bool is_load)
} }
// Custom EmulationDir // Custom EmulationDir
if (Ini.SysEmulationDirPathEnable.GetValue()) if (rpcs3::config.system.emulation_dir_path_enable.value())
{ {
std::string dir = Ini.SysEmulationDirPath.GetValue(); std::string dir = rpcs3::config.system.emulation_dir_path.value();
if (dir.empty()) if (dir.empty())
{ {
Ini.SysEmulationDirPath.SetValue(Emu.GetEmulatorPath()); rpcs3::config.system.emulation_dir_path = Emu.GetEmulatorPath();
} }
if (!fs::is_dir(dir)) if (!fs::is_dir(dir))

View File

@ -1,5 +1,6 @@
#pragma once #pragma once
#include "Emu/Io/PadHandler.h" #include "Emu/Io/PadHandler.h"
#include "Emu/state.h"
class WindowsPadHandler final class WindowsPadHandler final
: public wxWindow : public wxWindow
@ -38,27 +39,27 @@ public:
CELL_PAD_CAPABILITY_PS3_CONFORMITY | CELL_PAD_CAPABILITY_PRESS_MODE, CELL_PAD_CAPABILITY_PS3_CONFORMITY | CELL_PAD_CAPABILITY_PRESS_MODE,
CELL_PAD_DEV_TYPE_STANDARD); CELL_PAD_DEV_TYPE_STANDARD);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerLeft.GetValue(), CELL_PAD_CTRL_LEFT); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.left.value(), CELL_PAD_CTRL_LEFT);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerDown.GetValue(), CELL_PAD_CTRL_DOWN); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.down.value(), CELL_PAD_CTRL_DOWN);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerRight.GetValue(), CELL_PAD_CTRL_RIGHT); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.right.value(), CELL_PAD_CTRL_RIGHT);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerUp.GetValue(), CELL_PAD_CTRL_UP); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.up.value(), CELL_PAD_CTRL_UP);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerStart.GetValue(), CELL_PAD_CTRL_START); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.start.value(), CELL_PAD_CTRL_START);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerR3.GetValue(), CELL_PAD_CTRL_R3); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.r3.value(), CELL_PAD_CTRL_R3);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerL3.GetValue(), CELL_PAD_CTRL_L3); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.l3.value(), CELL_PAD_CTRL_L3);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, Ini.PadHandlerSelect.GetValue(), CELL_PAD_CTRL_SELECT); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL1, rpcs3::config.io.pad.select.value(), CELL_PAD_CTRL_SELECT);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerSquare.GetValue(), CELL_PAD_CTRL_SQUARE); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.square.value(), CELL_PAD_CTRL_SQUARE);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerCross.GetValue(), CELL_PAD_CTRL_CROSS); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.cross.value(), CELL_PAD_CTRL_CROSS);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerCircle.GetValue(), CELL_PAD_CTRL_CIRCLE); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.circle.value(), CELL_PAD_CTRL_CIRCLE);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerTriangle.GetValue(), CELL_PAD_CTRL_TRIANGLE); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.triangle.value(), CELL_PAD_CTRL_TRIANGLE);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerR1.GetValue(), CELL_PAD_CTRL_R1); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.r1.value(), CELL_PAD_CTRL_R1);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerL1.GetValue(), CELL_PAD_CTRL_L1); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.l1.value(), CELL_PAD_CTRL_L1);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerR2.GetValue(), CELL_PAD_CTRL_R2); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.r2.value(), CELL_PAD_CTRL_R2);
m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, Ini.PadHandlerL2.GetValue(), CELL_PAD_CTRL_L2); m_pads[0].m_buttons.emplace_back(CELL_PAD_BTN_OFFSET_DIGITAL2, rpcs3::config.io.pad.l2.value(), CELL_PAD_CTRL_L2);
m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_LEFT_X, Ini.PadHandlerLStickLeft.GetValue(), Ini.PadHandlerLStickRight.GetValue()); m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_LEFT_X, rpcs3::config.io.pad.left_stick_left.value(), rpcs3::config.io.pad.left_stick_right.value());
m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_LEFT_Y, Ini.PadHandlerLStickUp.GetValue(), Ini.PadHandlerLStickDown.GetValue()); m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_LEFT_Y, rpcs3::config.io.pad.left_stick_up.value(), rpcs3::config.io.pad.left_stick_down.value());
m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_X, Ini.PadHandlerRStickLeft.GetValue(), Ini.PadHandlerRStickRight.GetValue()); m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_X, rpcs3::config.io.pad.right_stick_left.value(), rpcs3::config.io.pad.right_stick_right.value());
m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_Y, Ini.PadHandlerRStickUp.GetValue(), Ini.PadHandlerRStickDown.GetValue()); m_pads[0].m_sticks.emplace_back(CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_Y, rpcs3::config.io.pad.right_stick_up.value(), rpcs3::config.io.pad.right_stick_down.value());
} }
}; };

View File

@ -141,7 +141,7 @@ D3D12GSRender::D3D12GSRender()
LOG_WARNING(RSX, "Reporting Cell writing to %x", addr); LOG_WARNING(RSX, "Reporting Cell writing to %x", addr);
return result; return result;
}; };
if (Ini.GSDebugOutputEnable.GetValue()) if (rpcs3::config.rsx.d3d12.debug_output.value())
{ {
Microsoft::WRL::ComPtr<ID3D12Debug> debugInterface; Microsoft::WRL::ComPtr<ID3D12Debug> debugInterface;
wrapD3D12GetDebugInterface(IID_PPV_ARGS(&debugInterface)); wrapD3D12GetDebugInterface(IID_PPV_ARGS(&debugInterface));
@ -152,7 +152,7 @@ D3D12GSRender::D3D12GSRender()
ThrowIfFailed(CreateDXGIFactory(IID_PPV_ARGS(&dxgiFactory))); ThrowIfFailed(CreateDXGIFactory(IID_PPV_ARGS(&dxgiFactory)));
// Create adapter // Create adapter
ComPtr<IDXGIAdapter> adaptater = nullptr; ComPtr<IDXGIAdapter> adaptater = nullptr;
ThrowIfFailed(dxgiFactory->EnumAdapters(Ini.GSD3DAdaptater.GetValue(), adaptater.GetAddressOf())); ThrowIfFailed(dxgiFactory->EnumAdapters(rpcs3::state.config.rsx.d3d12.adaptater.value(), adaptater.GetAddressOf()));
ThrowIfFailed(wrapD3D12CreateDevice(adaptater.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device))); ThrowIfFailed(wrapD3D12CreateDevice(adaptater.Get(), D3D_FEATURE_LEVEL_11_0, IID_PPV_ARGS(&m_device)));
// Queues // Queues
@ -247,7 +247,7 @@ D3D12GSRender::D3D12GSRender()
m_vertexIndexData.Init(m_device.Get(), 1024 * 1024 * 256, D3D12_HEAP_TYPE_UPLOAD, D3D12_HEAP_FLAG_NONE); m_vertexIndexData.Init(m_device.Get(), 1024 * 1024 * 256, D3D12_HEAP_TYPE_UPLOAD, D3D12_HEAP_FLAG_NONE);
m_textureUploadData.Init(m_device.Get(), 1024 * 1024 * 512, D3D12_HEAP_TYPE_UPLOAD, D3D12_HEAP_FLAG_NONE); m_textureUploadData.Init(m_device.Get(), 1024 * 1024 * 512, D3D12_HEAP_TYPE_UPLOAD, D3D12_HEAP_FLAG_NONE);
if (Ini.GSOverlay.GetValue()) if (rpcs3::config.rsx.d3d12.overlay.value())
InitD2DStructures(); InitD2DStructures();
} }
@ -392,7 +392,7 @@ void D3D12GSRender::clear_surface(u32 arg)
m_timers.m_drawCallDuration += std::chrono::duration_cast<std::chrono::microseconds>(endDuration - startDuration).count(); m_timers.m_drawCallDuration += std::chrono::duration_cast<std::chrono::microseconds>(endDuration - startDuration).count();
m_timers.m_drawCallCount++; m_timers.m_drawCallCount++;
if (Ini.GSDebugOutputEnable.GetValue()) if (rpcs3::config.rsx.d3d12.debug_output.value())
{ {
ThrowIfFailed(getCurrentResourceStorage().m_commandList->Close()); ThrowIfFailed(getCurrentResourceStorage().m_commandList->Close());
m_commandQueueGraphic->ExecuteCommandLists(1, (ID3D12CommandList**)getCurrentResourceStorage().m_commandList.GetAddressOf()); m_commandQueueGraphic->ExecuteCommandLists(1, (ID3D12CommandList**)getCurrentResourceStorage().m_commandList.GetAddressOf());
@ -604,7 +604,7 @@ void D3D12GSRender::end()
m_timers.m_drawCallDuration += std::chrono::duration_cast<std::chrono::microseconds>(endDuration - startDuration).count(); m_timers.m_drawCallDuration += std::chrono::duration_cast<std::chrono::microseconds>(endDuration - startDuration).count();
m_timers.m_drawCallCount++; m_timers.m_drawCallCount++;
if (Ini.GSDebugOutputEnable.GetValue()) if (rpcs3::config.rsx.d3d12.debug_output.value())
{ {
ThrowIfFailed(getCurrentResourceStorage().m_commandList->Close()); ThrowIfFailed(getCurrentResourceStorage().m_commandList->Close());
m_commandQueueGraphic->ExecuteCommandLists(1, (ID3D12CommandList**)getCurrentResourceStorage().m_commandList.GetAddressOf()); m_commandQueueGraphic->ExecuteCommandLists(1, (ID3D12CommandList**)getCurrentResourceStorage().m_commandList.GetAddressOf());
@ -758,21 +758,21 @@ void D3D12GSRender::flip(int buffer)
if (m_rtts.m_currentlyBoundRenderTargets[0] != nullptr) if (m_rtts.m_currentlyBoundRenderTargets[0] != nullptr)
getCurrentResourceStorage().m_commandList->DrawInstanced(4, 1, 0, 0); getCurrentResourceStorage().m_commandList->DrawInstanced(4, 1, 0, 0);
if (!Ini.GSOverlay.GetValue()) if (!rpcs3::config.rsx.d3d12.overlay.value())
getCurrentResourceStorage().m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_backBuffer[m_swapChain->GetCurrentBackBufferIndex()].Get(), D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT)); getCurrentResourceStorage().m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_backBuffer[m_swapChain->GetCurrentBackBufferIndex()].Get(), D3D12_RESOURCE_STATE_RENDER_TARGET, D3D12_RESOURCE_STATE_PRESENT));
if (isFlipSurfaceInLocalMemory(rsx::method_registers[NV4097_SET_SURFACE_COLOR_TARGET]) && m_rtts.m_currentlyBoundRenderTargets[0] != nullptr) if (isFlipSurfaceInLocalMemory(rsx::method_registers[NV4097_SET_SURFACE_COLOR_TARGET]) && m_rtts.m_currentlyBoundRenderTargets[0] != nullptr)
getCurrentResourceStorage().m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_rtts.m_currentlyBoundRenderTargets[0], D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_RENDER_TARGET)); getCurrentResourceStorage().m_commandList->ResourceBarrier(1, &CD3DX12_RESOURCE_BARRIER::Transition(m_rtts.m_currentlyBoundRenderTargets[0], D3D12_RESOURCE_STATE_GENERIC_READ, D3D12_RESOURCE_STATE_RENDER_TARGET));
ThrowIfFailed(getCurrentResourceStorage().m_commandList->Close()); ThrowIfFailed(getCurrentResourceStorage().m_commandList->Close());
m_commandQueueGraphic->ExecuteCommandLists(1, (ID3D12CommandList**)getCurrentResourceStorage().m_commandList.GetAddressOf()); m_commandQueueGraphic->ExecuteCommandLists(1, (ID3D12CommandList**)getCurrentResourceStorage().m_commandList.GetAddressOf());
if(Ini.GSOverlay.GetValue()) if(rpcs3::config.rsx.d3d12.overlay.value())
renderOverlay(); renderOverlay();
ResetTimer(); ResetTimer();
std::chrono::time_point<std::chrono::system_clock> flipStart = std::chrono::system_clock::now(); std::chrono::time_point<std::chrono::system_clock> flipStart = std::chrono::system_clock::now();
ThrowIfFailed(m_swapChain->Present(Ini.GSVSyncEnable.GetValue() ? 1 : 0, 0)); ThrowIfFailed(m_swapChain->Present(rpcs3::state.config.rsx.vsync.value() ? 1 : 0, 0));
// Add an event signaling queue completion // Add an event signaling queue completion
ResourceStorage &storage = getNonCurrentResourceStorage(); ResourceStorage &storage = getNonCurrentResourceStorage();

View File

@ -1,7 +1,6 @@
#pragma once #pragma once
#include "D3D12.h" #include "D3D12.h"
#include "rpcs3/Ini.h"
#include "Utilities/rPlatform.h" // only for rImage #include "Utilities/rPlatform.h" // only for rImage
#include "Utilities/File.h" #include "Utilities/File.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"

View File

@ -3,6 +3,7 @@
#include <d3dcompiler.h> #include <d3dcompiler.h>
#include "D3D12PipelineState.h" #include "D3D12PipelineState.h"
#include "D3D12GSRender.h" #include "D3D12GSRender.h"
#include "Emu/state.h"
#pragma comment (lib, "d3dcompiler.lib") #pragma comment (lib, "d3dcompiler.lib")
@ -13,7 +14,7 @@ void Shader::Compile(const std::string &code, SHADER_TYPE st)
HRESULT hr; HRESULT hr;
ComPtr<ID3DBlob> errorBlob; ComPtr<ID3DBlob> errorBlob;
UINT compileFlags; UINT compileFlags;
if (Ini.GSDebugOutputEnable.GetValue()) if (rpcs3::config.rsx.d3d12.debug_output.value())
compileFlags = D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION; compileFlags = D3DCOMPILE_DEBUG | D3DCOMPILE_SKIP_OPTIMIZATION;
else else
compileFlags = 0; compileFlags = 0;

View File

@ -1,12 +1,12 @@
#include "stdafx_d3d12.h" #include "stdafx_d3d12.h"
#ifdef _WIN32 #ifdef _WIN32
#include "D3D12RenderTargetSets.h" #include "D3D12RenderTargetSets.h"
#include "rpcs3/Ini.h"
#include "Utilities/rPlatform.h" // only for rImage #include "Utilities/rPlatform.h" // only for rImage
#include "Utilities/File.h" #include "Utilities/File.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/RSX/GSRender.h" #include "Emu/RSX/GSRender.h"
#include "D3D12.h" #include "D3D12.h"

View File

@ -1,12 +1,11 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/rPlatform.h" // only for rImage #include "Utilities/rPlatform.h" // only for rImage
#include "Utilities/File.h" #include "Utilities/File.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "GLGSRender.h"
#include "Emu/state.h" #include "Emu/state.h"
#include "GLGSRender.h"
#define DUMP_VERTEX_DATA 0 #define DUMP_VERTEX_DATA 0

View File

@ -1,5 +1,4 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/SysCalls/Modules/cellVideoOut.h" #include "Emu/SysCalls/Modules/cellVideoOut.h"
@ -14,10 +13,10 @@
void GSInfo::Init() void GSInfo::Init()
{ {
mode.resolutionId = Ini.GSResolution.GetValue(); mode.resolutionId = (u8)rpcs3::state.config.rsx.resolution.value();
mode.scanMode = CELL_VIDEO_OUT_SCAN_MODE_INTERLACE; mode.scanMode = CELL_VIDEO_OUT_SCAN_MODE_INTERLACE;
mode.conversion = CELL_VIDEO_OUT_DISPLAY_CONVERSION_NONE; mode.conversion = CELL_VIDEO_OUT_DISPLAY_CONVERSION_NONE;
mode.aspect = Ini.GSAspectRatio.GetValue(); mode.aspect = (u8)rpcs3::state.config.rsx.aspect_ratio.value();
mode.refreshRates = CELL_VIDEO_OUT_REFRESH_RATE_50HZ; mode.refreshRates = CELL_VIDEO_OUT_REFRESH_RATE_50HZ;
mode.format = CELL_VIDEO_OUT_BUFFER_COLOR_FORMAT_X8R8G8B8; mode.format = CELL_VIDEO_OUT_BUFFER_COLOR_FORMAT_X8R8G8B8;
mode.pitch = 4; mode.pitch = 4;

View File

@ -1,8 +1,8 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/RSX/GSManager.h" #include "Emu/RSX/GSManager.h"
#include "RSXThread.h" #include "RSXThread.h"
@ -571,15 +571,15 @@ namespace rsx
//sync //sync
double limit; double limit;
switch (Ini.GSFrameLimit.GetValue()) switch (rpcs3::state.config.rsx.frame_limit.value())
{ {
case 1: limit = 50.; break; case rsx_frame_limit::_50: limit = 50.; break;
case 2: limit = 59.94; break; case rsx_frame_limit::_59_94: limit = 59.94; break;
case 3: limit = 30.; break; case rsx_frame_limit::_30: limit = 30.; break;
case 4: limit = 60.; break; case rsx_frame_limit::_60: limit = 60.; break;
case 5: limit = rsx->fps_limit; break; //TODO case rsx_frame_limit::Auto: limit = rsx->fps_limit; break; //TODO
case 0: case rsx_frame_limit::Off:
default: default:
return; return;
} }
@ -999,7 +999,7 @@ namespace rsx
u32 reg = first_cmd + (i * inc); u32 reg = first_cmd + (i * inc);
u32 value = args[i]; u32 value = args[i];
if (Ini.RSXLogging.GetValue()) if (rpcs3::config.misc.log.rsx_logging.value())
{ {
LOG_NOTICE(Log::RSX, "%s(0x%x) = 0x%x", get_method_name(reg).c_str(), reg, value); LOG_NOTICE(Log::RSX, "%s(0x%x) = 0x%x", get_method_name(reg).c_str(), reg, value);
} }

View File

@ -7,7 +7,7 @@
bool LogBase::CheckLogging() const bool LogBase::CheckLogging() const
{ {
return Ini.HLELogging.GetValue() || m_logging; return rpcs3::config.misc.log.hle_logging.value() || m_logging;
} }
void LogBase::LogOutput(LogType type, std::string text) const void LogBase::LogOutput(LogType type, std::string text) const

View File

@ -1,8 +1,8 @@
#include "stdafx.h" #include "stdafx.h"
#include "Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Emu/SysCalls/SysCalls.h" #include "Emu/SysCalls/SysCalls.h"
#include "Crypto/sha1.h" #include "Crypto/sha1.h"
@ -145,7 +145,7 @@ void execute_ppu_func_by_index(PPUThread& ppu, u32 index)
throw EXCEPTION("Forced HLE enabled: %s (0x%llx)", get_ps3_function_name(func->id), func->id); throw EXCEPTION("Forced HLE enabled: %s (0x%llx)", get_ps3_function_name(func->id), func->id);
} }
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(HLE, "Branch to LLE function: %s (0x%llx)", get_ps3_function_name(func->id), func->id); LOG_NOTICE(HLE, "Branch to LLE function: %s (0x%llx)", get_ps3_function_name(func->id), func->id);
} }
@ -174,28 +174,28 @@ void execute_ppu_func_by_index(PPUThread& ppu, u32 index)
const u32 pc = data[0]; const u32 pc = data[0];
const u32 rtoc = data[1]; const u32 rtoc = data[1];
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(HLE, "LLE function called: %s", get_ps3_function_name(func->id)); LOG_NOTICE(HLE, "LLE function called: %s", get_ps3_function_name(func->id));
} }
ppu.fast_call(pc, rtoc); ppu.fast_call(pc, rtoc);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(HLE, "LLE function finished: %s -> 0x%llx", get_ps3_function_name(func->id), ppu.GPR[3]); LOG_NOTICE(HLE, "LLE function finished: %s -> 0x%llx", get_ps3_function_name(func->id), ppu.GPR[3]);
} }
} }
else if (func->func) else if (func->func)
{ {
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(HLE, "HLE function called: %s", get_ps3_function_name(func->id)); LOG_NOTICE(HLE, "HLE function called: %s", get_ps3_function_name(func->id));
} }
func->func(ppu); func->func(ppu);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(HLE, "HLE function finished: %s -> 0x%llx", get_ps3_function_name(func->id), ppu.GPR[3]); LOG_NOTICE(HLE, "HLE function finished: %s -> 0x%llx", get_ps3_function_name(func->id), ppu.GPR[3]);
} }

View File

@ -1,11 +1,11 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Emu/SysCalls/Callback.h" #include "Emu/SysCalls/Callback.h"
#include "rpcs3/Ini.h"
#include "Emu/SysCalls/lv2/sys_sync.h" #include "Emu/SysCalls/lv2/sys_sync.h"
#include "Emu/SysCalls/lv2/sys_event.h" #include "Emu/SysCalls/lv2/sys_event.h"
#include "Emu/Event.h" #include "Emu/Event.h"
@ -59,7 +59,7 @@ s32 cellAudioInit()
{ {
std::unique_lock<std::mutex> lock(g_audio.thread.mutex); std::unique_lock<std::mutex> lock(g_audio.thread.mutex);
const bool do_dump = Ini.AudioDumpToFile.GetValue(); const bool do_dump = rpcs3::config.audio.dump_to_file.value();
AudioDumper m_dump; AudioDumper m_dump;
if (do_dump && !m_dump.Init(2)) // Init AudioDumper for 2 channels if (do_dump && !m_dump.Init(2)) // Init AudioDumper for 2 channels
@ -83,7 +83,7 @@ s32 cellAudioInit()
autojoin_thread_t iat(WRAP_EXPR("Internal Audio Thread"), [&out_queue]() autojoin_thread_t iat(WRAP_EXPR("Internal Audio Thread"), [&out_queue]()
{ {
const bool use_u16 = Ini.AudioConvertToU16.GetValue(); const bool use_u16 = rpcs3::config.audio.convert_to_u16.value();;
Emu.GetAudioManager().GetAudioOut().Init(); Emu.GetAudioManager().GetAudioOut().Init();

View File

@ -1,8 +1,8 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Emu/state.h"
#include "Ini.h"
#include "cellAudioIn.h" #include "cellAudioIn.h"
#include "cellAudioOut.h" #include "cellAudioOut.h"
#include "cellVideoOut.h" #include "cellVideoOut.h"
@ -127,7 +127,7 @@ s32 cellVideoOutGetScreenSize(u32 videoOut, vm::ptr<float> screenSize)
// float diagonal = roundf(sqrtf((powf(wxGetDisplaySizeMM().GetWidth(), 2) + powf(wxGetDisplaySizeMM().GetHeight(), 2))) * 0.0393f); // float diagonal = roundf(sqrtf((powf(wxGetDisplaySizeMM().GetWidth(), 2) + powf(wxGetDisplaySizeMM().GetHeight(), 2))) * 0.0393f);
#endif #endif
if (Ini.GS3DTV.GetValue()) if (rpcs3::config.rsx._3dtv.value())
{ {
*screenSize = 24.0f; *screenSize = 24.0f;
return CELL_OK; return CELL_OK;

View File

@ -1,8 +1,8 @@
#include "stdafx.h" #include "stdafx.h"
#include "Ini.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "cellCamera.h" #include "cellCamera.h"
@ -82,7 +82,7 @@ s32 cellCameraInit()
{ {
cellCamera.Warning("cellCameraInit()"); cellCamera.Warning("cellCameraInit()");
if (Ini.Camera.GetValue() == 0) if (rpcs3::config.io.camera.value() == io_camera_state::null)
{ {
return CELL_CAMERA_ERROR_DEVICE_NOT_FOUND; return CELL_CAMERA_ERROR_DEVICE_NOT_FOUND;
} }
@ -94,7 +94,9 @@ s32 cellCameraInit()
return CELL_CAMERA_ERROR_ALREADY_INIT; return CELL_CAMERA_ERROR_ALREADY_INIT;
} }
if (Ini.CameraType.GetValue() == 1) switch (rpcs3::config.io.camera_type.value())
{
case io_camera_type::eye_toy:
{ {
camera->attr[CELL_CAMERA_SATURATION] = { 164 }; camera->attr[CELL_CAMERA_SATURATION] = { 164 };
camera->attr[CELL_CAMERA_BRIGHTNESS] = { 96 }; camera->attr[CELL_CAMERA_BRIGHTNESS] = { 96 };
@ -111,7 +113,9 @@ s32 cellCameraInit()
camera->attr[CELL_CAMERA_422FLAG] = { 1 }; camera->attr[CELL_CAMERA_422FLAG] = { 1 };
camera->attr[CELL_CAMERA_USBLOAD] = { 4 }; camera->attr[CELL_CAMERA_USBLOAD] = { 4 };
} }
else if (Ini.CameraType.GetValue() == 2) break;
case io_camera_type::play_station_eye:
{ {
camera->attr[CELL_CAMERA_SATURATION] = { 64 }; camera->attr[CELL_CAMERA_SATURATION] = { 64 };
camera->attr[CELL_CAMERA_BRIGHTNESS] = { 8 }; camera->attr[CELL_CAMERA_BRIGHTNESS] = { 8 };
@ -129,6 +133,12 @@ s32 cellCameraInit()
camera->attr[CELL_CAMERA_AGCLOW] = { 48 }; camera->attr[CELL_CAMERA_AGCLOW] = { 48 };
camera->attr[CELL_CAMERA_AGCHIGH] = { 64 }; camera->attr[CELL_CAMERA_AGCHIGH] = { 64 };
} }
break;
default: break;
}
// TODO: Some other default attributes? Need to check the actual behaviour on a real PS3. // TODO: Some other default attributes? Need to check the actual behaviour on a real PS3.
return CELL_OK; return CELL_OK;
@ -181,11 +191,11 @@ s32 cellCameraGetType(s32 dev_num, vm::ptr<s32> type)
return CELL_CAMERA_ERROR_NOT_INIT; return CELL_CAMERA_ERROR_NOT_INIT;
} }
switch (Ini.CameraType.GetValue()) switch (rpcs3::config.io.camera_type.value())
{ {
case 1: *type = CELL_CAMERA_EYETOY; break; case io_camera_type::eye_toy: *type = CELL_CAMERA_EYETOY; break;
case 2: *type = CELL_CAMERA_EYETOY2; break; case io_camera_type::play_station_eye: *type = CELL_CAMERA_EYETOY2; break;
case 3: *type = CELL_CAMERA_USBVIDEOCLASS; break; case io_camera_type::usb_video_class_1_1: *type = CELL_CAMERA_USBVIDEOCLASS; break;
default: *type = CELL_CAMERA_TYPE_UNKNOWN; break; default: *type = CELL_CAMERA_TYPE_UNKNOWN; break;
} }
@ -202,7 +212,7 @@ s32 cellCameraIsAttached(s32 dev_num)
{ {
cellCamera.Warning("cellCameraIsAttached(dev_num=%d)", dev_num); cellCamera.Warning("cellCameraIsAttached(dev_num=%d)", dev_num);
if (Ini.Camera.GetValue() == 1) if (rpcs3::config.io.camera.value() == io_camera_state::connected)
{ {
return 1; return 1;
} }

View File

@ -1,10 +1,10 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "rpcs3/Ini.h"
#include "cellSysutil.h" #include "cellSysutil.h"
#include "cellNetCtl.h" #include "cellNetCtl.h"
@ -48,21 +48,14 @@ s32 cellNetCtlGetState(vm::ptr<u32> state)
{ {
cellNetCtl.Log("cellNetCtlGetState(state=*0x%x)", state); cellNetCtl.Log("cellNetCtlGetState(state=*0x%x)", state);
if (Ini.NETStatus.GetValue() == 0) switch (rpcs3::config.misc.net.status.value())
{ {
*state = CELL_NET_CTL_STATE_IPObtained; case misc_net_status::ip_obtained: *state = CELL_NET_CTL_STATE_IPObtained; break;
} case misc_net_status::obtaining_ip: *state = CELL_NET_CTL_STATE_IPObtaining; break;
else if (Ini.NETStatus.GetValue() == 1) case misc_net_status::connecting: *state = CELL_NET_CTL_STATE_Connecting; break;
{ case misc_net_status::disconnected: *state = CELL_NET_CTL_STATE_Disconnected; break;
*state = CELL_NET_CTL_STATE_IPObtaining;
} default: *state = CELL_NET_CTL_STATE_Disconnected; break;
else if (Ini.NETStatus.GetValue() == 2)
{
*state = CELL_NET_CTL_STATE_Connecting;
}
else
{
*state = CELL_NET_CTL_STATE_Disconnected;
} }
return CELL_OK; return CELL_OK;
@ -114,7 +107,7 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr<CellNetCtlInfo> info)
{ {
PIP_ADAPTER_ADDRESSES pCurrAddresses = pAddresses; PIP_ADAPTER_ADDRESSES pCurrAddresses = pAddresses;
for (int c = 0; c < Ini.NETInterface.GetValue(); c++) for (int c = 0; c < rpcs3::config.misc.net._interface.value(); c++)
{ {
pCurrAddresses = pCurrAddresses->Next; pCurrAddresses = pCurrAddresses->Next;
} }
@ -144,7 +137,7 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr<CellNetCtlInfo> info)
continue; continue;
} }
if (n < Ini.NETInterface.GetValue()) if (n < rpcs3::config.misc.net._interface.value())
{ {
continue; continue;
} }
@ -202,7 +195,7 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr<CellNetCtlInfo> info)
{ {
PIP_ADAPTER_INFO pAdapter = pAdapterInfo; PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
for (int c = 0; c < Ini.NETInterface.GetValue(); c++) for (int c = 0; c < rpcs3::config.misc.net._interface.value(); c++)
{ {
pAdapter = pAdapter->Next; pAdapter = pAdapter->Next;
} }
@ -233,7 +226,7 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr<CellNetCtlInfo> info)
continue; continue;
} }
if (n < Ini.NETInterface.GetValue()) if (n < rpcs3::config.misc.net._interface.value())
{ {
continue; continue;
} }
@ -277,7 +270,7 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr<CellNetCtlInfo> info)
{ {
PIP_ADAPTER_INFO pAdapter = pAdapterInfo; PIP_ADAPTER_INFO pAdapter = pAdapterInfo;
for (int c = 0; c < Ini.NETInterface.GetValue(); c++) for (int c = 0; c < rpcs3::config.misc.net._interface.value(); c++)
{ {
pAdapter = pAdapter->Next; pAdapter = pAdapter->Next;
} }
@ -314,7 +307,7 @@ s32 cellNetCtlGetInfo(s32 code, vm::ptr<CellNetCtlInfo> info)
continue; continue;
} }
if (n < Ini.NETInterface.GetValue()) if (n < rpcs3::config.misc.net._interface.value())
{ {
continue; continue;
} }

View File

@ -2,10 +2,10 @@
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Emu/SysCalls/Callback.h" #include "Emu/SysCalls/Callback.h"
#include "Ini.h"
#include "Emu/FS/VFS.h" #include "Emu/FS/VFS.h"
#include "cellSysutil.h" #include "cellSysutil.h"
@ -45,7 +45,7 @@ s32 cellSysutilGetSystemParamInt(s32 id, vm::ptr<s32> value)
switch(id) switch(id)
{ {
case CELL_SYSUTIL_SYSTEMPARAM_ID_LANG: case CELL_SYSUTIL_SYSTEMPARAM_ID_LANG:
*value = Ini.SysLanguage.GetValue(); *value = rpcs3::config.system.language.value();
break; break;
case CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN: case CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN:

View File

@ -1,7 +1,7 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "rpcs3/Ini.h" #include "Emu/state.h"
#include "sceNp.h" #include "sceNp.h"
#include "sceNp2.h" #include "sceNp2.h"
@ -133,7 +133,7 @@ s32 cellSysutilAvc2IsCameraAttached(vm::ptr<u8> status)
{ {
cellSysutilAvc2.Todo("cellSysutilAvc2IsCameraAttached()"); cellSysutilAvc2.Todo("cellSysutilAvc2IsCameraAttached()");
if (Ini.Camera.GetValue() == 0) if (rpcs3::config.io.camera.value() == io_camera_state::null)
{ {
*status = CELL_AVC2_CAMERA_STATUS_DETACHED; *status = CELL_AVC2_CAMERA_STATUS_DETACHED;
} }

View File

@ -1,9 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Ini.h"
#include "Emu/RSX/GSManager.h" #include "Emu/RSX/GSManager.h"
#include "cellVideoOut.h" #include "cellVideoOut.h"
@ -155,7 +155,7 @@ s32 cellVideoOutGetResolutionAvailability(u32 videoOut, u32 resolutionId, u32 as
{ {
cellSysutil.Warning("cellVideoOutGetResolutionAvailability(videoOut=%d, resolutionId=0x%x, aspect=%d, option=%d)", videoOut, resolutionId, aspect, option); cellSysutil.Warning("cellVideoOutGetResolutionAvailability(videoOut=%d, resolutionId=0x%x, aspect=%d, option=%d)", videoOut, resolutionId, aspect, option);
if (!Ini.GS3DTV.GetValue() && (resolutionId == CELL_VIDEO_OUT_RESOLUTION_720_3D_FRAME_PACKING || resolutionId == CELL_VIDEO_OUT_RESOLUTION_1024x720_3D_FRAME_PACKING || if (!rpcs3::config.rsx._3dtv.value() && (resolutionId == CELL_VIDEO_OUT_RESOLUTION_720_3D_FRAME_PACKING || resolutionId == CELL_VIDEO_OUT_RESOLUTION_1024x720_3D_FRAME_PACKING ||
resolutionId == CELL_VIDEO_OUT_RESOLUTION_960x720_3D_FRAME_PACKING || resolutionId == CELL_VIDEO_OUT_RESOLUTION_800x720_3D_FRAME_PACKING || resolutionId == CELL_VIDEO_OUT_RESOLUTION_960x720_3D_FRAME_PACKING || resolutionId == CELL_VIDEO_OUT_RESOLUTION_800x720_3D_FRAME_PACKING ||
resolutionId == CELL_VIDEO_OUT_RESOLUTION_640x720_3D_FRAME_PACKING)) resolutionId == CELL_VIDEO_OUT_RESOLUTION_640x720_3D_FRAME_PACKING))
return 0; return 0;

View File

@ -1,9 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Emu/SysCalls/lv2/sys_process.h" #include "Emu/SysCalls/lv2/sys_process.h"
#include "rpcs3/Ini.h"
#include "Emu/FS/VFS.h" #include "Emu/FS/VFS.h"
#include "Utilities/File.h" #include "Utilities/File.h"

View File

@ -1,10 +1,10 @@
#include "stdafx.h" #include "stdafx.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h"
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "rpcs3/Ini.h"
#include "Utilities/rXml.h" #include "Utilities/rXml.h"
#include "Loader/TRP.h" #include "Loader/TRP.h"
#include "Loader/TROPUSR.h" #include "Loader/TROPUSR.h"
@ -169,7 +169,7 @@ s32 sceNpTrophyRegisterContext(PPUThread& CPU, u32 context, u32 handle, vm::ptr<
const size_t kTargetBufferLength = 31; const size_t kTargetBufferLength = 31;
char target[kTargetBufferLength + 1]; char target[kTargetBufferLength + 1];
target[kTargetBufferLength] = 0; target[kTargetBufferLength] = 0;
strcpy_trunc(target, fmt::format("TROP_%02d.SFM", Ini.SysLanguage.GetValue())); strcpy_trunc(target, fmt::format("TROP_%02d.SFM", rpcs3::config.system.language.value()));
if (trp.ContainsEntry(target)) if (trp.ContainsEntry(target))
{ {
@ -191,7 +191,7 @@ s32 sceNpTrophyRegisterContext(PPUThread& CPU, u32 context, u32 handle, vm::ptr<
for (s32 i = 0; i <= 18; i++) for (s32 i = 0; i <= 18; i++)
{ {
strcpy_trunc(target, fmt::format("TROP_%02d.SFM", i)); strcpy_trunc(target, fmt::format("TROP_%02d.SFM", i));
if (i != Ini.SysLanguage.GetValue()) if (i != rpcs3::config.system.language.value())
{ {
trp.RemoveEntry(target); trp.RemoveEntry(target);
} }

View File

@ -1,9 +1,9 @@
#include "stdafx.h" #include "stdafx.h"
#include "rpcs3/Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/AutoPause.h" #include "Utilities/AutoPause.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Modules.h" #include "Modules.h"
#include "lv2/sys_lwmutex.h" #include "lv2/sys_lwmutex.h"
@ -901,14 +901,14 @@ void execute_syscall_by_index(PPUThread& ppu, u64 code)
auto last_code = ppu.hle_code; auto last_code = ppu.hle_code;
ppu.hle_code = ~code; ppu.hle_code = ~code;
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(PPU, "Syscall %lld called: %s", code, get_ps3_function_name(~code)); LOG_NOTICE(PPU, "Syscall %lld called: %s", code, get_ps3_function_name(~code));
} }
g_sc_table[code](ppu); g_sc_table[code](ppu);
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(PPU, "Syscall %lld finished: %s -> 0x%llx", code, get_ps3_function_name(~code), ppu.GPR[3]); LOG_NOTICE(PPU, "Syscall %lld finished: %s -> 0x%llx", code, get_ps3_function_name(~code), ppu.GPR[3]);
} }

View File

@ -6,7 +6,6 @@
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Utilities/File.h" #include "Utilities/File.h"
#include "rpcs3/Ini.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
@ -67,6 +66,7 @@ Emulator::Emulator()
void Emulator::Init() void Emulator::Init()
{ {
rpcs3::config.load(); rpcs3::config.load();
rpcs3::config.save();
rpcs3::oninit(); rpcs3::oninit();
} }
@ -225,9 +225,9 @@ void Emulator::Load()
LOG_NOTICE(LOADER, ""); LOG_NOTICE(LOADER, "");
LOG_NOTICE(LOADER, "Settings:"); /*LOG_NOTICE(LOADER, "Settings:");
//LOG_NOTICE(LOADER, "CPU: %s", Ini.CPUIdToString(Ini.CPUDecoderMode.GetValue())); LOG_NOTICE(LOADER, "CPU: %s", Ini.CPUIdToString(Ini.CPUDecoderMode.GetValue()));
//LOG_NOTICE(LOADER, "SPU: %s", Ini.SPUIdToString(Ini.SPUDecoderMode.GetValue())); LOG_NOTICE(LOADER, "SPU: %s", Ini.SPUIdToString(Ini.SPUDecoderMode.GetValue()));
LOG_NOTICE(LOADER, "Renderer: %s", Ini.RendererIdToString(Ini.GSRenderMode.GetValue())); LOG_NOTICE(LOADER, "Renderer: %s", Ini.RendererIdToString(Ini.GSRenderMode.GetValue()));
if (Ini.GSRenderMode.GetValue() == 2) if (Ini.GSRenderMode.GetValue() == 2)
@ -236,13 +236,13 @@ void Emulator::Load()
} }
LOG_NOTICE(LOADER, "Resolution: %s", Ini.ResolutionIdToString(Ini.GSResolution.GetValue())); LOG_NOTICE(LOADER, "Resolution: %s", Ini.ResolutionIdToString(Ini.GSResolution.GetValue()));
/*LOG_NOTICE(LOADER, "Write Depth Buffer: %s", Ini.GSDumpDepthBuffer.GetValue() ? "Yes" : "No"); LOG_NOTICE(LOADER, "Write Depth Buffer: %s", Ini.GSDumpDepthBuffer.GetValue() ? "Yes" : "No");
LOG_NOTICE(LOADER, "Write Color Buffers: %s", Ini.GSDumpColorBuffers.GetValue() ? "Yes" : "No"); LOG_NOTICE(LOADER, "Write Color Buffers: %s", Ini.GSDumpColorBuffers.GetValue() ? "Yes" : "No");
LOG_NOTICE(LOADER, "Read Color Buffers: %s", Ini.GSReadColorBuffers.GetValue() ? "Yes" : "No"); LOG_NOTICE(LOADER, "Read Color Buffers: %s", Ini.GSReadColorBuffers.GetValue() ? "Yes" : "No");
LOG_NOTICE(LOADER, "Read Depth Buffer: %s", Ini.GSReadDepthBuffer.GetValue() ? "Yes" : "No");*/ LOG_NOTICE(LOADER, "Read Depth Buffer: %s", Ini.GSReadDepthBuffer.GetValue() ? "Yes" : "No");
LOG_NOTICE(LOADER, "Audio Out: %s", Ini.AudioOutIdToString(Ini.AudioOutMode.GetValue())); LOG_NOTICE(LOADER, "Audio Out: %s", Ini.AudioOutIdToString(Ini.AudioOutMode.GetValue()));
LOG_NOTICE(LOADER, "Log Everything: %s", Ini.HLELogging.GetValue() ? "Yes" : "No"); LOG_NOTICE(LOADER, "Log Everything: %s", Ini.HLELogging.GetValue() ? "Yes" : "No");
LOG_NOTICE(LOADER, "RSX Logging: %s", Ini.RSXLogging.GetValue() ? "Yes" : "No"); LOG_NOTICE(LOADER, "RSX Logging: %s", Ini.RSXLogging.GetValue() ? "Yes" : "No");*/
LOG_NOTICE(LOADER, ""); LOG_NOTICE(LOADER, "");
f.Open("/app_home/../PARAM.SFO"); f.Open("/app_home/../PARAM.SFO");
@ -258,14 +258,13 @@ void Emulator::Load()
rpcs3::state.config = rpcs3::config; rpcs3::state.config = rpcs3::config;
// load custom config // load custom config
if (!Ini.UseDefaultIni.GetValue()) if (!rpcs3::config.misc.use_default_ini.value())
{ {
std::string& name = title_id; if (title_id.size())
if (name.size())
{ {
name = name.substr(0, 4) + "-" + name.substr(4, 5); title_id = title_id.substr(0, 4) + "-" + title_id.substr(4, 5);
CreateConfig(name); CreateConfig(title_id);
rpcs3::config_t custom_config { "data/" + name + "/settings.ini" }; rpcs3::config_t custom_config { "data/" + title_id + "/settings.ini" };
custom_config.load(); custom_config.load();
rpcs3::state.config = custom_config; rpcs3::state.config = custom_config;
} }

View File

@ -4,7 +4,7 @@
#include <wx/clipbrd.h> #include <wx/clipbrd.h>
#include <fstream> #include <fstream>
#include "Ini.h" #include "Emu/state.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Gui/ConLogFrame.h" #include "Gui/ConLogFrame.h"
@ -104,7 +104,7 @@ struct wxWriter : Log::LogListener
//put message into the log buffer //put message into the log buffer
void log(const Log::LogMessage &msg) override void log(const Log::LogMessage &msg) override
{ {
u8 logLevel = Ini.HLELogLvl.GetValue(); u8 logLevel = (u8)rpcs3::config.misc.log.level.value();
if (msg.mType != Log::TTY && logLevel != 0) if (msg.mType != Log::TTY && logLevel != 0)
{ {
if (logLevel > static_cast<u32>(msg.mServerity)) if (logLevel > static_cast<u32>(msg.mServerity))

View File

@ -1,11 +1,10 @@
#pragma once #pragma once
#include "rpcs3/Ini.h" #include "rpcs3/Ini.h"
#include "Emu/state.h"
class FrameBase : public wxFrame class FrameBase : public wxFrame
{ {
protected: protected:
IniEntry<WindowInfo> m_ini;
WindowInfo m_default_info;
bool m_is_skip_resize; bool m_is_skip_resize;
FrameBase( FrameBase(
@ -18,10 +17,8 @@ protected:
long style = wxDEFAULT_FRAME_STYLE, long style = wxDEFAULT_FRAME_STYLE,
bool is_skip_resize = false) bool is_skip_resize = false)
: wxFrame(parent, id, framename, defposition, defsize, style) : wxFrame(parent, id, framename, defposition, defsize, style)
, m_default_info(std::pair<int, int>(defsize.GetWidth(), defsize.GetHeight()), std::pair<int, int>(defposition.x, defposition.y))
, m_is_skip_resize(is_skip_resize) , m_is_skip_resize(is_skip_resize)
{ {
m_ini.Init(ininame.empty() ? fmt::ToUTF8(framename) : ininame, "GuiSettings");
LoadInfo(); LoadInfo();
Bind(wxEVT_CLOSE_WINDOW, &FrameBase::OnClose, this); Bind(wxEVT_CLOSE_WINDOW, &FrameBase::OnClose, this);
@ -41,26 +38,29 @@ protected:
void LoadInfo() void LoadInfo()
{ {
const WindowInfo& info = m_ini.LoadValue(m_default_info); SetSize(wxSize(rpcs3::config.gui.size.width.value(), rpcs3::config.gui.size.hight.value()));
SetSize(wxSize(info.size.first, info.size.second)); SetPosition(wxPoint(rpcs3::config.gui.position.x.value(), rpcs3::config.gui.position.y.value()));
SetPosition(wxPoint(info.position.first, info.position.second));
} }
void OnMove(wxMoveEvent& event) void OnMove(wxMoveEvent& event)
{ {
m_ini.SetValue(WindowInfo(m_ini.GetValue().size, std::pair<int, int>(GetPosition().x, GetPosition().y))); rpcs3::config.gui.position.x = GetPosition().x;
rpcs3::config.gui.position.y = GetPosition().y;
event.Skip(); event.Skip();
} }
void OnResize(wxSizeEvent& event) void OnResize(wxSizeEvent& event)
{ {
m_ini.SetValue(WindowInfo(std::pair<int, int>(GetSize().GetWidth(), GetSize().GetHeight()), m_ini.GetValue().position)); rpcs3::config.gui.size.width = GetSize().GetWidth();
rpcs3::config.gui.size.hight = GetSize().GetHeight();
rpcs3::config.gui.position.x = GetPosition().x;
rpcs3::config.gui.position.y = GetPosition().y;
if(m_is_skip_resize) event.Skip(); if(m_is_skip_resize) event.Skip();
} }
void OnClose(wxCloseEvent& event) void OnClose(wxCloseEvent& event)
{ {
m_ini.Save(); rpcs3::config.save();
event.Skip(); event.Skip();
} }
}; };

View File

@ -1,6 +1,7 @@
#include "stdafx_gui.h" #include "stdafx_gui.h"
#include "GSFrame.h" #include "GSFrame.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules/cellVideoOut.h" #include "Emu/SysCalls/Modules/cellVideoOut.h"
#include "rpcs3.h" #include "rpcs3.h"
#include "Utilities/Timer.h" #include "Utilities/Timer.h"
@ -18,7 +19,7 @@ GSFrame::GSFrame(const wxString& title) : wxFrame(nullptr, wxID_ANY, "GSFrame["
{ {
SetIcon(wxICON(frame_icon)); SetIcon(wxICON(frame_icon));
CellVideoOutResolution res = ResolutionTable[ResolutionIdToNum(Ini.GSResolution.GetValue())]; CellVideoOutResolution res = ResolutionTable[ResolutionIdToNum((u32)rpcs3::state.config.rsx.resolution.value())];
SetClientSize(res.width, res.height); SetClientSize(res.width, res.height);
wxGetApp().Bind(wxEVT_KEY_DOWN, &GSFrame::OnKeyDown, this); wxGetApp().Bind(wxEVT_KEY_DOWN, &GSFrame::OnKeyDown, this);
Bind(wxEVT_CLOSE_WINDOW, &GSFrame::OnClose, this); Bind(wxEVT_CLOSE_WINDOW, &GSFrame::OnClose, this);

View File

@ -7,7 +7,6 @@
#include "Emu/FS/VFS.h" #include "Emu/FS/VFS.h"
#include "Emu/FS/vfsDir.h" #include "Emu/FS/vfsDir.h"
#include "Emu/FS/vfsFile.h" #include "Emu/FS/vfsFile.h"
#include "Emu/state.h"
#include "GameViewer.h" #include "GameViewer.h"
#include "Loader/PSF.h" #include "Loader/PSF.h"
#include "SettingsDialog.h" #include "SettingsDialog.h"
@ -245,7 +244,7 @@ void GameViewer::DClick(wxListEvent& event)
return; return;
} }
if (Ini.HLEAlwaysStart.GetValue() && Emu.IsReady()) if (rpcs3::config.misc.always_start.value() && Emu.IsReady())
{ {
Emu.Run(); Emu.Run();
} }

View File

@ -2,9 +2,10 @@
#include <wx/listctrl.h> #include <wx/listctrl.h>
#include <wx/imaglist.h> #include <wx/imaglist.h>
#include <wx/log.h> #include <wx/log.h>
#include "rpcs3/Ini.h"
#include "Emu/GameInfo.h" #include "Emu/GameInfo.h"
#include "Emu/state.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Ini.h"
struct Column struct Column
{ {

View File

@ -81,13 +81,13 @@ void LLEModulesManagerFrame::Refresh()
m_funcs.push_back(name); m_funcs.push_back(name);
IniEntry<bool> load_lib; //IniEntry<bool> load_lib;
load_lib.Init(name, "LLE"); //load_lib.Init(name, "LLE");
m_check_list->Check(m_check_list->Append(name + m_check_list->Check(m_check_list->Append(name +
" v" + std::to_string((int)sprx_loader.m_sprx_module_info.version[0]) + " v" + std::to_string((int)sprx_loader.m_sprx_module_info.version[0]) +
"." + std::to_string((int)sprx_loader.m_sprx_module_info.version[1])), "." + std::to_string((int)sprx_loader.m_sprx_module_info.version[1])),
load_lib.LoadValue(false)); false);
} }
} }
@ -99,9 +99,9 @@ void LLEModulesManagerFrame::UpdateSelection(int index)
if (index < 0) if (index < 0)
return; return;
IniEntry<bool> load_lib; //IniEntry<bool> load_lib;
load_lib.Init(m_funcs[index], "LLE"); //load_lib.Init(m_funcs[index], "LLE");
load_lib.SaveValue(m_check_list->IsChecked(index)); //load_lib.SaveValue(m_check_list->IsChecked(index));
} }
void LLEModulesManagerFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event), bool is_checked) void LLEModulesManagerFrame::OnSelectAll(wxCommandEvent& WXUNUSED(event), bool is_checked)

View File

@ -1,6 +1,7 @@
#include "stdafx_gui.h" #include "stdafx_gui.h"
#include "Ini.h" #include "Ini.h"
#include "rpcs3.h" #include "rpcs3.h"
#include "config.h"
#include "MainFrame.h" #include "MainFrame.h"
#include "git-version.h" #include "git-version.h"
@ -182,16 +183,18 @@ void MainFrame::AddPane(wxWindow* wind, const wxString& caption, int flags)
void MainFrame::DoSettings(bool load) void MainFrame::DoSettings(bool load)
{ {
IniEntry<std::string> ini;
ini.Init("Settings", "MainFrameAui");
if(load) if(load)
{ {
m_aui_mgr.LoadPerspective(fmt::FromUTF8(ini.LoadValue(fmt::ToUTF8(m_aui_mgr.SavePerspective())))); // replace all '=' with '~' for ini-manager
if(!rpcs3::config.gui.aui_mgr_perspective.value().size())
rpcs3::config.gui.aui_mgr_perspective = fmt::replace_all(fmt::ToUTF8(m_aui_mgr.SavePerspective()), "=", "~");
m_aui_mgr.LoadPerspective(fmt::FromUTF8(fmt::replace_all(rpcs3::config.gui.aui_mgr_perspective.value(), "~", "=")));
} }
else else
{ {
ini.SaveValue(fmt::ToUTF8(m_aui_mgr.SavePerspective())); rpcs3::config.gui.aui_mgr_perspective = fmt::replace_all(fmt::ToUTF8(m_aui_mgr.SavePerspective()), "=", "~");
rpcs3::config.save();
} }
} }

View File

@ -1,5 +1,4 @@
#include "stdafx_gui.h" #include "stdafx_gui.h"
#include "rpcs3/Ini.h"
#include "Utilities/rPlatform.h" #include "Utilities/rPlatform.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"

View File

@ -2,6 +2,7 @@
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "rpcs3.h" #include "rpcs3.h"
#include "PADManager.h" #include "PADManager.h"
@ -257,36 +258,36 @@ void PADManager::OnKeyDown(wxKeyEvent &keyEvent)
switch (m_button_id) switch (m_button_id)
{ {
case id_pad_lstick_left: Ini.PadHandlerLStickLeft.SetValue(keyEvent.GetKeyCode()); break; case id_pad_lstick_left: rpcs3::config.io.pad.left_stick_left = keyEvent.GetKeyCode(); break;
case id_pad_lstick_down: Ini.PadHandlerLStickDown.SetValue(keyEvent.GetKeyCode()); break; case id_pad_lstick_down: rpcs3::config.io.pad.left_stick_down = keyEvent.GetKeyCode(); break;
case id_pad_lstick_right: Ini.PadHandlerLStickRight.SetValue(keyEvent.GetKeyCode()); break; case id_pad_lstick_right: rpcs3::config.io.pad.left_stick_right = keyEvent.GetKeyCode(); break;
case id_pad_lstick_up: Ini.PadHandlerLStickUp.SetValue(keyEvent.GetKeyCode()); break; case id_pad_lstick_up: rpcs3::config.io.pad.left_stick_up = keyEvent.GetKeyCode(); break;
case id_pad_left: Ini.PadHandlerLeft.SetValue(keyEvent.GetKeyCode()); break; case id_pad_left: rpcs3::config.io.pad.left = keyEvent.GetKeyCode(); break;
case id_pad_down: Ini.PadHandlerDown.SetValue(keyEvent.GetKeyCode()); break; case id_pad_down: rpcs3::config.io.pad.down = keyEvent.GetKeyCode(); break;
case id_pad_right: Ini.PadHandlerRight.SetValue(keyEvent.GetKeyCode()); break; case id_pad_right: rpcs3::config.io.pad.right = keyEvent.GetKeyCode(); break;
case id_pad_up: Ini.PadHandlerUp.SetValue(keyEvent.GetKeyCode()); break; case id_pad_up: rpcs3::config.io.pad.up = keyEvent.GetKeyCode(); break;
case id_pad_l1: Ini.PadHandlerL1.SetValue(keyEvent.GetKeyCode()); break; case id_pad_l1: rpcs3::config.io.pad.l1 = keyEvent.GetKeyCode(); break;
case id_pad_l2: Ini.PadHandlerL2.SetValue(keyEvent.GetKeyCode()); break; case id_pad_l2: rpcs3::config.io.pad.l2 = keyEvent.GetKeyCode(); break;
case id_pad_l3: Ini.PadHandlerL3.SetValue(keyEvent.GetKeyCode()); break; case id_pad_l3: rpcs3::config.io.pad.l3 = keyEvent.GetKeyCode(); break;
case id_pad_start: Ini.PadHandlerStart.SetValue(keyEvent.GetKeyCode()); break; case id_pad_start: rpcs3::config.io.pad.start = keyEvent.GetKeyCode(); break;
case id_pad_select: Ini.PadHandlerSelect.SetValue(keyEvent.GetKeyCode()); break; case id_pad_select: rpcs3::config.io.pad.select = keyEvent.GetKeyCode(); break;
case id_pad_r1: Ini.PadHandlerR1.SetValue(keyEvent.GetKeyCode()); break; case id_pad_r1: rpcs3::config.io.pad.r1 = keyEvent.GetKeyCode(); break;
case id_pad_r2: Ini.PadHandlerR2.SetValue(keyEvent.GetKeyCode()); break; case id_pad_r2: rpcs3::config.io.pad.r2 = keyEvent.GetKeyCode(); break;
case id_pad_r3: Ini.PadHandlerR3.SetValue(keyEvent.GetKeyCode()); break; case id_pad_r3: rpcs3::config.io.pad.r3 = keyEvent.GetKeyCode(); break;
case id_pad_square: Ini.PadHandlerSquare.SetValue(keyEvent.GetKeyCode()); break; case id_pad_square: rpcs3::config.io.pad.square = keyEvent.GetKeyCode(); break;
case id_pad_cross: Ini.PadHandlerCross.SetValue(keyEvent.GetKeyCode()); break; case id_pad_cross: rpcs3::config.io.pad.cross = keyEvent.GetKeyCode(); break;
case id_pad_circle: Ini.PadHandlerCircle.SetValue(keyEvent.GetKeyCode()); break; case id_pad_circle: rpcs3::config.io.pad.circle = keyEvent.GetKeyCode(); break;
case id_pad_triangle: Ini.PadHandlerTriangle.SetValue(keyEvent.GetKeyCode()); break; case id_pad_triangle: rpcs3::config.io.pad.triangle = keyEvent.GetKeyCode(); break;
case id_pad_rstick_left: Ini.PadHandlerRStickLeft.SetValue(keyEvent.GetKeyCode()); break; case id_pad_rstick_left: rpcs3::config.io.pad.right_stick_left = keyEvent.GetKeyCode(); break;
case id_pad_rstick_down: Ini.PadHandlerRStickDown.SetValue(keyEvent.GetKeyCode()); break; case id_pad_rstick_down: rpcs3::config.io.pad.right_stick_down = keyEvent.GetKeyCode(); break;
case id_pad_rstick_right: Ini.PadHandlerRStickRight.SetValue(keyEvent.GetKeyCode()); break; case id_pad_rstick_right: rpcs3::config.io.pad.right_stick_right = keyEvent.GetKeyCode(); break;
case id_pad_rstick_up: Ini.PadHandlerRStickUp.SetValue(keyEvent.GetKeyCode()); break; case id_pad_rstick_up: rpcs3::config.io.pad.right_stick_up = keyEvent.GetKeyCode(); break;
case 0: break; case 0: break;
default: LOG_ERROR(HLE, "Unknown button ID: %d", m_button_id); break; default: LOG_ERROR(HLE, "Unknown button ID: %d", m_button_id); break;
@ -320,7 +321,7 @@ void PADManager::OnButtonClicked(wxCommandEvent &event)
switch (event.GetId()) switch (event.GetId())
{ {
case id_reset_parameters: ResetParameters(); UpdateLabel(); break; case id_reset_parameters: ResetParameters(); UpdateLabel(); break;
case wxID_OK: Ini.Save(); break; case wxID_OK: rpcs3::config.save(); break;
case wxID_CANCEL: break; case wxID_CANCEL: break;
default: LOG_ERROR(HLE, "Unknown button ID: %d", event.GetId()); break; default: LOG_ERROR(HLE, "Unknown button ID: %d", event.GetId()); break;
@ -408,70 +409,70 @@ const wxString PADManager::GetKeyName(const u32 keyCode)
void PADManager::UpdateLabel() void PADManager::UpdateLabel()
{ {
// Get button labels from .ini // Get button labels from .ini
b_up_lstick->SetLabel(GetKeyName(Ini.PadHandlerLStickUp.GetValue())); b_up_lstick->SetLabel(GetKeyName(rpcs3::config.io.pad.left_stick_up.value()));
b_down_lstick->SetLabel(GetKeyName(Ini.PadHandlerLStickDown.GetValue())); b_down_lstick->SetLabel(GetKeyName(rpcs3::config.io.pad.left_stick_down.value()));
b_left_lstick->SetLabel(GetKeyName(Ini.PadHandlerLStickLeft.GetValue())); b_left_lstick->SetLabel(GetKeyName(rpcs3::config.io.pad.left_stick_left.value()));
b_right_lstick->SetLabel(GetKeyName(Ini.PadHandlerLStickRight.GetValue())); b_right_lstick->SetLabel(GetKeyName(rpcs3::config.io.pad.left_stick_right.value()));
b_up->SetLabel(GetKeyName(Ini.PadHandlerUp.GetValue())); b_up->SetLabel(GetKeyName(rpcs3::config.io.pad.up.value()));
b_down->SetLabel(GetKeyName(Ini.PadHandlerDown.GetValue())); b_down->SetLabel(GetKeyName(rpcs3::config.io.pad.down.value()));
b_left->SetLabel(GetKeyName(Ini.PadHandlerLeft.GetValue())); b_left->SetLabel(GetKeyName(rpcs3::config.io.pad.left.value()));
b_right->SetLabel(GetKeyName(Ini.PadHandlerRight.GetValue())); b_right->SetLabel(GetKeyName(rpcs3::config.io.pad.right.value()));
b_shift_l1->SetLabel(GetKeyName(Ini.PadHandlerL1.GetValue())); b_shift_l1->SetLabel(GetKeyName(rpcs3::config.io.pad.l1.value()));
b_shift_l2->SetLabel(GetKeyName(Ini.PadHandlerL2.GetValue())); b_shift_l2->SetLabel(GetKeyName(rpcs3::config.io.pad.l2.value()));
b_shift_l3->SetLabel(GetKeyName(Ini.PadHandlerL3.GetValue())); b_shift_l3->SetLabel(GetKeyName(rpcs3::config.io.pad.l3.value()));
b_start->SetLabel(GetKeyName(Ini.PadHandlerStart.GetValue())); b_start->SetLabel(GetKeyName(rpcs3::config.io.pad.start.value()));
b_select->SetLabel(GetKeyName(Ini.PadHandlerSelect.GetValue())); b_select->SetLabel(GetKeyName(rpcs3::config.io.pad.select.value()));
b_shift_r1->SetLabel(GetKeyName(Ini.PadHandlerR1.GetValue())); b_shift_r1->SetLabel(GetKeyName(rpcs3::config.io.pad.r1.value()));
b_shift_r2->SetLabel(GetKeyName(Ini.PadHandlerR2.GetValue())); b_shift_r2->SetLabel(GetKeyName(rpcs3::config.io.pad.r2.value()));
b_shift_r3->SetLabel(GetKeyName(Ini.PadHandlerR3.GetValue())); b_shift_r3->SetLabel(GetKeyName(rpcs3::config.io.pad.r3.value()));
b_square->SetLabel(GetKeyName(Ini.PadHandlerSquare.GetValue())); b_square->SetLabel(GetKeyName(rpcs3::config.io.pad.square.value()));
b_cross->SetLabel(GetKeyName(Ini.PadHandlerCross.GetValue())); b_cross->SetLabel(GetKeyName(rpcs3::config.io.pad.cross.value()));
b_circle->SetLabel(GetKeyName(Ini.PadHandlerCircle.GetValue())); b_circle->SetLabel(GetKeyName(rpcs3::config.io.pad.circle.value()));
b_triangle->SetLabel(GetKeyName(Ini.PadHandlerTriangle.GetValue())); b_triangle->SetLabel(GetKeyName(rpcs3::config.io.pad.triangle.value()));
b_up_rstick->SetLabel(GetKeyName(Ini.PadHandlerRStickUp.GetValue())); b_up_rstick->SetLabel(GetKeyName(rpcs3::config.io.pad.right_stick_up.value()));
b_down_rstick->SetLabel(GetKeyName(Ini.PadHandlerRStickDown.GetValue())); b_down_rstick->SetLabel(GetKeyName(rpcs3::config.io.pad.right_stick_down.value()));
b_left_rstick->SetLabel(GetKeyName(Ini.PadHandlerRStickLeft.GetValue())); b_left_rstick->SetLabel(GetKeyName(rpcs3::config.io.pad.right_stick_left.value()));
b_right_rstick->SetLabel(GetKeyName(Ini.PadHandlerRStickRight.GetValue())); b_right_rstick->SetLabel(GetKeyName(rpcs3::config.io.pad.right_stick_right.value()));
} }
void PADManager::ResetParameters() void PADManager::ResetParameters()
{ {
Ini.PadHandlerLStickUp.SetValue(315); rpcs3::config.io.pad.left_stick_up = 315;
Ini.PadHandlerLStickDown.SetValue(317); rpcs3::config.io.pad.left_stick_down = 317;
Ini.PadHandlerLStickLeft.SetValue(314); rpcs3::config.io.pad.left_stick_left = 314;
Ini.PadHandlerLStickRight.SetValue(316); rpcs3::config.io.pad.left_stick_right = 316;
Ini.PadHandlerUp.SetValue(static_cast<int>('W')); rpcs3::config.io.pad.up = static_cast<int>('W');
Ini.PadHandlerDown.SetValue(static_cast<int>('S')); rpcs3::config.io.pad.down = static_cast<int>('S');
Ini.PadHandlerLeft.SetValue(static_cast<int>('A')); rpcs3::config.io.pad.left = static_cast<int>('A');
Ini.PadHandlerRight.SetValue(static_cast<int>('D')); rpcs3::config.io.pad.right = static_cast<int>('D');
Ini.PadHandlerL1.SetValue(static_cast<int>('1')); rpcs3::config.io.pad.l1 = static_cast<int>('1');
Ini.PadHandlerL2.SetValue(static_cast<int>('Q')); rpcs3::config.io.pad.l2 = static_cast<int>('Q');
Ini.PadHandlerL3.SetValue(static_cast<int>('Z')); rpcs3::config.io.pad.l3 = static_cast<int>('Z');
Ini.PadHandlerStart.SetValue(13); rpcs3::config.io.pad.start = 13;
Ini.PadHandlerSelect.SetValue(32); rpcs3::config.io.pad.select = 32;
Ini.PadHandlerR1.SetValue(static_cast<int>('3')); rpcs3::config.io.pad.r1 = static_cast<int>('3');
Ini.PadHandlerR2.SetValue(static_cast<int>('E')); rpcs3::config.io.pad.r2 = static_cast<int>('E');
Ini.PadHandlerR3.SetValue(static_cast<int>('C')); rpcs3::config.io.pad.r3 = static_cast<int>('C');
Ini.PadHandlerSquare.SetValue(static_cast<int>('J')); rpcs3::config.io.pad.square = static_cast<int>('J');
Ini.PadHandlerCross.SetValue(static_cast<int>('K')); rpcs3::config.io.pad.cross = static_cast<int>('K');
Ini.PadHandlerCircle.SetValue(static_cast<int>('L')); rpcs3::config.io.pad.circle = static_cast<int>('L');
Ini.PadHandlerTriangle.SetValue(static_cast<int>('I')); rpcs3::config.io.pad.triangle = static_cast<int>('I');
Ini.PadHandlerRStickUp.SetValue(366); rpcs3::config.io.pad.right_stick_up = 366;
Ini.PadHandlerRStickDown.SetValue(367); rpcs3::config.io.pad.right_stick_down = 367;
Ini.PadHandlerRStickLeft.SetValue(313); rpcs3::config.io.pad.right_stick_left = 313;
Ini.PadHandlerRStickRight.SetValue(312); rpcs3::config.io.pad.right_stick_right = 312;
} }
void PADManager::UpdateTimerLabel(const u32 id) void PADManager::UpdateTimerLabel(const u32 id)

View File

@ -2,11 +2,11 @@
#include "RSXDebugger.h" #include "RSXDebugger.h"
#include "rpcs3/Ini.h"
#include "Utilities/rPlatform.h" #include "Utilities/rPlatform.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/Modules/cellVideoOut.h" #include "Emu/SysCalls/Modules/cellVideoOut.h"
#include "Emu/RSX/GSManager.h" #include "Emu/RSX/GSManager.h"
@ -164,7 +164,7 @@ RSXDebugger::RSXDebugger(wxWindow* parent)
wxStaticBoxSizer* s_buffers_text = new wxStaticBoxSizer(wxHORIZONTAL, this, "Texture"); wxStaticBoxSizer* s_buffers_text = new wxStaticBoxSizer(wxHORIZONTAL, this, "Texture");
//Buffers and textures //Buffers and textures
CellVideoOutResolution res = ResolutionTable[ResolutionIdToNum(Ini.GSResolution.GetValue())]; CellVideoOutResolution res = ResolutionTable[ResolutionIdToNum((u32)rpcs3::state.config.rsx.resolution.value())];
m_panel_width = (res.width*108)/res.height; m_panel_width = (res.width*108)/res.height;
m_panel_height = 108; m_panel_height = 108;
m_text_width = 108; m_text_width = 108;

View File

@ -1,6 +1,5 @@
#include "stdafx_gui.h" #include "stdafx_gui.h"
#include "Ini.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h" #include "Emu/state.h"
#include "Emu/SysCalls/Modules/cellVideoOut.h" #include "Emu/SysCalls/Modules/cellVideoOut.h"
@ -320,59 +319,7 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
for (const auto& lang : s_langs) for (const auto& lang : s_langs)
cbox_sys_lang->Append(lang); cbox_sys_lang->Append(lang);
// Get values from .ini chbox_core_llvm_exclud->SetValue(cfg->core.llvm.exclusion_range.value());
chbox_core_llvm_exclud->SetValue(Ini.LLVMExclusionRange.GetValue());
chbox_gs_log_prog->SetValue(Ini.GSLogPrograms.GetValue());
chbox_gs_dump_depth->SetValue((bool)cfg->rsx.opengl.write_depth_buffer);
chbox_gs_dump_color->SetValue((bool)cfg->rsx.opengl.write_color_buffers);
chbox_gs_read_color->SetValue((bool)cfg->rsx.opengl.read_color_buffers);
chbox_gs_read_depth->SetValue((bool)cfg->rsx.opengl.read_depth_buffer);
chbox_gs_vsync->SetValue(Ini.GSVSyncEnable.GetValue());
chbox_gs_debug_output->SetValue(Ini.GSDebugOutputEnable.GetValue());
chbox_gs_3dmonitor->SetValue(Ini.GS3DTV.GetValue());
chbox_gs_overlay->SetValue(Ini.GSOverlay.GetValue());
chbox_audio_dump->SetValue(Ini.AudioDumpToFile.GetValue());
chbox_audio_conv->SetValue(Ini.AudioConvertToU16.GetValue());
chbox_hle_logging->SetValue(Ini.HLELogging.GetValue());
chbox_rsx_logging->SetValue(Ini.RSXLogging.GetValue());
chbox_hle_savetty->SetValue(Ini.HLESaveTTY.GetValue());
chbox_hle_exitonstop->SetValue(Ini.HLEExitOnStop.GetValue());
chbox_hle_always_start->SetValue(Ini.HLEAlwaysStart.GetValue());
chbox_hle_use_default_ini->SetValue(Ini.UseDefaultIni.GetValue());
chbox_core_hook_stfunc->SetValue(Ini.HookStFunc.GetValue());
chbox_core_load_liblv2->SetValue(Ini.LoadLibLv2.GetValue());
//Auto Pause related
chbox_dbg_ap_systemcall->SetValue(Ini.DBGAutoPauseSystemCall.GetValue());
chbox_dbg_ap_functioncall->SetValue(Ini.DBGAutoPauseFunctionCall.GetValue());
//Custom EmulationDir
chbox_emulationdir_enable->SetValue(Ini.SysEmulationDirPathEnable.GetValue());
txt_emulationdir_path->SetValue(Ini.SysEmulationDirPath.GetValue());
rbox_ppu_decoder->SetSelection((int)cfg->core.ppu_decoder.value());
txt_dbg_range_min->SetValue(std::to_string(Ini.LLVMMinId.GetValue()));
txt_dbg_range_max->SetValue(std::to_string(Ini.LLVMMaxId.GetValue()));
txt_llvm_threshold->SetValue(std::to_string(Ini.LLVMThreshold.GetValue()));
rbox_spu_decoder->SetSelection((int)cfg->core.spu_decoder.value());
cbox_gs_render->SetSelection((int)cfg->rsx.renderer.value());
cbox_gs_d3d_adaptater->SetSelection(Ini.GSD3DAdaptater.GetValue());
cbox_gs_resolution->SetSelection(ResolutionIdToNum(Ini.GSResolution.GetValue()) - 1);
cbox_gs_aspect->SetSelection(Ini.GSAspectRatio.GetValue() - 1);
cbox_gs_frame_limit->SetSelection(Ini.GSFrameLimit.GetValue());
cbox_pad_handler->SetSelection((int)cfg->io.pad_handler_mode.value());
cbox_keyboard_handler->SetSelection((int)cfg->io.keyboard_handler_mode.value());
cbox_mouse_handler->SetSelection((int)cfg->io.mouse_handler_mode.value());
cbox_audio_out->SetSelection((int)cfg->audio.out.value());
cbox_camera->SetSelection(Ini.Camera.GetValue());
cbox_camera_type->SetSelection(Ini.CameraType.GetValue());
cbox_hle_loglvl->SetSelection(Ini.HLELogLvl.GetValue());
cbox_net_status->SetSelection(Ini.NETStatus.GetValue());
cbox_net_interface->SetSelection(Ini.NETInterface.GetValue());
cbox_sys_lang->SetSelection(Ini.SysLanguage.GetValue());
// TODO: use later
/*chbox_core_llvm_exclud->SetValue(cfg->core.llvm.exclusion_range.value());
chbox_gs_log_prog->SetValue(rpcs3::config.rsx.log_programs.value()); chbox_gs_log_prog->SetValue(rpcs3::config.rsx.log_programs.value());
chbox_gs_dump_depth->SetValue(cfg->rsx.opengl.write_depth_buffer.value()); chbox_gs_dump_depth->SetValue(cfg->rsx.opengl.write_depth_buffer.value());
chbox_gs_dump_color->SetValue(cfg->rsx.opengl.write_color_buffers.value()); chbox_gs_dump_color->SetValue(cfg->rsx.opengl.write_color_buffers.value());
@ -408,8 +355,8 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
rbox_spu_decoder->SetSelection((int)cfg->core.spu_decoder.value()); rbox_spu_decoder->SetSelection((int)cfg->core.spu_decoder.value());
cbox_gs_render->SetSelection((int)cfg->rsx.renderer.value()); cbox_gs_render->SetSelection((int)cfg->rsx.renderer.value());
cbox_gs_d3d_adaptater->SetSelection(cfg->rsx.d3d12.adaptater.value()); cbox_gs_d3d_adaptater->SetSelection(cfg->rsx.d3d12.adaptater.value());
cbox_gs_resolution->SetSelection(ResolutionIdToNum((int)cfg->rsx.resolution.value() - 1)); cbox_gs_resolution->SetSelection(ResolutionIdToNum((int)cfg->rsx.resolution.value()) - 1);
cbox_gs_aspect->SetSelection((int)cfg->rsx.aspect_ratio.value()); cbox_gs_aspect->SetSelection((int)cfg->rsx.aspect_ratio.value() - 1);
cbox_gs_frame_limit->SetSelection((int)cfg->rsx.frame_limit.value()); cbox_gs_frame_limit->SetSelection((int)cfg->rsx.frame_limit.value());
cbox_pad_handler->SetSelection((int)cfg->io.pad_handler_mode.value()); cbox_pad_handler->SetSelection((int)cfg->io.pad_handler_mode.value());
cbox_keyboard_handler->SetSelection((int)cfg->io.keyboard_handler_mode.value()); cbox_keyboard_handler->SetSelection((int)cfg->io.keyboard_handler_mode.value());
@ -420,7 +367,7 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
cbox_hle_loglvl->SetSelection((int)rpcs3::config.misc.log.level.value()); cbox_hle_loglvl->SetSelection((int)rpcs3::config.misc.log.level.value());
cbox_net_status->SetSelection((int)rpcs3::config.misc.net.status.value()); cbox_net_status->SetSelection((int)rpcs3::config.misc.net.status.value());
cbox_net_interface->SetSelection((int)rpcs3::config.misc.net._interface.value()); cbox_net_interface->SetSelection((int)rpcs3::config.misc.net._interface.value());
cbox_sys_lang->SetSelection((int)rpcs3::config.system.language.value());*/ cbox_sys_lang->SetSelection((int)rpcs3::config.system.language.value());
// Core // Core
s_round_llvm->Add(chbox_core_llvm_exclud, wxSizerFlags().Border(wxALL, 5).Expand()); s_round_llvm->Add(chbox_core_llvm_exclud, wxSizerFlags().Border(wxALL, 5).Expand());
@ -546,58 +493,8 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
txt_dbg_range_max->GetValue().ToLong(&maxllvmid); txt_dbg_range_max->GetValue().ToLong(&maxllvmid);
txt_llvm_threshold->GetValue().ToLong(&llvmthreshold); txt_llvm_threshold->GetValue().ToLong(&llvmthreshold);
Ini.LLVMExclusionRange.SetValue(chbox_core_llvm_exclud->GetValue());
Ini.LLVMMinId.SetValue((u32)minllvmid);
Ini.LLVMMaxId.SetValue((u32)maxllvmid);
Ini.LLVMThreshold.SetValue((u32)llvmthreshold);
cfg->core.spu_decoder = (spu_decoder_type)rbox_spu_decoder->GetSelection();
Ini.HookStFunc.SetValue(chbox_core_hook_stfunc->GetValue());
Ini.LoadLibLv2.SetValue(chbox_core_load_liblv2->GetValue());
cfg->rsx.renderer = cbox_gs_render->GetSelection();
Ini.GSD3DAdaptater.SetValue(cbox_gs_d3d_adaptater->GetSelection());
Ini.GSResolution.SetValue(ResolutionNumToId(cbox_gs_resolution->GetSelection() + 1));
Ini.GSAspectRatio.SetValue(cbox_gs_aspect->GetSelection() + 1);
Ini.GSFrameLimit.SetValue(cbox_gs_frame_limit->GetSelection());
Ini.GSLogPrograms.SetValue(chbox_gs_log_prog->GetValue());
cfg->rsx.opengl.write_depth_buffer = chbox_gs_dump_depth->GetValue();
cfg->rsx.opengl.write_color_buffers = chbox_gs_dump_color->GetValue();
cfg->rsx.opengl.read_color_buffers = chbox_gs_read_color->GetValue();
cfg->rsx.opengl.read_depth_buffer = chbox_gs_read_depth->GetValue();
Ini.GSVSyncEnable.SetValue(chbox_gs_vsync->GetValue());
Ini.GSDebugOutputEnable.SetValue(chbox_gs_debug_output->GetValue());
Ini.GS3DTV.SetValue(chbox_gs_3dmonitor->GetValue());
Ini.GSOverlay.SetValue(chbox_gs_overlay->GetValue());
cfg->io.pad_handler_mode = cbox_pad_handler->GetSelection();
cfg->io.keyboard_handler_mode = cbox_keyboard_handler->GetSelection();
cfg->io.mouse_handler_mode = cbox_mouse_handler->GetSelection();
cfg->audio.out = cbox_audio_out->GetSelection();
Ini.AudioDumpToFile.SetValue(chbox_audio_dump->GetValue());
Ini.AudioConvertToU16.SetValue(chbox_audio_conv->GetValue());
Ini.Camera.SetValue(cbox_camera->GetSelection());
Ini.CameraType.SetValue(cbox_camera_type->GetSelection());
Ini.HLELogging.SetValue(chbox_hle_logging->GetValue());
Ini.RSXLogging.SetValue(chbox_rsx_logging->GetValue());
Ini.HLESaveTTY.SetValue(chbox_hle_savetty->GetValue());
Ini.HLEExitOnStop.SetValue(chbox_hle_exitonstop->GetValue());
Ini.HLELogLvl.SetValue(cbox_hle_loglvl->GetSelection());
Ini.NETStatus.SetValue(cbox_net_status->GetSelection());
Ini.NETInterface.SetValue(cbox_net_interface->GetSelection());
Ini.SysLanguage.SetValue(cbox_sys_lang->GetSelection());
Ini.HLEAlwaysStart.SetValue(chbox_hle_always_start->GetValue());
Ini.UseDefaultIni.SetValue(chbox_hle_use_default_ini->GetValue());
//Auto Pause
Ini.DBGAutoPauseFunctionCall.SetValue(chbox_dbg_ap_functioncall->GetValue());
Ini.DBGAutoPauseSystemCall.SetValue(chbox_dbg_ap_systemcall->GetValue());
//Custom EmulationDir
Ini.SysEmulationDirPathEnable.SetValue(chbox_emulationdir_enable->GetValue());
Ini.SysEmulationDirPath.SetValue(txt_emulationdir_path->GetValue().ToStdString());
// TODO: use later
// individual settings // individual settings
/*cfg->core.ppu_decoder = rbox_ppu_decoder->GetSelection(); cfg->core.ppu_decoder = rbox_ppu_decoder->GetSelection();
cfg->core.llvm.exclusion_range = chbox_core_llvm_exclud->GetValue(); cfg->core.llvm.exclusion_range = chbox_core_llvm_exclud->GetValue();
cfg->core.llvm.min_id = minllvmid; cfg->core.llvm.min_id = minllvmid;
cfg->core.llvm.max_id = maxllvmid; cfg->core.llvm.max_id = maxllvmid;
@ -615,8 +512,6 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
cfg->rsx.opengl.write_color_buffers = chbox_gs_dump_color->GetValue(); cfg->rsx.opengl.write_color_buffers = chbox_gs_dump_color->GetValue();
cfg->rsx.opengl.read_color_buffers = chbox_gs_read_color->GetValue(); cfg->rsx.opengl.read_color_buffers = chbox_gs_read_color->GetValue();
cfg->rsx.opengl.read_depth_buffer = chbox_gs_read_depth->GetValue(); cfg->rsx.opengl.read_depth_buffer = chbox_gs_read_depth->GetValue();
cfg->rsx.d3d12.debug_output = chbox_gs_debug_output->GetValue();
cfg->rsx.d3d12.overlay = chbox_gs_overlay->GetValue();
cfg->audio.out = cbox_audio_out->GetSelection(); cfg->audio.out = cbox_audio_out->GetSelection();
@ -631,6 +526,8 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
rpcs3::config.rsx.log_programs = chbox_gs_log_prog->GetValue(); rpcs3::config.rsx.log_programs = chbox_gs_log_prog->GetValue();
rpcs3::config.rsx.vsync = chbox_gs_vsync->GetValue(); rpcs3::config.rsx.vsync = chbox_gs_vsync->GetValue();
rpcs3::config.rsx._3dtv = chbox_gs_3dmonitor->GetValue(); rpcs3::config.rsx._3dtv = chbox_gs_3dmonitor->GetValue();
rpcs3::config.rsx.d3d12.debug_output = chbox_gs_debug_output->GetValue();
rpcs3::config.rsx.d3d12.overlay = chbox_gs_overlay->GetValue();
rpcs3::config.audio.dump_to_file = chbox_audio_dump->GetValue(); rpcs3::config.audio.dump_to_file = chbox_audio_dump->GetValue();
rpcs3::config.audio.convert_to_u16 = chbox_audio_conv->GetValue(); rpcs3::config.audio.convert_to_u16 = chbox_audio_conv->GetValue();
rpcs3::config.misc.log.level = cbox_hle_loglvl->GetSelection(); rpcs3::config.misc.log.level = cbox_hle_loglvl->GetSelection();
@ -646,11 +543,10 @@ SettingsDialog::SettingsDialog(wxWindow *parent, rpcs3::config_t* cfg)
rpcs3::config.misc.use_default_ini = chbox_hle_use_default_ini->GetValue(); rpcs3::config.misc.use_default_ini = chbox_hle_use_default_ini->GetValue();
rpcs3::config.system.language = cbox_sys_lang->GetSelection(); rpcs3::config.system.language = cbox_sys_lang->GetSelection();
rpcs3::config.system.emulation_dir_path_enable = chbox_emulationdir_enable->GetValue(); rpcs3::config.system.emulation_dir_path_enable = chbox_emulationdir_enable->GetValue();
rpcs3::config.system.emulation_dir_path = txt_emulationdir_path->GetValue().ToStdString();*/ rpcs3::config.system.emulation_dir_path = txt_emulationdir_path->GetValue().ToStdString();
//rpcs3::config.save(); rpcs3::config.save();
cfg->save(); cfg->save();
Ini.Save();
} }
if (was_running) Emu.Resume(); if (was_running) Emu.Resume();

View File

@ -2,7 +2,7 @@
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "VHDDManager.h" #include "VHDDManager.h"
#include "TextInputDialog.h" #include "TextInputDialog.h"
#include "Ini.h" #include "Emu/state.h"
#include <wx/busyinfo.h> #include <wx/busyinfo.h>
VHDDListDropTarget::VHDDListDropTarget(wxListView* parent) : m_parent(parent) VHDDListDropTarget::VHDDListDropTarget(wxListView* parent) : m_parent(parent)
@ -527,7 +527,7 @@ void VHDDManagerDialog::OnOk(wxCommandEvent& event)
void VHDDManagerDialog::LoadPaths() void VHDDManagerDialog::LoadPaths()
{ {
IniEntry<int> path_count; /*IniEntry<int> path_count;
path_count.Init("path_count", "HDDManager"); path_count.Init("path_count", "HDDManager");
size_t count = 0; size_t count = 0;
count = path_count.LoadValue(count); count = path_count.LoadValue(count);
@ -537,12 +537,12 @@ void VHDDManagerDialog::LoadPaths()
IniEntry<std::string> path_entry; IniEntry<std::string> path_entry;
path_entry.Init(fmt::format("path[%d]", i), "HDDManager"); path_entry.Init(fmt::format("path[%d]", i), "HDDManager");
m_paths.emplace_back(path_entry.LoadValue("")); m_paths.emplace_back(path_entry.LoadValue(""));
} }*/
} }
void VHDDManagerDialog::SavePaths() void VHDDManagerDialog::SavePaths()
{ {
IniEntry<int> path_count; /*IniEntry<int> path_count;
path_count.Init("path_count", "HDDManager"); path_count.Init("path_count", "HDDManager");
path_count.SaveValue(m_paths.size()); path_count.SaveValue(m_paths.size());
@ -551,5 +551,5 @@ void VHDDManagerDialog::SavePaths()
IniEntry<std::string> path_entry; IniEntry<std::string> path_entry;
path_entry.Init(fmt::format("path[%d]", i), "HDDManager"); path_entry.Init(fmt::format("path[%d]", i), "HDDManager");
path_entry.SaveValue(m_paths[i]); path_entry.SaveValue(m_paths[i]);
} }*/
} }

View File

@ -1,14 +1,14 @@
#include "stdafx.h" #include "stdafx.h"
#include "Ini.h" #include "ELF32.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Emu/FS/vfsStream.h" #include "Emu/FS/vfsStream.h"
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "ELF32.h"
#include "Emu/Cell/SPUThread.h" #include "Emu/Cell/SPUThread.h"
#include "Emu/ARMv7/ARMv7Thread.h" #include "Emu/ARMv7/ARMv7Thread.h"
#include "Emu/ARMv7/ARMv7Decoder.h" #include "Emu/ARMv7/ARMv7Decoder.h"
#include "Emu/ARMv7/PSVFuncList.h" #include "Emu/ARMv7/PSVFuncList.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
extern void armv7_init_tls(); extern void armv7_init_tls();
@ -323,7 +323,7 @@ namespace loader
{ {
LOG_ERROR(LOADER, ".sceRefs: movw writing failed (ref_addr=0x%x, addr=0x%x)", code, code[1]); LOG_ERROR(LOADER, ".sceRefs: movw writing failed (ref_addr=0x%x, addr=0x%x)", code, code[1]);
} }
else //if (Ini.HLELogging.GetValue()) else //if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(LOADER, ".sceRefs: movw written at 0x%x (ref_addr=0x%x, data=0x%x)", code[1], code, data); LOG_NOTICE(LOADER, ".sceRefs: movw written at 0x%x (ref_addr=0x%x, data=0x%x)", code[1], code, data);
} }
@ -339,7 +339,7 @@ namespace loader
{ {
LOG_ERROR(LOADER, ".sceRefs: movt writing failed (ref_addr=0x%x, addr=0x%x)", code, code[1]); LOG_ERROR(LOADER, ".sceRefs: movt writing failed (ref_addr=0x%x, addr=0x%x)", code, code[1]);
} }
else //if (Ini.HLELogging.GetValue()) else //if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(LOADER, ".sceRefs: movt written at 0x%x (ref_addr=0x%x, data=0x%x)", code[1], code, data); LOG_NOTICE(LOADER, ".sceRefs: movt written at 0x%x (ref_addr=0x%x, data=0x%x)", code[1], code, data);
} }
@ -353,7 +353,7 @@ namespace loader
{ {
data = 0; data = 0;
if (Ini.HLELogging.GetValue()) if (rpcs3::config.misc.log.hle_logging.value())
{ {
LOG_NOTICE(LOADER, ".sceRefs: zero code found"); LOG_NOTICE(LOADER, ".sceRefs: zero code found");
} }

View File

@ -6,13 +6,13 @@
#include "Emu/Memory/Memory.h" #include "Emu/Memory/Memory.h"
#include "Emu/IdManager.h" #include "Emu/IdManager.h"
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h"
#include "Emu/SysCalls/SysCalls.h" #include "Emu/SysCalls/SysCalls.h"
#include "Emu/SysCalls/Modules.h" #include "Emu/SysCalls/Modules.h"
#include "Emu/SysCalls/ModuleManager.h" #include "Emu/SysCalls/ModuleManager.h"
#include "Emu/SysCalls/lv2/sys_prx.h" #include "Emu/SysCalls/lv2/sys_prx.h"
#include "Emu/Cell/PPUInstrTable.h" #include "Emu/Cell/PPUInstrTable.h"
#include "ELF64.h" #include "ELF64.h"
#include "Ini.h"
using namespace PPU_instr; using namespace PPU_instr;
@ -331,7 +331,7 @@ namespace loader
continue; continue;
} }
if (Ini.LoadLibLv2.GetValue()) if (rpcs3::state.config.core.load_liblv2.value())
{ {
if (module->name != "liblv2.sprx") if (module->name != "liblv2.sprx")
{ {
@ -349,15 +349,15 @@ namespace loader
if (sprx_handler.is_sprx()) if (sprx_handler.is_sprx())
{ {
if (!Ini.LoadLibLv2.GetValue()) if (!rpcs3::state.config.core.load_liblv2.value())
{ {
IniEntry<bool> load_lib; /*IniEntry<bool> load_lib;
load_lib.Init(sprx_handler.sprx_get_module_name(), "LLE"); load_lib.Init(sprx_handler.sprx_get_module_name(), "LLE");
if (!load_lib.LoadValue(false)) if (!load_lib.LoadValue(false))
{ {
continue; continue;
} }*/
} }
LOG_WARNING(LOADER, "Loading LLE library '%s'", sprx_handler.sprx_get_module_name().c_str()); LOG_WARNING(LOADER, "Loading LLE library '%s'", sprx_handler.sprx_get_module_name().c_str());
@ -617,7 +617,7 @@ namespace loader
m_stream->Seek(handler::get_stream_offset() + phdr.p_offset); m_stream->Seek(handler::get_stream_offset() + phdr.p_offset);
m_stream->Read(phdr.p_vaddr.get_ptr(), phdr.p_filesz); m_stream->Read(phdr.p_vaddr.get_ptr(), phdr.p_filesz);
if (Ini.HookStFunc.GetValue()) if (rpcs3::state.config.core.hook_st_func.value())
{ {
hook_ppu_funcs(vm::static_ptr_cast<u32>(phdr.p_vaddr), phdr.p_filesz / 4); hook_ppu_funcs(vm::static_ptr_cast<u32>(phdr.p_vaddr), phdr.p_filesz / 4);
} }

View File

@ -55,8 +55,8 @@ enum class rsx_renderer_type
enum class rsx_aspect_ratio enum class rsx_aspect_ratio
{ {
_16x9 = 1, _4x3 = 1,
_4x3 _16x9
}; };
enum class rsx_frame_limit enum class rsx_frame_limit
@ -71,14 +71,14 @@ enum class rsx_frame_limit
enum class rsx_resolution enum class rsx_resolution
{ {
_1920x1080, _1920x1080 = 1,
_1280x720, _1280x720 = 2,
_720x480, _720x480 = 4,
_720x576, _720x576 = 5,
_1600x1080, _1600x1080 = 10,
_1440x1080, _1440x1080 = 11,
_1280x1080, _1280x1080 = 12,
_960x1080 _960x1080 = 13
}; };
namespace convert namespace convert
@ -284,7 +284,7 @@ namespace convert
if (value == "interpreter2") if (value == "interpreter2")
return ppu_decoder_type::interpreter2; return ppu_decoder_type::interpreter2;
if (value == "DX12") if (value == "recompiler_llvm")
return ppu_decoder_type::recompiler_llvm; return ppu_decoder_type::recompiler_llvm;
return ppu_decoder_type::interpreter; return ppu_decoder_type::interpreter;
@ -561,8 +561,6 @@ namespace convert
} }
namespace rpcs3 namespace rpcs3
{ {
class config_t : public config_context_t class config_t : public config_context_t
@ -570,6 +568,30 @@ namespace rpcs3
std::string m_path; std::string m_path;
public: public:
struct gui_group : protected group
{
gui_group(config_context_t *cfg) : group{ cfg, "gui" } {}
struct size_group : protected group
{
size_group(group *grp) : group{ grp, "size" } {}
entry<int> width{ this, "width", 900 };
entry<int> hight{ this, "hight", 600 };
} size{ this };
struct position_group : protected group
{
position_group(group *grp) : group{ grp, "position" } {}
entry<int> x{ this, "horizontal", -1 };
entry<int> y{ this, "vertical", -1 };
} position{ this };
entry<std::string> aui_mgr_perspective{ this, "MainFrameAui", "" };
} gui{ this };
struct core_group : protected group struct core_group : protected group
{ {
core_group(config_context_t *cfg) : group{ cfg, "core" } {} core_group(config_context_t *cfg) : group{ cfg, "core" } {}
@ -608,8 +630,8 @@ namespace rpcs3
d3d12_group(group *grp) : group{ grp, "d3d12" } {} d3d12_group(group *grp) : group{ grp, "d3d12" } {}
entry<u32> adaptater { this, "D3D Adaptater", 1 }; entry<u32> adaptater { this, "D3D Adaptater", 1 };
entry<bool> debug_output { this, "Debug Output", true }; entry<bool> debug_output { this, "Debug Output", false };
entry<bool> overlay { this, "Debug overlay", true }; entry<bool> overlay { this, "Debug overlay", false };
} d3d12{ this }; } d3d12{ this };
rsx_group(config_context_t *cfg) : group{ cfg, "rsx" } {} rsx_group(config_context_t *cfg) : group{ cfg, "rsx" } {}
@ -707,7 +729,7 @@ namespace rpcs3
entry<bool> exit_on_stop { this, "Exit RPCS3 when process finishes", false }; entry<bool> exit_on_stop { this, "Exit RPCS3 when process finishes", false };
entry<bool> always_start { this, "Always start after boot", true }; entry<bool> always_start { this, "Always start after boot", true };
entry<bool> use_default_ini { this, "Use default configuration", false }; entry<bool> use_default_ini { this, "Use default configuration", true };
} misc{ this }; } misc{ this };
struct system_group : protected group struct system_group : protected group

View File

@ -3,11 +3,12 @@
#include "Emu/System.h" #include "Emu/System.h"
#include "Emu/state.h" #include "Emu/state.h"
#include "rpcs3.h" #include "rpcs3.h"
#include "Ini.h"
#include "Utilities/Log.h" #include "Utilities/Log.h"
#include "Gui/ConLogFrame.h" #include "Gui/ConLogFrame.h"
#include "Emu/GameInfo.h" #include "Emu/GameInfo.h"
#include "Ini.h"
#include "Emu/Io/Keyboard.h" #include "Emu/Io/Keyboard.h"
#include "Emu/Io/Null/NullKeyboardHandler.h" #include "Emu/Io/Null/NullKeyboardHandler.h"
#include "Emu/Io/Windows/WindowsKeyboardHandler.h" #include "Emu/Io/Windows/WindowsKeyboardHandler.h"
@ -199,6 +200,7 @@ void Rpcs3App::Exit()
} }
Emu.Stop(); Emu.Stop();
rpcs3::config.save();
Ini.Save(); Ini.Save();
wxApp::Exit(); wxApp::Exit();