proper display FIFO emulation

This commit is contained in:
StapleButter
2017-06-26 11:02:10 +02:00
parent 155609b6d9
commit 4afac28263
7 changed files with 105 additions and 34 deletions

View File

@ -36,6 +36,18 @@ public:
void Write16(u32 addr, u16 val);
void Write32(u32 addr, u32 val);
bool UsesFIFO()
{
if (((DispCnt >> 16) & 0x3) == 3)
return true;
if ((CaptureCnt & (1<<25)) && ((CaptureCnt >> 29) & 0x3) != 0)
return true;
return false;
}
void SampleFIFO(u32 offset, u32 num);
void DrawScanline(u32 line);
void VBlank();
void VBlankEnd();
@ -48,12 +60,14 @@ public:
u16* GetBGExtPal(u32 slot, u32 pal);
u16* GetOBJExtPal(u32 pal);
void FIFODMA(u32 addr);
private:
u32 Num;
u32* Framebuffer;
u16 DispFIFO[16];
u32 DispFIFOReadPtr;
u32 DispFIFOWritePtr;
u16 DispFIFOBuffer[256];
u32 DispCnt;