Dimitris Panokostas 40e73ea8ae
1440 create home directories on startup (#1443)
* 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
2024-09-28 09:54:50 +02:00
2024-09-23 19:42:29 +02:00
2024-09-23 19:42:29 +02:00
2019-11-16 22:47:28 +01:00
2024-09-24 08:10:53 +02:00
2017-03-02 00:27:30 +01:00
2024-08-30 19:55:14 +02:00
2022-02-08 20:22:46 +01:00
2022-06-07 23:01:41 +02:00
2024-09-23 19:42:29 +02:00

Optimized Amiga emulator for multiple platforms

ko-fi

Follow me Mastodon!

C/C++ CI

Discord

Amiberry logo

Amiberry is an optimized Amiga emulator for ARM32, ARM64, x86_64 and RISC-V platforms. It runs on both macOS and Linux. Windows users can always use WinUAE.

The core emulation comes from WinUAE, and even the main GUI is designed to look similar to that.

It includes JIT support, to get high-performance results on CPU-intensive emulated environments, like desktop applications. On top of that, there are some unique features developed specifically for Amiberry, such as the WHDLoad booter, support for RetroArch controller mapping, and several more.

There are currently two Amiberry versions available: Amiberry and Amiberry-Lite - see here to see which is the best pick for your needs.

Requirements

Linux

Amiberry has been tested on the following Linux distros:

  • Debian/RPI-OS Bullseye, Bookworm ARM32, ARM64 and x86_64
  • Ubuntu ARM64 and x86_64
  • Manjaro ARM64 and x86_64
  • DietPi
  • RetroPie
  • Batocera
  • Knulli
  • MuOS
  • TheRA it should also work on several others, as long as the requirements are met.

Some distros include it in their app ecosystem (e.g. DietPi, RetroPie and others), so you can install and upgrade it directly from their menu system.

macOS

Amiberry also runs on macOS, and has been tested on:

  • Catalina (x86_64)
  • Monterey (x86_64 and Apple Silicon)
  • Sonoma (x86_64)
  • Newer macOS versions should work as well

Under macOS, you will need to install the required libraries using Homebrew. For more details on how to do that or if you want to compile it from source, please refer to the relevant wiki page.

Also, please keep in mind that Amiberry on macOS is self-signed, so you will need to allow it to run through Apple's security dialogs that will block it by default (since it's coming from a non-recognized Developer account).

Dependencies

Amiberry requires the SDL2 framework for graphics display, input handling and audio output. Additionally, a few extra libraries are used for CD32 MPEG and mp3 decoding.

If you just want to just run the Amiberry binary, you can install the required libraries on Debian/Raspbian/Ubuntu derived distros like this:

  sudo apt install cmake libsdl2-2.0-0 libsdl2-ttf-2.0-0 libsdl2-image-2.0-0 flac mpg123 libmpeg2-4 libserialport0 libportmidi0

If you want to compile Amiberry from source, you'll need the -dev version of the same packages instead. For example, on Debian-based distros:

  sudo apt install cmake libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev libflac-dev libmpg123-dev libpng-dev libmpeg2-4-dev libserialport-dev libportmidi-dev

Or if you're using an Arch-based distro (e.g. Manjaro), the relevant package names are these (these include the dev versions by default):

  sudo pacman -S base-devel cmake sdl2 sdl2_ttf sdl2_image flac mpg123 libmpeg2 libserialport portmidi

if you have an AUR helper like yay, you can build and run Amiberry through:

  yay -S amiberry

Additionally, please note that you will probably also need some Kickstart ROMs. Amiberry includes the free AROS ROM, so you can start it up and use AROS with it directly, but most games will require a Kickstart 1.3 (for A500 emulation) or Kickstart 3.x (for A1200 emulation). Amiga Forever is a good source for those.

Getting Amiberry

Distro package management

Several popular distros (like RetroPie, DietPi, Pimiga and others) already include Amiberry either pre-installed, or through their package management systems. Please follow the methods provided in those distros for a smoother experience, and refer to their owners for support during this process.

Flatpak

A flatpak version is available on Flathub

Standalone binaries

The latest stable releases come with binaries for several different platforms, that you can download from the Releases area. If your platform is not included, or if you want to test a newer version than the stable release, then you will have to compile it yourself. Read on to see how to do that.

Compile from source

Alternatively, you can of course compile the latest version of Amiberry from source yourself. To do that, follow these steps:

First, clone this repository locally

  git clone https://github.com/BlitterStudio/amiberry
  cd amiberry

Amiberry can be built using CMake or the old Makefile approach. The recommended and simpler way, is using CMake:

  cmake -B build && cmake --build build -j4

Build using the Makefile (old approach)

If you want to use the Makefile instead, please consult the relevant Wiki page for the full list of available platforms, as there are many (and separate for 32-bit and 64-bit ones). Alternatively, you can also check the Makefile itself for a full list of supported platforms.

For more documentation subjects, please check the Wiki page

Description
No description provided
Readme GPL-3.0 78 MiB
Languages
C++ 88.5%
C 11.1%
Assembly 0.3%