summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon')
-rw-r--r--Source/Core/VideoCommon/Src/TextureDecoder.cpp19
-rw-r--r--Source/Core/VideoCommon/Src/TextureDecoder.h1
2 files changed, 11 insertions, 9 deletions
diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.cpp b/Source/Core/VideoCommon/Src/TextureDecoder.cpp
index 9c2daa3f8e..252f1843a1 100644
--- a/Source/Core/VideoCommon/Src/TextureDecoder.cpp
+++ b/Source/Core/VideoCommon/Src/TextureDecoder.cpp
@@ -262,15 +262,15 @@ inline void decodebytesC14X2(u32 *dst, const u16 *src, int tlutaddr, int tlutfmt
}
}
-//inline void decodebytesIA4(u32 *dst, const u8 *src, int numbytes)
-inline void decodebytesIA4(u32 *dst, const u8 *src)
+//inline void decodebytesIA4(u16 *dst, const u8 *src, int numbytes)
+inline void decodebytesIA4(u16 *dst, const u8 *src)
{
for (int x = 0; x < 8; x++)
{
- int val = src[x];
- int a = lut4to8[val>>4];
- int r = lut4to8[val&15];
- dst[x] = (a<<24) | (r<<16) | (r<<8) | r;
+ const u8 val = src[x];
+ const u8 a = lut4to8[val>>4];
+ const u8 l = lut4to8[val&0xF];
+ dst[x] = (a<<8) | l;
}
}
@@ -398,11 +398,12 @@ PC_TexFormat TexDecoder_Decode(u8 *dst, const u8 *src, int width, int height, in
{
for (int y = 0; y < height; y += 4)
for (int x = 0; x < width; x += 8)
- for (int iy = 0; iy < 4; iy++, src += 8)
+ for (int iy = 0; iy < 4; iy++, src += 8) {
//decodebytesIA4((u32*)dst+(y+iy)*width+x, src, 8);
- decodebytesIA4((u32*)dst+(y+iy)*width+x, src);
+ decodebytesIA4((u16*)dst+(y+iy)*width+x, src);
+ }
}
- return PC_TEX_FMT_BGRA32;
+ return PC_TEX_FMT_IA8;
case GX_TF_IA8:
{
for (int y = 0; y < height; y += 4)
diff --git a/Source/Core/VideoCommon/Src/TextureDecoder.h b/Source/Core/VideoCommon/Src/TextureDecoder.h
index 87f9cdedb3..ff7a3fe568 100644
--- a/Source/Core/VideoCommon/Src/TextureDecoder.h
+++ b/Source/Core/VideoCommon/Src/TextureDecoder.h
@@ -73,6 +73,7 @@ enum PC_TexFormat
{
PC_TEX_FMT_NONE = 0,
PC_TEX_FMT_BGRA32,
+ PC_TEX_FMT_IA4,
PC_TEX_FMT_I8,
PC_TEX_FMT_IA8,
PC_TEX_FMT_RGB565,