mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-14 01:59:34 +01:00
Restructure the hack to be more correct, and add support for double texture coordinates. Fixes #2314.
Also address various coding style issues.
This commit is contained in:
1 parent
96401eae1e
commit
8ab734d516
10 files changed
+150
-59
No files matched your search
+14
-12
@@ -46,15 +46,16 @@ u8 *GetPointer(const u32 address)
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
return m_pRAM + (address & g_MemoryMask);
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3E000000) != 0x08000000) {
|
||||
return m_pRAM + (address & g_MemoryMask);
|
||||
}
|
||||
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
return m_pVRAM + (address & VRAM_MASK);
|
||||
}
|
||||
else if ((address & 0xBFFF0000) == 0x00010000) {
|
||||
return m_pScratchPad + (address & SCRATCHPAD_MASK);
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
return m_pRAM + (address & g_MemoryMask);
|
||||
}
|
||||
else {
|
||||
ERROR_LOG(MEMMAP, "Unknown GetPointer %08x PC %08x LR %08x", address, currentMIPS->pc, currentMIPS->r[MIPS_REG_RA]);
|
||||
if (!g_Config.bIgnoreBadMemAccess) {
|
||||
@@ -76,9 +77,6 @@ inline void ReadFromHardware(T &var, const u32 address)
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
var = *((const T*)&m_pRAM[address & g_MemoryMask]);
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3E000000) != 0x08000000) {
|
||||
var = *((const T*)&m_pRAM[address & g_MemoryMask]);
|
||||
}
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
var = *((const T*)&m_pVRAM[address & VRAM_MASK]);
|
||||
}
|
||||
@@ -86,6 +84,9 @@ 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) {
|
||||
var = *((const T*)&m_pRAM[address & g_MemoryMask]);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_Config.bJit) {
|
||||
@@ -109,15 +110,15 @@ inline void WriteToHardware(u32 address, const T data)
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
*(T*)&m_pRAM[address & g_MemoryMask] = data;
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3E000000) != 0x08000000) {
|
||||
*(T*)&m_pRAM[address & g_MemoryMask] = data;
|
||||
}
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
*(T*)&m_pVRAM[address & VRAM_MASK] = 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) {
|
||||
*(T*)&m_pRAM[address & g_MemoryMask] = data;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (g_Config.bJit) {
|
||||
@@ -139,15 +140,16 @@ bool IsValidAddress(const u32 address)
|
||||
if ((address & 0x3E000000) == 0x08000000) {
|
||||
return true;
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3E000000) != 0x08000000) {
|
||||
return true;
|
||||
}
|
||||
|
||||
else if ((address & 0x3F800000) == 0x04000000) {
|
||||
return true;
|
||||
}
|
||||
else if ((address & 0xBFFF0000) == 0x00010000) {
|
||||
return true;
|
||||
}
|
||||
else if (g_RemasterMode && (address & 0x3F000000) >= 0x08000000 && (address & 0x3F000000) < 0x08000000 + g_MemorySize) {
|
||||
return true;
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user