Mesen-SX/Core/Ppu.h

44 lines
707 B
C
Raw Normal View History

#pragma once
#include "stdafx.h"
#include "PpuTypes.h"
2019-02-13 18:44:39 -05:00
class Console;
class Ppu
{
private:
2019-02-13 18:44:39 -05:00
shared_ptr<Console> _console;
uint16_t _cycle = 0;
uint16_t _scanline = 0;
uint32_t _frameCount = 0;
bool _nmiFlag = false;
2019-02-13 18:44:39 -05:00
bool _enableNmi = false;
2019-02-13 18:44:39 -05:00
uint8_t *_vram;
uint16_t _vramAddress;
uint8_t _vramIncrementValue;
uint8_t _vramAddressRemapping;
bool _vramAddrIncrementOnSecondReg;
uint16_t _cgramAddress;
uint8_t _cgram[512];
2019-02-13 18:44:39 -05:00
uint16_t *_outputBuffers[2];
uint16_t *_currentBuffer;
2019-02-13 18:44:39 -05:00
LayerConfig _layerConfig[4];
2019-02-13 18:44:39 -05:00
public:
Ppu(shared_ptr<Console> console);
2019-02-13 18:44:39 -05:00
PpuState GetState();
2019-02-13 18:44:39 -05:00
void Exec();
2019-02-13 18:44:39 -05:00
void SendFrame();
2019-02-13 18:44:39 -05:00
uint8_t Read(uint16_t addr);
void Write(uint32_t addr, uint8_t value);
};