mirror of
https://github.com/libretro/FBNeo.git
synced 2024-11-27 19:10:31 +00:00
Add MagicSeb's fixes.
This commit is contained in:
parent
d1ad2fcb9c
commit
65881cfdd9
@ -1931,9 +1931,9 @@ static void DrvPaletteUpdate()
|
||||
|
||||
for (INT32 i = 0; i < 0x2000 / 2; i++)
|
||||
{
|
||||
INT32 r = (p[i] >> 12) & 0x0f;
|
||||
INT32 g = (p[i] >> 8) & 0x0f;
|
||||
INT32 b = (p[i] >> 4) & 0x0f;
|
||||
INT32 r = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 12) & 0x0f;
|
||||
INT32 g = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 8) & 0x0f;
|
||||
INT32 b = (BURN_ENDIAN_SWAP_INT16(p[i]) >> 4) & 0x0f;
|
||||
|
||||
r |= r << 4;
|
||||
g |= g << 4;
|
||||
|
@ -184,8 +184,8 @@ static void update_scroll(INT32 plane)
|
||||
|
||||
for (INT32 i = 0; i < number_of_blocks; i++)
|
||||
{
|
||||
INT32 scrollx = scrollram[plane * 0x200 + i * 2 * lines_per_block + 0];
|
||||
INT32 scrolly = scrollram[plane * 0x200 + i * 2 * lines_per_block + 1];
|
||||
INT32 scrollx = BURN_ENDIAN_SWAP_INT16(scrollram[plane * 0x200 + i * 2 * lines_per_block + 0]);
|
||||
INT32 scrolly = BURN_ENDIAN_SWAP_INT16(scrollram[plane * 0x200 + i * 2 * lines_per_block + 1]);
|
||||
|
||||
INT32 min_y = (i + 0) * lines_per_block - 0;
|
||||
INT32 max_y = (i + 1) * lines_per_block - 1;
|
||||
@ -242,8 +242,8 @@ void TC0180VCUDrawLayer(INT32 colorbase, INT32 ctrl_offset, INT32 transparent) /
|
||||
|
||||
INT32 offs = scly_off | (sclx >> 4);
|
||||
|
||||
INT32 attr = ram[offs + bank1];
|
||||
INT32 code = ram[offs + bank0];
|
||||
INT32 attr = BURN_ENDIAN_SWAP_INT16(ram[offs + bank1]);
|
||||
INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + bank0]);
|
||||
INT32 color = (attr & 0x003f) + colorbase;
|
||||
code &= tilemask[1];
|
||||
|
||||
@ -319,8 +319,8 @@ void TC0180VCUDrawLayer(INT32 colorbase, INT32 ctrl_offset, INT32 transparent) /
|
||||
sx -= scroll_x[(sy + TC0180VCU_y_offset) & 0xff];
|
||||
if (sx >= 0x400-15) sx -= 0x400;
|
||||
|
||||
INT32 attr = ram[offs + bank1];
|
||||
INT32 code = ram[offs + bank0];
|
||||
INT32 attr = BURN_ENDIAN_SWAP_INT16(ram[offs + bank1]);
|
||||
INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + bank0]);
|
||||
|
||||
INT32 color = (attr & 0x003f) + colorbase;
|
||||
INT32 flipx = (attr & 0x0040);
|
||||
@ -418,7 +418,7 @@ void TC0180VCUDrawCharLayer(INT32 colorbase)
|
||||
INT32 sx = (offs & 0x3f) << 3;
|
||||
INT32 sy = (offs >> 6) << 3;
|
||||
|
||||
INT32 code = ram[offs + bank0];
|
||||
INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + bank0]);
|
||||
INT32 color = (code >> 12) + colorbase;
|
||||
|
||||
code = (code & 0x07ff) | (TC0180VCUControl[4 + ((code & 0x800) >> 11)] << 11);
|
||||
@ -541,12 +541,12 @@ void TC0180VCUDrawSprite(UINT16 *dest)
|
||||
|
||||
for (INT32 offs = (0x1980 - 16) / 2; offs >=0; offs -= 8)
|
||||
{
|
||||
INT32 code = ram[offs + 0] & tilemask[1];
|
||||
INT32 color = ram[offs + 1];
|
||||
INT32 x = ram[offs + 2] & 0x03ff;
|
||||
INT32 y = ram[offs + 3] & 0x03ff;
|
||||
INT32 code = BURN_ENDIAN_SWAP_INT16(ram[offs + 0]) & tilemask[1];
|
||||
INT32 color = BURN_ENDIAN_SWAP_INT16(ram[offs + 1]);
|
||||
INT32 x = BURN_ENDIAN_SWAP_INT16(ram[offs + 2]) & 0x03ff;
|
||||
INT32 y = BURN_ENDIAN_SWAP_INT16(ram[offs + 3]) & 0x03ff;
|
||||
|
||||
INT32 data = ram[offs + 5];
|
||||
INT32 data = BURN_ENDIAN_SWAP_INT16(ram[offs + 5]);
|
||||
|
||||
INT32 flipx = color & 0x4000;
|
||||
INT32 flipy = color & 0x8000;
|
||||
@ -564,14 +564,14 @@ void TC0180VCUDrawSprite(UINT16 *dest)
|
||||
y_no = 0;
|
||||
xlatch = x;
|
||||
ylatch = y;
|
||||
data = ram[offs + 4];
|
||||
data = BURN_ENDIAN_SWAP_INT16(ram[offs + 4]);
|
||||
zoomxlatch = (data >> 8) & 0xff;
|
||||
zoomylatch = (data >> 0) & 0xff;
|
||||
big_sprite = 1;
|
||||
}
|
||||
}
|
||||
|
||||
data = ram[offs + 4];
|
||||
data = BURN_ENDIAN_SWAP_INT16(ram[offs + 4]);
|
||||
zoomx = (data >> 8) & 0xff;
|
||||
zoomy = (data >> 0) & 0xff;
|
||||
zx = (0x100 - zoomx) / 16;
|
||||
|
Loading…
Reference in New Issue
Block a user