mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +00:00
Add hack_skipVIChangeCheck hack for Zelda MM.
Fix problem with Majora's Mask subscreen after Bomber's Notebook read, #698 The game switches to interlaced mode when it opens Notebook screen and background buffer is removed. This hack prevents buffers clear on VI change.
This commit is contained in:
parent
a3f9b43b4a
commit
1eaa967553
|
@ -120,6 +120,7 @@ struct Config
|
|||
#define hack_blastCorps (1<<8) //Blast Corps black polygons
|
||||
#define hack_ignoreVIHeightChange (1<<9) //Do not reset FBO when VI height is changed. Space Invaders need it.
|
||||
#define hack_VIUpdateOnCIChange (1<<10) //Update frame if color buffer changed. Needed for Quake II underwater.
|
||||
#define hack_skipVIChangeCheck (1<<11) //Don't reset FBO when VI parameters changed. Zelda MM
|
||||
|
||||
extern Config config;
|
||||
|
||||
|
|
|
@ -337,6 +337,8 @@ void RSP_Init()
|
|||
strstr(RSP.romname, (const char *)"PERFECT DARK")
|
||||
)
|
||||
config.generalEmulation.hacks |= hack_VIUpdateOnCIChange;
|
||||
else if (strstr(RSP.romname, (const char *)"MASK") != NULL) // Zelda MM
|
||||
config.generalEmulation.hacks |= hack_skipVIChangeCheck;
|
||||
|
||||
api().FindPluginPath(RSP.pluginpath);
|
||||
|
||||
|
|
|
@ -68,7 +68,7 @@ void VI_UpdateSize()
|
|||
FrameBufferList & fbList = frameBufferList();
|
||||
FrameBuffer * pBuffer = fbList.findBuffer(VI.lastOrigin);
|
||||
DepthBuffer * pDepthBuffer = pBuffer != NULL ? pBuffer->m_pDepthBuffer : NULL;
|
||||
if (config.frameBufferEmulation.enable &&
|
||||
if (config.frameBufferEmulation.enable && ((config.generalEmulation.hacks & hack_skipVIChangeCheck) == 0) &&
|
||||
((interlacedPrev != VI.interlaced) ||
|
||||
(VI.width > 0 && VI.width != VI.widthPrev) ||
|
||||
(!VI.interlaced && pDepthBuffer != NULL && pDepthBuffer->m_width != VI.width) ||
|
||||
|
|
Loading…
Reference in New Issue
Block a user