33 inline void sync(EmuTime::param time) {
34 cmdEngine->
sync(time);
37 [[nodiscard]]
static inline unsigned transformBx(
unsigned address) {
38 return ((address & 1) << 18) | ((address & 0x7FFFE) >> 1);
40 [[nodiscard]]
static inline unsigned transformP1(
unsigned address) {
43 [[nodiscard]]
static inline unsigned transformP2(
unsigned address) {
45 if (address < 0x78000) {
47 }
else if (address < 0x7C000) {
48 return address - 0x3C000;
78 data.
write(address, value);
81 [[nodiscard]]
byte readVRAMCPU(
unsigned address, EmuTime::param time);
82 void writeVRAMCPU(
unsigned address,
byte val, EmuTime::param time);
86 template<
typename Archive>
87 void serialize(Archive& ar,
unsigned version);
90 unsigned mapAddress(
unsigned address);
void write(size_t addr, byte value)
void sync(EmuTime::param time)
Synchronizes the command engine with the V9990.
void writeVRAMCPU(unsigned address, byte val, EmuTime::param time)
void writeVRAMP2(unsigned address, byte value)
V9990VRAM(V9990 &vdp, EmuTime::param time)
Construct V9990 VRAM.
void writeVRAMP1(unsigned address, byte value)
byte readVRAMDirect(unsigned address)
void serialize(Archive &ar, unsigned version)
byte readVRAMP1(unsigned address)
void sync(EmuTime::param time)
Update VRAM state to specified moment in time.
static constexpr unsigned VRAM_SIZE
VRAM Size.
byte readVRAMCPU(unsigned address, EmuTime::param time)
void writeVRAMDirect(unsigned address, byte value)
void setCmdEngine(V9990CmdEngine &cmdEngine_)
static unsigned transformP2(unsigned address)
void writeVRAMBx(unsigned address, byte value)
static unsigned transformBx(unsigned address)
byte readVRAMP2(unsigned address)
byte readVRAMBx(unsigned address)
static unsigned transformP1(unsigned address)
Implementation of the Yamaha V9990 VDP as used in the GFX9000 cartridge by Sunrise.
This file implemented 3 utility functions: