Skip to content
Christer Solskogen edited this page Dec 11, 2024 · 75 revisions

Frequently Asked Questions

Q: What has changed with the directory handling in newer versions?

A: A lot has changed! Please check the dedicated wiki page here

Q: On Raspberry Pi OS Bookworm, the performance when running in Full-Window is terrible. But it's much faster in Windowed mode. What is going on?

A: This is due to SDL2's choice of back-ends. SDL 2 prefer X11, even when Wayland is used (Starting from Raspberry PI OS Bookworm it is using Wayland by default). You can override this manually, by telling SDL2 to use a specific back-end, or change the order of priority it should use. Alternatively, you can switch to X11 instead of Wayland using rpi-config).

First, test running Amiberry like this (from the terminal): SDL_VIDEODRIVER=wayland ./amiberry Does this fix the performance issue while in Full-Window modes? If so, you can make this change apply whenever you login, by doing the following:

  • Open a console, and type sudo nano /etc/profile.d/sdl2_fix.sh - provide the root password if requested.
  • In the text editor that opens, type the following:
#!/bin/bash
export SDL_VIDEODRIVER=kmsdrm,wayland,x11
  • Press Ctrl-X and then Enter (or Y), to save the changes to the file.
  • Log out and log back in, for the changes to take effect.

This will make SDL first try the kmsdrm backend, then wayland before falling back on x11.

Q: I have a Competition Pro joystick, but the mapping doesn't seem to be correct. What can I do?

A: The below is only an issue with older versions of Amiberry. Amiberry v5.x or newer already includes the correct mapping in the controllers file. Starting with v4.x of Amiberry, we use SDL2's "gamecontrollerdb.txt" file for mappings of known controllers. It seems that the Competition Pro is re-using a gamepad USB ID, so it gets an incorrect mapping from that file. To fix the problem, you'll need to edit the file conf/gamecontrollerdb.txt with a text editor, and find the line starting with the following ID:

03000000790000001c18000011010000,PC Game Controller

Change that line with the following contents:

03000000790000001c18000011010000,Competition Pro Extra,a:b3,b:b1,back:b2,leftx:a0,lefty:a1,start:b0,platform:Linux,

Save the file and restart Amiberry. The mapping should now work properly for this joystick.

Q: Amiberry on a Pi4/Pi400 seems extraordinary slow. The Status Line shows it's only doing 30 FPS. What's wrong?

A: Is your connected monitor/TV a 4K one? If so, it may be forcing your Pi output to 4k@30Hz resolution. Amiberry uses VSync, so it will only show as many frames per second as the current refresh rate of your monitor. If that's set to 30, video and audio will be choppy and slower than expected. Normally you can change the resolution in /boot/config.txt and force it to a 1080p one. However, some SmartTVs seem to ignore that and force a 4K resolution again... If that's the case with you, you could try forcing the configuration to 1080p in /boot/config.txt by using these additional options:

[hdmi:0]
hdmi_max_pixel_freq=200000000
[hdmi:1]
hdmi_max_pixel_freq=200000000
hdmi_ignore_edid=0xa5000080

Q: When I type some letters on the keyboard, I get unexpected behavior (e.g. typing x also adds Return). What's wrong?

A: Don't use the "Keyboard as Joystick" option in the Input panel. The CD32 mapping uses some extra keyboard keys that will interfere with normal keyboard typing.

Q: Input latency seems increased, when running Amiberry under a full Desktop. What can I do?

A: Disable the Compositor to gain some more performance. On XCFE desktops for example, you can disable your compositor by opening the main Applications menu and clicking “Settings -> Window Manager Tweaks.” This will open a new window. Open the Compositor tab, and uncheck the option “Enable display compositing.”

Q: How can I launch CD32 games from .CUE/BIN CD images?

A: Launching CD32 games does not require any default config, and you shouldn't use the A1200 config with it either (it won't enable the CD32 specific bits). If you have .cue/bin files, then the best way to launch them would be:

  1. From the command line: use the -autoload parameter. E.g. ./amiberry -autoload /home/pi/RetroPie/roms/amiga/Alien Breed - Tower Assault_CD32.cue (use escape characters where necessary, to handle spaces)
  2. From the GUI: Select CD32 from Quickstart, select the .CUE file in the CD slot, click on Start. CD32 images don't need or use WHDLoad. If you have WHDLoad installed CD32 games however, you can also launch them using the -autoload option, in the same way as shown above. Only the file passed would probably be an .lha one, not a CD image. Keep in mind that WHDLoad games usually don't contain CD audio tracks, so you'll be missing those...

Q: I have thousands of Config files in my installation, and Amiberry takes a long time to display the GUI.

A: The default behavior is to scan the list of config files, open each one and get the Description in order to populate the list in the GUI. If you have many such files, the process can take a longer time than desired. To bypass this behavior, you can make a change in the conf/amiberry.conf file:

  • Open the file, and look for the line read_config_descriptions.
  • Change the value of that line to no and save the file again.
  • Restart the emulator for the changes to take effect.

Q: My game runs too fast, what can I do?

A: Run the Whdload versions and Switch on “wait for blitter” and this should fix the speed issue on many games.

Q: I've got a question about the WHDLoad booter...

A: Please refer to the specific FAQ for this: WHDLoad Booter F.A.Q

Q: Audio is noticeable distorted when playing back with USB audio device instead of 3.5mm audio jack

A: Check if you're using a GPIO kernel module, which imposes some latency. Normally there shouldn't be any difference in audio latency from Amiberry, regardless if you're using the 3.5mm audio jack, HDMI-out, or a USB audio card.

Q: I want to troubleshoot something. Can I enable logging in Amiberry?

A: Logging can be enabled from the GUI (Paths panel) or by changing a value in the conf/amiberry.conf file:

  • Open the file, and look for the line write_logfile.
  • Change the value of that line to yes and save the file again.
  • Restart the emulator for the changes to take effect. A new file named amiberry_log.txt will be created in the same location the emulator was started from. Additionally, the WHDLoad booter will also save log information in the whdboot/save-data/Debugs path. Note: Make sure that the user running the emulator has permissions to create the file!

Q: Can I enable Scanlines by default for all games?

A: Yes, with v2.24 onwards a new feature was added, you can make a change in the conf/amiberry.conf file:

  • Open the file, and look for the line scanlines_by_default.
  • Change the value of that line to yes and save the file again.
  • Restart the emulator for the changes to take effect. Note: Scanlines requires that Line Doubling is also enabled, which will cause a performance hit, since double the amount of lines will have to be drawn on-screen. Also, if your vertical resolution is not enough to display scanlines, this option will have no effect (it will revert back to no scanlines automatically).

Q: Are HDFs with multiple partitions and custom Filesystems (e.g. PFS) supported?

A: Yes, you can use HDFs with RDB and multiple partitions, even if they were formatted using PFS. If you use a custom filesystem without RDB mode HDFs, just remember to place the Filesystem handler you're using (e.g. FastFileSystem or pfs3aio) in the kickstarts directory, along with your Kickstart ROMs. Then add your HDF as normal, and Amiberry will automaticall look for it there and attempt to mount the partitions during startup.

Q: When the emulator starts up, I get a few warning messages (MESA-LOADER: failed to retrieve device information) on the console. Is this a problem?

A: This is due to a known bug in libdrm (https://bugs.launchpad.net/raspbian/+bug/1656930). It's harmless and you can ignore it.

Q: Mac OS App is "damaged" or it says it is not compatible. Why?

A: The binary is not broken, but Apple OS does not allow apps that don't come from a "recognized developer" to be run if you download it with a browser. You can whitelist the app manually, however. Open a console and run xattr -rd com.apple.quarantine Amiberry.app.

Q: What is KMSDRM and should I use it?

A: KMSDRM makes it possible to run Amiberry in console, without running X11 or Wayland. It might squeeze a little bit of extra performance. That said, the performance gain from running in KMSDRM is neglect-able for most use cases. You'll probably wont see the difference unless you're running a benchmark or do rendering on the emulated Amiga.

Q: When I use Amiberry in KMS the mouse doesn't work. Why? (Raspberry PI OS)

A: There are several issues with the version of SDL2 shipped with Debian Bullseye / Raspberry Pi OS. You have install your own, or upgrade to the latest Raspberry Pi OS (Bookworm) which doesn't have this issue.

Q: How do I use Amiberry in KMSDRM (console) or Why is KMSDRM so slow?

A: The SDL that is distributed in Debian Buster (2.0.9) doesn't support KMSDRM, and the one in Bullseye (2.0.14) has some bugs that have been fixed in the latest upstream version of SDL (2.0.18 and later), so in order to fix that you have to install that manually. How to do that is out of scope for this FAQ. If you run Manjaro or Arch Linux, KMSDRM is supported out of the box, no need for additional hacks. The latest Raspberry Pi OS (Bookworm) also works, since it includes a newer version of SDL2.

Q: Which KMS driver should I use?

A: Amiberry works with all versions, but keep in mind the following when making your decision:

  • KMS is the new default in newer distros, including the offical RPI-OS one (starting with Bullseye)

Q: Sound doesn't work with KMS (Raspberry Pi OS)

A: But it works when using the fkms driver, right? Install pulseaudio and reboot.

Q: I'm using a tiling window manager, and amiberry doesn't behave as it should

A: On sway add this to your config file:

for_window [app_id="amiberry"] floating enable
for_window [title="Amiberry GUI"] focus

For Hyprland

windowrule = float, ^(amiberry*|Amiberry*)$
Clone this wiki locally