toa_gp9001.cpp/GHOX: support multi-connected sprites for a fixed hiscore screen
This commit is contained in:
parent
a99f2b56ac
commit
d8ffc59644
|
@ -96,6 +96,8 @@ static void RenderSpriteQueue(INT32 i, INT32 nPriority)
|
||||||
UINT32 nSpriteNumber;
|
UINT32 nSpriteNumber;
|
||||||
INT32 x, y, xoff, yoff;
|
INT32 x, y, xoff, yoff;
|
||||||
INT32 nFlip;
|
INT32 nFlip;
|
||||||
|
INT32 nMultiConnectorX = GP9001Reg[i][6] & 0x1ff;
|
||||||
|
INT32 nMultiConnectorY = GP9001Reg[i][7] & 0x1ff;
|
||||||
|
|
||||||
UINT8*** pMySpriteQueue = &pSpriteQueue[i << 4];
|
UINT8*** pMySpriteQueue = &pSpriteQueue[i << 4];
|
||||||
|
|
||||||
|
@ -118,6 +120,14 @@ static void RenderSpriteQueue(INT32 i, INT32 nPriority)
|
||||||
nSpriteYPos = ((pSpriteInfo[7] << 1) | (pSpriteInfo[6] >> 7)) + GP9001Reg[i][7] + nSpriteYOffset;
|
nSpriteYPos = ((pSpriteInfo[7] << 1) | (pSpriteInfo[6] >> 7)) + GP9001Reg[i][7] + nSpriteYOffset;
|
||||||
nSpriteYPos &= 0x01FF;
|
nSpriteYPos &= 0x01FF;
|
||||||
|
|
||||||
|
if (pSpriteInfo[1] & 0x40) { // Multi-Connected sprite mode.
|
||||||
|
nSpriteXPos = (nMultiConnectorX + (((pSpriteInfo[5] << 1) | (pSpriteInfo[4] >> 7)))) & 0x1ff;
|
||||||
|
nSpriteYPos = (nMultiConnectorY + (((pSpriteInfo[7] << 1) | (pSpriteInfo[6] >> 7)))) & 0x1ff;
|
||||||
|
}
|
||||||
|
|
||||||
|
nMultiConnectorX = nSpriteXPos;
|
||||||
|
nMultiConnectorY = nSpriteYPos;
|
||||||
|
|
||||||
if (nFlip & 2) {
|
if (nFlip & 2) {
|
||||||
xoff = -8;
|
xoff = -8;
|
||||||
nSpriteXPos -= 7;
|
nSpriteXPos -= 7;
|
||||||
|
|
Loading…
Reference in New Issue