Mesen-SX/Core/RamHandler.h

43 lines
771 B
C
Raw Normal View History

#pragma once
#include "stdafx.h"
#include "IMemoryHandler.h"
2019-02-26 22:27:09 -05:00
#include "DebugTypes.h"
class RamHandler : public IMemoryHandler
{
private:
uint8_t * _ram;
2019-02-26 22:27:09 -05:00
uint32_t _offset;
SnesMemoryType _memoryType;
public:
2019-02-26 22:27:09 -05:00
RamHandler(uint8_t *ram, uint32_t offset, SnesMemoryType memoryType)
{
2019-02-26 22:27:09 -05:00
_ram = ram + offset;
_offset = offset;
_memoryType = memoryType;
}
uint8_t Read(uint32_t addr) override
{
return _ram[addr & 0xFFF];
}
2019-02-26 22:27:09 -05:00
uint8_t Peek(uint32_t addr) override
{
return _ram[addr & 0xFFF];
}
void Write(uint32_t addr, uint8_t value) override
{
_ram[addr & 0xFFF] = value;
}
2019-02-26 22:27:09 -05:00
AddressInfo GetAbsoluteAddress(uint32_t address) override
{
AddressInfo info;
info.Address = _offset + (address & 0xFFF);
info.Type = _memoryType;
return info;
}
};