This is a preview of the upcoming Amiberry v8.0.0 release, covering 350+ changes since v7.1.1. This represents a massive leap forward — a new GUI framework, new platform support (Windows, Android, Haiku), JIT across all major architectures, a complete networking stack overhaul, and hundreds of fixes and improvements.
⚠️ This is a pre-release. While it's been tested extensively, there may be remaining issues. Please report any problems you find!
🎉 Major New Features
Dear ImGui GUI (replaces Guisan)
- Complete replacement of the old Guisan-based GUI with modern Dear ImGui (#1740, #1775)
- DPI-aware scaling on all platforms
- ImGuiFileDialog replaces old file browser
- Removed SDL2_TTF and libguisan dependencies entirely
- GUI position is remembered between sessions
- imgui.ini file creation is disabled (settings stored in amiberry.conf)
Windows Native Support
- Full native Windows version (#1781)
- InnoSetup installer with SHA256SUMS and
.exerelease artifacts - Optional file associations for Amiga file types (
.adf,.hdf,.uae, etc.) - Embedded application icon in executable
- Capitalized executable name (
Amiberry.exe) - Proper path resolution using executable directory instead of CWD
- Console window management (no forced console on startup)
Android Native Support
- Full native Android version with Kotlin/Compose UI (#1768)
- On-screen touch controls with virtual joystick (#1786)
- Native Android keyboard support
- Android TV support
- Native Home screen with content browsing
- Touch scrolling improvements
- Back button opens GUI
- Version derived from root CMakeLists.txt (single source of truth)
- Available on Google Play Store soon
Libretro Core
- RetroArch/Libretro core integration (#1803)
- Comprehensive improvements in follow-up (#1825):
- Core options: sound filter, stereo separation, floppy speed, video standard (PAL/NTSC)
- Modern Libretro API adoption (audio latency, buffer status callbacks, message severity)
- CUE/CCD sheet parsing for CD content detection
- Support for
RETRO_ENVIRONMENT_SET_SUPPORT_NO_GAME(Workbench boot without game) - CD32 Pad and Joystick controller subtypes
- Superhires geometry support (up to 1920×1280)
- Save state bug fixes (double close, variable-size serialization quirks)
- Fixed aspect ratio (4:3) and multi-port mouse polling
OpenGL Renderer & Shader Support
- New OpenGL rendering backend with full GLSL shader support
- Built-in CRT shader:
1084monitor emulation - Support for external GLSL shader files
- OpenGL set as default renderer (shader set to
nonefor max performance) - Improved OpenGL ES and modern OpenGL compatibility (#1760)
- Adaptive VSync implementation
- Lagless VSync options (beam racing)
- OpenGL and Auto Crop interaction fixed with CRT shaders (#1728)
- Shader option exposed to
amiberry.conf - Shader changes apply immediately
ARM64 JIT Compiler
- JIT enabled for ARM64 Linux (#1785)
- JIT enabled for macOS Apple Silicon (#1802)
- JIT enabled for Android
- Major stability fixes for ARM64: crashes, visual corruption, 64-bit pointer safety (#1766, #1824)
- Fixed BSR.L / Bcc.L displacement sign extension
- Fixed 64-bit pointer truncation in FPU branch handler
- JIT and CPU thread can now work together (#1806)
- Dynamic unstable block guard with quarantine system for startup stability
x86-64 JIT Improvements
- Made 64-bit pointer-clean for Windows/Linux/macOS (#1811)
- PIE compatible (#1820)
- FreeBSD support with ASLR-safe cache allocation (#1814)
- Fixed SIGSEGV handler crash with
comp_catchfaulton Linux (#1816) - Corrected JIT cache distance check threshold to actual RIP-relative limit (#1821)
Custom Bezels
- Support for custom bezel/overlay images
- Fixed bezel aspect ratio preservation
- Fixed bezel image centering
Networking Overhaul
- TAP networking backend for bridged A2065 emulation (#1784)
- Complete rewrite of PCAP backend for correct bridged networking (#1777)
- Segment GRO/GSO-coalesced packets in PCAP receive path (#1780)
- Fixed deadlock in PCAP worker thread (#1773)
- Populate
device_settingswhen parsing A2065 config (#1774)
Host-Shell Support
- AmigaOS host-run/host-shell integration (#1742)
Haiku OS Support
- Build and run on Haiku R1 Beta5 (#1827)
🚀 Performance Improvements
- RTG Zero Copy: Zero-copy rendering mechanism for Picasso96, avoiding redundant buffer copies (#1762)
- CPU Threading: Enable and optimize CPU threading with multiple fixes (#1767)
- Partial Renders: Only redraw changed portions of the emulation display
- CL5429 VGA: Improved CL5429 blitter/fill operations for RTG performance
- P96 Dirty Rects: Bridge P96 invalidation to SDL dirty rect system — only update modified portions of RTG screens (#1712, #1741)
- Optimized 24-bpp P96: Faster
fillrect_frame_bufferfor 24-bit modes - Shader Rendering: Optimized rendering performance for shaders (#1756)
- Flush Clear Screen: Optimized clear screen operations
- Parallel LTO: Added parallel LTO compilation support and CPU optimization flags (#1724)
- Reduced Render Overhead: Avoid
SDL_RenderClearwhen render quad covers the entire screen; useSDL_Delayto reduce CPU wakeups - Status Line: Rendered as separate texture instead of pushing pixels on the emulation surface
🐛 Bug Fixes
BSD Socket / Networking
- Major bsdsocket.library implementation overhaul (#1359)
- Fix SO_EVENTMASK crash and WaitSelect hang (#1787)
- Fix SBTC_DTABLESIZE crash and WaitSelect bounds check (#1788)
- Implement
Inet_LnaOf,Inet_NetOf, andInet_MakeAddr(#1789) - Fix
sendmsg/recvmsgdata corruption (#1790) - Resolve 9 remaining bsdsocket emulation bugs (#1791)
- Fix close event monitor race (#1792)
- Fix Windows bsdsocket bugs and consolidate shared code (#1793)
- Fix errno clobbering and thread cleanup race on non-Windows platforms (#1828)
- Fix host_WaitSelect result propagation
- Add SETERRNO checks throughout
- Add support for Amiga-specific socket options and interface discovery IOCTLs
- Fix multiple bugs in
bsdsocket_host.cpp
JIT
- Fix ARM64 JIT crashes, visual corruption, and 64-bit pointer safety (#1824)
- Fix crash when JIT was enabled in complex configs
- Fix JIT FPU would not enable from
uae-configuration - Fix bug when toggling JIT on/off through event
- Fix 32-bit memory allocation (#1753)
Graphics & Display
- Fix black screen when autoresolution was enabled
- Fix OpenGL rendering issues (upside-down textures, format handling, OSD position)
- Fix absolute mouse positioning in fullscreen and HiDPI (Retina) environments
- Fix KMSDRM mode rendering: scale option, 16-bit RTG, keyboard input, mouse offset (#1823)
- Fix hardware RTG cursor and mouse position handling (#1763)
- Fix CL5429 optimizations causing 8-bit modes to show garbage (#1746)
- Fix P96 mode 1024×600 error on startup (#1708)
- Fix hardware mouse cursor using BGR instead of RGB
- Fix display port adapters
- Fix transparency of hardware sprite in P96 modes
- Fix RTG modes having incorrect aspect ratio
- Fix DPF mode garbage in right border
- Fix
bpl_endcalculation in hires - Fix mode switch height change not updating
row_map - Fix 24-bit custom RTG modes showing black areas
- Fix buffer overflow when
gfx_displaywas set to non-zero values (#1748) - Fix GL pixel format caching when switching between 16/32-bit
- Fix host buffer refresh on panning state change (zero-copy path)
- Fix black screen with VSync Standard (#1739)
- Fix DMA hack ("Fastest Possible") never enabling (#1746)
- Fix P96 modeid number (#1743)
- Clamp crop rect to valid values
- Fix scaling method change when GUI opens
- Don't hardcode legacy OpenGL attributes on startup
- Fix integer scaling in OpenGL
Sound & Audio
- Improve SDL2 audio buffer handling and synchronization (#1404)
- Improve audio device locking and volume control
- Clean re-implementation of sound emulation
- Clean re-implementation of AHI v1
- Sound Push mode improvement
- Don't always clear the buffer to silence first
- Remove double wait loop in frame timing
CPU & Emulation Core
- Fix condition for
tt1_030CACHE_DISABLE_MMU - Change MMU page cache type from instruction to data
- Fix mouse state on button press (#1719)
- Fix pixel data handling for A2024 (#1667)
- Fix dynamically use pixel format depending on RTG card (#1713)
- Fix
mapromwas always set to false - Fix 3.2.3 ROM IDs in detection
- Fast drawing functions need
start_draw_denise() - Fix
DisplayModesallocation (usexcallocinstead ofmalloc) - Ensure black draw color for clearing the renderer
- Fix ini file writes could be cut-off sometimes
GUI & Input
- Fix Windows crash when re-opening GUI after emulation had started
- Fix CD image dropdown selection bug (#1718)
- Fix Restart button behavior (#1731)
- Restart would not trigger a refresh of Configs
- Virtual keyboard always showing on startup (#1702)
- Virtual keyboard input would pass through (#1702)
- Fix virtual keyboard on OpenGL
- Fix bounds-check joystick index to prevent crash
- Fix Alt-Tab keyboard grab release on SDL3+sdl2-compat (#1829)
- Fix shell quoting when downloading XML and Controller updates
- Fix macOS case-sensitive filesystem issue (#1722)
- Check for
$AMIBERRY_HOME_DIRbefore last fallback (#1698) - Fix network volumes access on macOS
- Network HDF files that fail to open log errors instead of crashing
- HRTMon ROM check fix
- Fix all C++ string constant conversion warnings (#1686)
- Fix debugger regression affecting memory dumping and input parsing (#1727)
🔨 Improvements & Enhancements
WinUAE Sync
- Synced with WinUAE 6.0.2 beta series (b1 through b11)
- Multiple additional WinUAE update merges throughout the development cycle
- Merged GCC-specific fixes from WinUAE
- Added
cputestandsoftfloatfrom WinUAE
Display & Rendering
- Scale NTSC resolutions properly (#1703)
- Improve auto-crop when using NTSC
- Stretch NTSC to PAL height option
- Scale emulation window based on DPI on Linux
- Hi-DPI scaling for Linux
- Implement custom adaptive sync for improved frame timing (#1737)
- Preserve window in full-window mode to avoid flicker
- Updated app icons
- DPI-aware
ShowMessagedialogs - Reset fast mode state when centering changes
- Manual filter negative positioning values support
- Major refactor of amiberry gfx subsystem (#1812)
- Sync VSync RTG options with WinUAE
CPU & Emulation
- Realign cycle counter when switching to 68000/010 CE mode on the fly
- CPU OSD shows STOP if CPU is stopped with IPL mask = 7
- Improved AHI implementation
- Implement high-resolution timer (nanosecond precision)
- Mast Fireball uses same partitioning as A2090
Input & Controls
- Add option to map LAmiga key to another key (#1733)
- Add option to map RAmiga key to another key (#1697)
- Make F12 start emulation again (#1809)
- Improve alt-tab option behavior and window positioning (#1829)
Debugger
- More detailed MMU translation debugger output
- 68030 MMU table dump update, add commands to debugger help
- Backtrace command
btbased on frame pointer A5 (#1764) - Fix debugger output formatting (line-by-line) (#1755)
Other
- Added CD Drive controller support (SCSI/IDE CD Drive via images) (#1690)
- Support broken CUE files with "TRACK 0" instead of "TRACK 01" (#1691)
- Add
--rescan-romscommand line option - Document
--logoption in help, GUI helptext, and manpage (#1689, #1695) - Handle file type associations without opening GUI (double-click to launch)
- Handle drag-and-drop file events (including
SDL_DROPFILEon macOS startup) - Make headless mode actually headless
- Fix consolehook implementation
- Re-enable
mman_set_barriers - Use ioctl for Apple architecture detection (#1706)
- Fix physical AudioCD detection on macOS
- Rename "SCSI Kit" → "Blizzard SCSI Kit"
- Re-enable custom gfx boards sanity check
- Remember GUI position between sessions
- Updated Dear ImGui to latest version
- Updated ImGuiFileDialog to latest version
- Updated tinyxml2 to latest version (v8 → v11)
- Updated AROS ROMs to latest version
- Use
curlinstead ofwgetfor downloads
🏗️ Build System & Platform Support
- FreeBSD: JIT support (#1696), linker flag fixes (#1750), block device ioctl fixes (#1805)
- RISC-V: Support for
pauseinstruction; automatically disable PCem on RISC-V (#1685) - Major CMake cleanup (#1730)
- Removed Guisan and SDL2_TTF dependencies
- OpenGL as default renderer
- macOS universal (ARM64 + x86_64) DMG
- macOS standard file type associations
- Ubuntu 25 build targets (ARM64 and x86_64)
- Fedora ARM64 build target
- Flatpak libpcap package update
- Improved macOS initial folder setup, handle spaces in paths
- Use more standard macOS locations
- Removed Fullscreen mode from Display panel (use Full-window instead)
- Duplicate source file entry for
shuf.cppremoved (#1818)
📚 Documentation
- Add
--logoption in manpage (#1695) - Updated README with Windows build instructions
- Improved README with quick links to latest release (#1810)
- Credits for FreeBSD and Haiku ports
- Credits for Romain Tisserand's Libretro implementation
- Updated Flatpak metadata (#1735)
🙏 Contributors
Thanks to everyone who contributed to this release:
- @midwan
- @polyduekes-git — FreeBSD JIT support
- @wgottwalt — C++ warning fixes
- @smugpie — macOS ioctl, OpenGL improvements, shader optimization, P96, RTG zero copy, gfx updates, and more
- @rtissera — Libretro core implementation and improvements
- @Korkman — x86-64 JIT, bsdsocket networking fixes, TAP backend, PCAP rewrite
- @emkay443 — Flatpak metadata
- @X-Ryl669 — Haiku support
- And everyone who reported issues and tested pre-releases!