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