Mesen-S/Core/BsxSatellaview.h
2020-02-22 00:27:03 -05:00

38 lines
846 B
C++

#pragma once
#include "stdafx.h"
#include "IMemoryHandler.h"
#include "BsxStream.h"
#include "../Utilities/ISerializable.h"
class Console;
class MemoryManager;
class BsxSatellaview : public IMemoryHandler, public ISerializable
{
private:
IMemoryHandler* _bBusHandler;
Console* _console;
MemoryManager* _memoryManager;
BsxStream _stream[2];
uint8_t _streamReg;
uint8_t _extOutput;
int64_t _customDate;
uint64_t _prevMasterClock;
void ProcessClocks();
public:
BsxSatellaview(Console* console, IMemoryHandler *bBusHandler);
void Reset();
uint8_t Read(uint32_t addr) override;
uint8_t Peek(uint32_t addr) override;
void PeekBlock(uint32_t addr, uint8_t* output) override;
void Write(uint32_t addr, uint8_t value) override;
AddressInfo GetAbsoluteAddress(uint32_t address) override;
void Serialize(Serializer& s) override;
};