mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-01-29 00:33:01 +00:00
Merge branch 'master' of https://github.com/DHrpcs3/rpcs3
This commit is contained in:
commit
85f2009175
2
asmjit
2
asmjit
@ -1 +1 @@
|
||||
Subproject commit d7fc62d9e905859579f5965eee6f7f99b65c2246
|
||||
Subproject commit 9ead0cfb4cb5eb1bcf8c12b4a1ea115e438c44fa
|
2
ffmpeg
2
ffmpeg
@ -1 +1 @@
|
||||
Subproject commit 8bcaa2485c2434d7d7a9da17491bafb58de42bb6
|
||||
Subproject commit 352fdfbbfa6d7b26142f00b43d7e1802a03c68a8
|
@ -93,6 +93,22 @@ public:
|
||||
return "Unknown";
|
||||
}
|
||||
|
||||
std::string ThreadStatusToString()
|
||||
{
|
||||
switch (ThreadStatus())
|
||||
{
|
||||
case CPUThread_Ready: return "Ready";
|
||||
case CPUThread_Running: return "Running";
|
||||
case CPUThread_Paused: return "Paused";
|
||||
case CPUThread_Stopped: return "Stopped";
|
||||
case CPUThread_Sleeping: return "Sleeping";
|
||||
case CPUThread_Break: return "Break";
|
||||
case CPUThread_Step: return "Step";
|
||||
|
||||
default: return "Unknown status";
|
||||
}
|
||||
}
|
||||
|
||||
std::string GetTypeString() const { return CPUThreadTypeToString(m_type); }
|
||||
|
||||
virtual std::string GetThreadName() const
|
||||
|
@ -1804,6 +1804,12 @@ void GLGSRender::ExecCMD()
|
||||
}
|
||||
}
|
||||
|
||||
if (m_set_two_side_light_enable)
|
||||
{
|
||||
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
|
||||
checkForGlError("glLightModeli");
|
||||
}
|
||||
|
||||
if(m_set_shade_mode)
|
||||
{
|
||||
glShadeModel(m_shade_mode);
|
||||
|
@ -1122,6 +1122,12 @@ void RSXThread::DoCmd(const u32 fcmd, const u32 cmd, const u32 args_addr, const
|
||||
}
|
||||
break;
|
||||
|
||||
case NV4097_SET_TWO_SIDE_LIGHT_EN:
|
||||
{
|
||||
m_set_two_side_light_enable = ARGS(0) ? true : false;
|
||||
}
|
||||
break;
|
||||
|
||||
case NV4097_SET_STENCIL_MASK:
|
||||
{
|
||||
m_set_stencil_mask = true;
|
||||
|
@ -288,6 +288,7 @@ public:
|
||||
bool m_set_stencil_zpass;
|
||||
u32 m_stencil_zpass;
|
||||
bool m_set_two_sided_stencil_test_enable;
|
||||
bool m_set_two_side_light_enable;
|
||||
bool m_set_back_stencil_mask;
|
||||
u32 m_back_stencil_mask;
|
||||
bool m_set_back_stencil_func;
|
||||
@ -465,6 +466,7 @@ protected:
|
||||
m_set_point_sprite_control = false;
|
||||
m_set_specular = false;
|
||||
m_set_two_sided_stencil_test_enable = false;
|
||||
m_set_two_side_light_enable = false;
|
||||
m_set_surface_clip_horizontal = false;
|
||||
m_set_surface_clip_vertical = false;
|
||||
m_set_poly_offset_fill = false;
|
||||
@ -554,6 +556,7 @@ protected:
|
||||
m_set_blend_color = false;
|
||||
m_set_stencil_test = false;
|
||||
m_set_two_sided_stencil_test_enable = false;
|
||||
m_set_two_side_light_enable = false;
|
||||
m_set_stencil_mask = false;
|
||||
m_set_stencil_func = false;
|
||||
m_set_stencil_func_ref = false;
|
||||
|
@ -7,6 +7,8 @@ extern void cellAtrac_init();
|
||||
extern Module *cellAtrac;
|
||||
extern void cellAudio_init();
|
||||
extern Module *cellAudio;
|
||||
extern void cellCamera_init();
|
||||
extern Module *cellCamera;
|
||||
extern void cellDmux_init();
|
||||
extern Module *cellDmux;
|
||||
extern void cellFiber_init();
|
||||
@ -35,6 +37,8 @@ extern void cellL10n_init();
|
||||
extern Module *cellL10n;
|
||||
extern void cellNetCtl_init();
|
||||
extern Module *cellNetCtl;
|
||||
extern void cellOvis_init();
|
||||
extern Module *cellOvis;
|
||||
extern void cellPamf_init();
|
||||
extern Module *cellPamf;
|
||||
extern void cellPngDec_init();
|
||||
@ -226,6 +230,8 @@ void ModuleManager::init()
|
||||
m_mod_init.emplace_back(0x0013, cellAtrac_init);
|
||||
cellAudio = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
m_mod_init.emplace_back(0x0011, cellAudio_init);
|
||||
cellCamera = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
m_mod_init.emplace_back(0x0023, cellCamera_init);
|
||||
cellDmux = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
m_mod_init.emplace_back(0x0007, cellDmux_init);
|
||||
cellFiber = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
@ -248,6 +254,8 @@ void ModuleManager::init()
|
||||
m_mod_init.emplace_back(0x001e, cellL10n_init);
|
||||
cellNetCtl = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
m_mod_init.emplace_back(0x0014, cellNetCtl_init);
|
||||
cellOvis = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
m_mod_init.emplace_back(0x000b, cellOvis_init);
|
||||
cellPamf = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
m_mod_init.emplace_back(0x0012, cellPamf_init);
|
||||
cellPngDec = static_cast <Module*>(&(m_mod_init.back())) + 1;
|
||||
|
@ -609,7 +609,7 @@ int cellAdecQueryAttr(vm::ptr<CellAdecType> type, vm::ptr<CellAdecAttr> attr)
|
||||
// TODO: check values
|
||||
attr->adecVerLower = 0x280000; // from dmux
|
||||
attr->adecVerUpper = 0x260000;
|
||||
attr->workMemSize = 4 * 1024 * 1024;
|
||||
attr->workMemSize = 4 * 1024 * 1024; // 4 MB
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
@ -1,30 +1,37 @@
|
||||
#include "stdafx.h"
|
||||
#if 0
|
||||
#include "Ini.h"
|
||||
#include "Emu/Memory/Memory.h"
|
||||
#include "Emu/SysCalls/Modules.h"
|
||||
|
||||
#include "cellCamera.h"
|
||||
|
||||
void cellCamera_init();
|
||||
Module cellCamera(0x0023, cellCamera_init);
|
||||
//Module cellCamera(0x0023, cellCamera_init);
|
||||
Module *cellCamera = nullptr;
|
||||
|
||||
// Error Codes
|
||||
enum
|
||||
struct cellCameraInternal
|
||||
{
|
||||
CELL_CAMERA_ERROR_ALREADY_INIT = 0x80140801,
|
||||
CELL_CAMERA_ERROR_NOT_INIT = 0x80140803,
|
||||
CELL_CAMERA_ERROR_PARAM = 0x80140804,
|
||||
CELL_CAMERA_ERROR_ALREADY_OPEN = 0x80140805,
|
||||
CELL_CAMERA_ERROR_NOT_OPEN = 0x80140806,
|
||||
CELL_CAMERA_ERROR_DEVICE_NOT_FOUND = 0x80140807,
|
||||
CELL_CAMERA_ERROR_DEVICE_DEACTIVATED = 0x80140808,
|
||||
CELL_CAMERA_ERROR_NOT_STARTED = 0x80140809,
|
||||
CELL_CAMERA_ERROR_FORMAT_UNKNOWN = 0x8014080a,
|
||||
CELL_CAMERA_ERROR_RESOLUTION_UNKNOWN = 0x8014080b,
|
||||
CELL_CAMERA_ERROR_BAD_FRAMERATE = 0x8014080c,
|
||||
CELL_CAMERA_ERROR_TIMEOUT = 0x8014080d,
|
||||
CELL_CAMERA_ERROR_FATAL = 0x8014080f,
|
||||
bool m_bInitialized;
|
||||
|
||||
cellCameraInternal()
|
||||
: m_bInitialized(false)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
cellCameraInternal cellCameraInstance;
|
||||
|
||||
int cellCameraInit()
|
||||
{
|
||||
UNIMPLEMENTED_FUNC(cellCamera);
|
||||
cellCamera->Warning("cellCameraInit()");
|
||||
|
||||
if (cellCameraInstance.m_bInitialized)
|
||||
return CELL_CAMERA_ERROR_ALREADY_INIT;
|
||||
|
||||
// TODO: Check if camera is connected, if not return CELL_CAMERA_ERROR_DEVICE_NOT_FOUND
|
||||
|
||||
cellCameraInstance.m_bInitialized = true;
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -58,9 +65,19 @@ int cellCameraGetDeviceGUID()
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
int cellCameraGetType()
|
||||
int cellCameraGetType(s32 dev_num, CellCameraType type)
|
||||
{
|
||||
UNIMPLEMENTED_FUNC(cellCamera);
|
||||
cellCamera->Warning("cellCameraGetType(dev_num=%d, type_addr=0x%x)", dev_num, type);
|
||||
|
||||
if (Ini.CameraType.GetValue() == 1)
|
||||
type = CELL_CAMERA_EYETOY;
|
||||
else if (Ini.CameraType.GetValue() == 2)
|
||||
type = CELL_CAMERA_EYETOY2;
|
||||
else if (Ini.CameraType.GetValue() == 3)
|
||||
type == CELL_CAMERA_USBVIDEOCLASS;
|
||||
else
|
||||
type = CELL_CAMERA_TYPE_UNKNOWN;
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
@ -204,39 +221,38 @@ int cellCameraRemoveNotifyEventQueue2()
|
||||
|
||||
void cellCamera_init()
|
||||
{
|
||||
cellCamera.AddFunc(0xbf47c5dd, cellCameraInit);
|
||||
cellCamera.AddFunc(0x5ad46570, cellCameraEnd);
|
||||
cellCamera.AddFunc(0x85e1b8da, cellCameraOpen);
|
||||
cellCamera.AddFunc(0x5d25f866, cellCameraOpenEx);
|
||||
cellCamera.AddFunc(0x379c5dd6, cellCameraClose);
|
||||
cellCamera->AddFunc(0xbf47c5dd, cellCameraInit);
|
||||
cellCamera->AddFunc(0x5ad46570, cellCameraEnd);
|
||||
cellCamera->AddFunc(0x85e1b8da, cellCameraOpen);
|
||||
cellCamera->AddFunc(0x5d25f866, cellCameraOpenEx);
|
||||
cellCamera->AddFunc(0x379c5dd6, cellCameraClose);
|
||||
|
||||
cellCamera.AddFunc(0x602e2052, cellCameraGetDeviceGUID);
|
||||
cellCamera.AddFunc(0x58bc5870, cellCameraGetType);
|
||||
cellCamera.AddFunc(0x8ca53dde, cellCameraIsAvailable);
|
||||
cellCamera.AddFunc(0x7e063bbc, cellCameraIsAttached);
|
||||
cellCamera.AddFunc(0xfa160f24, cellCameraIsOpen);
|
||||
cellCamera.AddFunc(0x5eebf24e, cellCameraIsStarted);
|
||||
cellCamera.AddFunc(0x532b8aaa, cellCameraGetAttribute);
|
||||
cellCamera.AddFunc(0x8cd56eee, cellCameraSetAttribute);
|
||||
cellCamera.AddFunc(0x7dac520c, cellCameraGetBufferSize);
|
||||
cellCamera.AddFunc(0x10697d7f, cellCameraGetBufferInfo);
|
||||
cellCamera.AddFunc(0x0e63c444, cellCameraGetBufferInfoEx);
|
||||
cellCamera->AddFunc(0x602e2052, cellCameraGetDeviceGUID);
|
||||
cellCamera->AddFunc(0x58bc5870, cellCameraGetType);
|
||||
cellCamera->AddFunc(0x8ca53dde, cellCameraIsAvailable);
|
||||
cellCamera->AddFunc(0x7e063bbc, cellCameraIsAttached);
|
||||
cellCamera->AddFunc(0xfa160f24, cellCameraIsOpen);
|
||||
cellCamera->AddFunc(0x5eebf24e, cellCameraIsStarted);
|
||||
cellCamera->AddFunc(0x532b8aaa, cellCameraGetAttribute);
|
||||
cellCamera->AddFunc(0x8cd56eee, cellCameraSetAttribute);
|
||||
cellCamera->AddFunc(0x7dac520c, cellCameraGetBufferSize);
|
||||
cellCamera->AddFunc(0x10697d7f, cellCameraGetBufferInfo);
|
||||
cellCamera->AddFunc(0x0e63c444, cellCameraGetBufferInfoEx);
|
||||
|
||||
cellCamera.AddFunc(0x61dfbe83, cellCameraPrepExtensionUnit);
|
||||
cellCamera.AddFunc(0xeb6f95fb, cellCameraCtrlExtensionUnit);
|
||||
cellCamera.AddFunc(0xb602e328, cellCameraGetExtensionUnit);
|
||||
cellCamera.AddFunc(0x2dea3e9b, cellCameraSetExtensionUnit);
|
||||
cellCamera->AddFunc(0x61dfbe83, cellCameraPrepExtensionUnit);
|
||||
cellCamera->AddFunc(0xeb6f95fb, cellCameraCtrlExtensionUnit);
|
||||
cellCamera->AddFunc(0xb602e328, cellCameraGetExtensionUnit);
|
||||
cellCamera->AddFunc(0x2dea3e9b, cellCameraSetExtensionUnit);
|
||||
|
||||
cellCamera.AddFunc(0x81f83db9, cellCameraReset);
|
||||
cellCamera.AddFunc(0x456dc4aa, cellCameraStart);
|
||||
cellCamera.AddFunc(0x3845d39b, cellCameraRead);
|
||||
cellCamera.AddFunc(0x21fc151f, cellCameraReadEx);
|
||||
cellCamera.AddFunc(0xe28b206b, cellCameraReadComplete);
|
||||
cellCamera.AddFunc(0x02f5ced0, cellCameraStop);
|
||||
cellCamera->AddFunc(0x81f83db9, cellCameraReset);
|
||||
cellCamera->AddFunc(0x456dc4aa, cellCameraStart);
|
||||
cellCamera->AddFunc(0x3845d39b, cellCameraRead);
|
||||
cellCamera->AddFunc(0x21fc151f, cellCameraReadEx);
|
||||
cellCamera->AddFunc(0xe28b206b, cellCameraReadComplete);
|
||||
cellCamera->AddFunc(0x02f5ced0, cellCameraStop);
|
||||
|
||||
cellCamera.AddFunc(0xb0647e5a, cellCameraSetNotifyEventQueue);
|
||||
cellCamera.AddFunc(0x9b98d258, cellCameraRemoveNotifyEventQueue);
|
||||
cellCamera.AddFunc(0xa7fd2f5b, cellCameraSetNotifyEventQueue2);
|
||||
cellCamera.AddFunc(0x44673f07, cellCameraRemoveNotifyEventQueue2);
|
||||
cellCamera->AddFunc(0xb0647e5a, cellCameraSetNotifyEventQueue);
|
||||
cellCamera->AddFunc(0x9b98d258, cellCameraRemoveNotifyEventQueue);
|
||||
cellCamera->AddFunc(0xa7fd2f5b, cellCameraSetNotifyEventQueue2);
|
||||
cellCamera->AddFunc(0x44673f07, cellCameraRemoveNotifyEventQueue2);
|
||||
}
|
||||
#endif
|
||||
|
78
rpcs3/Emu/SysCalls/Modules/cellCamera.h
Normal file
78
rpcs3/Emu/SysCalls/Modules/cellCamera.h
Normal file
@ -0,0 +1,78 @@
|
||||
#pragma once
|
||||
|
||||
// Error Codes
|
||||
enum
|
||||
{
|
||||
CELL_CAMERA_ERROR_ALREADY_INIT = 0x80140801,
|
||||
CELL_CAMERA_ERROR_NOT_INIT = 0x80140803,
|
||||
CELL_CAMERA_ERROR_PARAM = 0x80140804,
|
||||
CELL_CAMERA_ERROR_ALREADY_OPEN = 0x80140805,
|
||||
CELL_CAMERA_ERROR_NOT_OPEN = 0x80140806,
|
||||
CELL_CAMERA_ERROR_DEVICE_NOT_FOUND = 0x80140807,
|
||||
CELL_CAMERA_ERROR_DEVICE_DEACTIVATED = 0x80140808,
|
||||
CELL_CAMERA_ERROR_NOT_STARTED = 0x80140809,
|
||||
CELL_CAMERA_ERROR_FORMAT_UNKNOWN = 0x8014080a,
|
||||
CELL_CAMERA_ERROR_RESOLUTION_UNKNOWN = 0x8014080b,
|
||||
CELL_CAMERA_ERROR_BAD_FRAMERATE = 0x8014080c,
|
||||
CELL_CAMERA_ERROR_TIMEOUT = 0x8014080d,
|
||||
CELL_CAMERA_ERROR_FATAL = 0x8014080f,
|
||||
};
|
||||
|
||||
// Camera types
|
||||
enum CellCameraType
|
||||
{
|
||||
CELL_CAMERA_TYPE_UNKNOWN,
|
||||
CELL_CAMERA_EYETOY,
|
||||
CELL_CAMERA_EYETOY2,
|
||||
CELL_CAMERA_USBVIDEOCLASS,
|
||||
};
|
||||
|
||||
// Image format
|
||||
enum CellCameraFormat
|
||||
{
|
||||
CELL_CAMERA_FORMAT_UNKNOWN,
|
||||
CELL_CAMERA_JPG,
|
||||
CELL_CAMERA_RAW8,
|
||||
CELL_CAMERA_YUV422,
|
||||
CELL_CAMERA_RAW10,
|
||||
CELL_CAMERA_RGBA,
|
||||
CELL_CAMERA_YUV420,
|
||||
CELL_CAMERA_V_Y1_U_Y0,
|
||||
CELL_CAMERA_Y0_U_Y1_V = CELL_CAMERA_YUV422,
|
||||
};
|
||||
|
||||
// Image resolutiom
|
||||
enum CellCameraResolution
|
||||
{
|
||||
CELL_CAMERA_RESOLUTION_UNKNOWN,
|
||||
CELL_CAMERA_VGA,
|
||||
CELL_CAMERA_QVGA,
|
||||
CELL_CAMERA_WGA,
|
||||
CELL_CAMERA_SPECIFIED_WIDTH_HEIGHT,
|
||||
};
|
||||
|
||||
struct CellCameraInfoEx
|
||||
{
|
||||
CellCameraFormat format;
|
||||
CellCameraResolution resolution;
|
||||
be_t<s32> framerate;
|
||||
be_t<u32> buffer;
|
||||
be_t<s32> bytesize;
|
||||
be_t<s32> width;
|
||||
be_t<s32> height;
|
||||
be_t<s32> dev_num;
|
||||
be_t<s32> guid;
|
||||
be_t<s32> info_ver;
|
||||
be_t<u32> container;
|
||||
be_t<s32> read_mode;
|
||||
be_t<u32> pbuf[2];
|
||||
};
|
||||
|
||||
struct CellCameraReadEx
|
||||
{
|
||||
be_t<s32> version;
|
||||
be_t<u32> frame;
|
||||
be_t<u32> bytesread;
|
||||
//system_time_t timestamp; // TODO: Replace this with something
|
||||
be_t<u32> pbuf;
|
||||
};
|
@ -1,4 +1,5 @@
|
||||
#include "stdafx.h"
|
||||
#include "Emu/Memory/Memory.h"
|
||||
#include "Emu/SysCalls/Modules.h"
|
||||
|
||||
#include "cellGem.h"
|
||||
@ -7,6 +8,18 @@ void cellGem_init();
|
||||
//Module cellGem(0x005a, cellGem_init);
|
||||
Module *cellGem = nullptr;
|
||||
|
||||
struct cellGemInternal
|
||||
{
|
||||
bool m_bInitialized;
|
||||
|
||||
cellGemInternal()
|
||||
: m_bInitialized(false)
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
cellGemInternal cellGemInstance;
|
||||
|
||||
int cellGemCalibrate()
|
||||
{
|
||||
UNIMPLEMENTED_FUNC(cellGem);
|
||||
@ -117,8 +130,7 @@ s32 cellGemGetMemorySize(be_t<s32> max_connect)
|
||||
if (max_connect > CELL_GEM_MAX_NUM)
|
||||
return CELL_GEM_ERROR_INVALID_PARAMETER;
|
||||
|
||||
// Return in kilobytes, megabytes or something else? (currently kilobytes)
|
||||
return max_connect * 4000;
|
||||
return 1024 * 1024 * max_connect; // 1 MB * max_connect
|
||||
}
|
||||
|
||||
int cellGemGetRGB()
|
||||
@ -157,9 +169,15 @@ int cellGemHSVtoRGB()
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
int cellGemInit()
|
||||
int cellGemInit(vm::ptr<CellGemAttribute> attribute)
|
||||
{
|
||||
UNIMPLEMENTED_FUNC(cellGem);
|
||||
cellGem->Warning("cellGemInit(attribute_addr=0x%x)", attribute.addr());
|
||||
|
||||
if (cellGemInstance.m_bInitialized)
|
||||
return CELL_GEM_ERROR_ALREADY_INITIALIZED;
|
||||
|
||||
cellGemInstance.m_bInitialized = true;
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -1,8 +1,9 @@
|
||||
#include "stdafx.h"
|
||||
#if 0
|
||||
#include "Emu/SysCalls/Modules.h"
|
||||
|
||||
void cellOvis_init();
|
||||
Module cellOvis(0x000b, cellOvis_init);
|
||||
//Module cellOvis(0x000b, cellOvis_init);
|
||||
Module *cellOvis = nullptr;
|
||||
|
||||
// Return Codes
|
||||
enum
|
||||
@ -38,9 +39,8 @@ int cellOvisInvalidateOverlappedSegments()
|
||||
|
||||
void cellOvis_init()
|
||||
{
|
||||
cellOvis.AddFunc(0x82f294b2, cellOvisGetOverlayTableSize);
|
||||
cellOvis.AddFunc(0xa876c911, cellOvisInitializeOverlayTable);
|
||||
cellOvis.AddFunc(0xce6cb776, cellOvisFixSpuSegments);
|
||||
cellOvis.AddFunc(0x629ba0c0, cellOvisInvalidateOverlappedSegments);
|
||||
cellOvis->AddFunc(0x82f294b2, cellOvisGetOverlayTableSize);
|
||||
cellOvis->AddFunc(0xa876c911, cellOvisInitializeOverlayTable);
|
||||
cellOvis->AddFunc(0xce6cb776, cellOvisFixSpuSegments);
|
||||
cellOvis->AddFunc(0x629ba0c0, cellOvisInvalidateOverlappedSegments);
|
||||
}
|
||||
#endif
|
||||
|
@ -480,6 +480,7 @@ void SetupRsxRenderingStates(vm::ptr<CellGcmContextData>& cntxt)
|
||||
r.m_set_poly_offset_fill = false;
|
||||
r.m_set_stencil_test = false;
|
||||
r.m_set_two_sided_stencil_test_enable = false;
|
||||
r.m_set_two_side_light_enable = false;
|
||||
r.m_set_point_sprite_control = false;
|
||||
r.m_set_dither = true;
|
||||
r.m_set_shade_mode = true; r.m_shade_mode = CELL_GCM_SMOOTH;
|
||||
|
@ -750,9 +750,11 @@ int cellHddGameCheck(u32 version, vm::ptr<const char> dirName, u32 errDialog, vm
|
||||
// TODO ?
|
||||
|
||||
funcStat(result, get, set);
|
||||
if (result->result != CELL_HDDGAME_CBRESULT_OK &&
|
||||
result->result != CELL_HDDGAME_CBRESULT_OK_CANCEL)
|
||||
|
||||
if (result->result.ToLE() != CELL_HDDGAME_CBRESULT_OK &&
|
||||
result->result.ToLE() != CELL_HDDGAME_CBRESULT_OK_CANCEL) {
|
||||
return CELL_HDDGAME_ERROR_CBRESULT;
|
||||
}
|
||||
|
||||
// TODO ?
|
||||
|
||||
@ -832,7 +834,7 @@ int cellWebBrowserEstimate2(const vm::ptr<const CellWebBrowserConfig2> config, v
|
||||
|
||||
// TODO: When cellWebBrowser stuff is implemented, change this to some real
|
||||
// needed memory buffer size.
|
||||
*memSize = 1024 * 1024 * 1; // 1 MB
|
||||
*memSize = 1 * 1024 * 1024; // 1 MB
|
||||
return CELL_OK;
|
||||
}
|
||||
|
||||
|
@ -174,7 +174,7 @@ u32 vdecQueryAttr(CellVdecCodecType type, u32 profile, u32 spec_addr /* may be 0
|
||||
// TODO: check values
|
||||
attr->decoderVerLower = 0x280000; // from dmux
|
||||
attr->decoderVerUpper = 0x260000;
|
||||
attr->memSize = 4 * 1024 * 1024;
|
||||
attr->memSize = 4 * 1024 * 1024; // 4 MB
|
||||
attr->cmdDepth = 16;
|
||||
return CELL_OK;
|
||||
}
|
||||
|
@ -21,7 +21,7 @@ int cellVpostQueryAttr(vm::ptr<const CellVpostCfgParam> cfgParam, vm::ptr<CellVp
|
||||
// TODO: check cfgParam and output values
|
||||
|
||||
attr->delay = 0;
|
||||
attr->memSize = 4 * 1024 * 1024;
|
||||
attr->memSize = 4 * 1024 * 1024; // 4 MB
|
||||
attr->vpostVerLower = 0x280000; // from dmux
|
||||
attr->vpostVerUpper = 0x260000;
|
||||
|
||||
|
@ -1128,7 +1128,7 @@ struct SceNpMatching2InvitationData
|
||||
struct SceNpMatching2SignalingOptParam
|
||||
{
|
||||
u8 type;
|
||||
//u8 reserved1[1];
|
||||
u8 reserved1[1];
|
||||
be_t<u16> hubMemberId;
|
||||
//u8 reserved2[4];
|
||||
};
|
||||
@ -1741,7 +1741,7 @@ struct SceNpMatching2SignalingOptParamUpdateInfo
|
||||
// Matching2 utility intilization parameters
|
||||
struct SceNpMatching2UtilityInitParam
|
||||
{
|
||||
//sys_memory_container_t containerId; //TODO: Uncomment this once sys_memory_container_t is implemented
|
||||
be_t<u32> containerId;
|
||||
be_t<u32> requestCbQueueLen;
|
||||
be_t<u32> sessionEventCbQueueLen;;
|
||||
be_t<u32> sessionMsgCbQueueLen;;
|
||||
@ -1796,7 +1796,7 @@ struct SceNpScoreRankData
|
||||
be_t<u32> highestRank;
|
||||
be_t<s64> scoreValue;
|
||||
be_t<s32> hasGameData;
|
||||
//u8 pad0[4];
|
||||
u8 pad0[4];
|
||||
CellRtcTick recordDate;
|
||||
};
|
||||
|
||||
@ -1804,7 +1804,7 @@ struct SceNpScoreRankData
|
||||
struct SceNpScorePlayerRankData
|
||||
{
|
||||
be_t<s32> hasData;
|
||||
//u8 pad0[4];
|
||||
u8 pad0[4];
|
||||
SceNpScoreRankData rankData;
|
||||
};
|
||||
|
||||
@ -1864,7 +1864,7 @@ struct SceNpScoreClanRankData
|
||||
struct SceNpScoreClanIdRankData
|
||||
{
|
||||
be_t<s32> hasData;
|
||||
//u8 pad0[4];
|
||||
u8 pad0[4];
|
||||
SceNpScoreClanRankData rankData;
|
||||
};
|
||||
|
||||
|
@ -534,7 +534,7 @@ s32 cellFsGetFreeSize(vm::ptr<const char> path, vm::ptr<be_t<u32>> block_size, v
|
||||
|
||||
// TODO: Get real values. Currently, it always returns 40 GB of free space divided in 4 KB blocks
|
||||
*block_size = 4096; // ?
|
||||
*block_count = 10485760; // ?
|
||||
*block_count = 10 * 1024 * 1024; // ?
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
@ -589,9 +589,13 @@ s32 cellFsStReadInit(u32 fd, vm::ptr<CellFsRingBuffer> ringbuf)
|
||||
|
||||
fs_config.m_ring_buffer = *ringbuf;
|
||||
|
||||
if(ringbuf->ringbuf_size < 0x40000000) // If the size is less than 1MB
|
||||
// If the size is less than 1MB
|
||||
if(ringbuf->ringbuf_size < 0x40000000) {
|
||||
fs_config.m_alloc_mem_size = (((u32)ringbuf->ringbuf_size + 64 * 1024 - 1) / (64 * 1024)) * (64 * 1024);
|
||||
fs_config.m_alloc_mem_size = (((u32)ringbuf->ringbuf_size + 1024 * 1024 - 1) / (1024 * 1024)) * (1024 * 1024);
|
||||
}
|
||||
else {
|
||||
fs_config.m_alloc_mem_size = (((u32)ringbuf->ringbuf_size + 1024 * 1024 - 1) / (1024 * 1024)) * (1024 * 1024);
|
||||
}
|
||||
|
||||
// alloc memory
|
||||
fs_config.m_buffer = (u32)Memory.Alloc(fs_config.m_alloc_mem_size, 1024);
|
||||
@ -692,15 +696,20 @@ s32 cellFsStReadStop(u32 fd)
|
||||
|
||||
s32 cellFsStRead(u32 fd, u32 buf_addr, u64 size, vm::ptr<be_t<u64>> rsize)
|
||||
{
|
||||
sys_fs->Todo("cellFsStRead(fd=%d, buf_addr=0x%x, size=0x%llx, rsize_addr = 0x%x)", fd, buf_addr, size, rsize.addr());
|
||||
sys_fs->Warning("cellFsStRead(fd=%d, buf_addr=0x%x, size=0x%llx, rsize_addr=0x%x)", fd, buf_addr, size, rsize.addr());
|
||||
|
||||
LV2_LOCK(0);
|
||||
|
||||
vfsStream* file;
|
||||
if(!sys_fs->CheckId(fd, file)) return CELL_ESRCH;
|
||||
|
||||
// TODO: use ringbuffer (fs_config)
|
||||
fs_config.m_regid += size;
|
||||
*rsize = fs_config.m_regid;
|
||||
|
||||
if (file->Eof())
|
||||
return CELL_FS_ERANGE;
|
||||
|
||||
*rsize = file->Read(vm::get_ptr<void>(buf_addr), size);
|
||||
|
||||
return CELL_OK;
|
||||
}
|
||||
|
@ -70,6 +70,10 @@ enum cellFsStStatus
|
||||
CELL_FS_ST_PROGRESS = 0x0200,
|
||||
};
|
||||
|
||||
enum cellFsErrors
|
||||
{
|
||||
CELL_FS_ERANGE = 34
|
||||
};
|
||||
|
||||
#pragma pack(push, 4)
|
||||
|
||||
|
@ -11,10 +11,10 @@
|
||||
wxDEFINE_EVENT(EVT_LOG_COMMAND, wxCommandEvent);
|
||||
|
||||
//amount of memory in bytes used to buffer log messages for the gui
|
||||
const int BUFFER_MAX_SIZE = 1024 * 1024;
|
||||
const int BUFFER_MAX_SIZE = 1048576; // 1MB
|
||||
|
||||
//amount of characters in the TextCtrl text-buffer for the emulation log
|
||||
const int GUI_BUFFER_MAX_SIZE = 1024 * 1024;
|
||||
const int GUI_BUFFER_MAX_SIZE = 1048576; // 1MB
|
||||
|
||||
enum
|
||||
{
|
||||
|
@ -5,6 +5,8 @@
|
||||
|
||||
#include "Emu/IdManager.h"
|
||||
#include "KernelExplorer.h"
|
||||
#include "Emu/CPU/CPUThreadManager.h"
|
||||
#include "Emu/CPU/CPUThread.h"
|
||||
|
||||
KernelExplorer::KernelExplorer(wxWindow* parent)
|
||||
: wxFrame(parent, wxID_ANY, "Kernel Explorer", wxDefaultPosition, wxSize(700, 450))
|
||||
@ -46,17 +48,17 @@ void KernelExplorer::Update()
|
||||
m_tree->DeleteAllItems();
|
||||
const auto& root = m_tree->AddRoot("Process, ID = 0x00000001, Total Memory Usage = 0x???????? (???.? MB)");
|
||||
|
||||
// TODO: PPU Threads
|
||||
// TODO: SPU/RawSPU Threads
|
||||
// TODO: FileSystem
|
||||
|
||||
// Semaphores
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_SEMAPHORE);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Semaphores (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_SEMAPHORE);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "Semaphore: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -64,11 +66,13 @@ void KernelExplorer::Update()
|
||||
|
||||
// Mutexes
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_MUTEX);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Mutexes (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_MUTEX);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "Mutex: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -76,11 +80,13 @@ void KernelExplorer::Update()
|
||||
|
||||
// Light Weight Mutexes
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_LWMUTEX);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Light Weight Mutexes (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_LWMUTEX);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "LW Mutex: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -88,11 +94,13 @@ void KernelExplorer::Update()
|
||||
|
||||
// Condition Variables
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_COND);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Condition Variables (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_COND);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "Condition Variable: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -100,11 +108,13 @@ void KernelExplorer::Update()
|
||||
|
||||
// Light Weight Condition Variables
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_LWCOND);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Light Weight Condition Variables (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_LWCOND);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "LW Condition Variable: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -112,11 +122,13 @@ void KernelExplorer::Update()
|
||||
|
||||
// Event Queues
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_EVENT_QUEUE);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Event Queues (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_EVENT_QUEUE);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "Event Queue: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -124,13 +136,15 @@ void KernelExplorer::Update()
|
||||
|
||||
// Modules
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_PRX);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Modules (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_PRX);
|
||||
sprintf(name, "Segment List (%d)", 2 * objects.size()); // TODO: Assuming 2 segments per PRX file is not good
|
||||
m_tree->AppendItem(node, name);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "PRX: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
@ -138,27 +152,98 @@ void KernelExplorer::Update()
|
||||
|
||||
// Memory Containers
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_MEM);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Memory Containers (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_MEM);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "Memory Container: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
}
|
||||
// Event Flags
|
||||
count = Emu.GetIdManager().GetTypeCount(TYPE_EVENT_FLAG);
|
||||
if (count) {
|
||||
if (count)
|
||||
{
|
||||
sprintf(name, "Event Flags (%d)", count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
const auto& objects = Emu.GetIdManager().GetTypeIDs(TYPE_EVENT_FLAG);
|
||||
for (const auto& id : objects) {
|
||||
for (const auto& id : objects)
|
||||
{
|
||||
sprintf(name, "Event Flag: ID = 0x%08x", id);
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
}
|
||||
|
||||
// PPU / SPU / RawSPU threads
|
||||
{
|
||||
// TODO: add mutexes owners
|
||||
|
||||
const auto& objects = Emu.GetCPU().GetThreads();
|
||||
u32 ppu_threads_count = 0;
|
||||
u32 spu_threads_count = 0;
|
||||
u32 raw_spu_threads_count = 0;
|
||||
for (const auto& thread : objects)
|
||||
{
|
||||
if (thread->GetType() == CPU_THREAD_PPU)
|
||||
ppu_threads_count++;
|
||||
|
||||
if (thread->GetType() == CPU_THREAD_SPU)
|
||||
spu_threads_count++;
|
||||
|
||||
if (thread->GetType() == CPU_THREAD_RAW_SPU)
|
||||
raw_spu_threads_count++;
|
||||
}
|
||||
|
||||
if (ppu_threads_count)
|
||||
{
|
||||
sprintf(name, "PPU Threads (%d)", ppu_threads_count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
|
||||
for (const auto& thread : objects)
|
||||
{
|
||||
if (thread->GetType() == CPU_THREAD_PPU)
|
||||
{
|
||||
sprintf(name, "Thread: ID = 0x%08x ''%s'', - %s", thread->GetId(), thread->GetName().c_str(), thread->ThreadStatusToString().c_str());
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (spu_threads_count)
|
||||
{
|
||||
sprintf(name, "SPU Threads (%d)", spu_threads_count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
|
||||
for (const auto& thread : objects)
|
||||
{
|
||||
if (thread->GetType() == CPU_THREAD_SPU)
|
||||
{
|
||||
sprintf(name, "Thread: ID = 0x%08x ''%s'', - %s", thread->GetId(), thread->GetName().c_str(), thread->ThreadStatusToString().c_str());
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (raw_spu_threads_count)
|
||||
{
|
||||
sprintf(name, "RawSPU Threads (%d)", raw_spu_threads_count);
|
||||
const auto& node = m_tree->AppendItem(root, name);
|
||||
|
||||
for (const auto& thread : objects)
|
||||
{
|
||||
if (thread->GetType() == CPU_THREAD_RAW_SPU)
|
||||
{
|
||||
sprintf(name, "Thread: ID = 0x%08x ''%s'', - %s", thread->GetId(), thread->GetName().c_str(), thread->ThreadStatusToString().c_str());
|
||||
m_tree->AppendItem(node, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
m_tree->Expand(root);
|
||||
}
|
||||
|
||||
|
@ -332,8 +332,8 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
}
|
||||
|
||||
wxDialog diag(this, wxID_ANY, "Settings", wxDefaultPosition);
|
||||
static const u32 width = 425;
|
||||
static const u32 height = 400;
|
||||
static const u32 width = 385;
|
||||
|
||||
// Settings panels
|
||||
wxNotebook* nb_config = new wxNotebook(&diag, wxID_ANY, wxPoint(6,6), wxSize(width, height));
|
||||
@ -341,12 +341,14 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
wxPanel* p_cpu = new wxPanel(nb_config, wxID_ANY);
|
||||
wxPanel* p_graphics = new wxPanel(nb_config, wxID_ANY);
|
||||
wxPanel* p_audio = new wxPanel(nb_config, wxID_ANY);
|
||||
wxPanel* p_camera = new wxPanel(nb_config, wxID_ANY);
|
||||
wxPanel* p_io = new wxPanel(nb_config, wxID_ANY);
|
||||
wxPanel* p_hle = new wxPanel(nb_config, wxID_ANY);
|
||||
|
||||
nb_config->AddPage(p_cpu, wxT("Core"));
|
||||
nb_config->AddPage(p_graphics, wxT("Graphics"));
|
||||
nb_config->AddPage(p_audio, wxT("Audio"));
|
||||
nb_config->AddPage(p_camera, wxT("Camera"));
|
||||
nb_config->AddPage(p_io, wxT("Input / Output"));
|
||||
nb_config->AddPage(p_hle, wxT("HLE / Misc."));
|
||||
nb_config->AddPage(p_system, wxT("System"));
|
||||
@ -355,6 +357,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
wxBoxSizer* s_subpanel_cpu = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer* s_subpanel_graphics = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer* s_subpanel_audio = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer* s_subpanel_camera = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer* s_subpanel_io = new wxBoxSizer(wxVERTICAL);
|
||||
wxBoxSizer* s_subpanel_hle = new wxBoxSizer(wxVERTICAL);
|
||||
|
||||
@ -375,6 +378,9 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
// Audio
|
||||
wxStaticBoxSizer* s_round_audio_out = new wxStaticBoxSizer(wxVERTICAL, p_audio, _("Audio Out"));
|
||||
|
||||
// Camera
|
||||
wxStaticBoxSizer* s_round_camera_type = new wxStaticBoxSizer(wxVERTICAL, p_camera, _("Camera type"));
|
||||
|
||||
// HLE / Misc.
|
||||
wxStaticBoxSizer* s_round_hle_log_lvl = new wxStaticBoxSizer(wxVERTICAL, p_hle, _("Log Level"));
|
||||
|
||||
@ -390,6 +396,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
wxComboBox* cbox_keyboard_handler = new wxComboBox(p_io, wxID_ANY);
|
||||
wxComboBox* cbox_mouse_handler = new wxComboBox(p_io, wxID_ANY);
|
||||
wxComboBox* cbox_audio_out = new wxComboBox(p_audio, wxID_ANY);
|
||||
wxComboBox* cbox_camera_type = new wxComboBox(p_camera, wxID_ANY);
|
||||
wxComboBox* cbox_hle_loglvl = new wxComboBox(p_hle, wxID_ANY);
|
||||
wxComboBox* cbox_sys_lang = new wxComboBox(p_system, wxID_ANY);
|
||||
|
||||
@ -445,6 +452,11 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
cbox_audio_out->Append("Null");
|
||||
cbox_audio_out->Append("OpenAL");
|
||||
|
||||
cbox_camera_type->Append("Unknown");
|
||||
cbox_camera_type->Append("EyeToy");
|
||||
cbox_camera_type->Append("PlayStation Eye");
|
||||
cbox_camera_type->Append("USB Video Class 1.1");
|
||||
|
||||
cbox_hle_loglvl->Append("All");
|
||||
cbox_hle_loglvl->Append("Success");
|
||||
cbox_hle_loglvl->Append("Warnings");
|
||||
@ -496,6 +508,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
cbox_keyboard_handler->SetSelection(Ini.KeyboardHandlerMode.GetValue());
|
||||
cbox_mouse_handler ->SetSelection(Ini.MouseHandlerMode.GetValue());
|
||||
cbox_audio_out ->SetSelection(Ini.AudioOutMode.GetValue());
|
||||
cbox_camera_type ->SetSelection(Ini.CameraType.GetValue());
|
||||
cbox_hle_loglvl ->SetSelection(Ini.HLELogLvl.GetValue());
|
||||
cbox_sys_lang ->SetSelection(Ini.SysLanguage.GetValue());
|
||||
|
||||
@ -518,6 +531,8 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
|
||||
s_round_audio_out->Add(cbox_audio_out, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
s_round_camera_type->Add(cbox_camera_type, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
s_round_hle_log_lvl->Add(cbox_hle_loglvl, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
s_round_sys_lang->Add(cbox_sys_lang, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
@ -545,6 +560,9 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
s_subpanel_audio->Add(chbox_audio_dump, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
s_subpanel_audio->Add(chbox_audio_conv, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
// Camera
|
||||
s_subpanel_camera->Add(s_round_camera_type, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
|
||||
// HLE / Misc.
|
||||
s_subpanel_hle->Add(s_round_hle_log_lvl, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
s_subpanel_hle->Add(chbox_hle_logging, wxSizerFlags().Border(wxALL, 5).Expand());
|
||||
@ -570,6 +588,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
diag.SetSizerAndFit(s_subpanel_graphics, false);
|
||||
diag.SetSizerAndFit(s_subpanel_io, false);
|
||||
diag.SetSizerAndFit(s_subpanel_audio, false);
|
||||
diag.SetSizerAndFit(s_subpanel_camera, false);
|
||||
diag.SetSizerAndFit(s_subpanel_hle, false);
|
||||
diag.SetSizerAndFit(s_subpanel_system, false);
|
||||
diag.SetSizerAndFit(s_b_panel, false);
|
||||
@ -593,6 +612,7 @@ void MainFrame::Config(wxCommandEvent& WXUNUSED(event))
|
||||
Ini.AudioOutMode.SetValue(cbox_audio_out->GetSelection());
|
||||
Ini.AudioDumpToFile.SetValue(chbox_audio_dump->GetValue());
|
||||
Ini.AudioConvertToU16.SetValue(chbox_audio_conv->GetValue());
|
||||
Ini.CameraType.SetValue(cbox_camera_type->GetSelection());
|
||||
Ini.HLELogging.SetValue(chbox_hle_logging->GetValue());
|
||||
Ini.HLEHookStFunc.SetValue(chbox_hle_hook_stfunc->GetValue());
|
||||
Ini.HLESaveTTY.SetValue(chbox_hle_savetty->GetValue());
|
||||
|
12
rpcs3/Ini.h
12
rpcs3/Ini.h
@ -114,6 +114,9 @@ public:
|
||||
IniEntry<bool> AudioDumpToFile;
|
||||
IniEntry<bool> AudioConvertToU16;
|
||||
|
||||
// Camera
|
||||
IniEntry<u8> CameraType;
|
||||
|
||||
// Input/Output
|
||||
IniEntry<u8> PadHandlerMode;
|
||||
IniEntry<u8> KeyboardHandlerMode;
|
||||
@ -183,6 +186,9 @@ public:
|
||||
AudioDumpToFile.Init("Audio_AudioDumpToFile", path);
|
||||
AudioConvertToU16.Init("Audio_AudioConvertToU16", path);
|
||||
|
||||
// Camera
|
||||
CameraType.Init("Camera_Type", path);
|
||||
|
||||
// Input/Output
|
||||
PadHandlerMode.Init("IO_PadHandlerMode", path);
|
||||
KeyboardHandlerMode.Init("IO_KeyboardHandlerMode", path);
|
||||
@ -248,6 +254,9 @@ public:
|
||||
AudioDumpToFile.Load(false);
|
||||
AudioConvertToU16.Load(false);
|
||||
|
||||
// Camera
|
||||
CameraType.Load(2);
|
||||
|
||||
// Input/Ouput
|
||||
PadHandlerMode.Load(1);
|
||||
KeyboardHandlerMode.Load(0);
|
||||
@ -314,6 +323,9 @@ public:
|
||||
AudioDumpToFile.Save();
|
||||
AudioConvertToU16.Save();
|
||||
|
||||
// Camera
|
||||
CameraType.Save();
|
||||
|
||||
// Input/Output
|
||||
PadHandlerMode.Save();
|
||||
KeyboardHandlerMode.Save();
|
||||
|
@ -364,6 +364,7 @@
|
||||
<ClInclude Include="Emu\SysCalls\Modules.h" />
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellAdec.h" />
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellAtrac.h" />
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellCamera.h" />
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellDmux.h" />
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFiber.h" />
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFont.h" />
|
||||
|
@ -131,9 +131,15 @@
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellAudio.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellCamera.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellDmux.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellFiber.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellFont.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
@ -152,12 +158,24 @@
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellJpgDec.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellKb.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellL10n.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellMouse.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellNetCtl.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellOvis.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellPad.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellPamf.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
@ -173,12 +191,21 @@
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellRtc.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSaveData.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSpurs.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSpursJq.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSync.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSync2.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSysmodule.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
@ -365,9 +392,6 @@
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellBgdl.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellCamera.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellCelp8Enc.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
@ -401,9 +425,6 @@
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellMusicExport.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellOvis.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellPhotoDecode.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
@ -422,9 +443,6 @@
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellRudp.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSail.cpp">
|
||||
<Filter>Emu\Cell\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSailRec.cpp">
|
||||
<Filter>Emu\SysCalls\currently_unused</Filter>
|
||||
</ClCompile>
|
||||
@ -584,15 +602,6 @@
|
||||
<ClCompile Include="Ini.cpp">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSync2.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSpursJq.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellFiber.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\Utilities\rFile.cpp">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClCompile>
|
||||
@ -611,18 +620,6 @@
|
||||
<ClCompile Include="Emu\Memory\vm.cpp">
|
||||
<Filter>Emu\Memory</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellMouse.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellKb.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellPad.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Emu\SysCalls\Modules\cellSaveData.cpp">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="Crypto\aes.h">
|
||||
@ -676,12 +673,27 @@
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellAtrac.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellCamera.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellDmux.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFiber.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFont.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFontFT.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellGame.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellGcmSys.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellGem.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
@ -691,27 +703,54 @@
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellJpgDec.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellKb.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellL10n.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellMouse.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellMsgDialog.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellNetCtl.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellPad.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellPamf.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellPngDec.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSail.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellResc.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellRtc.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSail.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSaveData.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSpurs.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSpursJq.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSync.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSync2.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSysutil.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
@ -745,6 +784,9 @@
|
||||
<ClInclude Include="Emu\SysCalls\Modules\sceNpTus.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\sysPrxForUser.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\sys_net.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
@ -1048,24 +1090,9 @@
|
||||
<ClInclude Include="..\Utilities\Log.h">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellGame.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellMsgDialog.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSync.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\LogBase.h">
|
||||
<Filter>Emu\SysCalls</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellGcmSys.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\sysPrxForUser.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\RSX\Null\NullGSRender.h">
|
||||
<Filter>Emu\RSX\Null</Filter>
|
||||
</ClInclude>
|
||||
@ -1126,15 +1153,9 @@
|
||||
<ClInclude Include="..\Utilities\AutoPause.h">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellL10n.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\IdManager.h">
|
||||
<Filter>Emu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFontFT.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Ini.h">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClInclude>
|
||||
@ -1147,15 +1168,6 @@
|
||||
<ClInclude Include="Emu\Io\Null\NullMouseHandler.h">
|
||||
<Filter>Emu\Io\Null</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSync2.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSpursJq.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellFiber.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\Utilities\MTRingbuffer.h">
|
||||
<Filter>Utilities</Filter>
|
||||
</ClInclude>
|
||||
@ -1192,18 +1204,6 @@
|
||||
<ClInclude Include="Emu\Memory\vm_var.h">
|
||||
<Filter>Emu\Memory</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellPad.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellKb.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellMouse.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Emu\SysCalls\Modules\cellSaveData.h">
|
||||
<Filter>Emu\SysCalls\Modules</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="restore_new.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
|
@ -152,11 +152,7 @@ void Rpcs3App::OnArguments()
|
||||
// rpcs3-*.exe Initializes RPCS3
|
||||
// rpcs3-*.exe [(S)ELF] Initializes RPCS3, then loads and runs the specified (S)ELF file.
|
||||
|
||||
if (Rpcs3App::argc > 1)
|
||||
{
|
||||
// Force this value to be true
|
||||
Ini.HLEExitOnStop.SetValue(true);
|
||||
|
||||
if (Rpcs3App::argc > 1) {
|
||||
Emu.SetPath(fmt::ToUTF8(argv[1]));
|
||||
Emu.Load();
|
||||
Emu.Run();
|
||||
|
Loading…
x
Reference in New Issue
Block a user