Fixed "Rotozoomed 16/16 palette" for big endian systems.
This commit is contained in:
parent
243f7cd58c
commit
8a772475f8
|
@ -2222,10 +2222,18 @@ void GPU::_spriteRender(u8 * dst, u8 * dst_alpha, u8 * typeTab, u8 * prioTab)
|
|||
blockparameter = (spriteInfo->RotScalIndex + (spriteInfo->HFlip<< 3) + (spriteInfo->VFlip << 4))*4;
|
||||
|
||||
// Get rotation/scale parameters
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
dx = ((s16)(gpu->oam + blockparameter+0)->attr31 << 8) | ((s16)(gpu->oam + blockparameter+0)->attr30);
|
||||
dmx = ((s16)(gpu->oam + blockparameter+1)->attr31 << 8) | ((s16)(gpu->oam + blockparameter+1)->attr30);
|
||||
dy = ((s16)(gpu->oam + blockparameter+2)->attr31 << 8) | ((s16)(gpu->oam + blockparameter+2)->attr30);
|
||||
dmy = ((s16)(gpu->oam + blockparameter+3)->attr31 << 8) | ((s16)(gpu->oam + blockparameter+3)->attr30);
|
||||
#else
|
||||
dx = (s16)(gpu->oam + blockparameter+0)->attr3;
|
||||
dmx = (s16)(gpu->oam + blockparameter+1)->attr3;
|
||||
dy = (s16)(gpu->oam + blockparameter+2)->attr3;
|
||||
dmy = (s16)(gpu->oam + blockparameter+3)->attr3;
|
||||
#endif
|
||||
printf("%x %x %x %x\n", dx, dmx, dy, dmy);
|
||||
|
||||
// Calculate fixed poitn 8.8 start offsets
|
||||
realX = ((sprSize.x) << 7) - (fieldX >> 1)*dx - (fieldY>>1)*dmx + y * dmx;
|
||||
|
@ -2379,7 +2387,7 @@ void GPU::_spriteRender(u8 * dst, u8 * dst_alpha, u8 * typeTab, u8 * prioTab)
|
|||
|
||||
if(colour && (prioTab[sprX]>=prio))
|
||||
{
|
||||
T2WriteWord(dst, (sprX<<1), T2ReadWord(pal, (colour<<1)));
|
||||
T2WriteWord(dst, (sprX<<1), LE_TO_LOCAL_16(T2ReadWord(pal, colour << 1)));
|
||||
dst_alpha[sprX] = 16;
|
||||
typeTab[sprX] = spriteInfo->Mode;
|
||||
prioTab[sprX] = prio;
|
||||
|
|
|
@ -533,7 +533,7 @@ typedef struct
|
|||
/*12*/ unsigned PaletteIndex:4;
|
||||
/*10*/ unsigned Priority:2;
|
||||
// attr3
|
||||
unsigned attr3:16;
|
||||
unsigned attr3:16;
|
||||
#else
|
||||
// attr0
|
||||
/* 0*/ unsigned Y:8;
|
||||
|
@ -559,14 +559,24 @@ unsigned attr3:16;
|
|||
|
||||
typedef struct
|
||||
{
|
||||
#ifdef WORDS_BIGENDIAN
|
||||
u8 attr00;
|
||||
u8 attr01;
|
||||
u8 attr10;
|
||||
u8 attr11;
|
||||
u8 attr20;
|
||||
u8 attr21;
|
||||
u8 attr30;
|
||||
u8 attr31;
|
||||
#else
|
||||
u16 attr0;
|
||||
u16 attr1;
|
||||
u16 attr2;
|
||||
u16 attr3;
|
||||
#endif
|
||||
} OAM;
|
||||
|
||||
|
||||
|
||||
typedef struct
|
||||
{
|
||||
s16 x;
|
||||
|
|
Loading…
Reference in New Issue