You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RALibretro is a multi-emulator that can be used to develop RetroAchievements and, of course, earn them.
3
+
RAHasher is a CLI utility for verifying ROM checksums [with hashing methods used by RetroAchievements](https://docs.retroachievements.org/developer-docs/game-identification.html).
4
4
5
-
The "multi-emulation" feature is only possible because it uses [libretro](https://github.com/libretro/) cores to do the actual emulation. What RALibretro does is to connect the emulation to the tools used to create RetroAchievements.
5
+
_(It's a copy of the same utility provided by [RALibretro](https://github.com/RetroAchievements/RALibretro), but with a bit more convenient CLI.)_
6
6
7
-
The integration with RetroAchievements.org site is done by the [RAIntegration](https://github.com/RetroAchievements/RAIntegration).
8
-
9
-
10
-
## Building RALibretro with MSYS2/Makefile
7
+
## Building RAHasher with MSYS2/Makefile
11
8
12
9
### Install MSYS2
13
10
@@ -25,14 +22,14 @@ $ pacman -S make git zip mingw-w64-i686-gcc mingw-w64-i686-SDL2 mingw-w64-i686-g
**NOTE**: use `make` for a release build or `make DEBUG=1` for a debug build. Don't forget to run `make clean` first if switching between a release build and a debug build.
Load `RALibretro.sln` in Visual Studio and build it.
47
+
Load `RALibretro.sln` in Visual Studio and build it (specifically the `RAHasher` target).
51
48
52
49
## Command Line Arguments
53
50
54
51
Argument|Description
55
52
-|-
56
-
-c [--core]|the core's name, e.g. `--core picodrive_libretro`
57
-
-s [--system]|the system id, see ConsoleID in [RAInterface/RA_Consoles.h](https://github.com/RetroAchievements/RAInterface/blob/master/RA_Consoles.h), e.g. `--system 1`
58
-
-g [--game]|full path to the game's file, e.g. `--game "C:\ROMS\GEN\Demons Of Asteborg Demo.gen"`
53
+
-v|(optional) enables verbose messages for debugging
54
+
-s systempath|(optional) specifies where supplementary files are stored (typically a path to RetroArch/system)
55
+
system|specifies the system key or id associated to the game (which hash algorithm to use)
56
+
filepath|specifies the path to the game file (file may include wildcards, path may not)
57
+
58
+
I.e., in order to find out what checksum RA would assign to a NES game file, you can invoke the program like this:
59
+
```bat
60
+
RAHasher.exe NES "C:\ROMS\NES\Alwa's Awakening 8-bit edition.nes"
61
+
```
62
+
You can also pass `?` as the system key; in which case RAHasher will attempt to detect the system based on ROM file extension. (Note: equivalent "system ID" number is `91`.)
59
63
60
-
In order to run a game on startup, provide the core, system and game, e.g.:
64
+
Additionally, you can pass multiple filenames and/or specify it a glob template (with `*`/`?` wildcards). Note that wildcards are only allowed in _filename itself_ (not in the path), and that system detection is not allowed in multiple files mode.
61
65
62
-
`RALibretro.exe --core picodrive_libretro --system 1 --game "C:\ROMS\GEN\Demons Of Asteborg Demo.gen"`
66
+
Finally, the full list of valid console keys/IDs will be printed along with usage info if you run RAHasher without arguments:
67
+
```bat
68
+
RAHasher.exe
69
+
```
70
+
The list ordering matches RetroAchievements website menu. (Also, system keys match short names from [RetroAchievents game lists](https://retroachievements.org/games), sans whitespace.)
0 commit comments