Datoso uses a rules system to define how different systems are processed and tracks Missing In Action (MIA) ROMs - files that are known to exist but are not currently available in preservation sets.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.
Rules System
The rules system defines configuration for each gaming system/platform that Datoso processes. Rules are stored in the database and can be updated from an external source.System Rules Structure
System rules contain metadata about each platform:- company: Manufacturer or company name (e.g., “Sony”, “Nintendo”)
- system: System or platform name (e.g., “PlayStation”, “NES”)
- system_type: Type of system (e.g., “Console”, “Handheld”, “Computer”)
- override: Configuration overrides for this system
- extra_configs: Additional system-specific settings
Rules Database
Rules are stored in:- File:
systems.jsonin yourDatosoPath(default:~/.config/datoso/systems.json) - Database: System table in the Datoso database
- Source: External JSON endpoint (configured in
UPDATE_URLS.GoogleSheetUrl)
Updating Rules
Update the rules database from the remote source:- Downloads the latest rules from
UPDATE_URLS.GoogleSheetUrl - Writes the data to
systems.json - Truncates and reloads the System table in the database
- Makes new rules available for processing
Rules Source Configuration
Configure the rules source URL:Using Rules in Seeds
Seed modules automatically use system rules during processing:Missing In Action (MIA)
Missing In Action (MIA) tracking identifies ROMs that are known to exist but are currently unavailable or incomplete in preservation sets. This helps archivists understand gaps in preservation efforts.What is MIA?
A ROM is considered MIA when:- It’s documented but not available in current DAT files
- It’s partially dumped or corrupt
- It’s known to exist but not yet preserved
- It’s been removed from distribution
MIA Data Structure
MIA entries contain identifying information:- system: Platform or system name
- game: Game or ROM name
- size: File size in bytes
- crc32: CRC32 checksum
- md5: MD5 hash
- sha1: SHA1 hash (primary identifier)
MIA Database
MIA data is stored in:- File:
mia.jsonin yourDatosoPath(default:~/.config/datoso/mia.json) - Format: JSON dictionary keyed by SHA1 hash (or MD5, CRC32, or “system - game”)
- Source: External JSON endpoint (configured in
UPDATE_URLS.GoogleSheetMIAUrl)
Updating MIA Data
Update the MIA database from the remote source:- Downloads the latest MIA data from
UPDATE_URLS.GoogleSheetMIAUrl - Writes the data to
mia.json - Makes MIA tracking available for processing
MIA Source Configuration
Configure the MIA data source URL:MIA Processing
Enable MIA Processing
Configure MIA processing behavior:ProcessMissingInAction
When enabled, Datoso checks each ROM against the MIA database:- Each ROM is checked against MIA hashes (SHA1, MD5, CRC32)
- Matching ROMs are flagged as MIA
- Processing time increases due to hash lookups
- MIA information is included in output DAT files
- MIA checking is skipped
- Faster processing
- No MIA flags in output
MarkAllRomsInSet
Controls whether to mark all ROMs in a set when one is MIA:- If any ROM in a game set is MIA, all ROMs in that set are marked
- Useful for multi-disc or multi-ROM games
- Ensures incomplete sets are clearly identified
- Only the specific MIA ROM is marked
- Other ROMs in the set remain unmarked
MIA Workflow
Complete MIA Setup
-
Update MIA data:
-
Enable MIA processing:
-
Process DATs with MIA checking:
Checking MIA Status
View MIA information programmatically:Best Practices
Rules Management
-
Update regularly: Keep rules updated to get latest system configurations
-
Verify rules URL: Ensure the rules URL is accessible and current
-
Backup rules: Keep a backup of
systems.jsonbefore major updates
MIA Management
-
Update before major processing: Refresh MIA data before large seed operations
-
Enable selectively: Only enable MIA processing when needed
-
Monitor performance: MIA processing adds overhead
- Use verbose mode to see MIA checks:
datoso -v seed redump - Consider enabling only for specific seeds
- Use verbose mode to see MIA checks:
-
Backup MIA data: Keep a backup of
mia.json
Troubleshooting
Rules Update Failures
MIA Update Failures
MIA Processing Issues
Performance Issues
If MIA processing is too slow:-
Disable MIA processing:
-
Process in batches: Process specific seeds instead of
all -
Check MIA database size:
Advanced Usage
Custom Rules Source
Host your own rules:-
Create rules JSON:
-
Configure custom URL:
-
Update rules:
Custom MIA Data
Maintain your own MIA database:-
Create MIA JSON:
-
Configure custom URL:
-
Update MIA: