std::string GetString(u32 em_address) { std::string str; char c; while ((c = Read_U8(em_address)) != '\0') { str += c; em_address++; } return str; }
void GetString(std::string& _string, const u32 em_address) { char stringBuffer[2048]; char *string = stringBuffer; char c; u32 addr = em_address; while ((c = Read_U8(addr))) { *string++ = c; addr++; } *string++ = '\0'; _string = stringBuffer; }
void DMA_MemoryToLC(const u32 _CacheAddr, const u32 _MemAddr, const u32 _iNumBlocks) { const u8 *src = GetPointer(_MemAddr); u8 *dst = m_pL1Cache + (_CacheAddr & 0x3FFFF); if ((dst != nullptr) && (src != nullptr) && (_MemAddr & 3) == 0 && (_CacheAddr & 3) == 0) { memcpy(dst, src, 32 * _iNumBlocks); } else { for (u32 i = 0; i < 32 * _iNumBlocks; i++) { u8 Temp = Read_U8(_MemAddr + i); Write_U8(Temp, _CacheAddr + i); } } }
void DMA_LCToMemory(const u32 _MemAddr, const u32 _CacheAddr, const u32 _iNumBlocks) { const u8 *src = GetCachePtr() + (_CacheAddr & 0x3FFFF); u8 *dst = GetPointer(_MemAddr); if ((dst != NULL) && (src != NULL) && (_MemAddr & 3) == 0 && (_CacheAddr & 3) == 0) { memcpy(dst, src, 32 * _iNumBlocks); } else { for (u32 i = 0; i < 32 * _iNumBlocks; i++) { u8 Temp = Read_U8(_CacheAddr + i); Write_U8(Temp, _MemAddr + i); } } }
u32 Read_U8_ZX(const u32 _Address) { return (u32)Read_U8(_Address); }