-
-
Notifications
You must be signed in to change notification settings - Fork 112
Amiberry directories
Amiberry used to behave mostly like a portable app, expecting everything under the directory it was started from. Modern builds still support that mode, but the default directory layout now follows the host platform more closely.
This page documents the directory logic that is actually implemented in the codebase.
Environment-variable support is platform-specific:
| Platform | Supported overrides |
|---|---|
| Linux |
AMIBERRY_DATA_DIR, AMIBERRY_HOME_DIR, AMIBERRY_CONFIG_DIR, AMIBERRY_PLUGINS_DIR
|
| macOS | AMIBERRY_HOME_DIR |
| Windows | AMIBERRY_HOME_DIR |
With the exception of Linux AMIBERRY_DATA_DIR, these non-empty overrides are treated as explicit targets and created later if needed. AMIBERRY_DATA_DIR still needs to point to an existing bundled data directory.
Amiberry also supports an optional base_content_path entry inside amiberry.conf. That setting is loaded after amiberry.conf is found and lets the Paths panel derive the managed content/config directories from a single root without relying on environment variables.
If you prefer the older portable behavior, create an empty file named amiberry.portable next to the executable. When Amiberry sees that marker on startup, it switches to portable mode and resolves the bootstrap settings directory plus all managed writable paths relative to the executable directory, not the current working directory.
Official Windows portable ZIP releases already include this marker, so no manual setup is required after extracting them. The executable directory must also be writable if you want to toggle portable mode from the GUI or keep portable settings and content there.
Portable mode is currently supported on Windows and Linux-style desktop builds. macOS and Android ignore the marker and continue using their normal per-user locations.
The bootstrap location of amiberry.conf and amiberry.ini depends on the platform:
-
Linux:
$XDG_CONFIG_HOME/amiberry/amiberry.conf, which defaults to~/.config/amiberry/amiberry.conf. In Flatpak builds this typically becomes~/.var/app/com.blitterstudio.amiberry/config/amiberry/amiberry.conf. -
macOS:
~/Library/Application Support/Amiberry/amiberry.conf -
Windows:
%LOCALAPPDATA%\\Amiberry\\amiberry.conf -
Android: the app-private settings directory returned by
SDL_GetPrefPath("BlitterStudio", "Amiberry") -
Portable mode:
<portable-root>/Settings/amiberry.conf
If the file exists, Amiberry loads the paths stored inside it instead of using only the platform defaults.
The optional base_content_path entry inside amiberry.conf can then redirect the managed content/config directories from one root, but it does not relocate amiberry.conf or amiberry.ini themselves.
This is the startup logic Amiberry uses for its directory roots.
The DATA directory is where the bundled data tree lives.
-
Linux:
AMIBERRY_DATA_DIRis honored if it points to an existing directory. Otherwise Amiberry checks the install prefix (for example/usr/share/amiberry/data) and then an executable-relativedatadirectory for local builds or unpacked trees. - macOS: the DATA directory is inside the application bundle.
- Windows: the DATA directory is expected relative to the executable.
The HOME directory is the root used for user content such as floppies, hard drives, ROMs, savestates, screenshots, and the logfile.
macOS
- If
AMIBERRY_HOME_DIRis set and non-empty, that becomes HOME. - Otherwise HOME defaults to
~/Documents/Amiberry.
Linux
- If
AMIBERRY_HOME_DIRis set and non-empty, that becomes HOME. - Otherwise HOME defaults to
$HOME/Amiberry. - If that still cannot be resolved, Amiberry falls back to executable-directory behavior.
Windows
- If
AMIBERRY_HOME_DIRis set and non-empty, that becomes HOME. - Otherwise HOME defaults to
%USERPROFILE%\\Amiberry.
The CONFIG directory is where Amiberry stores .uae configuration files.
macOS
-
$AMIBERRY_HOME_DIR/ConfigurationsifAMIBERRY_HOME_DIRis set - Otherwise
~/Documents/Amiberry/Configurations
Linux
-
AMIBERRY_CONFIG_DIRif it is set - Otherwise
$HOME/Amiberry/conf - Fallback: executable directory +
/conf
Windows
-
AMIBERRY_HOME_DIR\\ConfigurationsifAMIBERRY_HOME_DIRis set - Otherwise
%USERPROFILE%\\Amiberry\\Configurations - Portable mode:
<portable-root>\\conf
The PLUGINS directory is where optional shared-library plugins such as capsimage or FloppyBridge live.
-
Linux:
AMIBERRY_PLUGINS_DIRis honored if it is set and non-empty. Otherwise Amiberry tries the install libdir, then$HOME/Amiberry/plugins, then the executable directory +/plugins. -
macOS: plugins are bundled inside the application at
Resources/plugins/. -
Windows: plugins are expected under the executable directory's
pluginsfolder.
The Paths panel can store an optional base_content_path inside amiberry.conf.
- This is intended for the "move my Amiberry content tree somewhere else" use case, especially on macOS where double-click app launches do not naturally inherit shell environment variables.
- When set, Amiberry derives the standard managed content/config directories from that root using platform-specific folder names.
- The derived layout uses a separate visual-assets subtree, so
Themes,Shaders, andBezelsno longer live inside the machine-configuration directory. - In the GUI, the field is staged until you click
Apply. - If the chosen root is missing managed folders, Amiberry shows which ones are missing and lets you decide whether to create them before applying the change.
- Editing an individual path afterwards turns that entry into an explicit override.
- Clearing the setting removes the bulk root and restores only the entries that were still following it to the normal platform defaults, while preserving explicit per-path overrides.
- This does not move the bootstrap location of
amiberry.conforamiberry.ini; it only changes the managed directories recorded insideamiberry.conf.
macOS / Windows
ConfigurationsVisuals/ThemesVisuals/ShadersVisuals/BezelsControllersWhdbootLhaFloppiesHarddrivesCDROMsRomsRP9SavestatesScreenshotsRipperInputrecordingsNvramVideos
Linux
confvisuals/themesvisuals/shadersvisuals/bezelscontrollerswhdbootlhafloppiesharddrivescdromsromsrp9savestatesscreenshotsripperinputrecordingsnvramvideos
When base_content_path is not set, Linux keeps a split default layout:
These are created under $XDG_DATA_HOME/amiberry (or ~/.local/share/amiberry if that variable is unset):
controllerswhdbootripperinputrecordingsnvramvideos
These are created under the configured HOME directory:
visualslhafloppiesharddrivescdromsromsrp9savestatesscreenshotsamiberry.log
On macOS, the managed content directories are created under ~/Documents/Amiberry by default, using the title-cased folder names from the base_content_path list above (Roms, Floppies, Harddrives, Visuals, and so on). If AMIBERRY_HOME_DIR is set, the same naming is used under that directory instead.
The bootstrap settings files (amiberry.conf and amiberry.ini) are stored separately under ~/Library/Application Support/Amiberry.
If Amiberry imports bootstrap settings or visual assets from an older layout, it keeps the old files in place for safety first. A later launch can then offer to move those leftover legacy files and folders to Trash after the new layout has already been used successfully.
This keeps Amiberry aligned with the host platform while still allowing an explicit executable-relative portable mode, environment overrides, and a single-root Paths-panel override when needed.
- Home
- Quick Start
- Troubleshooting
- Frequently Asked Questions
- Paths and Files
- Kickstart ROMs (BIOS)
- Amiberry Directories
- Compile from Source
- Using Amiberry with RetroPie
- How to Enable Integer Scaling
- About
- Paths
- Quickstart
- Configurations
- CPU and FPU
- Chipset
- Adv. Chipset
- ROM
- RAM
- Floppy Drives
- Hard Drives/CD
- Expansions
- RTG Board
- Hardware Info
- Display
- Filter
- Sound
- Input
- I/O Ports
- Custom Controls
- Disk Swapper
- Miscellaneous
- Priority
- Savestates
- Virtual Keyboard
- WHDLoad
- Input Mapping Guide
- Setting up Input Controllers
- Setting up Keyboard Controllers
- Custom Events
- RetroArch Commands
- Mouse/Joystick Autoswitching