1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-02 09:03:37 +00:00

Do not reset gDP.otherMode.l for Quake.

Fixed Quake 64 depth issues #1169
This commit is contained in:
Sergey Lipskiy 2017-11-08 18:29:53 +07:00
parent 897a100a97
commit 732c27a07d
3 changed files with 17 additions and 11 deletions

View File

@ -186,11 +186,12 @@ struct Config
#define hack_ZeldaMM (1<<12) //Special hacks for Zelda MM
#define hack_ModifyVertexXyInShader (1<<13) //Pass screen coordinates provided in gSPModifyVertex to vertes shader.
#define hack_legoRacers (1<<14) //LEGO racers course map
#define hack_doNotResetTLUTmode (1<<15) //Don't set TLUT mode to none after dlist end. Quake 64
#define hack_LoadDepthTextures (1<<16) //Load textures for depth buffer
#define hack_Snap (1<<17) //Frame buffer settings for camera detection in Pokemon Snap. Copy aux buffers at fullsync
#define hack_MK64 (1<<18) //Hack for load MK64 HD textures properly.
#define hack_RE2 (1<<19) //RE2 hacks.
#define hack_doNotResetOtherModeH (1<<15) //Don't reset othermode.h after dlist end. Quake and Quake 2
#define hack_doNotResetOtherModeL (1<<16) //Don't reset othermode.l after dlist end. Quake
#define hack_LoadDepthTextures (1<<17) //Load textures for depth buffer
#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.
extern Config config;

View File

@ -1,6 +1,7 @@
#include <assert.h>
#include <cstdlib>
#include "Config.h"
#include "RSP.h"
#include "VI.h"
#include "Graphics/Context.h"
#include "DisplayWindow.h"
@ -29,9 +30,12 @@ void DisplayWindow::swapBuffers()
{
m_drawer.drawOSD();
_swapBuffers();
gDP.otherMode.l = 0;
if ((config.generalEmulation.hacks & hack_doNotResetTLUTmode) == 0)
gDPSetTextureLUT(G_TT_NONE);
if (!RSP.LLE) {
if ((config.generalEmulation.hacks & hack_doNotResetOtherModeL) == 0)
gDP.otherMode.l = 0;
if ((config.generalEmulation.hacks & hack_doNotResetOtherModeH) == 0)
gDP.otherMode.h = 0x0CFF;
}
++m_buffersSwapCount;
}

View File

@ -302,9 +302,10 @@ void RSP_Init()
config.generalEmulation.hacks |= hack_rectDepthBufferCopyPD;
else if (strstr(RSP.romname, (const char *)"Jeremy McGrath Super") != nullptr)
config.generalEmulation.hacks |= hack_ModifyVertexXyInShader;
else if (strstr(RSP.romname, (const char *)"Quake") != nullptr ||
strstr(RSP.romname, (const char *)"QUAKE II") != nullptr)
config.generalEmulation.hacks |= hack_doNotResetTLUTmode;
else if (strstr(RSP.romname, (const char *)"Quake") != nullptr)
config.generalEmulation.hacks |= hack_doNotResetOtherModeH|hack_doNotResetOtherModeL;
else if (strstr(RSP.romname, (const char *)"QUAKE II") != nullptr)
config.generalEmulation.hacks |= hack_doNotResetOtherModeH;
else if (strstr(RSP.romname, (const char *)"quarterback_club_98") != nullptr)
config.generalEmulation.hacks |= hack_LoadDepthTextures;
else if (strstr(RSP.romname, (const char *)"WIN BACK") != nullptr ||