Esempio n. 1
0
        public void GetData()
        {
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            InteropEmu.DebugGetState(ref _state);

            _ntChanged = InteropEmu.DebugGetNametableChangedData();

            //Keep a copy of the previous frame to highlight modifications
            for (int i = 0; i < 4; i++)
            {
                _prevTileData[i]      = _tileData[i] != null ? (byte[])_tileData[i].Clone() : null;
                _prevAttributeData[i] = _attributeData[i] != null ? (byte[])_attributeData[i].Clone() : null;
            }

            NametableDisplayMode mode;

            if (_showAttributeColorsOnly)
            {
                mode = NametableDisplayMode.AttributeView;
            }
            else if (ConfigManager.Config.DebugInfo.NtViewerUseGrayscalePalette)
            {
                mode = NametableDisplayMode.Grayscale;
            }
            else
            {
                mode = NametableDisplayMode.Normal;
            }

            for (int i = 0; i < 4; i++)
            {
                InteropEmu.DebugGetNametable(i, mode, out _nametablePixelData[i], out _tileData[i], out _attributeData[i]);
            }

            _hdCopyHelper.RefreshData();
        }