void MemPtrs::setOamDmaSrc(const OamDmaSrc oamDmaSrc) { rmem_[0x3] = rmem_[0x2] = rmem_[0x1] = rmem_[0x0] = romdata_[0]; rmem_[0x7] = rmem_[0x6] = rmem_[0x5] = rmem_[0x4] = romdata_[1]; rmem_[0xB] = rmem_[0xA] = rsrambankptr_; wmem_[0xB] = wmem_[0xA] = wsrambankptr_; rmem_[0xC] = wmem_[0xC] = wramdata_[0] - 0xC000; rmem_[0xD] = wmem_[0xD] = wramdata_[1] - 0xD000; rmem_[0xE] = wmem_[0xE] = wramdata_[0] - 0xE000; oamDmaSrc_ = oamDmaSrc; disconnectOamDmaAreas(); }
void MemPtrs::setRambank(const unsigned flags, const unsigned rambank) { unsigned char *const srambankptr = flags & RTC_EN ? 0 : (rambankdata() != rambankdataend() ? rambankdata_ + rambank * 0x2000ul - 0xA000 : wdisabledRam() - 0xA000); rsrambankptr_ = (flags & READ_EN) && srambankptr != wdisabledRam() - 0xA000 ? srambankptr : rdisabledRamw() - 0xA000; wsrambankptr_ = flags & WRITE_EN ? srambankptr : wdisabledRam() - 0xA000; rmem_[0xB] = rmem_[0xA] = rsrambankptr_; wmem_[0xB] = wmem_[0xA] = wsrambankptr_; disconnectOamDmaAreas(); }
void MemPtrs::setRambank(unsigned const flags, unsigned const rambank) { unsigned char *srambankptr = 0; if (!(flags & rtc_en)) { srambankptr = rambankdata() != rambankdataend() ? rambankdata_ + rambank * 0x2000ul - 0xA000 : wdisabledRam() - 0xA000; } rsrambankptr_ = (flags & read_en) && srambankptr != wdisabledRam() - 0xA000 ? srambankptr : rdisabledRamw() - 0xA000; wsrambankptr_ = flags & write_en ? srambankptr : wdisabledRam() - 0xA000; rmem_[0xB] = rmem_[0xA] = rsrambankptr_; wmem_[0xB] = wmem_[0xA] = wsrambankptr_; disconnectOamDmaAreas(); }
void MemPtrs::setWrambank(const unsigned bank) { wramdata_[1] = wramdata_[0] + ((bank & 0x07) ? (bank & 0x07) : 1) * 0x1000; rmem_[0xD] = wmem_[0xD] = wramdata_[1] - 0xD000; disconnectOamDmaAreas(); }
void MemPtrs::setRombank(const unsigned bank) { romdata_[1] = romdata() + bank * 0x4000ul - 0x4000; rmem_[0x7] = rmem_[0x6] = rmem_[0x5] = rmem_[0x4] = romdata_[1]; disconnectOamDmaAreas(); }
void MemPtrs::setRombank0(const unsigned bank) { romdata_[0] = romdata() + bank * 0x4000ul; rmem_[0x3] = rmem_[0x2] = rmem_[0x1] = rmem_[0x0] = romdata_[0]; disconnectOamDmaAreas(); }