From 3cfa233b63dfcd734be2dd0ae4bd0d3e98109df6 Mon Sep 17 00:00:00 2001 From: JosJuice Date: Sat, 13 Apr 2024 18:29:52 +0200 Subject: VideoCommon: Use GetSpanForAddress safely in texture decoding Now only VertexLoader remains... But that one might be tricky. --- Source/Core/VideoCommon/BPStructs.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'Source/Core/VideoCommon/BPStructs.cpp') diff --git a/Source/Core/VideoCommon/BPStructs.cpp b/Source/Core/VideoCommon/BPStructs.cpp index 6e4bb981a8..7eb6c88656 100644 --- a/Source/Core/VideoCommon/BPStructs.cpp +++ b/Source/Core/VideoCommon/BPStructs.cpp @@ -401,7 +401,7 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager& static_assert(MAX_LOADABLE_TMEM_ADDR + MAX_TMEM_LINE_COUNT < TMEM_SIZE); auto& memory = system.GetMemory(); - memory.CopyFromEmu(texMem + tmem_addr, addr, tmem_transfer_count); + memory.CopyFromEmu(s_tex_mem.data() + tmem_addr, addr, tmem_transfer_count); if (OpcodeDecoder::g_record_fifo_data) system.GetFifoRecorder().UseMemory(addr, tmem_transfer_count, MemoryUpdate::Type::TMEM); @@ -596,7 +596,7 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager& auto& system = Core::System::GetInstance(); auto& memory = system.GetMemory(); - memory.CopyFromEmu(texMem + tmem_addr_even, src_addr, bytes_read); + memory.CopyFromEmu(s_tex_mem.data() + tmem_addr_even, src_addr, bytes_read); } else // RGBA8 tiles (and CI14, but that might just be stupid libogc!) { @@ -615,9 +615,10 @@ static void BPWritten(PixelShaderManager& pixel_shader_manager, XFStateManager& break; } - memory.CopyFromEmu(texMem + tmem_addr_even, src_addr + bytes_read, TMEM_LINE_SIZE); - memory.CopyFromEmu(texMem + tmem_addr_odd, src_addr + bytes_read + TMEM_LINE_SIZE, + memory.CopyFromEmu(s_tex_mem.data() + tmem_addr_even, src_addr + bytes_read, TMEM_LINE_SIZE); + memory.CopyFromEmu(s_tex_mem.data() + tmem_addr_odd, + src_addr + bytes_read + TMEM_LINE_SIZE, TMEM_LINE_SIZE); tmem_addr_even += TMEM_LINE_SIZE; tmem_addr_odd += TMEM_LINE_SIZE; bytes_read += TMEM_LINE_SIZE * 2; -- cgit v1.2.3