A collection of Python-based utilities to scan, verify, list, and enhance your local ROM library using the RetroAchievements (RA) API.
This suite includes an interactive menu (Run-Menu.bat) providing access to three distinct tools:
-
ROM Hash Checker (
Check-RetroAchievements.py)- Recursively scans your ROM directories, hashes each file using
RAHasher(andDolphinToolfor GC/Wii), and checks them against the RetroAchievements database. - Outputs a detailed CSV report (
reports/RA_HashMapReport.csv) showing exactly which ROMs are linked to RA and which ones are unrecognized (bad dumps, unsupported versions, etc.).
- Recursively scans your ROM directories, hashes each file using
-
ROM Library Lister (
list_roms.py)- Generates a clean, alphabetically sorted text file (
reports/rom_list.txt) of your entire ROM collection. - Intelligently filters out junk folders (like
updates,temp, orBIOS) by checking against official RetroAchievements system names and your configured aliases.
- Generates a clean, alphabetically sorted text file (
-
Game Patch Checker (
game-patch-checker.py)- Cross-references your verified games against RetroAchievements' patch database.
- Specifically hunts for Quality of Life (QoL), Color Restorations, Widescreen hacks, and DX enhancements (while intelligently filtering out redundant language translations and MSU-1 audio hacks).
- Tracks which patches you've already applied vs. which ones are still available to download, splitting them into two separate reports (
reports/RA_PatchesApplied.txtandreports/RA_PatchesAvailable.txt).
- Python 3.x installed and added to your system
PATH. (Nopippackages required! The entire suite runs purely on Python's built-in standard libraries). - RAHasher.exe (Place inside the
tools/folder). - DolphinTool.exe (Optional, for GameCube/Wii checking. Place inside the
tools/folder). - A RetroAchievements Account (Username and Web API Key).
-
Configure the Suite: Open
config/config.jsonin any text editor.rom_base_path: The absolute path to the root directory containing your system ROM folders (e.g.,D:\\EmulationLibrary).ra_username: Your RetroAchievements username.ra_api_key: Your Web API Key (Generated from your RetroAchievements settings panel).- Paths for
RAHasher,DolphinTool, andreportsare pre-configured to relative paths inside the project.
-
System Folders & Aliases:
- The tools automatically map your local folders (e.g.,
snes,gba,genesis) to the official RA system lists using fuzzy-matching and a predefined list of aliases located inconfig/system_aliases.json. - If a folder isn't being recognized, you can either add its name to the
system_aliases.jsonfile, or explicitly define it inside"manual_system_map"withinconfig.json.
- The tools automatically map your local folders (e.g.,
Simply double-click Run-Menu.bat to launch the interactive dashboard!
The script will automatically verify your Python installation and let you choose which tool you want to run. All outputs will be neatly saved into the reports/ directory.