From 21b40c7a6c128cde0cad77d17b1c12f1c6a5e2b0 Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Thu, 18 Sep 2014 23:08:25 +0700 Subject: [PATCH] Remove 2xSAI support. --- 2xSAI.cpp | 647 --------------------------------------- 2xSAI.h | 9 - CMakeLists.txt | 3 +- Config.cpp | 16 +- Config.h | 1 - Config_mupen.cpp | 1 - GLideN64.vcxproj | 2 - GLideN64.vcxproj.filters | 6 - Resource.aps | Bin 41216 -> 42000 bytes Resource.rc | 10 +- Textures.cpp | 62 +--- Textures.h | 2 +- resource.h | 2 +- 13 files changed, 20 insertions(+), 741 deletions(-) delete mode 100644 2xSAI.cpp delete mode 100644 2xSAI.h diff --git a/2xSAI.cpp b/2xSAI.cpp deleted file mode 100644 index 43211894..00000000 --- a/2xSAI.cpp +++ /dev/null @@ -1,647 +0,0 @@ -#include "Types.h" -#include "GBI.h" - -static inline s16 GetResult1( u32 A, u32 B, u32 C, u32 D, u32 E ) -{ - s16 x = 0; - s16 y = 0; - s16 r = 0; - - if (A == C) x += 1; else if (B == C) y += 1; - if (A == D) x += 1; else if (B == D) y += 1; - if (x <= 1) r += 1; - if (y <= 1) r -= 1; - - return r; -} - -static inline s16 GetResult2( u32 A, u32 B, u32 C, u32 D, u32 E) -{ - s16 x = 0; - s16 y = 0; - s16 r = 0; - - if (A == C) x += 1; else if (B == C) y += 1; - if (A == D) x += 1; else if (B == D) y += 1; - if (x <= 1) r -= 1; - if (y <= 1) r += 1; - - return r; -} - - -static inline s16 GetResult( u32 A, u32 B, u32 C, u32 D ) -{ - s16 x = 0; - s16 y = 0; - s16 r = 0; - - if (A == C) x += 1; else if (B == C) y += 1; - if (A == D) x += 1; else if (B == D) y += 1; - if (x <= 1) r += 1; - if (y <= 1) r -= 1; - - return r; -} - -static inline u16 INTERPOLATE4444( u16 A, u16 B) -{ - if (A != B) - return ((A & 0xEEEE) >> 1) + - ((B & 0xEEEE) >> 1) | - (A & B & 0x1111); - else - return A; -} - -static inline u16 INTERPOLATE5551( u16 A, u16 B) -{ - if (A != B) - return ((A & 0xF7BC) >> 1) + - ((B & 0xF7BC) >> 1) | - (A & B & 0x0843); - else - return A; -} - -static inline u32 INTERPOLATE8888( u32 A, u32 B) -{ - if (A != B) - return ((A & 0xFEFEFEFE) >> 1) + - ((B & 0xFEFEFEFE) >> 1) | - (A & B & 0x01010101); - else - return A; -} - -static inline u16 Q_INTERPOLATE4444( u16 A, u16 B, u16 C, u16 D) -{ - u16 x = ((A & 0xCCCC) >> 2) + - ((B & 0xCCCC) >> 2) + - ((C & 0xCCCC) >> 2) + - ((D & 0xCCCC) >> 2); - u16 y = (((A & 0x3333) + - (B & 0x3333) + - (C & 0x3333) + - (D & 0x3333)) >> 2) & 0x3333; - return x | y; -} - -static inline u16 Q_INTERPOLATE5551( u16 A, u16 B, u16 C, u16 D) -{ - u16 x = ((A & 0xE738) >> 2) + - ((B & 0xE738) >> 2) + - ((C & 0xE738) >> 2) + - ((D & 0xE738) >> 2); - u16 y = (((A & 0x18C6) + - (B & 0x18C6) + - (C & 0x18C6) + - (D & 0x18C6)) >> 2) & 0x18C6; - u16 z = ((A & 0x0001) + - (B & 0x0001) + - (C & 0x0001) + - (D & 0x0001)) > 2 ? 1 : 0; - return x | y | z; -} - -static inline u32 Q_INTERPOLATE8888( u32 A, u32 B, u32 C, u32 D) -{ - u32 x = ((A & 0xFCFCFCFC) >> 2) + - ((B & 0xFCFCFCFC) >> 2) + - ((C & 0xFCFCFCFC) >> 2) + - ((D & 0xFCFCFCFC) >> 2); - u32 y = (((A & 0x03030303) + - (B & 0x03030303) + - (C & 0x03030303) + - (D & 0x03030303)) >> 2) & 0x03030303; - return x | y; -} - -void _2xSaI4444( u16 *srcPtr, u16 *destPtr, u16 width, u16 height, s32 clampS, s32 clampT ) -{ - u16 destWidth = width << 1; - u16 destHeight = height << 1; - - u32 colorA, colorB, colorC, colorD, - colorE, colorF, colorG, colorH, - colorI, colorJ, colorK, colorL, - colorM, colorN, colorO, colorP; - u32 product, product1, product2; - - s16 row0, row1, row2, row3; - s16 col0, col1, col2, col3; - - for (u16 y = 0; y < height; y++) - { - if (y > 0) - row0 = -width; - else - row0 = clampT ? 0 : (height - 1) * width; - - row1 = 0; - - if (y < height - 1) - { - row2 = width; - - if (y < height - 2) - row3 = width << 1; - else - row3 = clampT ? width : -y * width; - } - else - { - row2 = clampT ? 0 : -y * width; - row3 = clampT ? 0 : (1 - y) * width; - } - - for (u16 x = 0; x < width; x++) - { - if (x > 0) - col0 = -1; - else - col0 = clampS ? 0 : width - 1; - - col1 = 0; - - if (x < width - 1) - { - col2 = 1; - - if (x < width - 2) - col3 = 2; - else - col3 = clampS ? 1 : -x; - } - else - { - col2 = clampS ? 0 : -x; - col3 = clampS ? 0 : 1 - x; - } - -//--------------------------------------- -// Map of the pixels: I|E F|J -// G|A B|K -// H|C D|L -// M|N O|P - colorI = *(srcPtr + col0 + row0); - colorE = *(srcPtr + col1 + row0); - colorF = *(srcPtr + col2 + row0); - colorJ = *(srcPtr + col3 + row0); - - colorG = *(srcPtr + col0 + row1); - colorA = *(srcPtr + col1 + row1); - colorB = *(srcPtr + col2 + row1); - colorK = *(srcPtr + col3 + row1); - - colorH = *(srcPtr + col0 + row2); - colorC = *(srcPtr + col1 + row2); - colorD = *(srcPtr + col2 + row2); - colorL = *(srcPtr + col3 + row2); - - colorM = *(srcPtr + col0 + row3); - colorN = *(srcPtr + col1 + row3); - colorO = *(srcPtr + col2 + row3); - colorP = *(srcPtr + col3 + row3); - - if ((colorA == colorD) && (colorB != colorC)) - { - if ( ((colorA == colorE) && (colorB == colorL)) || - ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ)) ) - product = colorA; - else - product = INTERPOLATE4444(colorA, colorB); - - if (((colorA == colorG) && (colorC == colorO)) || - ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM)) ) - product1 = colorA; - else - product1 = INTERPOLATE4444(colorA, colorC); - - product2 = colorA; - } - else if ((colorB == colorC) && (colorA != colorD)) - { - if (((colorB == colorF) && (colorA == colorH)) || - ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI)) ) - product = colorB; - else - product = INTERPOLATE4444(colorA, colorB); - - if (((colorC == colorH) && (colorA == colorF)) || - ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI)) ) - product1 = colorC; - else - product1 = INTERPOLATE4444(colorA, colorC); - product2 = colorB; - } - else if ((colorA == colorD) && (colorB == colorC)) - { - if (colorA == colorB) - { - product = colorA; - product1 = colorA; - product2 = colorA; - } - else - { - s16 r = 0; - product1 = INTERPOLATE4444(colorA, colorC); - product = INTERPOLATE4444(colorA, colorB); - - r += GetResult1 (colorA, colorB, colorG, colorE, colorI); - r += GetResult2 (colorB, colorA, colorK, colorF, colorJ); - r += GetResult2 (colorB, colorA, colorH, colorN, colorM); - r += GetResult1 (colorA, colorB, colorL, colorO, colorP); - - if (r > 0) - product2 = colorA; - else if (r < 0) - product2 = colorB; - else - product2 = Q_INTERPOLATE4444(colorA, colorB, colorC, colorD); - } - } - else - { - product2 = Q_INTERPOLATE4444(colorA, colorB, colorC, colorD); - - if ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ)) - product = colorA; - else if ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI)) - product = colorB; - else - product = INTERPOLATE4444(colorA, colorB); - - if ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM)) - product1 = colorA; - else if ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI)) - product1 = colorC; - else - product1 = INTERPOLATE4444(colorA, colorC); - } - - destPtr[0] = colorA; - destPtr[1] = product; - destPtr[destWidth] = product1; - destPtr[destWidth + 1] = product2; - - srcPtr++; - destPtr += 2; - } - destPtr += destWidth; - } -} - -void _2xSaI5551( u16 *srcPtr, u16 *destPtr, u16 width, u16 height, s32 clampS, s32 clampT ) -{ - u16 destWidth = width << 1; - u16 destHeight = height << 1; - - u32 colorA, colorB, colorC, colorD, - colorE, colorF, colorG, colorH, - colorI, colorJ, colorK, colorL, - colorM, colorN, colorO, colorP; - u32 product, product1, product2; - - s16 row0, row1, row2, row3; - s16 col0, col1, col2, col3; - - for (u16 y = 0; y < height; y++) - { - if (y > 0) - row0 = -width; - else - row0 = clampT ? 0 : (height - 1) * width; - - row1 = 0; - - if (y < height - 1) - { - row2 = width; - - if (y < height - 2) - row3 = width << 1; - else - row3 = clampT ? width : -y * width; - } - else - { - row2 = clampT ? 0 : -y * width; - row3 = clampT ? 0 : (1 - y) * width; - } - - for (u16 x = 0; x < width; x++) - { - if (x > 0) - col0 = -1; - else - col0 = clampS ? 0 : width - 1; - - col1 = 0; - - if (x < width - 1) - { - col2 = 1; - - if (x < width - 2) - col3 = 2; - else - col3 = clampS ? 1 : -x; - } - else - { - col2 = clampS ? 0 : -x; - col3 = clampS ? 0 : 1 - x; - } - -//--------------------------------------- -// Map of the pixels: I|E F|J -// G|A B|K -// H|C D|L -// M|N O|P - colorI = *(srcPtr + col0 + row0); - colorE = *(srcPtr + col1 + row0); - colorF = *(srcPtr + col2 + row0); - colorJ = *(srcPtr + col3 + row0); - - colorG = *(srcPtr + col0 + row1); - colorA = *(srcPtr + col1 + row1); - colorB = *(srcPtr + col2 + row1); - colorK = *(srcPtr + col3 + row1); - - colorH = *(srcPtr + col0 + row2); - colorC = *(srcPtr + col1 + row2); - colorD = *(srcPtr + col2 + row2); - colorL = *(srcPtr + col3 + row2); - - colorM = *(srcPtr + col0 + row3); - colorN = *(srcPtr + col1 + row3); - colorO = *(srcPtr + col2 + row3); - colorP = *(srcPtr + col3 + row3); - - if ((colorA == colorD) && (colorB != colorC)) - { - if ( ((colorA == colorE) && (colorB == colorL)) || - ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ)) ) - product = colorA; - else - product = INTERPOLATE5551(colorA, colorB); - - if (((colorA == colorG) && (colorC == colorO)) || - ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM)) ) - product1 = colorA; - else - product1 = INTERPOLATE5551(colorA, colorC); - - product2 = colorA; - } - else if ((colorB == colorC) && (colorA != colorD)) - { - if (((colorB == colorF) && (colorA == colorH)) || - ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI)) ) - product = colorB; - else - product = INTERPOLATE5551(colorA, colorB); - - if (((colorC == colorH) && (colorA == colorF)) || - ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI)) ) - product1 = colorC; - else - product1 = INTERPOLATE5551(colorA, colorC); - product2 = colorB; - } - else if ((colorA == colorD) && (colorB == colorC)) - { - if (colorA == colorB) - { - product = colorA; - product1 = colorA; - product2 = colorA; - } - else - { - s16 r = 0; - product1 = INTERPOLATE5551(colorA, colorC); - product = INTERPOLATE5551(colorA, colorB); - - r += GetResult1 (colorA, colorB, colorG, colorE, colorI); - r += GetResult2 (colorB, colorA, colorK, colorF, colorJ); - r += GetResult2 (colorB, colorA, colorH, colorN, colorM); - r += GetResult1 (colorA, colorB, colorL, colorO, colorP); - - if (r > 0) - product2 = colorA; - else if (r < 0) - product2 = colorB; - else - product2 = Q_INTERPOLATE5551(colorA, colorB, colorC, colorD); - } - } - else - { - product2 = Q_INTERPOLATE5551(colorA, colorB, colorC, colorD); - - if ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ)) - product = colorA; - else if ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI)) - product = colorB; - else - product = INTERPOLATE5551(colorA, colorB); - - if ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM)) - product1 = colorA; - else if ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI)) - product1 = colorC; - else - product1 = INTERPOLATE5551(colorA, colorC); - } - - destPtr[0] = colorA; - destPtr[1] = product; - destPtr[destWidth] = product1; - destPtr[destWidth + 1] = product2; - - srcPtr++; - destPtr += 2; - } - destPtr += destWidth; - } -} - -void _2xSaI8888( u32 *srcPtr, u32 *destPtr, u16 width, u16 height, s32 clampS, s32 clampT ) -{ - u16 destWidth = width << 1; - u16 destHeight = height << 1; - - u32 colorA, colorB, colorC, colorD, - colorE, colorF, colorG, colorH, - colorI, colorJ, colorK, colorL, - colorM, colorN, colorO, colorP; - u32 product, product1, product2; - - s16 row0, row1, row2, row3; - s16 col0, col1, col2, col3; - - for (u16 y = 0; y < height; y++) - { - if (y > 0) - row0 = -width; - else - row0 = clampT ? 0 : (height - 1) * width; - - row1 = 0; - - if (y < height - 1) - { - row2 = width; - - if (y < height - 2) - row3 = width << 1; - else - row3 = clampT ? width : -y * width; - } - else - { - row2 = clampT ? 0 : -y * width; - row3 = clampT ? 0 : (1 - y) * width; - } - - for (u16 x = 0; x < width; x++) - { - if (x > 0) - col0 = -1; - else - col0 = clampS ? 0 : width - 1; - - col1 = 0; - - if (x < width - 1) - { - col2 = 1; - - if (x < width - 2) - col3 = 2; - else - col3 = clampS ? 1 : -x; - } - else - { - col2 = clampS ? 0 : -x; - col3 = clampS ? 0 : 1 - x; - } - -//--------------------------------------- -// Map of the pixels: I|E F|J -// G|A B|K -// H|C D|L -// M|N O|P - colorI = *(srcPtr + col0 + row0); - colorE = *(srcPtr + col1 + row0); - colorF = *(srcPtr + col2 + row0); - colorJ = *(srcPtr + col3 + row0); - - colorG = *(srcPtr + col0 + row1); - colorA = *(srcPtr + col1 + row1); - colorB = *(srcPtr + col2 + row1); - colorK = *(srcPtr + col3 + row1); - - colorH = *(srcPtr + col0 + row2); - colorC = *(srcPtr + col1 + row2); - colorD = *(srcPtr + col2 + row2); - colorL = *(srcPtr + col3 + row2); - - colorM = *(srcPtr + col0 + row3); - colorN = *(srcPtr + col1 + row3); - colorO = *(srcPtr + col2 + row3); - colorP = *(srcPtr + col3 + row3); - - if ((colorA == colorD) && (colorB != colorC)) - { - if ( ((colorA == colorE) && (colorB == colorL)) || - ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ)) ) - product = colorA; - else - product = INTERPOLATE8888(colorA, colorB); - - if (((colorA == colorG) && (colorC == colorO)) || - ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM)) ) - product1 = colorA; - else - product1 = INTERPOLATE8888(colorA, colorC); - - product2 = colorA; - } - else if ((colorB == colorC) && (colorA != colorD)) - { - if (((colorB == colorF) && (colorA == colorH)) || - ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI)) ) - product = colorB; - else - product = INTERPOLATE8888(colorA, colorB); - - if (((colorC == colorH) && (colorA == colorF)) || - ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI)) ) - product1 = colorC; - else - product1 = INTERPOLATE8888(colorA, colorC); - product2 = colorB; - } - else if ((colorA == colorD) && (colorB == colorC)) - { - if (colorA == colorB) - { - product = colorA; - product1 = colorA; - product2 = colorA; - } - else - { - s16 r = 0; - product1 = INTERPOLATE8888(colorA, colorC); - product = INTERPOLATE8888(colorA, colorB); - - r += GetResult1 (colorA, colorB, colorG, colorE, colorI); - r += GetResult2 (colorB, colorA, colorK, colorF, colorJ); - r += GetResult2 (colorB, colorA, colorH, colorN, colorM); - r += GetResult1 (colorA, colorB, colorL, colorO, colorP); - - if (r > 0) - product2 = colorA; - else if (r < 0) - product2 = colorB; - else - product2 = Q_INTERPOLATE8888(colorA, colorB, colorC, colorD); - } - } - else - { - product2 = Q_INTERPOLATE8888(colorA, colorB, colorC, colorD); - - if ((colorA == colorC) && (colorA == colorF) && (colorB != colorE) && (colorB == colorJ)) - product = colorA; - else if ((colorB == colorE) && (colorB == colorD) && (colorA != colorF) && (colorA == colorI)) - product = colorB; - else - product = INTERPOLATE8888(colorA, colorB); - - if ((colorA == colorB) && (colorA == colorH) && (colorG != colorC) && (colorC == colorM)) - product1 = colorA; - else if ((colorC == colorG) && (colorC == colorD) && (colorA != colorH) && (colorA == colorI)) - product1 = colorC; - else - product1 = INTERPOLATE8888(colorA, colorC); - } - - destPtr[0] = colorA; - destPtr[1] = product; - destPtr[destWidth] = product1; - destPtr[destWidth + 1] = product2; - - srcPtr++; - destPtr += 2; - } - destPtr += destWidth; - } -} - diff --git a/2xSAI.h b/2xSAI.h deleted file mode 100644 index 1b47cc93..00000000 --- a/2xSAI.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef _2XSAI_H -#define _2XSAI_H -#include "Types.h" - -void _2xSaI8888( u32 *srcPtr, u32 *destPtr, u16 width, u16 height, s32 clampS, s32 clampT ); -void _2xSaI4444( u16 *srcPtr, u16 *destPtr, u16 width, u16 height, s32 clampS, s32 clampT ); -void _2xSaI5551( u16 *srcPtr, u16 *destPtr, u16 width, u16 height, s32 clampS, s32 clampT ); -#endif - diff --git a/CMakeLists.txt b/CMakeLists.txt index f54c5c16..84799095 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,7 @@ cmake_minimum_required(VERSION 2.6) project( GLideN64 ) -set(GLideN64_SOURCES - 2xSAI.cpp +set(GLideN64_SOURCES 3DMath.cpp Combiner.cpp CRC.cpp diff --git a/Config.cpp b/Config.cpp index e45cd709..af2437de 100644 --- a/Config.cpp +++ b/Config.cpp @@ -73,8 +73,8 @@ void Config_LoadConfig() RegQueryValueEx( hKey, "Force Bilinear", 0, NULL, (BYTE*)&value, &size ); config.texture.forceBilinear = value ? TRUE : FALSE; - RegQueryValueEx( hKey, "Enable 2xSaI", 0, NULL, (BYTE*)&value, &size ); - config.texture.enable2xSaI = value ? TRUE : FALSE; + RegQueryValueEx( hKey, "Write depth", 0, NULL, (BYTE*)&value, &size ); + config.frameBufferEmulation.copyDepthToRDRAM = value ? TRUE : FALSE; RegQueryValueEx( hKey, "Enable Fog", 0, NULL, (BYTE*)&value, &size ); config.enableFog = value ? TRUE : FALSE; @@ -105,14 +105,13 @@ void Config_LoadConfig() config.texture.forceBilinear = FALSE; cache.maxBytes = 32 * 1048576; config.frameBufferEmulation.enable = FALSE; - config.texture.enable2xSaI = FALSE; + config.frameBufferEmulation.copyDepthToRDRAM = FALSE; config.texture.textureBitDepth = 1; config.enableHWLighting = FALSE; } // manually set frame bufer emulation options config.frameBufferEmulation.copyToRDRAM = FALSE; - config.frameBufferEmulation.copyDepthToRDRAM = FALSE; config.frameBufferEmulation.copyFromRDRAM = FALSE; config.frameBufferEmulation.ignoreCFB = TRUE; config.frameBufferEmulation.N64DepthCompare = FALSE; @@ -136,8 +135,8 @@ void Config_SaveConfig() value = config.texture.forceBilinear ? 1 : 0; RegSetValueEx( hKey, "Force Bilinear", 0, REG_DWORD, (BYTE*)&value, 4 ); - value = config.texture.enable2xSaI ? 1 : 0; - RegSetValueEx( hKey, "Enable 2xSaI", 0, REG_DWORD, (BYTE*)&value, 4 ); + value = config.frameBufferEmulation.copyDepthToRDRAM ? 1 : 0; + RegSetValueEx( hKey, "Write depth", 0, REG_DWORD, (BYTE*)&value, 4 ); value = config.enableFog ? 1 : 0; RegSetValueEx( hKey, "Enable Fog", 0, REG_DWORD, (BYTE*)&value, 4 ); @@ -166,9 +165,8 @@ void Config_ApplyDlgConfig( HWND hWndDlg ) cache.maxBytes = atol( text ) * 1048576; config.texture.forceBilinear = (SendDlgItemMessage( hWndDlg, IDC_FORCEBILINEAR, BM_GETCHECK, NULL, NULL ) == BST_CHECKED); - config.texture.enable2xSaI = (SendDlgItemMessage( hWndDlg, IDC_ENABLE2XSAI, BM_GETCHECK, NULL, NULL ) == BST_CHECKED); + config.frameBufferEmulation.copyDepthToRDRAM = (SendDlgItemMessage( hWndDlg, IDC_ENABLEDEPTHWRITE, BM_GETCHECK, NULL, NULL ) == BST_CHECKED); config.enableFog = (SendDlgItemMessage( hWndDlg, IDC_FOG, BM_GETCHECK, NULL, NULL ) == BST_CHECKED); - //OGL.originAdjust = (OGL.enable2xSaI ? 0.25f : 0.50f); config.video.fullscreenBits = fullscreen.bitDepth[SendDlgItemMessage( hWndDlg, IDC_FULLSCREENBITDEPTH, CB_GETCURSEL, 0, 0 )]; i = SendDlgItemMessage( hWndDlg, IDC_FULLSCREENRES, CB_GETCURSEL, 0, 0 ); @@ -328,7 +326,7 @@ BOOL CALLBACK ConfigDlgProc( HWND hWndDlg, UINT message, WPARAM wParam, LPARAM l SendDlgItemMessage( hWndDlg, IDC_WINDOWEDRES, CB_SETCURSEL, i, 0 ); } } - SendDlgItemMessage( hWndDlg, IDC_ENABLE2XSAI, BM_SETCHECK, config.texture.enable2xSaI ? (LPARAM)BST_CHECKED : (LPARAM)BST_UNCHECKED, NULL ); + SendDlgItemMessage( hWndDlg, IDC_ENABLEDEPTHWRITE, BM_SETCHECK, config.frameBufferEmulation.copyDepthToRDRAM ? (LPARAM)BST_CHECKED : (LPARAM)BST_UNCHECKED, NULL ); // Set forced bilinear check box SendDlgItemMessage( hWndDlg, IDC_FORCEBILINEAR, BM_SETCHECK, config.texture.forceBilinear ? (LPARAM)BST_CHECKED : (LPARAM)BST_UNCHECKED, NULL ); SendDlgItemMessage( hWndDlg, IDC_TEXTUREBPP, CB_ADDSTRING, 0, (LPARAM)"16-bit only (faster)" ); diff --git a/Config.h b/Config.h index 56bf8042..d91ed6d9 100644 --- a/Config.h +++ b/Config.h @@ -18,7 +18,6 @@ struct Config u32 maxAnisotropy; u32 textureBitDepth; u32 forceBilinear; - u32 enable2xSaI; u32 pow2; } texture; diff --git a/Config_mupen.cpp b/Config_mupen.cpp index 0150c5c4..6eba4e63 100644 --- a/Config_mupen.cpp +++ b/Config_mupen.cpp @@ -28,7 +28,6 @@ Option configOptions[] = {"window height", &config.video.windowedHeight, 480}, {"#Texture Settings:", NULL, 0}, {"force bilinear", &config.texture.forceBilinear, 0}, - {"enable 2xSAI", &config.texture.enable2xSaI, 0}, {"cache size", &cache.maxBytes, 64*1048576}, {"texture bit depth", &config.texture.textureBitDepth, 1}, {"#Emulation Settings:", NULL, 0}, diff --git a/GLideN64.vcxproj b/GLideN64.vcxproj index 022b3aa8..d4f70066 100644 --- a/GLideN64.vcxproj +++ b/GLideN64.vcxproj @@ -234,7 +234,6 @@ - @@ -273,7 +272,6 @@ - diff --git a/GLideN64.vcxproj.filters b/GLideN64.vcxproj.filters index 15d60301..c9850bab 100644 --- a/GLideN64.vcxproj.filters +++ b/GLideN64.vcxproj.filters @@ -27,9 +27,6 @@ - - Source Files - Source Files @@ -122,9 +119,6 @@ - - Header Files - Header Files diff --git a/Resource.aps b/Resource.aps index c9d580d89320debef67320fc5fcd0cd2dbad2542..290731f7715ba27609514a7cf39693ce4cce653c 100644 GIT binary patch delta 6772 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 Tp=`el{YqH{8DLZ99f$r4EHHaS delta 6029 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 diff --git a/Resource.rc b/Resource.rc index 3dba7ba6..9b06e34a 100644 --- a/Resource.rc +++ b/Resource.rc @@ -13,13 +13,11 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources +// English (United States) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US #pragma code_page(1252) -#endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -113,7 +111,7 @@ BEGIN LTEXT "Resolution:",IDC_STATIC,136,18,37,8 LTEXT "Refresh Rate:",IDC_STATIC,187,18,46,8 COMBOBOX IDC_FULLSCREENBITDEPTH,80,31,39,111,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - CONTROL "Enable 2xSaI texture scaling",IDC_ENABLE2XSAI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,66,107,10 + CONTROL "Enable depth buffer write",IDC_ENABLEDEPTHWRITE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,16,66,98,10 CONTROL "Enable Fog",IDC_FOG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,135,81,51,10 CONTROL "Hardware Frame Buffer Textures (Experimental)",IDC_FRAMEBUFFER, "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,154,171,10 @@ -143,7 +141,7 @@ END // #ifdef APSTUDIO_INVOKED -GUIDELINES DESIGNINFO +GUIDELINES DESIGNINFO BEGIN IDD_DEBUGDLG, DIALOG BEGIN @@ -195,7 +193,7 @@ BEGIN 0 END -#endif // English (U.S.) resources +#endif // English (United States) resources ///////////////////////////////////////////////////////////////////////////// diff --git a/Textures.cpp b/Textures.cpp index 5c1b7b0b..fe8245dd 100644 --- a/Textures.cpp +++ b/Textures.cpp @@ -9,7 +9,6 @@ #include "N64.h" #include "CRC.h" #include "convert.h" -#include "2xSAI.h" #include "FrameBuffer.h" #include "Config.h" #include @@ -230,7 +229,6 @@ void TextureCache_Init() cache.bottom = NULL; cache.numCached = 0; cache.cachedBytes = 0; - cache.enable2xSaI = config.texture.enable2xSaI; cache.bitDepth = config.texture.textureBitDepth; glGenTextures( 32, cache.glNoiseNames ); @@ -515,29 +513,8 @@ void TextureCache_LoadBackground( CachedTexture *texInfo ) } } - if (cache.enable2xSaI) - { - texInfo->textureBytes <<= 2; - - scaledDest = (u32*)malloc( texInfo->textureBytes ); - - if (glInternalFormat == GL_RGBA) - _2xSaI8888( (u32*)dest, (u32*)scaledDest, texInfo->realWidth, texInfo->realHeight, texInfo->clampS, texInfo->clampT ); - else if (glInternalFormat == GL_RGBA4) - _2xSaI4444( (u16*)dest, (u16*)scaledDest, texInfo->realWidth, texInfo->realHeight, texInfo->clampS, texInfo->clampT ); - else - _2xSaI5551( (u16*)dest, (u16*)scaledDest, texInfo->realWidth, texInfo->realHeight, texInfo->clampS, texInfo->clampT ); - - glTexImage2D( GL_TEXTURE_2D, 0, glInternalFormat, texInfo->realWidth << 1, texInfo->realHeight << 1, 0, GL_RGBA, glType, scaledDest ); - - free( dest ); - free( scaledDest ); - } - else - { - glTexImage2D( GL_TEXTURE_2D, 0, glInternalFormat, texInfo->realWidth, texInfo->realHeight, 0, GL_RGBA, glType, dest ); - free( dest ); - } + glTexImage2D( GL_TEXTURE_2D, 0, glInternalFormat, texInfo->realWidth, texInfo->realHeight, 0, GL_RGBA, glType, dest ); + free( dest ); } void TextureCache_Load( CachedTexture *texInfo ) @@ -656,29 +633,8 @@ void TextureCache_Load( CachedTexture *texInfo ) } } - if (cache.enable2xSaI) - { - texInfo->textureBytes <<= 2; - - scaledDest = (u32*)malloc( texInfo->textureBytes ); - - if (glInternalFormat == GL_RGBA) - _2xSaI8888( (u32*)dest, (u32*)scaledDest, texInfo->realWidth, texInfo->realHeight, 1, 1 );//texInfo->clampS, texInfo->clampT ); - else if (glInternalFormat == GL_RGBA4) - _2xSaI4444( (u16*)dest, (u16*)scaledDest, texInfo->realWidth, texInfo->realHeight, 1, 1 );//texInfo->clampS, texInfo->clampT ); - else - _2xSaI5551( (u16*)dest, (u16*)scaledDest, texInfo->realWidth, texInfo->realHeight, 1, 1 );//texInfo->clampS, texInfo->clampT ); - - glTexImage2D( GL_TEXTURE_2D, 0, glInternalFormat, texInfo->realWidth << 1, texInfo->realHeight << 1, 0, GL_RGBA, glType, scaledDest ); - - free( dest ); - free( scaledDest ); - } - else - { - glTexImage2D( GL_TEXTURE_2D, 0, glInternalFormat, texInfo->realWidth, texInfo->realHeight, 0, GL_RGBA, glType, dest ); - free( dest ); - } + glTexImage2D( GL_TEXTURE_2D, 0, glInternalFormat, texInfo->realWidth, texInfo->realHeight, 0, GL_RGBA, glType, dest ); + free( dest ); } struct TextureParams @@ -859,12 +815,6 @@ void TextureCache_Update( u32 t ) u32 tileWidth, maskWidth, loadWidth, lineWidth, clampWidth, height; u32 tileHeight, maskHeight, loadHeight, lineHeight, clampHeight, width; - if (cache.enable2xSaI != config.texture.enable2xSaI) - { - TextureCache_Destroy(); - TextureCache_Init(); - } - if (cache.bitDepth != config.texture.textureBitDepth) { TextureCache_Destroy(); @@ -1114,8 +1064,8 @@ void TextureCache_Update( u32 t ) cache.current[t]->shiftScaleS = 1.0f; cache.current[t]->shiftScaleT = 1.0f; - cache.current[t]->offsetS = config.texture.enable2xSaI ? 0.25f : 0.5f; - cache.current[t]->offsetT = config.texture.enable2xSaI ? 0.25f : 0.5f; + cache.current[t]->offsetS = 0.5f; + cache.current[t]->offsetT = 0.5f; if (gSP.textureTile[t]->shifts > 10) cache.current[t]->shiftScaleS = (f32)(1 << (16 - gSP.textureTile[t]->shifts)); diff --git a/Textures.h b/Textures.h index 94ecc3d6..f2d90f1c 100644 --- a/Textures.h +++ b/Textures.h @@ -50,7 +50,7 @@ struct TextureCache GLuint glNoiseNames[32]; //GLuint glDummyName; CachedTexture *dummy; - u32 enable2xSaI, bitDepth; + u32 bitDepth; }; extern TextureCache cache; diff --git a/resource.h b/resource.h index 7c1e307a..92c901c3 100644 --- a/resource.h +++ b/resource.h @@ -25,7 +25,7 @@ #define IDC_WIREFRAME 1053 #define IDC_FULLSCREENBITDEPTH 1054 #define IDC_ALPHATESTSHARPNESS 1055 -#define IDC_ENABLE2XSAI 1061 +#define IDC_ENABLEDEPTHWRITE 1061 #define IDC_COMBO1 1064 #define IDC_COMBINER 1064 #define IDC_TEXTUREBPP 1064