public void SaveAllGfx() { for (int i = 0; i < 223; i++) { byte[] sdata = new byte[0x800]; unsafe { byte *gdata = (byte *)GFX.allgfx16Ptr.ToPointer(); for (int j = 0; j < 0x800; j++) { sdata[j] = gdata[(i * 0x800) + j]; } if (GFX.isbpp3[i]) { if (modifiedSheets[i] != null) { gfxSheets3bpp[i] = modifiedSheets[i]; modifiedSheets[i] = null; } else { gfxSheets3bpp[i] = GFX.pc4bppto3bppsnes(sdata); } } else { if (modifiedSheets[i] != null) { //Console.WriteLine(i.ToString() + " Sheet has been modified"); gfxSheets3bpp[i] = modifiedSheets[i]; modifiedSheets[i] = null; } else { int compressedSize = 0; gfxSheets3bpp[i] = ZCompressLibrary.Decompress.ALTTPDecompressGraphics(ROM.DATA, GFX.GetPCGfxAddress(ROM.DATA, (byte)i), 0x800, ref compressedSize); } } } } Console.WriteLine("Reached"); recompressAllGfx(); }