mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-13 17:49:29 +01:00
Mask block transfer stride correctly per tests.
1024 is valid, but nothing higher. May help graphics in some games.
This commit is contained in:
1 parent
5ff589a0d9
commit
7a86ca2890
1 file changed
+4
-2
+4
-2
@@ -384,11 +384,13 @@ struct GPUgstate
|
||||
|
||||
// Transfers
|
||||
u32 getTransferSrcAddress() const { return (transfersrc & 0xFFFFF0) | ((transfersrcw & 0xFF0000) << 8); }
|
||||
u32 getTransferSrcStride() const { return transfersrcw & 0x3F8; }
|
||||
// Bits 0xf800 are ignored, > 0x400 is treated as 0.
|
||||
u32 getTransferSrcStride() const { int stride = transfersrcw & 0x7F8; return stride > 0x400 ? 0 : stride; }
|
||||
int getTransferSrcX() const { return (transfersrcpos >> 0) & 0x3FF; }
|
||||
int getTransferSrcY() const { return (transfersrcpos >> 10) & 0x3FF; }
|
||||
u32 getTransferDstAddress() const { return (transferdst & 0xFFFFF0) | ((transferdstw & 0xFF0000) << 8); }
|
||||
u32 getTransferDstStride() const { return transferdstw & 0x3F8; }
|
||||
// Bits 0xf800 are ignored, > 0x400 is treated as 0.
|
||||
u32 getTransferDstStride() const { int stride = transferdstw & 0x7F8; return stride > 0x400 ? 0 : stride; }
|
||||
int getTransferDstX() const { return (transferdstpos >> 0) & 0x3FF; }
|
||||
int getTransferDstY() const { return (transferdstpos >> 10) & 0x3FF; }
|
||||
int getTransferWidth() const { return ((transfersize >> 0) & 0x3FF) + 1; }
|
||||
|
||||
Reference in new issue
Block a user