Overview
Identification by contents
Playdex opens each file and reads it: headers, disc filesystems, and the entries inside an archive. Filenames and folder names are only consulted once the bytes have failed to settle it.
Artwork fetched automatically
Box art, description, developer, release year and player count. The fetch starts on its own when a scan finishes, and matches on the ROM's checksum rather than on its title.
Launches the emulators you have
A libretro core through RetroArch, or any standalone emulator, set per system. A single game can override its system's emulator when it needs a different one.
Detection works through evidence, in order.
.bin, .iso and .chd are shared
across a dozen systems, so an extension rarely settles anything on its
own. Playdex works down a list and stops at the first step that gives a
definite answer.
- A platform assigned to the folder If you have set a library folder to Dreamcast, everything under it is Dreamcast.
-
An extension used by one system
.sfc,.gbaand.neseach belong to a single system. -
The contents of an archive
A
.7zbelongs to no system. The ROM inside it does, so that is what gets identified. -
The file's own bytes
A Wii dump carries
5D1C9EA3at offset0x18; a GameCube disc carriesC2339F3Dat0x1C. Saturn, Dreamcast and Mega CD each write their name into the first sector. Sony discs declare nothing in a header, so Playdex reads the disc's own filesystem and the boot file it names. Only the first kilobyte is read. - Folder names, then the ROM's filename The last resorts. Filenames are matched whole-word, so a game called Legbreaker stays out of the Game Boy shelf.
sector 16 → CD001 // an ISO 9660 filesystem
root dir → SYSTEM.CNF
SYSTEM.CNF → BOOT2 = cdrom0:\SLUS_203.12
// BOOT2 identifies a PlayStation 2 disc.
// plain BOOT identifies the original PlayStation.
Every file is hashed on the way in — CRC32, MD5 and SHA-1 in a single pass. For an archived game it is the ROM inside that gets hashed, since that is what the metadata providers and the No-Intro and Redump catalogues index.
Six layouts, one library.
A desk and a television call for different shapes, so each layout is built separately rather than restyled. Every feature is available in every one of them, and none is named after the hardware it nods at. Switch under Settings → Appearance.
What else Playdex does.
Artwork and metadata
libretro-thumbnails supplies box art with no account or API key. ScreenScraper and TheGamesDB add the written details when you supply credentials for them.
Multi-disc games
Several discs, one library entry. Playdex writes the playlist and the emulator handles the swap when the game asks for the next disc.
Cheats
Cheats are listed per game. Enable the ones you want and the codes are written where RetroArch reads them when you press Play, along with the setting that makes it apply them.
ROM hacks
IPS, UPS and BPS patches are applied to a copy of a ROM in your library. The result is added as its own game, with its own artwork, saves and playtime. The original file is untouched.
Dump verification
Import a No-Intro or Redump catalogue and every game's panel reports whether its checksums match a catalogued dump, using the hashes taken during the scan.
Saves and save states
Collected from the configured save directories, RetroArch's per-core subfolders and the ROM's own folder, then backed up into a dated folder on request.
Controller support
A connected pad drives the entire app, Settings included. Focus moves geometrically rather than by a fixed map, and buttons are remappable.
Drag and drop
Drop a ROM anywhere on the window and it is indexed where it already sits. Drop a folder and it becomes a library folder, then gets scanned.
Playtime
Every session is timed and recorded against the game. The library shows total time, session counts, longest session, and lists to pick up from.
Signed updates
New versions are announced in the app with their release notes, and verified against a public key compiled into the binary before any of the download runs.
A local library
Everything lives in a SQLite database in the app data directory, alongside the artwork cache. No account, and nothing about your library leaves the machine.
Your files stay put
ROMs are indexed where they already are, never copied or moved. Removing a game removes the library entry and leaves the file alone.
Get Playdex.
One installer, and very little setup. Playdex locates RetroArch on its own if you have it, and the first scan reports what it identified and what it could not.
Free and open source (MIT) · no account required
If Windows removes the installer, take the .msi
rather than the .exe. The .exe is a
compressed self-extractor and is unsigned, which is enough for
Defender to call it a packer and delete it. Same application, and
every build is made in public by GitHub Actions from the tagged
commit, so you can check the file against the hash on the release.