mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-14 18:19:36 +01:00
Fix bugs when memory size is 0x04C00000/etc.
Was experimenting with trying to match my non-phat's ram size.
This commit is contained in:
1 parent
74418c13bf
commit
38e30e5a67
4 files changed
+18
-11
No files matched your search
@@ -40,7 +40,7 @@ namespace Memory
|
||||
u8 *GetPointer(const u32 address)
|
||||
{
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
return m_pRAM + (address & g_MemoryMask);
|
||||
return m_pRAM + (address & RAM_NORMAL_MASK);
|
||||
}
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
return m_pVRAM + (address & VRAM_MASK);
|
||||
@@ -48,7 +48,7 @@ u8 *GetPointer(const u32 address)
|
||||
else if ((address & 0xBFFF0000) == 0x00010000) {
|
||||
return m_pScratchPad + (address & SCRATCHPAD_MASK);
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
else if ((address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
return m_pRAM + (address & g_MemoryMask);
|
||||
}
|
||||
else {
|
||||
@@ -75,7 +75,7 @@ inline void ReadFromHardware(T &var, const u32 address)
|
||||
// Could just do a base-relative read, too.... TODO
|
||||
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
var = *((const T*)&m_pRAM[address & g_MemoryMask]);
|
||||
var = *((const T*)&m_pRAM[address & RAM_NORMAL_MASK]);
|
||||
}
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
var = *((const T*)&m_pVRAM[address & VRAM_MASK]);
|
||||
@@ -84,7 +84,7 @@ inline void ReadFromHardware(T &var, const u32 address)
|
||||
// Scratchpad
|
||||
var = *((const T*)&m_pScratchPad[address & SCRATCHPAD_MASK]);
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
else if ((address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
var = *((const T*)&m_pRAM[address & g_MemoryMask]);
|
||||
}
|
||||
else
|
||||
@@ -113,7 +113,7 @@ inline void WriteToHardware(u32 address, const T data)
|
||||
// Could just do a base-relative write, too.... TODO
|
||||
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
*(T*)&m_pRAM[address & g_MemoryMask] = data;
|
||||
*(T*)&m_pRAM[address & RAM_NORMAL_MASK] = data;
|
||||
}
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
*(T*)&m_pVRAM[address & VRAM_MASK] = data;
|
||||
@@ -121,7 +121,7 @@ inline void WriteToHardware(u32 address, const T data)
|
||||
else if ((address & 0xBFFF0000) == 0x00010000) {
|
||||
*(T*)&m_pScratchPad[address & SCRATCHPAD_MASK] = data;
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
else if ((address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
*(T*)&m_pRAM[address & g_MemoryMask] = data;
|
||||
}
|
||||
else
|
||||
@@ -156,7 +156,7 @@ bool IsValidAddress(const u32 address)
|
||||
else if ((address & 0xBFFF0000) == 0x00010000) {
|
||||
return true;
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
else if ((address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
|
||||
Reference in new issue
Block a user