コード例 #1
0
 private void GetNametableData()
 {
     InteropEmu.DebugGetPpuScroll(out _debugState.TileMaps.ScrollX, out _debugState.TileMaps.ScrollY);
     for (int i = 0; i < _debugState.TileMaps.NumberOfMaps; i++)
     {
         InteropEmu.DebugGetNametable(i, NametableDisplayMode.Normal, out _debugState.TileMaps.PixelData[i], out _debugState.TileMaps.TileData[i], out _debugState.TileMaps.AttributeData[i]);
     }
 }
コード例 #2
0
        public void GetData()
        {
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);

            for (int i = 0; i < 4; i++)
            {
                InteropEmu.DebugGetNametable(i, out _nametablePixelData[i], out _tileData[i], out _attributeData[i]);
            }
        }
コード例 #3
0
        public void GetData()
        {
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            InteropEmu.DebugGetState(ref _state);

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

            _hdCopyHelper.RefreshData();
        }
コード例 #4
0
        public void GetData()
        {
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            InteropEmu.DebugGetState(ref _state);

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

            _ppuMemory = InteropEmu.DebugGetMemoryState(DebugMemoryType.PpuMemory);
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            _xScroll &= 0xFFF8;
            _yScroll &= 0xFFF8;
        }
コード例 #5
0
        public void GetData()
        {
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            InteropEmu.DebugGetState(ref _state);

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

            _ppuMemory = InteropEmu.DebugGetMemoryState(DebugMemoryType.PpuMemory);
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            _xScroll &= 0xFFF8;
            _yScroll &= 0xFFF8;
        }
コード例 #6
0
        public void GetData()
        {
            InteropEmu.DebugGetPpuScroll(out _xScroll, out _yScroll);
            InteropEmu.DebugGetState(ref _state);

            //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;
            }

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

            _hdCopyHelper.RefreshData();
        }
コード例 #7
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();
        }
コード例 #8
0
        public void RefreshViewer()
        {
            PictureBox[] nametables = new PictureBox[] { this.picNametable1, this.picNametable2, this.picNametable3, this.picNametable4 };

            for (int i = 0; i < 4; i++)
            {
                byte[] nametablePixelData, tileData, attributeData;
                InteropEmu.DebugGetNametable(i, out nametablePixelData, out tileData, out attributeData);
                _tileData[i]      = tileData;
                _attributeData[i] = attributeData;

                GCHandle handle = GCHandle.Alloc(nametablePixelData, GCHandleType.Pinned);
                try {
                    Bitmap source = new Bitmap(256, 240, 4 * 256, System.Drawing.Imaging.PixelFormat.Format32bppArgb, handle.AddrOfPinnedObject());
                    Bitmap target = new Bitmap(256, 240);
                    using (Graphics g = Graphics.FromImage(target)) {
                        g.DrawImage(source, new Rectangle(0, 0, 256, 240), new Rectangle(0, 0, 256, 240), GraphicsUnit.Pixel);
                    }
                    nametables[i].Image = target;
                } finally {
                    handle.Free();
                }
            }
        }