mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-03 21:41:26 +12:00
Implemented audio Dump To File
Fixed MFOCRF, MTOCRF, MTCRF Minor fixes
This commit is contained in:
parent
7c6c20ef18
commit
81b19057bb
10 changed files with 68 additions and 34 deletions
|
@ -114,11 +114,12 @@ thread::thread()
|
||||||
void thread::start(std::function<void()> func)
|
void thread::start(std::function<void()> func)
|
||||||
{ // got a crash related with strings
|
{ // got a crash related with strings
|
||||||
m_thr = std::thread([this, func]()
|
m_thr = std::thread([this, func]()
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
NamedThreadBase info(m_name);
|
NamedThreadBase info(m_name);
|
||||||
g_tls_this_thread = &info;
|
g_tls_this_thread = &info;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
func();
|
func();
|
||||||
}
|
}
|
||||||
catch(...)
|
catch(...)
|
||||||
|
|
|
@ -2334,6 +2334,7 @@ private:
|
||||||
}
|
}
|
||||||
void MFOCRF(u32 a, u32 rd, u32 crm)
|
void MFOCRF(u32 a, u32 rd, u32 crm)
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
if(a)
|
if(a)
|
||||||
{
|
{
|
||||||
u32 n = 0, count = 0;
|
u32 n = 0, count = 0;
|
||||||
|
@ -2357,8 +2358,9 @@ private:
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
*/
|
||||||
CPU.GPR[rd] = CPU.CR.CR;
|
CPU.GPR[rd] = CPU.CR.CR;
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
void LWARX(u32 rd, u32 ra, u32 rb)
|
void LWARX(u32 rd, u32 ra, u32 rb)
|
||||||
{
|
{
|
||||||
|
@ -2635,7 +2637,7 @@ private:
|
||||||
if(count == 1)
|
if(count == 1)
|
||||||
{
|
{
|
||||||
//CR[4*n : 4*n+3] = RS[32+4*n : 32+4*n+3];
|
//CR[4*n : 4*n+3] = RS[32+4*n : 32+4*n+3];
|
||||||
CPU.SetCR(n, (CPU.GPR[rs] >> (4*n)) & 0xf);
|
CPU.SetCR(7 - n, (CPU.GPR[rs] >> (4*n)) & 0xf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
CPU.CR.CR = 0;
|
CPU.CR.CR = 0;
|
||||||
|
@ -2646,7 +2648,7 @@ private:
|
||||||
{
|
{
|
||||||
if(crm & (1 << i))
|
if(crm & (1 << i))
|
||||||
{
|
{
|
||||||
CPU.SetCR(i, CPU.GPR[rs] & (0xf << i));
|
CPU.SetCR(7 - i, CPU.GPR[rs] & (0xf << (i * 4)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -802,6 +802,8 @@ void GLGSRender::ExecCMD()
|
||||||
checkForGlError("glColorMask");
|
checkForGlError("glColorMask");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//glFrontFace(m_front_face);
|
||||||
|
|
||||||
if(m_set_viewport_horizontal && m_set_viewport_vertical)
|
if(m_set_viewport_horizontal && m_set_viewport_vertical)
|
||||||
{
|
{
|
||||||
//glViewport(m_viewport_x, m_viewport_y, m_viewport_w, m_viewport_h);
|
//glViewport(m_viewport_x, m_viewport_y, m_viewport_w, m_viewport_h);
|
||||||
|
|
|
@ -220,6 +220,10 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, mem32_ptr_t& args, const u3
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NV4097_SET_FRONT_FACE:
|
||||||
|
m_front_face = ARGS(0);
|
||||||
|
break;
|
||||||
|
|
||||||
case_16(NV4097_SET_VERTEX_DATA4UB_M, 4):
|
case_16(NV4097_SET_VERTEX_DATA4UB_M, 4):
|
||||||
{
|
{
|
||||||
u32 v = ARGS(0);
|
u32 v = ARGS(0);
|
||||||
|
@ -658,7 +662,7 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, mem32_ptr_t& args, const u3
|
||||||
|
|
||||||
case NV4097_SET_SHADER_PROGRAM:
|
case NV4097_SET_SHADER_PROGRAM:
|
||||||
{
|
{
|
||||||
m_cur_shader_prog = &m_shader_progs[m_cur_shader_prog_num++];
|
m_cur_shader_prog = &m_shader_progs[/*m_cur_shader_prog_num++*/0];
|
||||||
u32 a0 = ARGS(0);
|
u32 a0 = ARGS(0);
|
||||||
m_cur_shader_prog->offset = a0 & ~0x3;
|
m_cur_shader_prog->offset = a0 & ~0x3;
|
||||||
m_cur_shader_prog->addr = GetAddress(m_cur_shader_prog->offset, (a0 & 0x3) - 1);
|
m_cur_shader_prog->addr = GetAddress(m_cur_shader_prog->offset, (a0 & 0x3) - 1);
|
||||||
|
@ -1376,6 +1380,12 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, mem32_ptr_t& args, const u3
|
||||||
case 0x000002f8:
|
case 0x000002f8:
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NV0039_SET_CONTEXT_DMA_BUFFER_IN:
|
||||||
|
case NV0039_OFFSET_IN:
|
||||||
|
case NV0039_OFFSET_OUT:
|
||||||
|
//TODO
|
||||||
|
break;
|
||||||
|
|
||||||
case NV4097_SET_SURFACE_COLOR_AOFFSET:
|
case NV4097_SET_SURFACE_COLOR_AOFFSET:
|
||||||
m_surface_offset_a = ARGS(0);
|
m_surface_offset_a = ARGS(0);
|
||||||
break;
|
break;
|
||||||
|
@ -1450,6 +1460,7 @@ void RSXThread::End()
|
||||||
m_fragment_constants.Clear();
|
m_fragment_constants.Clear();
|
||||||
m_transform_constants.Clear();
|
m_transform_constants.Clear();
|
||||||
m_cur_shader_prog_num = 0;
|
m_cur_shader_prog_num = 0;
|
||||||
|
//m_cur_shader_prog = nullptr;
|
||||||
|
|
||||||
m_clear_surface_mask = 0;
|
m_clear_surface_mask = 0;
|
||||||
m_begin_end = 0;
|
m_begin_end = 0;
|
||||||
|
|
|
@ -151,7 +151,7 @@ class RSXThread : public ThreadBase
|
||||||
public:
|
public:
|
||||||
static const uint m_textures_count = 16;
|
static const uint m_textures_count = 16;
|
||||||
static const uint m_vertex_count = 32;
|
static const uint m_vertex_count = 32;
|
||||||
static const uint m_fragment_count = 16;
|
static const uint m_fragment_count = 32;
|
||||||
static const uint m_tiles_count = 15;
|
static const uint m_tiles_count = 15;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -179,7 +179,6 @@ public:
|
||||||
int m_debug_level;
|
int m_debug_level;
|
||||||
int m_frequency_mode;
|
int m_frequency_mode;
|
||||||
|
|
||||||
|
|
||||||
u32 m_tiles_addr;
|
u32 m_tiles_addr;
|
||||||
u32 m_zculls_addr;
|
u32 m_zculls_addr;
|
||||||
u32 m_gcm_buffers_addr;
|
u32 m_gcm_buffers_addr;
|
||||||
|
@ -438,6 +437,8 @@ public:
|
||||||
|
|
||||||
u32 m_surface_colour_target;
|
u32 m_surface_colour_target;
|
||||||
|
|
||||||
|
u32 m_front_face;
|
||||||
|
|
||||||
u8 m_begin_end;
|
u8 m_begin_end;
|
||||||
bool m_read_buffer;
|
bool m_read_buffer;
|
||||||
|
|
||||||
|
@ -485,6 +486,8 @@ protected:
|
||||||
m_point_x = 0;
|
m_point_x = 0;
|
||||||
m_point_y = 0;
|
m_point_y = 0;
|
||||||
|
|
||||||
|
m_front_face = 0x0901;
|
||||||
|
|
||||||
// Construct Textures
|
// Construct Textures
|
||||||
for(int i=0; i<16; i++)
|
for(int i=0; i<16; i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -302,10 +302,10 @@ int cellAudioInit()
|
||||||
{
|
{
|
||||||
WAVHeader header(2); // WAV file header (stereo)
|
WAVHeader header(2); // WAV file header (stereo)
|
||||||
|
|
||||||
wxString output_name = "audio.wav";
|
static const wxString& output_name = "audio.wav";
|
||||||
|
|
||||||
wxFile output(output_name, wxFile::write); // create output file
|
wxFile output; // create output file
|
||||||
if (!output.IsOpened())
|
if (Ini.AudioDumpToFile.GetValue() && !output.Open(output_name, wxFile::write))
|
||||||
{
|
{
|
||||||
ConLog.Error("Audio aborted: cannot create %s", output_name.wx_str());
|
ConLog.Error("Audio aborted: cannot create %s", output_name.wx_str());
|
||||||
return;
|
return;
|
||||||
|
@ -315,10 +315,11 @@ int cellAudioInit()
|
||||||
|
|
||||||
m_config.start_time = get_system_time();
|
m_config.start_time = get_system_time();
|
||||||
|
|
||||||
|
if (Ini.AudioDumpToFile.GetValue())
|
||||||
output.Write(&header, sizeof(header)); // write file header
|
output.Write(&header, sizeof(header)); // write file header
|
||||||
|
|
||||||
float buffer[2*256]; // buffer for 2 channels
|
float buffer[2*256]; // buffer for 2 channels
|
||||||
float buffer2[8*256]; // buffer for 8 channels (max count)
|
be_t<float> buffer2[8*256]; // buffer for 8 channels (max count)
|
||||||
memset(&buffer, 0, sizeof(buffer));
|
memset(&buffer, 0, sizeof(buffer));
|
||||||
memset(&buffer2, 0, sizeof(buffer2));
|
memset(&buffer2, 0, sizeof(buffer2));
|
||||||
|
|
||||||
|
@ -370,14 +371,12 @@ int cellAudioInit()
|
||||||
port.tag++; // absolute index of block that will be read
|
port.tag++; // absolute index of block that will be read
|
||||||
index = (position + 1) % port.block; // write new value
|
index = (position + 1) % port.block; // write new value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (first_mix)
|
if (first_mix)
|
||||||
{
|
{
|
||||||
for (u32 i = 0; i < (sizeof(buffer) / sizeof(float)); i++)
|
for (u32 i = 0; i < (sizeof(buffer) / sizeof(float)); i++)
|
||||||
{
|
{
|
||||||
// reverse byte order (TODO: use port.m_param.level)
|
// reverse byte order (TODO: use port.m_param.level)
|
||||||
buffer[i] = re(buffer2[i]);
|
buffer[i] = buffer2[i];
|
||||||
}
|
}
|
||||||
first_mix = false;
|
first_mix = false;
|
||||||
}
|
}
|
||||||
|
@ -385,8 +384,7 @@ int cellAudioInit()
|
||||||
{
|
{
|
||||||
for (u32 i = 0; i < (sizeof(buffer) / sizeof(float)); i++)
|
for (u32 i = 0; i < (sizeof(buffer) / sizeof(float)); i++)
|
||||||
{
|
{
|
||||||
float value = re(buffer2[i]);
|
buffer[i] = (buffer[i] + buffer2[i]) * 0.5; // TODO: valid mixing
|
||||||
buffer[i] = (buffer[i] + value) * 0.5; // TODO: valid mixing
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -395,6 +393,8 @@ int cellAudioInit()
|
||||||
// TODO: check event source
|
// TODO: check event source
|
||||||
Emu.GetEventManager().SendEvent(m_config.event_key, 0x10103000e010e07, 0, 0, 0);
|
Emu.GetEventManager().SendEvent(m_config.event_key, 0x10103000e010e07, 0, 0, 0);
|
||||||
|
|
||||||
|
if(Ini.AudioDumpToFile.GetValue())
|
||||||
|
{
|
||||||
if (output.Write(&buffer, sizeof(buffer)) != sizeof(buffer)) // write file data
|
if (output.Write(&buffer, sizeof(buffer)) != sizeof(buffer)) // write file data
|
||||||
{
|
{
|
||||||
ConLog.Error("Port aborted: cannot write %s", output_name.wx_str());
|
ConLog.Error("Port aborted: cannot write %s", output_name.wx_str());
|
||||||
|
@ -404,12 +404,17 @@ int cellAudioInit()
|
||||||
header.Size += sizeof(buffer); // update file header
|
header.Size += sizeof(buffer); // update file header
|
||||||
header.RIFF.Size += sizeof(buffer);
|
header.RIFF.Size += sizeof(buffer);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
ConLog.Write("Audio finished");
|
ConLog.Write("Audio finished");
|
||||||
abort:
|
abort:
|
||||||
|
if(Ini.AudioDumpToFile.GetValue())
|
||||||
|
{
|
||||||
output.Seek(0);
|
output.Seek(0);
|
||||||
output.Write(&header, sizeof(header)); // write fixed file header
|
output.Write(&header, sizeof(header)); // write fixed file header
|
||||||
|
|
||||||
output.Close();
|
output.Close();
|
||||||
|
}
|
||||||
|
|
||||||
m_config.m_is_audio_finalized = true;
|
m_config.m_is_audio_finalized = true;
|
||||||
});
|
});
|
||||||
t.detach();
|
t.detach();
|
||||||
|
|
|
@ -257,7 +257,7 @@ int sys_spu_thread_group_start(u32 id)
|
||||||
//174
|
//174
|
||||||
int sys_spu_thread_group_suspend(u32 id)
|
int sys_spu_thread_group_suspend(u32 id)
|
||||||
{
|
{
|
||||||
sc_spu.Warning("sys_spu_thread_group_suspend(id=%d)", id);
|
sc_spu.Log("sys_spu_thread_group_suspend(id=%d)", id);
|
||||||
|
|
||||||
SpuGroupInfo* group_info;
|
SpuGroupInfo* group_info;
|
||||||
if(!Emu.GetIdManager().GetIDData(id, group_info))
|
if(!Emu.GetIdManager().GetIDData(id, group_info))
|
||||||
|
|
|
@ -95,9 +95,9 @@ void GameViewer::DClick(wxListEvent& event)
|
||||||
|
|
||||||
const wxString& path = m_path + m_game_data[i].root;
|
const wxString& path = m_path + m_game_data[i].root;
|
||||||
|
|
||||||
|
Emu.Stop();
|
||||||
Emu.GetVFS().Init(path);
|
Emu.GetVFS().Init(path);
|
||||||
wxString local_path;
|
wxString local_path;
|
||||||
Emu.Stop();
|
|
||||||
if(Emu.GetVFS().GetDevice(path, local_path) && !Emu.BootGame(local_path.ToStdString()))
|
if(Emu.GetVFS().GetDevice(path, local_path) && !Emu.BootGame(local_path.ToStdString()))
|
||||||
{
|
{
|
||||||
ConLog.Error("Boot error: elf not found! [%s]", path.wx_str());
|
ConLog.Error("Boot error: elf not found! [%s]", path.wx_str());
|
||||||
|
|
|
@ -379,6 +379,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||||
wxCheckBox* chbox_gs_dump_depth = new wxCheckBox(&diag, wxID_ANY, "Dump Depth Buffer");
|
wxCheckBox* chbox_gs_dump_depth = new wxCheckBox(&diag, wxID_ANY, "Dump Depth Buffer");
|
||||||
wxCheckBox* chbox_gs_dump_color = new wxCheckBox(&diag, wxID_ANY, "Dump Color Buffers");
|
wxCheckBox* chbox_gs_dump_color = new wxCheckBox(&diag, wxID_ANY, "Dump Color Buffers");
|
||||||
wxCheckBox* chbox_gs_vsync = new wxCheckBox(&diag, wxID_ANY, "VSync");
|
wxCheckBox* chbox_gs_vsync = new wxCheckBox(&diag, wxID_ANY, "VSync");
|
||||||
|
wxCheckBox* chbox_audio_dump = new wxCheckBox(&diag, wxID_ANY, "Dump to file");
|
||||||
wxCheckBox* chbox_hle_logging = new wxCheckBox(&diag, wxID_ANY, "Log all SysCalls");
|
wxCheckBox* chbox_hle_logging = new wxCheckBox(&diag, wxID_ANY, "Log all SysCalls");
|
||||||
|
|
||||||
//cbox_cpu_decoder->Append("DisAsm");
|
//cbox_cpu_decoder->Append("DisAsm");
|
||||||
|
@ -416,8 +417,12 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||||
chbox_gs_dump_depth->SetValue(Ini.GSDumpDepthBuffer.GetValue());
|
chbox_gs_dump_depth->SetValue(Ini.GSDumpDepthBuffer.GetValue());
|
||||||
chbox_gs_dump_color->SetValue(Ini.GSDumpColorBuffers.GetValue());
|
chbox_gs_dump_color->SetValue(Ini.GSDumpColorBuffers.GetValue());
|
||||||
chbox_gs_vsync->SetValue(Ini.GSVSyncEnable.GetValue());
|
chbox_gs_vsync->SetValue(Ini.GSVSyncEnable.GetValue());
|
||||||
|
chbox_audio_dump->SetValue(Ini.AudioDumpToFile.GetValue());
|
||||||
chbox_hle_logging->SetValue(Ini.HLELogging.GetValue());
|
chbox_hle_logging->SetValue(Ini.HLELogging.GetValue());
|
||||||
|
|
||||||
|
chbox_audio_dump->Enable(Emu.IsStopped());
|
||||||
|
chbox_hle_logging->Enable(Emu.IsStopped());
|
||||||
|
|
||||||
cbox_cpu_decoder->SetSelection(Ini.CPUDecoderMode.GetValue() ? Ini.CPUDecoderMode.GetValue() - 1 : 0);
|
cbox_cpu_decoder->SetSelection(Ini.CPUDecoderMode.GetValue() ? Ini.CPUDecoderMode.GetValue() - 1 : 0);
|
||||||
cbox_gs_render->SetSelection(Ini.GSRenderMode.GetValue());
|
cbox_gs_render->SetSelection(Ini.GSRenderMode.GetValue());
|
||||||
cbox_gs_resolution->SetSelection(ResolutionIdToNum(Ini.GSResolution.GetValue()) - 1);
|
cbox_gs_resolution->SetSelection(ResolutionIdToNum(Ini.GSResolution.GetValue()) - 1);
|
||||||
|
@ -450,6 +455,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||||
s_round_io->Add(s_round_io_mouse_handler, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_round_io->Add(s_round_io_mouse_handler, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
|
|
||||||
s_round_audio_out->Add(cbox_audio_out, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_round_audio_out->Add(cbox_audio_out, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
|
s_round_audio_out->Add(chbox_audio_dump, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
s_round_audio->Add(s_round_audio_out, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_round_audio->Add(s_round_audio_out, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
|
|
||||||
s_round_hle->Add(chbox_hle_logging, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_round_hle->Add(chbox_hle_logging, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
|
@ -488,6 +494,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||||
Ini.KeyboardHandlerMode.SetValue(cbox_keyboard_handler->GetSelection());
|
Ini.KeyboardHandlerMode.SetValue(cbox_keyboard_handler->GetSelection());
|
||||||
Ini.MouseHandlerMode.SetValue(cbox_mouse_handler->GetSelection());
|
Ini.MouseHandlerMode.SetValue(cbox_mouse_handler->GetSelection());
|
||||||
Ini.AudioOutMode.SetValue(cbox_audio_out->GetSelection());
|
Ini.AudioOutMode.SetValue(cbox_audio_out->GetSelection());
|
||||||
|
Ini.AudioDumpToFile.SetValue(chbox_audio_dump->GetValue());
|
||||||
Ini.HLELogging.SetValue(chbox_hle_logging->GetValue());
|
Ini.HLELogging.SetValue(chbox_hle_logging->GetValue());
|
||||||
|
|
||||||
Ini.Save();
|
Ini.Save();
|
||||||
|
@ -650,7 +657,6 @@ void MainFrame::ConfigPad(wxCommandEvent& WXUNUSED(event))
|
||||||
s_subpanel4->Add(s_round_pad_shifts_r, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_subpanel4->Add(s_round_pad_shifts_r, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
s_subpanel5->Add(s_round_pad_buttons, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_subpanel5->Add(s_round_pad_buttons, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
|
|
||||||
|
|
||||||
s_panel->Add(s_subpanel1, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_panel->Add(s_subpanel1, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
s_panel->Add(s_subpanel2, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_panel->Add(s_subpanel2, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
s_panel->Add(s_subpanel3, wxSizerFlags().Border(wxALL, 5).Expand());
|
s_panel->Add(s_subpanel3, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||||
|
|
|
@ -105,6 +105,7 @@ public:
|
||||||
IniEntry<u8> KeyboardHandlerMode;
|
IniEntry<u8> KeyboardHandlerMode;
|
||||||
IniEntry<u8> MouseHandlerMode;
|
IniEntry<u8> MouseHandlerMode;
|
||||||
IniEntry<u8> AudioOutMode;
|
IniEntry<u8> AudioOutMode;
|
||||||
|
IniEntry<bool> AudioDumpToFile;
|
||||||
IniEntry<bool> HLELogging;
|
IniEntry<bool> HLELogging;
|
||||||
|
|
||||||
IniEntry<int> PadHandlerLeft;
|
IniEntry<int> PadHandlerLeft;
|
||||||
|
@ -167,6 +168,7 @@ public:
|
||||||
|
|
||||||
path = DefPath + "\\" + "Audio";
|
path = DefPath + "\\" + "Audio";
|
||||||
AudioOutMode.Init("AudioOutMode", path);
|
AudioOutMode.Init("AudioOutMode", path);
|
||||||
|
AudioDumpToFile.Init("AudioDumpToFile", path);
|
||||||
|
|
||||||
path = DefPath + "\\" + "HLE";
|
path = DefPath + "\\" + "HLE";
|
||||||
HLELogging.Init("HLELogging", path);
|
HLELogging.Init("HLELogging", path);
|
||||||
|
@ -187,6 +189,7 @@ public:
|
||||||
KeyboardHandlerMode.Load(0);
|
KeyboardHandlerMode.Load(0);
|
||||||
MouseHandlerMode.Load(0);
|
MouseHandlerMode.Load(0);
|
||||||
AudioOutMode.Load(0);
|
AudioOutMode.Load(0);
|
||||||
|
AudioDumpToFile.Load(0);
|
||||||
HLELogging.Load(false);
|
HLELogging.Load(false);
|
||||||
|
|
||||||
PadHandlerLeft.Load(static_cast<int>('A'));
|
PadHandlerLeft.Load(static_cast<int>('A'));
|
||||||
|
@ -222,6 +225,7 @@ public:
|
||||||
KeyboardHandlerMode.Save();
|
KeyboardHandlerMode.Save();
|
||||||
MouseHandlerMode.Save();
|
MouseHandlerMode.Save();
|
||||||
AudioOutMode.Save();
|
AudioOutMode.Save();
|
||||||
|
AudioDumpToFile.Save();
|
||||||
HLELogging.Save();
|
HLELogging.Save();
|
||||||
|
|
||||||
PadHandlerLeft.Save();
|
PadHandlerLeft.Save();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue