EMULIA

Your games.
Your tablet.
Nothing else.

Emulia plays the 8-bit cartridge files you already own. It brings no games with it, and it has no way to go and find any.

Coming to Google Play

Free, with every feature included. Android 10 and up.

Emulia's shelf on a tablet: cards for four games, each showing the screen it was last on, with a Resume link and the time played.

It opens where you left off.

Emulia opens on a shelf, not a file browser. Every game you have added sits there showing the screen you last saw, ordered by what you played most recently. One tap resumes it — the app saved your place when you put the tablet down.

  • Pick the box art you want for each game, or let the last screen stand in
  • Playtime counted per game, so you can see where the afternoon went
  • Put a game away without deleting it, and bring it back later
  • Screenshots go to your device gallery, where you would look for them
The shelf laid out as cards.

The app has both. So does this — try the switch.

Hold Undo and the game runs backwards.

One control handles both directions. Drag it away from the centre and time moves — further out is faster — or tap to jump back five seconds, or fifteen. The shoulder buttons on a controller drive the same thing without looking.

  • Ten save slots per game, each with a thumbnail and a timestamp
  • Saves itself when you pause, switch away, or the battery gets low
  • Battery saves kept per game, exactly as the cartridge would have
  • Two controller ports over USB or Bluetooth, plus on-screen controls you can hide
A game playing with the notice “Rewinding 3×” at the top, and the time control at the bottom of the screen showing 3× with jump-back buttons for 5 and 15 seconds.

The shape and the look are yours.

Three shapes: the 4:3 a television showed, the 8:7 the hardware actually produced, or pixel-perfect. Ten looks on top of that, from plain scanlines through an old photograph to a cel-shaded cartoon. Colours are a separate choice again, and you can load a .pal file of your own.

Settings previews all of it with the same shader the game uses, so what you see while choosing is what you get while playing.

Emulia's picture settings: a live preview above rows of choices for Shape, Look and Colours, and a switch for trimming overscan.

The permission list is empty.

Not “we don’t collect much”. Emulia’s manifest asks Android for no permissions at all — including the one an app needs before it can open a network connection. Android enforces that, rather than this page promising it, and you can check it yourself in the permission list on the Play page or in your device settings.

<manifest package="com.bsteinfeld.emulia">
    <uses-feature android:glEsVersion="0x00030000" />
    <uses-feature android:name="android.hardware.usb.host"
                  android:required="false" />
    <!-- and no uses-permission line, anywhere -->
</manifest>

Adding a game goes through Android's own file picker, which hands over the one file you chose and nothing else. A wired controller uses the USB feature above, for controller input only. Nothing you do in Emulia leaves the device, because there is nowhere for it to go.

  • No ads, and no place a future ad could load from
  • No account, no sign-in, nothing to create
  • No analytics, no crash reporting, no telemetry
  • No paid tier — every feature described here is in the free app
  • No games included, and no way to download any

Read the privacy policy — it is short, because there is very little to say.

Written from nothing, and checked against the hardware.

The emulator is Rust, written from scratch rather than wrapped around someone else's. Every CPU instruction with cycle-accurate memory access, all five sound channels through the console's nonlinear mixer, and NTSC, PAL or Dendy timing picked up from the file itself.

Accuracy
Passes the real nestest CPU trace and a 39-ROM CPU, APU, PPU and MMC3 regression set on every build.
Sound
48 kHz through AAudio's low-latency path, with a queue that adapts and a rate that tracks your screen. Around 12–14 ms, shown in Settings.
Cartridges
iNES and NES 2.0 files, mappers 0, 1, 2, 3, 4, 7, 9, 10, 11, 66, 69 and 71, with battery-backed saves and repair for headers that lie.
Built and signed by CI
Every release is compiled, tested, signed and published by a machine, from a tagged commit.

Emulia is young, and honest about it: performance and latency on real hardware have not been measured yet, and some of the rarer cartridge boards have been unit-tested but not yet run against a commercial game.

Bring your own cartridges.

Emulia is free and complete — there is no upgrade to buy, and nothing held back. It arrives on Google Play shortly.

Coming to Google Play