-
Notifications
You must be signed in to change notification settings - Fork 0
Privacy Policy
Effective date: 2026-06-06 Applies to: Emutastic for Linux (all versions)
Emutastic does not collect, store, transmit, or sell any personally identifiable information. It contains no analytics, no crash reporting, no telemetry, and no user-tracking of any kind. Emutastic operates no servers of its own. All persistent state lives on the user's local machine — with one optional, user-controlled exception: the Cloud Sync feature, which stores the user's own save data in a GitHub repository owned by the user.
The rest of this page documents the specifics in the format RetroAchievements' hardcore-compliance review expects.
None. Emutastic does not collect any data about its users or their usage of the application.
Emutastic writes the following to the user's local filesystem, under ~/.local/share/Emutastic/ (data) and ~/.config/Emutastic/ (configuration), or PortableData/ next to the binary in portable mode. None of this leaves the user's machine via Emutastic, except save data the user explicitly syncs (see Cloud Sync below).
| What | Where | Notes |
|---|---|---|
| Library database (game list, play counts, save metadata) | library.db |
SQLite. Contains only the user's ROM paths, titles, console, play history, and artwork paths. No external IDs or PII. |
| User credentials for third-party services | config.json |
RetroAchievements username/token and ScreenScraper username/password are stored here when the user opts to log in; the GitHub OAuth token when the user signs into Cloud Sync. Stored locally; never sent to Emutastic-controlled servers (Emutastic operates none). |
| Save files and save states |
Saves/, Save States/
|
Per-game .srm / .state files, generated by the active libretro core. |
| Screenshots and recordings |
Screenshots/, Recordings/
|
Local image and video files. |
| Cover art and metadata | Artwork/ |
Cached locally after fetching from ScreenScraper or OpenVGDB. |
| Logs | Logs/ |
Diagnostic output (see [[Log Files |
Emutastic makes outbound HTTPS requests to the following third-party services, only as part of explicit user actions (logging in, fetching artwork, downloading a core / DAT / asset, checking for updates, syncing saves) or to render content the user has explicitly opted in to display. Emutastic does not proxy these connections — requests go directly from the user's machine to the third-party service. There is no Emutastic-controlled telemetry endpoint.
| Service | When | What is sent | What is received |
|---|---|---|---|
RetroAchievements API (retroachievements.org/API) |
The user is logged into RA and is playing a game or browsing the Achievements tab | The user's RA username / login token / Web API key (which the user provides), the User-Agent string Emutastic/<version> (<Linux distribution>) <core>/<version>, game hashes for identification |
Achievement metadata, unlock confirmations, leaderboard data, profile info |
RetroAchievements media (media.retroachievements.org) |
The Achievements tab, detail card, and in-game toasts render achievement badges and game icons | Anonymous image requests for badge / game IDs | PNG badge images |
| Service | When | What is sent | What is received |
|---|---|---|---|
ScreenScraper API (screenscraper.fr/api2/) |
User opted into artwork / metadata fetching and entered ScreenScraper credentials | ScreenScraper credentials, ROM filenames / hashes | Cover art, screenshots, video previews, game metadata |
Arcade Italia / progettoSNAPS (adb.arcadeitalia.net/service_scraper.php) |
Metadata refresh on an arcade game | Arcade game short name (e.g. galaga) |
Title screen, marquee, flyer, screenshot URLs, metadata |
Libretro thumbnails (thumbnails.libretro.com) |
Artwork fetch fallback | Anonymous request for <system>/<category>/<title>.png
|
PNG thumbnail image |
OpenVGDB cover art (gamefaqs.gamespot.com, raw.githubusercontent.com, art.gametdb.com) |
Box-art fallback when libretro thumbnails has no image | Anonymous image request for the cover-art URL stored in OpenVGDB | Cover-art image (JPG / PNG) |
OpenVGDB itself is not a network service — the application ships an embedded copy of the OpenVGDB SQLite database and queries it locally, so game matching and text metadata generate no network traffic.
| Service | When | What is sent | What is received |
|---|---|---|---|
GitHub OAuth device flow (github.com/login/device, github.com/login/oauth) |
The user clicks Sign In on the Cloud Sync panel | The application's OAuth client id; the user authorizes on github.com directly | A scoped access token, stored locally |
GitHub API (api.github.com) |
Saves sync around game sessions or on demand | The user's battery saves / save states / library database, optionally AES-256-GCM-encrypted with a passphrase only the user knows, written to a repository owned by the user's own GitHub account | The same data back on other machines |
Nothing about Cloud Sync flows to the application author. The data lives in the user's own GitHub account, under GitHub's privacy policy, and the user can delete the repository at any time.
Contacted only when the user explicitly clicks Install / Update / Download on the corresponding asset.
| Service | What is sent | What is received |
|---|---|---|
Libretro core buildbot (buildbot.libretro.com/nightly/linux/x86_64/latest/) |
Anonymous request for a core .so filename |
The core's .so binary |
Libretro cheats database (buildbot.libretro.com/assets/frontend/cheats.zip) |
Anonymous request |
cheats.zip (community cheat collection) |
Libretro shader pack (buildbot.libretro.com/assets/frontend/shaders_glsl.zip) |
Anonymous request | The community GLSL shader pack |
Libretro DAT repositories (raw.githubusercontent.com/libretro/...) |
Anonymous request for specific DAT / XML | DAT / XML file used for ROM identification |
Libretro overlay-borders (api.github.com/repos/libretro/overlay-borders/...) |
Anonymous request | Vectrex overlay PNGs |
The Bezel Project (raw.githubusercontent.com/thebezelproject/..., api.github.com/repos/thebezelproject/...) |
Anonymous request for a bezel PNG by game short-name | Bezel artwork |
Redump (redump.org/datfile/<slug>/) |
Anonymous request | Redump DAT file for disc-based systems |
(Unlike the Windows app, no SDL3 or FFmpeg binaries are downloaded — on Linux those are system packages.)
| Service | When | What is sent | What is received |
|---|---|---|---|
GitHub Releases API (api.github.com/repos/codingncaffeine/Emutastic-For-Linux/releases/latest) |
The user opens Preferences → About | Anonymous request for the latest release tag | The latest version number, and the release artifact if the user chooses to update |
Emutastic operates no servers. There is no Emutastic backend, database, log aggregation, or analytics. Server-side privacy policies for the third-party services above are governed by those services individually:
- RetroAchievements: retroachievements.org
- ScreenScraper: screenscraper.fr
- Arcade Italia / progettoSNAPS: adb.arcadeitalia.net
- Libretro: libretro.com
- The Bezel Project: github.com/thebezelproject
- Redump: redump.org
- GitHub: github.com
Emutastic itself retains no user data (because it collects none). Local files persist until the user deletes them. Cloud Sync data persists in the user's own GitHub repository until the user deletes it. There are no automatic expiration or retention schedules — the data is the user's own.
Emutastic does not act as a data controller or data processor under the GDPR, CCPA, or any analogous regulation, because it does not collect, store, transmit, or process personal data on anyone's behalf. Users in any jurisdiction have the same posture: their data stays on their own machine (or their own GitHub account, if they opt into Cloud Sync), under their own control.
For data held by the third-party services Emutastic talks to on behalf of the user, the user is the data subject and the third-party service is the controller. See those services' privacy policies linked above.
Emutastic does not knowingly collect any data from any user, including children under 13. It collects no data from any user, of any age, regardless of jurisdiction.
Updates to this policy will be published on this page, with the effective date updated at the top. The git history of this page in the wiki repository is the authoritative changelog.
For questions about this policy, open an issue at the Emutastic-For-Linux GitHub repository.
Console Notes
- Nintendo 64
- Nintendo 3DS
- GameCube
- Sega Saturn
- Dreamcast
- PlayStation
- PlayStation Portable
- TurboGrafx-CD
- Neo Geo
- Arcade
- Vectrex
- Philips CD-i
- Atari Jaguar
Features
- Artwork & Metadata
- Cheats
- Cloud Sync
- Controllers
- Disc-Based Systems
- Disk Swapping
- Portable Mode
- RetroAchievements
- ROM Hacks
- Hardcore Compliance
Technical
Platforms
Legal