Repository navigation
Android
Amiberry runs on Android phones, tablets, handhelds, Android TV boxes and Chromebooks. The Android version uses the same emulation core as the desktop builds. It adds a touch-friendly launcher app, touch controls and gamepad shortcuts. The full Amiberry GUI is still available when you need it.
Important
Availability: Closed Testing, Ko-fi members only
Amiberry for Android is in Closed Testing on Google Play right now. Only Ko-fi backers can get it. Members with an active Ko-fi membership receive a 100% discount code that gives them access to the test builds. The same code still works when the final version is released, so members get the full version at no extra cost.
Plans for the rollout:
- Closed Testing (now): Ko-fi members only.
- Open Testing: planned after the next Amiberry release.
- Public release on Google Play some time after that, as a paid app. The price counts as a donation to the project. Only people without a membership pay it.
The Google Play listing only works for accounts that have access to the current testing track.
| Android version | Android 10 (API 29) or newer |
| CPU | 64-bit ARM (arm64-v8a) or x86_64 (Chromebooks, PC-based devices, emulators). 32-bit ARM devices are not supported. |
| JIT | Available. ARM64 is the main target. |
| Kickstart ROM | Required. No ROMs or Amiga software come with the app. See Kickstart ROMs (BIOS). |
The same app runs on Android TV (it shows up in the TV launcher) and on ChromeOS.
- Install Amiberry from Google Play (see the availability note above).
- Start it. The first time you launch it, and after each update, Amiberry unpacks its data files behind the splash screen. This takes a moment.
- Import a Kickstart ROM: open Files → ROMs, tap + (Import), then choose Import files or Import folder.
- Go to Home, choose a Launch Mode (WHDLoad, Disk, CD or Recent), pick a model and your media, then tap Start.
If Amiberry can't recognize any Kickstart ROM, you can't start a Quick Start launch. Home lists the ROMs it found, how many it recognized, and which common models (A500, A600, A1200, CD32) still lack a ROM.
Amiberry keeps all of its files in its app storage folder:
/storage/emulated/0/Android/data/com.blitterstudio.amiberry/files/
The Files screen shows this path at the top, with a Copy path button. You can copy files into these folders with a file manager or over USB instead of using the import buttons:
| Folder | Contents |
|---|---|
ROMs |
Kickstart ROMs (.rom, .bin, .a500, .a1200, …) |
Floppies |
Floppy images (.adf, .adz, .dms, .ipf, .zip, .gz) |
HardDrives |
Hard drive images (.hdf, .hdi, .vhd) |
CDROMs |
CD images (.iso, .cue, .chd, .nrg, .mds) |
LHA |
WHDLoad game archives (.lha, .lzx, .lzh) |
RP9 |
RP9 packages |
Configurations |
.uae configuration files |
SaveStates, Screenshots, InputRecordings, NVRAM, Videos
|
Created while you use the emulator |
Visuals/Shaders, Visuals/Themes, Visuals/Bezels
|
Custom shaders, GUI themes and bezels |
Controllers |
Controller mapping files |
WHDBoot |
WHDLoad booter support files. Kickstarts in WHDBoot/save-data/Kickstarts are also detected. |
Each file list also scans the storage root, so files you drop straight into files/ still show up.
Android doesn't use portable mode, and amiberry.conf is kept in a separate app-private settings folder. See Amiberry Directories.
Amiberry doesn't ask for storage permission on startup. On Android 11 and newer, a Limited file access banner appears on Home and Files until you grant All Files Access:
- Without it, Amiberry works only with its own app storage folder. The import buttons still work, because they use the Android file picker and copy the chosen files into the app folder.
- With it, configurations and the full Amiberry GUI can use ROM and disk image files anywhere on your device storage.
Tap Grant Access to open the Android permission screen.
- Import files copies one or more picked files into the folder for the current category.
- Import folder scans a folder, including its subfolders, and imports every supported file. Afterwards you see how many files were imported and how many were unsupported or failed. Files with the same name are renamed instead of overwritten.
-
Open with / Share: you can open supported files with Amiberry from a file manager or another app.
-
.uaefiles are imported intoConfigurationsand loaded. -
.rp9packages are imported and launched. - Floppy images start on an A500, CD images on a CD32, and
.lhaarchives through the WHDLoad booter. - ROMs and hard drive images are only imported.
-
Android's backup and device-transfer feature saves only your Configurations and Controllers folders and the launcher preferences. ROMs, disk images and other media are not backed up, so keep your own copies.
The launcher has four main screens: Home, Settings, Files and Configs. On phones they're in a bottom bar, and on large screens in a side rail. About opens from the info button on Home.
-
Launch Mode selects what to start:
- Disk: model, plus floppy images for DF0 and DF1.
- CD: a CD image (CD32/CDTV).
-
WHDLoad: an
.lhagame, configured automatically by the WHDLoad booter. - Recent: your most recent launches. Tap one to start it again.
- Amiga Model lists only the models you have a recognized Kickstart ROM for: A500, A500+, A600, A1000, A2000, A1200, A3000, A4000, CD32 and CDTV.
- Current Settings sums up the model, CPU, chipset, memory, media and controls this launch will use.
- Start launches the emulator.
For WHDLoad games, a per-game .uae file wins over the WHDLoad database. Your Android control settings (on-screen controls, keyboard toggle button) are kept unless that per-game file sets them.
The Settings screen edits a configuration and has seven tabs:
| Tab | Options |
|---|---|
| CPU | Model Preset, CPU Model (68000–68060), Fastest Possible, More Compatible, 24-bit Addressing, FPU, JIT Cache |
| Chipset | OCS / ECS Agnus / ECS Denise / Full ECS / AGA, Immediate Blitter, Cycle-Exact, NTSC, Collision Level |
| Memory | Chip RAM, Slow RAM (Trapdoor), Fast RAM (Zorro II), Z3 Fast RAM (Zorro III, needs 32-bit addressing) |
| Display | Resolution, Correct Aspect Ratio, Auto-Crop, Integer Scaling, Native Shader, plus the launcher's App Theme and Material You colors |
| Sound | Sound Output, Sample Rate, Stereo Mode |
| Input | Port 0 / Port 1 devices, On-Screen Joystick, On-Screen Keyboard Button, Include Numeric Keypad, On-Screen Keyboard Toggle Button, Left Analog Stick as Mouse |
| Storage | Kickstart ROM, floppy drives DF0–DF3 (with drive type), CD image, hard drive images (read-only and boot priority) |
- Presets applies a group of settings in one tap: Compatibility, Balanced, Performance, Pixel Perfect or Touch Controls.
- Combinations that can't work are fixed for you, and a Settings adjusted note lists what changed. For example, AGA needs a 68020 or newer CPU, JIT needs a 68020 or newer CPU and 32-bit addressing, and Cycle-Exact turns off JIT.
-
Native Shader offers the built-in shaders (
none,tv,pc,lite,1084) plus any.glslpor.glslfiles inVisuals/Shaders. It applies to native Amiga screens only, not to RTG screens. - Save with the Save icon or with Save As…. Review Changes shows what you changed before you save.
- The ⋮ menu has Advanced, which opens the full Amiberry GUI (see below).
Files has one tab per category: ROMs, WHDLoad, Floppies, Hard Drives and CDs. Each tab lists the matching files, has + to import more, and lets you delete files. A search box appears once a list has more than a few entries.
Configs lists the .uae files in Configurations, newest first. You can search and filter the list with All, Described and Recent. Each configuration has these actions:
- Launch: start it with your current Android control settings.
- Edit Config: open it in Settings.
- Edit in Advanced mode (ImGui): open it in the full Amiberry GUI.
- Share, Duplicate and Delete.
About shows the version, links to the source code, this wiki, Discord and the privacy policy, and a Support Info block. Copy support info copies the app version, Android version, CPU ABI, device model, whether All Files Access is granted, and the storage path. Paste this into bug reports.
The Android launcher covers the common settings. Everything else lives in the same full Amiberry GUI the desktop builds use. You can open it three ways:
- Settings → ⋮ → Advanced
- Configs → a configuration → Edit in Advanced mode (ImGui)
- During emulation, using the shortcuts described in Opening the GUI during emulation
The Amiberry GUI pages in this wiki apply to it, with these Android differences:
- Amiberry always runs fullscreen, so the windowed-mode options don't apply.
- Portable mode and the built-in updater aren't available. Updates come through Google Play.
- The GUI is sized at about 70% of the automatic DPI scale by default. Change it with GUI scale (50–200%) in Global Settings.
- When you tap a text field, the Android on-screen keyboard opens.
To return to the launcher, choose Quit in the GUI. The emulator closes and the launcher appears again.
With a touchscreen, the default setup puts the mouse on port 0 and the On-Screen Joystick on port 1:
- On-screen joystick (bottom left): an arcade-style stick. Drag the knob to move it.
- Fire buttons (bottom right): two buttons for fire 1 and fire 2. Multi-touch works, so you can move and fire at the same time.
- Keyboard button: the green KB button next to the fire buttons shows or hides the on-screen keyboard. Hide it with On-Screen Keyboard Button on the Input tab.
Touches outside the on-screen controls work like a laptop trackpad. The Amiga pointer moves relative to your finger, not to the spot you touch:
| Gesture | Action |
|---|---|
| Drag one finger | Move the mouse pointer |
| Tap | Left click |
| Tap, then touch again quickly and drag (or hold) | Hold the left button and drag |
| Two-finger tap | Right click |
| Hold two fingers still, then drag | Hold the right button and drag |
| Swipe two fingers down | Open the Amiberry GUI |
The on-screen controls need a touchscreen. On devices without one, Amiberry turns them off automatically.
- The Android Back button or gesture. If the on-screen keyboard is open, Back closes it first.
- A two-finger swipe down on the screen.
- Start or Guide on a game controller. If you choose Start as the on-screen keyboard toggle button, Start toggles the keyboard instead and Guide still opens the GUI.
- F12 on a physical keyboard. To use another key, change Open GUI in Miscellaneous.
The on-screen keyboard is a full Amiga keyboard. Include Numeric Keypad adds the keypad and makes the keys smaller so everything fits.
- Open it with the KB touch button or the controller toggle button. By default the toggle is Left stick (L3). Change it with On-Screen Keyboard Toggle Button on the Input tab. Choose None to give that button back to the game.
- With a controller, the D-pad or left stick moves between keys, South (A / Cross) presses the selected key, and East (B / Circle) closes the keyboard.
- Back always closes the keyboard.
Bluetooth and USB controllers are supported. Assign them to a port as Joystick 0 or Joystick 1 on the Input tab. For detailed mapping, see Setting up Input Controllers and the Input Mapping Guide.
Left Analog Stick as Mouse lets one controller handle both mouse and joystick:
- The left stick moves the Amiga mouse pointer.
- L1 and R1 are the left and right mouse buttons.
- The D-pad and face buttons stay on the port 1 joystick.
This option only appears when a controller is on port 1 and the mouse is on port 0.
-
USB and Bluetooth mice work.
- Android sends absolute mouse positions, so the pointer stops when the host cursor reaches the screen edge. Move the mouse back to continue.
- Physical keyboards pass key positions straight through, so set the matching keymap in AmigaOS for non-US layouts (for example, German QWERTZ).
-
On Chromebooks and other desktop-style devices:
- Amiberry opens as a landscape, tablet-sized window.
- A light tap on the touchpad doesn't send a stray Enter key to the Amiga.
- On ARM64 devices, JIT gives the biggest speed boost for 68020+ configurations. It doesn't work with cycle-exact or 24-bit addressing.
- On big.LITTLE devices, Amiberry keeps the emulation on the fast CPU cores. It uses ADPF on Android 12+ and core pinning otherwise. See Troubleshooting and the
use_adpfoption in amiberry.conf options. - If performance is poor, start with the Compatibility or Balanced preset, use a simpler shader, and avoid high RTG resolutions.
- Sending Amiberry to the background pauses emulation and sound. Both resume when you return to it.
These features are not available on Android:
| Feature | Notes |
|---|---|
| CD32 Full Motion Video (MPEG) cartridge | MPEG decoder not included on Android |
| MP3 decoding | MP3 audio tracks in CUE images and the ZZ9000 MP3/MHI decoders are unavailable |
| Genlock video and camera input |
USE_VIDEOGRAB and FFmpeg are off |
uaenet (pcap/TAP) networking |
Not supported. The built-in SLIRP stack and bsdsocket.library are still included. |
| MIDI | No host MIDI backend |
| PowerPC accelerator boards / QEMU-UAE PPC plugin | Not supported |
| D-Bus, IPC socket, GPIO LEDs | Desktop/Linux only |
| Portable mode, built-in updater, windowed mode | Not applicable |
When the display reports only its native resolution, Amiberry adds extra RTG (Picasso96) screen modes up to 2560×1440. These modes have an ANDROID suffix in the mode list.
- "Emulator stopped unexpectedly": the launcher shows this when the emulator crashed during the last session. Tap Copy Diagnostics and include the copied text in your bug report, together with About → Copy support info.
- "Setup failed" at startup means the data files couldn't be unpacked, usually because the device is low on storage. Free some space and tap Retry.
- A model is missing from Quick Start: Amiberry didn't recognize the Kickstart ROM for it. Check the ROM summary on Home, and see Kickstart ROMs (BIOS).
-
Logs: connect the device with USB debugging enabled and run
adb logcat | grep -iE 'amiberry|SDL'. For JIT and CPU-performance logs, see Troubleshooting. - Report bugs on GitHub Issues or on Discord.
- Home
- Quick Start
- Android
- Troubleshooting
- Frequently Asked Questions
- Paths and Files
- Kickstart ROMs (BIOS)
- Amiberry Directories
- Compile from Source
- Using Amiberry with RetroPie
- How to Enable Integer Scaling
- Start & Settings
- Hardware
- Media & Storage
- Display & Audio
- Input & Control
- System & Runtime
- Input Mapping Guide
- Setting up Input Controllers
- Setting up Keyboard Controllers
- Custom Events
- RetroArch Commands
- Mouse/Joystick Autoswitching