static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Must provide a filename. Usage: GCImageRip filename"); return; } string filename = args[0]; GameComImage.FixColor(filename, GameComGame.FightersMegamix); }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Must provide a filename. Usage: GCImageRip filename"); return; } string filename = args[0]; GameComImage.Convert(filename, true); }
static void Main(string[] args) { if (args.Length < 2) { Console.WriteLine("Must provide 2 filenames. Usage: GCApplyAlpha filename alpha_filename"); return; } string filename = args[0]; string filename2 = args[1]; GameComImage.MergeAlpha(filename, filename2).Save(Path.GetFileNameWithoutExtension(filename) + "_a" + ".png"); }
static void Main(string[] args) { if (args.Length < 1) { Console.WriteLine("Must provide a filename. Usage: GCImageConv filename"); return; } string filename = args[0]; string ext = Path.GetExtension(filename); GameComImage.Convert(filename); }
private void loadBankBin_Click(object sender, EventArgs e) { if (loadBankBinDialog.ShowDialog() != DialogResult.OK) { return; } CurrentBank.Image = GameComImage.FromFile(loadBankBinDialog.FileName, false); CurrentROM.ReplaceBank(CurrentBankIndex, CurrentBank.Image); fullRomImage.Image = CurrentROM.FullImage.Bitmap; bankImage.Image = CurrentROM.MemoryBanks[CurrentBankIndex].Image.Bitmap; fullRomImage.Refresh(); bankImage.Refresh(); }
private void compileASMButton_Click(object sender, EventArgs e) { loadASMRomButton.Enabled = false; File.Delete($"{ASMFolder}\\build.bin"); File.Delete($"{ASMFolder}\\ASM85.ERR"); Directory.CreateDirectory(SourceFolder); string[] files = Directory.GetFiles(SourceFolder); for (int i = 0; i < files.Length; ++i) { File.Delete(files[i]); } files = Directory.GetFiles(compileASMFileBox.Text, "*.*", SearchOption.TopDirectoryOnly); Dictionary <int, GameComImage> images = new Dictionary <int, GameComImage>(); for (int i = 0; i < files.Length; ++i) { File.Copy(files[i], SourceFolder + "\\" + Path.GetFileName(files[i])); } if (Directory.Exists(compileASMFileBox.Text + "\\gfx")) { files = Directory.GetFiles(compileASMFileBox.Text + "\\gfx"); for (int i = 0; i < files.Length; ++i) { string ext = Path.GetExtension(files[i]).ToLower(); if (ext != ".bmp" && ext != ".gif" && ext != ".png" && ext != ".bin") { continue; } string path = Path.GetFileNameWithoutExtension(files[i]); int num = GetFilenameId(path); if (num < 0) { continue; } images.Add(num, GameComImage.FromFile(files[i])); } } Process.Start($"{DOSFolder}\\DosBoxPortable.exe", "\"..\\..\\Assembler\\compile.bat\" -noconsole -exit")?.WaitForExit(); while (true) { if (File.Exists(ErrorFile)) { if (File.Exists($"{ASMFolder}\\build.bin") && new FileInfo($"{ASMFolder}\\build.bin").Length > 8) { System.Threading.Thread.Sleep(100); byte[] asm = File.ReadAllBytes($"{ASMFolder}\\build.bin"); int length = Math.Max(asm.Length, BuildData.Length); int maxlength = (asm.Length + 0x40000 < 1048576) ? 1048576 : 2097152; byte[] fullFile = new byte[maxlength]; for (int i = 0; i < length; ++i) { fullFile[0x40000 + i] = (i < asm.Length ? asm[i] : BuildData[i]); } int[] keys = images.Keys.ToArray(); for (int i = 0; i < images.Count; ++i) { int num = keys[i]; Array.Copy(images[num].RawBytes, 0, fullFile, num * GameComBank.SizeInBytes, GameComBank.SizeInBytes); } File.Delete($"{SourceFolder}\\build.bin"); File.WriteAllBytes($"{compileASMFileBox.Text}\\build.bin", fullFile); asmNameLabel.Text = "Errors: None"; loadASMRomButton.Enabled = true; break; } else if (new FileInfo(ErrorFile).Length > 1) { try { asmNameLabel.Text = "Errors:\n" + File.ReadAllText(ErrorFile); }catch { continue; } break; } } } }