From c44d0dfa2ee0164a01045c4a0dc37545862b28e3 Mon Sep 17 00:00:00 2001 From: Moses_of_Egypt Date: Tue, 8 Sep 2026 02:53:00 -0400 Subject: [PATCH 1/2] Make compatible with combo rom --- LynnaLib/FileParser.cs | 78 ++++++++++++++++++++++++++++++++++++++---- LynnaLib/Project.cs | 2 +- 2 files changed, 73 insertions(+), 7 deletions(-) diff --git a/LynnaLib/FileParser.cs b/LynnaLib/FileParser.cs index c8f4d7b..d8303aa 100644 --- a/LynnaLib/FileParser.cs +++ b/LynnaLib/FileParser.cs @@ -516,6 +516,8 @@ void ParseLine(string pureLine, DictionaryLinkedList action) string ignoreDirectory = (GameString == "ages" ? "seasons" : "ages"); foreach (string d in Helper.GetSortedDirectories(baseDirectory + directory)) { - if (d == ignoreDirectory) + if (d == ignoreDirectory || d == "combo") continue; VisitDirectoriesRecursively(directory + d, action); } From 64816435b4736feb503a755c44466334b2015878 Mon Sep 17 00:00:00 2001 From: Moses_of_Egypt Date: Thu, 10 Sep 2026 00:57:43 -0400 Subject: [PATCH 2/2] Add ability to build combo rom --- LynnaLab/src/BuildDialog.cs | 9 ++++++--- LynnaLab/src/GlobalConfig.cs | 1 + LynnaLab/src/SettingsDialog.cs | 3 +++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/LynnaLab/src/BuildDialog.cs b/LynnaLab/src/BuildDialog.cs index 6a6f16c..ab57881 100644 --- a/LynnaLab/src/BuildDialog.cs +++ b/LynnaLab/src/BuildDialog.cs @@ -205,6 +205,9 @@ void OnMakeExited(object sender, object args) { Helper.MainThreadInvoke(OnMakeExitedBody); } + string GameString { get { + return Top.GlobalConfig.BuildComboRom ? "combo" : Project.GameString; + }} void OnMakeExitedBody() { @@ -233,14 +236,14 @@ void OnMakeExitedBody() "Select Emulator", () => { - ImGui.Text($"Your gameboy emulator path has not been configured.\nSelect your emulator executable file now to run {Project.GameString}.gbc."); + ImGui.Text($"Your gameboy emulator path has not been configured.\nSelect your emulator executable file now to run {GameString}.gbc."); if (ImGui.Button("OK")) { SelectEmulatorDialog((runCommand) => { if (runCommand == null) { - processView.AppendText($"Emulator not configured, couldn't run {Project.GameString}.gbc.", "error"); + processView.AppendText($"Emulator not configured, couldn't run {GameString}.gbc.", "error"); } else { @@ -303,7 +306,7 @@ void RunGame(string runCommand) (string, string) SubstituteString(string s) { - s = s.Replace("{GAME}", Project.GameString); + s = s.Replace("{GAME}", GameString); // Old format: space separator if (!s.Contains("|")) diff --git a/LynnaLab/src/GlobalConfig.cs b/LynnaLab/src/GlobalConfig.cs index c72612a..b8c0783 100644 --- a/LynnaLab/src/GlobalConfig.cs +++ b/LynnaLab/src/GlobalConfig.cs @@ -115,4 +115,5 @@ public void Save() // Other public bool AutoAdjustGroupNumber { get; set; } = true; public bool ScrollToZoom { get; set; } = true; + public bool BuildComboRom { get; set; } = true; } diff --git a/LynnaLab/src/SettingsDialog.cs b/LynnaLab/src/SettingsDialog.cs index ba33dd7..c389062 100644 --- a/LynnaLab/src/SettingsDialog.cs +++ b/LynnaLab/src/SettingsDialog.cs @@ -215,6 +215,9 @@ public override void Render() ImGuiX.Checkbox("Scroll to Zoom", new Accessor(() => GlobalConfig.ScrollToZoom)); ImGuiX.TooltipOnHover("Applies to minimaps, scratchpad, and tileset editor."); + ImGuiX.Checkbox("Build Combo ROM", new Accessor(() => GlobalConfig.BuildComboRom)); + ImGuiX.TooltipOnHover("The built ROM will contain both games."); + endSection(); }