|
Description |
This simple, lightweight and fast CLI (Command-Line Interface) checksum calculator will calculate and apply checksums for the various types of ROMs supported by the SNES.
This was developed mainly for use in scripts, but is easy enough to use that manual use is not only viable but simple.
Usage:
Simply drag and drop your ROM into checksum.exe or execute it as a command.
Example: checksum "Chrono Trigger (USA).sfc"
For batch execution, simply pass each ROM as a separate argument.
Example: checksum rom1.sfc rom2.sfc rom3.sfc
To make the program use all of your logical cores and thus multi-thread the checksum calculation, use the "-t" option.
Example: checksum -t "Chrono Trigger (USA).sfc"
Single-threaded vs Multi-threaded:
The performance between the two will vary from hardware to hardware.
CPUs with multiple cores running at low clock speeds will likely perform better under multi-threading, while CPUs running at high clock speeds will likely perform better under single-threading.
The data below comes from the Release Build (Visual Studio 2019) running on an i7-4770k @ 4.3 GHz and a 32 Mbits (4 MBs) ROM.
[list][li]Single-threaded: ~6.5 ms[/li]
[li]Multi-threaded: ~5.5 ms[/li][/list]
Tested ROMs:
These are the ROMs that were used to test this program.
[list][li]LoROM: Kirby Super Star (USA)[/li]
[li]HiROM: Chrono Trigger (USA)[/li]
[li]LoROM (bigger than 4 MB): Star Ocean (Japan)[/li]
[li]ExHiROM: Tales of Phantasia (Japan)[/li]
[li]SPC7110: Tengai Makyou Zero (Japan)[/li][/list]
Source Code and Compatibility:
The source code is available under the BSD license and can be found inside the src folder.
Any C++11 compatible compiler should be able to compile it without any issues.
Only Windows binary and project files are included; however, the source code was tested under Linux with GCC (g++ compiled). |
|