AppImage 需要 glibc 2.35 或更新版本(Ubuntu 22.04 及以上);Windows ARM64 在 VMware/Parallels/Hyper-V 虚拟机中需手动放入 Mesa3D 的 opengl32.dll,否则 GL 初始化失败;修改 src/gencpu.cpp 或 src/jit/x86_64/gencomp.cpp 后需手动重新生成输出,CMake 不会自动执行。
curl -fsSL https://packages.amiberry.com/install.sh | sudo sh
sudo apt install amiberry仅支持 64 位主机(ARM64、x86-64、RISC-V、LoongArch64),不支持 32 位构建;README 未说明显存要求。Windows ARM64 虚拟机需额外放置 Mesa3D 的 opengl32.dll 才能启动 OpenGL。
基于 WinUAE 核心的多平台 Amiga 模拟器,让 64 位主机流畅运行 Amiga 游戏与软件
面向树莓派和 ARM 平台优化的 Amiga 模拟器,让老式 Amiga 游戏和软件能在现代硬件上流畅运行。
核心能力
- 为 ARM64 和 x86-64 提供自定义 JIT 编译加速
- 支持 WHDLoad 标题并自动完成配置
- 支持 CRT 边框叠加与 GLSL 自定义着色器
- 提供 Dear ImGui 图形界面,可用鼠标或手柄操作
- 支持拖放软盘镜像、硬盘文件和配置文件
容易踩的坑
- v8.5.0最新正式版2026-10-27 · 2026-10-27 22:15 UTC
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy
Highlights
Licensing and third-party code
-
WHDLoad, JST and the Kickstart RTB files are no longer bundled. "Update WHDBooter files" and
--download-whdbootnow get them from their authors' sites:- WHDLoad comes from whdload.de on every update, so new WHDLoad releases arrive.
- The SKick RTB files are fetched once, only while one is missing, from Aminet
util/boot/skick346.lha. That archive is checked against a fixed SHA-256 before it is unpacked. - JST comes from Aminet
game/patch/jst.lha, only when "Use JST instead of WHDLoad" is on. kick31034.A1000.RTBis still bundled.- A downloaded file replaces the installed one only after it matches the size and CRC in its LhA header. Only one download runs at a time, and none starts while a machine is running unpaused.
(#2540)
-
If WHDLoad is missing when a WHDLoad game boots, Amiberry shows a message that says where to get it. Nothing is downloaded automatically. The Paths panel and the
--download-whdboothelp name the sources (#2540) -
In older releases, "Update WHDBooter files" now gets "not found" for the removed files. The installed copies are kept, and the update reports a partial failure (#2540, #2549)
-
WHDBooter's quit-on-exit now uses
host-quitfrom Host-Tools 2.8 (GPL-3) instead of AmiQuit, a third-party binary with no source or licence. host-quit also works on Kickstart 1.3 and the 68000 (#2549, #2550) -
LhA archives are now read with Lhasa 0.6.0 (ISC) instead of LHa for UNIX, whose licence is not free. The rare
-lh2-and-lh3-compression methods are no longer decoded (#2558) -
Each LhA member's CRC is now checked, so a corrupt member fails instead of returning bad data. Truncated or corrupt archives fail cleanly; a corrupt
-lh5-/-lh6-/-lh7-archive used to crash the old decoder. LhA's0xffpath separators are read as/(#2540, #2558) -
PearPC was removed. It was never compiled into any build, so choosing it left the machine with no PPC at all. PPC emulation uses the QEMU plugin only. A configuration with
ppc_implementation=pearpcloads asautowithout a warning and is saved asauto(#2554) -
Licence clean-up:
- The UAE portability headers and
vm.cppwere rewritten under GPL-3.0-or-later, with no change in behaviour (#2552). - Third-party licence notices were corrected: HRTMon 2.37 is GPL-2.0-or-later, the Warp decruncher is LGPL-2.1-or-later, mos6502 is MIT (its source files now carry the notice) and iff.library is public domain.
gamecontrollerdb.txtcarries its zlib notice, unlzx credits all its authors, and Amiberry's copy of mt32emu is distributed under GPL-3.0-or-later, as section 3 of the LGPL 2.1 allows (#2557).
- The UAE portability headers and
-
Each release now includes
amiberry-<tag>-third-party-sources.tar.xz. It holds the exact source of the GPL and LGPL libraries bundled in the macOS release (such as FFmpeg, x264, x265, LAME, mpg123, libmpeg2 and libserialport), checked against Homebrew's checksums, and is listed inSHA256SUMS(#2556) -
The Amiga libraries some WHDLoad games need are no longer inside
boot-data.zip, because their licences don't allow bundling them. "Update WHDBooter files" downloads them from their Aminet packages while one is missing; every file is checked against its CRC, and the packages that never change are also checked against a fixed SHA-256 (MMULib, which its author updates in place, isn't). They go into the WHDBoot folder'sLibsdrawer, which the booter mounts asDH4:and adds toLIBS:, soLIBS:Compressorsworks too. Existing files are never overwritten (#2559):- the XPK libraries:
xpkmaster.libraryand 16 compressors, fromutil/pack/xpk_User; - MMULib's
68040.library, now with themmu.libraryand680x0.libraryit needs, which the old zip lacked, fromutil/libs/MMULib; explode.library, fromutil/libs/explode-7;- OctaMED's `medplayer.library
- the XPK libraries:
-
- v8.4.22026-10-19 · 2026-10-19 16:50 UTC
查看更新说明
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy
Highlights
Linux AppImage
- Each release now includes AppImages for x86_64 and aarch64, with
.zsyncfiles for AppImage update tools. They need glibc 2.35 or newer (Ubuntu 22.04 or later) and run without installation. See the AppImage guide for running without FUSE and for keeping data beside the image (#2478, #2479, fixes #2476) - Data, controller, ROM, WHDBoot and plugin paths are now found relative to the running binary, so AppImages and custom-prefix installs use their own resources (#2478)
- The Linux update check offers the AppImage that matches your CPU. It only notifies; it does not update the image itself (#2478)
Multithreaded CPU
- Enabling Multi-threaded CPU no longer slows emulation down. With JIT, one AArch64 68060 benchmark went from 13 to 173, against 140 without threading (#2469)
- Ctrl+Amiga+Amiga no longer crashes or halts the CPU when Multi-threaded CPU is on (#2470)
- Holding the reset keys keeps the CPU in reset even when they are pressed during a RESET instruction, including on a Blizzard PPC board (#2472, #2473)
WHDBooter
- When several database entries share a filename, the one with the archive's exact SHA1 is used (#2441)
- Upgrading Amiberry now replaces an outdated
whdload_db.jsonwith the bundled one and keeps a backup. Before, only "Update WHDBooter files" did this (#2441) cpu_exact: falseandcpu_compatible: falsein the game database now turn cycle-exact off. Games such as Bloodwych, Shinobi and Risky Woods ran fully cycle-exact before (#2445)- AGA and CD32 games get the 68040 their entry asks for instead of always running on a 68020 (#2445)
- Entries that ask for a 68030 now get one (#2446, fixes BlitterStudio/amiberry-game-db#20)
- The log shows the archive SHA1 for every lookup, which helps when asking for a game to be added to the database (#2442)
- Bundled game database updated to 11206 entries
Fixes
- Display panel: ticking FPS adj. enables the rate slider and the chosen rate reaches the emulator. The Refresh (frameskip) slider is gone; it has had no effect since the WinUAE 6 core (#2456, fixes #2453)
- Reboot now applies changes to Chipset Extra and to the CDTV-CR, KB Reset Warning, CIA TOD bug, 1M Chip and RTC Adj. options. Before, the machine restarted with a mix of the old and new model (#2461, fixes #1068, #2459)
- Unticking "Create .uaem metadata files" takes effect while emulation runs (#2444)
- With Magic Mouse set to Host Only, slow mouse movement no longer leaves the host cursor's hotspot a pixel or two away from the Amiga pointer (#2457, fixes #2452)
- The Quickstart and Floppy Drives panels say when a drive change needs a reset of the emulated Amiga (#2451)
- The Full collision level is no longer labelled "rarely needed". It is the default and costs no more than the other levels (#2454, fixes #2449)
- Extracting
-lz5-LHA archives no longer writes through a null pointer (#2475) - A 100% joy-mouse dead zone no longer crashes analog mouse, lightpen and paddle input (#2440)
- The analog mouse speed hotkeys step to the next speed from any value, and centering a second joystick hat no longer releases a direction held on the first (#2440)
Controller sticks as mouse
- A stick mapped as a mouse moves the pointer at a steady speed while held, and "Analog joy-mouse speed" now controls it. The default speed drops from 100 to 25; configs that already store a value keep it (#2440)
WinUAE updates
- Merged WinUAE up to 6100b19 (#2462, #2480)
- NTSC long/short field detection is fixed (#2480)
- New "Always stretch PAL as NTSC" option in the Display panel's Aspect and scaling group, off by default (#2480)
- 15-bit lores modes on PCem RTG boards no longer drop every other pixel pair; vertical blank line tracking and the AGA NTSC line-length fix follow upstream corrections (#2462)
- Each release now includes AppImages for x86_64 and aarch64, with
- v8.4.12026-10-14 · 2026-10-14 06:10 UTC
查看更新说明
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy
Highlights
Libretro
- RetroArch save states load through the same restore and reset path as the GUI. Loading a state no longer crashes the emulated Amiga or the core, which usually happened on the second load (#2422, fixes #2419)
- Save states auto-loaded by RetroArch before the core boots are applied instead of freezing the boot screen (#2430, fixes #2429)
- A loaded state is applied before more frames run, so no audio from the discarded timeline plays ahead of it (#2422)
- Joystick As Mouse moves the pointer with the left stick again, and the stick can still steer the on-screen keyboard (#2421, fixes #2418)
Fixes
- Restored directory-filesystem paths were cut to seven characters, so open files and locks on mounted directories failed to restore. This affected standalone restores too (#2422)
- Hardfile geometry and other strings were truncated when saving a configuration (",1023/16/63" written as ",1023/1") (#2422)
- The Host Only cursor kept only its upper half when the pointer moved into the right half of a native screen (#2426, fixes #2424)
- With relative paths enabled, ROM and cartridge paths keep their ROM folder (
./roms/…), and unset RTC and flash files are no longer saved as a folder (#2438, fixes #2432)
WinUAE updates
- Merged WinUAE up to 6100b18, including the A2024 and NTSC artifact fixes (#2428, #2439)
- MMU: writes to cache-inhibited pages are no longer treated as copyback on 68040/68060, and the 68030 data cache honours page-level cache inhibit (#2433)
- Filesystem: renaming a file that is open for reading no longer leaves its keys pointing at freed memory (#2433)
- CIA TOD timing fixes in the normal and fast sync paths (#2428, #2431)
- A2024, Graffiti and genlock handle programmed horizontal blanking and extreme overscan correctly (#2439)
New
- Optional GDB remote server, ported from WinUAE. It is off by default; enable it with
debugging_features=gdbserverandgdb_port(default 2345). It listens on 127.0.0.1 and supports registers, memory, single step, breakpoints, watchpoints and the memory map. It is not available with the threaded CPU. Seedocs/gdb-debugging.md(#2434)
Platforms and packaging
- FreeBSD 14 and 15 packages (amd64 and aarch64) are now attached to each release; see the README for install instructions (#2437)
- macOS: MacPorts libraries are supported alongside Homebrew (#2373, #2435)
- DEB packages accept the
libavcodec-extraandlibavformat-extravariants, so installers like GDebi and Mint's Captain no longer try to replace them (#2425, fixes #2423) - Build fixes for GLES-only (
USE_GLES=ON, #2420, fixes #2416) andUSE_PPC=OFFconfigurations (#2433) - Updated AROS ROMs
- v8.4.02026-10-11 · 2026-10-11 21:15 UTC
查看更新说明
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy
Highlights
ZZ9000 emulation
The ZZ9000 support added in 8.3.0 now goes well beyond RTG. The card's stock drivers and SDK libraries work against the emulated hardware:
- ZZ9000AX AHI audio with the stock driver (#2355)
- Networking through the stock SANA-II driver (#2356)
- SDK mailbox and MHI audio streams (#2357), plus MP3 decoding through the installed SDK
mpega.library(#2358) - Image and ZZPlay media services (#2359)
- Firmware 2.8 register ABI (#2353); VRAM mapped directly into natmem for faster access (#2371)
Plugins
- MiniGL renderer plugin support (#2369): a guest MiniGL library can hand its 3D work to an optional host renderer plugin through uaelib trap 120. The plugin is not bundled with Amiberry and will be available separately. Without it, or with Native Code disabled, nothing changes. On Linux with the OpenGL renderer, the plugin's frames are composited zero-copy from dma-bufs by default when the driver supports it (#2382); set
minigl_zerocopy=noin the config (orAMIBERRY_MINIGL_ZEROCOPY=0) to turn it off. - User plugin locations (#2372): plugins are now searched in
AMIBERRY_PLUGINS_DIR, the Settings override, a per-user plugins folder, then the bundled/system folder. The Paths panel gains "Open" and "Install plugin…" buttons for the per-user folder, so third-party plugins can be added without touching a signed app bundle or a system package. Seedocs/plugin-locations.md.
New features
- Relative media paths (#2411): new "Use relative paths" option in the Paths panel (WinUAE's
RelativePaths). Paths inside the base folder are saved as./…, so an Amiberry folder on a USB stick or external drive keeps working when its drive letter or mount point changes. Portable installs default to it. - Custom cartridge ROMs in the ROM panel, and correct cartridge identifiers for known freezer dumps (#2294)
.A1000ROM support--dump-configprints the fully resolved configuration and the corrections applied to it (#2337)ipc_disable_loggingoption (#2364)- GL capabilities are detected at runtime: shader presets work on strict and GLES drivers, Linux/FreeBSD fall back to GLES 3.0 when that is the only hardware driver, and Amiberry falls back to the SDL software renderer instead of aborting when no GL context is available (#2290)
Performance
- Raspberry Pi 4: native chipset frames reach the GPU as zero-copy dma-bufs, and AGA/OCS/ECS line drawing skips needless horizontal-event checks (#2385)
- Duty-cycled auto-crop scanning (#2361)
- The GUI frame rate is capped to avoid 100% CPU use on VRR setups
RTG
- Dirty-page tracking: closed a race and split-screen holes (#2335), and VRAM writes from direct JIT stores are now caught (#2394)
- RTG hardware sprite is enabled by default, matching WinUAE (#2388)
- Warm resets and no-startup-sequence boots with RTG work correctly (#2330, #2333)
- Custom chipset emulation is always disabled while RTG is active (#2393); fixes for RTG swap, masked NOTSRC and BlitRectTransparent blits (#2391, #2415)
JIT and CPU
- ARM64: trap blocks are demoted by opcode class instead of wholesale, so much more code stays compiled (#2305, #2336, #2342)
- ARM: register shifts with counts 32–63 (#2376), FMOVEM addressing modes the JIT cannot compile (#2397), and fault handlers kept ahead of SDL's KMSDRM keyboard handlers (#2395)
- The JIT FPU setting is respected instead of being forced on (#2398, #2399)
- 68030 fixes, wrap-safe CHK2/CMP2 (#2307), and IDE interrupt handoff ordering on ARM64 (#2386)
Networking
- bsdsocket: event monitor and blocking-call fixes,
SO_RCVTIMEO/SO_SNDTIMEOhonoured, doubleCloseLibrary()ignored (#2334, #2384, #2370) - SANA-II: multicast delivery, receive stalls, and transmit buffer fixes (#2349, #2350)
- uaenet: MTU and MAC address reported, BP
- v8.3.02026-08-05 · 2026-08-05 17:47 UTC
查看更新说明
Windows release binaries are signed through SignPath. See the Code signing policy: https://amiberry.com/code-signing-policy
What's Changed
Other Changes
- Capsimage 5.2 update by @midwan in https://github.com/BlitterStudio/amiberry/pull/2120
- feat(android): adaptive CPU performance tuning via ADPF with affinity/uclamp fallback by @midwan in https://github.com/BlitterStudio/amiberry/pull/2121
- Android: Integer Scaling toggle + Hard Drives in Storage settings by @midwan in https://github.com/BlitterStudio/amiberry/pull/2123
- Fix collapsed group box hiding sibling column; more collapsible panels by @midwan in https://github.com/BlitterStudio/amiberry/pull/2124
- Collapsible left-nav sections to reduce scrolling by @midwan in https://github.com/BlitterStudio/amiberry/pull/2125
- Fix editing device/controller in CD & Tape Drive Settings (#2119) by @midwan in https://github.com/BlitterStudio/amiberry/pull/2126
- Fix macOS crash when bsdsocket library closes from a trap thread (#2115) by @midwan in https://github.com/BlitterStudio/amiberry/pull/2127
- Fix uae_sem_init semaphore-count inflation + RTG render lock + bsdsocket log spam (#2122) by @midwan in https://github.com/BlitterStudio/amiberry/pull/2128
- Redirect debugger I/O via shell stdin/stdout (#2117) by @midwan in https://github.com/BlitterStudio/amiberry/pull/2129
- libretro: add Crop Overscan core option by @midwan in https://github.com/BlitterStudio/amiberry/pull/2130
- Android: document-style config edit/save UX (Save / Save As, dirty tracking, unsaved-changes guard) by @midwan in https://github.com/BlitterStudio/amiberry/pull/2132
- capsimage: fix IPF/CT-Raw images failing to lock with 5.2 library by @midwan in https://github.com/BlitterStudio/amiberry/pull/2133
- Android Kotlin UI UX improvements by @midwan in https://github.com/BlitterStudio/amiberry/pull/2137
- Fix Host Only cursor handling by @midwan in https://github.com/BlitterStudio/amiberry/pull/2138
- Fix serial RBF clear after SERDATR read by @midwan in https://github.com/BlitterStudio/amiberry/pull/2139
- Fix libretro audio starvation padding by @midwan in https://github.com/BlitterStudio/amiberry/pull/2140
- Improve AutoCrop policy by @midwan in https://github.com/BlitterStudio/amiberry/pull/2143
- Read and write RTG autoscale setting. by @dlundqvist in https://github.com/BlitterStudio/amiberry/pull/2142
- Persist used GFX filter settings by @midwan in https://github.com/BlitterStudio/amiberry/pull/2144
- Improve ImGui Play UX by @midwan in https://github.com/BlitterStudio/amiberry/pull/2146
- Fix warp mode after closing GUI by @midwan in https://github.com/BlitterStudio/amiberry/pull/2148
- Fix hardfile creation mode by @midwan in https://github.com/BlitterStudio/amiberry/pull/2149
- Fix Host Only cursor without Magic Mouse untrap by @midwan in https://github.com/BlitterStudio/amiberry/pull/2150
- Keep libretro crop from hiding visible content by @midwan in https://github.com/BlitterStudio/amiberry/pull/2151
- Fix native host cursor coordinate clamp by @midwan in https://github.com/BlitterStudio/amiberry/pull/2152
- a2065: poll the host receive queue from the hsync handler by @jusii in https://github.com/BlitterStudio/amiberry/pull/2153
- a4091: fix 53C710 register and SCSI FIFO tests (ncr7xx -t) by @codewiz in https://github.com/BlitterStudio/amiberry/pull/2156
- a4091: reject illegal 53C710 Memory Move opcodes (ncr7xx bus/DMA tests) by @codewiz in https://github.com/BlitterStudio/amiberry/pull/2157
- a4091: emulate 53C710 SCSI loopback pins (ncr7xx -t8) by @codewiz in https://github.com/BlitterStudio/amiberry/pull/2158
- Fix native host cursor hotspot by @midwan in https://github.com/BlitterStudio/amiberry/pull/2159
- Expose native aspect correction setting by @midwan in https://github.com/BlitterStudio/amiberry/pull/2160
- Fix native host cursor hotspot learning by @midwan in https://github.com/BlitterStudio/a
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Amiberry
Optimized Amiga emulator for Linux, macOS, Windows, Android, FreeBSD, and Haiku.
Built on the WinUAE emulation core, Amiberry delivers full Amiga compatibility on 64-bit hosts, including ARM64, x86-64, RISC-V and LoongArch64 hardware — from a Raspberry Pi to a desktop workstation. Custom JIT compilation for ARM64 and x86-64 provides maximum emulation speed. 32-bit host builds are not supported; emulated Amiga CPU and address widths are unchanged.
Sponsors
A huge thank you to the companies and individuals who support Amiberry development.
Certified Partners
Partners
Supporters
Commercial Use & Sponsorship
Amiberry is free and open source under the GPL v3 license. You are welcome to use, modify, and redistribute it under those terms.
If you are shipping a commercial product, paid subscription service, or hardware bundle that includes Amiberry, we ask that you support the project financially. Amiberry is maintained by a single developer — the features and platforms your product depends on exist because of community and corporate support.
Corporate Sponsorship Tiers
| Tier | Monthly | Benefits |
|---|---|---|
| 🥉 Supporter | €50/mo | Named on website, listed in release notes |
| 🥈 Partner | €150/mo | Logo on website + README, early release access, priority issue responses |
| 🥇 Certified Partner | €300/mo | Everything above + "Amiberry Certified Partner" badge for your product/marketing |
👉 Become a corporate sponsor on Ko-Fi 📧 For custom arrangements, contact: [email protected]
Individual supporters keep this project alive too — any contribution is appreciated.
Visit amiberry.com for the full documentation site.

Features
- JIT Compiler — Custom just-in-time compilation for ARM64 and x86-64
- WHDLoad Support — Launch WHDLoad titles directly with automatic configuration
- Custom Bezels & Shaders — CRT monitor frames, overlay effects, and GLSL shader support
- Modern GUI — Clean Dear ImGui interface navigable by mouse or gamepad
- Drag & Drop — Drop floppy images, hard files, and config files directly into the emulator
- Auto-Update — Built-in update checker with SHA256-verified downloads
- RetroArch Ready — Seamless controller mapping for RetroArch setups
Quick Install
Linux
curl -fsSL https://packages.amiberry.com/install.sh | sudo sh
sudo apt install amiberry
Also available via PPA · COPR · Flatpak · AUR · .deb/.rpm.
AppImage (no installation): each release includes Amiberry-<version>-x86_64.AppImage for Intel/AMD and Amiberry-<version>-aarch64.AppImage for 64-bit ARM. Download the one for your CPU from Releases, then:
chmod +x Amiberry-<version>-x86_64.AppImage
./Amiberry-<version>-x86_64.AppImage
The AppImage needs glibc 2.35 or newer (Ubuntu 22.04 or later). See the AppImage guide for running without FUSE, keeping data beside the image, and updates.
macOS
brew install --cask amiberry
Windows
Download the installer or portable ZIP. x64 and ARM64 (Windows-on-ARM / Snapdragon X, Copilot+) builds are both published. The portable ZIP includes the amiberry.portable marker, so writable paths stay next to Amiberry.exe without extra setup.
Windows ARM64 in a VM (VMware Fusion / Parallels / Hyper-V): the guest usually has no OpenGL ICD installed, so Amiberry's GL init fails at startup. Drop Mesa3D's
opengl32.dll(mesa-llvmpipe-arm64from mmozeiko/build-mesa) next toAmiberry.exe— that gives you software OpenGL 3.3+ and the GUI comes up. Native WoA hardware doesn't need this workaround.
Android
Currently in Closed Testing on Google Play for Ko-fi members, who receive a 100% discount code that also covers the final release. Open Testing is planned after the next release, followed by a public paid release on Google Play. AArch64 & x86_64, with full ARM64 JIT support. See the Android wiki page for details.
FreeBSD
Install from the FreeBSD package repository:
pkg install amiberry
Each Amiberry release also ships packages for FreeBSD 14 and 15 (amd64 and aarch64) on the releases page, which can be newer than the ports tree. Download the one matching your FreeBSD version and CPU, then install it with pkg install, which fetches the dependencies from your configured repository:
pkg install ./amiberry-v8.5.0-freebsd15-amd64.pkg
These packages are built against the quarterly package branch, which is the default on FreeBSD. If your system uses latest, a dependency may have moved to a newer library version; use the ports package in that case.
Or if you prefer to install from Source then
git clone --depth 1 https://github.com/freebsd/freebsd-ports /usr/ports
cd /usr/ports/emulators/amiberry
make install
Haiku
Each release ships a Haiku (R1/beta) package for 64-bit x86 on the releases page. Download the .hpkg and install it with pkgman, which pulls the dependencies in from HaikuPorts, or just double-click the downloaded file:
pkgman install ./amiberry-v8.5.0-haiku-x86_64.hpkg
The package installs the binary into /boot/system/bin, its data into /boot/system/data/amiberry, and a Deskbar entry under Applications. All dependencies (SDL3, FFmpeg, and friends) come from HaikuPorts; there is no Amiberry recipe in HaikuPorts, so the release package is the only supported way to install it.
Code Signing
Release binaries are signed through SignPath. See the Code signing policy for signing scope, release approval roles, and privacy notes.
Documentation
- Getting Started — Quick start guide
- Full Wiki — Complete documentation
- Build from Source — Compile for your platform
- Troubleshooting — Common issues and solutions
Building from Source
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
See the build guide for platform-specific instructions, dependencies, and build options.
Desktop builds enable SDL3-backed genlock video and camera input by default (USE_VIDEOGRAB). USE_FFMPEG independently enables ZZ9000 and genlock media decoding when FFmpeg 5.1 or newer development files are available; it requires libavformat 59.27+, libavcodec 59.37+, libavutil 57.28+, libswresample 4.7+, and libswscale 6.7+. USE_WEBP enables still and animated WebP decoding when libwebp and libwebpdemux development files are available.
Emulator regression checks
ROM-free regression fixtures compile production functions to check CPU flags and exception frames, coherent CIA timer reads, event dispatch, 68030 ATC and locked accesses, queued sprite writes, AGA subpixel collisions, and writable RTC counters, calendar, hour modes and sub-frame carry/BUSY timing. The x86 flag-emitter check runs only on x86-64 hosts.
Run bash tests/test_frame_pacing.sh for software frame-pacing checks, including
adaptive scheduler-overshoot margins and PAL/NTSC deadline boundaries.
The RTC counts emulated time (chipset cycles), like the real chip's own crystal next to the colour clock: its seconds agree with the CIAs and the beam also when the emulation runs slower or faster than real time, and host frame waits cannot hide the MSM6242B's 244-microsecond BUSY pulse from a polling guest. It starts at the host clock and re-anchors to it on reset, state restore, pause/resume and warp transitions; warp retains a wall-clock RTC. While running it slews towards the host clock by at most 1 % once they are more than a second apart, and re-anchors after a host clock jump of over an hour. MSM6242B HOLD freezes the calendar during writes and defers one carry until release; Ricoh calendar and leap counters advance regardless of the selected register bank. Savestates capture the RTC at the save instant. An RTC file preserves guest-written calendars and independent weekday/leap counters across restarts; only running clocks advance while the emulator is off, and HOLD defers one carry.
FPU exception, stack-frame and compiler checks run with
python3 tests/fpu_exception_regressions_test.py,
python3 tests/fpu_frame_regressions_test.py and
python3 tests/fpu_jit_compiler_regressions_test.py.
These include independent FPSR condition-bit combinations in interpreted and
compiled x86 predicates, with signaling conditions retaining BSUN handling.
Run python3 tests/fpu_predicates_live_test.py build/amiberry to execute an
original synthetic ROM's predicate matrix and integer-CCR preservation checks
through both the interpreter and JIT, without external ROMs or disks.
Interpreter handlers and x86 JIT translators are checked in. After changing
src/gencpu.cpp or src/jit/x86_64/gencomp.cpp, regenerate their outputs;
CMake does not run these generators automatically.
Contributing
Contributions are welcome — bug reports, feature suggestions, and pull requests all help make Amiberry better.
- Fork the repository
- Create your feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m 'Add my feature' - Push to the branch:
git push origin feature/my-feature - Open a Pull Request
Community
License
Amiberry is licensed under the GNU General Public License v3.0.
Supported by JetBrains.