Open Collective
Open Collective
Loading
Amiberry 3.1.4 beta updates
Published on May 15, 2020 by Dimitris Panokostas

As we move towards the next version of Amiberry, it became apparent that the GUI also needed some love.

Amiberry uses a very light-weight minimalistic GUI framework, named Guisan. Guisan is based on Guichan, which is older and runs only on SDL1. Guisan is a fork which continued development somewhat, and more importantly, moved things to SDL2 (which is what Amiberry uses nowadays). Since Guichan/Guisan was conceived as a very lightweight GUI framework, mostly designed for games and very simple apps, much of the standard behavior that we take for granted in modern GUI toolkits doesn't exist and you have to implement it yourself.

Some of that work was done earlier, but it was time to bring the GUI back into focus now that most of the critical bugs are fixed in the emulator. So I went through the internals of Guisan, modernized the code where applicable and fixed some minor glitches. At the same time, I improved the widgets layout on screen, since most of them left practically no whitespace at all between the controls and their text labels, which made things look kind of ...ugly. Even just adding 1-2 pixels of spacing immediately improved the look of things, although it's a subtle change.

Additionally, I improved the look of widgets based on their Enabled/Disabled status. Finally you can clearly see when a widget is disabled now (like I said, things that you take for granted in other toolkits). Some more work is needed in this direction, but I think most of it is done for now.

Another idea was to change the color theme and widgets design, to make it look more Amiga-like. Perhaps similar to the defaults of OS3.1 or MUI (though MUI is so customizable that there is no default there). But that might take quite a while to get to, so no promises yet...

Meanwhile, plenty of other improvements are already implemented in the current beta, as shown in the history below (as of today):

  • cdimage0= worked slightly differently than GUI eject (WinUAE)
  • BPLCON4 sprite bank/bitplane XOR timing (WinUAE)
  • Bumped UAE version to 4.4.0
  • Fixed #633: -cdimage option would not set right flags in config
  • Fixed #628: Removed obsolete "Hide Idle LED" option
  • Fixed LED dropdown options index, was off by one
  • Fixed #635: Don't crash if there's something wrong with the latest WHDLoad XML
  • Updated bundled XML to latest version
  • Improvements for #193: Detect controllers reconnecting and re-initialize them
  • Fixed bug in GUI, where changing the 24-bit addressing option would not refresh the RAM panel
  • Updated disk.cpp and zfile.cpp from WinUAE
  • Added Smart Centering parameters in WHDLoad booter #637
  • More updates in inputdevice, devices, custom, picasso96 and cia from the latest WinUAE sources
  • Internal GUI refactoring, modernizing Guisan code and fixing bugs
  • GUI layout improvements, removed custom widgets in favor of improved Guisan standard ones