v0.3 Free and open source

Two screens.
One cozy library.

Tandem is a game frontend for Android handhelds, made for dual-screen devices like the AYN Thor. Browse on the top screen, see the art and details on the bottom, and pick a game up right where you left it.

  • Android 11 and newer
  • GPL-3.0, no ads
  • No accounts or tracking
Tandem's home screen on the AYN Thor's top screen: a grid of system icons with the Nintendo 3DS highlighted, and a dock of Tandem apps along the bottom.
The bottom screen at the same moment: the highlighted system with its game count and play time, beside a big system icon.
How it works

Made for the way you hold it

A dual-screen handheld has two places to look. Tandem uses both, and works just as well on one.

Browse on top

Systems, folders, collections and your Android apps, moved through with the D-pad or stick. Touch works too.

Look below

Whatever is highlighted shows on the bottom screen: box art, logo, description, play time, and whether it is still running.

Press A to play

Tandem starts the game in the right emulator. Press Home later, pick it again, and you are back where you were.

Features

Small app, thoughtful details

Every screenshot here was taken on an AYN Thor running Tandem.

Make it yours

Your home screen, your way

Pick a layout and a look, then fine-tune it. Changes apply instantly, with a soft cross-fade.

  • 24 built-in themes, from calm pastels and OLED black to animated, game-flavoured ones. All their art is original.
  • Five home layouts: shelves, an icon grid (1 to 5 rows, or sized to fit), carousel, list and console.
  • Theme packs from your ROMs folder, including community packs, with each part (colours, wallpaper, icons) switchable on its own.
  • Folders that make sense: subfolders and genres show up with a fan of the covers inside.
Themes and layouts →
The Nintendo 3DS system opened as a popup: genre folders such as Action and Adventure, Platformers and Puzzle, each with a fan of box art.
A system, with its folders and their covers.
Two screens

The second screen earns its place

The bottom screen follows the highlight above. When nothing is highlighted, it shows Pip, the clock and your widgets.

  • Four bottom-screen modes: details, art and info, animated art, or a big clock. Video snaps play if you have them.
  • Swap the screens with X, with a little animation that flows across the hinge.
  • While you play, the bottom screen can show the game's art and your session time, or a companion with a clock and quick controls, or stay out of the way for emulators that use it.
  • 15 widgets: storage, battery, play stats, up next, achievements and more, on either screen.
Setting up the AYN Thor →
Bottom screen with Super Mario 3D Land's artwork and logo, and A Play, Y Options, X Swap hints.
Bottom screen, game highlighted.
Bottom screen during play: Pokémon Emerald's art and logo, with the session time and total play time.
And while you play.
Resume

Back where you left off, not at the title screen

Press Home mid-game and browse a little. Tandem keeps a Resume card for the game that is still open, and picking it again brings the emulator straight back instead of starting over.

  • Works with Shizuku. Android doesn't let apps see what else is running, so Tandem asks Shizuku. Without it, games simply start fresh.
  • A game switcher (hold Select) lists every running game, to resume or close.
  • Home-screen mode: make Tandem your launcher, with an apps drawer and a dock, and the Home button always lands on your game.
How resume works →
Home screen with a Continue card for Pokémon Emerald Version, running in RetroArch, with A Resume and Y Close.
The Resume card, after pressing Home mid-game.
Artwork and details

A library that looks finished

Box art, logos, hero images, screenshots, video snaps and descriptions, from the sources you choose, saved next to your games where other frontends can use them too.

  • Six sources: LaunchBox and libretro thumbnails need no account; ScreenScraper, IGDB and SteamGridDB use your own keys; HowLongToBeat adds time to beat.
  • A setup guide explains each source and tests it before you start.
  • Runs in the background, with progress on the bottom screen, and pauses while you play.
  • Pick art per game, edit details by hand, and lock what you changed.
What scraping sends, and to whom →
Settings, Art and accounts: Scrape library, Set up sources (2 of 6 on), Artwork to download, and the sources in order, ScreenScraper and LaunchBox.
Settings › Art & accounts.
Controller first

Every screen works from the pad

A to open or play, B to go back, Y for options on anything. Every screen remembers what you had highlighted.

  • Search without a keyboard: an on-screen keyboard made for the D-pad finds games, apps and settings as you type.
  • Start opens a side panel for search, sorting, editing the grid and settings; hold Start for brightness, volume and Wi-Fi.
  • Select picks a random game you have never played.
  • Bluetooth controllers: make a pad's Home button work everywhere, and swap A/B and X/Y per controller for Nintendo-style pads.
Controller reference →
Search with zeld typed on a D-pad keyboard, showing 13 matching Zelda games.
Search: four letters, thirteen Zeldas.
And also

The rest of the toolbox

Play stats and a journal

Play time, sessions, streaks and a 30-day chart, a journal for notes on each session, and CSV export.

RetroAchievements

Sign in to see your profile, recent unlocks and each game's progress. Games are matched by a hash made on the device.

Music and sounds

Two packs of original background music, Meadow Tales and Pastel Arcade, five UI sound packs, or your own tracks.

Organized your way

Folders, collections, favourites and Up next. Tuck away anything you'd rather not see.

A screensaver

Your covers drift past a big clock while Pip naps. Also available as Android's own screensaver.

Bring your library

Reads ES-DE gamelist.xml files and other launchers' backups: titles, descriptions, favorites, play time and art.

Open data

Systems and emulators live in an editable platforms.json. Your library and settings are plain JSON, with backup and restore.

Built-in apps

A screenshot gallery, a file browser, an Up next list and a controller tester sit on the grid next to your systems.

Quick on a handheld

A baseline profile for fast starts, work kept off the frame, and background jobs that pause the moment a game starts.

Systems

Over a hundred systems, ready to go

Tandem finds the emulators you have installed and offers every one that fits. A few of the 104 systems it knows:

  • Nintendo 3DSAzahar
  • Nintendo DSmelonDS, DraStic, RetroArch
  • Nintendo SwitchEden
  • Wii UCemu
  • Wii and GameCubeDolphin
  • Nintendo 64Mupen64Plus FZ, RetroArch
  • Game Boy, Color, AdvanceRetroArch (mGBA, Gambatte, SameBoy…)
  • NES and SNESRetroArch (Mesen, Snes9x, bsnes…)
  • PlayStationDuckStation, RetroArch
  • PlayStation 2NetherSX2, ARMSX2
  • PSPPPSSPP
  • PS VitaVita3K
  • DreamcastFlycast, Redream
  • SaturnYaba Sanshiro, RetroArch
  • Genesis, Master System, Game GearRetroArch (Genesis Plus GX…)
  • Arcade and Neo GeoFinalBurn Neo, MAME
  • Windows gamesGameNative, Winlator
  • DOS and ScummVMDOSBox Pure, ScummVM
  • PICO-8 and TIC-80RetroArch, PICO-8
  • Android gamesYour installed apps

Missing one? Systems and emulators are defined in platforms.json; copy it to ROMs/tandem/ and add yours, no update needed. The reference explains every field.

Privacy

Your library is nobody's business

What you play, and for how long, stays on your handheld. There is no account to make and nothing phoning home. You can check: the code is right there.

Read the privacy page
  • No analytics, ads or accountsNo telemetry, no crash reports, no update checks. Free software under the GPL.
  • Online only when you askThe internet is used for scraping you start and RetroAchievements you sign in to. Each source can be switched off, and keys stay on the device.
  • Works offlineYour library, play time and settings need no connection at all.
  • Data you can take with youPlain JSON, and artwork saved next to your games in the layout other frontends read.
Install

Get Tandem

One APK and a couple of minutes of setup. The getting started guide walks through every step.

GitHub Releases

Download the signed APK from the latest release and open it on your handheld.

Latest release

Obtainium

Get updates straight from GitHub: in Obtainium, add github.com/ZahakJ/tandem.

Get Obtainium

F-Droid Later

The store listing is ready in the repository. Until Tandem is accepted, use one of the other two.

  1. Put your games in ROMs/, one folder per system (ROMs/n3ds, ROMs/gba…).
  2. Open Tandem and allow All files access.
  3. Pick the ROMs folder when asked, so emulators can open your games.
  4. Optional: run Shizuku for resume, and scrape your art.
Android 11+Any handheld; two screens are a bonus.
Your gamesIn internal storage. Tandem includes none.
Your emulatorsInstalled separately; Tandem finds them.
ShizukuOptional, for resuming running games.
FAQ

Questions, answered

Does Tandem come with games, BIOS files or emulators?

No. Tandem shows the games you already have and starts them in emulators you install yourself. It never downloads games or system files.

Which devices does it run on?

Any Android 11 or newer device. It is designed around the AYN Thor's two screens and uses a second display on any device that has one. On a single screen, everything still works.

Why does it ask for "All files access"?

To read your ROMs folder and its artwork quickly, and to save artwork you scrape next to your games. It also asks you to pick the ROMs folder once, so it can hand games to emulators that only open shared files.

Is Shizuku required?

No. Shizuku only powers resume and the game switcher: seeing whether a game is still open in its emulator. Without it, every game starts fresh. More on resume.

Does it go online?

Only for what you start: scraping artwork and details, and RetroAchievements if you sign in. No analytics, no ads, no update checks. The privacy page lists exactly what each service receives.

My emulator isn't listed. Can I add it?

Yes. Copy platforms.json to ROMs/tandem/platforms.json and add an entry; no rebuild needed. The reference explains every field, and requests are welcome on GitHub.

I already use another frontend. Do I lose my data?

No. Tandem reads ES-DE gamelists and other launchers' backups and brings over titles, descriptions, genres, favorites, play time and artwork. It doesn't change their files, so your old frontend keeps working. Importing.

Can it be my home screen?

Yes, if you like: Tandem can be Android's Home app, with an apps drawer and a dock, so the Home button always brings you back to your games.

Is it really free?

Yes: GPL-3.0, no ads, no paid tier, no account. Bug reports, emulator configs, docs and code are all welcome.

Is Tandem made by AYN?

No. Tandem is an independent community project, not affiliated with AYN or any emulator project.

Ready when you are

Grab the APK, point Tandem at your ROMs, and say hi to Pip.