1
0
mirror of https://github.com/blawar/GLideN64.git synced 2024-07-04 10:03:36 +00:00

Fix bug in FrameBufferList::saveBuffer :

corrent end address for auxiliary buffer only if it was not corrected by correctHeight().
This commit is contained in:
Sergey Lipskiy 2015-09-20 20:28:05 +06:00
parent 702a0d8203
commit a73b8dddbd

View File

@ -450,9 +450,10 @@ void FrameBufferList::saveBuffer(u32 _address, u16 _format, u16 _size, u16 _widt
OGLVideo & ogl = video();
if (m_pCurrent != NULL) {
if (gDP.colorImage.height > 0) {
if (m_pCurrent->m_width == VI.width)
if (m_pCurrent->m_width == VI.width || m_pCurrent->m_needHeightCorrection) {
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));
m_pCurrent->m_endAddress = min(RDRAMSize, m_pCurrent->m_startAddress + (((m_pCurrent->m_width * gDP.colorImage.height) << m_pCurrent->m_size >> 1) - 1));
}
if (!m_pCurrent->_isMarioTennisScoreboard() && !m_pCurrent->m_isDepthBuffer && !m_pCurrent->m_copiedToRdram && !m_pCurrent->m_cfb && !m_pCurrent->m_cleared && m_pCurrent->m_RdramCopy.empty() && gDP.colorImage.height > 1) {
m_pCurrent->copyRdram();
}