docker-raromprocessor
docker-raromprocessor copied to clipboard
RA ROM Processor is a Docker container that is used to aquire/orgainze/process/verify/dedupe/scrape a ROMs library automatically by matching ROMs to the RetroAchievement.org website Hash database.
Deprecated
This repository is now deprecated, will no longer be updated and is being archived.
RA ROM Processor
RA ROM Processor is a Docker container that is used to aquire/orgainze/process/verify/dedupe/scrape a ROMs library automatically by matching ROMs to the RetroAchievement.org website Hash database. This was inspired by other projects such as: hascheevos
Instructions/Usage Guidelines
The script must run one time to generate the platform input folders: /input/<platform_rom_folder>
With AutoStart enabled, all you have to do is copy/move your ROMs into the /input/<platform_rom_folder>
volume.
The script will then automatically process all of the files in the volume, by matching/validating them against the RetroAchievements DB (Hash List) using the official RAHasher applicatoin via a automated script process.
Then the files will be processed using skyscraper to gather/download metadata from screenscraper and saved into the /output
volume.
Lastly, ROMs that have no metadata will be removed from the final /output
list/directories. This will ensure a completely clean library.
FEAR NOT, all ROMs that are processed are backed up to the /backup
volume. This will allow you to verify the end result before deciding to remove the original data used for import/processing.
Supported ROM Platforms
- Amiga (Tested - RA Unsupported Platform)
- Amstrad CPC (Tested)
- Apple II
- Arcade
- Atari 2600 (Tested)
- Atari 5200 (Tested - RA Unsupported Platform)
- Atari 7800 (Tested)
- Atari Jaguar (Tested)
- Atari Lynx (Tested)
- Atari ST (Tested - RA Unsupported Platform)
- ColecoVision (Tested)
- Commodore 64 (Tested - RA Unsupported Platform)
- Fairchild Channel F (Tested - RA Unsupported Platform)
- Intellivision (Tested)
- NEC TurboGrafx-16 (Tested - Unsupported by Skyscraper)
- Neo Geo CD (Tested - RA Unsupported Platform)
- Nintendo: 64 (Tested)
- Nintendo: DS
- Nintendo: GameBoy (Tested)
- Nintendo: GameBoy Advance (Tested)
- Nintendo: GameBoy Color (Tested)
- Nintendo: Nintendo Entertainment System (Tested)
- Nintendo: Pokemon Mini (Tested)
- Nintendo: Super Nintendo Entertainment System (Tested)
- Nintendo: VirtualBoy (Tested)
- Sega 32X (Tested)
- Sega Dreamcast
- Sega CD
- Sega Game Gear (Tested)
- Sega Mega Drive (Tested)
- Sega Master System (Tested)
- Sega Saturn
- SG-1000 (Tested)
- Sharp X68000 (Tested - RA Unsupported Platform)
- SNK Neo Geo Pocket (Tested)
- SNK Neo Geo Pocket Color (Tested)
- Magnavox Odyssey 2 (Tested - Unsupported by Skyscraper)
- MSX (Tested)
- MSX2 (Tested)
- PC Engine
- PlayStation
- PlayStation Portable
- Vectrex (Tested)
- WonderSwan (Tested)
- WonderSwan [Color] (Tested)
- ZX Spectrum (Tested - RA Unsupported Platform)
Supported Architectures
The architectures supported by this image are:
Architecture | Tag |
---|---|
x86-64 | latest |
Version Tags
Tag | Description |
---|---|
latest | Newest release code |
Parameters
Container images are configured using parameters passed at runtime (such as those above). These parameters are separated by a colon and indicate <external>:<internal>
respectively. For example, -p 8080:80
would expose port 80
from inside the container to be accessible from the host's IP on port 8080
outside the container.
Parameter | Function |
---|---|
-e PUID=1000 |
for UserID - see below for explanation |
-e PGID=1000 |
for GroupID - see below for explanation |
-v /config |
Configuration files for hascheevos. |
-v /cache |
cache location for skyscraper. |
-v /input |
Place ROMs to be processed in this directory |
-v /backup |
Processed ROMs are backed up to this directory |
-v /output |
ROMs that have been processed will end up here |
-e AutoStart=true |
true = Enabled :: Runs script automatically on startup |
-e ScriptInterval=1h |
When AutoStart is enabled, script will loop indefinitely, this allows the script to pause between loops, via sleep command |
-e DeDupe=false |
true = Enabled :: This setting further reduces the final ROMs list per platrom, by removing duplicates with the priority of: USA > Europe > World > Japan, and then by shortest filename when multiples exist |
-e AquireRomSets=false |
true = Enabled :: Enabling this will have the script attempt to pull valid ROM sets from archive.org for processing :: Not all systems supported... |
-e ConcurrentDownloadThreads=5 |
Number of concurrent threads to increase download speed... only aplicable if AquireRomSets is enabled (true) |
-e EnableUnsupportedPlatforms=true |
true = Enabled :: Enabling this will allow the script to import and scrape ROMs for platforms without RA hashes, no deduping/validation is performed |
-e ScrapeMetadata=false |
true = Enabled :: Enabling this will allow the script to process the ROMs with skyscraper |
-e keepBackupsOfImportedRoms=true |
false = Enabled :: This setting will only keep a single copy of each ROM, reduces the required amount of storage space... |
-e skyscraperLanguagePreference=en |
Set to preferred language for Metadata, for more info visit: skyscraper |
-e ScreenscraperUsername=Username |
Username for https://screenscraper.fr/ |
-e ScreenscraperPassword=Password |
Password for https://screenscraper.fr/ |
docker
docker create \
--name=raromprocessor \
-v /path/to/config/files:/config \
-v /path/to/skyscraper_cache:/cache \
-v /path/to/rom_input_folder:/input \
-v /path/to/rom_backup_folder:/backup \
-v /path/to/rom_output_folder:/output \
-e PUID=1000 \
-e PGID=1000 \
-e AutoStart=true \
-e ScriptInterval=1h \
-e DeDupe=false \
-e AquireRomSets=false \
-e ConcurrentDownloadThreads=5 \
-e EnableUnsupportedPlatforms=true \
-e ScrapeMetadata=false \
-e keepBackupsOfImportedRoms=true \
-e ScreenscraperUsername=Username \
-e ScreenscraperPassword=Password \
-e skyscraperLanguagePreference=en \
--restart unless-stopped \
randomninjaatk/raromprocessor
docker-compose
Compatible with docker-compose v2 schemas.
version: "2.1"
services:
raromprocessor:
image: randomninjaatk/raromprocessor
container_name: raromprocessor
volumes:
- /path/to/config/files:/config:rw
- /path/to/skyscraper_cache:/cache:rw
- /path/to/rom_input_folder:/input:rw
- /path/to/rom_backup_folder:/backup:rw
- /path/to/rom_output_folder:/output:rw
environment:
- PUID=1000
- PGID=1000
- AutoStart=true
- ScriptInterval=1h
- DeDupe=false
- AquireRomSets=false
- ConcurrentDownloadThreads=5
- EnableUnsupportedPlatforms=true
- ScrapeMetadata=false
- keepBackupsOfImportedRoms=true
- ScreenscraperUsername=Username
- ScreenscraperPassword=Password
- skyscraperLanguagePreference=en
restart: unless-stopped
Credits
- RetroAchievements (Used for validation)
- RAHasher (Used for Hashing)
- hascheevos (Used for inspiration)
- skyscraper (Tool used for scraping ROM metadata)
- screenscraper (DB used for ROM metadata)
- Rom icons created by phatplus - Flaticon
- Internet Archive