Implementation of the Memory interface for emulating memory in a SNES system. More...
#include <memory.h>
Public Member Functions | |
void | Initialize (const std::vector< uint8_t > &romData, bool verbose=false) |
uint16_t | GetHeaderOffset () |
uint8_t | cart_read (uint8_t bank, uint16_t adr) |
void | cart_write (uint8_t bank, uint16_t adr, uint8_t val) |
uint8_t | cart_readLorom (uint8_t bank, uint16_t adr) |
void | cart_writeLorom (uint8_t bank, uint16_t adr, uint8_t val) |
uint8_t | cart_readHirom (uint8_t bank, uint16_t adr) |
uint8_t | cart_readExHirom (uint8_t bank, uint16_t adr) |
void | cart_writeHirom (uint8_t bank, uint16_t adr, uint8_t val) |
uint8_t | ReadByte (uint32_t address) const override |
uint16_t | ReadWord (uint32_t address) const override |
uint32_t | ReadWordLong (uint32_t address) const override |
std::vector< uint8_t > | ReadByteVector (uint32_t address, uint16_t length) const override |
void | WriteByte (uint32_t address, uint8_t value) override |
void | WriteWord (uint32_t address, uint16_t value) override |
void | WriteLong (uint32_t address, uint32_t value) override |
void | PushByte (uint8_t value) override |
uint8_t | PopByte () override |
void | PushWord (uint16_t value) override |
uint16_t | PopWord () override |
void | PushLong (uint32_t value) override |
uint32_t | PopLong () override |
uint16_t | SP () const override |
auto | mutable_sp () -> uint16_t & |
void | SetSP (uint16_t value) override |
void | ClearMemory () override |
uint8_t | at (int i) const override |
uint8_t | operator[] (int i) const override |
auto | size () const |
auto | begin () const |
auto | end () const |
auto | data () const |
void | set_open_bus (uint8_t value) override |
auto | open_bus () const -> uint8_t override |
auto | hdma_init_requested () const -> bool override |
auto | hdma_run_requested () const -> bool override |
void | init_hdma_request () override |
void | run_hdma_request () override |
void | set_hdma_run_requested (bool value) override |
void | set_hdma_init_requested (bool value) override |
void | set_pal_timing (bool value) override |
void | set_h_pos (uint16_t value) override |
void | set_v_pos (uint16_t value) override |
auto | h_pos () const -> uint16_t override |
auto | v_pos () const -> uint16_t override |
auto | pal_timing () const -> bool override |
auto | dma_state () -> uint8_t & |
void | set_dma_state (uint8_t value) |
auto | dma_channels () -> DmaChannel * |
Public Member Functions inherited from yaze::emu::Memory | |
virtual | ~Memory ()=default |
Public Attributes | |
std::vector< uint8_t > | rom_ |
std::vector< uint8_t > | ram_ |
Private Member Functions | |
uint32_t | GetMappedAddress (uint32_t address) const |
Private Attributes | |
bool | verbose_ = false |
bool | hdma_run_requested_ = false |
bool | hdma_init_requested_ = false |
bool | pal_timing_ = false |
uint32_t | rom_size_ |
uint32_t | sram_size_ |
uint16_t | h_pos_ = 0 |
uint16_t | v_pos_ = 0 |
uint8_t | dma_state_ = 0 |
uint8_t | open_bus_ = 0 |
uint16_t | SP_ = 0 |
uint8_t | type_ = 1 |
DmaChannel | channel [8] |
std::vector< uint8_t > | memory_ |
Implementation of the Memory interface for emulating memory in a SNES system.
void yaze::emu::MemoryImpl::Initialize | ( | const std::vector< uint8_t > & | romData, |
bool | verbose = false ) |
|
inline |
uint8_t yaze::emu::MemoryImpl::cart_read | ( | uint8_t | bank, |
uint16_t | adr ) |
Definition at line 44 of file memory.cc.
References cart_readExHirom(), cart_readHirom(), cart_readLorom(), open_bus_, and type_.
void yaze::emu::MemoryImpl::cart_write | ( | uint8_t | bank, |
uint16_t | adr, | ||
uint8_t | val ) |
Definition at line 58 of file memory.cc.
References cart_writeHirom(), cart_writeLorom(), and type_.
uint8_t yaze::emu::MemoryImpl::cart_readLorom | ( | uint8_t | bank, |
uint16_t | adr ) |
Definition at line 74 of file memory.cc.
References open_bus_, ram_, rom_, rom_size_, and sram_size_.
Referenced by cart_read().
void yaze::emu::MemoryImpl::cart_writeLorom | ( | uint8_t | bank, |
uint16_t | adr, | ||
uint8_t | val ) |
Definition at line 88 of file memory.cc.
References ram_, and sram_size_.
Referenced by cart_write().
uint8_t yaze::emu::MemoryImpl::cart_readHirom | ( | uint8_t | bank, |
uint16_t | adr ) |
Definition at line 96 of file memory.cc.
References open_bus_, ram_, rom_, rom_size_, and sram_size_.
Referenced by cart_read().
uint8_t yaze::emu::MemoryImpl::cart_readExHirom | ( | uint8_t | bank, |
uint16_t | adr ) |
Definition at line 109 of file memory.cc.
References open_bus_, ram_, rom_, rom_size_, and sram_size_.
Referenced by cart_read().
void yaze::emu::MemoryImpl::cart_writeHirom | ( | uint8_t | bank, |
uint16_t | adr, | ||
uint8_t | val ) |
Definition at line 124 of file memory.cc.
References ram_, and sram_size_.
Referenced by cart_write().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 154 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 158 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 163 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 169 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 176 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 180 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 185 of file memory.h.
References GetMappedAddress(), and memory_.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 213 of file memory.h.
References yaze::emu::Memory::PushByte().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 218 of file memory.h.
References yaze::emu::Memory::PopByte().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 224 of file memory.h.
References yaze::emu::Memory::PushByte().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 230 of file memory.h.
References yaze::emu::Memory::PopByte().
|
inlineoverridevirtual |
|
inline |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 258 of file memory.h.
References open_bus_.
Referenced by yaze::emu::ReadDma(), and yaze::emu::TransferByte().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 259 of file memory.h.
References hdma_init_requested_.
Referenced by yaze::emu::HandleDma(), and yaze::emu::WaitCycle().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 262 of file memory.h.
References hdma_run_requested_.
Referenced by yaze::emu::HandleDma(), and yaze::emu::WaitCycle().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 265 of file memory.h.
References hdma_init_requested_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 266 of file memory.h.
References hdma_run_requested_.
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 267 of file memory.h.
References hdma_run_requested_.
Referenced by yaze::emu::DoHdma(), and yaze::emu::ResetDma().
|
inlineoverridevirtual |
Implements yaze::emu::Memory.
Definition at line 270 of file memory.h.
References hdma_init_requested_.
Referenced by yaze::emu::InitHdma(), and yaze::emu::ResetDma().
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
inline |
Definition at line 280 of file memory.h.
References dma_state_.
Referenced by yaze::emu::HandleDma().
|
inline |
Definition at line 281 of file memory.h.
References dma_state_.
Referenced by yaze::emu::HandleDma(), yaze::emu::ResetDma(), and yaze::emu::StartDma().
|
inline |
Definition at line 282 of file memory.h.
References channel.
Referenced by yaze::emu::DoDma(), yaze::emu::DoHdma(), yaze::emu::InitHdma(), yaze::emu::ReadDma(), yaze::emu::ResetDma(), yaze::emu::StartDma(), and yaze::emu::WriteDma().
|
private |
Definition at line 132 of file memory.cc.
Referenced by ReadByte(), ReadByteVector(), ReadWord(), ReadWordLong(), WriteByte(), WriteLong(), and WriteWord().
std::vector<uint8_t> yaze::emu::MemoryImpl::rom_ |
Definition at line 285 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), and Initialize().
std::vector<uint8_t> yaze::emu::MemoryImpl::ram_ |
Definition at line 286 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), cart_writeHirom(), cart_writeLorom(), and Initialize().
|
private |
Definition at line 291 of file memory.h.
Referenced by Initialize().
|
private |
Definition at line 294 of file memory.h.
Referenced by hdma_run_requested(), run_hdma_request(), and set_hdma_run_requested().
|
private |
Definition at line 295 of file memory.h.
Referenced by hdma_init_requested(), init_hdma_request(), and set_hdma_init_requested().
|
private |
Definition at line 297 of file memory.h.
Referenced by pal_timing(), and set_pal_timing().
|
private |
Definition at line 300 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), and Initialize().
|
private |
Definition at line 301 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), cart_writeHirom(), cart_writeLorom(), and Initialize().
|
private |
Definition at line 304 of file memory.h.
Referenced by h_pos(), and set_h_pos().
|
private |
Definition at line 305 of file memory.h.
Referenced by set_v_pos(), and v_pos().
|
private |
Definition at line 308 of file memory.h.
Referenced by dma_state(), and set_dma_state().
|
private |
Definition at line 311 of file memory.h.
Referenced by cart_read(), cart_readExHirom(), cart_readHirom(), cart_readLorom(), open_bus(), and set_open_bus().
|
private |
Definition at line 314 of file memory.h.
Referenced by mutable_sp(), PopByte(), PushByte(), SetSP(), and SP().
|
private |
Definition at line 317 of file memory.h.
Referenced by cart_read(), cart_write(), and Initialize().
|
private |
Definition at line 320 of file memory.h.
Referenced by dma_channels().
|
private |
Definition at line 323 of file memory.h.
Referenced by at(), begin(), ClearMemory(), data(), end(), GetHeaderOffset(), Initialize(), operator[](), PopByte(), PushByte(), ReadByte(), ReadByteVector(), ReadWord(), ReadWordLong(), size(), WriteByte(), WriteLong(), and WriteWord().