diff --git a/GPU/GLES/DisplayListInterpreter.cpp b/GPU/GLES/DisplayListInterpreter.cpp index a66bd655f1..5a71ab8cc0 100644 --- a/GPU/GLES/DisplayListInterpreter.cpp +++ b/GPU/GLES/DisplayListInterpreter.cpp @@ -902,7 +902,7 @@ void GLES_GPU::DoBlockTransfer() { // Do the copy! for (int y = 0; y < height; y++) { const u8 *src = Memory::GetPointer(srcBasePtr + ((y + srcY) * srcStride + srcX) * bpp); - u8 *dst = Memory::GetPointer(dstBasePtr + ((y + dstY) * srcStride + dstX) * bpp); + u8 *dst = Memory::GetPointer(dstBasePtr + ((y + dstY) * dstStride + dstX) * bpp); memcpy(dst, src, width * bpp); } diff --git a/GPU/GeDisasm.cpp b/GPU/GeDisasm.cpp index 054738e662..b928d8de21 100644 --- a/GPU/GeDisasm.cpp +++ b/GPU/GeDisasm.cpp @@ -340,7 +340,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) { case GE_CMD_TRANSFERSRCW: { - u32 xferSrc = gstate.transfersrc | ((data&0xFF0000)<<8); + u32 xferSrc = (gstate.transfersrc & 0x00FFFFFF) | ((data & 0xFF0000) << 8); u32 xferSrcW = gstate.transfersrcw & 1023; sprintf(buffer, "Block Transfer Src: %08x W: %i", xferSrc, xferSrcW); break; @@ -355,7 +355,7 @@ void GeDisassembleOp(u32 pc, u32 op, u32 prev, char *buffer) { case GE_CMD_TRANSFERDSTW: { - u32 xferDst= gstate.transferdst | ((data&0xFF0000)<<8); + u32 xferDst = (gstate.transferdst & 0x00FFFFFF) | ((data & 0xFF0000) << 8); u32 xferDstW = gstate.transferdstw & 1023; sprintf(buffer, "Block Transfer Dest: %08x W: %i", xferDst, xferDstW); break; diff --git a/GPU/ge_constants.h b/GPU/ge_constants.h index c2980adf77..1a32761dfe 100644 --- a/GPU/ge_constants.h +++ b/GPU/ge_constants.h @@ -242,7 +242,7 @@ enum GECommand GE_CMD_TRANSFERSTART=0xEA, GE_CMD_TRANSFERSRCPOS=0xEB, GE_CMD_TRANSFERDSTPOS=0xEC, - GE_CMD_TRANSFERSIZE=0xED, + GE_CMD_TRANSFERSIZE=0xEE, }; enum GEBufferFormat