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

github.com/coolgirl-multicart/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-11-08 09:58:58 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-11-08 09:58:58 +0300
commit9a33151fdf334dc85a355da22320702d54fa181c (patch)
treeba635bb6be901ec22fc53daee7b249a53903a97a
parentf5f85a69ba6a2e49ed364f1e54613b56b7303d72 (diff)
MD5 calculation removed
-rw-r--r--tools_sources/CoolgirlCombiner/Program.cs62
1 files changed, 9 insertions, 53 deletions
diff --git a/tools_sources/CoolgirlCombiner/Program.cs b/tools_sources/CoolgirlCombiner/Program.cs
index c4225d8..70720ca 100644
--- a/tools_sources/CoolgirlCombiner/Program.cs
+++ b/tools_sources/CoolgirlCombiner/Program.cs
@@ -5,6 +5,7 @@ using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Reflection;
+using System.Security.Cryptography;
using System.Text;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -63,7 +64,6 @@ namespace com.clusterrr.Famicom.CoolGirl
bool optionNoSort = false;
uint optionMaxRomSize = 256;
uint optionMaxChrRamSize = 256;
- bool optionCalculateMd5 = false;
var jsonOptions = new JsonSerializerOptions()
{
WriteIndented = true,
@@ -158,9 +158,6 @@ namespace com.clusterrr.Famicom.CoolGirl
optionNesAsmArgs = value;
i++;
break;
- case "md5":
- optionCalculateMd5 = true;
- break;
default:
Console.WriteLine("Unknown parameter: " + param);
needShowHelp = true;
@@ -198,7 +195,7 @@ namespace com.clusterrr.Famicom.CoolGirl
{
Console.WriteLine("--- Usage ---");
Console.WriteLine("First step:");
- Console.WriteLine(" CoolgirlCombiner.exe prepare --games <games.txt> --asm <games.asm> --offsets <offsets.json> [--report <report.txt>] [--nosort] [--maxromsize sizemb] [--maxchrsize sizekb] [--language <language>] [--badsectors <sectors>]");
+ Console.WriteLine(" CoolgirlCombiner.exe prepare --games <games.txt> --asm <games.asm> --offsets <offsets.json> [--report <report.txt>] [--nosort] [--maxromsize <size_mb>] [--maxchrsize <size_kb>] [--language <eng|rus>] [--badsectors <sectors>]");
Console.WriteLine(" {0,-20}{1}", "--games", "- input plain text file with list of ROM files");
Console.WriteLine(" {0,-20}{1}", "--asm", "- output file for loader");
Console.WriteLine(" {0,-20}{1}", "--offsets", "- output file with offsets for every game");
@@ -209,18 +206,16 @@ namespace com.clusterrr.Famicom.CoolGirl
Console.WriteLine(" {0,-20}{1}", "--language", "- language for system messages: \"eng\" or \"rus\"");
Console.WriteLine(" {0,-20}{1}", "--badsectors", "- comma-separated separated list of bad sectors,");
Console.WriteLine("Second step:");
- Console.WriteLine(" CoolgirlCombiner.exe combine --loader <menu.nes> --offsets <offsets.json> [--md5] [--unif <multirom.unf>] [--nes20 multirom.nes] [--bin <multirom.bin>]");
+ Console.WriteLine(" CoolgirlCombiner.exe 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 asm file generated by first step)");
Console.WriteLine(" {0,-20}{1}", "--offsets", "- input file with offsets for every game (generated by first step)");
- Console.WriteLine(" {0,-20}{1}", "--md5", "- calculate and show MD5 checksum of ROM");
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");
Console.WriteLine("All at once:");
- Console.WriteLine(" CoolgirlCombiner.exe build --games <games.txt> --asm <games.asm> [--md5] [--nesasm <nesasm.exe>] [--nesasm-args <args>] [--report <report.txt>] [--nosort] [--maxromsize sizemb] [--maxchrsize sizekb] [--language <language>] [--badsectors <sectors>] [--unif <multirom.unf>] [--nes20 multirom.nes] [--bin <multirom.bin>]");
+ Console.WriteLine(" CoolgirlCombiner.exe build --games <games.txt> --asm <games.asm> [--nesasm <nesasm.exe>] [--nesasm-args <args>] [--report <report.txt>] [--nosort] [--maxromsize <size_mb>] [--maxchrsize <size_kb>] [--language <language>] [--badsectors <sectors>] [--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 loader");
- Console.WriteLine(" {0,-20}{1}", "--md5", "- calculate and show MD5 checksum of ROM");
Console.WriteLine(" {0,-20}{1}", "--nesasm", "- path to nesasm compiler executable");
Console.WriteLine(" {0,-20}{1}", "--nesasm-args", "- additional command line arguments for nesasm");
Console.WriteLine(" {0,-20}{1}", "--report", "- output report file (human readable)");
@@ -895,42 +890,22 @@ namespace com.clusterrr.Famicom.CoolGirl
if (!string.IsNullOrEmpty(optionUnifFile))
{
Console.Write("Saving UNIF file... ");
- var resultNotNull = result.Select(b => b ?? 0xFF).ToArray();
+ var resultNotNull = result.Select(b => b ?? byte.MaxValue).ToArray();
var u = new UnifFile();
u.Version = 5;
u.Mapper = "COOLGIRL";
u.Mirroring = MirroringType.MapperControlled;
- u["MIRR"] = new byte[] { (byte)MirroringType.MapperControlled };
- u["PRG0"] = resultNotNull;
+ u.PRG0 = resultNotNull;
u.Battery = true;
u.Save(optionUnifFile);
Console.WriteLine("OK");
-
- if (optionCalculateMd5)
- {
- // Need to calculate MD5
- Console.WriteLine("Calculating MD5...");
- uint sizeFixed = 1;
- while (sizeFixed < result.Length) sizeFixed <<= 1;
- var resultSizeFixed = new byte[sizeFixed];
- Array.Copy(resultNotNull, 0, resultSizeFixed, 0, resultNotNull.Length);
- for (int i = result.Length; i < sizeFixed; i++)
- resultSizeFixed[i] = 0xFF;
- var md5 = System.Security.Cryptography.MD5.Create();
- var md5hash = md5.ComputeHash(resultSizeFixed);
- Console.Write("ROM MD5: ");
- foreach (var b in md5hash)
- Console.Write("{0:x2}", b);
- Console.WriteLine();
- }
}
if (!string.IsNullOrEmpty(optionNes20File))
{
- Console.Write("Saving iNES file... ");
- var resultNotNull = result.Select(b => b ?? 0xFF).ToArray();
+ Console.Write("Saving NES file... ");
var nes = new NesFile();
nes.Version = NesFile.iNesVersion.NES20;
- nes.PRG = resultNotNull;
+ nes.PRG = result.Select(b => b ?? byte.MaxValue).ToArray();
nes.CHR = null;
nes.Mapper = 342;
nes.PrgNvRamSize = 32 * 1024;
@@ -938,32 +913,13 @@ namespace com.clusterrr.Famicom.CoolGirl
nes.Battery = true;
nes.Save(optionNes20File);
Console.WriteLine("OK");
- if (optionCalculateMd5)
- {
- Console.WriteLine("Calculating MD5...");
- var md5hash = nes.CalculateMD5();
- Console.Write("ROM MD5: ");
- foreach (var b in md5hash)
- Console.Write("{0:x2}", b);
- Console.WriteLine();
- }
}
if (!string.IsNullOrEmpty(optionBinFile))
{
Console.Write("Saving BIN file... ");
- var resultNotNull = result.Select(b => b ?? 0xFF).ToArray();
+ var resultNotNull = result.Select(b => b ?? byte.MaxValue).ToArray();
File.WriteAllBytes(optionBinFile, resultNotNull);
Console.WriteLine("OK");
- if (optionCalculateMd5)
- {
- Console.WriteLine("Calculating MD5...");
- var md5 = System.Security.Cryptography.MD5.Create();
- var md5hash = md5.ComputeHash(resultNotNull);
- Console.Write("ROM MD5: ");
- foreach (var b in md5hash)
- Console.Write("{0:x2}", b);
- Console.WriteLine();
- }
}
}
Console.WriteLine("Done.");