Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/coolgirl-multirom-builder.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-12-03 21:06:04 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-12-03 21:06:04 +0300
commit916aac20b847372fd7f89342188ee1d8bf38afa9 (patch)
tree70849cb63123caba6998ddd016b49cd0c0cf5376
parentfaee3edeb60a85118d4a52c445305c69eb8af5b8 (diff)
More command-line options
-rw-r--r--tools_sources/CoolgirlCombiner/Config.cs25
-rw-r--r--tools_sources/CoolgirlCombiner/Program.cs2
2 files changed, 15 insertions, 12 deletions
diff --git a/tools_sources/CoolgirlCombiner/Config.cs b/tools_sources/CoolgirlCombiner/Config.cs
index f83cc50..d6e0059 100644
--- a/tools_sources/CoolgirlCombiner/Config.cs
+++ b/tools_sources/CoolgirlCombiner/Config.cs
@@ -35,7 +35,7 @@ namespace com.clusterrr.Famicom.CoolGirl
public string NesAsmArgs { get; private set; } = "";
public string SourcesDir { get; private set; } = ".";
public string? GamesFile { get; private set; } = null;
- public string? AsmFile { get; private set; }
+ public string? AsmFile { get; private set; } = "games.asm";
public string OffsetsFile { get; private set; } = "offsets.json";
public string? ReportFile { get; private set; } = null;
public string? LoaderFile { get; private set; } = null;
@@ -45,7 +45,7 @@ namespace com.clusterrr.Famicom.CoolGirl
public CombinerLanguage Language { get; private set; } = CombinerLanguage.English;
public HashSet<int> BadSectors { get; private set; } = new();
public bool NoSort { get; private set; } = false;
- public uint MaxRomSizeMB { get; private set; } = 256;
+ public uint MaxRomSizeMB { get; private set; } = 128;
public uint MaxChrRamSizeKB { get; private set; } = 256;
private Config()
@@ -205,9 +205,6 @@ namespace com.clusterrr.Famicom.CoolGirl
return null;
}
- if (string.IsNullOrEmpty(config.AsmFile))
- config.AsmFile = Path.Combine(config.SourcesDir, "games.asm");
-
return config;
}
@@ -216,16 +213,19 @@ namespace com.clusterrr.Famicom.CoolGirl
var exename = Path.GetFileName(Process.GetCurrentProcess()?.MainModule?.FileName);
Console.WriteLine("--- Usage ---");
Console.WriteLine("First step:");
- Console.WriteLine($" {exename} prepare --games <games.txt> [--offsets <offsets.json>] [--asm <games.asm>] [--report <report.txt>] [--nosort] [--maxromsize <size_mb>] [--maxchrsize <size_kb>] [--language <eng|rus>] [--badsectors <sector,sector,...>]");
+ Console.WriteLine($" {exename} prepare --games <games.txt> [--offsets <offsets.json>] [--asm <games.asm>] [--report <report.txt>] [--nosort] [--maxromsize <size_mb>] [--maxchrsize <size_kb>] [--language <eng|rus>] [--badsectors <sector,sector,...>] [--mappers <coolgirl-mappers.json>] [--fixes <nes-fixes.json>] [--symbols <coolgirl-symbols.json>]");
Console.WriteLine(" {0,-20}{1}", "--games", "- input plain text file with a list of ROM files");
Console.WriteLine(" {0,-20}{1}", "--offsets", "- output file with offsets for every game, default is \"offsets.json\"");
Console.WriteLine(" {0,-20}{1}", "--asm", "- output file for the loader, default is \"games.asm\"");
Console.WriteLine(" {0,-20}{1}", "--report", "- output report file (human readable)");
Console.WriteLine(" {0,-20}{1}", "--nosort", "- disable automatic sort by name");
- Console.WriteLine(" {0,-20}{1}", "--maxromsize", "- maximum size for final file (in megabytes)");
+ Console.WriteLine(" {0,-20}{1}", "--maxromsize", "- maximum size for final file (in megabytes), default is 128");
Console.WriteLine(" {0,-20}{1}", "--maxchrsize", "- maximum CHR RAM size (in kilobytes), default is 256");
Console.WriteLine(" {0,-20}{1}", "--language", "- language for the system messages: \"eng\" or \"rus\"");
Console.WriteLine(" {0,-20}{1}", "--badsectors", "- comma-separated list of bad sectors,");
+ Console.WriteLine(" {0,-20}{1}", "--mappers", "- mapper database, default is \"" + DEFAULT_MAPPERS_FILE + "\"");
+ Console.WriteLine(" {0,-20}{1}", "--fixes", "- NES ROM header fixes database, default is \"" + DEFAULT_FIXES_FILE + "\"");
+ Console.WriteLine(" {0,-20}{1}", "--symbols", "- symbols map, default is \"" + DEFAULT_SYMBOLS_FILE + "\"");
Console.WriteLine("Second step:");
Console.WriteLine($" {exename} combine --loader <menu.nes> [--offsets <offsets.json>] [--unif <multirom.unf>] [--nes20 multirom.nes] [--bin <multirom.bin>]");
Console.WriteLine(" {0,-20}{1}", "--loader", "- loader (compiled using the asm file generated by the first step)");
@@ -234,18 +234,21 @@ namespace com.clusterrr.Famicom.CoolGirl
Console.WriteLine(" {0,-20}{1}", "--nes20", "- output NES 2.0 file");
Console.WriteLine(" {0,-20}{1}", "--bin", "- output raw binary file");
Console.WriteLine("All at once:");
- Console.WriteLine($" {exename} build --games <games.txt> [--asm <games.asm>] [--nesasm <nesasm>] [--nesasm-args <args>] [--sources <path>] [--nosort] [--report <report.txt>] [--maxromsize <size_mb>] [--maxchrsize <size_kb>] [--language <language>] [--badsectors <sector,sector,...>] [--unif <multirom.unf>] [--nes20 <multirom.nes>] [--bin <multirom.bin>]");
+ Console.WriteLine($" {exename} build --games <games.txt> [--asm <games.asm>] [--nesasm <nesasm>] [--nesasm-args <args>] [--sources <path>] [--nosort] [--report <report.txt>] [--maxromsize <size_mb>] [--maxchrsize <size_kb>] [--language <language>] [--badsectors <sector,sector,...>] [--mappers <coolgirl-mappers.json>] [--fixes <nes-fixes.json>] [--symbols <coolgirl-symbols.json>] [--unif <multirom.unf>] [--nes20 <multirom.nes>] [--bin <multirom.bin>]");
Console.WriteLine(" {0,-20}{1}", "--games", "- input plain text file with list of ROM files");
- Console.WriteLine(" {0,-20}{1}", "--asm", "- output file for the loader, default is \"games.asm\"");
+ Console.WriteLine(" {0,-20}{1}", "--asm", "- temporary file for the loader, default is \"games.asm\"");
Console.WriteLine(" {0,-20}{1}", "--nesasm", "- path to the nesasm compiler executable");
Console.WriteLine(" {0,-20}{1}", "--nesasm-args", "- additional command-line arguments for nesasm");
Console.WriteLine(" {0,-20}{1}", "--sources", "- directory with the loader source files, default is current directory");
Console.WriteLine(" {0,-20}{1}", "--nosort", "- disable automatic sort by name");
Console.WriteLine(" {0,-20}{1}", "--report", "- output report file (human readable)");
- Console.WriteLine(" {0,-20}{1}", "--maxromsize", "- maximum size for final file (in megabytes)");
+ Console.WriteLine(" {0,-20}{1}", "--maxromsize", "- maximum size for final file (in megabytes), default is 128");
Console.WriteLine(" {0,-20}{1}", "--maxchrsize", "- maximum CHR RAM size (in kilobytes), default is 256");
Console.WriteLine(" {0,-20}{1}", "--language", "- language for the system messages: \"eng\" or \"rus\", default is \"eng\"");
- Console.WriteLine(" {0,-20}{1}", "--badsectors", "- comma-separated list of bad sectors,");
+ Console.WriteLine(" {0,-20}{1}", "--badsectors", "- comma-separated list of bad sectors");
+ Console.WriteLine(" {0,-20}{1}", "--mappers", "- mapper database, default is \"" + DEFAULT_MAPPERS_FILE + "\"");
+ Console.WriteLine(" {0,-20}{1}", "--fixes", "- NES ROM header fixes database, default is \"" + DEFAULT_FIXES_FILE + "\"");
+ Console.WriteLine(" {0,-20}{1}", "--symbols", "- symbols map, default is \"" + DEFAULT_SYMBOLS_FILE + "\"");
Console.WriteLine(" {0,-20}{1}", "--unif", "- output UNIF file");
Console.WriteLine(" {0,-20}{1}", "--nes20", "- output NES 2.0 file");
Console.WriteLine(" {0,-20}{1}", "--bin", "- output raw binary file");
diff --git a/tools_sources/CoolgirlCombiner/Program.cs b/tools_sources/CoolgirlCombiner/Program.cs
index a930c59..c95a1e1 100644
--- a/tools_sources/CoolgirlCombiner/Program.cs
+++ b/tools_sources/CoolgirlCombiner/Program.cs
@@ -616,7 +616,7 @@ namespace com.clusterrr.Famicom.CoolGirl
var process = new Process();
var cp866 = CodePagesEncodingProvider.Instance.GetEncoding(866) ?? Encoding.ASCII;
process.StartInfo.FileName = config.NesAsm;
- process.StartInfo.Arguments = $"\"menu.asm\" -r -o - -C \"GAMES_DB={config.AsmFile}\" " + config.NesAsmArgs;
+ process.StartInfo.Arguments = $"\"menu.asm\" -r -o - -C \"GAMES_DB={Path.GetFullPath(config.AsmFile!)}\" " + config.NesAsmArgs;
process.StartInfo.WorkingDirectory = config.SourcesDir;
process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
process.StartInfo.UseShellExecute = false;