private void button1_Click(object sender, EventArgs e) { int csize = 0; SaveFileDialog sfd = new SaveFileDialog(); sfd.Filter = "all *.bin |*.bin"; if (sfd.ShowDialog() == DialogResult.OK) { byte[] ndata = ZCompressLibrary.Decompress.ALTTPDecompressGraphics(ROM.DATA, GFX.GetPCGfxAddress(ROM.DATA, (byte)selectedSheet), 0x1000, ref csize); FileStream fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate, FileAccess.Write); fs.Write(ndata, 0, ndata.Length); fs.Close(); } byte[] sdata = new byte[0x800]; unsafe { byte *gdata = (byte *)GFX.allgfx16Ptr.ToPointer(); for (int i = 0; i < 0x800; i++) { sdata[i] = gdata[(selectedSheet * 0x800) + i]; } } }
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(); }