Skip to main content
This is unreleased documentation for the next Zaparoo Core release.
For up-to-date documentation, see the latest version (Stable).
Version: Next

Audio, Input, Media, and Scraper Config

Part of the config file reference. Keys are shown with their type and default, followed by what they do and an example.

Audio

[audio]
scan_feedback = true
volume = 100
success_sound = "custom_success.wav"
fail_sound = "custom_fail.wav"
limit_sound = "custom_limit.wav"
pending_sound = "custom_pending.ogg"
ready_sound = "custom_ready.ogg"

scan_feedback

KeyTypeDefault
scan_feedbackbooleantrue

scan_feedback enables or disables playing a sound from the host device when a scan is successful or results in an error.

volume

KeyTypeDefault
volumeinteger (0–200)100

volume sets the playback volume for audio feedback sounds and native audio playback. At the default 100, sounds play at their original recorded level. Lower values quiet them down; higher values amplify, up to double at 200.

[audio]
volume = 150 # 50% louder than the original sound

success_sound

KeyTypeDefault
success_soundstring(embedded default)

success_sound specifies a custom audio file to play when a token scan is successful. Supports WAV, MP3, OGG, and FLAC formats.

[audio]
success_sound = "custom_success.wav"
  • Omit or comment out: Use embedded default success sound
  • Empty string "": Disable success sound completely
  • Relative path: Resolved to <data_dir>/assets/ (e.g., "success.mp3"/media/fat/zaparoo/assets/success.mp3)
  • Absolute path: Used as-is (e.g., "/path/to/sound.wav")

fail_sound

KeyTypeDefault
fail_soundstring(embedded default)

fail_sound specifies a custom audio file to play when a token scan fails or ZapScript execution errors occur. Supports WAV, MP3, OGG, and FLAC formats.

[audio]
fail_sound = "custom_fail.wav"

Configuration works the same as success_sound:

  • Omit or comment out: Use embedded default fail sound
  • Empty string "": Disable fail sound completely
  • Relative path: Resolved to <data_dir>/assets/
  • Absolute path: Used as-is

limit_sound

KeyTypeDefault
limit_soundstring(embedded default)

limit_sound specifies a custom audio file to play when playtime limit warnings occur. Supports WAV, MP3, OGG, and FLAC formats.

[audio]
limit_sound = "custom_limit.wav"

Configuration works the same as success_sound:

  • Omit or comment out: Use embedded default limit sound
  • Empty string "": Disable limit sound completely
  • Relative path: Resolved to <data_dir>/assets/
  • Absolute path: Used as-is

pending_sound

KeyTypeDefault
pending_soundstring(embedded default)

pending_sound specifies a custom audio file to play when a token is staged by launch guard. Supports WAV, MP3, OGG, and FLAC formats.

[audio]
pending_sound = "custom_pending.ogg"

Configuration works the same as success_sound:

  • Omit or comment out: Use embedded default pending sound
  • Empty string "": Disable pending sound completely
  • Relative path: Resolved to <data_dir>/assets/
  • Absolute path: Used as-is

ready_sound

KeyTypeDefault
ready_soundstring(embedded default)

ready_sound specifies a custom audio file to play when the launch guard delay period expires and a staged token is ready for confirmation. Supports WAV, MP3, OGG, and FLAC formats.

[audio]
ready_sound = "custom_ready.ogg"

Configuration works the same as success_sound:

  • Omit or comment out: Use embedded default ready sound
  • Empty string "": Disable ready sound completely
  • Relative path: Resolved to <data_dir>/assets/
  • Absolute path: Used as-is

Input

[input]
gamepad_enabled = true

The input section configures input device emulation features.

gamepad_enabled

KeyTypeDefault
gamepad_enabledbooleanvaries by platform

gamepad_enabled enables or disables the virtual gamepad device used by the **input.gamepad ZapScript command.

[input]
gamepad_enabled = true

Platform defaults:

  • MiSTer: Enabled by default
  • Batocera: Disabled by default (may conflict with some emulators)
  • Windows: Disabled by default, and needs the ViGEmBus driver offered by the installer
  • Other platforms: Enabled by default

When disabled, the **input.gamepad command will return an error.

Media

[media]
filename_tags = true
default_regions = ["us", "world"]
default_langs = ["en"]

The media section configures how Core processes and matches media files, including tag parsing and region/language preferences.

filename_tags

KeyTypeDefault
filename_tagsbooleantrue

filename_tags enables or disables automatic parsing of tags from media filenames (e.g., region codes, languages, revision numbers).

[media]
filename_tags = true

When enabled, Core extracts metadata tags from filenames like (USA), (En), (Rev 1) to help with conflict resolution and media matching.

See the Tags documentation for detailed information about tag parsing and usage.

default_regions

KeyTypeDefault
default_regionsstring[]["us", "world"]

default_regions specifies which region tags to prefer when multiple versions of the same game exist.

[media]
default_regions = ["us", "eu", "world"]

Regions are checked in order. If a game has both (USA) and (Europe) versions, the USA version will be preferred with the default settings.

Common region codes: us, eu, jp, world, uk, de, fr, es, it

default_langs

KeyTypeDefault
default_langsstring[]["en"]

default_langs specifies which language tags to prefer when multiple language versions exist.

[media]
default_langs = ["en", "es"]

Languages are checked in order. Common language codes: en, es, fr, de, it, ja, pt

Scraper

[scraper.gamelist_xml]
custom_path = "/path/to/gamelists"

The scraper section configures metadata sources used by Core's local scrapers.

custom_path

KeyTypeDefault
custom_pathstringnone

custom_path specifies a directory containing separate per-system gamelist.xml bundles. Core checks <custom_path>/<system ID>/gamelist.xml for each indexed system. Metadata and artwork stay outside the ROM directories.

Use the exact system ID for each subdirectory. Game paths in a custom gamelist resolve against the system's first ROM root, while artwork and other asset paths resolve against that system's custom bundle directory.

See custom gamelist bundles for the directory layout, source precedence, and artwork fallback behavior.