Skip to content

ModLabsCC/wine-fivem

Repository files navigation

INTRODUCTION

Wine is a program which allows running Microsoft Windows programs (including DOS, Windows 3.x, Win32, and Win64 executables) on Unix. It consists of a program loader which loads and executes a Microsoft Windows binary, and a library (called Winelib) that implements Windows API calls using their Unix, X11 or Mac equivalents. The library may also be used for porting Windows code into native Unix executables.

Wine is free software, released under the GNU LGPL; see the file LICENSE for the details.

QUICK START

This fork is primarily used for FiveM. From the top-level source directory (which contains this file), use this WoW64 workflow:

./configure --enable-archs=i386,x86_64
make -j"$(nproc)"

Re-run make -j"$(nproc)" after source changes.

Run directly from the build directory:

./wine /path/to/FiveM/FiveM.exe

Replace /path/to/FiveM/FiveM.exe with your local install path.

Typical runtime environment used with this tree:

export WINE_ENABLE_FIVEM_VMEM_HACKS=1
export WINE_ENABLE_FIVEM_ADHESIVE_UD2_HACK=1
export WINE_FIVEM_HIDE_WINE_EXPORTS=1
export WINE_FIVEM_ALLOW_ADHESIVE_INIT_FAILURE=1
export vk_xwayland_wait_ready=false

Optional debug/runtime toggles:

export WINE_FIVEM_ADHESIVE_SIGNAL_DEBUG=1
# export WINE_DISABLE_FIVEM_EXIT0_WAIT=1
# export WINE_DISABLE_EXIT69_WAIT=1

Typical gamescope launch:

gamescope -w 1920 -h 1080 -W 3840 -H 2160 -f -- \
  gamemoderun /path/to/wine/wine \
  /path/to/FiveM/FiveM.exe

REQUIREMENTS

To compile and run Wine, you must have one of the following:

  • Linux version 2.6.22 or later
  • FreeBSD 12.4 or later
  • Solaris x86 9 or later
  • NetBSD-current
  • macOS 10.12 or later

As Wine requires kernel-level thread support to run, only the operating systems mentioned above are supported. Other operating systems which support kernel threads may be supported in the future.

FreeBSD info: See https://wiki.freebsd.org/Wine for more information.

Solaris info: You will most likely need to build Wine with the GNU toolchain (gcc, gas, etc.). Warning : installing gas does not ensure that it will be used by gcc. Recompiling gcc after installing gas or symlinking cc, as and ld to the gnu tools is said to be necessary.

NetBSD info: Make sure you have the USER_LDT, SYSVSHM, SYSVSEM, and SYSVMSG options turned on in your kernel.

macOS info: You need Xcode/Xcode Command Line Tools or Apple cctools. The minimum requirements for compiling Wine are clang 3.8 with the MacOSX10.13.sdk and mingw-w64 v12 for 32-bit wine. The MacOSX10.14.sdk and later can build 64-bit wine.

Supported file systems: Wine should run on most file systems. A few compatibility problems have also been reported using files accessed through Samba. Also, NTFS does not provide all the file system features needed by some applications. Using a native Unix file system is recommended.

Basic requirements: You need to have the X11 development include files installed (called xorg-dev in Debian and libX11-devel in Red Hat). Of course you also need make (most likely GNU make). You also need flex version 2.5.33 or later and bison.

Optional support libraries: Configure will display notices when optional libraries are not found on your system. See https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine for hints about the packages you should install. On 64-bit platforms, you have to make sure to install the 32-bit versions of these libraries.

COMPILATION

To build Wine, do:

./configure --enable-archs=i386,x86_64
make -j"$(nproc)"

This will build the program "wine" and numerous support libraries/binaries. The program "wine" will load and run Windows executables. The library "libwine" ("Winelib") can be used to compile and link Windows source code under Unix.

To see compile configuration options, do ./configure --help.

For more information, see https://gitlab.winehq.org/wine/wine/-/wikis/Building-Wine

SETUP

Once Wine has been built correctly, you can do make install; this will install the wine executable and libraries, the Wine man page, and other needed files.

Don't forget to uninstall any conflicting previous Wine installation first. Try either dpkg -r wine or rpm -e wine or make uninstall before installing.

Once installed, you can run the winecfg configuration tool. See the Support area at https://www.winehq.org/ for configuration hints.

RUNNING PROGRAMS

When invoking Wine, you may specify the entire path to the executable, or a filename only.

For example, to run Notepad:

wine notepad            (using the search Path as specified in
wine notepad.exe         the registry to locate the file)

wine c:\\windows\\notepad.exe      (using DOS filename syntax)

wine ~/.wine/drive_c/windows/notepad.exe  (using Unix filename syntax)

wine notepad.exe readme.txt          (calling program with parameters)

Wine is not perfect, so some programs may crash. If that happens you will get a crash log that you should attach to your report when filing a bug.

FIVEM URL HANDLER (LINUX)

To open fivem://... links with this build, create a small wrapper and desktop entry.

  1. Create ~/.local/bin/fivem-url-handler:
#!/usr/bin/env bash
set -euo pipefail

url="${1:-}"
wine_prefix="${WINEPREFIX:-/path/to/prefix}"
wine_bin="${WINE_BIN:-/path/to/wine/wine}"
fivem_dir="${FIVEM_DIR:-/path/to/FiveM}"
fivem_exe="${FIVEM_EXE:-${fivem_dir}/FiveM.exe}"
export WINEPREFIX="${wine_prefix}"

cd "${fivem_dir}" || exit 1
exec "${wine_bin}" "${fivem_exe}" "${url}"

Either edit those defaults or export WINEPREFIX, WINE_BIN, FIVEM_DIR, and FIVEM_EXE.

Then mark it executable:

chmod +x ~/.local/bin/fivem-url-handler
  1. Create ~/.local/share/applications/fivem-handler.desktop:
[Desktop Entry]
Name=FiveM Protocol Handler
Type=Application
Terminal=false
NoDisplay=true
Exec=/home/YOUR_USER/.local/bin/fivem-url-handler "%u"
MimeType=x-scheme-handler/fivem;
  1. Register the handler:
xdg-mime default fivem-handler.desktop x-scheme-handler/fivem
update-desktop-database ~/.local/share/applications >/dev/null 2>&1 || true

GETTING MORE INFORMATION

About

No description, website, or topics provided.

Resources

License

Unknown and 2 other licenses found

Licenses found

Unknown
LICENSE
Unknown
LICENSE.OLD
LGPL-2.1
COPYING.LIB

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors