Пример #1
0
        private IAddressSpace GetAddressSpace(int address)
        {
            if (_videoRam0.Accepts(address) /* && mode != Mode.PixelTransfer*/)
            {
                return(GetVideoRam());
            }

            if (_oamRam.Accepts(address) &&
                !_dma.IsOamBlocked() /* && mode != Mode.OamSearch && mode != Mode.PixelTransfer*/)
            {
                return(_oamRam);
            }

            if (_lcdc.Accepts(address))
            {
                return(_lcdc);
            }

            if (_r.Accepts(address))
            {
                return(_r);
            }

            if (_gbc && _bgPalette.Accepts(address))
            {
                return(_bgPalette);
            }

            if (_gbc && _oamPalette.Accepts(address))
            {
                return(_oamPalette);
            }

            return(null);
        }
Пример #2
0
 public bool Accepts(int address) => _addressSpace.Accepts(address) || address == 0xff50;