A collection of utility scripts designed to be executed directly from the MiSTer FPGA On-Screen Display (OSD) using a controller, or via the command line over SSH.
This suite of scripts allows you to install, update, and manage a Tailscale node directly on your MiSTer, allowing secure remote access to your devices over your Tailnet.
tailscale_update.sh: Dynamically determines the latest stable ARM release. It checks your local installation and, if a newer version is found, downloads the update and gracefully restarts the daemon without requiring manual intervention.tailscale_enable.sh: Initializes and brings up the Tailscale daemon in the background. Enables start on boot. Requires registering on first run.tailscale_disable.sh: Safely halts the Tailscale daemon and terminates the connection. Disables start on boot.
⚠️ Important Note on TUN Support The previous stable MiSTer kernel (5.15.1-MiSTer) lacks native TUN routing support, meaning Tailscale will default to operating in user-space mode, which dramatically limits its functionality. However, TUN support is now enabled by default in6.18.38-MiSTerand newer so Tailscale works well with full native routing.
- If this is a fresh install of Tailscale, run the
tailscale_enable.shscript via SSH first so you can easily copy and paste the authentication URL into your browser. It will also generate a scannable QR code but that is less reliable. - If you have multiple MiSTers you plan on using with Tailscale, give it a unique tailscale host name in the Tailscale Console
- You may also want to consider disabling key expiration for this host in the Tailscale Console
These scripts automate and manage the process of configuring CIFS network mounts to prefer local connections over VPN when connecting to a RetroNAS setup. By mapping these remote shares based selectively your MiSTer can seamlessly load games, BIOS files, and save states directly over local or remote networks rather than relying entirely on local SD card storage.
retrosmb_dns_helper.sh: Checks to see iflocal_domainserver is resoveable and if not fails toremote_ip. Sets a local hosts entry with the resovled address. Optionally can updatecifs_mount.inifile if defined as the MiSTercifs_mount.shscript doesn't currently support hosts resolution.retrosmb_dns_enable.sh: Enables DNS helper start on boot viauser-startup.shretrosmb_dns_disable.sh: Disables DNS helper start on boot viauser-startup.sh
Copy or rename the template _retrosmb_dns_helper.ini in the /media/fat/Scripts/ folder and configure as needed.
[Network]
target_host=retrosmb
local_domain=retronas
remote_ip=100.x.x.x
network_timeout=60
cifs_ini_file=/media/fat/Scripts/cifs_mount.iniYou do not need to clone this repository to use these scripts.
You can configure the MiSTer Downloader (used by the Update All script) to automatically fetch and keep these scripts up to date alongside your cores and arcade databases.
The easiest option is to drag and drop a file onto your SD card.
Download downloader_badamsz_MiSTer_Scripts.zip
Then you only need to:
- Extract
downloader_badamsz_MiSTer_Scripts.inifrom the ZIP. - Copy it to the root of the MiSTer SD card, next to
downloader.ini.
That's it.
If you prefer to do it manually instead, you may add the following lines to the bottom of downloader.ini:
[badamsz/MiSTer_Scripts]
db_url = https://raw.githubusercontent.com/badamsz/MiSTer_Scripts/db/db.json.zipThis needs to be done just once. After that, whenever you run downloader or update_all you will install any updated files.