citra-emu
/
citra-canary
Archived
1
0
Fork 0

Video core: Fix A4 texture decoding

It was trying to take the LSB from `coarse_x`, which would always be 0
and thus would always return the same texel from each byte. To add
insult to the injury, the conditional was actually the wrong way around
too.

Fixes blocky text in OoT.
This commit is contained in:
Yuri Kunde Schlesner 2015-02-25 23:05:14 -03:00
parent 1b5ee96797
commit ea3c99f3a2
1 changed files with 2 additions and 2 deletions

View File

@ -436,9 +436,9 @@ const Math::Vec4<u8> LookupTexture(const u8* source, int x, int y, const Texture
case Regs::TextureFormat::A4:
{
const u8* source_ptr = source + offset / 2 + i / 2;
const u8* source_ptr = source + (offset + i) / 2;
u8 a = (coarse_x % 2) ? ((*source_ptr)&0xF) : (((*source_ptr) & 0xF0) >> 4);
u8 a = (i % 2) ? ((*source_ptr & 0xF0) >> 4) : (*source_ptr & 0xF);
a = Color::Convert4To8(a);
if (disable_alpha) {