Merge pull request #2624 from CookiePLMonster/fix-safe-unaligned-writes
Make DoSafeMemoryAccess return true properly for RAM, BIOS, dcache writes
This commit is contained in:
commit
8864b48c02
|
@ -1914,7 +1914,10 @@ static ALWAYS_INLINE bool DoSafeMemoryAccess(VirtualMemoryAddress address, u32&
|
|||
{
|
||||
address &= PHYSICAL_MEMORY_ADDRESS_MASK;
|
||||
if ((address & DCACHE_LOCATION_MASK) == DCACHE_LOCATION)
|
||||
return DoScratchpadAccess<type, size>(address, value);
|
||||
{
|
||||
DoScratchpadAccess<type, size>(address, value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
@ -1937,16 +1940,18 @@ static ALWAYS_INLINE bool DoSafeMemoryAccess(VirtualMemoryAddress address, u32&
|
|||
|
||||
if (address < RAM_MIRROR_END)
|
||||
{
|
||||
return DoRAMAccess<type, size, true>(address, value);
|
||||
DoRAMAccess<type, size, true>(address, value);
|
||||
return true;
|
||||
}
|
||||
else if (address >= BIOS_BASE && address < (BIOS_BASE + BIOS_SIZE))
|
||||
if constexpr (type == MemoryAccessType::Read)
|
||||
{
|
||||
return DoBIOSAccess<type, size>(static_cast<u32>(address - BIOS_BASE), value);
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
if (address >= BIOS_BASE && address < (BIOS_BASE + BIOS_SIZE))
|
||||
{
|
||||
DoBIOSAccess<type, size>(static_cast<u32>(address - BIOS_BASE), value);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
bool SafeReadMemoryByte(VirtualMemoryAddress addr, u8* value)
|
||||
|
|
Loading…
Reference in New Issue