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:
parent
9eddde6e0f
commit
7ef3be1cab
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
10
src/VI.cpp
10
src/VI.cpp
|
@ -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();
|
||||
|
|
Loading…
Reference in New Issue
Block a user