Catalogue · verify · reorganise

Cat198x

Know exactly what's in your retro collection, and reorganise it without fear. Cat198x matches your files against the reference DATs by content hash, shows what you have and what's missing, and moves nothing until you approve the plan — Terraform for ROMs.

$ cat198x scan
$ cat198x status "Nintendo - Game Boy"

Nintendo - Game Boy  v20240315  [83.7% complete]
  1412 games, 1412 ROMs required
  1182 have, 230 missing

Why

Separate knowing from changing.

Retro collections drift. Files get renamed, re-compressed, half-downloaded, and duplicated across drives, and the reference DATs that define a “correct” set keep changing too. Most tools either mutate files in place with no safety net or assume one rigid layout. Cat198x keeps the two jobs apart: it tells you the truth about your collection first, and only reorganises when you say so — transactionally, with nothing ever silently lost.

How it works

Scan, status, then a plan you can read.

01

Scan

Build an inventory by content hash (SHA-1, plus CRC32/MD5), so every file is identified by what it is, not what it happens to be called.

02

Status

Compare that inventory against your active DATs — accounting for headered ROMs (iNES, SMC, A78, LNX) and MAME merge modes — to see what you have, what’s missing, and what’s misnamed or duplicated.

03

Plan & apply

Propose copies, moves, repacks, and deletions as a reviewable plan. Nothing touches disk until you apply — transactionally, with a rollback log.

Verifies against the reference databases you already use:No-IntroRedumpMAMEFinalBurn Neo

Install

One binary, no runtime.

Install with Homebrew on macOS (Apple silicon or Intel) and Linux (ARM64 or x86-64). Prebuilt archives also cover Windows x86-64; no Rust toolchain is needed. Run cat198x doctor to check the install, then point it at your DATs and ROMs. You can also build from source with Rust.

# macOS or Linux with Homebrew
brew install cat198x/tap/cat198x

# verify, then start a catalogue
cat198x doctor
cat198x init

Plan before apply

Nothing moves until you say so.

Every reorganisation is written to a plan you inspect first, applied in a single transaction, and reversible from a rollback log. There is no silent in-place mutation and nothing is ever lost.

Content-addressed

Identified by what it is.

Files are matched by content hash — SHA-1, with CRC32 and MD5 — not by name, so a renamed or re-compressed ROM is still recognised, and headered formats and MAME merge modes are understood.

Agent-native

A CLI and an MCP surface.

The full workflow is a scriptable command line, and an MCP interface lets tools and agents drive scanning, status, and planning directly — the same operations, one machine-readable surface.