mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-04 10:03:36 +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()
|
void FrameBufferList::clearBuffersChanged()
|
||||||
{
|
{
|
||||||
gDP.colorImage.changed = FALSE;
|
gDP.colorImage.changed = FALSE;
|
||||||
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN);
|
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN & 0xffffff);
|
||||||
if (pBuffer != nullptr)
|
if (pBuffer != nullptr)
|
||||||
pBuffer->m_changed = false;
|
pBuffer->m_changed = false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -674,7 +674,7 @@ namespace glsl {
|
||||||
|
|
||||||
void activate() override {
|
void activate() override {
|
||||||
FXAAShaderBase::activate();
|
FXAAShaderBase::activate();
|
||||||
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN);
|
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN & 0xffffff);
|
||||||
if (pBuffer != nullptr && pBuffer->m_pTexture != nullptr &&
|
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 || m_height != pBuffer->m_pTexture->height)) {
|
||||||
m_width = pBuffer->m_pTexture->width;
|
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 fsaa = ((*REG.VI_STATUS) >> 8) & 3;
|
||||||
// const int divot = ((*REG.VI_STATUS) >> 4) & 1;
|
// const int divot = ((*REG.VI_STATUS) >> 4) & 1;
|
||||||
FrameBufferList & fbList = frameBufferList();
|
FrameBufferList & fbList = frameBufferList();
|
||||||
FrameBuffer * pBuffer = fbList.findBuffer(VI.lastOrigin);
|
FrameBuffer * pBuffer = fbList.findBuffer(VI.lastOrigin & 0xffffff);
|
||||||
DepthBuffer * pDepthBuffer = pBuffer != nullptr ? pBuffer->m_pDepthBuffer : nullptr;
|
DepthBuffer * pDepthBuffer = pBuffer != nullptr ? pBuffer->m_pDepthBuffer : nullptr;
|
||||||
if (config.frameBufferEmulation.enable &&
|
if (config.frameBufferEmulation.enable &&
|
||||||
((interlacedPrev != VI.interlaced) ||
|
((interlacedPrev != VI.interlaced) ||
|
||||||
|
@ -131,7 +131,7 @@ void VI_UpdateScreen()
|
||||||
|
|
||||||
if (config.frameBufferEmulation.enable) {
|
if (config.frameBufferEmulation.enable) {
|
||||||
|
|
||||||
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN);
|
FrameBuffer * pBuffer = frameBufferList().findBuffer(*REG.VI_ORIGIN & 0xffffff);
|
||||||
if (pBuffer == nullptr) {
|
if (pBuffer == nullptr) {
|
||||||
gDP.changed |= CHANGED_CPU_FB_WRITE;
|
gDP.changed |= CHANGED_CPU_FB_WRITE;
|
||||||
} else if (!FBInfo::fbInfo.isSupported() &&
|
} else if (!FBInfo::fbInfo.isSupported() &&
|
||||||
|
@ -166,7 +166,7 @@ void VI_UpdateScreen()
|
||||||
}
|
}
|
||||||
const u32 size = *REG.VI_STATUS & 3;
|
const u32 size = *REG.VI_STATUS & 3;
|
||||||
if (VI.height > 0 && size > G_IM_SIZ_8b && VI.width > 0)
|
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!!!
|
// 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();
|
VI_UpdateSize();
|
||||||
bVIUpdated = true;
|
bVIUpdated = true;
|
||||||
}
|
}
|
||||||
FrameBuffer_CopyFromRDRAM(*REG.VI_ORIGIN, bCFB);
|
FrameBuffer_CopyFromRDRAM(*REG.VI_ORIGIN & 0xffffff, bCFB);
|
||||||
}
|
}
|
||||||
frameBufferList().renderBuffer();
|
frameBufferList().renderBuffer();
|
||||||
frameBufferList().clearBuffersChanged();
|
frameBufferList().clearBuffersChanged();
|
||||||
VI.lastOrigin = *REG.VI_ORIGIN;
|
VI.lastOrigin = *REG.VI_ORIGIN;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (gDP.changed & CHANGED_COLORBUFFER) {
|
if (gDP.changed & CHANGED_COLORBUFFER) {
|
||||||
frameBufferList().renderBuffer();
|
frameBufferList().renderBuffer();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user