diff --git a/rpcs3/Emu/SysCalls/ModuleManager.cpp b/rpcs3/Emu/SysCalls/ModuleManager.cpp
index c44e8d18a4..bfc9bf4017 100644
--- a/rpcs3/Emu/SysCalls/ModuleManager.cpp
+++ b/rpcs3/Emu/SysCalls/ModuleManager.cpp
@@ -43,6 +43,7 @@ extern Module cellPhotoExport;
extern Module cellPhotoImportUtil;
extern Module cellPngDec;
extern Module cellPngEnc;
+extern Module cellPrint;
extern Module cellResc;
extern Module cellRtc;
extern Module cellRudp;
@@ -199,7 +200,7 @@ const g_module_list[] =
{ 0xf023, "cellImeJpUtility", &cellImeJp },
{ 0xf028, "cellMusicUtility", &cellMusic },
{ 0xf029, "cellPhotoUtility", &cellPhotoExport },
- { 0xf02a, "cellPrint", nullptr },
+ { 0xf02a, "cellPrintUtility", &cellPrint },
{ 0xf02b, "cellPhotoImportUtil", &cellPhotoImportUtil },
{ 0xf02c, "cellMusicExportUtility", &cellMusicExport },
{ 0xf02e, "cellPhotoDecodeUtil", &cellPhotoDecode },
diff --git a/rpcs3/Emu/SysCalls/Modules/cellPrint.cpp b/rpcs3/Emu/SysCalls/Modules/cellPrint.cpp
index 291ce344ef..707cf908a5 100644
--- a/rpcs3/Emu/SysCalls/Modules/cellPrint.cpp
+++ b/rpcs3/Emu/SysCalls/Modules/cellPrint.cpp
@@ -1,8 +1,8 @@
#include "stdafx.h"
-#if 0
+#include "Emu/Memory/Memory.h"
+#include "Emu/SysCalls/Modules.h"
-void cellPrint_init();
-Module cellPrint(0xf02a, cellPrint_init);
+extern Module cellPrint;
// Error Codes
enum
@@ -17,80 +17,95 @@ enum
CELL_PRINT_ERROR_CANCELED_BY_PRINTER = 0x8002c408,
};
-int cellPrintLoadAsync()
+s32 cellSysutilPrintInit()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintLoadAsync2()
+s32 cellSysutilPrintShutdown()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintUnloadAsync()
+s32 cellPrintLoadAsync()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintGetStatus()
+s32 cellPrintLoadAsync2()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintOpenConfig()
+s32 cellPrintUnloadAsync()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintGetPrintableArea()
+s32 cellPrintGetStatus()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintStartJob()
+s32 cellPrintOpenConfig()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintEndJob()
+s32 cellPrintGetPrintableArea()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintCancelJob()
+s32 cellPrintStartJob()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintStartPage()
+s32 cellPrintEndJob()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintEndPage()
+s32 cellPrintCancelJob()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-int cellPrintSendBand()
+s32 cellPrintStartPage()
{
UNIMPLEMENTED_FUNC(cellPrint);
return CELL_OK;
}
-void cellPrint_init()
+s32 cellPrintEndPage()
{
+ UNIMPLEMENTED_FUNC(cellPrint);
+ return CELL_OK;
+}
+
+s32 cellPrintSendBand()
+{
+ UNIMPLEMENTED_FUNC(cellPrint);
+ return CELL_OK;
+}
+
+Module cellPrint("cellPrint", []()
+{
+ REG_FUNC(cellPrint, cellSysutilPrintInit);
+ REG_FUNC(cellPrint, cellSysutilPrintShutdown);
+
REG_FUNC(cellPrint, cellPrintLoadAsync);
REG_FUNC(cellPrint, cellPrintLoadAsync2);
REG_FUNC(cellPrint, cellPrintUnloadAsync);
@@ -103,5 +118,4 @@ void cellPrint_init()
REG_FUNC(cellPrint, cellPrintStartPage);
REG_FUNC(cellPrint, cellPrintEndPage);
REG_FUNC(cellPrint, cellPrintSendBand);
-}
-#endif
+});
diff --git a/rpcs3/emucore.vcxproj.filters b/rpcs3/emucore.vcxproj.filters
index 29ecba0a6d..0b7eb1a9ca 100644
--- a/rpcs3/emucore.vcxproj.filters
+++ b/rpcs3/emucore.vcxproj.filters
@@ -413,9 +413,6 @@
Emu\SysCalls
-
- Emu\SysCalls\currently_unused
-
Emu\SysCalls\currently_unused
@@ -908,6 +905,9 @@
Emu\SysCalls\Modules
+
+ Emu\SysCalls\Modules
+