- Fix bug where the background would blink in The Wizard of Oz: Beyond the Yellow Brick Road when frameskip is enabled. (Regression from r5368).
This commit is contained in:
rogerman 2016-03-03 01:27:23 +00:00
parent 34ec6bb985
commit 04e06869d9
2 changed files with 0 additions and 76 deletions

View File

@ -4451,81 +4451,6 @@ void GPUEngineA::RenderLine(const u16 l)
} }
} }
void GPUEngineA::UpdatePropertiesWithoutRender(const u16 l)
{
GPUEngineBase::UpdatePropertiesWithoutRender(l);
// Update display capture properties
const IOREG_DISPCAPCNT &DISPCAPCNT = this->_IORegisterMap->DISPCAPCNT;
const u8 vramWriteBlock = DISPCAPCNT.VRAMWriteBlock;
if ((DISPCAPCNT.CaptureEnable != 0) && (vramConfiguration.banks[vramWriteBlock].purpose == VramConfiguration::LCDC) && (l < this->_dispCapCnt.capy))
{
const IOREG_DISPCNT &DISPCNT = this->_IORegisterMap->DISPCNT;
const u8 vramReadBlock = DISPCNT.VRAM_Block;
const size_t writeLineIndexWithOffset = (DISPCAPCNT.VRAMWriteOffset * 64) + l;
const size_t readLineIndexWithOffset = (this->_dispCapCnt.readOffset * 64) + l;
bool newCaptureLineNativeState = true;
switch (DISPCAPCNT.CaptureSrc)
{
case 0: // Capture source is SourceA
{
switch (DISPCAPCNT.SrcA)
{
case 0:
newCaptureLineNativeState = !this->isCustomRenderingNeeded;
break;
case 1:
newCaptureLineNativeState = this->WillRender3DLayer() && CurrentRenderer->IsFramebufferNativeSize();
break;
}
break;
}
case 1: // Capture source is SourceB
{
switch (DISPCAPCNT.SrcB)
{
case 0: // Capture VRAM
newCaptureLineNativeState = this->isLineCaptureNative[vramReadBlock][readLineIndexWithOffset];
break;
case 1: // Capture FIFO
newCaptureLineNativeState = true;
break;
}
break;
}
default: // Capture source is SourceA+B blended
{
if ( (DISPCAPCNT.SrcB == 0) && !this->isLineCaptureNative[vramReadBlock][readLineIndexWithOffset] )
{
newCaptureLineNativeState = false;
}
else
{
newCaptureLineNativeState = !this->isCustomRenderingNeeded;
}
break;
}
}
if (this->isLineCaptureNative[vramWriteBlock][writeLineIndexWithOffset] && !newCaptureLineNativeState)
{
this->isLineCaptureNative[vramWriteBlock][writeLineIndexWithOffset] = false;
this->nativeLineCaptureCount[vramWriteBlock]--;
}
else if (!this->isLineCaptureNative[vramWriteBlock][writeLineIndexWithOffset] && newCaptureLineNativeState)
{
this->isLineCaptureNative[vramWriteBlock][writeLineIndexWithOffset] = true;
this->nativeLineCaptureCount[vramWriteBlock]++;
}
}
}
u16* GPUEngineA::_RenderLine_Layers(const u16 l) u16* GPUEngineA::_RenderLine_Layers(const u16 l)
{ {
const NDSDisplayInfo &dispInfo = GPU->GetDisplayInfo(); const NDSDisplayInfo &dispInfo = GPU->GetDisplayInfo();

View File

@ -1423,7 +1423,6 @@ public:
bool WillCapture3DLayerDirect(); bool WillCapture3DLayerDirect();
bool VerifyVRAMLineDidChange(const size_t blockID, const size_t l); bool VerifyVRAMLineDidChange(const size_t blockID, const size_t l);
void UpdatePropertiesWithoutRender(const u16 l);
void FramebufferPostprocess(); void FramebufferPostprocess();
virtual void Reset(); virtual void Reset();