Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/laromicas/datoso/llms.txt

Use this file to discover all available pages before exploring further.

Seeds are plugin packages that add support for different DAT sources in Datoso. Each seed provides the logic for fetching, parsing, and processing DATs from a specific source like Redump, No-Intro, or FBNeo.

Understanding Seeds

A seed in Datoso is:
  • A Python package that extends Datoso’s functionality
  • Typically named datoso_seed_{name} (e.g., datoso_seed_redump)
  • Provides source-specific logic for downloading and organizing DATs
  • Can be installed independently or all together

Listing Installed Seeds

View Installed Seeds

See all currently installed seeds:
datoso seed installed
Output example:
Installed seeds:
* fbneo - Final Burn Neo DAT files for arcade systems
* nointro - No-Intro DATs from datomatic
* redump - Redump disc preservation DATs
* pleasuredome - MAME and arcade DATs from Pleasuredome

Get Seed Details

View detailed information about a specific seed:
datoso seed details redump
Output example:
Seed redump details:
  * Name: datoso_seed_redump
  * Version: 0.2.5
  * Author: Lacides Romero
  * Description: Redump disc preservation DATs for various console systems

Installing Seeds

Install All Official Seeds

Install Datoso with all officially supported seeds:
pip install datoso[all]
This is the recommended approach for most users as it provides access to all major DAT sources.

Install Individual Seeds

Install only specific seeds you need:
# Install base datoso first
pip install datoso

# Then install individual seeds
pip install datoso[redump]
pip install datoso[fbneo]
pip install datoso[nointro]
Or install seed packages directly:
pip install datoso_seed_redump
pip install datoso_seed_fbneo
pip install datoso_seed_nointro
Installing datoso[seed_name] and datoso_seed_name both work - the bracket syntax is shorthand that pip understands.

Available Official Seeds

SeedDescriptionInstall Command
fbneoFinal Burn Neo (arcade)pip install datoso[fbneo]
nointroNo-Intro (Datomatic)pip install datoso[nointro]
redumpRedump (disc preservation)pip install datoso[redump]
pleasuredomePleasuredome (MAME)pip install datoso[pleasuredome]
tdcTotal DOS Collectionpip install datoso[tdc]
vpinmameVisual Pinballpip install datoso[vpinmame]
whdloadWHDLoad (Amiga)pip install datoso[whdload]
eggmanTeknoparrot, ALL.Netpip install datoso[eggman]

Deprecated Seeds

Some seeds are deprecated but still available:
  • md_enhanced - Mega Drive Enhanced
  • sfc_enhancedcolors - Super Famicom Enhanced Colors
  • sfc_msu1 - Super Famicom MSU1
  • sfc_speedhacks - Super Famicom Speed Hacks
  • translatedenglish - Translated English
Deprecated seeds may not receive updates and could be removed in future versions.

Using Multiple Seeds

Fetch from Multiple Seeds

Fetch DATs from several seeds sequentially:
# Fetch from all installed seeds
datoso all --fetch

# Fetch from specific seeds only
datoso all --fetch --only redump fbneo nointro

# Fetch from all except certain seeds
datoso all --fetch --exclude pleasuredome

Process Multiple Seeds

Process DATs from several seeds:
# Process all seeds
datoso all --process

# Process specific seeds
datoso all --process --only redump nointro

# Process with filter applied to all
datoso all --process --filter Nintendo

Complete Workflow for Multiple Seeds

# Fetch and process everything
datoso all --fetch --process

# Fetch everything, process selectively
datoso all --fetch
datoso all --process --only redump fbneo

Configuring Seeds

Seed-Specific Configuration

Some seeds support additional configuration options. Configuration uses uppercase seed names:
# Example seed-specific settings
datoso config --set REDUMP.CustomOption=value

# View current configuration
datoso config

Ignoring Seeds

Skip certain seeds when using all:
# Ignore seeds matching pattern
datoso config --set PROCESS.SeedIgnoreRegEx="(deprecated|test)"

# Now 'datoso all --fetch' will skip matching seeds
datoso all --fetch

Verifying Seed Health

Run Seed Diagnostics

Check if a seed is properly configured:
# Check specific seed
datoso doctor redump

# Check all installed seeds
datoso doctor
The doctor command verifies:
  • Seed package is properly installed
  • Required dependencies are available
  • Configuration is valid
  • Network connectivity (for fetch operations)

Repair Seed Issues

If doctor finds issues, attempt automatic repair:
datoso doctor redump --repair

Seed Workflows

Workflow 1: Single Seed Setup

1

Install seed

pip install datoso[redump]
2

Configure paths

datoso config --set PATHS.DatPath=/path/to/dats
3

Fetch and process

datoso redump --fetch --process
4

Verify results

ls -R /path/to/dats/

Workflow 2: Multi-Seed Setup

1

Install multiple seeds

pip install datoso[redump,fbneo,nointro]
2

List installed seeds

datoso seed installed
3

Fetch from all

datoso all --fetch
4

Process selectively

# Process arcade seeds
datoso all --process --only fbneo pleasuredome

# Process console seeds
datoso all --process --only redump nointro

Workflow 3: Updating Seeds

1

Update seed package

pip install --upgrade datoso_seed_redump
2

Verify new version

datoso seed details redump
3

Fetch updated DATs

datoso redump --fetch
4

Process updates

datoso redump --process

Seed Management Best Practices

Organization Strategy

Organize your workflow by seed type:
# Set up directory structure
mkdir -p ~/roms/{arcade,console,computer}/dats

# Configure per-seed if needed using .datosorc
cd ~/roms/arcade
datoso config --set PATHS.DatPath=./dats --local

Selective Updates

Update only what you need:
# Update only Redump (disc systems)
datoso redump --fetch --process

# Update only arcade systems
datoso all --fetch --process --only fbneo pleasuredome

Filtering Across Seeds

Apply consistent filters across multiple seeds:
# Only process Nintendo systems from all seeds
datoso all --process --filter Nintendo

# Only process Sony systems
datoso all --process --filter Sony

Troubleshooting

Seed Not Found

If a seed isn’t recognized:
1

Check installation

pip list | grep datoso
2

Reinstall if needed

pip install --force-reinstall datoso_seed_redump
3

Verify with list

datoso seed installed

Seed Import Errors

If you see import errors:
# Check Python version (3.11+ required)
python3 --version

# Verify virtual environment
which python3
which datoso

# Reinstall in virtual environment
pip install --upgrade datoso datoso_seed_redump

Fetch/Process Failures

If seed operations fail:
# Run diagnostics
datoso doctor redump -v

# Check logs
datoso log

# Verify network connectivity
curl -I https://www.redump.org

Advanced Seed Usage

Custom Seed Actions

Execute specific actions during processing:
# Only load and deduplicate
datoso redump --process --actions LoadDatFile,Deduplicate

# Custom action pipeline
datoso redump --process --actions "LoadDatFile,Copy,SaveToDatabase"

Combining Seeds with Filters

Complex filtering across seeds:
# Fetch all, but process filtered subsets
datoso all --fetch

datoso redump --process --filter Sony
datoso nointro --process --filter Nintendo
datoso fbneo --process --filter Capcom

Seed Configuration Overrides

Override seed behavior per-project:
# Create local config
cd /path/to/project
touch .datosorc

# Set project-specific overrides
datoso config --set PATHS.DatPath=./dats --local
datoso config --set PROCESS.Overwrite=True --local

# This project now uses its own settings

Developing Custom Seeds

To create your own seed for a custom DAT source:
See datoso_seed_base on GitHub for the seed development template and documentation.
Custom seeds allow you to:
  • Add support for private or custom DAT sources
  • Customize organization rules
  • Implement source-specific fetching logic

Next Steps

Now that you understand seeds:
  1. Download DATs from your installed seeds
  2. Process DATs to organize them
  3. Configure DAT properties for fine-grained control
Datoso without any seeds installed won’t do much - always install at least one seed package to fetch and process DATs.

Build docs developers (and LLMs) love