diff options
author | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2022-12-03 21:06:04 +0300 |
---|---|---|
committer | Alexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com> | 2022-12-03 21:06:04 +0300 |
commit | 916aac20b847372fd7f89342188ee1d8bf38afa9 (patch) | |
tree | 70849cb63123caba6998ddd016b49cd0c0cf5376 | |
parent | faee3edeb60a85118d4a52c445305c69eb8af5b8 (diff) |
More command-line options
-rw-r--r-- | tools_sources/CoolgirlCombiner/Config.cs | 25 | ||||
-rw-r--r-- | tools_sources/CoolgirlCombiner/Program.cs | 2 |
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;
|