public MainFE6Form() { InitializeComponent(); FixedButton(); InputFormRef.RecolorMenuStrip(this.menuStrip1); MainFormUtil.MakeExplainFunctions(this.ControlPanel); }
private void ROMRebuildForm_Load(object sender, EventArgs e) { string orignal_romfile; using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(null)) { if (Program.ROM.Data.Length <= U.toOffset(Program.ROM.RomInfo.extends_address)) { R.ShowStopError("このROMは拡張領域を利用していないので、リビルドできません。"); this.Close(); return; } List <FELint.ErrorSt> systemErrorList = Program.AsmMapFileAsmCache.GetFELintCache(FELint.SYSTEM_MAP_ID); if (systemErrorList != null && systemErrorList.Count > 0) { DialogResult dr = R.ShowNoYes("警告\r\nこのROMにはシステムエラーがあるので、リビルドを実行するべきではありません。\r\n危険を承知した上でも、それでも実行しますか?"); if (dr != System.Windows.Forms.DialogResult.Yes) { this.Close(); return; } } String dir = Path.GetDirectoryName(Program.ROM.Filename); orignal_romfile = MainFormUtil.FindOrignalROM(dir); } this.OrignalFilename.Text = orignal_romfile; this.RebuildAddress.Value = U.toOffset(Program.ROM.RomInfo.extends_address); }
private void Subtile_MouseDoubleClick(object sender, MouseEventArgs e) { using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(this)) { uint text_id = TextForm.SearchText(this.CurrentText); if (text_id == U.NOT_FOUND) { return; } string clipbord = ""; uint num = TranslateTextUtil.GrepReverseSearchDic(this.SimpleTranslateToTranslateDataFilename, U.ToHexString(text_id) + "]"); if (num == U.NOT_FOUND) { clipbord = "[" + U.ToHexString(text_id) + "]"; } clipbord += this.CurrentText; U.SetClipboardText(clipbord); try { MainFormUtil.OpenTextEditor(this.SimpleTranslateToTranslateDataFilename, num); } catch (Exception ee) { R.ShowStopError(ee.ToString()); } } }
public static void CheckInitWizard() { if (ToolInitWizardForm.IsShowWizard()) {//初期設定がされていない場合は、ウィザードを起動する. MainFormUtil.RunToolInitWizard(); } }
public static void WriteEA(string EA, uint freearea, uint org_sp, Undo.UndoData undodata, SymbolUtil.DebugSymbol storeSymbol) { string output; string symbol; bool r; try { r = MainFormUtil.CompilerEventAssembler(EA, freearea, org_sp, out output, out symbol); } catch (Win32Exception e) { r = false; symbol = ""; output = R._("プロセスを実行できません。\r\nfilename:{0}\r\n{1}", EA, e.ToString()); } if (!r) { throw new PatchForm.PatchException(output); } r = Program.ROM.SwapNewROMData(File.ReadAllBytes(output) , "event_assembler", undodata); if (!r) { throw new PatchForm.PatchException(R.Notify("変更をユーザーが取り消しました")); } SymbolUtil.ProcessSymbolByComment(EA, symbol, storeSymbol, 0); //EAの結果作成したROMを消します. 残すとROMがPATCHディレクトリに残るのでいろいろよろしくない. File.Delete(output); }
private void OtherROMSongTable_MouseDoubleClick(object sender, MouseEventArgs ee) { uint song_id = (uint)(OtherROMSongTable.SelectedIndex); if (song_id <= 0) { return; } Process p; try { p = MainFormUtil.PoolRunAs("sappy", this.OtherROMFilename); } catch (Exception e) { R.ShowStopError("Sappyプロセスを実行できません。\r\n{0}", e.ToString()); return; } if (p == null) { return; } SappyPlaying sappy = new SappyPlaying(); sappy.StartPlay(p, song_id); }
int BinarySearchNotContainThisPatch(InputFormRef.AutoPleaseWait pleaseWait, int imin, int imax) { if (imax <= imin) {//見つからない return(-1); } int imid = imin + (imax - imin) / 2; pleaseWait.DoEvents(R._("パッチを含まないバックアップを探索中。進捗:{1}/{2} {0}" , Path.GetFileName(this.FindBackup.Files[imid].FilePath) , imid, this.FindBackup.Files.Count)); byte[] rom = MainFormUtil.OpenROMToByte( this.FindBackup.Files[imid].FilePath , this.FindBackup.OrignalFilename); if (rom.Length <= 0) {//このバックアップは壊れている! } else { if (!SearchContainThisPatchBy(rom)) {//このROMは、差分を含んでいないので利用可能 //ただし、もっと新しいバージョンがあるかもしれないのでさらに探索. int prev = BinarySearchNotContainThisPatch(pleaseWait, imin, imid - 1); if (prev < 0 || prev > imid) {//前方にない場合は、自分が発見したものを返す. return(imid); } return(prev); } } //未発見なので、後方へ検索する return(BinarySearchNotContainThisPatch(pleaseWait, imid + 1, imax)); }
private void SongTrackImportMidiForm_Load(object sender, EventArgs e) { if (!HasNIMAP()) { HowDoYouLikePatchForm.CheckAndShowPopupDialog(HowDoYouLikePatchForm.TYPE.NIMAP_By_SongTrack); PickupInstrument(); } if (OptionForm.GetMidfix4agb() == "") { UseMidfix4agb_checkBox.Hide(); WARNING_midfix4agb_label.Show(); } else { WARNING_midfix4agb_label.Hide(); UseMidfix4agb_checkBox.Show(); } if (MainFormUtil.CanUseMID2AGB()) { //mid2agbを利用できる. if (OptionForm.midi_importer() == OptionForm.midi_importer_enum.MID2AGB) { //mid2agbがディフォルト this.tabControl1.SelectedIndex = 1; } } else {//mid2agbを利用できない. Explain_mid2agb.Text = R._("mid2agbが設定されていません。\r\n設定画面より、mid2agbの設定をしてください。"); Mid2AGBOKButton.Enabled = false; this.tabControl1.SelectedIndex = 0; } Mid2agbV.Value = 80; //Mid2agbR.SelectedIndex = 0; }
public static int ComandLineRebuild() { String dir = Path.GetDirectoryName(Program.ROM.Filename); string orignalFilename = MainFormUtil.FindOrignalROM(dir); if (!File.Exists(orignalFilename)) { U.echo(R.Error("無改造ROMを指定してください。")); return(-1); } U.echo("ComandLineRebuild"); string romRebuildFilename = Program.ROM.Filename; uint rebuildAddress = U.toOffset(Program.ROM.RomInfo.extends_address); Make(romRebuildFilename, orignalFilename, rebuildAddress); uint addr = U.Padding4(Program.ROM.RomInfo.compress_image_borderline_address); uint freeAreaMinimumSize = 2048; uint freeAreaStartAddress = U.Padding4(Program.ROM.RomInfo.compress_image_borderline_address); string appendFreeAreaFilename = ""; uint useShareSameData = 1; string stdout = ReOpen(romRebuildFilename, orignalFilename, 1, freeAreaMinimumSize, freeAreaStartAddress, appendFreeAreaFilename, useShareSameData); U.echo(stdout); return(0); }
private void OverraideCheckDialog_Load(object sender, EventArgs e) { DiaplayFilename.Text = Program.ROM.Filename; this.HintTextBox.Text += "\r\n" + MainFormUtil.GetReport7zURL(); this.MyCancelButton.Focus(); System.Media.SystemSounds.Hand.Play(); }
public MainFE6Form() { InitializeComponent(); FixedButton(); ToolRunHintMessageForm.RemoveRunTestMenuIfUserWant(this.menuStrip1, this.TestRunStripMenuItem); InputFormRef.RecolorMenuStrip(this.menuStrip1); MainFormUtil.MakeExplainFunctions(this.ControlPanel); }
private void EndButton_Click(object sender, EventArgs e) { if (this.OpenCommunities.Checked) { MainFormUtil.GotoCommunities(); } this.Close(); }
private void Translate_from_SelectedIndexChanged(object sender, EventArgs e) { String dir = Path.GetDirectoryName(Program.ROM.Filename); string from = U.InnerSplit(Translate_from.Text, "=", 0); TranslateFormROMFilename.Text = MainFormUtil.FindOrignalROMByLang(dir, from); SimpleTranslateFromROMFilename.Text = TranslateFormROMFilename.Text; }
private void OpenToolStripMenuItem_Click(object sender, EventArgs e) { if (!MainFormUtil.IsNotSaveYet(this)) { return; } MainFormUtil.Open(this); }
private void Translate_to_SelectedIndexChanged(object sender, EventArgs e) { String dir = Path.GetDirectoryName(Program.ROM.Filename); string to = U.InnerSplit(Translate_to.Text, "=", 0); TranslateToROMFilename.Text = MainFormUtil.FindOrignalROMByLang(dir, to); SimpleTranslateToROMFilename.Text = TranslateToROMFilename.Text; FontROMTextBox.Text = TranslateToROMFilename.Text; }
bool CopyToEmu(FindBackup.FileInfo fi, string emulator_filename) { byte[] bin = MainFormUtil.OpenROMToByte(fi.FilePath, this.OrignalFilename.Text); if (bin.Length <= 0) { return(false); } U.WriteAllBytes(emulator_filename, bin); return(true); }
private void OpenROMButton_Click(object sender, EventArgs e) { string romfilename = Program.OpenROMDialog(); bool r = MainFormUtil.Open(this, romfilename, false, ""); if (r) { this.Close(); } }
private void UPSPatchForm_Load(object sender, EventArgs e) { using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(null)) { String dir = Path.GetDirectoryName(Program.ROM.Filename); string orignal_romfile = MainFormUtil.FindOrignalROM(dir); this.OrignalFilename.Text = orignal_romfile; } }
private void SongTable_DoubleClick(object sender, EventArgs e) { uint song_id = (uint)(SongTable.SelectedIndex); if (song_id <= 0) { return; } MainFormUtil.RunAsSappy(song_id); }
private void MainFE0Form_FormClosing(object sender, FormClosingEventArgs e) { #if DEBUG //デバッグ時はいちいち聞かれると面倒なのでスルーする #else if (!MainFormUtil.IsNotSaveYet(this)) { e.Cancel = true; } #endif }
private void OKButton_Click(object sender, EventArgs e) { if (DoNotShowThisMessageAgain.Checked) { Program.Config["RunTestMessage"] = "1"; //configの保存 Program.Config.Save(); } this.Close(); MainFormUtil.RunAs("emulator"); }
static string RunAutoReCompile(string eaFilename) { if (!File.Exists(eaFilename)) { return(""); } EAUtil ea = new EAUtil(eaFilename); foreach (EAUtil.Data d in ea.DataList) { if (d.Dir == "") { continue; } if (d.DataType == EAUtil.DataEnum.ASM || d.DataType == EAUtil.DataEnum.LYN) { string targetfilename = Path.Combine(d.Dir, d.Name); string sourceCode; if (!IsUpdateSourceCode(targetfilename, out sourceCode)) { continue; } MainFormUtil.CompileType compileType = MainFormUtil.CompileType.NONE; if (d.DataType == EAUtil.DataEnum.LYN) { if (targetfilename.IndexOf(".lyn.event") >= 0) { compileType = MainFormUtil.CompileType.CONVERT_LYN; } else { compileType = MainFormUtil.CompileType.KEEP_ELF; } } string error; string symbol; bool r = MainFormUtil.Compile(sourceCode, out error, out symbol, compileType, checkMissingLabelCheck: true); if (!r) { return(error); } SymbolUtil.ProcessSymbolByComment(sourceCode, symbol, SymbolUtil.DebugSymbol.SaveSymTxt, 0); } } return(""); }
private void ToolDisasmSourceCode_Shown(object sender, EventArgs e) { using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(null)) { SrcCodeFilename.Text = StoreSrcCode; String dir = Path.GetDirectoryName(Program.ROM.Filename); string orignal_romfile = MainFormUtil.FindOrignalROM(dir); this.OrignalFilename.Text = orignal_romfile; } }
public static string MakeUpdateMessage() { string str = R._("現在利用しているバージョンから、1か月以上が経過しています。\r\n新しいバージョンが出ていないか確認してください。"); string lang = OptionForm.lang(); string url = MainFormUtil.GetManualURL(); str += "\r\n" + "https://github.com/FEBuilderGBA/FEBuilderGBA/releases/latest"; str += "\r\n" + url; return(str); }
public byte[] GetOrignalROMData() { byte[] rom = MainFormUtil.OpenROMToByte( this.OrignalFilename.Text , this.FindBackup.OrignalFilename); if (rom.Length <= 0) {//ROMを読み込めないので、バニラを取得. rom = MainFormUtil.OpenROMToByte(this.FindBackup.OrignalFilename); } return(rom); }
private void BackupList_DoubleClick(object sender, EventArgs e) { if (this.BackupList.SelectedIndex < 0 || this.BackupList.SelectedIndex >= this.FindBackup.Files.Count) { return; } FindBackup.FileInfo fi = this.FindBackup.Files[this.BackupList.SelectedIndex]; if (!CheckOrignalROMIfUPS(fi)) { return; } string run_name = "emulator"; string emulator_filename = U.MakeFilename(run_name); using (InputFormRef.AutoPleaseWait wait = new InputFormRef.AutoPleaseWait(this)) { bool r = CopyToEmu(fi, emulator_filename); if (!r) { return; } } if (!File.Exists(emulator_filename)) { R.ShowStopError("エミュレータにロードするROMを作れませんでした。\r\n{0}", emulator_filename); return; } //セーブファイルが壊されるかもしれないので保存しよう. string saveFile = MainFormUtil.FindCurrentSavFilename(Program.ROM.Filename); byte[] saveFileBin = null; if (File.Exists(saveFile)) { saveFileBin = File.ReadAllBytes(saveFile); } Process process = MainFormUtil.RunAs(run_name, emulator_filename); if (process == null) { return; } process.Exited += (ss, ee) => { //エミュレータが終了したら、保存していたセーブファイルを書き戻す. if (saveFile != "" && saveFileBin != null) { U.WriteAllBytes(saveFile, saveFileBin); } }; }
public static int CommandLineImport() { U.echo("CommandLineImport"); string fromrom = U.at(Program.ArgsDic, "--fromrom"); if (fromrom == "") { fromrom = U.at(Program.ArgsDic, "--target"); } if (!File.Exists(fromrom)) { U.echo("曲を取り出すROMを「--fromrom」で指定してください。"); return(-2); } SongExchangeForm f = (SongExchangeForm)InputFormRef.JumpFormLow <SongExchangeForm>(); f.LoadSongListAtOtherROM(fromrom); uint tosong = U.atoi0x(U.at(Program.ArgsDic, "--tosong")); if (tosong <= 0) { U.echo("曲をインポートする場所を「--tosong」で指定してください。"); return(-2); } U.SelectedIndexSafety(f.SongTable, tosong); uint fromsong = U.atoi0x(U.at(Program.ArgsDic, "--fromsong")); if (fromsong <= 0) { U.echo("曲をエクスポートする場所を「--fromsong」で指定してください。"); return(-2); } U.SelectedIndexSafety(f.OtherROMSongTable, fromsong); f.ConvertButton_Click(null, null); //インポートに成功したら保存する. if (Program.ROM.Modified) { MainFormUtil.SaveForce(f); } else { U.echo("曲のインポートに失敗しました。"); return(-1); } return(0); }
private void Step2NextButton_Click(object sender, EventArgs e) { if (InputFormRef.IsPleaseWaitDialog(this)) {//2重割り込み禁止 return; } string errorMessage = MainFormUtil.CheckOrignalROM(OrignalFilename.Text); if (errorMessage != "") { R.ShowStopError(errorMessage); OrignalFilename.ErrorMessage = R._(errorMessage); return; } OrignalFilename.ErrorMessage = ""; string title = R._("レポートを保存するファイル名を選択してください"); string filter = R._("report.7z|*.report.7z|All files|*"); SaveFileDialog save = new SaveFileDialog(); save.Title = title; save.Filter = filter; save.AddExtension = true; Program.LastSelectedFilename.Load(this, "", save, MakeReportFilename()); DialogResult dr = save.ShowDialog(); if (dr != DialogResult.OK) { return; } if (save.FileNames.Length <= 0 || !U.CanWriteFileRetry(save.FileNames[0])) { return; } using (InputFormRef.AutoPleaseWait pleaseWait = new InputFormRef.AutoPleaseWait(this)) { string error = MakeReport(save.FileNames[0]); if (error != "") { R.ShowStopError("レポートを作れませんでした。\r\n{0}", error); return; } } MainTab.SelectedTab = EndPage; //エクスプローラで選択しよう U.SelectFileByExplorer(save.FileNames[0]); }
private void OrignalSelectButton_Click(object sender, EventArgs e) { string title = R._("アンインストールしたパッチを含んでいないROMを選択してください"); string filter = R._("ROMs|*.gba;*.ups|GBA ROMs|*.gba|UPS files|*.ups|GBA.7Z|*.gba.7z|ROMRebuild|*.rebuild|Binary files|*.bin|All files|*"); OpenFileDialog open = new OpenFileDialog(); open.Title = title; open.Filter = filter; if (Program.LastSelectedFilename != null) { Program.LastSelectedFilename.Load(this, "", open); } DialogResult dr = open.ShowDialog(); if (dr != DialogResult.OK) { return; } if (!U.CanReadFileRetry(open)) { return; } if (Program.LastSelectedFilename != null) { Program.LastSelectedFilename.Save(this, "", open); } string filename = open.FileNames[0]; if (this.FindBackup.OrignalFilename == filename) {//無改造ROM Log.Debug("無改造ROMなので利用できます"); } else { //念のため確認する byte[] rom = MainFormUtil.OpenROMToByte( filename , this.FindBackup.OrignalFilename); if (!IsOrignalROM(rom)) { if (SearchContainThisPatchBy(rom)) { R.ShowStopError("このROMはアンインストール対象のパッチを含んでいるので利用できません。"); return; } } } //利用できるらしい. OrignalFilename.Text = filename; }
private void OpenLastROMButton_Click(object sender, EventArgs e) { string romfilename = Program.GetLastROMFilename(); if (romfilename != "") { bool r = MainFormUtil.Open(this, romfilename, false, ""); if (r) { this.Close(); } } }