Skip to content

Managing Games

After syncing, each game in your Steam Library that came from RomM has an injected Tender panel on its detail page. This panel handles downloads, artwork, BIOS status, save sync, and more.

The Game Detail Panel

When you open a RomM game in the Steam Library, you'll see the Tender panel below the standard Steam content. It shows:

  • Status badge — "Installed", "Downloading", or "Not Installed"
  • Platform name — which system the game belongs to (e.g. "Game Boy Advance")
  • Version switcher — a compact control next to the Play button (beside the disc picker) to pick which version of the game is active, when RomM has more than one (see below)
  • Region / Languages — attributes of the active version, shown in the Game Info tab when RomM has them (see below)
  • BIOS status — whether required BIOS files are present (see BIOS Management)
  • Save sync status — on the Saves tab: whether the game's saves sync at all, when each save file last synced, and any conflict waiting for you. A downloaded game whose saves cannot sync has a warning mark beside the tab's title (see Save Sync)
  • Playtime — Last Played and Playtime cells next to the Play button. Last Played reads Today, Yesterday or so many days ago within a week, and otherwise the date in your Steam client's language
  • Space required — for a game that isn't downloaded yet, a "Space Required" cell next to the Play button shows how much disk space the download needs. Tender asks RomM for it once the page is open, so the cell appears a moment later, and it counts the files a download brings: the game's own files, not the manuals, soundtracks, updates, DLC or other extras in the game's RomM folder, which stay on the server. For a game whose files are so many that Tender cannot name them in one request to RomM, the download brings the whole game and removes the extras afterwards, and the cell counts the whole game. It disappears once the game is installed (mirroring how Steam hides it for installed games); it's also omitted when RomM can't be asked, doesn't report the size, or reports 0 bytes, as it does for a game it holds no file for.
  • Action buttons — Download, Pause/Resume, Uninstall, Cancel, or Refresh Metadata depending on state

Below the play row stand the panel's tabs — GAME INFO, ACHIEVEMENTS, SAVES, BIOS and ARTWORK — on Steam's own tab row, the one a Steam game's page has. ACHIEVEMENTS is there for a game RetroAchievements knows; SAVES is there with save sync on or off (Save Sync). L1 and R1 step to the previous and the next of the tabs shown from anywhere in Tender's part of the page, the play row included, going round from the last tab to the first. Moving focus onto a tab shows it, and a tab you come back to puts focus where it stood in it. The tab area is one screen tall and a tab's content scrolls inside it: moving down from the play row into the tabs scrolls the page so the tab row stands at the top, and moving back up to the play row scrolls it back. B steps back the same way a Steam game's page does: in a tab's content it moves focus up to the tab row, on the tab row it moves focus to the play row and scrolls the page back to the top, and on the play row it leaves the game's page.

Game detail page showing the Tender panel for an installed game

Versions

Many games exist in a RomM library as several versions — different dumps of the same title: a (USA) release and a (Europe) one, a multi-language (En,Fr,De) dump, a (Rev 1) revision, a (Demo). RomM groups these as a sibling group (one game, many versions), and Tender represents the whole group with a single Steam shortcut. The version currently bound to that shortcut is the active version — the one the Download button fetches, and the one that launches and syncs saves.

The Switch-version control

When a game has more than one version, a compact version control appears next to the Play button — right beside the disc picker, and only for a multi-version game. Open it to see every version in the group, each showing its own cover art (so two regions of the same game are told apart at a glance; a version whose cover can't be fetched shows a disc icon), with markers for:

  • ✓ (active) — the version currently bound to the shortcut. This is exactly what the Download button will fetch.
  • Default — the default version you chose in RomM, and nothing else: a game you chose none for in RomM shows no Default, and Tender never puts its own pick under that name. It's a label, not a lock, and it stays on that version when the version is gone from RomM, has no file there, is on another shortcut or is dimmed as a conflicting metadata match. A default version you choose in RomM shows here the next time you open the game's page, without a sync, as long as RomM can be reached. The version control's icon is tinted while the shortcut is on a version other than RomM's default, and stays neutral where RomM holds none.
  • Downloaded — a version you already have on disk.
  • not synced — a version RomM has that isn't in your local library yet. Selecting it records it on the spot — unless it's dimmed as a conflicting metadata match (see below).

Some rows are dimmed and can't be selected, labelled "conflicting metadata match in RomM". Versions of one game are grouped by the metadata match they agree on — even when their coverage is uneven. A US and a EU dump that scrapers matched differently (say one carries an IGDB id, the other only a ScreenScraper id) still group together and switch freely, as long as the highest-priority match they share agrees. A row is dimmed only when its match genuinely conflicts — it carries a different id at that shared match, so RomM really treats it as a different game. This holds whether or not the version is already in your library: a dump you've already synced under a conflicting match, and a not-yet-synced version whose match conflicts, are both shown (so you know they exist) but can't be switched to — either would move the shortcut onto a different game. To make one selectable, fix its metadata match in RomM so it agrees with this game's, then re-sync.

A version another Steam shortcut of the same game is on is dimmed too, labelled "On another shortcut of this game", and cannot be selected: moving it onto this shortcut would leave the other one with no version. A game has a second shortcut only until a sync leaves it one: for good only where RomM no longer lists its platform, or where its platform is turned off and the second shortcut is on a version no collection holds that RomM no longer lists for the game (Multiple versions of a game). To use that version here, switch the other shortcut to another version first.

A version you hid in RomM — its own Hidden status there — is labelled "Hidden in RomM", unless one of the labels above applies, which is then shown in its place. Hiding alone does not stop you selecting it: a game keeps its shortcut while one of its versions is visible in RomM. Hiding every version of a game takes it out of Steam on the next sync that runs to its end (Hiding a game in RomM). The label comes from one request to RomM each time the version list loads; when RomM's answer cannot be read, no version is labelled.

A retained local version that RomM has positively confirmed it no longer has is also shown dimmed, with the separate label "No longer available on RomM", and it cannot be switched to: selecting it instead opens the cleanup confirmation described under Cleaning up versions removed from RomM. Its active and Downloaded markers remain visible so it is clear what the shortcut and local files still refer to, and so does Default where RomM holds it as the default. If the shortcut is still active on that unavailable id, choose any live alternative in the same list to recover the game.

When the version the shortcut is bound to is the one confirmed gone, the Download button is greyed out as well — it stays visible, like the version row, but downloading it could only ever fail. Pick a live version in the version list to get the button back.

A library sync never moves the shortcut off such a version, and never removes it because every version is gone — see Re-Syncing. Instead the game page shows a banner above the Play row, which says no longer available on RomM rather than deleted, because RomM answers a ROM an admin hid from your RomM user — under Hidden games or Hidden platforms in RomM's settings — the same way. A version you hid yourself is still on RomM: it shows no banner, and carries the "Hidden in RomM" label above instead. The banner reads:

  • Not downloaded, other versions remain — This version is no longer available on RomM. Choose another version to play.
  • Downloaded — This version is no longer available on RomM. Your downloaded copy still plays. Below it, what no longer works: its saves no longer sync, and a launch with a local save asks first; it cannot be downloaded again; its saves stay on this device and do not follow a switch to another version; its playtime still counts here, but RomM no longer adds it to this game; its cover and details no longer update.
  • Every version gone — This game is no longer available on RomM., with the same list when the game is downloaded (less the line about switching, since there is nothing to switch to).

A downloaded version with another version still on RomM closes with To delete its file, switch to another version first, then use Data Management › Gone from RomM, which can keep a recovery bundle. — the cleanup keeps the version a shortcut is on. A game whose every version is gone closes with To remove it from this device, use Data Management › Gone from RomM, which can keep a recovery bundle. A version that is not downloaded adds nothing to its first line. The trash icon in the version list opens the same cleanup. The Quick Access panel shows no banner. Starting a version that is gone and not downloaded from Steam's own Play stays refused, and says This version is no longer available on RomM. Choose another version on its game page. — or This game is no longer available on RomM. when every version is gone.

This availability check is fresh each time the version list loads — when the game page opens, after a version switch, and when a library sync ends while the page is open, so the banner comes and goes without reopening it — and is not saved in Tender's database. Only a 404 for that exact ROM id establishes that it is gone. Timeouts, sign-in/permission errors, server errors, and malformed responses fail open: Tender does not disable a version merely because it could not get a trustworthy answer. A ROM-specific 404 also does not make the rest of Tender report that RomM is offline.

A version RomM still lists but has no file for carries the label "No file on RomM". That happens when its file has left RomM's disk — a rescan that turned Game (USA).zip into a folder Game (USA) leaves the old entry behind beside the new one — and for a physical game, which never had a file. Unlike the check above, for a version already synced this is what the last sync stored, not a fresh answer. It is dimmed and cannot be selected unless it is downloaded on this device; a downloaded one stays selectable and plays from your local copy. It offers no cleanup, because a rescan in RomM can bring a moved file back. When the shortcut is bound to such a version and it is not downloaded, the Download button reads "No file on RomM" and stays greyed out. If its file was moved or renamed, rescan the library in RomM and sync; otherwise pick another version.

The next sync moves a shortcut off a version without a file by itself only onto the same file in a new shape: a version whose file name, without its extension, is exactly the same — the folder Game (USA) for Game (USA).zip. The shortcut keeps its place in Steam, its artwork, collections and playtime. A version whose name differs at all — another language, region, revision, a hack or a patch — is never chosen for you; switch to it here if you want it. The sync preview lists such a move as one changed game, so Apply is offered for it.

Selecting a different version rebinds the game to it: the Download button now fetches that version, the panel's title and Region/Languages rows update to reflect it, and its cover refreshes to the new version. The Steam shortcut keeps its name, its place in your collections, and its playtime — all tied to the shortcut, which never changes. A single-version game shows no Version control.

Tender checks the selected version again immediately before moving the shortcut. If RomM now answers that the exact version no longer exists, the switch is refused with Could not switch version, nothing about the shortcut changes, and the picker refreshes directly so the row becomes unavailable without starting a library sync. This protection also applies after Sync now & switch and Switch anyway; the latter bypasses only the unsynced-save warning. If RomM cannot provide a definitive answer because of a timeout, connection/sign-in/server error, or malformed response, the local switch is allowed to continue. In particular, the offline Switch anyway path does not wait through the normal retry sequence. A target-specific refusal does not by itself change Tender's global online/offline status. When the refusal follows a Sync now & switch whose upload already succeeded, the Saves tab is refreshed as well, so it shows the saves that were just uploaded rather than the state from before the sync.

Switching never deletes anything. ROM files already on disk stay put, and save files are never moved or deleted by a switch. What happens depends on whether the version you're leaving is downloaded and whether its saves are synced:

  • Not downloaded, or downloaded with all saves already synced — the switch is instant. If the version you switch to is on disk it's playable right away (Play stays Play); if it isn't, the button becomes Download. With save sync turned off nothing is synced, so there is nothing to warn about either and the switch is instant as well.
  • Switching back to a version still on disk — instant and playable immediately, with no re-download.
  • Leaving a downloaded version whose saves haven't been synced to RomM — saves that were never uploaded, or that changed since their last sync — a dialog warns you first. It offers Sync now & switch (uploads the saves, then switches), Switch anyway (the saves stay on disk but stop syncing until you switch back to that version), and Cancel. When RomM is unreachable the saves can't be uploaded, so the dialog drops the sync option and offers only Switch anyway and Cancel, explaining why. The same goes for a version that is no longer available on RomM: its saves can't be uploaded there, so only Switch anyway and Cancel are offered, and the saves stay on disk.
  • Leaving a downloaded version whose saves Tender couldn't check — a save file it can't read, for instance — the same dialog warns you, and says that Tender couldn't check whether the saves have been synced rather than that they weren't.

When you leave a downloaded version with unsynced saves behind, the Saves tab shows a reminder banner ("switch back to sync them") so those saves aren't forgotten; where Tender couldn't check that version's saves, the banner says so. It does not recommend switching back to a version positively confirmed as no longer available on RomM; it skips that retained row and continues checking any later live versions.

While a download of the game is running, switching is blocked with a short message — cancel the running download first.

While a switch is being applied, the version control briefly shows a spinner and can't be reopened until the switch settles and its version list refreshes, even if a library sync finishes in the meantime — so a fast second tap can't act against the not-yet-updated list (for example, switching straight back before the list has caught up).

Cleaning up versions removed from RomM

Normal library sync never deletes retained local rows, installed files, saves, or playtime just because a game disappears from RomM. To remove that state explicitly, open Data Management › Gone from RomM. The first scan reads what this device recorded and finds groups containing rows absent from a completed platform fetch. It also lists the versions a sync already found gone from RomM: games a collection brought in that RomM answered as gone, and the games of a platform RomM no longer lists. It lists, too, a version an earlier cleanup found gone while it was checking that game's other versions. A version you hid in RomM is not gone and is not listed as gone: the scan asks RomM once which versions you hid. When RomM's answer cannot be read, such a version can be listed, and the cleanup then leaves it as it is, since RomM still has it.

The dialog opens with what a cleanup would do: RomM no longer has N versions this device still holds. Each one is checked against RomM again before anything is removed. If you clean up now:, followed by how many versions are removed, how many games are removed with their shortcut, how many downloaded files are deleted, and how many versions are kept because a shortcut is on them. A count that is zero is left out, and the counts change as you change the options. When no version would be removed it says If you clean up now: nothing is removed., still naming the versions a shortcut keeps, and the confirm button cannot be pressed.

Under that come the four options in one column, then Cancel and the confirm button, which names its count — Remove 3 versions — in red, last. Last comes the list, grouped by game. Each game is a row of its own: its name (the name it has in Steam, where it has a shortcut), its platform and how many of its versions are gone (1 of 2 versions gone, every version gone), and what happens to it as a whole — Game stays, Nothing removed, Game removed, with its shortcut, or Game removed for a game that has no Steam shortcut. Its versions follow underneath, the ones still on RomM included. Each version row shows its file name, where it is (Gone from RomM or On RomM, plus your shortcut on the version a Steam shortcut is on), and what happens to it:

  • Removed, or Removed, file deleted where its downloaded files go with it. A removed version whose Back up file switch is on says A copy of its file goes into the backup first.
  • Kept, with the reason: Switch to another version first, then this one can be removed. where a shortcut is on it (the cleanup never moves a shortcut onto another version — switch in the version list, and the gone version is then an ordinary one), or which option keeps it.
  • Stays, for a version on RomM, which the cleanup never touches; Its files stay on this device. where it is downloaded.

Downloaded is the size of the game files of that version on this device; a file is deleted only where the row says so. When more than two of a game's other versions are still on RomM, they fold into one row, N more versions, all on RomM · Show, which opens them in place; the version your shortcut is on is always shown. A version gone from RomM next to a version on RomM with the same file name is an old entry RomM replaced in a rescan: it reads Replaced on RomM by the same file under a new ID, and when removed Its save files stay; the new entry uses them. A warning about a version is a line under its row.

The modal loads the rest of the list by itself, one page after another, and the confirm button refuses until every entry has arrived, saying how many have. If a page fails to load, the modal says why and offers Retry loading, beside the confirm button, which carries on from the entries already loaded. The confirmation run checks every exact RomM id again. Only a confirmed 404 can be removed. Offline, timeout, authentication, server, malformed-response and active-download cases are skipped and reported without deleting data. A game with more than one Steam shortcut is skipped too, with This game has more than one shortcut in Steam, so it was left as it is. Delete either of them in Steam, run a sync, then scan again. A run never removes more than the dialog's counts: a version it finds still on RomM is kept, and where it finds every version of a game gone but the game holds a version the dialog did not offer for removal, it leaves the whole game as it is and says Another version of this game is gone from RomM too. Scan again to review it. A game the dialog showed as gone entirely is removed whole or not at all: where the check finds one of its versions on RomM again, the run leaves it as it is and says A version of this game is back on RomM. Scan again to review it. A game Steam lists as running — starting, running or exiting — is left as it is too, its shortcut, its files and its saves, with This game is running, so it was left as it is. Quit it and scan again to remove it. Either way the next scan lists every version the run found gone.

The confirmation options apply to this run only:

  • Remove gone versions is on. It removes the gone versions of games that still have another version on RomM, with their downloaded files, except the version the game's shortcut is on. When that kept version is the only gone one in the game, the game's result says The version this game's shortcut is on is kept while another version is on RomM; switch versions first.
  • Remove games that are gone entirely is on. It applies only to games where the server confirms every version is gone; those are removed whole, with the Steam shortcut where they have one. It ships on because removing a game RomM no longer has is what this dialog is for, and because the default-on backup keeps the shortcut's Steam details so it can be rebuilt by hand. Switch it off to limit the run to individual versions of games that still exist; the list still shows every game, and those games read Nothing removed.
  • Back up before removing is on. It seals saves, playtime and the shortcut's Steam details in a recovery bundle under recovery/bundles/ in Tender's folder before anything changes — where that folder lies is Where your data lives. Leaving it on is what makes whole-game removal reversible by hand; turning it off asks you to confirm separately, with I understand there is no recovery bundle under it, and switches every file backup off.
  • Back up downloaded game files too switches on the Back up file switch of every row whose downloaded file the run would delete; each row keeps its own switch, which shows only on such a row. Under it a line states the space this needs, Selected: X of Y · Z free — the files whose backup is on, of every file the run would delete, against the free space at the recovery folder — and selecting more than is free blocks confirmation. When the run would delete no downloaded file the option cannot be switched and says No downloaded file would be deleted, so there is nothing to back up. A file whose backup is off is deleted with its version.

The space line is a lower bound, not the complete bundle size. Use Refresh free space, under it, after freeing disk space. The backend remeasures selected ROMs plus mandatory saves, backup history, caches, and Steam files before mutation and safely fails the group if the complete bundle does not fit. A running cleanup's progress, its Stop Cleanup button and its result appear beside the confirm button, above the list, so they are a few presses away however long the list is.

Recovery always records the affected database state, local playtime and pending sessions, exact attributable current saves (including path-safe filenames retained in prior save-sync state) and backup history, and Tender's relevant caches. Fully vanished shortcut recovery also records bounded Steam details, collections/playtime fields, grid art, Steam Input files, and the controller setting. It contains no settings, credentials, tokens, whole database, BIOS, or save states. Recovery is manual only: there is no restore UI, and a new Steam shortcut cannot inherit the recorded Steam-assigned appId or playtime. Because the folder is the recovery interface, it is written to be read months later. Each bundle is named <game>_<date>_<id>, and its README.txt lists every game the bundle covers and what the run did to it, every copied file with the exact path to put it back, the playtime in hours and minutes, and the steps to restore by hand starting with sha256sum -c checksums.sha256. The recovery folder itself carries a README.txt explaining what it is.

A vanished row carries a red trash icon at its right edge in the version picker, and activating that row opens the same confirmation scoped to that one version, offered for removal because RomM has just answered that it no longer has it: a gone version other than the one you chose reads Kept, Only the version you chose is removed here., or the shortcut's reason where your shortcut is on it. Where every version of the game is gone, it offers all of them instead, so the whole game, as Data Management would. A singleton vanished binding shows the same trash action as a single button, without opening an otherwise empty picker. The vanished version itself remains non-switchable either way — selecting it can only ever start the cleanup, never bind the shortcut to it.

While a cleanup runs, the Gone from RomM pane shows a progress bar under the entry point — the game being worked on, the phase in words (checking with RomM, backing up, backup complete, removing the Steam shortcut, removing local data, done) and which game of how many it is on — and the scan button stays unavailable, so you can close the dialog and still see what is happening. The bar itself fills with the games already finished, not the one in progress, so it reaches the end only when the run does: backing up a large game takes a while and reports nothing while it copies, and a full bar sitting over it would say the run was done when it was not. Both the dialog and that pane offer Stop Cleanup. It stops at the next safe moment: a backup still being written is abandoned and that game is left completely untouched, while a game whose removal has already begun finishes and reports what it changed. Backing up a large game can take minutes, so being able to walk away from one is the difference between stopping now and waiting it out. While the run winds down the button says Stopping so a second press is never needed. Nothing already done is undone — stopping is not an undo, and the report afterwards lists exactly what was committed. If a game's backup finished before the run stopped, the report says so and names the folder, so a recovery bundle that removed nothing is never a mystery.

A version's downloaded files are deleted only inside the ROM folder RetroDECK names for the game's system, the bound an uninstall keeps. Where there is none — RetroDECK not installed, or naming no ROM folder — the run still goes ahead: it removes shortcuts, and the records of games without a download record. A game with one keeps it, its files on disk or not, so Tender still knows its files may be there, and the report names it with the uninstall's sentence. The record stays until RetroDECK is back; the next cleanup then removes it with its files. Where only the question about one system's folder failed, the games of that system are kept and reported the same way, with the sentence below, and every other system's games are removed. While RetroDECK's settings are in doubt, or Tender could not ask about its folders (below), the confirm button starts nothing and answers with the sentence that says why.

If Steam changes before local cleanup can finish, the report can show a partial group with the concrete committed action and failure message. A confirmed shortcut removal is reconciled to an unbound retained row. If Steam removal succeeded but every completion report was lost, the result is marked ambiguous and source data stays retained; the same applies when Steam removal was attempted but its absence could not be confirmed. Retrying confirms an already-absent shortcut instead of removing it twice. Save ownership warnings are shown in a focusable terminal-detail region even when the group was removed successfully, and a run-level cancellation or failure message remains visible after earlier groups committed. At most five warnings are listed for one game; when there were more, the detail — and the finished run's line on Data Management › Gone from RomM — says how many were left out. Progress is tied to the preview that you confirmed, so a matching run is still shown if only the successful start response is delayed or lost; a matching terminal event makes the modal closable immediately. Once that terminal result is assembled, delayed frames for the same run cannot replace it. Frames from an older preview are ignored. These outcomes are intentional and retryable rather than being reported as unchanged.

Region and Languages

In the panel's Game Info tab, Tender shows the Region (e.g. USA/Europe) and Languages (e.g. En, Fr) of the active version, when RomM has them. These are attributes of that one version — they change when you switch versions, and a version with no region/language detail simply omits the rows. The values refresh on every sync.

Downloading ROMs

Games appear as shortcuts in your library even before the ROM file is downloaded. Before downloading, the panel shows a Space Required cell next to the Play button so you know how much disk space the ROM needs. A download brings the files RomM files as the game's own — the files directly in the game's folder on RomM unless RomM recognises one as an update or DLC (it does for Switch games), and those in no category folder, such as a Wii U dump's — and leaves everything RomM files under another category on the server: manuals, walkthroughs, soundtracks, screenshots, cheats, patches, translations, hacks, mods, demos, prototypes, updates and DLC. To download:

  1. Open the game's detail page in the Steam Library
  2. In the Tender panel, tap Download
  3. A progress bar shows download status with bytes transferred
  4. When complete, the status changes to "Installed" and the game is ready to play

You can also abort a download in progress — tap the X that appears on the right of the download button on the game's detail page, or use Cancel in the QAM download queue. Only the partial transfer files are cleaned up — an already-installed copy of the game is never removed, so cancelling a re-download (or a download that fails partway) leaves your existing install intact. If the cancel happens to land just as the download finishes, the game is kept as Installed rather than torn down.

A game RomM has no file for — its file has left RomM's disk, or it is a physical game — cannot be downloaded. When the last sync saw that, the button reads "No file on RomM" and is greyed out. Tender also asks RomM when a download starts, so a file that left since the last sync starts nothing either, and a notification says "No file on RomM". If its file was moved or renamed, rescan the library in RomM, then sync; a physical game has no file to download. See Versions for a game with other versions.

Downloaded ROMs are stored in the folder RetroDECK's frontend, ES-DE, uses for the game's system — with RetroDECK's own settings ~/retrodeck/roms/gba/, or the same folder on the drive you moved RetroDECK to. Tender creates that system's folder if it is not there yet, as ES-DE would; it never creates the ROM folder above it.

A game's system is your emulator source's answer. Which system — and so which folder — a platform's games belong to is asked of the emulator source, with the ids RomM holds for the platform; Tender keeps no table of platforms of its own. A download, and everything about where one would land, asks RetroDECK; the game's page and the platform's page ask the source that answers, which is RetroDECK while it is switched on. Where source has no system for the platform, Download is refused and the pages say "Source has no system for platform, so Tender cannot download its games."; where the platform's only systems are switched off in source, they say "System system is switched off in source." A platform's BIOS downloads are not refused: they land in Tender's firmware store and are linked once a source has a system for the platform (Where downloads go). A game you already installed keeps the system it was downloaded under, and the buttons on its BIOS tab fetch and link the files for that system. Where several systems fit one platform — SNES is sfc, snes and snesna in RetroDECK — Tender takes the one named like the platform (snes); the platform's page names it.

A download needs RetroDECK. Download is refused, saying why, while RetroDECK is not installed (Downloads need RetroDECK, which is not installed.), while it is switched off in Settings › Emulator sources (Downloads need RetroDECK, which is switched off in Settings › Emulator sources.), or where it names no ROM folder for the game's system (RetroDECK names no ROM folder for system, so Tender cannot download this game.). Use Existing Files and Check Against Server answer the same way. A download already running when you switch RetroDECK off finishes in the folder it started in. Where the ROM folder ES-DE uses lies on a drive or SD card that is not there, Tender creates nothing and says RetroDECK's ROM folder path does not exist. If it is on an SD card or another drive, insert it.

Tender uses no folder of RetroDECK's that is only a guess. Where RetroDECK's settings file does not say where a folder is — the file is missing, cannot be read or is damaged, or it leaves that folder out — the folder Tender would use is only where RetroDECK usually puts it, not necessarily where RetroDECK keeps it, so Tender downloads nothing into it and removes nothing from it. The main panel then shows a notice about the settings file, or says which folders it does not name (RetroDECK: its settings file file does not name its BIOS folder and saves folder, so Tender uses none of them.). Each folder is judged on its own. Games go to the ROM folder ES-DE uses — the one ES-DE's own settings name, or ES-DE's own default where they name none — so they are still downloaded, uninstalled and replaced there, even with a damaged RetroDECK settings file. A BIOS folder the file does not name means Tender places and removes no BIOS link there, and leaves a BIOS file it downloaded there in older versions where it is, and a saves folder it does not name means the cleanup of versions removed from RomM does not start. A button refused this way answers with the sentence the notice shows. While RetroDECK has not been set up yet, it names no folder at all, and none of these buttons does anything. A download is also refused, with that notice's sentence, while RetroDECK's own folder, as its settings name it, does not exist (an SD card that is not inserted). Games already on your device still start, because RetroDECK starts them itself.

Tender uses none of RetroDECK's folders where it could not ask about them — finding RetroDECK at all, or asking it where its own folder, its ROM folder, its BIOS folder and its saves folder are, failed with an error. Every one of those buttons then says RetroDECK's folders could not be established, so Tender downloads into and removes from none of them., and no leftover partial download in RetroDECK's folders is removed. A download while RetroDECK is switched off says that instead, as it always does. Where only the question for one system's ROM folder failed, the buttons that need that folder — Download, Use Existing Files, Check Against Server and replacing a copy — say the same sentence for that system's games, and every other button works as usual.

Only one version of a game is kept on disk at a time. If you tap Download on a version while another version of the same game (its sibling group) is already on disk, Tender removes the old install first and then downloads the new one — no prompt. Use Existing Files (below) removes the old install the same way, just before it records the files you are using, unless those files are the old install itself. This keeps a multi-version game to a single copy on disk. Your save files are never touched by this cleanup, so switching back and re-downloading the earlier version rejoins its saves. A version another Steam shortcut of the same game is on is left untouched (The Switch-version control says when a game has one).

When the game is already on your device

A game may already be sitting exactly where a download would write — because you copied ROMs into your RetroDECK folders yourself, or because another version of the same game was downloaded to that place. Tender never writes over it. Instead, the Play button reads Use Existing Files, and pressing it opens a dialog rather than starting a download.

The dialog shows both sides — what is on your device (name, size, when it last changed) and what the server would send — and says plainly whether the two are the same size. The server's side is the size of the files a download brings, without the manuals, soundtracks and other extras that stay on the server, while Check Against Server below compares with every file the server lists; so a copy Tender downloaded and then forgot shows as missing its extras. From there you have three choices:

  • Use These Files — Tender records what is already there as the installed copy. Nothing is downloaded, nothing is renamed, and no playlist is generated: your files are taken exactly as they are. The game becomes playable immediately. One thing is removed, and only one: if another version of the same game was already on disk somewhere else, that version's files and its install record go — the same one-version-at-a-time cleanup a download does, without a prompt. Your saves are not part of it, and as long as RomM still has that version you can download it again whenever you want it back. If that other version's files are the very ones you are using — the same name in the same place — nothing is removed: the files stay exactly as they are and become this version's install.
  • Check Against Server — compares the files on your device against the checksums RomM published for that game. This reads every file, so a large game takes a few seconds to a minute; it only ever runs when you press the button. There are three possible answers: the files match, they differ (and the dialog names each file on its own line), or they cannot be confirmed — the dialog says which of those it is. For a game made of several files, each one has to be in the folder RomM says it belongs in — a file of the right name sitting somewhere else in the game folder is reported as missing, not as a match. Files RomM does not list at all are fine and are never reported.

    For a game your server keeps zipped, the check looks inside the zip, because that is what RomM's checksums describe — the zip's own bytes match nothing it publishes. So a zip you repacked yourself still matches as long as the game inside it is the same. A zip holding a single game is confirmed this way; one holding several (an arcade set, a multi-disc release, or a game packed next to a readme) usually cannot be, because your server publishes one checksum for the whole archive and nothing says which of its files that number covers. Newer RomM libraries — ones rescanned since RomM 4.9.0 — publish a checksum per file inside the archive, and those are checked one by one, with anything the server did not list ignored as usual. An archive in a format Tender cannot open, such as .7z or .rar, is never reported as differing; it simply cannot be confirmed. One case still works outside a zip: if you unpacked a single-game archive yourself, the loose file is compared against the game it came from.

  • Download Instead — replaces what is there. This deletes your files first, so it asks a second time and names what will be removed. If the file is your own dump, a translation patch or a romhack, the server cannot give it back.

Cancel does nothing at all.

Once you use the existing files, they are a normal install in every respect — including that Uninstall deletes them, exactly as it would a downloaded copy. That is the reason for the dialog: the decision is made once, up front, with the comparison in front of you.

One case the dialog cannot help with: the folder or file in the way is the wrong shape for the game — a folder where the server serves a single file, or the reverse. The dialog says so and only offers replace or cancel.

A disc game your server keeps as a single zip has two right shapes: the zip itself, and the folder unpacking it produces (see Multi-Disc and Multi-File Games). So a folder you unpacked yourself, under the name the zip unpacks into, is the same game, and the dialog offers to use it. A folder an earlier download unpacked carries its launch file's name (<Game>.m3u/, say) and is found the way any copy under another name is — see When the same game is on your device under a different name. Check Against Server compares such a folder against the files your server lists inside the zip; a server that lists none (one not rescanned since RomM 4.9.0) cannot confirm it. Only a zip your server lists as holding no disc image at its top level (or, for a zip that holds nothing but one folder, at that folder's top level) has the one shape, the zip.

When both are on your device — the zip and an unpacked folder — each gets a dialog of its own, one after the other. Use These Files in either dialog uses the copy that dialog shows. Download Instead in the first one opens the second, and nothing is deleted until you have chosen Download Instead in both: Cancel in the second dialog leaves both copies as they are, including the one you already agreed to replace.

When the same game is on your device under a different name

Your copy is rarely named the way your server names it. Example Quest - Second Journey (U).zip and Example Quest - Second Journey (USA).zip are the same game, and a download would land beside your file rather than on it — leaving you with two copies of one game.

So Tender has a look around the platform folder — when the game's page opens, and again when you press the button. It reads that folder's top level only — never inside your subfolders, and never inside a game folder — keeps whatever your emulator accepts as a ROM for that system, skips anything it already has an install record for, and compares names with the version tags removed. Example Quest - Second Journey (Rev 1) (USA).zip and Example Quest - Second Journey (U).zip both reduce to the same game.

You find out before you press anything. If your copy is there, the button reads Use Existing Files rather than Download — the same label it shows for a file sitting at the game's own location. You should never have to start the download you were trying to avoid just to be told it was unnecessary. The search runs again when you press, because the folder can change while the page is open, and the answer you act on should be the current one.

Usually it finds nothing, and the download starts as always. When it finds exactly one file, you get the same comparison dialog as above. When it finds several, you get a short list first — strongest match at the top, each row saying what it is based on: a checksum read out of a zip's index, an exact size match, or the name alone. If there were more than the list shows, it says so.

When what is there cannot be used. Two things carry this game's name and still cannot become it, and both get the same answer.

The first is the wrong shape: your server keeps each game either as a single file or as a folder, and Tender can only take over what matches. A folder with this game's name where the server keeps a single file — or a loose file where it keeps a folder, even a folder holding one file — is not something it can use.

The second is a shortcut (a symlink). Tender never adopts one, even when it points at exactly the right game file. Once a game counts as installed, Uninstall has to be able to remove it, and it will not remove a shortcut — so adopting one would leave you with a game you could never uninstall from here.

Either way you are told instead of the download simply starting: something with this name is here, it cannot be used as this game, so downloading leaves you with two copies. You can go ahead and download anyway, which lands the server's copy beside what is already there under the server's own name, or cancel and sort it out yourself. Neither choice renames, moves or deletes anything you have.

Things that are neither files, folders nor shortcuts are ignored entirely — Tender will not offer you something that only looks like a game because it happens to have the right name. The one place it does mention such a thing is when it sits at the exact spot the download would write to: there it says something is in the way without claiming to know what, because downloading over it would destroy it and you should be the one to decide that.

And if it finds nothing at all. If the page told you a copy was here and pressing turns up nothing that matches — you moved it, renamed it or deleted it in between — you get told that too, instead of a download starting on its own.

That last one is the promise the button actually makes: pressing always gets you an answer. The page and the check at press time look at the same folder but know different things about it, so the page can be right that something is there and still be wrong about whether it can be used. Whatever the two disagree about, pressing never quietly downloads past something carrying this game's name.

Choosing a file and pressing Use These Files does one thing more than before: it renames your file to the name your server uses, and moves your saves and savestates for that game along with it. That is not tidiness. Uninstalling a game deletes the ROM but never the saves — so a game left under your own name would, after an uninstall and a later download, be looking for saves under a name nothing ever wrote. Renaming now keeps everything joined up.

Download Instead on a file you picked from the list deletes that file, exactly as it does for one sitting at the game's own location — it asks a second time and names what goes first. Your saves and savestates for it are moved to the canonical name rather than left behind, so the freshly downloaded copy finds them. (For a game made of several files, and for one your server keeps as a single zip that may be unpacked, they stay where they are: the name they would need depends on what is inside the archive, which is not known until it has been downloaded.) Choosing None of These deletes nothing — you declined every candidate rather than picking one, so the download simply lands beside them.

If a name it needs is already taken — you have played both versions and both left saves — a second dialog opens before anything has been moved, lists everything that collides, and asks once for the whole set. This is the same dialog on either exit, because it is the same question:

  • Replace Them — yours take those names. The files that were there are not destroyed: each is moved into a .romm-backup folder beside it — the same safety net every other save Tender replaces goes through — so you can get one back by hand if you picked wrong. The ten most recent backups of each file are kept.
  • Keep Them — the existing files stay and your old-named ones stay where they are. Nothing is lost, but those old files are now orphaned: nothing will read them.
  • Cancel — nothing happens at all.

If a rename cannot be completed — saves on internal storage and ROMs on an SD card is the case that makes it awkward — Tender tells you exactly which files moved and which did not, by name, rather than claiming success or a plain failure.

One case is still out of reach by design: a copy of the game whose name is genuinely different, not just differently tagged. Example Quest will not be found for Example Quest - Second Journey, and it should not be — it is a different game.

Pausing and Resuming a Download

A running download can be paused and later resumed without losing the progress already transferred. On the game detail page, a resumable download shows a chevron next to the progress button — open it and choose Pause; the button freezes at its current progress and shows Paused, and the same menu then offers Resume. You can do the same from the QAM download queue, where a downloading item gets a Pause button and a paused item gets a Resume button (a paused download stays in the active list, not the finished one).

Resume is only available for single-file ROMs on a direct connection — the server has to support resuming a transfer from where it left off. Two cases can't resume, so they show only Cancel (no Pause/Resume):

  • Multi-file ROMs (games your server stores as several files — multi-disc or bin/cue titles — and sends as one ZIP it builds for the download; a game your server keeps as one zip resumes like any single file), and
  • Servers behind Cloudflare (the Cloudflare Tunnel doesn't honour partial-content requests).

In those cases, cancelling and starting over is the only option — but a fresh download is safe, as cancelling never removes an already-installed copy.

If you chose Download Instead on the already-on-your-device dialog and then paused, resuming picks up where it left off as usual: your existing file is still there until the download finishes, and the answer you gave covers it. Resume is only refused if something new has turned up at the game's location in the meantime — Tender says so rather than deleting it, since you were never shown that content. Cancel the download and start again to see the dialog for what is there now.

Multi-Disc and Multi-File Games

Some games ship as more than one file — multi-disc PS1 titles, a BIN+CUE pair. RomM downloads these as a single ZIP, which Tender extracts automatically. You just download and play; the layout is handled for you.

A disc game your server keeps as one .zip is unpacked the same way, because many emulators cannot mount a disc from inside a zip: RetroArch hands its core only one file out of the zip, so a Saturn .cue finds none of its .bin tracks, and Dolphin (Wii and GameCube) reads no zip at all. Tender looks inside the zip once it has arrived; one with a disc image at its top level — a .cue with its tracks, a Dreamcast .gdi set, a Wii or GameCube .rvz, .wbfs, .iso and the like — is unpacked, and the zip is removed afterwards. A zip that holds nothing but one folder, the way compressing a folder makes one, counts that folder's top level instead, and its content is unpacked without the folder around it. In either case the __MACOSX folder macOS Finder adds to a zip it makes is ignored and not unpacked. Anything else stays the zip it is: a cartridge ROM, an arcade romset, a floppy game with its .m3u, a DOS game whose CD image sits in a folder below that top level, a lone .bin, an .img without its .ccd. Nothing in those says the zip has to be unpacked, and the emulators for most of them read the zip as it is.

After the byte transfer finishes, the download button and the QAM queue show a brief Extracting… phase with its own progress (the percentage climbs back from 0 as the archive unpacks — a large Switch or disc image takes a moment). The extraction can't be cancelled, so the cancel/pause controls are replaced by a spinner until it's done; the game then flips to Installed as usual. A single file that is not unpacked downloads as a bare file and skips this phase entirely.

Tender gives the extracted game its own folder and names that folder after the real launch file (including the extension, e.g. Example Quest - Second Journey (USA).m3u/ or Example Quest (USA).iso/) so that ES-DE collapses it into a single game entry instead of showing a folder plus loose files.

Disc switching only applies to systems whose emulator supports it. For the disc-swapping consoles — PS1, Saturn, Sega CD, PC Engine CD, Dreamcast, GameCube, Wii, and the like — a game with two or more discs, or with one .cue disc, gets a game-named .m3u playlist so you can flip between discs in-game, and the folder is named after that playlist. A disc is any disc image Tender recognises: .cue, .gdi, .ccd, .toc and .mds for a disc made of tracks, and .chd, .iso, .cdi, .gcm, .rvz, .wbfs, .wia, .gcz, .ciso, .cso and .pbp for one in a single file. A single disc in any format but .cue gets no generated playlist. Tender decides this by reading ES-DE's own per-system supported-extension list, so a game only ever gets an .m3u on a system where ES-DE (and the emulator behind it) actually understands one.

A disc made of tracks that gets no playlist launches from the file that describes its tracks — the .cue, .gdi, .ccd, .toc or .mds — and never from one of the tracks. A disc dumped with both a .cue and a .ccd counts as one disc.

Cartridge and folder systems get no playlist. Switch (.nsp), Xbox 360 (.iso), and other systems with no disc concept collapse to their real game file instead — the folder is named after the cartridge/disc image (<Game>.nsp/, <Game>.iso/) and the game launches straight from it. RomM bundles a generic .m3u into every multi-file ZIP, but Tender ignores it on these systems rather than launching from a file the emulator can't read.

A game your server keeps as one file that is not a zip (most .chd/.iso games on disc-image systems) downloads as a bare file with no folder, so it needs no playlist either way.

Space for unpacking. An unpacked game needs room for the zip and for what comes out of it at the same time. Where your server lists what is inside a single zip — libraries rescanned since RomM 4.9.0 — the check before the download counts both for a zip it lists with a disc image at its top level (or at its one folder's, as above); otherwise it counts the zip alone. Once the download is complete, Tender checks again against the size the zip itself states, for a single zip and a multi-file download alike. When the storage is too full, the download fails with Not enough space to unpack, nothing is installed, and the downloaded zip is kept: free some space and press Download again, and Tender unpacks the zip it already has instead of downloading it again. The kept zip does not survive a restart of Tender (rebooting the Deck, say) — Tender clears unfinished downloads when it starts, so the next download fetches the game again.

Known limitation

Games installed before this version keep their old folder layout, so ES-DE may still show them as a folder plus loose files — or, on cartridge systems, as a stray .m3u. A disc game downloaded as a single zip before this version stays a zip, which an emulator that cannot mount a disc from a zip does not start. The fix only affects new downloads; re-download the game to get the single clean ES-DE entry, and an unpacked disc where the zip held one.

When a game does not start with its emulator

Not every download is something an emulator starts as it is. A few titles are distributed as an installer — most commonly a PS3 game shipped as a .pkg (plus a .rap licence file), where the game stays sealed inside the package until an emulator installs it. A disc rip can arrive as raw .bin tracks with no .cue or .gdi beside them, which is not a file the system starts from. And a file one emulator of a system does not take, another may.

Whenever a game's page opens, Tender asks whether its file starts with the emulator the game starts with. Where it does and nothing about it is in doubt, nothing is said; otherwise the answer stands under the Play button:

  • "This game has to be installed in RPCS3 Game Serial (Standalone) first." — the file is a package to install in the emulator named, before anything starts it. Play is off.
  • "track03.bin is not the file Sega Dreamcast starts from; it starts from .cdi, .chd, .cue, …" — the download holds no file the system starts. Play is off.
  • "Azahar (Standalone) does not start .zip; other emulators of this system do. Choose another emulator in the emulator menu." — Play is off until you do.
  • "RPCS3 Shortcut (Standalone) cannot start a game installed as a folder. RPCS3 Directory (Standalone) or RPCS3 ISO (Standalone) can — choose one in the emulator menu." — where the emulator's own reading of the game says why it cannot start it, the sentence says so: a folder it does not take, nothing in the folder for it to start, a file that is neither a disc image nor a game program, a disc game whose disc cannot be mounted, or an encrypted disc image without its key file. Play is off. Where Tender cannot start that emulator yet either, this reason is still the one said.
  • "Beetle PSX cannot start Game.cue: Game (Track 2).bin is missing." — for a disc game started from a .cue, .ccd, .gdi or .m3u, or a disc image, the emulator's own opening of its files was followed, and the sentence names the file it stops on: a file that is missing, a track or a cue sheet or playlist it refuses, a file that is not a disc image it opens, or a path too long for it to open — or that it starts no game from a playlist, as Beetle PCE does. After it come each file it would have gone on without, what else it is known to do, such as not reading every disc a playlist lists, and each thing that could not be established, a format among them. Play is off.
  • "Beetle Saturn can start this game, but goes on without Game (Track 2).bin: it is a track of a type it does not take." — the emulator starts the game without a file it opens, and the sentence names it and why. Genesis Plus GX says the same way that it does not read every disc a playlist lists. Play stays on.
  • "Tender cannot start emulator yet: reason." — the emulator source gives no complete command to start the game with the emulator in effect, and the reason says what is missing: how ES-DE starts it could not be read, it starts through a .desktop file, a file its command reads in could not be read, its command names no program, where its games are kept could not be established, its command is longer than can be read, which ES-DE build the source ships could not be read, what it needs from RetroDECK's start could not be read or is not known yet, or the folder it starts in could not be placed. Where the emulator's own reading of the game refuses it too, that sentence comes first. Play is off; choose another emulator in the emulator menu, whose rows say the same of each emulator.
  • "Whether emulator is installed could not be established: cause." — the emulator source gives no command for an emulator whose installation it cannot establish, so Tender cannot start it. Play is off; the emulator menu marks the same emulator "installation not established".
  • "Tender cannot start games through EmuDeck yet." — the emulator source that answers for the game is one Tender starts no game through yet, which is the case where RetroDECK is not found or switched off. Play is off, and every row of the emulator menu says the same.
  • "No emulator starts this game." — no emulator is in effect for the game. Play is off.
  • "ES-DE leaves placeholder unfilled in this command." — the command starts, with a placeholder ES-DE does not fill in left as it is written. Play stays on.
  • "Whether Game.sfc starts cannot be established: …" — the emulator source could not answer, with the reason. Play stays on.
  • "What is inside Game.zip was not read, …" — the file is an archive the emulator opens, and whether it holds a game it starts was not read. Play stays on.
  • "Whether RPCS3 Directory (Standalone) starts this game cannot be established: …" — nothing is known to stand in the way, but the answer could not follow the start all the way, and the sentence says where it stopped: the folder was not found, whether a disc image is encrypted or its key file fits could not be checked, the emulator's version decides whether it reads that kind of file, or a file a disc game opens could not be checked. Play stays on.
  • "Whether emulator reads .ext files is not established." — nobody has established which files the emulator reads. Play stays on.

Where the answer says several of these beside a start, each stands under Play as its own line, in the order the answer states them; the emulator menu shows the first and how many more there are ("+1 more").

Where Play is off, Steam's own Play on the game's shortcut is refused with the same words. While the page is still asking, Play is grey and reads Checking... beside the same spinning circle "Preparing..." shows. Where the question itself goes wrong — Tender's backend does not answer in time, or the connection to it is lost — a notification says what went wrong, and Play stays grey but can be pressed: the press asks again, and says what stands in the way if anything does. The emulator menu shows the same answer for each of its emulators: it opens at once, every emulator shows that spinning circle until the answers are in together, and then each says whether it can start the game and, where not, why. Every emulator stays choosable meanwhile.

Your download is kept. The files stay on disk where the ROM would normally live, and Uninstall works as usual — because installing the package by hand in the emulator is exactly what you would do next. See the troubleshooting entry for how.

A PS3 game downloaded as a folder is named <game>.ps3, the name ES-DE expects for a PS3 game kept as a folder. A PS3 folder downloaded before this version is renamed so once, when Tender next starts; a folder whose new name is already taken keeps its name. Where the download holds the game one folder deeper — <game>.ps3 holding just one folder, with PS3_GAME inside that — the inner folder becomes <game>.ps3 itself; a download already on the device is fixed so once, when Tender next starts. Where anything else lies beside that inner folder, nothing is moved: with RPCS3 Shortcut, RetroDECK's default, the game's page says it cannot start a game installed as a folder, and with RPCS3 Directory or RPCS3 ISO that it finds nothing to start in the folder.

Picking a Disc for Multi-Disc Games

When an installed game has more than one disc, a small disc dropdown appears on the game detail page, right next to the Play button. Its face shows the disc that will launch (a 💿 with the disc's label), so it doubles as a badge — single-disc games show no dropdown at all.

To pick a disc:

  1. Open the game's detail page in the Steam Library.
  2. Tap the 💿 disc dropdown next to Play.
  3. Choose the disc (or "All discs" — see below). The Play button now launches that disc.

That's the whole flow — there's no separate save step. The next time Steam launches the game, it launches the disc you picked.

What "All discs" means

On the disc-swapping consoles (PS1, Saturn, Sega CD, PC Engine CD, Dreamcast, GameCube, Wii, and the like) a multi-disc game gets a generated .m3u playlist (see Multi-Disc and Multi-File Games for the disc formats), so the dropdown's default entry is All discs (m3u) — it launches through the playlist and lets you flip between discs inside the emulator, no relaunch needed. You can still pick a single disc from the same dropdown to jump straight to it.

On systems with no playlist concept, there's no in-emulator disc switching, so the dropdown defaults to Disc 1 and switching discs means picking a different disc here and relaunching. Either way, the picker works the same.

The dropdown only ever lists discs your emulator can actually launch — it reads ES-DE's own per-system file-type list, so you'll never be offered a disc image the emulator can't open.

Your pick sticks

The selected disc is saved, and it survives the things that would otherwise reset it:

  • A library re-sync never changes your pick.
  • Uninstalling and re-downloading the game restores it — the choice is remembered against the game, not the downloaded files, so a reinstall re-applies it automatically.
  • A RetroDECK path migration (moving your RetroDECK home) keeps it too.

If the specific disc you pinned ever goes missing (for example a partial re-download), the game quietly falls back to the default disc rather than failing to launch.

Where it applies

The disc you pick applies to the Steam shortcut Tender created for the game, whenever Steam launches it — in game mode (the couch UI) or desktop mode. It does not touch any shortcut Tender did not create, such as a hand-made Xenia or standalone-emulator shortcut you set up yourself: those carry their own launch command, which Tender doesn't manage.

RetroDECK is the supported launcher

The disc picker launches through RetroDECK, the supported launcher today. PS1 and the other .m3u disc-swapping systems are fully covered; systems that need an external standalone emulator to run at all are a separate roadmap item.

Uninstalling ROMs

To remove a downloaded ROM file:

  1. Open the game's detail page
  2. Tap Uninstall in the Tender panel
  3. The ROM file is deleted from disk
  4. The shortcut remains in your library so you can re-download later

This only removes the ROM file — the Steam shortcut, artwork, and metadata are preserved.

Tender deletes only inside the ROM folder RetroDECK names for the game's system, whether RetroDECK is switched on or off — where that folder is a link to another drive, on that drive — so an uninstall needs RetroDECK: without it, Uninstall says Uninstalling needs RetroDECK, which is not installed., and where RetroDECK names no ROM folder, RetroDECK names no ROM folder, so Tender cannot uninstall this game. The same holds for Uninstall all ROM files and for replacing a copy already on your device. Where finding RetroDECK, or asking it about its folders, failed with an error, they say RetroDECK's folders could not be established, so Tender downloads into and removes from none of them. Where only the question about one system's folder failed, that sentence stops the uninstall of that system's games alone; Uninstall all ROM files removes every other system's. A file recorded outside its system's folder is never deleted.

This applies to files you told Tender to use from your device as well: once they are the installed copy, Uninstall deletes them exactly as it would a downloaded one. Tender has one kind of install and does not remember where the files came from — which is why the choice is put to you at the moment you make it, not afterwards.

The button switches to Uninstalling… as soon as you tap it, and a game made of many files counts them down as they go. Pressing it again while that is on screen does nothing — the removal already running is the one that finishes, and Tender refuses a second one for the same game rather than letting two run against the same folder. That holds across both entry points: Uninstall all ROM files on Data Management claims every game it is about to remove, so it is refused while a single uninstall is running, and a single uninstall is refused while the bulk run holds that game. If Tender's backend restarts or the Deck shuts down mid-removal, the next uninstall of that game picks up where the interrupted one stopped.

When a Downloaded Game's File Is Missing

If a game's downloaded file is no longer where Tender put it, its detail page shows Download again where Play would be, with File missing under it. The arrow beside the button opens a menu titled File missing: it names the full path the file was downloaded to and offers Download again and Forget this download. Tender cannot tell a deleted file from a moved ROM folder or an unmounted drive, so it forgets nothing on its own — not at start-up, and not when you open the page. If the drive or folder comes back, the game is playable again as it was.

  • Download again is an ordinary download of the game, to where every download goes. Until it completes, the game stays as it was; a cancelled or failed download leaves it showing File missing again.
  • Forget this download asks first, naming the game and the path its file was downloaded to. Confirmed, it is an uninstall without the deletion: the game becomes not downloaded, as after an uninstall, and no file is touched. It is refused while the file or folder is in fact there: the drive or folder came back, and the page offers Play again at once.

If RomM has no file for the game either, there is nothing to download again: the button reads "No file on RomM" and is greyed out, and so is Download again in the menu. File missing and the path stay, as they are about your device. Forget this download still works and clears the record of the download; the game then shows the greyed-out "No file on RomM" button of a game that is not downloaded.

While the file is missing, the RomM Actions menu behind the gamepad icon at the right of the play row offers no Uninstall — there is nothing to delete — and neither the disc picker nor the CPU button (the emulator picker) is shown.

Removing a Platform from Steam

A whole platform's shortcuts and save files are removed from its own pane in Library › Platforms — pick the platform on the left, and the two actions sit last in the pane, in red.

  • Remove N shortcuts takes that platform's games out of your Steam library and cleans up the Steam collection that held them. Downloaded ROM files and save files are left where they are, and the games come back on the next sync while the platform's toggle stays on. It is unavailable while a library sync is running.
  • Delete N save files deletes every local save file for that platform's ROMs. Saves already uploaded to your RomM server are not affected; local changes that have not been uploaded are lost. Sync your saves first.

Both buttons carry the number they would remove, and both are always there: a button greys out when there is nothing left for it to do rather than disappearing, so a platform whose shortcuts you have already removed still offers its save files.

Each asks you to confirm before anything happens. Deleting that platform's BIOS files is one group up in the same pane — see Deleting BIOS files.

Refreshing Artwork and Metadata

Tap Refresh Metadata in the game detail panel to show the game's metadata (description, developer, genres, release date) again as Tender stored it at the last sync. It asks your RomM server nothing and changes no artwork; metadata that changed on the server arrives with the next sync.

Opening a game's page sets its hero banner, logo, wide grid and icon only where the game has none yet — an icon counts as none while it is the empty spot a newly added game shows, or Tender's logo — so an image you set yourself stays. A game with no cover gets Tender's pick from SteamGridDB's covers the same way — usually a game RomM has no cover for, also one whose RomM cover could not be downloaded or was removed through Steam — and the first sync that brings RomM's cover for it puts RomM's cover in its place. Switching the game to another version sets the hero banner, logo, wide grid and icon to that version's, over an image you set yourself too (whether Steam then shows Tender's image over one you set from a JPEG is not yet known), and the cover to the one you chose for that version, else RomM's, else — RomM has none, or it cannot be reached — Tender's pick from SteamGridDB; it uses the images Tender already downloaded for that version and downloads only the ones it has not. An image whose new download fails keeps the one Tender had.

Once a week at most, opening a game's page also checks the images Tender picked from SteamGridDB: where SteamGridDB now ranks another image first, Tender replaces it and says so once, for example "Updated the hero and the logo from SteamGridDB" — Steam redraws the page when an image changes. An image you chose and one set in Steam are never replaced. When SteamGridDB cannot be reached, the next visit checks again; and an image Tender downloaded but had not yet handed to Steam when the page was closed or redrawn is handed over at the next visit, without waiting for the week.

The ARTWORK tab

The ARTWORK tab on a game's page lists the game's five images — cover, wide grid, hero banner, logo and icon — each with the image Steam shows for it, where it comes from and its state:

  • Automatic — Tender picks the image: the cover is RomM's cover, kept current when RomM changes it, and Tender's pick from SteamGridDB's covers until RomM's arrives ("SteamGridDB — Tender's pick, until RomM's cover arrives"); the other four are Tender's pick from SteamGridDB, kept current when SteamGridDB ranks another image first.
  • Chosen by you — an image you chose in the tab. It stays across syncs, later visits to the page and Refresh Artwork, and comes back when you switch back to that version of the game, until you choose another, set the slot back to automatic or change the game's SteamGridDB game.
  • Set in Steam — an image you set through Steam's own "Set custom artwork", or an icon you set in the shortcut's properties. Neither the background job, opening the page nor Refresh Artwork replaces it; a choice in the tab does, after asking (below), and so does switching the game to another version.

The cover the GAME INFO tab shows is the same one: the cover Steam shows, or RomM's cover where Steam's own copy does not load.

Pressing a slot opens a picker with SteamGridDB's images for it, in SteamGridDB's order, each labelled with its size. The first tile is Automatic; the image the slot shows is marked CURRENT — the Automatic tile while the slot is on automatic, the chosen image while you chose one — and the one Tender's own rule takes today Tender's pick today. The grid shows 14 images after Automatic; its last tile, Load more, adds 16 more and moves you to the first new one. Select a tile and press Use this image, which stays below the grid. An image SteamGridDB gives no size for shows none. The previews load straight from SteamGridDB; only the image you choose is downloaded in full. The cover can be chosen from SteamGridDB's portrait covers. Its picker marks Tender's pick today only while the cover is on automatic and shows Tender's pick from SteamGridDB or no cover at all; over RomM's cover or one you chose it marks none. Setting the cover back to Automatic reloads RomM's cover at once, or, where RomM has none, sets Tender's pick from SteamGridDB. Choosing images needs a SteamGridDB API key; without one the tab says so. The cover's slot opens either way: without a key or a SteamGridDB game its picker offers Automatic — RomM cover, or Tender's pick until it arrives alone and says why no SteamGridDB covers are offered, so RomM's cover is always one press away. If Steam does not take an image you chose, the tab says "Steam did not take the image" and the slot stays as it was before: the image you had chosen there earlier, if any, is chosen again.

Over an image set in Steam the picker asks once more: "This image was set through Steam. Replacing it removes it; Tender keeps no copy." Replace has Steam remove its image and sets yours — whether Steam's call removes its file in every case is still to be confirmed on the device — and Cancel keeps it. The icon asks nothing: choosing another one points the shortcut at Tender's file, and your own icon file stays where it is.

At the top the tab names the SteamGridDB game the artwork comes from. RomM is the source of truth: whenever your server has a SteamGridDB id for a game, the tab shows it "(from RomM)" and offers no change — a wrong match is corrected in RomM, as Game not found on SteamGridDB describes. Without one, the tab says that RomM has no SteamGridDB entry and offers Choose game…, which searches SteamGridDB by name; the game you choose is remembered and shown "(chosen by you)" with Change game…. Changing the game sets every image you chose for the game back to automatic — the picker says so before you change it — and an image set in Steam stays. Once RomM has an id of its own for a game you chose, RomM's id wins the same way: the next visit to the game's page sets the images you chose back to automatic under RomM's game, says "RomM now maps this game to …; your chosen images went back to automatic." once, and leaves an image set in Steam alone. Until the game has a SteamGridDB game, the slots that need one say so.

Refresh Artwork

Refresh Artwork asks your RomM server which SteamGridDB game the ROM maps to, so an id RomM gained since the last sync is used, then reloads RomM's cover and downloads Tender's pick anew for every slot on automatic, so the image SteamGridDB ranks first today reaches the game, and a damaged or deleted image is repaired. Where RomM has no cover, it sets Tender's pick from SteamGridDB's covers instead; where SteamGridDB has none either, it says "RomM has no cover artwork". An image you chose and one set in Steam stay, the cover included. While the game has no SteamGridDB game it is greyed out with "Choose a SteamGridDB game in the ARTWORK tab first."; it opens no game picker, and the next sync brings RomM's cover and id once RomM has them.

One exception after you update Tender: for a game Tender knows on SteamGridDB, an icon, wide grid, logo or hero banner Tender downloaded before the update is downloaded once more the first time the game is switched to another version, or the first time the game gets that image because it has none yet. If you had chosen the game and RomM has an id for it now, that image then becomes the one of the game RomM's id points to. An image the game already shows stays until then.

When SteamGridDB refuses your API key, Refresh Artwork says "SteamGridDB refused the API key — check it in Settings"; when SteamGridDB is rate-limiting requests, it says that instead. Opening a game's page stays quiet about both. When the RomM cover could not be updated, the same message says why, after the SteamGridDB result.

The full set of per-game actions — refresh artwork, refresh metadata, sync save files, delete local saves, and uninstall — is available from the RomM Actions menu in the game detail panel. BIOS files are downloaded from the game's BIOS tab (BIOS Status on the Game Detail Page).

RomM Actions menu with Refresh Artwork, Refresh Metadata, Sync Save Files, Delete Local Saves, and Uninstall entries

Download Queue

The Downloads page (accessible from the main QAM panel) shows all active and completed downloads:

  • Active downloads with progress bars, plus pause/resume and cancel buttons (pause/resume only where the download is resumable — see Pausing and Resuming a Download)
  • Each entry names the game and its platform: the platform's name in RomM's platform list, never a custom name set on it in RomM, and its short name (such as n64) only where Tender has not learned the name yet
  • Completed, failed, and cancelled downloads with status details
  • Clear Completed button to clean up the list

At most two ROMs download at the same time. If you start more, the extra ones wait their turn and begin automatically as soon as a slot frees up. Before a download starts, Tender checks there's enough free disk space for everything already in flight, so a batch of downloads won't overcommit the SD card.

Launching Games

Select any installed game in the Steam Library and press Play. At every start Tender asks which command starts the game and hands it to the shortcut for that one start:

  1. The emulator is the one in effect for the game — the per-game core you picked, else the platform's, else the default
  2. The command is the one RetroDECK's ES-DE runs for that emulator, started directly rather than through RetroDECK's own start script
  3. For a multi-disc game, the disc you picked is the one that launches

Because of that, a game starts only while Tender is running: with Tender stopped, Play on a RomM shortcut starts nothing. If the ROM is not downloaded, pressing Play won't launch a game either — download it first from the game's detail panel. Where Tender cannot start the emulator in effect yet, the game page and the emulator menu say why, and Play says it too (Play says "Couldn't start the game").

If RetroDECK is switched off in Settings › Emulator sources, pressing Play won't launch a game either — on the game's detail panel or in Steam's own library — and a notification says why; switch RetroDECK on again to play (see Emulator sources).

Stopping a running game

While a game is running, its detail panel shows Resume instead of Play, with a small chevron beside it. The chevron's menu holds one action: Stop Game. It asks you to confirm first, because any progress since your last in-game save may be lost.

In Gaming Mode, Steam can end these games itself: Exit Game in Steam's overlay ends a RetroDECK game the way it ends any other. Tender's Stop Game is the way where that overlay does not reach — in Desktop Mode it does not open over a RetroDECK game at all (see The Steam button opens only Steam's main menu in Desktop Mode) — and whenever Steam's Exit Game ends nothing on your setup. Tender's Stop Game finds the emulator itself and ends it.

It ends only the game you pressed it for. More than one game can run at a time, in the same emulator too, and Steam starts each game's shortcut on its own, so Tender ends what Steam started for this game's shortcut and leaves everything else alone. If nothing runs under that shortcut, Stop Game ends nothing, and the panel shows Play again.

It asks the emulator to quit politely once, waits a few seconds for it to shut down (which is when emulators write their save file), and only forces it if it is still running after that. The polite request is deliberately never repeated: most emulators treat a second one as "quit right now" and skip writing the save entirely, which would destroy the file the first request was in the middle of saving. If you want to be certain your progress is kept, save in-game first, then stop.

Because of that, a spinner takes the chevron's place and the menu item greys out and reads Stopping… beside one while it works. Those few seconds of nothing visibly happening are normal — the emulator is writing your save. Pressing Stop again would be the very thing that discards it, so Tender ignores a second press until the first one finishes.


Previous: Syncing Your Library | Next: BIOS Management