33 inline void sync(EmuTime::param time) {
34 cmdEngine->
sync(time);
38 return ((address & 1) << 18) | ((address & 0x7FFFE) >> 1);
45 if (address < 0x78000) {
47 }
else if (address < 0x7C000) {
48 return address - 0x3C000;
78 data.
write(address, value);
86 template<
typename Archive>
87 void serialize(Archive& ar,
unsigned version);
90 unsigned mapAddress(
unsigned address);
Implementation of the Yamaha V9990 VDP as used in the GFX9000 cartridge by Sunrise.
void writeVRAMP2(unsigned address, byte value)
void sync(EmuTime::param time)
Synchronises the command engine with the V9990.
void writeVRAMP1(unsigned address, byte value)
V9990VRAM(V9990 &vdp, EmuTime::param time)
Construct V9990 VRAM.
void writeVRAMCPU(unsigned address, byte val, EmuTime::param time)
byte readVRAMCPU(unsigned address, EmuTime::param time)
byte readVRAMBx(unsigned address)
uint8_t byte
8 bit unsigned integer
void writeVRAMBx(unsigned address, byte value)
static constexpr unsigned VRAM_SIZE
VRAM Size.
byte readVRAMP1(unsigned address)
void sync(EmuTime::param time)
Update VRAM state to specified moment in time.
static unsigned transformP1(unsigned address)
byte readVRAMP2(unsigned address)
static unsigned transformP2(unsigned address)
Thanks to enen for testing this on a real cartridge:
static unsigned transformBx(unsigned address)
byte readVRAMDirect(unsigned address)
void writeVRAMDirect(unsigned address, byte value)
void setCmdEngine(V9990CmdEngine &cmdEngine_)
void serialize(Archive &ar, unsigned version)
void write(unsigned addr, byte value)