diff --git a/rpcs3/Emu/SysCalls/ModuleManager.cpp b/rpcs3/Emu/SysCalls/ModuleManager.cpp index 1bcb6e7466..d60f5ec399 100644 --- a/rpcs3/Emu/SysCalls/ModuleManager.cpp +++ b/rpcs3/Emu/SysCalls/ModuleManager.cpp @@ -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(); @@ -225,6 +229,8 @@ void ModuleManager::init() m_mod_init.emplace_back(0x0013, cellAtrac_init); cellAudio = static_cast (&(m_mod_init.back())) + 1; m_mod_init.emplace_back(0x0011, cellAudio_init); + cellCamera = static_cast (&(m_mod_init.back())) + 1; + m_mod_init.emplace_back(0x0023, cellCamera_init); cellDmux = static_cast (&(m_mod_init.back())) + 1; m_mod_init.emplace_back(0x0007, cellDmux_init); cellFiber = static_cast (&(m_mod_init.back())) + 1; @@ -247,6 +253,8 @@ void ModuleManager::init() m_mod_init.emplace_back(0x001e, cellL10n_init); cellNetCtl = static_cast (&(m_mod_init.back())) + 1; m_mod_init.emplace_back(0x0014, cellNetCtl_init); + cellOvis = static_cast (&(m_mod_init.back())) + 1; + m_mod_init.emplace_back(0x000b, cellOvis_init); cellPamf = static_cast (&(m_mod_init.back())) + 1; m_mod_init.emplace_back(0x0012, cellPamf_init); cellPngDec = static_cast (&(m_mod_init.back())) + 1; diff --git a/rpcs3/Emu/SysCalls/Modules/cellCamera.cpp b/rpcs3/Emu/SysCalls/Modules/cellCamera.cpp index c2237352bf..4b69b5aa72 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellCamera.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellCamera.cpp @@ -1,8 +1,11 @@ #include "stdafx.h" -#if 0 +#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 @@ -204,39 +207,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 diff --git a/rpcs3/Emu/SysCalls/Modules/cellCamera.h b/rpcs3/Emu/SysCalls/Modules/cellCamera.h new file mode 100644 index 0000000000..165aaf5c97 --- /dev/null +++ b/rpcs3/Emu/SysCalls/Modules/cellCamera.h @@ -0,0 +1,60 @@ +#pragma once + +// 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 framerate; + be_t buffer; + be_t bytesize; + be_t width; + be_t height; + be_t dev_num; + be_t guid; + be_t info_ver; + be_t container; + be_t read_mode; + be_t pbuf[2]; +}; + +struct CellCameraReadEx +{ + be_t version; + be_t frame; + be_t bytesread; + //system_time_t timestamp; // TODO: Replace this with something + be_t pbuf; +}; \ No newline at end of file diff --git a/rpcs3/Emu/SysCalls/Modules/cellGem.cpp b/rpcs3/Emu/SysCalls/Modules/cellGem.cpp index 96ebff239e..055ac56dd8 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellGem.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellGem.cpp @@ -117,8 +117,7 @@ s32 cellGemGetMemorySize(be_t 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; // 1MB * max_connect } int cellGemGetRGB() diff --git a/rpcs3/Emu/SysCalls/Modules/cellOvis.cpp b/rpcs3/Emu/SysCalls/Modules/cellOvis.cpp index f580c41608..46f6ea8a78 100644 --- a/rpcs3/Emu/SysCalls/Modules/cellOvis.cpp +++ b/rpcs3/Emu/SysCalls/Modules/cellOvis.cpp @@ -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 diff --git a/rpcs3/Emu/SysCalls/Modules/sceNp.h b/rpcs3/Emu/SysCalls/Modules/sceNp.h index 0ac739cab0..f31bd6d25d 100644 --- a/rpcs3/Emu/SysCalls/Modules/sceNp.h +++ b/rpcs3/Emu/SysCalls/Modules/sceNp.h @@ -1128,7 +1128,7 @@ struct SceNpMatching2InvitationData struct SceNpMatching2SignalingOptParam { u8 type; - //u8 reserved1[1]; + u8 reserved1[1]; be_t 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 containerId; be_t requestCbQueueLen; be_t sessionEventCbQueueLen;; be_t sessionMsgCbQueueLen;; @@ -1796,7 +1796,7 @@ struct SceNpScoreRankData be_t highestRank; be_t scoreValue; be_t hasGameData; - //u8 pad0[4]; + u8 pad0[4]; CellRtcTick recordDate; }; @@ -1804,7 +1804,7 @@ struct SceNpScoreRankData struct SceNpScorePlayerRankData { be_t hasData; - //u8 pad0[4]; + u8 pad0[4]; SceNpScoreRankData rankData; }; @@ -1864,7 +1864,7 @@ struct SceNpScoreClanRankData struct SceNpScoreClanIdRankData { be_t hasData; - //u8 pad0[4]; + u8 pad0[4]; SceNpScoreClanRankData rankData; }; diff --git a/rpcs3/emucore.vcxproj b/rpcs3/emucore.vcxproj index f2e3905be6..274b9f725e 100644 --- a/rpcs3/emucore.vcxproj +++ b/rpcs3/emucore.vcxproj @@ -363,6 +363,7 @@ + diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters index e0d50650bc..93d33780f4 100644 --- a/rpcs3/emucore.vcxproj.filters +++ b/rpcs3/emucore.vcxproj.filters @@ -131,9 +131,15 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules @@ -152,12 +158,24 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + Emu\SysCalls\Modules @@ -173,12 +191,21 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules @@ -365,9 +392,6 @@ Emu\SysCalls\currently_unused - - Emu\SysCalls\currently_unused - Emu\SysCalls\currently_unused @@ -401,9 +425,6 @@ Emu\SysCalls\currently_unused - - Emu\SysCalls\currently_unused - Emu\SysCalls\currently_unused @@ -422,9 +443,6 @@ Emu\SysCalls\currently_unused - - Emu\Cell\currently_unused - Emu\SysCalls\currently_unused @@ -584,15 +602,6 @@ Utilities - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - Utilities @@ -611,18 +620,6 @@ Emu\Memory - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - @@ -676,12 +673,27 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + Emu\SysCalls\Modules @@ -691,27 +703,54 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules Emu\SysCalls\Modules - - Emu\SysCalls\Modules - Emu\SysCalls\Modules Emu\SysCalls\Modules + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + Emu\SysCalls\Modules + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + + + Emu\SysCalls\Modules + Emu\SysCalls\Modules @@ -745,6 +784,9 @@ Emu\SysCalls\Modules + + Emu\SysCalls\Modules + Emu\SysCalls\Modules @@ -1048,24 +1090,9 @@ Utilities - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - Emu\SysCalls - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - Emu\RSX\Null @@ -1126,15 +1153,9 @@ Utilities - - Emu\SysCalls\Modules - Emu - - Emu\SysCalls\Modules - Utilities @@ -1147,15 +1168,6 @@ Emu\Io\Null - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - Utilities @@ -1192,18 +1204,6 @@ Emu\Memory - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - - - Emu\SysCalls\Modules - Header Files