diff --git a/GPU/Common/FramebufferCommon.cpp b/GPU/Common/FramebufferCommon.cpp index ae837f09a3..385727d00e 100644 --- a/GPU/Common/FramebufferCommon.cpp +++ b/GPU/Common/FramebufferCommon.cpp @@ -590,7 +590,7 @@ void FramebufferManagerCommon::FindTransferFramebuffers(VirtualFramebuffer *&dst } if (match) { dstYOffset = yOffset; - dstXOffset = (byteOffset / bpp) % dstStride; + dstXOffset = dstStride == 0 ? 0 : (byteOffset / bpp) % dstStride; dstBuffer = vfb; } } diff --git a/GPU/Directx9/TextureCacheDX9.cpp b/GPU/Directx9/TextureCacheDX9.cpp index 7bfe3025c0..357b160148 100644 --- a/GPU/Directx9/TextureCacheDX9.cpp +++ b/GPU/Directx9/TextureCacheDX9.cpp @@ -364,7 +364,7 @@ bool TextureCacheDX9::AttachFramebuffer(TexCacheEntry *entry, u32 address, Virtu const u32 bitOffset = (texaddr - addr) * 8; const u32 pixelOffset = bitOffset / std::max(1U, (u32)textureBitsPerPixel[entry->format]); - fbInfo.yOffset = pixelOffset / entry->bufw; + fbInfo.yOffset = entry->bufw == 0 ? 0 : pixelOffset / entry->bufw; fbInfo.xOffset = entry->bufw == 0 ? 0 : pixelOffset % entry->bufw; if (framebuffer->fb_stride != entry->bufw) { diff --git a/GPU/GLES/TextureCache.cpp b/GPU/GLES/TextureCache.cpp index 6e0dcce822..9fced84fe1 100644 --- a/GPU/GLES/TextureCache.cpp +++ b/GPU/GLES/TextureCache.cpp @@ -357,7 +357,7 @@ bool TextureCache::AttachFramebuffer(TexCacheEntry *entry, u32 address, VirtualF const u32 bitOffset = (texaddr - addr) * 8; const u32 pixelOffset = bitOffset / std::max(1U, (u32)textureBitsPerPixel[entry->format]); - fbInfo.yOffset = pixelOffset / entry->bufw; + fbInfo.yOffset = entry->bufw == 0 ? 0 : pixelOffset / entry->bufw; fbInfo.xOffset = entry->bufw == 0 ? 0 : pixelOffset % entry->bufw; if (framebuffer->fb_stride != entry->bufw) {