### Build and Install GameMode from Source Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Clones the GameMode repository, checks out a specific release version (or uses the master branch), and builds/installs it. The bootstrap script handles setup. ```bash git clone https://github.com/FeralInteractive/gamemode.git cd gamemode git checkout 1.5 # omit to build the master branch ./bootstrap.sh ``` -------------------------------- ### Build and Install libslirp Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/slirp/README.md Build and install the shared library using meson and ninja. Ensure you have a C compiler, meson, and glib2 development libraries installed. ```sh meson build ninja -C build install ``` -------------------------------- ### Configure FS-UAE with Installation Prefix Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Sets the installation directory for FS-UAE. Defaults to /usr/local. ```bash ./configure --prefix=/path/to/install ``` -------------------------------- ### Install openSUSE Dependencies Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs necessary packages for bootstrapping and building FS-UAE on openSUSE. ```bash sudo zypper install autoconf automake freetype2-devel gcc gcc-c++ gettext \n glib2-devel libpng-devel libtool libXi-devel openal-devel SDL2-devel zip ``` -------------------------------- ### Installation Configuration Source: https://github.com/frodesolheim/fs-uae/blob/main/mame/3rdparty/utf8proc/CMakeLists.txt Configures the installation of the utf8proc library, including headers, libraries, and pkgconfig files, if UTF8PROC_INSTALL is enabled. ```cmake if (UTF8PROC_INSTALL) include(GNUInstallDirs) install(FILES utf8proc.h DESTINATION "${CMAKE_INSTALL_FULL_INCLUDEDIR}") install(TARGETS utf8proc ARCHIVE DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" ) configure_file(libutf8proc.pc.cmakein libutf8proc.pc @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libutf8proc.pc" DESTINATION "${CMAKE_INSTALL_FULL_LIBDIR}/pkgconfig") endif() ``` -------------------------------- ### Install Fedora Dependencies for Building Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs packages required for building FS-UAE on Fedora. ```bash sudo dnf install SDL2-devel glib2-devel libpng-devel gcc gcc-c++ openal-devel libXi-devel zip libmpeg2-devel SDL2_ttf-devel glew-devel zlib-devel freetype-devel hicolor-icon-theme ``` -------------------------------- ### Install macOS Dependencies for Bootstrapping and Building Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs additional dependencies for FS-UAE on macOS via Homebrew. ```bash brew install autoconf automake freetype gettext glew glib jpeg libmpeg2 \n libpng libtool openal-soft pkg-config sdl2 sdl2_ttf zlib ``` -------------------------------- ### Install Debian/Ubuntu Dependencies Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs necessary packages for bootstrapping and building FS-UAE on Debian-based systems. ```bash sudo apt install autoconf automake build-essential gettext \n libfreetype6-dev libglew-dev libglib2.0-dev libjpeg-dev libmpeg2-4-dev \n libopenal-dev libpng-dev libsdl2-dev libsdl2-ttf-dev libtool libxi-dev \n libxtst-dev zip zlib1g-dev ``` -------------------------------- ### Install GameMode on Gentoo Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Installs GameMode using Gentoo's package manager. This command installs a stable release from sources and handles dependencies. ```bash emerge --ask games-util/gamemode ``` -------------------------------- ### Example Bridgeboard Configuration Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/bridgeboard.md This configuration enables Bridgeboard and VGA emulation. Ensure you have the correct ROM files and set BIOS options as described. ```ini uae_a2386_rom_file = A2386SX 1.00 391168-01.bin uae_a2386_rom_options = 8M,config= uae_flash_file = flash.nvr uae_gfxcard_type = VGA uae_gfxcard_size = 2 uae_x86vga_rom_file = 5420.vbi uae_floppy2type = 5 ``` -------------------------------- ### Example Output of Verifying Mouse Device Permissions Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/mouse.md This is an example of the expected output when verifying mouse device permissions on Linux, showing that files have read permissions for all users. ```text crw-rw-r-- 1 root input 13, 64 aug. 20 17:30 /dev/input/event0 crw-rw-r-- 1 root input 13, 65 aug. 20 17:30 /dev/input/event1 ``` -------------------------------- ### Install MSYS2 Dependencies for Windows Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs dependencies for bootstrapping and building FS-UAE using MSYS2 on Windows. ```bash pacman -S autoconf automake gettext libtool make \n mingw-w64-x86_64-freetype mingw-w64-x86_64-gcc mingw-w64-x86_64-glew \n mingw-w64-x86_64-glib2 mingw-w64-x86_64-libmpeg2 mingw-w64-x86_64-libpng \n mingw-w64-x86_64-openal mingw-w64-x86_64-SDL2 mingw-w64-x86_64-SDL2_ttf \n pkg-config zip ``` -------------------------------- ### Example Plugin Directory Structure Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/docs/plugins.md Illustrates the expected file and directory layout after extracting a plugin. This structure helps in understanding how FS-UAE organizes plugin components. ```text Data/Plugins/CAPSImg/ Data/Plugins/CAPSImg/Plugin.ini Data/Plugins/CAPSImg/Linux/x86-64/CAPSImg.so Data/Plugins/CAPSImg/Windows/x86-64/CAPSImg.dll (...) ``` -------------------------------- ### Build Options Source: https://github.com/frodesolheim/fs-uae/blob/main/mame/3rdparty/utf8proc/CMakeLists.txt Configures build options such as enabling installation, testing, and fuzzing engines. ```cmake option(UTF8PROC_INSTALL "Enable installation of utf8proc" On) option(UTF8PROC_ENABLE_TESTING "Enable testing of utf8proc" Off) option(LIB_FUZZING_ENGINE "Fuzzing engine to link against" Off) ``` -------------------------------- ### Install GameMode Dependencies on Ubuntu/Debian Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Installs necessary build tools and libraries for GameMode on Ubuntu and Debian-based systems. You may also need to install `dbus-user-session`. ```bash apt install meson libsystemd-dev pkg-config ninja-build git libdbus-1-dev ``` -------------------------------- ### Install macOS Homebrew Dependencies Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs build-time dependencies for FS-UAE on macOS using Homebrew. ```bash brew install autoconf automake cmake dos2unix libtool m4 meson pkg-config \n wget ``` -------------------------------- ### Windows Path Formatting Examples Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/directories.md On Windows, paths in configuration files must use forward slashes or double backslashes. Single backslashes are not permitted. ```text C:/Amiga/Files C:\Amiga\Files ``` -------------------------------- ### Install FluidSynth via Homebrew (macOS) Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/midi.md Install FluidSynth on macOS using Homebrew. A soundfont like FluidR3_GM.sf2 is also required. ```bash brew install fluidsynth ``` -------------------------------- ### Install Fedora Dependencies for Bootstrapping Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Installs packages required for the bootstrap process on Fedora. ```bash sudo dnf install autoconf automake libtool gettext ``` -------------------------------- ### Install GameMode Dependencies on Fedora Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Installs necessary development packages for GameMode on Fedora systems. ```bash dnf install meson systemd-devel pkg-config git dbus-devel ``` -------------------------------- ### Launch HDToolBox with uaehf.device Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/hard-drives.md Use this command to start HDToolBox and specify the uaehf.device for accessing the hard drive image. ```shell DF0:Tools/HDToolBox uaehf.device ``` -------------------------------- ### Example of Name Conversion Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/input-mapping.md Illustrates how a device name with special characters and spaces is converted into a format usable for matching in FS-UAE configuration. ```config controller_xbox_360_wireless_receiver ``` -------------------------------- ### Map Game Actions to First Gamepad (Joystick 0) Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/input-mapping.md Example configuration for mapping specific game actions (like shift and F1) to the shoulder buttons and north button of the first connected gamepad. ```config joystick_0_left_shoulder = action_key_shift_left joystick_0_right_shoulder = action_key_shift_right joystick_0_north_button = action_key_f1 joystick_0_dpad_down = action_key_cursor_down ``` -------------------------------- ### Install GameMode Dependencies on Arch Linux Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Installs required packages for building and running GameMode on Arch Linux. ```bash pacman -S meson systemd git dbus ``` -------------------------------- ### Install GameMode from Gentoo Git Sources Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Installs the latest development version of GameMode from Git on Gentoo. Ensure you understand the implications of using development branches. ```bash ACCEPT_KEYWORDS="**" emerge --ask ~games-util/gamemode-9999 ``` -------------------------------- ### Run FS-UAE from source directory Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/debugging.md Execute FS-UAE directly from the source directory without installation. This is useful for testing changes or running a debug build. ```bash ./fs-uae ``` -------------------------------- ### Compile utf8proc with Make Source: https://github.com/frodesolheim/fs-uae/blob/main/mame/3rdparty/utf8proc/README.md Standard compilation and installation of the utf8proc C library using Make. This includes options for testing and cleaning generated files. ```bash make make install make check make clean ``` -------------------------------- ### Set CPU Governor to Performance Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/raspberry-pi-4.md Installs cpufrequtils and sets the CPU governor to 'performance' to ensure the CPU runs at full speed, which is crucial for stable FS-UAE frame rates. This setting is not permanent and must be reapplied after a reboot. ```bash sudo apt install cpufrequtils sudo cpufreq-set -g performance ``` -------------------------------- ### Map Game Actions to Any Connected Controller Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/input-mapping.md Example configuration where specified game actions are mapped to the corresponding buttons on any connected controller. This provides a general input mapping. ```config controller_left_shoulder = action_key_shift_left controller_right_shoulder = action_key_shift_right controller_north_button = action_key_f1 controller_dpad_down = action_key_cursor_down ``` -------------------------------- ### Bootstrap, Configure, and Make Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Standard build process for FS-UAE. Use this sequence after cloning the git repository. ```bash ./bootstrap ./configure make ``` -------------------------------- ### Install Amiga Forever using Wine Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/amiga-forever.md Use this command to install Amiga Forever 2016 Plus edition via Wine on Linux. Ensure the path to the MSI installer is correct. ```bash wine msiexec /i ~/Downloads/AmigaForever2016Plus.msi ``` -------------------------------- ### Configure and Build FS-UAE Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/README.md After bootstrapping, run these commands from the 'fs' sub-directory to configure and build the project. ```sh ./configure make ``` -------------------------------- ### RP_IPC_TO_GUEST_SHOWOPTIONS Source: https://github.com/frodesolheim/fs-uae/blob/main/od-win32/cloanto/RetroPlatformIPC-doc.txt Asks the guest to open its options/settings dialog. The guest should pause emulation before opening and resume after closing. ```APIDOC ## RP_IPC_TO_GUEST_SHOWOPTIONS ### Description This message is used to ask the guest to open its options/settings dialog. Before opening the dialog, the guest should send RP_IPC_TO_HOST_PAUSE message to pause the emulation session. After closing the dialog, the emulation should be resumed by sending another RP_IPC_TO_HOST_PAUSE message. ### Data sent None ### Response LRESULT = 1 if the guest acknowledged the command or 0 otherwise ``` -------------------------------- ### Bootstrap FS-UAE Project Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/README.md Run this command in the git repository root to bootstrap the project using autoconf/automake. ```sh cd od-fs ./bootstrap ``` -------------------------------- ### Uninstall GameMode Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Stops the GameMode service and removes the installed files. This command should be run from the build directory after installation. ```bash systemctl --user stop gamemoded.service cd build/ ninja uninstall ``` -------------------------------- ### Install Extra Kernel Modules on Fedora Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/faq.md On Fedora 17 and later, install this package to enable joystick support. ```bash sudo yum install kernel-modules-extra ``` -------------------------------- ### List PortMidi Devices Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/midi.md Use the fs-uae-device-helper tool to list available MIDI device names. ```bash ./fs-uae-device-helper list-portmidi-devices ``` -------------------------------- ### Enable MIDI Output (Windows) Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/midi.md On Windows, use 'midi:Mt-32 Synth Emulator' to specify the correct MIDI device for MT-32 emulation. ```ini serial_port = midi:Mt-32 Synth Emulator ``` -------------------------------- ### Build Mouse Detection App (Windows) Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/manymouse/README.txt Command line to build the standalone mouse detection application 'detect_mice.exe' on Windows using cl.exe. ```batch cl /I. *.c example\detect_mice.c /Fedetect_mice.exe ``` -------------------------------- ### 64-bit Windows Plugin Library Search Path Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/docs/plugins.md Details the search order for plugin libraries on 64-bit Windows, including specific handling for `CAPSImg_x64.dll` for compatibility with WinUAE. ```text Data/Plugins/CAPSImg/Windows/x86-64/CAPSImg.dll Data/Plugins/CAPSImg_x64.dll Data/Plugins/CAPSImg.dll (AppDir)/CAPSImg/Windows/x86-64/CAPSImg.dll (AppDir)/CAPSImg_x64.dll (AppDir)/CAPSImg.dll ``` -------------------------------- ### Get ManyMouse Device Name Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/manymouse/README.txt Call ManyMouse_DeviceName() to get the human-readable name of each device. This is for debugging and returns a UTF-8 string. The string may not be reliable for identification. ```c const char *device_name = ManyMouse_DeviceName(); ``` -------------------------------- ### Get ManyMouse Driver Name Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/manymouse/README.txt Call ManyMouse_DriverName() to get the human-readable name of the driver. This is for debugging and returns a UTF-8 string. Returns NULL if ManyMouse_Init() failed. ```c const char *driver_name = ManyMouse_DriverName(); ``` -------------------------------- ### Create Portable FS-UAE Build Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/README.md Run this command to create a portable build of FS-UAE. The resulting bundle will be stored in fs/_dist. ```sh build/dist/all ``` -------------------------------- ### Copy Amiga Forever Files after Wine Installation Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/amiga-forever.md After installing Amiga Forever with Wine, use these commands to copy the necessary files into the FS-UAE directory structure. This assumes the FS-UAE base directory is in your home directory. ```bash cd ~/Documents/FS-UAE mkdir AmigaForever cd AmigaForever cp -a ~/.wine/drive_c/users/Public/Documents/"Amiga Files" . ``` -------------------------------- ### Linux SDL Integration with ManyMouse Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/manymouse/README.txt This snippet shows how to initialize SDL, detect the video driver, and conditionally set an environment variable to ensure ManyMouse functions correctly with X11 and XInput2 on Linux. ```c SDL_Init(SDL_INIT_VIDEO); driver = SDL_VideoDriverName(namebuf, sizeof (namebuf)); if (driver && (strcmp(driver, "x11") == 0)) { if (strcmp(ManyMouse_DriverName(), "X11 XInput2 extension") == 0) setenv("SDL_MOUSE_RELATIVE", "0", 1); } ``` -------------------------------- ### Disable Joystick Emulation Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/bridgeboard.md To avoid conflicts or for specific setups, you can disable joystick emulation. ```ini joystick_port_1 = nothing ``` -------------------------------- ### Run FS-UAE after compilation Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/compiling.md Executes the compiled FS-UAE executable directly from the source folder without installation. ```bash ./fs-uae ``` -------------------------------- ### Setting the Modifier Key Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/options/modifier_key.md Example of how to set the modifier key to Left Alt using the 'modifier_key' option. ```ini modifier_key = key_lalt ``` -------------------------------- ### Manual GameMode Activation for Older Versions (Pre-1.3) Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md For GameMode versions prior to 1.3, manually preload the `libgamemodeauto.so.0` library using `LD_PRELOAD`. Note the required backslash in `\$LIB`. ```bash LD_PRELOAD="$LD_PRELOAD:/usr/\$LIB/libgamemodeauto.so.0" ``` -------------------------------- ### Basic CMake Configuration Source: https://github.com/frodesolheim/fs-uae/blob/main/mame/3rdparty/utf8proc/CMakeLists.txt Sets the minimum CMake version, includes utility scripts, and defines the project name and version. It also configures policies for compatibility. ```cmake cmake_minimum_required (VERSION 3.0.0) include (utils.cmake) disallow_intree_builds() if (POLICY CMP0048) cmake_policy (SET CMP0048 NEW) endif () project (utf8proc VERSION 2.9.0 LANGUAGES C) ``` -------------------------------- ### RP_IPC_TO_GUEST_LOADSTATE Source: https://github.com/frodesolheim/fs-uae/blob/main/od-win32/cloanto/RetroPlatformIPC-doc.txt Asks the guest to load the emulation status from a specified file. ```APIDOC ## RP_IPC_TO_GUEST_LOADSTATE ### Description Asks the guest to load the emulation status from the specified file. ### Data Sent - **pData** (Unicode string): Full path and name of the file to load. ### Response - **LRESULT** (integer): 1 if the guest successfully loaded the status file, 0 otherwise. ``` -------------------------------- ### RP_IPC_TO_GUEST_SCREENOVERLAY Source: https://github.com/frodesolheim/fs-uae/blob/main/od-win32/cloanto/RetroPlatformIPC-doc.txt Creates a screen overlay, which is an image rendered on top of the emulated system screen. Multiple overlays can be displayed, with priority determined by the dwIndex field. ```APIDOC ## RP_IPC_TO_GUEST_SCREENOVERLAY ### Description This message creates a screen overlay (an image that the guest renders on top of the emulated system screen). Multiple screen overlays can be simultaneously displayed on the screen, and the dwIndex field of the RPSCREENOVERLAY structure determines their priority (overlays with higher index are displayed in front of overlays with lower index); NOTE: guests that support screen overlays must set the RP_FEATURE_SCREENOVERLAY flag in the startup RP_IPC_TO_HOST_FEATURES message. ### Data sent pData = a RPSCREENOVERLAY structure containing overlay information and image data ### Response LRESULT = 1, if the guest successfully executed the command, or 0 otherwise ``` -------------------------------- ### Build Standalone Test App (Windows) Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/manymouse/README.txt Command line to build the standalone test application 'test_manymouse_stdio.exe' on Windows using cl.exe. ```batch cl /I. *.c example\test_manymouse_stdio.c /Fetest_manymouse_stdio.exe ``` -------------------------------- ### Define Custom Keyboard Shortcut Source: https://github.com/frodesolheim/fs-uae/blob/main/docs/keyboard.md Example of defining a custom keyboard shortcut to trigger an action. Note that the Ctrl key press is sent to the emulated Amiga before the second key is pressed. ```ini keyboard_key_ctrl_p = action_pause ``` -------------------------------- ### Set GAMEMODERUNEXEC for Hybrid GPU Users Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/gamemode/README.md Configure the GAMEMODERUNEXEC environment variable to launch games with a hybrid GPU wrapper like optirun. This ensures GameMode is active when the game starts. ```bash export GAMEMODERUNEXEC=optirun ``` ```bash export GAMEMODERUNEXEC="env DRI_PRIME=1" ``` -------------------------------- ### Initialize ManyMouse Source: https://github.com/frodesolheim/fs-uae/blob/main/od-fs/manymouse/README.txt Call ManyMouse_Init() once at program startup. It returns the number of mice found (> 0), zero if the system works but no mice are found, or < 0 if the system cannot report mice. ```c int num_mice = ManyMouse_Init(); ```