Skip to content
This repository has been archived by the owner on Jul 9, 2023. It is now read-only.

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.

License

Notifications You must be signed in to change notification settings

RandomNinjaAtk/docker-raromprocessor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

RandomNinjaAtk/raromprocessor

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

About

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.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project