summaryrefslogtreecommitdiff
path: root/src/core/mem_map_funcs.cpp
diff options
context:
space:
mode:
authorGravatar bunnei2014-05-06 23:32:04 -0400
committerGravatar bunnei2014-05-06 23:32:04 -0400
commita3a383cb7a9b8e83c1201fd38d08b2932e3d58df (patch)
treea7ddcdf3e6081811046fd3be41b941bf9a6d089f /src/core/mem_map_funcs.cpp
parentadded config_mem module for HLE of firmware configuration memory settings (diff)
downloadyuzu-a3a383cb7a9b8e83c1201fd38d08b2932e3d58df.tar.gz
yuzu-a3a383cb7a9b8e83c1201fd38d08b2932e3d58df.tar.xz
yuzu-a3a383cb7a9b8e83c1201fd38d08b2932e3d58df.zip
added mem_map read for config_mem
Diffstat (limited to 'src/core/mem_map_funcs.cpp')
-rw-r--r--src/core/mem_map_funcs.cpp19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/core/mem_map_funcs.cpp b/src/core/mem_map_funcs.cpp
index 2284b535c..4812a8d22 100644
--- a/src/core/mem_map_funcs.cpp
+++ b/src/core/mem_map_funcs.cpp
@@ -9,6 +9,7 @@
9#include "core/mem_map.h" 9#include "core/mem_map.h"
10#include "core/hw/hw.h" 10#include "core/hw/hw.h"
11#include "hle/hle.h" 11#include "hle/hle.h"
12#include "hle/config_mem.h"
12 13
13namespace Memory { 14namespace Memory {
14 15
@@ -46,7 +47,7 @@ inline void _Read(T &var, const u32 addr) {
46 // Could just do a base-relative read, too.... TODO 47 // Could just do a base-relative read, too.... TODO
47 48
48 const u32 vaddr = _VirtualAddress(addr); 49 const u32 vaddr = _VirtualAddress(addr);
49 50
50 // Memory allocated for HLE use that can be addressed from the emulated application 51 // Memory allocated for HLE use that can be addressed from the emulated application
51 // The primary use of this is sharing a commandbuffer between the HLE OS (syscore) and the LLE 52 // The primary use of this is sharing a commandbuffer between the HLE OS (syscore) and the LLE
52 // core running the user application (appcore) 53 // core running the user application (appcore)
@@ -74,6 +75,10 @@ inline void _Read(T &var, const u32 addr) {
74 } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { 75 } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) {
75 var = *((const T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK]); 76 var = *((const T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK]);
76 77
78 // Config memory
79 } else if ((vaddr >= CONFIG_MEMORY_VADDR) && (vaddr < CONFIG_MEMORY_VADDR_END)) {
80 ConfigMem::Read<T>(var, vaddr);
81
77 // VRAM 82 // VRAM
78 } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { 83 } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) {
79 var = *((const T*)&g_vram[vaddr & VRAM_MASK]); 84 var = *((const T*)&g_vram[vaddr & VRAM_MASK]);
@@ -118,12 +123,12 @@ inline void _Write(u32 addr, const T data) {
118 } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) { 123 } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) {
119 *(T*)&g_vram[vaddr & VRAM_MASK] = data; 124 *(T*)&g_vram[vaddr & VRAM_MASK] = data;
120 125
121 } else if ((vaddr & 0xFFF00000) == 0x1FF00000) { 126 //} else if ((vaddr & 0xFFF00000) == 0x1FF00000) {
122 _assert_msg_(MEMMAP, false, "umimplemented write to DSP memory"); 127 // _assert_msg_(MEMMAP, false, "umimplemented write to DSP memory");
123 } else if ((vaddr & 0xFFFF0000) == 0x1FF80000) { 128 //} else if ((vaddr & 0xFFFF0000) == 0x1FF80000) {
124 _assert_msg_(MEMMAP, false, "umimplemented write to Configuration Memory"); 129 // _assert_msg_(MEMMAP, false, "umimplemented write to Configuration Memory");
125 } else if ((vaddr & 0xFFFFF000) == 0x1FF81000) { 130 //} else if ((vaddr & 0xFFFFF000) == 0x1FF81000) {
126 _assert_msg_(MEMMAP, false, "umimplemented write to shared page"); 131 // _assert_msg_(MEMMAP, false, "umimplemented write to shared page");
127 132
128 // Error out... 133 // Error out...
129 } else { 134 } else {