summaryrefslogtreecommitdiff
path: root/src/core/mem_map_funcs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/mem_map_funcs.cpp')
-rw-r--r--src/core/mem_map_funcs.cpp20
1 files changed, 13 insertions, 7 deletions
diff --git a/src/core/mem_map_funcs.cpp b/src/core/mem_map_funcs.cpp
index 832957cb1..875821adb 100644
--- a/src/core/mem_map_funcs.cpp
+++ b/src/core/mem_map_funcs.cpp
@@ -58,8 +58,12 @@ inline void _Read(T &var, const u32 addr) {
58 } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { 58 } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) {
59 var = *((const T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK]); 59 var = *((const T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK]);
60 60
61 // VRAM
62 } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) {
63 var = *((const T*)&g_vram[vaddr & VRAM_MASK]);
64
61 } else { 65 } else {
62 _assert_msg_(MEMMAP, false, "unknown Read%d @ 0x%08X", sizeof(var) * 8, vaddr); 66 //_assert_msg_(MEMMAP, false, "unknown Read%d @ 0x%08X", sizeof(var) * 8, vaddr);
63 } 67 }
64} 68}
65 69
@@ -90,12 +94,10 @@ inline void _Write(u32 addr, const T data) {
90 } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { 94 } else if ((vaddr >= SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) {
91 *(T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK] = data; 95 *(T*)&g_shared_mem[vaddr & SHARED_MEMORY_MASK] = data;
92 96
93 } else if ((vaddr & 0xFF000000) == 0x14000000) { 97 // VRAM
94 _assert_msg_(MEMMAP, false, "umimplemented write to GSP heap"); 98 } else if ((vaddr >= VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) {
95 } else if ((vaddr & 0xFFF00000) == 0x1EC00000) { 99 *(T*)&g_vram[vaddr & VRAM_MASK] = data;
96 _assert_msg_(MEMMAP, false, "umimplemented write to IO registers"); 100
97 } else if ((vaddr & 0xFF000000) == 0x1F000000) {
98 _assert_msg_(MEMMAP, false, "umimplemented write to VRAM");
99 } else if ((vaddr & 0xFFF00000) == 0x1FF00000) { 101 } else if ((vaddr & 0xFFF00000) == 0x1FF00000) {
100 _assert_msg_(MEMMAP, false, "umimplemented write to DSP memory"); 102 _assert_msg_(MEMMAP, false, "umimplemented write to DSP memory");
101 } else if ((vaddr & 0xFFFF0000) == 0x1FF80000) { 103 } else if ((vaddr & 0xFFFF0000) == 0x1FF80000) {
@@ -125,6 +127,10 @@ u8 *GetPointer(const u32 addr) {
125 } else if ((vaddr > SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) { 127 } else if ((vaddr > SHARED_MEMORY_VADDR) && (vaddr < SHARED_MEMORY_VADDR_END)) {
126 return g_shared_mem + (vaddr & SHARED_MEMORY_MASK); 128 return g_shared_mem + (vaddr & SHARED_MEMORY_MASK);
127 129
130 // VRAM
131 } else if ((vaddr > VRAM_VADDR) && (vaddr < VRAM_VADDR_END)) {
132 return g_vram + (vaddr & VRAM_MASK);
133
128 } else { 134 } else {
129 ERROR_LOG(MEMMAP, "Unknown GetPointer @ 0x%08x", vaddr); 135 ERROR_LOG(MEMMAP, "Unknown GetPointer @ 0x%08x", vaddr);
130 return 0; 136 return 0;