github BlitterStudio/amiberry preview-v8.0.0-pre.30

latest release: preview-v8.0.0-pre.31
pre-release18 hours ago

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 .exe release 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: 1084 monitor emulation
  • Support for external GLSL shader files
  • OpenGL set as default renderer (shader set to none for 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_catchfault on 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_settings when 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_buffer for 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_RenderClear when render quad covers the entire screen; use SDL_Delay to 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, and Inet_MakeAddr (#1789)
  • Fix sendmsg/recvmsg data 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_end calculation 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_display was 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_030 CACHE_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 maprom was always set to false
  • Fix 3.2.3 ROM IDs in detection
  • Fast drawing functions need start_draw_denise()
  • Fix DisplayModes allocation (use xcalloc instead of malloc)
  • 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_DIR before 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 cputest and softfloat from 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 ShowMessage dialogs
  • 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 bt based 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-roms command line option
  • Document --log option 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_DROPFILE on 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 curl instead of wget for downloads

🏗️ Build System & Platform Support

  • FreeBSD: JIT support (#1696), linker flag fixes (#1750), block device ioctl fixes (#1805)
  • RISC-V: Support for pause instruction; 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.cpp removed (#1818)

📚 Documentation

  • Add --log option 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!

Don't miss a new amiberry release

NewReleases is sending notifications on new releases.