gsdx sw: trick GetFeedbackOutput to handle basic merge loopback

It is enough for Xenosaga.
This commit is contained in:
Gregory Hainaut 2016-10-09 17:48:07 +02:00
parent deb2ed3d09
commit 51c64fcbe6
2 changed files with 15 additions and 0 deletions

View File

@ -193,6 +193,20 @@ GSTexture* GSRendererSW::GetOutput(int i, int& y_offset)
return m_texture[i];
}
GSTexture* GSRendererSW::GetFeedbackOutput()
{
int dummy;
// It is enough to emulate Xenosaga cutscene. (or any game that will do a basic loopback)
for (int i = 0; i < 2; i++) {
if (m_regs->EXTBUF.EXBP == m_regs->DISP[i].DISPFB.Block())
return GetOutput(i, dummy);
}
return nullptr;
}
template<uint32 primclass, uint32 tme, uint32 fst>
void GSRendererSW::ConvertVertexBuffer(GSVertexSW* RESTRICT dst, const GSVertex* RESTRICT src, size_t count)
{

View File

@ -84,6 +84,7 @@ protected:
void VSync(int field);
void ResetDevice();
GSTexture* GetOutput(int i, int& y_offset);
GSTexture* GetFeedbackOutput();
void Draw();
void Queue(shared_ptr<GSRasterizerData>& item);