aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/ds/arm9/source
diff options
context:
space:
mode:
authorBertrand Augereau2006-12-09 13:42:00 +0000
committerBertrand Augereau2006-12-09 13:42:00 +0000
commit308f46aa9e28e14a759b1f478f1e40c6696650df (patch)
tree910f2d1be7048c8c46a7c7bfa12bf018ec312b85 /backends/platform/ds/arm9/source
parent4f79f3c7f06438d09085e6422a14247b5c754903 (diff)
downloadscummvm-rg350-308f46aa9e28e14a759b1f478f1e40c6696650df.tar.gz
scummvm-rg350-308f46aa9e28e14a759b1f478f1e40c6696650df.tar.bz2
scummvm-rg350-308f46aa9e28e14a759b1f478f1e40c6696650df.zip
NDS : Scaler cleaning
svn-id: r24820
Diffstat (limited to 'backends/platform/ds/arm9/source')
-rw-r--r--backends/platform/ds/arm9/source/blitters.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/backends/platform/ds/arm9/source/blitters.cpp b/backends/platform/ds/arm9/source/blitters.cpp
index 767cdb624c..4760fa484b 100644
--- a/backends/platform/ds/arm9/source/blitters.cpp
+++ b/backends/platform/ds/arm9/source/blitters.cpp
@@ -135,7 +135,7 @@ void asmCopy8Col(byte* dst, int dstPitch, const byte* src, int height) {
}
static bool isDivBy5Ready = false;
-static u32 DIV_BY_5[512];
+static u32 DIV_BY_5[160];
void ComputeDivBy5TableIFN()
{
@@ -143,7 +143,7 @@ void ComputeDivBy5TableIFN()
return;
isDivBy5Ready = true;
- for(int i=0; i<512; ++i)
+ for(int i=0; i<160; ++i)
{
DIV_BY_5[i] = (2*i+5)/10;
}
@@ -270,14 +270,6 @@ static inline void RescaleBlock_5x8888_To_4x1555( u32 s0, u32 s1, u32 s2, u32 s3
((u32*)dest)[1] = d32;
}
-inline u32 Convert555To8888(u16 pixel)
-{
- u32 result = pixel & 0x1F;
- result |= ((pixel >> 5) & 0x1F) << 8;
- result |= ((pixel >> 10) & 0x1F) << 16;
- return result;
-}
-
// Can't work in place
void Rescale_320xPAL8Scanline_To_256x1555Scanline(u16* dest, const u8* src, const u32* palette)
{
@@ -316,8 +308,17 @@ void Rescale_320x1555Scanline_To_256x1555Scanline(u16* dest, const u16* src)
void Rescale_320x256xPAL8_To_256x256x1555(u16* dest, const u8* src, const u16* palette, int destStride, int srcStride)
{
u32* fastRam = (u32 *) (0x37F8000 + 16384);
+
+ // Palette lookup -> 0_888
for(size_t i=0; i<256; ++i)
- fastRam[i] = Convert555To8888(palette[i]);
+ {
+ u32 col = palette[i];
+ u32 result = col & 0x0000001F;
+ result |= (col << 3) & 0x00001F00;
+ result |= (col << 6) & 0x001F0000;
+
+ fastRam[i] = result;
+ }
for(size_t i=0; i<200; ++i)
{