Browse Source

loader/nro: Call RegisterRomFS from Load
Allows NRO homebrew to use the RomFS in the ASET section.

Zach Hilman 7 years ago
parent
commit
f2f679bf3f
1 changed files with 5 additions and 0 deletions
  1. 5 0
      src/core/loader/nro.cpp

+ 5 - 0
src/core/loader/nro.cpp

@@ -12,10 +12,12 @@
 #include "common/swap.h"
 #include "common/swap.h"
 #include "core/core.h"
 #include "core/core.h"
 #include "core/file_sys/control_metadata.h"
 #include "core/file_sys/control_metadata.h"
+#include "core/file_sys/romfs_factory.h"
 #include "core/file_sys/vfs_offset.h"
 #include "core/file_sys/vfs_offset.h"
 #include "core/gdbstub/gdbstub.h"
 #include "core/gdbstub/gdbstub.h"
 #include "core/hle/kernel/process.h"
 #include "core/hle/kernel/process.h"
 #include "core/hle/kernel/vm_manager.h"
 #include "core/hle/kernel/vm_manager.h"
+#include "core/hle/service/filesystem/filesystem.h"
 #include "core/loader/nro.h"
 #include "core/loader/nro.h"
 #include "core/loader/nso.h"
 #include "core/loader/nso.h"
 #include "core/memory.h"
 #include "core/memory.h"
@@ -208,6 +210,9 @@ ResultStatus AppLoader_NRO::Load(Kernel::Process& process) {
         return ResultStatus::ErrorLoadingNRO;
         return ResultStatus::ErrorLoadingNRO;
     }
     }
 
 
+    if (romfs != nullptr)
+        Service::FileSystem::RegisterRomFS(std::make_unique<FileSys::RomFSFactory>(*this));
+
     process.Run(base_address, Kernel::THREADPRIO_DEFAULT, Memory::DEFAULT_STACK_SIZE);
     process.Run(base_address, Kernel::THREADPRIO_DEFAULT, Memory::DEFAULT_STACK_SIZE);
 
 
     is_loaded = true;
     is_loaded = true;