bool VirtualMemoryBlock::Read128(const u64 addr, u128* value) { u64 realAddr; if(!getRealAddr(addr, realAddr)) return false; *value = Memory.Read128(realAddr); return true; }
bool VirtualMemoryBlock::Write128(const u64 addr, const u128 value) { u64 realAddr; if(!getRealAddr(addr, realAddr)) return false; Memory.Write128(realAddr, value); return true; }
bool VirtualMemoryBlock::Read32(const u64 addr, u32* value) { u64 realAddr = getRealAddr(addr); if (realAddr == 0) return false; *value = Memory.Read32(realAddr); return true; }
bool VirtualMemoryBlock::Write32(const u32 addr, const u32 value) { u32 realAddr; if (!getRealAddr(addr, realAddr)) return false; vm::ps3::write32(realAddr, value); return true; }
bool VirtualMemoryBlock::Read32(const u32 addr, u32* value) { u32 realAddr; if (!getRealAddr(addr, realAddr)) return false; *value = vm::ps3::read32(realAddr); return true; }
void MemBufferEntry::initializeData(MemOpsType::iterator mit) { mit--; // skip itself MemBufferEntry *prevEntry = *mit; if (prevEntry->getChunkIndex() == getChunkIndex()) { // Copy from previous version I(prevEntry!=this); I(*(prevEntry->getVersionRef()) < *ver); initializeData(prevEntry); }else{ // Copy from memory chunkCopy(getAddr(), getRealAddr(), chunkDataMask); } }
bool VirtualMemoryBlock::Write128(const u64 addr, const u128 value) { u64 realAddr; Memory.Write128(realAddr = getRealAddr(addr), value); return realAddr != 0; }
bool VirtualMemoryBlock::Read128(const u64 addr, u128* value) { u64 realAddr; *value = Memory.Read128(realAddr = getRealAddr(addr)); return realAddr != 0; }