command module
v1.4.6 Latest Latest

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

Go to latest
Published: Jul 15, 2018 License: MIT Imports: 21 Imported by: 0



Build Status GoDoc

An auto-scraper for EmulationStation written in Go using hashes. This currently works with NES, SNES, N64, GB, GBC, GBA, MD, SMS, 32X, GG, PCE, A2600, LNX, MAME/FBA(see below), Dreamcast(bin/gdi), PSX(bin/cue), ScummVM, SegaCD, WonderSwan, WonderSwan Color ROMs.

How it Works

The script works by crawling a directory of ROM files looking for known extensions. When it finds a file it hashes the ROM data minus any headers or special file formatting with the goal of hashing only the data pulled from the original game. It compares this hash to a DB I've compiled to look up the correct game in It downloads the metadata and builds the gamelist.xml file.

If you have RetroPie-Setup 3.1 or later you can follow the instructions on their wiki instead.


I don't accept donations but feel free to donate to:



Make sure you have go version 1.7 or later installed.

$ go version
go version go1.8 linux/amd64

Fetch and build.

$ go get
$ go build


$ cd <rom directory>
$ scraper

ROMs will be scanned and a gamelist.xml file will be created. All images will be placed inside the images folder.


The scraper now supports MAME/FBA but using file names instead of hashing. Since it uses a different DB and lookup method, several of the command line flags no longer apply. When the -mame flag is used it disables all other databases and the mamedb only has the one size of image so the flags about thumbnails, gdb, ovgdb, etc don't do anything.

$ scraper -mame

You can choose your preference of image type with the mame_img flag. If you prefer marquees but want to fallback to titles then snapshots you can do:

$ scraper -mame -mame_img "m,t,s"

Command Line Flags

There are several command flags you can pass. To see a full list use -help

$ scraper -help

Raspberry Pi

Note: Scraper is included in RetroPie-Setup from version 3.1 and can be accessed from their UI. Otherwise you can use the instructions below.

At the time of writing this raspbian has an old version of go 1.3.3 so you can cross-compile on another system or download a recent version of Go

Rpi v1
$ GOARM=6 GOARCH=arm GOOS=linux go build
Rpi v2
$ GOARM=7 GOARCH=arm GOOS=linux go build
Install from my Binaries

Replace the release_name with the release like v1.2.6

Rpi v1
$ wget<release_name>/
$ sudo unzip scraper -d /usr/local/bin/
Rpi v2
$ wget<release_name>/
$ sudo unzip scraper -d /usr/local/bin/

Add thumb_only can speed things up since the pi doesn't have a ton of memory.

Single System
$ cd ~/RetroPie/roms/<rom_dir>
$ scraper -thumb_only
All Systems
$ scraper -scrape_all -thumb_only

Used libraries

Package Description License resizes images ISC provides sqlite MIT get user homedir MIT provides leveldb Simplified BSD provides a LRU cache Mozilla provides access to 7z binary MIT


The Go Gopher

There is no documentation for this package.


Path Synopsis
Package gdb interacts with's API.
Package gdb interacts with's API.

Jump to

Keyboard shortcuts

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