public void Import(uint[] Bitmap_Buffer) { // Convert to nibble map array of bytes byte[] Pattern_Buffer = new byte[Bitmap_Buffer.Length / 2]; if (Save_File.Save_Generation == SaveGeneration.NDS || Save_File.Save_Generation == SaveGeneration.N3DS) { for (int i = 0; i < Pattern_Buffer.Length; i++) { int idx = i * 2; Pattern_Buffer[i] = (byte)((PatternData.ClosestColorRGB(Bitmap_Buffer[idx + 1], PaletteData) << 4) | PatternData.ClosestColorRGB(Bitmap_Buffer[idx], PaletteData)); // these are reversed } } else { byte[] ConvertedBuffer = new byte[Bitmap_Buffer.Length]; for (int i = 0; i < ConvertedBuffer.Length; i++) { ConvertedBuffer[i] = PatternData.ClosestColorRGB(Bitmap_Buffer[i], PaletteData); } Pattern_Buffer = PatternUtility.EncodeC4(ConvertedBuffer); } switch (Save_File.Save_Generation) { case SaveGeneration.GCN: case SaveGeneration.Wii: GeneratePatternBitmap(Pattern_Buffer); break; case SaveGeneration.NDS: GenerateWWPatternBitmap(Pattern_Buffer); break; case SaveGeneration.N3DS: GenerateNLPatternBitmap(Pattern_Buffer); break; } Write(Pattern_Buffer); }