mirror of
https://github.com/blawar/GLideN64.git
synced 2024-07-02 09:03:37 +00:00
Check buffers intersection even when nothing was drawn to the current buffer.
Fixed buffer overflow in Lode Runner.
This commit is contained in:
parent
1152f9413c
commit
30d6792a17
|
@ -351,12 +351,14 @@ void FrameBufferList::saveBuffer(u32 _address, u16 _format, u16 _size, u16 _widt
|
|||
|
||||
const bool bMarioTennisScoreboard = _isMarioTennisScoreboard();
|
||||
OGLVideo & ogl = video();
|
||||
if (m_pCurrent != NULL && gDP.colorImage.height > 0) {
|
||||
if (m_pCurrent->m_width == VI.width)
|
||||
gDP.colorImage.height = min(gDP.colorImage.height, VI.height);
|
||||
m_pCurrent->m_endAddress = min(RDRAMSize, m_pCurrent->m_startAddress + (((m_pCurrent->m_width * gDP.colorImage.height) << m_pCurrent->m_size >> 1) - 1));
|
||||
if (!config.frameBufferEmulation.copyFromRDRAM && !bMarioTennisScoreboard && !m_pCurrent->m_isDepthBuffer && m_pCurrent->m_RdramCrc == 0 && !m_pCurrent->m_cfb && !m_pCurrent->m_cleared && gDP.colorImage.height > 1)
|
||||
gDPFillRDRAM(m_pCurrent->m_startAddress, 0, 0, m_pCurrent->m_width, gDP.colorImage.height, m_pCurrent->m_width, m_pCurrent->m_size, m_pCurrent->m_fillcolor, false);
|
||||
if (m_pCurrent != NULL) {
|
||||
if (gDP.colorImage.height > 0) {
|
||||
if (m_pCurrent->m_width == VI.width)
|
||||
gDP.colorImage.height = min(gDP.colorImage.height, VI.height);
|
||||
m_pCurrent->m_endAddress = min(RDRAMSize, m_pCurrent->m_startAddress + (((m_pCurrent->m_width * gDP.colorImage.height) << m_pCurrent->m_size >> 1) - 1));
|
||||
if (!config.frameBufferEmulation.copyFromRDRAM && !bMarioTennisScoreboard && !m_pCurrent->m_isDepthBuffer && m_pCurrent->m_RdramCrc == 0 && !m_pCurrent->m_cfb && !m_pCurrent->m_cleared && gDP.colorImage.height > 1)
|
||||
gDPFillRDRAM(m_pCurrent->m_startAddress, 0, 0, m_pCurrent->m_width, gDP.colorImage.height, m_pCurrent->m_width, m_pCurrent->m_size, m_pCurrent->m_fillcolor, false);
|
||||
}
|
||||
m_pCurrent = _findBuffer(m_pCurrent->m_startAddress, m_pCurrent->m_endAddress, m_pCurrent->m_width);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user