Privacy Policy
This policy covers the Copperline emulator, however you obtained it, the browser version at copperline.dev/try, and this website. Copperline is maintained by Andrew Hutchings.
The short version: Copperline collects nothing about you. There is no account, no telemetry, no analytics, no advertising, no update check, and no Copperline server that your copy reports to. The emulator opens no network connection at all unless you use one of the handful of features described below, each of which you have to ask for.
Copperline is free software under the GPL v3, so none of this has to be taken on trust. Every claim on this page can be checked against the source code.
What Copperline stores on your computer
Copperline keeps its own settings and data in a folder in your
documents - Documents\Copperline on Windows,
~/Documents/Copperline on macOS and Linux - or beside the
program itself in portable mode. That folder holds things like:
- machine configurations, key mappings and gamepad calibration;
- save states, screenshots, recorded input scripts and captured clips;
- WHDLoad game saves, and the game library database and cover-art cache if you use the library feature;
- battery-backed clock and non-volatile memory files for the machines you emulate.
If Copperline crashes it writes a copperline-crash.txt
report next to the program, in the working directory, or in your
temporary folder. It contains the error and a backtrace. It is never
sent anywhere - if you want me to see it, you attach it to a bug
report yourself.
All of this is ordinary files on your own disk. Nothing in it is transmitted, and you can delete any of it at any time.
What Copperline never collects
- No usage, feature or performance telemetry.
- No analytics or advertising identifiers, and no profiling.
- No hardware or system inventory.
- No automatic update or licence check on startup.
- No automatic crash reporting.
- No account, sign-in or unique installation identifier.
- No list of the ROMs, disks or games you run.
When the emulator uses the network
These are the only paths out of the program, and every one of them is started by you.
Game library sync. The launcher's library page can
sync game metadata from
openretro.org,
which is an independent third-party service with its own privacy
policy. If you choose to sign in, your OpenRetro username and password
are sent to openretro.org over HTTPS, always encrypted and never over
plain HTTP. The password is exchanged immediately for a session token
and is never written to disk; the token lasts for that session only.
Copperline identifies itself with the fixed device name
copperline, so you can see and revoke the session in your
OpenRetro account. Game descriptions and cover art come back and are
cached in the folder described above. Nothing about your own game
files is uploaded.
WHDLoad support files. On request, Copperline downloads the WHDLoad support archive from whdload.de and Soft-Kicker from aminet.net, verifying both against pinned checksums. Those sites see an ordinary web request, including your IP address, as any download does.
Internet netplay. Starting or joining an internet session opens an encrypted QUIC connection to the other player, directly where your networks allow it. Where a direct route cannot be found, traffic falls back to a relay, which forwards it still encrypted; by default these are the public relays run by the iroh project, and you can point Copperline at your own relay instead. A fresh key is generated for each session and kept only in memory. As with any peer-to-peer connection, the peers you connect to can see your IP address on a direct route, and the relay can see it otherwise. Only controller input and session setup travel between players. A host that admits spectators hands out a separate spectator invitation with its own key; each spectator connects the same way, receives the host's game files and setup as a joining player would, and then follows the two players' controller input without ever sending any of its own. None of it reaches me.
Networking inside the emulated Amiga. If you fit an emulated network card, use the HostSocket board, or connect Paula's serial port to a modem or TCP service, the Amiga software you are running can reach the internet through your computer. That traffic is whatever that software chooses to send, to the hosts it names. Copperline passes it through and keeps no record of it.
Debugging and automation interfaces. The control protocol, the GDB stub, the Debug Adapter Protocol adapter and the MCP server are all off unless you enable them, and all listen on the loopback interface of your own machine.
The browser version
The browser build at copperline.dev/try runs entirely inside your browser. ROMs, disks and save states that you load stay on your device in browser storage; they are never uploaded, and I never see them.
Browser netplay needs a small signalling service, which runs on Cloudflare Workers for Copperline. It exchanges the players' connection details and nothing else: one invitation is held for at most fifteen minutes and then discarded. Hosting a browser game also opens a second, separately keyed room for spectators on the same service. That room holds each spectator's connection details for at most ten minutes, stays open while the host's page is playing, and is discarded when the host disconnects or fifteen minutes after its page stops checking for spectators. Gameplay runs over encrypted WebRTC between the browsers, directly or through a TURN relay when a direct route is impossible; spectators receive the host's files and follow the players' controller input over the same kind of connection. ROMs, disks and snapshots never pass through that service. Cloudflare handles this traffic as the infrastructure provider under its own privacy policy.
This website
copperline.dev is hosted on GitHub Pages, so GitHub receives the requests your browser makes, including your IP address, under GitHub's privacy statement.
Page views are counted with GoatCounter, which sets no cookies, stores no IP addresses and does not track you between sites. It tells me which pages are read and roughly how often, and nothing that identifies a reader. Fonts are served from this site rather than a font CDN, so loading a page contacts no third party beyond those two.
Where you downloaded Copperline
Copperline is distributed through GitHub Releases, Flathub and Homebrew. Each of those runs its own service under its own privacy policy, and each gives me aggregate figures such as download and install counts. None of it identifies an individual person to me, and none of it comes from the emulator itself.
Children
Copperline collects no personal information from anyone, which includes children. There is nothing to sign up for and nothing to submit.
Your data and your rights
Because I collect and hold no personal data about users, there is no personal data of yours for me to look up, correct, export, sell or delete - and it is never sold or shared, because it does not exist. The data Copperline creates is on your own computer and entirely under your control. Where a feature sends something to a third party, such as an OpenRetro sign-in, your rights in that data sit with that service.
Changes to this policy
If a future version of Copperline changes what it sends or stores, this page changes in the same release, and the date at the top moves. The full history of this page is public in the website repository.
Contact
Questions about this policy, or about anything Copperline does with data, are welcome as an issue on the Copperline issue tracker or a message on the Copperline Discord.