mirror of
https://github.com/blawar/GLideN64.git
synced 2024-06-25 22:09:35 +00:00
Apply fix for GE multiplayer only for GE and PD.
Naboo does not use depth buffer clear with fillrect, thus it does not allocate frame buffer for depth buffer clear. GE multiplayer fix breaks depth compare in Naboo.
This commit is contained in:
parent
78e98d880b
commit
647f7759c2
|
@ -192,8 +192,7 @@ struct Config
|
|||
#define hack_Ogre64 (1<<0) //Ogre Battle 64 background copy
|
||||
#define hack_noDepthFrameBuffers (1<<1) //Do not use depth buffers as texture
|
||||
#define hack_blurPauseScreen (1<<2) //Game copies frame buffer to depth buffer area, CPU blurs it. That image is used as background for pause screen.
|
||||
#define hack_scoreboard (1<<3) //Copy data from RDRAM to auxilary frame buffer. Scoreboard in Mario Tennis.
|
||||
#define hack_scoreboardJ (1<<4) //Copy data from RDRAM to auxilary frame buffer. Scoreboard in Mario Tennis (J).
|
||||
#define hack_clearAloneDepthBuffer (1<<3) //Force clear depth buffer if there is no frame buffer for it. Multiplayer in GE and PD.
|
||||
#define hack_texrect_shade_alpha (1<<5) //Set vertex alpha to 1 when texrect alpha combiner uses shade. Pokemon Stadium 2
|
||||
#define hack_subscreen (1<<6) //Fix subscreen delay in Zelda OOT and Doubutsu no Mori
|
||||
#define hack_blastCorps (1<<7) //Blast Corps black polygons
|
||||
|
|
|
@ -485,7 +485,7 @@ void DepthBufferList::saveBuffer(u32 _address)
|
|||
DepthBuffer * pCurrent = m_pCurrent;
|
||||
m_pCurrent = pDepthBuffer;
|
||||
frameBufferList().attachDepthBuffer();
|
||||
if (pFrameBuffer == nullptr)
|
||||
if (pFrameBuffer == nullptr && (config.generalEmulation.hacks & hack_clearAloneDepthBuffer) != 0)
|
||||
clearBuffer();
|
||||
if (pDepthBuffer->m_address != gDP.depthImageAddress)
|
||||
m_pCurrent = pCurrent;
|
||||
|
|
|
@ -298,10 +298,8 @@ void RSP_Init()
|
|||
config.generalEmulation.hacks |= hack_blurPauseScreen | hack_rectDepthBufferCopyCBFD;
|
||||
else if (strstr(RSP.romname, (const char *)"MICKEY USA") != nullptr)
|
||||
config.generalEmulation.hacks |= hack_blurPauseScreen;
|
||||
else if (strstr(RSP.romname, (const char *)"MarioTennis64") != nullptr)
|
||||
config.generalEmulation.hacks |= hack_scoreboardJ;
|
||||
else if (strstr(RSP.romname, (const char *)"MarioTennis") != nullptr)
|
||||
config.generalEmulation.hacks |= hack_scoreboard;
|
||||
else if (strstr(RSP.romname, (const char *)"GOLDENEYE") != nullptr)
|
||||
config.generalEmulation.hacks |= hack_clearAloneDepthBuffer;
|
||||
else if (strstr(RSP.romname, (const char *)"POKEMON STADIUM 2") != nullptr ||
|
||||
strstr(RSP.romname, (const char *)"Bottom of the 9th") != nullptr)
|
||||
config.generalEmulation.hacks |= hack_texrect_shade_alpha;
|
||||
|
@ -319,7 +317,7 @@ void RSP_Init()
|
|||
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;
|
||||
config.generalEmulation.hacks |= hack_rectDepthBufferCopyPD | hack_clearAloneDepthBuffer;
|
||||
else if (strstr(RSP.romname, (const char *)"Jeremy McGrath Super") != nullptr)
|
||||
config.generalEmulation.hacks |= hack_ModifyVertexXyInShader;
|
||||
else if (strstr(RSP.romname, (const char *)"RAT ATTACK") != nullptr)
|
||||
|
|
Loading…
Reference in New Issue
Block a user