Play-/Source/ee/Vif1.h

45 lines
803 B
C
Raw Permalink Normal View History

#pragma once
#include "Vif.h"
class CGIF;
class CINTC;
class CVif1 : public CVif
{
public:
2018-04-30 21:01:23 +01:00
CVif1(unsigned int, CVpu&, CGIF&, CINTC&, uint8*, uint8*);
2020-08-14 13:00:25 -04:00
virtual ~CVif1() = default;
2018-04-30 21:01:23 +01:00
void Reset() override;
void SaveState(Framework::CZipArchiveWriter&) override;
void LoadState(Framework::CZipArchiveReader&) override;
2018-04-30 21:01:23 +01:00
uint32 GetTOP() const override;
2018-04-30 21:01:23 +01:00
uint32 ReceiveDMA(uint32, uint32, uint32, bool) override;
private:
2018-04-30 21:01:23 +01:00
void ExecuteCommand(StreamType&, CODE) override;
2018-04-30 21:01:23 +01:00
void Cmd_DIRECT(StreamType&, CODE);
void Cmd_UNPACK(StreamType&, CODE, uint32) override;
2018-04-30 21:01:23 +01:00
void PrepareMicroProgram() override;
2018-04-30 21:01:23 +01:00
CGIF& m_gif;
2018-04-30 21:01:23 +01:00
uint32 m_BASE;
uint32 m_OFST;
uint32 m_TOP;
uint32 m_TOPS;
enum
{
QWORD_SIZE = 0x10,
};
uint8 m_directQwordBuffer[QWORD_SIZE];
uint32 m_directQwordBufferIndex = 0;
};