static string ReOpen(string romRebuildFilename, string orignalFilename, int useFreeArea, uint freeAreaMinimumSize, uint freeAreaStartAddress, string appendFreeAreaFilename, uint useShareSameData) { ROM rom = new ROM(); string version; bool r = rom.Load(orignalFilename, out version); if (!r) { R.ShowStopError("未対応のROMです。\r\ngame version={0}", version); return(""); } using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait()) { r = ToolROMRebuildForm.ApplyROMRebuild(pleaseWait, rom, romRebuildFilename , useFreeArea , freeAreaMinimumSize , freeAreaStartAddress , appendFreeAreaFilename , useShareSameData); if (!r) { U.SelectFileByExplorer(ToolROMRebuildApply.GetLogFilename(romRebuildFilename)); return(""); } } string newFilename = U.ChangeExtFilename(romRebuildFilename, ".gba"); rom.Save(newFilename, false); return(newFilename); }
private void ROMRebuildOpenSimpleForm_Shown(object sender, EventArgs e) { using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(this)) { String dir = Path.GetDirectoryName(this.ROMRebuildFilename); String filename = Path.GetFileName(this.ROMRebuildFilename); pleaseWait.DoEvents(R._("{0}に適合する元ファイルを自動検索中・・・", filename)); string[] lines = File.ReadAllLines(this.ROMRebuildFilename); uint srcCRC32 = ToolROMRebuildApply.GetCRC32(lines); string orignal_romfile = MainFormUtil.FindOrignalROMByCRC32(dir, srcCRC32); this.OrignalFilename.Text = orignal_romfile; } }
public static bool ApplyROMRebuild(InputFormRef.AutoPleaseWait wait, ROM vanilla, string filename, int useFreeArea, uint freeAreaMinimumSize, uint freeAreaStartAddress, string appendFreeAreaFilename, uint useShareSameData) { ToolROMRebuildApply romRebuildApply = new ToolROMRebuildApply(); return(romRebuildApply.Apply(wait, vanilla, filename, useFreeArea, freeAreaMinimumSize, freeAreaStartAddress, appendFreeAreaFilename, useShareSameData)); }
public static bool ApplyROMRebuild(InputFormRef.AutoPleaseWait wait, ROM vanilla, string filename, int useFreeArea) { ToolROMRebuildApply romRebuildApply = new ToolROMRebuildApply(); return(romRebuildApply.Apply(wait, vanilla, filename, useFreeArea)); }
private void ApplyROMRebuildButton_Click(object sender, EventArgs e) { if (InputFormRef.IsPleaseWaitDialog(this)) {//2重割り込み禁止 return; } string errorMessage = MainFormUtil.CheckOrignalROM(OrignalFilename.Text); if (errorMessage != "") { R.ShowStopError("無改造ROMを指定してください。" + "\r\n" + errorMessage); OrignalFilename.ErrorMessage = R._("無改造ROMを指定してください。" + "\r\n" + errorMessage); return; } OrignalFilename.ErrorMessage = ""; ROM rom = new ROM(); string version; bool r = rom.Load(OrignalFilename.Text, out version); if (!r) { R.ShowStopError("未対応のROMです。\r\ngame version={0}", version); return; } using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(this)) { r = ToolROMRebuildForm.ApplyROMRebuild(pleaseWait, rom, this.ROMRebuildFilename, UseFreeAreaComboBox.SelectedIndex); if (!r) { U.SelectFileByExplorer(ToolROMRebuildApply.GetLogFilename(this.ROMRebuildFilename)); return; } } this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); if (this.UseReOpen) {//メインフォームを開きなおさないといけない場合 MainFormUtil.ReOpenMainForm(); } if (this.IsSaveFileCheckBox.Checked) { string newFilename = U.ChangeExtFilename(this.ROMRebuildFilename, ".gba"); rom.Save(newFilename, false); //エクスプローラで選択しよう U.SelectFileByExplorer(newFilename); //保存したROMを開く. Program.LoadROM(newFilename, this.ForceVersion); } else { //保存しない場合、メモリ上の存在になる. Program.LoadVirtualROM(rom, this.ROMRebuildFilename); } }