mirror of
https://github.com/holub/mame
synced 2025-07-04 09:28:51 +03:00
Moogly's fix for N64 texture clamping.
This commit is contained in:
parent
c9554cb8e1
commit
26f4b001c5
@ -1011,15 +1011,21 @@ do \
|
|||||||
\
|
\
|
||||||
/* bilinear */ \
|
/* bilinear */ \
|
||||||
\
|
\
|
||||||
sss1 = (SSS >> 10) - (tsl >> 2); \
|
sss1 = SSS >> 10; \
|
||||||
sss2 = sss1 + 1; \
|
sss2 = sss1 + 1; \
|
||||||
\
|
\
|
||||||
sst1 = (SST >> 10) - (ttl >> 2); \
|
sst1 = SST >> 10; \
|
||||||
sst2 = sst1 + 1; \
|
sst2 = sst1 + 1; \
|
||||||
\
|
\
|
||||||
CLAMP(sss1, sst1); \
|
CLAMP(sss1, sst1); \
|
||||||
CLAMP(sss2, sst2); \
|
CLAMP(sss2, sst2); \
|
||||||
\
|
\
|
||||||
|
sss1 -= tsl >> 2; \
|
||||||
|
sss2 -= tsl >> 2; \
|
||||||
|
\
|
||||||
|
sst1 -= ttl >> 2; \
|
||||||
|
sst2 -= ttl >> 2; \
|
||||||
|
\
|
||||||
FETCH_TEXEL(&t0, sss1, sst1, twidth, tformat, tsize, tbase); \
|
FETCH_TEXEL(&t0, sss1, sst1, twidth, tformat, tsize, tbase); \
|
||||||
FETCH_TEXEL(&t1, sss2, sst1, twidth, tformat, tsize, tbase); \
|
FETCH_TEXEL(&t1, sss2, sst1, twidth, tformat, tsize, tbase); \
|
||||||
FETCH_TEXEL(&t2, sss1, sst2, twidth, tformat, tsize, tbase); \
|
FETCH_TEXEL(&t2, sss1, sst2, twidth, tformat, tsize, tbase); \
|
||||||
@ -1040,14 +1046,17 @@ do \
|
|||||||
else \
|
else \
|
||||||
{ \
|
{ \
|
||||||
int sss1, sst1; \
|
int sss1, sst1; \
|
||||||
sss1 = (SSS >> 10) - (tsl >> 2); \
|
sss1 = SSS >> 10; \
|
||||||
if ((SSS & 0x3ff) >= 0x200) sss1++; \
|
if ((SSS & 0x3ff) >= 0x200) sss1++; \
|
||||||
\
|
\
|
||||||
sst1 = (SST >> 10) - (ttl >> 2); \
|
sst1 = SST >> 10; \
|
||||||
if ((SST & 0x3ff) >= 0x200) sst1++; \
|
if ((SST & 0x3ff) >= 0x200) sst1++; \
|
||||||
\
|
\
|
||||||
CLAMP(sss1, sst1); \
|
CLAMP(sss1, sst1); \
|
||||||
\
|
\
|
||||||
|
sss1 -= tsl >> 2; \
|
||||||
|
sst1 -= ttl >> 2; \
|
||||||
|
\
|
||||||
/* point sample */ \
|
/* point sample */ \
|
||||||
FETCH_TEXEL(&TEX, sss1, sst1, twidth, tformat, tsize, tbase); \
|
FETCH_TEXEL(&TEX, sss1, sst1, twidth, tformat, tsize, tbase); \
|
||||||
} \
|
} \
|
||||||
@ -1185,9 +1194,8 @@ static void texture_rectangle_16bit(TEX_RECTANGLE *rect)
|
|||||||
tsize = tile[rect->tilenum].size;
|
tsize = tile[rect->tilenum].size;
|
||||||
tbase = tile[rect->tilenum].tmem;
|
tbase = tile[rect->tilenum].tmem;
|
||||||
|
|
||||||
// FIXME?: clamping breaks at least Rampage World Tour
|
clamp_t = tile[rect->tilenum].ct;
|
||||||
clamp_t = 0; //tile[rect->tilenum].ct;
|
clamp_s = tile[rect->tilenum].cs;
|
||||||
clamp_s = 0; //tile[rect->tilenum].cs;
|
|
||||||
|
|
||||||
mirror_t = tile[rect->tilenum].mt;
|
mirror_t = tile[rect->tilenum].mt;
|
||||||
mirror_s = tile[rect->tilenum].ms;
|
mirror_s = tile[rect->tilenum].ms;
|
||||||
@ -1566,9 +1574,8 @@ static void texture_rectangle_32bit(TEX_RECTANGLE *rect)
|
|||||||
tsize = tile[rect->tilenum].size;
|
tsize = tile[rect->tilenum].size;
|
||||||
tbase = tile[rect->tilenum].tmem;
|
tbase = tile[rect->tilenum].tmem;
|
||||||
|
|
||||||
// FIXME?: clamping breaks at least Rampage World Tour
|
clamp_t = tile[rect->tilenum].ct;
|
||||||
clamp_t = 0; //tile[rect->tilenum].ct;
|
clamp_s = tile[rect->tilenum].cs;
|
||||||
clamp_s = 0; //tile[rect->tilenum].cs;
|
|
||||||
|
|
||||||
mirror_t = tile[rect->tilenum].mt;
|
mirror_t = tile[rect->tilenum].mt;
|
||||||
mirror_s = tile[rect->tilenum].ms;
|
mirror_s = tile[rect->tilenum].ms;
|
||||||
|
Loading…
Reference in New Issue
Block a user