diff --git a/engine/inc/irx/irx_loader.hpp b/engine/inc/irx/irx_loader.hpp index a9aa19f..168797e 100644 --- a/engine/inc/irx/irx_loader.hpp +++ b/engine/inc/irx/irx_loader.hpp @@ -27,6 +27,7 @@ class IrxLoader { void loadSio2man(const bool& verbose); void loadPadman(const bool& verbose); void loadLibsd(const bool& verbose); + void loadIO(const bool& verbose); void loadUsbModules(const bool& verbose); void loadAudsrv(const bool& verbose); diff --git a/engine/src/irx/fileXio.irx-em b/engine/src/irx/fileXio.irx-em new file mode 100644 index 0000000..fbdfe29 --- /dev/null +++ b/engine/src/irx/fileXio.irx-em @@ -0,0 +1,2 @@ +$PS2SDK/iop/irx/fileXio.irx +fileXio_irx diff --git a/engine/src/irx/iomanX.irx-em b/engine/src/irx/iomanX.irx-em new file mode 100644 index 0000000..d83e4fc --- /dev/null +++ b/engine/src/irx/iomanX.irx-em @@ -0,0 +1,2 @@ +$PS2SDK/iop/irx/iomanX.irx +iomanX_irx diff --git a/engine/src/irx/irx_loader.cpp b/engine/src/irx/irx_loader.cpp index a60bef2..ec7f77d 100644 --- a/engine/src/irx/irx_loader.cpp +++ b/engine/src/irx/irx_loader.cpp @@ -28,6 +28,8 @@ EXTERN_IRX(sio2man_irx); EXTERN_IRX(padman_irx); EXTERN_IRX(audsrv_irx); EXTERN_IRX(libsd_irx); +EXTERN_IRX(fileXio_irx); +EXTERN_IRX(iomanX_irx); EXTERN_IRX(bdm_irx); EXTERN_IRX(bdmfs_fatfs_irx); EXTERN_IRX(usbd_irx); @@ -58,6 +60,7 @@ void IrxLoader::loadAll(const bool& withUsb, const bool& isLoggingToFile) { return; } + loadIO(!isLoggingToFile); loadSio2man(!isLoggingToFile); loadPadman(!isLoggingToFile); loadLibsd(!isLoggingToFile); @@ -104,6 +107,24 @@ void IrxLoader::loadLibsd(const bool& verbose) { if (verbose) TYRA_LOG("IRX: Libsd loaded!"); } +void IrxLoader::loadIO(const bool& verbose) { + int ret; + if (verbose) TYRA_LOG("IRX: Loading iomanX..."); + + SifExecModuleBuffer(&iomanX_irx, size_iomanX_irx, 0, nullptr, &ret); + TYRA_ASSERT(ret >= 0, "Failed to load module: iomanX_irx"); + + if (verbose) TYRA_LOG("IRX: iomanX loaded!"); + + if (verbose) TYRA_LOG("IRX: Loading fileXio..."); + + SifExecModuleBuffer(&fileXio_irx, size_fileXio_irx, 0, nullptr, &ret); + TYRA_ASSERT(ret >= 0, "Failed to load module: fileXio_irx"); + + if (verbose) TYRA_LOG("IRX: fileXio_irx loaded!"); + +} + void IrxLoader::loadUsbModules(const bool& verbose) { if (verbose) TYRA_LOG("IRX: Loading usb modules...");