diff options
author | bunnei <bunneidev@gmail.com> | 2014-08-28 18:07:45 -0400 |
---|---|---|
committer | bunnei <bunneidev@gmail.com> | 2014-08-28 18:07:45 -0400 |
commit | 06864c93fdf41ed383aadc3a76c40cb4725051b0 (patch) | |
tree | 5b2f042cae820f5b8ad622731bc378247fac7788 /src/core/loader/loader.cpp | |
parent | 7122c46937b2382879de4fbee1c3eaf50c9c35b4 (diff) | |
parent | 6966fdf02578750f31098f23f1f14ebb4f642e2a (diff) |
Merge pull request #80 from bunnei/fix-latest-libctru
Fixes Citra for the latest changes made to the "refactor" branch of libctru.
- For reference, see: https://github.com/smealum/ctrulib/tree/refactor/libctru
Diffstat (limited to 'src/core/loader/loader.cpp')
-rw-r--r-- | src/core/loader/loader.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/core/loader/loader.cpp b/src/core/loader/loader.cpp index 2b42e3c64..365f5a277 100644 --- a/src/core/loader/loader.cpp +++ b/src/core/loader/loader.cpp @@ -9,6 +9,7 @@ #include "core/loader/elf.h" #include "core/loader/ncch.h" #include "core/hle/kernel/archive.h" +#include "core/mem_map.h" //////////////////////////////////////////////////////////////////////////////////////////////////// @@ -39,6 +40,9 @@ FileType IdentifyFile(const std::string &filename) { else if (!strcasecmp(extension.c_str(), ".cci")) { return FileType::CCI; // TODO(bunnei): Do some filetype checking :p } + else if (!strcasecmp(extension.c_str(), ".bin")) { + return FileType::BIN; // TODO(bunnei): Do some filetype checking :p + } return FileType::Unknown; } @@ -69,6 +73,22 @@ ResultStatus LoadFile(const std::string& filename) { break; } + // Raw BIN file format... + case FileType::BIN: + { + INFO_LOG(LOADER, "Loading BIN file %s...", filename.c_str()); + + File::IOFile file(filename, "rb"); + + if (file.IsOpen()) { + file.ReadBytes(Memory::GetPointer(Memory::EXEFS_CODE_VADDR), (size_t)file.GetSize()); + Kernel::LoadExec(Memory::EXEFS_CODE_VADDR); + } else { + return ResultStatus::Error; + } + return ResultStatus::Success; + } + // Error occurred durring IdentifyFile... case FileType::Error: |