Files
MesenCE/Core/NES/InternalRamHandler.h
SourMesen e391fd8f9a Code: Add auto-formatting rules for C++ (clang-format) and enforce in CI via "clang-format" and "dotnet format" (#78)
* Code: Add auto-formatting rules for C++ projects (clang-format) and enforce code style via "clang-format" and "dotnet format"

* fix ui format warnings
2026-04-30 06:03:55 -07:00

38 lines
673 B
C++

#pragma once
#include "pch.h"
#include "NES/INesMemoryHandler.h"
template<size_t Mask>
class InternalRamHandler : public INesMemoryHandler
{
private:
uint8_t* _internalRam = nullptr;
public:
void SetInternalRam(uint8_t* internalRam)
{
_internalRam = internalRam;
}
void GetMemoryRanges(MemoryRanges& ranges) override
{
ranges.SetAllowOverride();
ranges.AddHandler(MemoryOperation::Any, 0, 0x1FFF);
}
uint8_t ReadRam(uint16_t addr) override
{
return _internalRam[addr & Mask];
}
uint8_t PeekRam(uint16_t addr) override
{
return ReadRam(addr);
}
void WriteRam(uint16_t addr, uint8_t value) override
{
_internalRam[addr & Mask] = value;
}
};