loader: Add support for NRO, as well as various fixes and shared linker.

This commit is contained in:
bunnei 2017-10-05 23:30:08 -04:00
parent d454364bca
commit 33ea53094c
9 changed files with 434 additions and 146 deletions

View file

@ -10,6 +10,7 @@
#include "core/loader/3dsx.h"
#include "core/loader/elf.h"
#include "core/loader/ncch.h"
#include "core/loader/nro.h"
#include "core/loader/nso.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
@ -34,6 +35,7 @@ FileType IdentifyFile(FileUtil::IOFile& file) {
CHECK_TYPE(ELF)
CHECK_TYPE(NCCH)
CHECK_TYPE(NSO)
CHECK_TYPE(NRO)
#undef CHECK_TYPE
@ -121,6 +123,10 @@ static std::unique_ptr<AppLoader> GetFileLoader(FileUtil::IOFile&& file, FileTyp
case FileType::NSO:
return std::make_unique<AppLoader_NSO>(std::move(file), filename, filepath);
// NX NRO file format.
case FileType::NRO:
return std::make_unique<AppLoader_NRO>(std::move(file), filename, filepath);
default:
return nullptr;
}