aboutsummaryrefslogtreecommitdiff
path: root/docs/Caveats.md
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2025-12-31 21:30:31 +0100
committercrueter <crueter@eden-emu.dev>2025-12-31 21:30:31 +0100
commit14951348bf13607fd05bb92e70b18e12d21109fe (patch)
tree351f82031e04f1766438bcb7883941706211c1b2 /docs/Caveats.md
parentb0cd47c005d80d07f6924fd514dd582afa27b25d (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.md70
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.