mirror of
https://github.com/SourMesen/Mesen2.git
synced 2025-04-02 10:21:44 -04:00
37 lines
674 B
C++
37 lines
674 B
C++
#pragma once
|
|
#include "pch.h"
|
|
#include "Utilities/ISerializable.h"
|
|
|
|
class WsCpu;
|
|
class WsMemoryManager;
|
|
|
|
class WsCpuPrefetch final : public ISerializable
|
|
{
|
|
private:
|
|
uint16_t _fetchCs = 0;
|
|
uint16_t _fetchIp = 0;
|
|
|
|
uint8_t _readPos = 0;
|
|
uint8_t _writePos = 0;
|
|
uint8_t _size = 0;
|
|
|
|
uint8_t _waitCycles = 0;
|
|
|
|
uint8_t _data[16] = {};
|
|
|
|
WsMemoryManager* _memoryManager = nullptr;
|
|
WsCpu* _cpu = nullptr;
|
|
|
|
bool IsFull();
|
|
void PushByte(uint8_t value);
|
|
|
|
public:
|
|
WsCpuPrefetch(WsCpu* cpu, WsMemoryManager* memoryManager);
|
|
|
|
void Prefetch();
|
|
void ProcessRep(uint8_t opCode);
|
|
uint8_t Read();
|
|
void Clear(uint16_t cs, uint16_t ip);
|
|
|
|
void Serialize(Serializer& s) override;
|
|
};
|