Ejemplo n.º 1
0
        /// <summary>
        /// converts Tiles from Memory to Bitmap.
        /// </summary>
        /// <param name="startAdress"></param>
        /// <returns></returns>
        public static Picture Tile_StartAdress(int startAdress, int pallete)
        {
            byte[,] pattern = new byte[8, 8];
            NES_PPU_Color color        = NES_PPU_Palette.getPalette(pallete);
            var           PatternTable = NES_PPU_Memory.Memory;
            int           ID           = GetTileID(startAdress, pallete, PatternTable);

            return(CreateTileBitmap(startAdress, color, PatternTable, ID));
        }
Ejemplo n.º 2
0
        public static Picture PaletteTable()
        {
            Picture bitmap = new Picture(TempPaletteTable);

            if (NES_PPU_Register.PPUCTRL.V)
            {
                bitmap.FillRectangle(NES_PPU_Palette.UniversalBackgroundColor(), 0, 0, bitmap.Size.Width, bitmap.Size.Height);
                int k = 0;
                for (ushort i = 0; i < 2; i++)
                {
                    int o = 0;
                    for (ushort j = 0; j < 4; j++)
                    {
                        var color = NES_PPU_Palette.getPalette(k++);
                        for (int h = 0; h < 4; h++)
                        {
                            if (color.color[h] == Color.Transparent)
                            {
                                bitmap.FillRectangle(NES_PPU_Palette.UniversalBackgroundColor(), o * 20, i * 20, ++o * 20, (i + 1) * 20);
                            }
                            else
                            {
                                bitmap.FillRectangle(color.color[h], o * 20, i * 20, ++o * 20, (i + 1) * 20);
                            }
                        }
                    }
                }
                for (ushort i = 0; i < 2; i++)
                {
                    int o = 0;
                    for (ushort j = 0; j < 4; j++)
                    {
                        for (int h = 0; h < 4; h++)
                        {
                            bitmap.DrawInfoRectangle(Color.Black, o * 20, i * 20, ++o * 20, (i + 1) * 20);
                        }
                    }
                }
                TempPaletteTable = bitmap;
            }
            return(bitmap);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// converts Tiles from Memory to Bitmap. With ID and  Backgrount Tile Select.
        /// </summary>
        /// <param name="spriteID">ID of Sprite  </param>
        /// <returns></returns>
        public static Picture Tile(ushort spriteID, int pallete)
        {
            System.TimeSpan t1 = new System.TimeSpan(0);
            System.TimeSpan t2 = new System.TimeSpan(0);
            Stopwatch       t  = new Stopwatch();

            t.Start();
            int startAdress = spriteID * 16;

            byte[,] pattern = new byte[8, 8];
            NES_PPU_Color color        = NES_PPU_Palette.getPalette(pallete);
            var           PatternTable = NES_PPU_Memory.PatternTableN[NES_PPU_Register.PPUCTRL.B ? 1 : 0];
            int           ID           = GetTileID(startAdress, pallete, PatternTable);

            t1 = t.Elapsed;
            var temp = CreateTileBitmap(startAdress, color, PatternTable, ID);

            t2 = t.Elapsed;
            t.Stop();
            t2 -= t1;
            return(temp);
        }