Skip to content
Peterson Fernandes edited this page Aug 16, 2026 · 3 revisions

RetroAchievementsSharp

A native C# port of the RAHasher 1.8.3 hashing engine (rcheevos 12.4.0) that produces 100% identical RetroAchievements hashes — the same hashes the RetroAchievements website and its clients use to identify ROMs and disc images.

  • LibraryRetroAchievementsSharp on NuGet, targets net8.0, net9.0, net10.0; GPL-2.0-or-later.
  • CLIRetroAchievementsSharp.Cli.exe, byte-identical in behavior to RAHasher 1.8.3, plus convenience subcommands (scan, identify, consoles, checkkeys, fetch-db).
  • Verified — 415/415 fast + 172/172 slow tests green on each supported TFM, including a Tier-2 parity harness against source-built C oracles.

Quick start

using RetroAchievementsSharp;

if (RcHash.GenerateFromFile(out string hash, ConsoleIds.RcConsoleNintendo, "game.nes"))
    Console.WriteLine(hash); // 32 hex chars — matches the published RA hash
RetroAchievementsSharp NES game.nes
RetroAchievementsSharp PS1 disc.cue
RetroAchievementsSharp -s C:\RetroArch\system 3DS game.cia

Supported formats

Raw ROMs (all cartridge consoles), .zip (pre-loaded ROM, Arduboy FX, DOSZ/Zip64/DOSC), .m3u playlists, discs (.cue/.bin/.iso/.gdi/.chd, GameCube/Wii .rvz/.wia), 3DS .cia/.3ds/.3dsx (keys via -s / Hash3Ds.InitHash3Ds), and Neo Geo .neo carts.

More

Credits

  • LeXofLeviafan — author of the RALibretro RAHasher CLI this project is behaviorally compatible with and that we use as the reference oracle in our parity test suite.
  • RetroAchievements / rcheevos — the hashing engine, ported 1:1 (MIT).

Full documentation site: https://purelogiccode.github.io/RetroAchievementsSharp/

Clone this wiki locally