Skip to content

preview-v6.3.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@github-actions github-actions released this 21 Apr 12:13
· 568 commits to master since this release
310643d

๐ŸŽ‰ New Features

  • Added new custom events for Disk Swapper. Two new events were added, Insert Next / Previous disk swapper slot. These allow you to select the next/previous slot and also insert it into DF0: in one step.
  • Added default path for LHA archives (fixes #1234). This allows you to set a default path that will be used to load WHDLoad .lha files, for use with the WHDBooter.
  • Added option to use "System Default" audio device (fixes #1241). This new checkbox in the GUI (Sound panel) will not choose a specific audio device, and instead tell SDL2 to pick the system default one. This helps with systems that may have sound devices that are not listed in the dropdown.
  • Added new WHDLoad panel in GUI. This panel exposes the options that the WHDBooter uses, and allows changes to the slave options before launching a title. The Custom Fields can also be customized from this area. All information is parsed from the same XML that Amiberry uses to match the WHDLoad titles.
  • merged Arcadia updates from latest WinUAE
  • Added Fixed only audio filter mode. Merged from WinUAE.
  • Added new "Save Mapping" button in Custom Controls. This allows you to save the current mapping for the selected controller as the default, which will be automatically loaded on startup (if the controller is connected). Does not apply to Retroarch mappings.
  • detect WHDLoad, CD and floppy disk images as parameters in the command line. As a fall back, you can now pass the path to a supported image filename, and it will be loaded automatically. This makes it possible to set Amiberry as the default handler for such files (e.g. .lha, .adf, .adz, .ipf, .cue, .iso, etc.). WHDLoad and CD images trigger the autoloader, while floppy disk images will be loaded into DF0:
  • If a config file that matches the inserted disk image exists, it will be loaded automatically. Otherwise the default one will be used instead. This also makes it easy to save a config after you've loaded a disk image, since the panel will be populated with the right name already.
  • Added support for custom font colors in the GUI theme
  • added default Floppy, CD-ROM and Hard Drive paths

๐Ÿ› Bugfixes

  • Fix offset for button indicators in Controller Map in the GUI (fixes #1228)
  • Fixed absolute mouse positioning for RTG modes (fixes #1230)
  • Fixed crash/freeze when trying to access FloppyDriveBridge devices under macOS (fixes #1106)
  • Ensure changes in virtual mouse and magic mouse are applied immediately (fixes #1225)
  • Catch GUI exceptions properly. Previously if a GUI exception occurred, it would trigger a crash to the console. Now it will catch the exception, log the error and also output the result in the console.
  • Data path wasn't parsed in WHDBooter (fixes #958). The "datapath" property wasn't parsed during the startup-sequence creation, when using the WHDBooter feature.
  • The aspect ration option was not respected during Auto-Crop (fixes #1235)
  • Fix unstable serial receive (if data was internally buffered, receiver got them far too quickly back to back)
  • ensure the joystick name is handled gracefully if it's null or invalid (fixes #1246)
  • ensure ".." is always present in file/folder dialogs, after refactoring
  • return an empty string in case the file/folder dialog was cancelled
  • file/folder dialogs would briefly show a scrollbar on startup, then hide it
  • Check if source exists before attempting to symlink a file. This fixes a scenario where "AmiQuit" would not exist in at least one case in RetroPie, and the symlink created was invalid
  • Fixed the Enter key would no longer trigger a KEYDOWN event in the GUI (fixes #1249). This was a bug since 5.6.7, introduced with some updates in the guisan library. The ENTER key is also faked when pushing the controller buttons A/B, so this effectively disabled selecting anything in the GUI with a controller.
  • Fixed a memory leak when closing a filesys unit
  • ensure the savestate filename is never empty
  • don't crash if no kickstarts are found on startup. This was triggered after the recent refactoring of the Scan ROMs function.
  • Branch/jump and JMP/JSR instruction bus error fixes (merged from latest WinUAE)
  • Redraw emulation window when GUI is open (fixes #1251)
  • if KMSDRM is detected, enforce full-window and single window modes
  • ensure we have a surface and texture before using them
  • ensure that controller axes that report no name, get a default one anyway .This caused a crash with the Steam controller, which reports 8 axes but only 6 of them get a name, through SDL2. This way, they will get a default name of "Axis #" + number.
  • Fix bitplane corruption in some weird modes
  • Fix vblank start/end position in programmed modes and fix also ECS Denise special case.
  • Fix AKS_xxx on/off/toggle events
  • Fixed parallel port joysticks D-Pad input was incorrectly mapped to ports 0/1. This has been around for several versions, but it's finally fixed now.
  • Fixed navigation in Floppy panel
  • Floppy dropdown panels would show recently loaded configs also
  • GUI theme colors were not applied to all widgets
  • if you selected a WHDLoad file from the GUI, and it had a config file previously saved, it wouldn't apply it
  • Debugger f fixed (merged from WinUAE)
  • If Cancel was used in a file/folder dialog, the path would be emptied on return
  • increase width of text fields in HWInfo panel (fixes #1269)
  • Listbox selection color was hardcoded when inactive (fixes #1270)
  • initialize custom field value to zero, otherwise we would get random numbers if it's not defined
  • Virtual Keyboard did not respect Auto-Crop (fixes #1273)
  • "Start in Quickstart" checkbox would not change status (fixes #1274)
  • magic mouse without virtual mouse driver would not release pointer (fixes #1278)
  • All A600 QuickStart configs would always incorrectly add Fast RAM (fix #1282)
  • only create default HDD device name if we don't have one already (fixes #1284)

๐Ÿ”จ Improvements

  • Improve sizes of Select File/Folder dialogs. The dialog sizes are now larger, and hold more entries.
  • All screen edges are now "lightpen/gun not pointing at screen" zones
  • Skip volume change if sound device is not available (crash dump possible fix)
  • LDP-1450 character generator emulation. Not fully implemented yet, as WinUAE renders this in a Windows-specific way.
  • Make currently unusable extra 68020 wait states conditional
  • Allow 68020+ CPUs to read instruction words from custom chipset space. Only if more compatible is enabled.
  • ECS Denise/AGA genlock color register bit handling fix.
  • ensure the controllers path is reset, before using it for setup_mapping
  • added retroarch config file path in the log
  • do not temporarily unhide the cursor and hide it again when capturing mouse
  • Check if mode switch is needed before updating graphics parameters
  • silence log entries from zfile_archive, unless we're debugging. This polluted the logfile otherwise
  • Added more logging in WHDBooter, fix extra slash in save-data path
  • Improved SaveState and Screenshot file handling
  • Release rawinput devices when GUI/dialog/debugger is open (merged from latest WinUAE)
  • Don't always try to open "default.uae" on startup, if the file doesn't exist
  • Show the selected Floppy Disk in the GUI, when started from command line.
  • populate GUI with WHDLoad command line options
  • Stop copper if ERSY=1 without genlock.
  • Correct calculation of vertical period if NTSC + LOLDIS.
  • Less confusing programmed mode logging
  • Do not open console window automatically when debugger message is logged.
  • Detect sprite/bitplane conflict properly.
  • If programmed VBSTRT == VBSTOP: vblank interrupt stops.
  • Make sure weird vblank where vblank starts after vsync end is visible, only if extreme or ultra extreme overscan.
  • Sprite DMA is disabled during Vblank.
  • Check only if BEAMCON0 changes and also check VB
  • When loading a config, scroll list enough to make it visible.
  • Added scroll area in HW Info panel
  • improved look of disabled buttons, dropdowns and checkboxes in GUI
  • show video driver info in About panel
  • added configurable GUI selection color, for dropdowns
  • Check if programmed vblank is earlier than hardwired vblank (merged from WinUAE)
  • Keep vblank active as long as last seen strobe in STRVBL (merged from WinUAE)
  • Rainbow II RTG card (headers only, custom gfx cards are not implemented)
  • Delay OCS Denise blank "bug" by 3 CCKs (merged from WinUAE)
  • Apollo 630 accelerator (merged from WinUAE)
  • OCS Denise/A1000 Denise first non-blank line update
  • Improve stateload CPU tracer error check
  • added mt32-roms directory as a placeholder (fixes #1271)
  • Adjust hblank positions (merged from WinUAE)
  • Detect both save image path types in both pats (merged from WinUAE)
  • synced with WinUAE 5300b3
  • Magic Mouse changes and improvements (#1277)
  • use CD32 with 8MB Fast config, when using cd-autoload

๐ŸŽ๏ธ Performance Improvements

  • Optimize dialog navigation handling.
  • optimized parsing of slave info from XML, for WHDLoad files.
  • optimizations in event handling
  • optimized and improved logging in target_execute (host-run).
  • optimized retroarch, joystick init and joystick reading
  • optimized filesystem access (fsdb_host)
  • slight optimization of the SDL2 audio callback function
  • optimize P96 copyrow function
  • optimized auto-crop speed
  • optimize updatewinfsmode function (used to change screen modes between windowed/full-window)
  • improve Rescan ROMs function

๐Ÿ—๏ธ Build System

  • Added Apple Silicon Github runner. Now we can include pre-compiled binaries for that platform as well.
  • Added definitions for ARM-32 builds in CMake
  • Added FindSDL2_image and FindSDL2_ttf cmake modules. This seems to be required for older systems, like buster-based RetroPie.

๐Ÿชš Refactors

  • minor refactoring in gfx code
  • Improve KMSDRM detection and single window mode behavior
  • ARM64 JIT updates. Still not working, but at least it compiles now.
  • Removed obsolete VSLinux files from repo. We can use CMake which is better for this task
  • Use strings instead of char* in various places internally. Not really something the user will notice, but it helps simplify and modernize the code internally.
  • WHDBooter improvements, code optimization and cleanup
  • modernize code for lists of recent items in GUI
  • modernize and improve code for read_directory
  • modernize and improve code for save_amiberry_settings
  • optimize utf8-latin1 conversion functions
  • Improve all filesystem functions. Added logging, checks for null parameters, improved code performance and modernized code where possible.
  • removed now obsolete neon_helper.s. We're not using inline assembly anymore.
  • optimize and improve code in main window and amiberry_gui
  • Break out the event handling to separate functions. Makes it much easier to read and update the code.
  • optimize write_log and jit_abort functions
  • optimized ROM GUI panel, use strings for Available ROMs struct internally
  • simplified and optimized code in the Savestate GUI Panel. The screenshot is now saved directly from the GUI, without exiting as before. Screenshots now contain the full Amiga resolution and they are not cropped.
  • Controller custom mapping simplified

๐Ÿ“š Documentation Changes

  • Improved Help Text in the Custom Controls panel
  • Improved help text in Floppy and HW Info panels
  • Improve help text in Paths panel (fixes #1275)
  • removed SDL2 render thread reference from GUI help text
  • improve help text regarding mt32 roms (fixes #1287)