Skip to content

3vi1/sprinter

Repository files navigation

Intellivision ROM Asset Generator

A Python script that automatically downloads and processes game assets (box art, screenshots, overlays, metadata) for Intellivision ROM files from the LaunchBox Games Database.

Put your extracted Intellvision ROMs (ex. "Happy Trails (1983) (Activision).int") in the root directory of a thumbdrive and then run this script with that path to build the additional assets. See examples below.

Features

  • Automatic Game Matching: Maps ROM filenames to game titles using a CSV memory map
  • Asset Download & Processing: Downloads box art, screenshots, control overlays, and metadata
  • Image Resizing: Automatically resizes images to target dimensions with letterboxing
  • Overlay Compositing: Creates controller overlay composites using a template
  • Asset Caching: Caches downloaded assets to avoid redundant downloads for duplicate games/prototypes
  • Configuration Generation: Auto-generates .cfg files with memory mapper configurations

Requirements

  • Python 3.7+
  • See requirements.txt for dependencies:
    pip install -r requirements.txt

Installation

  1. Clone or download this repository
  2. Install dependencies:
    pip install -r requirements.txt

Usage

Basic Usage

Process ROMs in a directory:

python create_sprint_files.py --roms-dir /path/to/roms

Interactive mode (prompts for ROM directory):

python create_sprint_files.py

Command Line Options

Option Description
--roms-dir PATH Path to directory containing ROM files (default: prompts user or uses ./roms/)
-v, --version Print script version and exit

Examples

Process specific ROM directory:

python create_sprint_files.py --roms-dir ~/games/intellivision

Check version:

python create_sprint_files.py --version

Output Files

For each ROM, the script generates:

File Description
<rom>.json Game metadata (title, year, publisher, description)
<rom>.cfg Memory mapper configuration
<rom>.png Box art (186×256)
<rom>_small.png Small thumbnail (148×204)
<rom>_big_overlay.png Large control overlay (300×478)
<rom>_overlay.png Composited controller overlay
<rom>_snap#.png Gameplay screenshots (640×400)

Configuration Files

game_maps.csv (Optional)

Maps ROM filenames to game titles and memory mapper configurations. Multiple semicolon-seperated filenames can be specified.

Game Title,Filename,Map #
"4-Tris","4-TRIS.int;4-TRIS (2001) (Joseph Zbiciak).int;4-Tris.bin",0
"ABPA Backgammon","ABPA Backgammon.bin",0

asset_cache.json (Auto-generated)

Caches downloaded assets by game title to enable fast copying for duplicate ROMs. Automatically created and maintained by the script. Delete this if you are encountering issues and want to try running clean.

controller_template.png (Required)

PNG template image used for creating overlay composites. Must be present in the script directory.

Credit to GenXGrownUp for the controller template!

How It Works

  1. ROM Discovery: Scans directory for ROM files (.bin, .int, .rom, .zip, .7z)
  2. Game Lookup: Matches ROM to game title using game_maps.csv or normalized filename
  3. Cache Check: Checks if assets already exist in cache for the game title
  4. Asset Download: If not cached, downloads images and metadata from LaunchBox
  5. Image Processing: Resizes images, creates thumbnails, and composites overlays
  6. Cache Update: Registers newly downloaded assets in cache for future use

Supported ROM Extensions

  • .bin - Binary ROM files
  • .int - Intellivision ROM files
  • .rom - Generic ROM files

Notes

  • The script respects existing files and won't overwrite them
  • Missing assets will be created on subsequent runs
  • Network delays (1-2 seconds) are added between requests to be respectful to the LaunchBox server
  • Games not found on LaunchBox are skipped with a warning

Troubleshooting

"controller_template.png not found"

  • Ensure controller_template.png exists in the same directory as the script

"Game not found on LaunchBox"

  • Check ROM filename matches game title or add entry to game_maps.csv
  • Some homebrew/unreleased games may not be in the database.
  • I've not tested with most homebrew, as I don't have the roms. The info in the map file is a combination of values I've seen others post and my best guesses.

Missing overlay files

  • Run script again - it will create missing derivative assets
  • Check that controller_template.png exists

About

Intellivision Sprint Asset Builder

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages