rom-tools

module
v0.0.0-...-7691f75 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2026 License: BSD-2-Clause

README ΒΆ

rom-tools

A suite of utilities for working with video game ROMs for classic platforms.

The project is a work in progress and portions are AI-generated. See the maturity legend to understand the quality of the components listed in this README:

  • πŸ”΄ Vibe coded AI slop with little or no human review; very rough
  • 🟑 Reviewed or written by a human; experimental but usable
  • 🟒 Tested on my real game library; no longer slop

CLI

Install the CLI:

go install github.com/sargunv/rom-tools/cmd/rom-tools
  • πŸ”΄ rom-tools screenscraper: CLI client for the ScreenScraper API.
  • πŸ”΄ rom-tools identify: Hash roms and parse their metadata.
  • πŸ”΄ rom-tools scrape: Scrape metadata for frontends from a list of roms.

See the CLI documentation for complete usage information.

Packages

Metadata sources
  • 🟑 ./lib/screenscraper: OpenAPI spec and generated client for the ScreenScraper API.
  • Hasheous: TODO
  • Launchbox: TODO
Metadata destinations
  • 🟑 ./lib/esde: Implementation of the ES-DE gamelist.xml format.
  • MuOS: TODO
  • MinUI/NextUI: TODO
General utilities
  • 🟑 ./lib/identify: Utility to identify the title, serial, and other info of a ROM.
  • 🟒 ./lib/datfile: Implementation of the Logiqx DAT XML format with No-Intro extensions.
  • 🟑 ./lib/chd: Implementation of the CHD (Compressed Hunks of Data) disc image format.
  • 🟑 ./lib/iso9660: ISO 9660 filesystem image parsing for optical disk platforms.
Nintendo formats
Sega formats
Sony formats
Xbox formats
Other formats

Test Data

ROM files in **/testdata/ are sourced from:

These files are used as sample data for automated tests.

Directories ΒΆ

Path Synopsis
cmd
gen-docs command
rom-tools command
internal
cli
container/zip
Package zip provides utilities for reading ZIP archives with random access support.
Package zip provides utilities for reading ZIP archives with random access support.
lib
chd
Package chd provides support for reading CHD (Compressed Hunks of Data) files.
Package chd provides support for reading CHD (Compressed Hunks of Data) files.
core
Package core provides shared types for ROM identification and platform definitions.
Package core provides shared types for ROM identification and platform definitions.
esde
Package esde provides types and utilities for ES-DE (EmulationStation Desktop Edition) integration.
Package esde provides types and utilities for ES-DE (EmulationStation Desktop Edition) integration.
identify
Package identify provides ROM identification and hashing utilities.
Package identify provides ROM identification and hashing utilities.
iso9660
Package iso9660 provides support for reading ISO 9660 filesystem images.
Package iso9660 provides support for reading ISO 9660 filesystem images.
roms/playstation/pkg
Package psnpkg provides PlayStation PKG (package) file format parsing.
Package psnpkg provides PlayStation PKG (package) file format parsing.
screenscraper
Package screenscraper provides primitives to interact with the openapi HTTP API.
Package screenscraper provides primitives to interact with the openapi HTTP API.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL