1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00

Code cleanup in gDPLoadTile.

This commit is contained in:
Sergey Lipskiy 2014-12-24 11:36:07 +06:00
parent d55c95d671
commit 163d8a1505

16
gDP.cpp
View File

@ -596,10 +596,6 @@ void gDPLoadTile32b(u32 uls, u32 ult, u32 lrs, u32 lrt)
void gDPLoadTile(u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt) void gDPLoadTile(u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt)
{ {
u32 address, bpl, line, y;
u64 *dest;
u8 *src;
gDPSetTileSize( tile, uls, ult, lrs, lrt ); gDPSetTileSize( tile, uls, ult, lrs, lrt );
gDP.loadTile = &gDP.tiles[tile]; gDP.loadTile = &gDP.tiles[tile];
gDP.loadTile->loadType = LOADTYPE_TILE; gDP.loadTile->loadType = LOADTYPE_TILE;
@ -621,11 +617,9 @@ void gDPLoadTile(u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt)
if (gDP.loadTile->line == 0) if (gDP.loadTile->line == 0)
return; return;
address = gDP.textureImage.address + gDP.loadTile->ult * gDP.textureImage.bpl + (gDP.loadTile->uls << gDP.textureImage.size >> 1); const u32 address = gDP.textureImage.address + gDP.loadTile->ult * gDP.textureImage.bpl + (gDP.loadTile->uls << gDP.textureImage.size >> 1);
dest = &TMEM[gDP.loadTile->tmem]; const u32 bpl = gDP.loadTile->line << 3;
bpl = gDP.loadTile->line << 3;
const u32 bytes = height * bpl; const u32 bytes = height * bpl;
src = &RDRAM[address];
if (((address + bytes) > RDRAMSize) || if (((address + bytes) > RDRAMSize) ||
(((gDP.loadTile->tmem << 3) + bytes) > 4096)) // Stay within TMEM (((gDP.loadTile->tmem << 3) + bytes) > 4096)) // Stay within TMEM
@ -644,8 +638,10 @@ void gDPLoadTile(u32 tile, u32 uls, u32 ult, u32 lrs, u32 lrt)
if (gDP.loadTile->size == G_IM_SIZ_32b) if (gDP.loadTile->size == G_IM_SIZ_32b)
gDPLoadTile32b(gDP.loadTile->uls, gDP.loadTile->ult, gDP.loadTile->lrs, gDP.loadTile->lrt); gDPLoadTile32b(gDP.loadTile->uls, gDP.loadTile->ult, gDP.loadTile->lrs, gDP.loadTile->lrt);
else { else {
line = gDP.loadTile->line; u64 * dest = &TMEM[gDP.loadTile->tmem];
for (y = 0; y < height; ++y) { u8 * src = &RDRAM[address];
const u32 line = gDP.loadTile->line;
for (u32 y = 0; y < height; ++y) {
UnswapCopy(src, dest, bpl); UnswapCopy(src, dest, bpl);
if (y & 1) DWordInterleave(dest, line); if (y & 1) DWordInterleave(dest, line);