diff options
| author | lizzie <lizzie@eden-emu.dev> | 2025-12-31 21:30:31 +0100 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2025-12-31 21:30:31 +0100 |
| commit | 14951348bf13607fd05bb92e70b18e12d21109fe (patch) | |
| tree | 351f82031e04f1766438bcb7883941706211c1b2 /docs/Caveats.md | |
| parent | b0cd47c005d80d07f6924fd514dd582afa27b25d (diff) | |
[docs] update coding guidelines, freebsd+windows ARM caveats (#3209)
Signed-off-by: lizzie lizzie@eden-emu.dev
Co-authored-by: crueter <crueter@eden-emu.dev>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3209
Reviewed-by: DraVee <dravee@eden-emu.dev>
Reviewed-by: Maufeat <sahyno1996@gmail.com>
Reviewed-by: crueter <crueter@eden-emu.dev>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
Diffstat (limited to 'docs/Caveats.md')
| -rw-r--r-- | docs/Caveats.md | 70 |
1 files changed, 45 insertions, 25 deletions
diff --git a/docs/Caveats.md b/docs/Caveats.md index 512985cd8a..ed98f602d8 100644 --- a/docs/Caveats.md +++ b/docs/Caveats.md @@ -1,17 +1,20 @@ # Caveats <!-- TOC --> -- [Caveats](#caveats) - - [Arch Linux](#arch-linux) - - [Gentoo Linux](#gentoo-linux) - - [macOS](#macos) - - [Solaris](#solaris) - - [HaikuOS](#haikuos) - - [OpenBSD](#openbsd) - - [FreeBSD](#freebsd) - - [NetBSD](#netbsd) - - [MSYS2](#msys2) - - [Windows 8.1 and below](#windows-81-and-below) +- [Arch Linux](#arch-linux) +- [Gentoo Linux](#gentoo-linux) +- [macOS](#macos) +- [Solaris](#solaris) +- [HaikuOS](#haikuos) +- [OpenBSD](#openbsd) +- [FreeBSD](#freebsd) +- [NetBSD](#netbsd) +- [MSYS2](#msys2) +- [RedoxOS](#redoxos) +- [Windows](#windows) + - [Windows 7, Windows 8 and Windows 8.1](#windows-7-windows-8-and-windows-81) + - [Windows Vista and below](#windows-vista-and-below) + - [Windows on ARM](#windows-on-arm) <!-- /TOC --> ## Arch Linux @@ -49,6 +52,7 @@ export PATH="$PATH:$PWD" ``` Default MESA is a bit outdated, the following environment variables should be set for a smoother experience: + ```sh export MESA_GL_VERSION_OVERRIDE=4.6 export MESA_GLSL_VERSION_OVERRIDE=460 @@ -93,9 +97,16 @@ Eden is not currently available as a port on FreeBSD, though it is in the works. The available OpenSSL port (3.0.17) is out-of-date, and using a bundled static library instead is recommended; to do so, add `-DYUZU_USE_BUNDLED_OPENSSL=ON` to your CMake configure command. +Gamepad/controllers may not work on 15.0, this is due to an outdated SDL not responding well to the new `usbhid(2)` driver. To workaround this simply disable `usbhid(2)` (add the following to `/boot/loader.conf`): + +```sh +hw.usb.usbhid.enable="0" +``` + ## NetBSD -Install `pkgin` if not already `pkg_add pkgin`, see also the general [pkgsrc guide](https://www.netbsd.org/docs/pkgsrc/using.html). For NetBSD 10.1 provide `echo 'PKG_PATH="https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/x86_64/10.0_2025Q3/All/"' >/etc/pkg_install.conf`. If `pkgin` is taking too much time consider adding the following to `/etc/rc.conf`: +Install `pkgin` if not already `pkg_add pkgin`, see also the general [pkgsrc guide](https://www.netbsd.org/docs/pkgsrc/using.html). For NetBSD 10.1 provide `echo 'PKG_PATH="https://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/10.1/All/"' >/etc/pkg_install.conf`. If `pkgin` is taking too much time consider adding the following to `/etc/rc.conf`: + ```sh ip6addrctl=YES ip6addrctl_policy=ipv4_prefer @@ -109,9 +120,10 @@ System provides a default `g++-10` which doesn't support the current C++ codebas Make may error out when generating C++ headers of SPIRV shaders, hence it's recommended to use `gmake` over the default system one. -[parallel/spirv-tools](https://iso.us.netbsd.org/pub/pkgsrc/current/pkgsrc/parallel/spirv-tools/index.html) isn't available in binary form and must be build from source. +[parallel/spirv-tools](https://iso.us.netbsd.org/pub/pkgsrc/current/pkgsrc/parallel/spirv-tools/index.html) isn't available in binary form and must be built from source. + +glslang is not available on NetBSD, to circumvent this simply build glslang by yourself: -Such that glslang is not available on NetBSD, to circumvent this simply build glslang by yourself: ```sh pkgin python313 git clone --depth=1 https://github.com/KhronosGroup/glslang.git @@ -124,13 +136,15 @@ cmake --install build However, pkgsrc is highly recommended, see [getting pkgsrc](https://iso.us.netbsd.org/pub/pkgsrc/current/pkgsrc/doc/pkgsrc.html#getting). You must get `current` not the `2025Q2` version. -# DragonFlyBSD +## DragonFlyBSD If `libstdc++.so.6` is not found (`GLIBCXX_3.4.30`) then attempt: + ```sh rm /usr/local/lib/gcc11/libstdc++.so.6 ln -s /usr/local/lib/gcc14/libstdc++.so /usr/local/lib/gcc11/libstdc++.so.6 ``` + This may have unforeseen consequences of which we don't need to worry about for now. Default `g++` (and the libstdc++) is too outdated - so install `gcc14` and redirect CMake to the new compiler toolchain `-DCMAKE_CXX_COMPILER=gcc14 -DCMAKE_C_COMPILER=g++14`. @@ -141,13 +155,9 @@ If build hangs, use `hammer2 bulkfree`. ## MSYS2 -`qt6-static` isn't supported yet. - -Only the `MINGW64` environment is tested; however, all of the others should work (in theory) sans `MINGW32`. - -Currently, only FFmpeg can be used as a system dependency; the others will result in linker errors. +Only the `MINGW64` environment is tested (or `CLANGARM64` on ARM); however, all of the others should work (in theory) sans `MINGW32`. -When packaging an MSYS2 build, you will need to copy all dependent DLLs recursively alongside the `windeployqt6`; for example: +When packaging an MSYS2 build that is NOT fully static, you will need to copy all dependent DLLs recursively alongside the `windeployqt6`; for example: ```sh # MSYS_TOOLCHAIN is typically just mingw64 @@ -196,14 +206,24 @@ windeployqt6 --no-compiler-runtime --no-opengl-sw --no-system-dxc-compiler \ find ./*/ -name "*.dll" | while read -r dll; do deps "$dll"; done ``` -## Windows 8.1 and below +## RedoxOS + +The package install may randomly hang at times, in which case it has to be restarted. ALWAYS do a `sudo pkg update` or the chances of it hanging will be close to 90%. If "multiple" installs fail at once, try installing 1 by 1 the packages. + +When CMake invokes certain file syscalls - it may sometimes cause crashes or corruptions on the (kernel?) address space - so reboot the system if there is a "hang" in CMake. + +## Windows + +### Windows 7, Windows 8 and Windows 8.1 DirectX 12 is not available - simply copy and paste a random DLL and name it `d3d12.dll`. Install [Qt6 compatibility libraries](github.com/ANightly/qt6windows7) specifically Qt 6.9.5. -## RedoxOS +### Windows Vista and below -The package install may randomly hang at times, in which case it has to be restarted. ALWAYS do a `sudo pkg update` or the chances of it hanging will be close to 90%. If "multiple" installs fail at once, try installing 1 by 1 the packages. +No support for Windows Vista (or below) is present at the moment. Check back later. -When CMake invokes certain file syscalls - it may sometimes cause crashes or corruptions on the (kernel?) address space - so reboot the system if there is a "hang" in CMake. +### Windows on ARM + +If you're using Snapdragon X or 8CX, use the [the Vulkan translation layer](https://apps.microsoft.com/detail/9nqpsl29bfff?hl=en-us&gl=USE) only if the stock drivers do not work. And of course always keep your system up-to-date. |
