Config File (tapto.ini)

From TapTo Wiki

The TapTo config file is a file stored alongside the TapTo executable called tapto.ini, which holds all permanent configuration options for TapTo. It uses the INI file format and is the same across all platforms support for TapTo. If the TapTo service must be restarted if changes are made to this file, so it can reload and apply the new settings.

A default config looks like this:

[tapto]
reader =
allow_commands = no
disable_sounds = no
probe_device = yes
exit_game = no
exit_game_blocklist =
exit_game_delay = 0
debug = no
api_port = 7497
api_basic_auth =

[systems]
games_folder =
set_core =

This config is effectively the same as a missing or empty tapto.ini file. It will usually be created by TapTo if it doesn't exist. Default values can always be omitted from the file. Lines can be commented out by starting them with ; or #.

TapTo Section (tapto)

This section is required and starts with [tapto]. It contains all the common global configuration options for the TapTo service and how it should behave.

Manual Reader Connection (reader)

Key Type Default Value Example Value
reader String (text) <empty string> pn532_uart:/dev/ttyUSB0

The reader key is used to manually specify a device string that TapTo should try connect to. It's useful if the reader device you're using can't be auto-detected, or if probing devices is disabled. See the Reader Drivers page for a full list of possible device strings and how they work.

[tapto]
reader = pn532_uart:/dev/ttyUSB0

This means TapTo will continuously attempt to connect to this device while it's running, until it makes a connection. If device probing is enabled, TapTo will continue to try auto-detecting devices alongside this connection, though it won't try to reconnect any of the ones you've set here.

It's also possible to specify multiple readers to be connected:

[tapto]
reader = pn532_uart:/dev/ttyUSB0
reader = pn532_uart:/dev/ttyUSB1
reader = file:/tmp/read_tapto

Allow Shell Commands (allow_commands)

Key Type Default Value Example Value
allow_commands Boolean (yes/no/true/false) no yes

The allow_commands key sets whether the shell token command is allowed to be run or not. By default this command is disabled, as it could be used to launch untrusted malicious code on the host device. Enable it at your own risk!

Disable Feedback Audio (disable_sounds)

Key Type Default Value Example Value
disable_sounds Boolean (yes/no/true/false) no yes

The disable_sounds key specifies whether TapTo should play success and failure audio as feedback after a scan. If you don't like the sounds or they're interfering with something on the host device, you can disable them here.

Device Auto-detection (probe_device)

Key Type Default Value Example Value
probe_device Boolean (yes/no/true/false) yes no

The probe_device key specifies if TapTo should probe hardware devices and attempt to auto-detect them during connection. Some users have reported in the past that TapTo's device probing can interfere with other connected serial devices. If so, try disabling this first.

Insert Mode (exit_game)

Key Type Default Value Example Value
exit_game Boolean (yes/no/true/false) no yes

The exit_game key turns insert mode on or off. Insert mode is the behavior where TapTo will attempt to exit the current playing game when a token is removed from the reader, making it feel more like inserting and removing a real cartridge.

Insert Mode Blocklist (exit_game_blocklist)

Key Type Default Value Example Value
exit_game_blocklist String list <empty list> Amiga,PSX,N64

The exit_game_blocklist key is a comma (,) separated list of System IDs which should be ignored by insert mode. This means, for example, if the key is set to Genesis,SNES the Genesis and SNES systems will both still launch when a token for those systems is inserted, but they won't exit the game when the token is removed.

Insert Mode Exit Delay (exit_game_delay)

Key Type Default Value Example Value
exit_game_delay Number (0-255) 0 15

The exit_game_delay key specified the number of seconds TapTo should wait before actually exiting a game when a token is removed from the reader. It's only active if exit_game is also enabled and the number set it above 0 (0 being disabled).

During this delay period, it's also possible to scan other tokens which don't launch games. For example, it's possible to remove a toke which launched an Arcade game, scan an insert coin toke, then reinsert the original game launch token. Any number of tokens can be scanned during a delay period, and the newly scanned token will reset the exit timer back to the set value.

Debug Logging (debug)

Key Type Default Value Example Value
debug Boolean (yes/no/true/false) no yes

The debug key enables extra debugging information to be logged to the TapTo log file.

API Port (api_port)

Key Type Default Value Example Value
api_port String (text) 7497 8080
Currently, changing this value will break the TapTo Life app and TapTUI script. Only change it if you know what you're doing!

The api_port key specifies which port the TapTo API service should listen on.

API Basic Auth (api_basic_auth)

Key Type Default Value Example Value
api_basic_auth String (text) <empty string> myname:Letmein!
Currently, changing this value will break the TapTo Life app and TapTUI script. Only change it if you know what you're doing!

The api_basic_auth key enable HTTP basic authentication on the TapTo API service. This is a username and password separated by a colon (:). Be aware, this option is not secure on an insecure HTTP connection, it will just act as a nuisance to any simple automated access.

Systems Section (systems)

At the moment the systems section is a holdover from TapTo's MiSTer origins. It won't have an effect outside the MiSTer platform port.

Games Folder (games_folder)

Key Type Default Value Example Value
games_folder String (text) <empty string> /mnt/usb999

The games_folder key adds additional root folders where TapTo will scan for games. Multiple lines can be written to add more than one folder.

Set Core (set_core)

Key Type Default Value Example Value
set_core String (text) <empty string> _Console/N64:_LLAPI/N64

The set_core key allows rewriting the path to a core during a game launch on MiSTer. It's a value with the original core path on the left, and the new core path on the right, separated by a color (:). Multiple lines can be written to add additional rewrites.