* Merge latest Guisan updates from upstream
* Added drawChildren to container
Our SelectorEntry class would not draw the children otherwise
* Add 2 pixels of height to Checkboxes, to avoid font clipping
* bugfix: Fix Dropdown scrollarea would obstruct content (fixes#1476)
* bugfix: Dropdown scroll bar would still get in the way (#1476)
* bugfix: Add 1 more pixel of padding in Textfield (fixes#1478)
* fixed vertical alignment of checkbox
* Fixed bug with string list model
* refactored functions in Expansion panel
Changed order of functions, to match WinUAE's mess closer
* Added Accelerator board RAM slider
* Fixed CPU board sub items dropdown list
* clear more lists when refreshing accelerator dropdowns
* Fixed StrngListModel clear
* Enable multiple RTG boards in cfgfile
* Added registry file, refactor things to use that for storing ROMs
Instead of storing the detected ROMs in the amiberry.conf file, we will switch to using the available functionality of registry -> ini file, that WinUAE already has.
This has become necessary, in order to use the same logic when storying the ROM entries (with their ID and type, not just the filename), which is used from the Expansions panel for custom board roms.
It also means changing the existing ROMs functionality to match, so it's likely some things will need fixing after this as well.
* Fixed rom scanning
* Create XDG dirs on startup, if they don't exist
This happened at least once in WSL2 + Debian, so let's make sure
* Fixed rom scanning again, ensure slash in path when needed
* enhancement: Add new GUI panel, for handling GUI Themes
* Merged preview into gui-themes
* add more widgets on panel
* replaced textfields with sliders
* refactor: optimize PanelThemes
Remove duplicate code, simplify and optimize
* refactor: further optimize PanelThemes
* enhancement: added color box in PanelThemes
* refactor: Themes are now external files, not in amiberry.conf anymore
- Move themes outside of amiberry.conf
- only the theme name remains in amiberry.conf, which points to the filename to use. The default is "default.cfg" and it will be created on startup, if it's missing, with the default theme values.
- added "themes" directory and automatic creation of it on startup, if missing. The location is under XDG_DATA_HOME (~/.local/share/amiberry/themes by default)
- refactored code, themes are now loaded during the prefs_to_gui stage
- added functions for loading/saving themes to filenames
* refactor: load a fallback font if the theme one wasn't found
- Fallback to a standard system font, if the theme one wasn't found
- Enable anti-alias for GUI font
- Create default theme file if it's missing
- Added themes dropdown in GUI
* don't need the extra slash
* refactor: rename theme extension to .theme, load one on startup
- Changed .cfg to .theme for themes
- Load the selected theme on startup
- Set the defaults if the theme is missing a font name
* refactor: rename textbox_background_color to background_color
* feat: added ability to set Global widget colors
* bugfix: SelectFile didn't work when creating new files
* refactor: rename default theme to Default.theme
* added Save As option in Themes
* doc: improved help text in Themes panel
* added some navigation for the Themes panel
Sliders are not included, as they don't have unique IDs yet
* refactor: macOS bundle changes
- Move macos build files in separate directory
- Harmonize logic of creating folders on startup between MacOS and Linux versions
- Removed macos_init_amiberry.zsh script, no longer needed
* ci: enable builds on all pushes and pull requests
* ci: build on every push, not just tags
* build: fix some paths
* Added cmake macosx bundle options
* Fixes for macOS directory detections
* build: fix path to template file
* Escape paths in macOS Library directory
* build: when compiling on macOS, capitalize project name
* ci: use CMake to prepare macOS bundles
* ci: fix path for macOS bundle
* ci: remove CPack options for macOS (not needed)
The build already produces an app bundle now, so there's no need for Cpack as well for this platform
* ci: don't include the build dir in the macOS zip
* ci: fix path to macOS artifact
* ci: fix macOS x86 zip path
* build: add a few more properties in the plist file
* build: combine macOS and Linux options where possible
* build: added man file (fixes#1445)
* ci: build macOS packages the same way as Linux Deb ones
* ci: also change apple silicon build
* build: fix macos bundle packaging from cmake
* refactor: reorganize CPack entries
- reorganized cpack entries in more logical order
- added DMG background image
* refactor: improved icon
* bugfix: fixed applescript .app reference
* build: maybe we don't need the RPATH change anymore
* build: skip install step in bundled libs, do it from the root one only
* refactor: use .dylib for macOS libs, look for them in Frameworks directory
* build: fix destination folder of DEB assets
* build: remove Makefiles and obsolete files
* refactor: data_dir in macOS should be in Resources
* refactor: some dirs should not be in the config file
- data dir is determined on startup, having it in the config file will only make things worse
- path dir doesn't seem to be necessary to save/load
- config path as well
* build: move gamecontrollerdb.txt to controllers directory
* enhancement: create home directories if they don't exist
- After the directories have been decided (data, home, config), create those in the specified HOME directory, if they don't exist
- If they didn't exist, and we had the original contents installed in /usr/share/amiberry/<dir>, copy those over and change permissions. This ensures that the distributed files like the AROS ROMs, the WHDLoad booter and the controllerdb files, are always there in the home dir.
* chore: we no longer need to copy all the directories in the package
Now that we create the home directories on startup, we don't need the empty ones in the package anymore.
Only those that contain something can stay
* build: add stripping of binaries
* chore: ignore .idea folder
* bugfix: WHDLoad booter A1200 config was incorrect
After the additional entries in A1200 configs and models, the booter was set to incorrectly use a config with a Blizzard accelerator. Since that requires a board ROM, which might not be available, it has to change.
Using the default A1200 config instead, and setting Fast RAM to 8MB after that.
* build: install icon in shared location
When preparing the .deb package, the application icon should go in the /usr/share/icons/hicolor/... location, to adhere with established standards
* build: use ~/Amiberry instead of ~/.amiberry
Perhaps it's best to use a non-hidden folder for amiberry directories, make it easier on the users to find it
* refactor: use ~/Amiberry/conf instead of ~/.config/amiberry for config files
* refactor: change desktop file icon reference
Should be possible to use just "amiberry" now, that the icon file is copied in the right location
* chore: fix references to github.com/midwan -> github.com/BlitterStudio
* refactor: move plugins dir to /usr/lib/amiberry in the .deb package
If we are using a system-wide installation, with the .deb package, use /usr/lib/amiberry for plugins.
Check the HOME/Amiberry/plugins next, create it if necessary.
Fallback to the startup directory if that's not available (probably never).
* refactor: only move the abr folder in the destination plugins
When using the .deb package, only the abr folder should be copied in the destination.
Otherwise, we get a plugins directory created there as well
* refactor: Change Kickstarts to Roms
The Kickstarts directory can contain different kind of ROMs, not only kickstarts.
It's best if we rename it accordingly
* build: CPack updates
- Removed unneeded line
- added CPACK_DEBIAN_PACKAGE_ARCHITECTURE
- Added Extended Description
- Fixed description starts with package name
* ci: rename architectures properly
Let's keep the names identical to what dpkg reports
* build: fix some lintian errors
- location of plugins
- section
* build: added copyright and changelog in DEB
* build: fix location of debian files
* build: add copyright notice, fix changelog
* build: changelog should be compressed
* build: extend the description
* build: make the description lines shorter...
* build: description should not be longer than 80 chars
* build: remove timestamp from changelog
Fix another lintian complaint
* build: description again
* bugfix: the plugins dir was not correctly set
* refactor: Updated desktop entry to handle MimeTypes
* build: remove duplicate key in desktop file
* build: add more mimetypes to desktop file
* modify CMakeLists.txt to be able to build packages for MacOS and Linux
* Moved pull request template to .github dir
* Moved code of conduct file under .github directory
* Removed gitmodules file
* Moved install extra dirs to only if we're not building an Apple bundle
* Added first version of a Deb package option to CPack
* Fixed double directory creation during installation/packaging
* Remove debian directory
We won't be using this, going for CPack instead
* Fixed package version
* Clean up contents of packages
* Fix dependencies and filename of .deb package
* Bump version to 6.3.5
* Add desktop file for Deb package
* Remove archive generator, the DEB one is good enough
* Change pipeline to use CMake for Linux targets
Let's generate some .deb files!
This is most likely missing stuff, like the distro name...
* Fix incorrect architecture names in cross-compiler
* Fix 32-bit arm package architecture
* ci: Allow 32-bit arm builds
* ci: disable the bullseye builds for now
Until we figure out a solution with Bullseye + CMake + SDL2_image/SDL2_ttf
* ci: fix expected targets
* ci: bring back bullseye builds
* Remove path from desktop shortcut
* Fixed typo in comment
* Set the version in the Project, use that for CPack
* Updated compiled and linker flags with no-pie properly
- There were some differences between the Makefile flags and CMake. Now they are identical
- Updated the Findmpg123.cmake file with the latest one from upstream
* Include bullseye build targets again
* ci: Cmake builds would fail if started under a subdir
* ci: add cmake files needed for bullseye
* ci: updated macOS include directories
* ci: fix compiler error under clang/macOS
* ci: remove unused linker flag
* ci: add cmake in macOS homebrew
* enhancement: Merge more WinUAE code
- Added PPC
- Added PCEM
- Added PCI
- Added MAME (A2410 and TM34010)
- Added QEMU (various gfx cards, network cards, SCSI, etc)
- Enabled relevant ifdefs
* enhancement: Added luascript, slirp_uae
- Removed unused ersatz
- Added luascript (disabled for now, needs an extra library)
- Added slirp_uae (disabled for now)
- Added sources for separate tool "uaeunp"
* enhancement: Added DSP emulation
- Added DSP emulation files from WinUAE, with slight modifications (disabled for now)
* enhancement: Enabled TabletLibrary, DSP, Draco
Not implemented on the GUI yet, but enabled related ifdefs in the code
* enhancement: Added SANA2 support
Not visible on the GUI yet
* enhancement: sync includes and other details with WinUAE
* enhancement: added support for more RTG boards
* bugfix: added missing arm/arm64 headers for pcem codegen_backend
WinUAE didn't have these, so let's grab them from PCem v16 directly
* enhancement: Fixed defines in picasso96.cpp
* bugfix: Maybe we should actually sleep for a few ms in sleep_millis2
* enhancement: P96 - added ifdefs where Amiberry-specific pieces are added
* chore: sync time/rpt headers with WinUAE
* chore: reduce the lines of ifdefs in ahi_v2
* enhancement: use SDL_Delay instead of waiting for the cpu_wakeup_event
* perf: only call init_row_map if the pixels have changed
* enhancement: Added GVP T-Rex II
Merged from WinUAE
* enhancement: Added DKB WildFire v1.0 and Masoboshi v2.197
Merged from WinUAE
* enhancement: Flush trap queues during reset.
* bugfix: Added missing S3 Virge PCI byteswap mode
Merged from WinUAE
* perf: Do not unnecessarily call SetCursor() continuously.
* bugfix: Fixed uae_sem_unpost
This should be SemPost, not SemWait
* enhancement: Allow 16-bit only if D3D9 is selected.
Merged from WinUAE - Amiberry uses gfx_api value 2 anyway.
* bugfix: Fix SPRxPOS modification just before horizontal match if sprite had lowest horizontal bit set.
Merged from WinUAE
* enhancement: Both COPxJMP strobe emulation update
Merged from WinUAE
* enhancement: Serial emulation updates, more accurate transmit timing, receive timing is not anymore instant except in direct mode.
Merged from WinUAE
* enhancement: OpalVision undocumented horizontal panning emulation
address load was ignored if it was included in second control line.
* perf: Reduce amount of read_processor_time() calls.
Merged from WinUAE
* build: updated makefile with new files
* enhancement: added PPC options to GUI
* enhancement: added MapROM option in GUI
* bugfix: GUI RAM Panel did not highlight selected items properly
* enhancement: added label in Input panel for Parallel Port joystick adapter
The label should make it more clear that the last two ports are for the emulated parallel port joystick adapter
* enhancement: GUI listbox inactive color improvement
The guisan listbox would use an inactive color of a fixed value.
It should use something from the color scheme, instead.
* enhancement: added more models and configs in Quickstart
Guisan has been getting several updates lately, improving and fixing various bugs.
Upgrading to the current version, but keeping my own improvements until I've had time to push them upstream
* Remove capsimg submodule
* Add capsimg sources
* Add dependencies in Makefile and CMakeLists.txt to build libcapsimage.so
* Fix path in makefile
* Add libs to make clean also
* Automatically build capsimg as well
* Remove extra step to build capsimg from pipeline
From now on, external libraries such as the CAPSimg.so and libfloppybridge.so, will live in a separate directory named "plugins". This cleans up the main dir from such files.
The new path is added to the GUI (Paths) and config files accordingly. The default value is <start_path>/plugins.
The Makefile will now build floppybridge by default - CAPSimg is a submodule, so it needs to be checked out before it can be built.
MacOS is a special case, since the libs there should be under the Resources folder. So, we're leaving that as-is for now.