1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00

Add special hack for monochrome effect in Zelda games.

Fixed OOT - major graphic glitches in cutscene #1673
This commit is contained in:
Sergey Lipskiy 2017-11-28 16:10:52 +07:00
parent 055591d6d0
commit 37cc010e85
3 changed files with 6 additions and 4 deletions

View File

@ -194,6 +194,7 @@ struct Config
#define hack_Snap (1<<18) //Frame buffer settings for camera detection in Pokemon Snap. Copy aux buffers at fullsync
#define hack_MK64 (1<<19) //Hack for load MK64 HD textures properly.
#define hack_RE2 (1<<20) //RE2 hacks.
#define hack_ZeldaMonochrome (1<<21) //Hack for Zeldas monochrome effects.
extern Config config;

View File

@ -203,7 +203,7 @@ public:
nFbFixedAlpha0 = 1;
} else if (gSP.textureTile[0]->size == G_IM_SIZ_16b && gSP.textureTile[0]->format == G_IM_FMT_IA) {
nFbMonochromeMode0 = 2;
} else if ((config.generalEmulation.hacks & hack_ZeldaMM) != 0 &&
} else if ((config.generalEmulation.hacks & hack_ZeldaMonochrome) != 0 &&
cache.current[0]->size == G_IM_SIZ_16b &&
gSP.textureTile[0]->size == G_IM_SIZ_8b &&
gSP.textureTile[0]->format == G_IM_FMT_CI) {

View File

@ -290,8 +290,9 @@ void RSP_Init()
else if (strstr(RSP.romname, (const char *)"POKEMON STADIUM 2") != nullptr)
config.generalEmulation.hacks |= hack_texrect_shade_alpha;
else if (strstr(RSP.romname, (const char *)"THE LEGEND OF ZELDA") != nullptr ||
strstr(RSP.romname, (const char *)"ZELDA MASTER QUEST") != nullptr ||
strstr(RSP.romname, (const char *)"DOUBUTSUNOMORI") != nullptr ||
strstr(RSP.romname, (const char *)"ZELDA MASTER QUEST") != nullptr)
config.generalEmulation.hacks |= hack_subscreen | hack_ZeldaMonochrome;
else if (strstr(RSP.romname, (const char *)"DOUBUTSUNOMORI") != nullptr ||
strstr(RSP.romname, (const char *)"ANIMAL FOREST") != nullptr)
config.generalEmulation.hacks |= hack_subscreen;
else if (strstr(RSP.romname, (const char *)"LEGORacers") != nullptr)
@ -299,7 +300,7 @@ void RSP_Init()
else if (strstr(RSP.romname, (const char *)"Blast") != nullptr)
config.generalEmulation.hacks |= hack_blastCorps;
else if (strstr(RSP.romname, (const char *)"MASK") != nullptr) // Zelda MM
config.generalEmulation.hacks |= hack_ZeldaMM;
config.generalEmulation.hacks |= hack_ZeldaMonochrome | hack_ZeldaMM;
else if (strstr(RSP.romname, (const char *)"Perfect Dark") != nullptr ||
strstr(RSP.romname, (const char *)"PERFECT DARK") != nullptr)
config.generalEmulation.hacks |= hack_rectDepthBufferCopyPD;