mirror of
https://github.com/RocketRobz/SuperAllStarPhotoStudio.git
synced 2025-06-18 17:15:35 -04:00
DS(i): Reduce color LUT size from 128KB to 64KB
This commit is contained in:
parent
4654d4d756
commit
d75fb987b8
@ -188,7 +188,7 @@ void GFX::loadSheets() {
|
||||
}
|
||||
bmpImageBuffer[1][i] = image[i*4]>>3 | (image[(i*4)+1]>>3)<<5 | (image[(i*4)+2]>>3)<<10 | BIT(15);
|
||||
if (colorTable) {
|
||||
bmpImageBuffer[1][i] = colorTable[bmpImageBuffer[1][i]];
|
||||
bmpImageBuffer[1][i] = colorTable[bmpImageBuffer[1][i] % 0x8000];
|
||||
}
|
||||
if (charSpriteAlpha[i] == 255) {
|
||||
bmpImageBuffer[0][i] = bmpImageBuffer[1][i];
|
||||
@ -221,7 +221,7 @@ void GFX::loadSheets() {
|
||||
}
|
||||
bmpImageBuffer2[1][i] = image[i*4]>>3 | (image[(i*4)+1]>>3)<<5 | (image[(i*4)+2]>>3)<<10 | BIT(15);
|
||||
if (colorTable) {
|
||||
bmpImageBuffer2[1][i] = colorTable[bmpImageBuffer2[1][i]];
|
||||
bmpImageBuffer2[1][i] = colorTable[bmpImageBuffer2[1][i] % 0x8000];
|
||||
}
|
||||
if (charSpriteAlpha[i] == 255) {
|
||||
bmpImageBuffer2[0][i] = bmpImageBuffer2[1][i];
|
||||
@ -308,8 +308,8 @@ void GFX::loadBgSprite(void) {
|
||||
if (dsiFeatures()) {
|
||||
swiWaitForVBlank(); // Prevent screen tearing
|
||||
if (colorTable) {
|
||||
dmaFillHalfWords(colorTable[0xFFFF], bgGetGfxPtr(bg2Main), 0x18000);
|
||||
dmaFillHalfWords(colorTable[0xFFFF], bgGetGfxPtr(bg3Main), 0x18000);
|
||||
dmaFillHalfWords(colorTable[0xFFFF % 0x8000], bgGetGfxPtr(bg2Main), 0x18000);
|
||||
dmaFillHalfWords(colorTable[0xFFFF % 0x8000], bgGetGfxPtr(bg3Main), 0x18000);
|
||||
} else {
|
||||
dmaFillHalfWords(0xFFFF, bgGetGfxPtr(bg2Main), 0x18000);
|
||||
dmaFillHalfWords(0xFFFF, bgGetGfxPtr(bg3Main), 0x18000);
|
||||
@ -1301,7 +1301,7 @@ ITCM_CODE void GFX::loadCharSpriteMem(const int zoomIn, const bool* flipH) {
|
||||
}
|
||||
|
||||
if (colorTable) {
|
||||
fg = colorTable[fg];
|
||||
fg = colorTable[fg % 0x8000];
|
||||
}
|
||||
|
||||
int buffer = 0;
|
||||
|
@ -95,7 +95,7 @@ void applyColorLut(u16 *palette, int size) {
|
||||
return;
|
||||
}
|
||||
for (int i = 0; i < size; i++) {
|
||||
palette[i] = colorTable[palette[i]];
|
||||
palette[i] = colorTable[palette[i] % 0x8000];
|
||||
}
|
||||
}
|
||||
|
||||
@ -103,7 +103,7 @@ void applyColorLut(u16 *palette, int size) {
|
||||
void copyPalette16(u16 *dst, const u16 *src, int size) {
|
||||
if (colorTable) {
|
||||
for (int i = 0; i < size; i++) {
|
||||
dst[i] = colorTable[src[i]];
|
||||
dst[i] = colorTable[src[i] % 0x8000];
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -114,7 +114,7 @@ void copyPalette16(u16 *dst, const u16 *src, int size) {
|
||||
void copyPalette(u16 *dst, const u16 *src, int size) {
|
||||
if (colorTable) {
|
||||
for (int i = 0; i < size/2; i++) {
|
||||
dst[i] = colorTable[src[i]];
|
||||
dst[i] = colorTable[src[i] % 0x8000];
|
||||
}
|
||||
return;
|
||||
}
|
||||
@ -149,14 +149,14 @@ void Gui::init(void) {
|
||||
char colorLutPath[256];
|
||||
sprintf(colorLutPath, "/_nds/colorLut/%s.lut", lutName);
|
||||
|
||||
if (getFileSize(colorLutPath) == 0x20000) {
|
||||
colorTable = new u16[0x20000/sizeof(u16)];
|
||||
if (getFileSize(colorLutPath) == 0x10000) {
|
||||
colorTable = new u16[0x10000/sizeof(u16)];
|
||||
|
||||
file = fopen(colorLutPath, "rb");
|
||||
fread(colorTable, 1, 0x20000, file);
|
||||
fread(colorTable, 1, 0x10000, file);
|
||||
fclose(file);
|
||||
|
||||
tonccpy(VRAM_D, colorTable, 0x20000); // Copy LUT to VRAM
|
||||
tonccpy(VRAM_D, colorTable, 0x10000); // Copy LUT to VRAM
|
||||
delete[] colorTable; // Free up RAM space
|
||||
colorTable = VRAM_D;
|
||||
}
|
||||
|
@ -28,7 +28,7 @@ void fontInit() {
|
||||
};
|
||||
if (colorTable) {
|
||||
for (int i = 1; i < 4; i++) {
|
||||
palette[i] = colorTable[palette[i]];
|
||||
palette[i] = colorTable[palette[i] % 0x8000];
|
||||
}
|
||||
}
|
||||
tonccpy(BG_PALETTE, palette, sizeof(palette));
|
||||
|
Loading…
Reference in New Issue
Block a user