summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbunnei <ericbunnie@gmail.com>2014-05-14 03:58:51 +0200
committerbunnei <ericbunnie@gmail.com>2014-05-14 03:58:51 +0200
commitb87536e82cc1708d22ce4e38b34dac8190919798 (patch)
tree73a05bbf6eca96a0e9a109260f25436a82be19dc
parentadded CreateThread, CreateMutex, and ReleaseMutex SVC stubs (just parameter decoding for now) (diff)
downloadyuzu-b87536e82cc1708d22ce4e38b34dac8190919798.tar
yuzu-b87536e82cc1708d22ce4e38b34dac8190919798.tar.gz
yuzu-b87536e82cc1708d22ce4e38b34dac8190919798.tar.bz2
yuzu-b87536e82cc1708d22ce4e38b34dac8190919798.tar.lz
yuzu-b87536e82cc1708d22ce4e38b34dac8190919798.tar.xz
yuzu-b87536e82cc1708d22ce4e38b34dac8190919798.tar.zst
yuzu-b87536e82cc1708d22ce4e38b34dac8190919798.zip
-rw-r--r--src/core/loader.cpp17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/core/loader.cpp b/src/core/loader.cpp
index 8756588ae..a1f5dcdb5 100644
--- a/src/core/loader.cpp
+++ b/src/core/loader.cpp
@@ -10,7 +10,7 @@
#include "core/core.h"
#include "core/file_sys/directory_file_system.h"
#include "core/elf/elf_reader.h"
-
+#include "core/hle/kernel/kernel.h"
#include "core/mem_map.h"
////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -56,7 +56,7 @@ bool Load_ELF(std::string &filename) {
elf_reader = new ElfReader(buffer);
elf_reader->LoadInto(0x00100000);
- Core::g_app_core->SetPC(elf_reader->GetEntryPoint());
+ __KernelLoadExec(elf_reader->GetEntryPoint());
delete[] buffer;
delete elf_reader;
@@ -89,11 +89,11 @@ bool Load_DAT(std::string &filename) {
* but for the sake of making it easier... we'll temporarily/hackishly
* allow it. No sense in making a proper reader for this.
*/
- u32 entrypoint = 0x00100000; // write to same entrypoint as elf
+ u32 entry_point = 0x00100000; // write to same entrypoint as elf
u32 payload_offset = 0xA150;
const u8 *src = &buffer[payload_offset];
- u8 *dst = Memory::GetPointer(entrypoint);
+ u8 *dst = Memory::GetPointer(entry_point);
u32 srcSize = size - payload_offset; //just load everything...
u32 *s = (u32*)src;
u32 *d = (u32*)dst;
@@ -102,7 +102,8 @@ bool Load_DAT(std::string &filename) {
*d++ = (*s++);
}
- Core::g_app_core->SetPC(entrypoint);
+ __KernelLoadExec(entry_point);
+
delete[] buffer;
}
@@ -131,10 +132,10 @@ bool Load_BIN(std::string &filename) {
f.ReadBytes(buffer, size);
- u32 entrypoint = 0x00100000; // Hardcoded, read from exheader
+ u32 entry_point = 0x00100000; // Hardcoded, read from exheader
const u8 *src = buffer;
- u8 *dst = Memory::GetPointer(entrypoint);
+ u8 *dst = Memory::GetPointer(entry_point);
u32 srcSize = size;
u32 *s = (u32*)src;
u32 *d = (u32*)dst;
@@ -143,7 +144,7 @@ bool Load_BIN(std::string &filename) {
*d++ = (*s++);
}
- Core::g_app_core->SetPC(entrypoint);
+ __KernelLoadExec(entry_point);
delete[] buffer;
}