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 () |
memory::RomInfo | ReadRomHeader () |
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::app::emu::memory::Memory | |
virtual | ~Memory ()=default |
Public Attributes | |
uint32_t | romSize |
uint32_t | sramSize |
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 |
uint16_t | h_pos_ = 0 |
uint16_t | v_pos_ = 0 |
uint8_t | dma_state_ = 0 |
DmaChannel | channel [8] |
uint8_t | open_bus_ = 0 |
uint16_t | SP_ = 0 |
uint8_t | type_ = 1 |
std::vector< uint8_t > | memory_ |
Additional Inherited Members | |
Protected Member Functions inherited from yaze::app::emu::Loggable | |
virtual | ~Loggable ()=default |
virtual void | LogMessage (const std::string &message) |
Protected Attributes inherited from yaze::app::emu::Loggable | |
Logger & | logger_ = Logger::GetInstance() |
void yaze::app::emu::memory::MemoryImpl::Initialize | ( | const std::vector< uint8_t > & | romData, |
bool | verbose = false ) |
|
inline |
Definition at line 170 of file memory.h.
Referenced by ReadRomHeader().
memory::RomInfo yaze::app::emu::memory::MemoryImpl::ReadRomHeader | ( | ) |
Definition at line 56 of file memory.cc.
References yaze::app::emu::memory::RomInfo::bankSize, yaze::app::emu::memory::RomInfo::checksum, yaze::app::emu::memory::RomInfo::checksumComplement, yaze::app::emu::memory::RomInfo::countryCode, GetHeaderOffset(), yaze::app::emu::memory::RomInfo::license, yaze::app::emu::memory::RomInfo::nmiVblVector, ReadByte(), ReadWord(), yaze::app::emu::memory::RomInfo::resetVector, yaze::app::emu::memory::RomInfo::romSize, yaze::app::emu::memory::RomInfo::romSpeed, yaze::app::emu::memory::RomInfo::romType, yaze::app::emu::memory::RomInfo::sramSize, yaze::app::emu::memory::RomInfo::title, and yaze::app::emu::memory::RomInfo::version.
uint8_t yaze::app::emu::memory::MemoryImpl::cart_read | ( | uint8_t | bank, |
uint16_t | adr ) |
Definition at line 107 of file memory.cc.
References cart_readExHirom(), cart_readHirom(), cart_readLorom(), open_bus_, and type_.
Referenced by yaze::app::emu::SNES::Rread().
void yaze::app::emu::memory::MemoryImpl::cart_write | ( | uint8_t | bank, |
uint16_t | adr, | ||
uint8_t | val ) |
Definition at line 121 of file memory.cc.
References cart_writeHirom(), cart_writeLorom(), and type_.
Referenced by yaze::app::emu::SNES::Write().
uint8_t yaze::app::emu::memory::MemoryImpl::cart_readLorom | ( | uint8_t | bank, |
uint16_t | adr ) |
void yaze::app::emu::memory::MemoryImpl::cart_writeLorom | ( | uint8_t | bank, |
uint16_t | adr, | ||
uint8_t | val ) |
Definition at line 151 of file memory.cc.
References ram_, and sramSize.
Referenced by cart_write().
uint8_t yaze::app::emu::memory::MemoryImpl::cart_readHirom | ( | uint8_t | bank, |
uint16_t | adr ) |
uint8_t yaze::app::emu::memory::MemoryImpl::cart_readExHirom | ( | uint8_t | bank, |
uint16_t | adr ) |
void yaze::app::emu::memory::MemoryImpl::cart_writeHirom | ( | uint8_t | bank, |
uint16_t | adr, | ||
uint8_t | val ) |
Definition at line 187 of file memory.cc.
References ram_, and sramSize.
Referenced by cart_write().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 206 of file memory.h.
Referenced by ReadRomHeader().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 210 of file memory.h.
Referenced by ReadRomHeader(), and yaze::app::zelda3::dungeon::DungeonObjectRenderer::UpdateObjectBitmap().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 265 of file memory.h.
References yaze::app::emu::memory::Memory::PushByte().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 270 of file memory.h.
References yaze::app::emu::memory::Memory::PopByte().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 276 of file memory.h.
References yaze::app::emu::memory::Memory::PushByte().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 282 of file memory.h.
References yaze::app::emu::memory::Memory::PopByte().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inline |
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inline |
|
inline |
|
inline |
|
inline |
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 309 of file memory.h.
Referenced by yaze::app::emu::SNES::Read(), yaze::app::emu::SNES::Reset(), and yaze::app::emu::SNES::Write().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 310 of file memory.h.
Referenced by yaze::app::emu::memory::dma::Read(), yaze::app::emu::SNES::ReadBBus(), yaze::app::emu::SNES::ReadReg(), yaze::app::emu::SNES::Rread(), and yaze::app::emu::memory::dma::TransferByte().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 311 of file memory.h.
Referenced by yaze::app::emu::memory::dma::HandleDma(), and yaze::app::emu::memory::dma::WaitCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 314 of file memory.h.
Referenced by yaze::app::emu::memory::dma::HandleDma(), and yaze::app::emu::memory::dma::WaitCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 317 of file memory.h.
Referenced by yaze::app::emu::SNES::RunCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 318 of file memory.h.
Referenced by yaze::app::emu::SNES::RunCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 319 of file memory.h.
Referenced by yaze::app::emu::memory::dma::DoHdma(), and yaze::app::emu::memory::dma::Reset().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 322 of file memory.h.
Referenced by yaze::app::emu::memory::dma::InitHdma(), and yaze::app::emu::memory::dma::Reset().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 326 of file memory.h.
Referenced by yaze::app::emu::SNES::Reset(), and yaze::app::emu::SNES::RunCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 327 of file memory.h.
Referenced by yaze::app::emu::SNES::Reset(), and yaze::app::emu::SNES::RunCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 328 of file memory.h.
Referenced by yaze::app::emu::SNES::ReadReg(), yaze::app::emu::SNES::RunCycle(), and yaze::app::emu::SNES::RunCycles().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 329 of file memory.h.
Referenced by yaze::app::emu::SNES::RunCycle().
|
inlineoverridevirtual |
Implements yaze::app::emu::memory::Memory.
Definition at line 330 of file memory.h.
Referenced by yaze::app::emu::SNES::RunCycle(), yaze::app::emu::audio::Apu::RunCycles(), and yaze::app::emu::SNES::SetSamples().
|
inline |
Definition at line 332 of file memory.h.
Referenced by yaze::app::emu::memory::dma::HandleDma().
|
inline |
Definition at line 333 of file memory.h.
Referenced by yaze::app::emu::memory::dma::HandleDma(), yaze::app::emu::memory::dma::Reset(), and yaze::app::emu::memory::dma::StartDma().
|
inline |
Definition at line 334 of file memory.h.
Referenced by yaze::app::emu::memory::dma::DoDma(), yaze::app::emu::memory::dma::DoHdma(), yaze::app::emu::memory::dma::InitHdma(), yaze::app::emu::memory::dma::Read(), yaze::app::emu::memory::dma::Reset(), yaze::app::emu::memory::dma::StartDma(), and yaze::app::emu::memory::dma::Write().
|
private |
uint32_t yaze::app::emu::memory::MemoryImpl::romSize |
Definition at line 166 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), and Initialize().
uint32_t yaze::app::emu::memory::MemoryImpl::sramSize |
Definition at line 167 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), cart_writeHirom(), cart_writeLorom(), and Initialize().
std::vector<uint8_t> yaze::app::emu::memory::MemoryImpl::rom_ |
Definition at line 337 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), and Initialize().
std::vector<uint8_t> yaze::app::emu::memory::MemoryImpl::ram_ |
Definition at line 338 of file memory.h.
Referenced by cart_readExHirom(), cart_readHirom(), cart_readLorom(), cart_writeHirom(), cart_writeLorom(), and Initialize().
|
private |
Definition at line 343 of file memory.h.
Referenced by Initialize().
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
Definition at line 362 of file memory.h.
Referenced by cart_read(), cart_readExHirom(), cart_readHirom(), and cart_readLorom().
|
private |
|
private |
Definition at line 368 of file memory.h.
Referenced by cart_read(), cart_write(), and Initialize().
|
private |
Definition at line 371 of file memory.h.
Referenced by Initialize().