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

github.com/ClusterM/nes-warface.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-02-23 20:22:37 +0300
committerAlexey 'Cluster' Avdyukhin <clusterrr@clusterrr.com>2022-02-23 20:22:37 +0300
commitc0c9728391380b44f37be2cca64e3d22dee11640 (patch)
treea49e244a4a8aebc86b487894ffb882666342a5f1 /Scripts
parentc83eea7ebd55bab4ef90e03fde65ec759c9c0180 (diff)
Updated scripts
Diffstat (limited to 'Scripts')
-rw-r--r--Scripts/.dumpercache/WriteWarface.dllbin0 -> 4096 bytes
-rw-r--r--Scripts/EraseCheck.cs68
-rw-r--r--Scripts/WriteWarface.cs69
3 files changed, 137 insertions, 0 deletions
diff --git a/Scripts/.dumpercache/WriteWarface.dll b/Scripts/.dumpercache/WriteWarface.dll
new file mode 100644
index 0000000..37b15db
--- /dev/null
+++ b/Scripts/.dumpercache/WriteWarface.dll
Binary files differ
diff --git a/Scripts/EraseCheck.cs b/Scripts/EraseCheck.cs
new file mode 100644
index 0000000..b895c6f
--- /dev/null
+++ b/Scripts/EraseCheck.cs
@@ -0,0 +1,68 @@
+/*
+/ Скрипт дампера для проверки EPROM на чистоту
+*/
+
+namespace com.clusterrr.Warface
+{
+ class EraseEeprom
+ {
+ void Run(IFamicomDumperConnection dumper)
+ {
+ const int prgBankSize = 0x4000;
+ const int chrBankSize = 0x1000;
+ int problems = 0;
+
+ for (var bank = 0; bank < 128 * 1024 / prgBankSize; bank++)
+ {
+ int minProblems = -1;
+ do
+ {
+ problems = 0;
+ Console.WriteLine("Reading PRG bank #{0}...", bank);
+ dumper.WriteCpu(0x6000, (byte)bank);
+ var dataVerify = dumper.ReadCpu(0x8000, prgBankSize);
+ for (var i = 0; i < prgBankSize; i++)
+ {
+ if (0xFF != dataVerify[i])
+ {
+ //Console.Write("{0:X2} != {1:X2} @ {2:X4} ", dataVerify[i], 0xFF, i);
+ problems++;
+ }
+ }
+ if (problems > 0)
+ Console.WriteLine("{0} bytes @ PRG bank #{1} are not clean", problems, bank);
+ if (problems < minProblems)
+ Console.Beep();
+ if (minProblems < 0 || problems < minProblems)
+ minProblems = problems;
+ } while (problems > 0);
+ }
+
+ for (var bank = 0; bank < 128 * 1024 / chrBankSize; bank++)
+ {
+ int minProblems = -1;
+ do
+ {
+ problems = 0;
+ Console.WriteLine("Reading CHR bank #{0}...", bank);
+ dumper.WriteCpu(0x6001, (byte)bank);
+ var dataVerify = dumper.ReadPpu(0x0000, chrBankSize);
+ for (var i = 0; i < chrBankSize; i++)
+ {
+ if (0xFF != dataVerify[i])
+ {
+ //Console.Write("{0:X2} != {1:X2} @ {2:X4} ", dataVerify[i], 0xFF, i);
+ problems++;
+ }
+ }
+ if (problems > 0)
+ Console.WriteLine("{0} bytes @ CHR bank #{1} are not clean", problems, bank);
+ if (problems < minProblems)
+ Console.Beep();
+ if (minProblems < 0 || problems < minProblems)
+ minProblems = problems;
+ } while (problems > 0);
+ }
+ }
+ }
+}
diff --git a/Scripts/WriteWarface.cs b/Scripts/WriteWarface.cs
new file mode 100644
index 0000000..bbc00f1
--- /dev/null
+++ b/Scripts/WriteWarface.cs
@@ -0,0 +1,69 @@
+/*
+/ Скрипт дампера для записи ROM'а на EPROM.
+*/
+
+using System.Linq;
+
+namespace com.clusterrr.Warface
+{
+ class WriteWarface
+ {
+ void Run(IFamicomDumperConnection dumper, string filename)
+ {
+ var rom = new NesFile(filename);
+ const int prgBankSize = 0x4000;
+ const int chrBankSize = 0x1000;
+ bool problem = false;
+
+ for (var bank = 0; bank < 128 * 1024 / prgBankSize; bank++)
+ {
+ do
+ {
+ problem = false;
+ Console.WriteLine("Writing PRG bank #{0}...", bank);
+ dumper.WriteCpu(0x6000, (byte)bank);
+ var data = new byte[prgBankSize];
+ Array.Copy(rom.PRG.ToArray(), bank * prgBankSize, data, 0, prgBankSize);
+ if (data.Where(b => b != 0xFF).Any())
+ dumper.WriteCpu(0x8000, data);
+ var dataVerify = dumper.ReadCpu(0x8000, prgBankSize);
+ for (var i = 0; i < prgBankSize; i++)
+ {
+ if (data[i] != dataVerify[i])
+ {
+ Console.Write("{0:X2} != {1:X2} @ {2:X4} ", dataVerify[i], data[i], i);
+ problem = true;
+ }
+ }
+ if (problem)
+ Console.WriteLine("Problems @ bank #{0}", bank);
+ } while (problem);
+ }
+
+ for (var bank = 0; bank < 128 * 1024 / chrBankSize; bank++)
+ {
+ do
+ {
+ problem = false;
+ Console.WriteLine("Writing CHR bank #{0}...", bank);
+ dumper.WriteCpu(0x6001, (byte)bank);
+ var data = new byte[chrBankSize];
+ Array.Copy(rom.CHR.ToArray(), bank * chrBankSize, data, 0, chrBankSize);
+ if (data.Where(b => b != 0xFF).Any())
+ dumper.WritePpu(0x0000, data);
+ var dataVerify = dumper.ReadPpu(0x0000, chrBankSize);
+ for (var i = 0; i < chrBankSize; i++)
+ {
+ if (data[i] != dataVerify[i])
+ {
+ Console.Write("{0:X2} != {1:X2} @ {2:X4} ", dataVerify[i], data[i], i);
+ problem = true;
+ }
+ }
+ if (problem)
+ Console.WriteLine("Problems @ bank #{0}", bank);
+ } while (problem);
+ }
+ }
+ }
+}