private void batchConvertToolStripMenuItem_Click(object sender, EventArgs e) { var sourceFolder = ""; var destinationFolder = ""; using (var fbd = new FolderBrowserDialog()) { fbd.Description = "Select Source Folder"; //fbd.SelectedPath = @"D:\Projects\Zelda\Sprites"; //if (!String.IsNullOrEmpty(config.DefaultFolder) && Directory.Exists(config.DefaultFolder)) //{ // fbd.SelectedPath = config.DefaultFolder; //} //else //{ // fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //} var result = fbd.ShowDialog(); if (result == DialogResult.OK) { sourceFolder = fbd.SelectedPath; //config.DefaultFolder = fbd.SelectedPath; //var fileName = fbd.SelectedPath; //MessageBox.Show($"{fileName} has been created!", "Enemizer Rom Created"); } } using (var fbd = new FolderBrowserDialog()) { fbd.Description = "Select Destination Folder"; fbd.SelectedPath = sourceFolder; //if (!String.IsNullOrEmpty(config.DefaultFolder) && Directory.Exists(config.DefaultFolder)) //{ // fbd.SelectedPath = config.DefaultFolder; //} //else //{ // fbd.SelectedPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //} var result = fbd.ShowDialog(); if (result == DialogResult.OK) { destinationFolder = fbd.SelectedPath; //config.DefaultFolder = fbd.SelectedPath; //var fileName = fbd.SelectedPath; //MessageBox.Show($"{fileName} has been created!", "Enemizer Rom Created"); } } if (String.IsNullOrEmpty(sourceFolder) || String.IsNullOrEmpty(destinationFolder)) { return; } var files = Directory.GetFiles(sourceFolder, "*.spr"); foreach (var file in files) { try { var destFilename = Path.Combine(destinationFolder, Path.GetFileNameWithoutExtension(file) + ".zspr"); var spriteFile = File.ReadAllBytes(file); var loadedSprite = new SpriteLibrary.PlayerSprite(spriteFile); if (loadedSprite.Version == 0) { loadedSprite.DisplayText = Path.GetFileNameWithoutExtension(file); } var spriteData = loadedSprite.ToByteArray(); FileUtilities.WriteAllBytes(destFilename, spriteData); } catch (Exception ex) { MessageBox.Show($"Failed to convert file {file}. {ex.ToString()}."); } } MessageBox.Show("Done converting sprites"); }
// EXPORT SPR private void ExportSPRsaveDialog_FileOk(object sender, CancelEventArgs e) { tempFolders[6] = Path.GetDirectoryName(ExportSPRsaveDialog.FileName); if (ROM_DATA != null) { byte[] palette_data = new byte[0x78]; int palette_data_i = 0; for (int i = 0; i < 15; i++) { short s = (short)(((palette[i + 1].B / 8) << 10) | ((palette[i + 1].G / 8) << 5) | ((palette[i + 1].R / 8))); palette_data[palette_data_i] = (byte)(s & 0x00FF); palette_data[palette_data_i + 1] = (byte)((s >> 8) & 0x00FF); palette_data_i += 2; } for (int i = 0; i < 15; i++) { short s = (short)(((palette2[i + 1].B / 8) << 10) | ((palette2[i + 1].G / 8) << 5) | ((palette2[i + 1].R / 8))); palette_data[palette_data_i] = (byte)(s & 0x00FF); palette_data[palette_data_i + 1] = (byte)((s >> 8) & 0x00FF); palette_data_i += 2; } for (int i = 0; i < 15; i++) { short s = (short)(((palette3[i + 1].B / 8) << 10) | ((palette3[i + 1].G / 8) << 5) | ((palette3[i + 1].R / 8))); palette_data[palette_data_i] = (byte)(s & 0x00FF); palette_data[palette_data_i + 1] = (byte)((s >> 8) & 0x00FF); palette_data_i += 2; } for (int i = 0; i < 15; i++) { short s = (short)(((palette4[i + 1].B / 8) << 10) | ((palette4[i + 1].G / 8) << 5) | ((palette4[i + 1].R / 8))); palette_data[palette_data_i] = (byte)(s & 0x00FF); palette_data[palette_data_i + 1] = (byte)((s >> 8) & 0x00FF); palette_data_i += 2; } data = new byte[0x7000 + 0x78]; for (int i = 0; i < 0x7000; i++) { data[i] = ROM_DATA[0x80000 + i]; } for (int i = 0; i < 0x78; i++) { data[0x7000 + i] = palette_data[i]; } Array.Copy(this.ROM_DATA, 0x80000, loadedSprite.PixelData, 0, 0x7000); loadedSprite.PaletteData = palette_data; var spriteFileBytes = loadedSprite.ToByteArray(); File.WriteAllBytes(ExportSPRsaveDialog.FileName, spriteFileBytes); //FileStream fs = new FileStream(ExportSPRsaveDialog.FileName, FileMode.OpenOrCreate, FileAccess.Write); //fs.Write(data, 0, 0x7000 + 0x78); //fs.Close(); } else { MessageBox.Show("You need to load something before you can save it"); } }