Skip to content

Built in Emulation

nendo edited this page Jun 16, 2026 · 14 revisions

Built-in Emulation

Argosy bundles its own emulator powered by the Libretro core specification, so many systems play without installing a separate emulator app. It is a fork of LibretroDroid tightly integrated with Argosy's save sync, RetroAchievements, cheats, and netplay.

Built-in emulation is separate from RetroArch. Settings, saves, and hotkeys for built-in do not transfer to RetroArch and vice versa. External emulators (including RetroArch) are covered in Emulator Compatibility; the pages linked below are only about the built-in experience.

Feature pages

  • Save States -- quick slot, numbered slots, sync behavior
  • Rewind -- defaults, per-platform behavior, restrictions
  • Hotkeys -- default bindings, configuration, Player 1 limit
  • Video -- shaders, filters, aspect ratio, rotation, audio toggles
  • Custom Shader Chain -- the chain editor and shader catalog
  • Cheats -- CheatDB, variants, memory scanner
  • BIOS -- RomM firmware sync and distribution

Core Downloads

Cores are not bundled with the APK. Argosy downloads the appropriate core from the Libretro buildbot the first time you need it:

https://buildbot.libretro.com/nightly/android/latest/<abi>/

If you launch a game for a platform that has no core installed yet, Argosy downloads the default core for that platform automatically before the game starts. You can also opt into bulk core downloads during first-run setup, or fetch cores ahead of time from Settings > Built-in Emulator > Core Management.

In Core Management, each core shows:

  • Install status (installed vs. available)
  • Whether an update is available
  • Netplay support

From here you can download a core on demand (e.g. to swap from FCEUmm to Nestopia for NES) or update an installed core to the latest nightly.

If a launch fails because the device is offline and the core hasn't been downloaded yet, Argosy surfaces the error and lets you retry once you're back online.

If a core crashes, Argosy notices on the next launch and offers to roll back to a previously installed version of that core. It keeps the recent core builds it has downloaded so a known-good binary is available to restore, and verifies a core's integrity when checking for updates.

For some cores, Argosy also downloads supporting assets the first time you launch the platform. PPSSPP (PSP) pulls a small bundle of fonts and helper files so in-game menu text renders. These happen automatically and silently — you'll just notice the first PSP launch takes a little longer.

ARM Architecture (ARMv7 vs ARMv8)

Argosy is built for modern 64-bit Android devices. ARMv7 (32-bit) support is experimental and currently unreliable -- see the note below before installing the 32-bit APK.

ARMv8 (arm64-v8a) -- supported

This is the default for every modern emulation handheld and the only ABI Argosy is actively tested against. Grab argosy-vX.Y.Z-arm64.apk from the release page, or the universal APK if you are unsure.

When Argosy needs a core, it downloads the matching ARMv8 build from the Libretro buildbot:

https://buildbot.libretro.com/nightly/android/latest/arm64-v8a/

ARMv7 (armeabi-v7a) -- experimental

A 32-bit APK (argosy-vX.Y.Z-arm32.apk) is published alongside each release. Core availability is broader than the wiki previously suggested: every Libretro core Argosy ships works for ARMv7 on the upstream buildbot except Dolphin (GameCube / Wii), which is 64-bit only. Launching a GameCube or Wii game on a 32-bit device will fail with "Core is not published for armeabi-v7a."

Caveats that keep this experimental:

  • Performance on 32-bit hardware is the main risk. Cores like PPSSPP, Parallel N64, Beetle PSX HW, Beetle Saturn, melonDS, and Flycast build and download fine for ARMv7, but target systems that may not run at full speed on older 32-bit devices.
  • Recent testing on a real 32-bit device was unsuccessful for reasons beyond core availability. Until a 32-bit device is re-validated end to end, treat ARMv7 as experimental.
  • When a core download does fail on a 32-bit device, the error now includes the ABI (e.g. "Core is not published for armeabi-v7a") so you can distinguish an ABI mismatch from a network failure.

If you are on a 32-bit device and want to help test, install the arm32 APK and report issues at GitHub Issues. For now, 64-bit devices are the supported path.

Architecture override (advanced)

Settings > Built-in Emulator > Architecture lets you force Argosy to request 32-bit or 64-bit cores regardless of the auto-detected ABI. This is intended for development and testing; changing it deletes already-downloaded cores and forces a re-download. Most users should leave it on the auto-detected value.

Per-Platform Cores

Most systems have a default core chosen for broad compatibility. Some platforms offer alternatives -- for example, NES has FCEUmm (default) and Nestopia, SNES has Snes9x (default) and bsnes, N64 has Mupen64Plus-Next in GLES3 and GLES2 variants plus Parallel N64.

To switch cores:

  • For a whole platform -- Settings > Platforms > [Platform] > Core. Affects every game on that platform that doesn't have a per-game override.
  • For a single game -- open the game's details, press Start for the context menu, and choose a different core. Overrides the platform default for that game only.

If you switch to a core that isn't installed yet, Argosy downloads it on the next launch.

Some systems have no alternative in the built-in emulator (e.g. GameCube uses Dolphin, PSP uses PPSSPP). In those cases the platform setting only exposes the one option.

Core Options

Some cores expose their own settings -- renderer, screen layout, BIOS behavior, and the like. Argosy ships curated options for the cores that support them, saved per core and persisted across launches. You can reach them in three places:

  • Settings > Built-in Emulator > Core Options -- pick a platform and core, then adjust its options.
  • Settings > Platforms > [Platform] > Core Options -- the same options for that platform's core.
  • In-game -- open the in-game settings overlay and switch to the Core Options tab to change the running core's options without leaving the game.

Most options apply immediately; a few only take effect after the game is relaunched, and those say so in their description. The in-game tab is greyed out for cores that have no configurable options.

Play! (PS2) and Retro-8 (PICO-8) shipped as built-in options in v1.3.0. Like every newly added libretro core, both are considered unstable until they've gone through real-device testing — expect rough edges, and report crashes or rendering issues at GitHub Issues.

Platform Restrictions

Not every feature is available on every system -- cheats are disabled on dynamic-memory platforms, rewind is disabled on heavy platforms, netplay is only supported for some cores. See the relevant feature pages above and Platform Limitations for the cross-emulator view.

Clone this wiki locally