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

Mask VI_ORIGIN address

This commit is contained in:
Logan McNaughton 2020-04-14 20:46:21 -06:00 committed by Sergey Lipskiy
parent 9eddde6e0f
commit 7ef3be1cab
3 changed files with 7 additions and 7 deletions

View File

@ -591,7 +591,7 @@ void FrameBufferList::setBufferChanged(f32 _maxY)
void FrameBufferList::clearBuffersChanged()
{
gDP.colorImage.changed = FALSE;
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN);
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN & 0xffffff);
if (pBuffer != nullptr)
pBuffer->m_changed = false;
}

View File

@ -674,7 +674,7 @@ namespace glsl {
void activate() override {
FXAAShaderBase::activate();
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN);
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN & 0xffffff);
if (pBuffer != nullptr && pBuffer->m_pTexture != nullptr &&
(m_width != pBuffer->m_pTexture->width || m_height != pBuffer->m_pTexture->height)) {
m_width = pBuffer->m_pTexture->width;

View File

@ -82,7 +82,7 @@ void VI_UpdateSize()
// const int fsaa = ((*REG.VI_STATUS) >> 8) & 3;
// const int divot = ((*REG.VI_STATUS) >> 4) & 1;
FrameBufferList & fbList = frameBufferList();
FrameBuffer * pBuffer = fbList.findBuffer(VI.lastOrigin);
FrameBuffer * pBuffer = fbList.findBuffer(VI.lastOrigin & 0xffffff);
DepthBuffer * pDepthBuffer = pBuffer != nullptr ? pBuffer->m_pDepthBuffer : nullptr;
if (config.frameBufferEmulation.enable &&
((interlacedPrev != VI.interlaced) ||
@ -131,7 +131,7 @@ void VI_UpdateScreen()
if (config.frameBufferEmulation.enable) {
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN);
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN & 0xffffff);
if (pBuffer == nullptr) {
gDP.changed |= CHANGED_CPU_FB_WRITE;
} else if (!FBInfo::fbInfo.isSupported() &&
@ -166,7 +166,7 @@ void VI_UpdateScreen()
}
const u32 size = *REG.VI_STATUS & 3;
if (VI.height > 0 && size > G_IM_SIZ_8b && VI.width > 0)
frameBufferList().saveBuffer(*REG.VI_ORIGIN, G_IM_FMT_RGBA, size, VI.width, true);
frameBufferList().saveBuffer(*REG.VI_ORIGIN & 0xffffff, G_IM_FMT_RGBA, size, VI.width, true);
}
}
// if ((((*REG.VI_STATUS) & 3) > 0) && (gDP.colorImage.changed || bCFB)) { // Does not work in release build!!!
@ -175,12 +175,12 @@ void VI_UpdateScreen()
VI_UpdateSize();
bVIUpdated = true;
}
FrameBuffer_CopyFromRDRAM(*REG.VI_ORIGIN, bCFB);
FrameBuffer_CopyFromRDRAM(*REG.VI_ORIGIN & 0xffffff, bCFB);
}
frameBufferList().renderBuffer();
frameBufferList().clearBuffersChanged();
VI.lastOrigin = *REG.VI_ORIGIN;
}
}
} else {
if (gDP.changed & CHANGED_COLORBUFFER) {
frameBufferList().renderBuffer();