Beispiel #1
0
        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");
        }
Beispiel #2
0
        // 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");
            }
        }