add big endian platform support

This commit is contained in:
kub 2021-02-22 22:25:03 +01:00
parent b053cb2044
commit 57c5a5e505
21 changed files with 224 additions and 178 deletions

View file

@ -123,7 +123,7 @@ static void draw_sprites(int scanline)
for (i = s = 0; i < 64; i++)
{
int y;
y = sat[i] + 1;
y = sat[MEM_LE2(i)] + 1;
if (y == 0xd1)
break;
if (y + h <= scanline || scanline < y)
@ -133,8 +133,8 @@ static void draw_sprites(int scanline)
break;
}
sprites_x[s] = xoff + sat[0x80 + i*2];
sprites_addr[s] = sprite_base + ((sat[0x80 + i*2 + 1] & addr_mask) << (5-1)) +
sprites_x[s] = xoff + sat[MEM_LE2(0x80 + i*2)];
sprites_addr[s] = sprite_base + ((sat[MEM_LE2(0x80 + i*2 + 1)] & addr_mask) << (5-1)) +
((scanline - y) << (2-1));
s++;
}
@ -145,7 +145,7 @@ static void draw_sprites(int scanline)
// now draw all sprites backwards
for (--s; s >= 0; s--) {
pack = *(u32 *)(PicoMem.vram + sprites_addr[s]);
pack = CPU_LE2(*(u32 *)(PicoMem.vram + sprites_addr[s]));
TileNormM4(sprites_x[s], pack, 0x10);
}
}
@ -176,7 +176,7 @@ static void draw_strip_low(const unsigned short *nametab, int dx, int cells, int
pal = (code>>7) & 0x10;
}
pack = *(u32 *)(PicoMem.vram + addr); /* Get 4 bitplanes / 8 pixels */
pack = CPU_LE2(*(u32 *)(PicoMem.vram + addr)); /* Get 4 bitplanes / 8 pixels */
if (pack == 0) TileBGM4(dx, pal);
else if (code & 0x0200) TileFlipM4Low(dx, pack, pal);
else TileNormM4Low(dx, pack, pal);
@ -211,7 +211,7 @@ static void draw_strip_high(const unsigned short *nametab, int dx, int cells, in
pal = (code>>7) & 0x10;
}
pack = *(u32 *)(PicoMem.vram + addr); /* Get 4 bitplanes / 8 pixels */
pack = CPU_LE2(*(u32 *)(PicoMem.vram + addr)); /* Get 4 bitplanes / 8 pixels */
if (pack == 0) {
blank = code;
continue;