Open Collective
Open Collective
Loading
Behind the scenes (2020-12-30)
Published on December 30, 2020 by Dimitris Panokostas

Amiberry v3.3 was released back in September 2020. Since then, the work started on the next version (named v3.4beta at the time, more about that later), usually on a daily basis.

The main focus with the 3.4 release, was originally to rewrite the controller handling in a better way. We needed better default mapping for game controller buttons and axes, more keyboard input options (some controllers emulate keyboards, and use up to 4 different players!) and a way to make this easier to configure moving forward.

In the meantime, WinUAE had some updates (which got merged into Amiberry), we discovered more bugs that needed fixing and based on community feedback, we also added or improved certain features. I'm referring specifically to the upcoming AmiKit for RPI release, which will utilize some of those features.

So here we are, 3 months and many, many updates later, with the next version finally looking stable enough for the next release. In all honesty, it should probably be version higher than 3.4, based on how many improvements went in, but let's not worry about that right now... :)

Here's a simplified list of what has already been done, in historical order (oldest to newest):

- Fixed Dual playfield with illegal BPLCON2 priorities (from WinUAE)

- Merged more WinUAE code across the board

- Amiga bootblock Reader bainfile.xml support

- Replaced dependency of libxml2 with bundled tinyxml2 (one less thing to install before you can compile, yay!). This also made the binary about 1MB smaller.

- Disk rotation speed fix (from WinUAE)

- Bitplane DMA special case/ Blitter no-nasty mode / Copper Update and cleanups (from WinUAE)

- Rewrote Game Controller implementation

- Fixed hotkey handling when reading joystick events

- Implemented option to map Autofire button in Custom Controls

- Disk write length fix (from WinUAE)

- bsdsocket.library SBTC_GET_BYTES_RECEIVED and SBTC_GET_BYTES_SENT

- Do not mount executable as a bootable disk image if it has disk image extension or is too large.

- Return random data if disk DMA started with selected drive but motor turned off.

- Ensure blitter_speed_throttle is updated

- Make double-click to load config is identical to Load and Reset

- Fixed bug where Restarting emulator then running another config caused a crash

- Implemented key combinations to insert/eject floppies (same as in WinUAE)

- Greatly simplified controller map handling code

- Added support for HardKernel ODroid C4 and Khadas VIM3L (AMLSM1 SoC family)

- Fixed SM1 flags mistake in Makefile

- Re-implemented P96 v3.0+ support for draggable screens (was removed earlier due to a bug that has since been fixed)

- Fixed bug where if started with no GUI, Resume button wasn't enabled

- Hardware graphics board emulation updates and fixes

- 24/32-bit DMA option and clockport expander support

- Memory bank metadata support

- Added CD insert/eject shortcut

- JIT MOVEM/MOVE16 optimization disable option

- Line drawing fix (for Zool 2 AGA)

- Merged WinUAE scsi changes

- Added serial port emulation

- Fixed incorrect handling of keyboard as joystick buttons

- Changed "swap_win_alt_keys" to "rctrl_as_ramiga" in amiberry.conf

- Improved frame timing stability

- Implemented default_sound_buffer option in amiberry.conf

- Implemented hotkey for system Shutdown

- Fixed Parallel port joystick wasn't working since v3.1.3.1

- Allow .zip and .lha files as hardfiles

- Added Cycle-Exact options in GUI

- target_execute will now replace volume and device names on the fly

- execute commands in the background, when using host-run v1.3+

- Added Mouse/Joystick autoswitch checkbox in GUI

- Started AHI implementation using SDL2

- Implemented RCtrl = RAmiga as part of UAE config files

- Implemented support for Keyrah connected joystick

- Added multiple Keyboard as Joystick options

- DMA capable support, force 16-bit memory option

- Fixed HAM corruption if filter horizontal start was after HAM horizontal start

- Fixed crash when clicking in empty Config list

- Implemented Swap ports button

- Added Digital and Analog Joy-mouse speed options in GUI

- Implemented Mouse speed control in GUI

- Sync with WinUAE 4500b11

- Added options for minimize_inactive and capture_always

- Added options to control Magic Mouse mode in GUI

- Removed built-in AROS rom, you can now use externally located AROS ROM files (which can be more up-to-date) instead

- Re-grab focus with 1 click, instead of 2

- Automatically grab focus when emulation starts, regardless of screen mode

- Improve shared clipboard function

- Implemented touch support

- Fixed virtual mouse driver always showing 2 pointers on startup

- Update Chipset panel when changing JIT options

- Fixed several more compiler warnings

- Reworked threading support

- Blitter rewrite to match real hardware behavior. Reverted earlier copper changes (from WinUAE)

- Bulk update from latest WinUAE sources (fixes IBrowse crash on 2nd startup and other filesystem bugs, handle Latin1/UTF8 filenames better)

- Added La Frite Libre Computer platform

- Sync with WinUAE 4500b13

- Removed double-sized cursor in GUI

- Implemented qualifier keys support in hotkeys (Currently supported qualifiers are Ctrl, Alt, Shift, GUI/Win keys)

- Added buttons to clear hotkeys in Misc panel

- Improved JIT changed prefs detection

- Implemented retroarch keyboard mapping (now for 1-4 players)

- Added use_drawing_thread option in amiberry.conf (This can disable the drawing thread, which causes issues when using KMSDRM and Auto Height is ON)

Phew! That's it for now, but we're not finished yet. :)

I'll keep you updated with such posts twice per month, so you can get an idea of where things are.

In the meantime, happy holidays and I wish you all a great New Year!