From 6573ddc6b71f7ac46c1764eccb12050d5002fea6 Mon Sep 17 00:00:00 2001 From: Son Date: Tue, 2 Jul 2024 22:35:27 -0400 Subject: [PATCH 01/13] Rename ARM_COMPATIBILITY_MODE to ARM_QEMU_MODE and add ARM64_DEVICE option --- Dockerfile | 3 ++- README.md | 3 ++- .../configuration/server-settings.md | 3 ++- docusaurus/docs/known-issues/known-issues.md | 2 +- .../configuration/server-settings.md | 2 +- .../current/known-issues/known-issues.md | 2 +- .../configuration/server-settings.md | 2 +- .../current/known-issues/known-issues.md | 2 +- scripts/start.sh | 24 +++---------------- 9 files changed, 14 insertions(+), 29 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8bdbdfbba..766b6e30c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -144,7 +144,8 @@ ENV HOME=/home/steam \ DISCORD_ERR_BACKUP_DELETE_MESSAGE_ENABLED=true \ ENABLE_PLAYER_LOGGING=true \ PLAYER_LOGGING_POLL_PERIOD=5 \ - ARM_COMPATIBILITY_MODE=false \ + ARM_QEMU_MODE=false \ + ARM64_DEVICE=generic \ DISABLE_GENERATE_ENGINE=true \ ALLOW_CONNECT_PLATFORM=Steam \ INSTALL_BETA_INSIDER=false diff --git a/README.md b/README.md index cc9b145a8..4fb6c45e1 100644 --- a/README.md +++ b/README.md @@ -285,7 +285,8 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | -| ARM_COMPATIBILITY_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.30.0 | +| ARM_QEMU_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.30.0 | +| ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | *highly recommended to set diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index b5efd28a1..1e7d80ce1 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -101,7 +101,8 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | -| ARM_COMPATIBILITY_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.30.0 | +| ARM_QEMU_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.30.0 | +| ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | *highly recommended to set diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index c0ecab36c..4f5265791 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -101,7 +101,7 @@ This means that the Docker host is unable to run AArch32 binaries such as Box86 compatibility layer which is the case for Apple Silicon. Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. -However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. +However, if you're unable to use Docker Desktop, then try setting `ARM_QEMU_MODE` to `true`. This will switch the container from using Box86 to QEMU when running steamcmd. ## FAQ diff --git a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md index ea524074e..8b958691e 100644 --- a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md +++ b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md @@ -95,7 +95,7 @@ Es wird dringend empfohlen, die folgenden Umgebungsvariablen festzulegen, bevor | DISABLE_GENERATE_ENGINE | Ob die Engine.ini automatisch generiert werden soll | true | true/false | | ENABLE_PLAYER_LOGGING | Aktiviert das Protokollieren und die Benachrichtigung, wenn Spieler dem Spiel beitreten und es verlassen. | true | true/false | | PLAYER_LOGGING_POLL_PERIOD | Abfrageintervall (in Sekunden), um zu überprüfen, ob Spieler dem Spiel beigetreten sind oder es verlassen haben. | 5 | !0 | -| ARM_COMPATIBILITY_MODE | Schaltet die Kompatibilitätsschicht von Box86 auf QEMU um, wenn steamcmd für Serverupdates ausgeführt wird. Diese Einstellung ist nur für ARM64-Hosts relevant. | false | true/false | +| ARM_QEMU_MODE | Schaltet die Kompatibilitätsschicht von Box86 auf QEMU um, wenn steamcmd für Serverupdates ausgeführt wird. Diese Einstellung ist nur für ARM64-Hosts relevant. | false | true/false | *dringend empfohlen, festzulegen diff --git a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md index a59f3b8b1..58956ad6a 100644 --- a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md +++ b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md @@ -97,7 +97,7 @@ Dies bedeutet, dass der Docker-Host ohne eine zusätzliche Kompatibilitätsschic in der Lage ist, AArch32-Binärdateien wie Box86 auszuführen. Docker Desktop löst dieses Problem, indem es seine Container in einer VM (QEMU) mit einem kompatiblen Kernel ausführt. -Wenn Sie jedoch Docker Desktop nicht verwenden können, versuchen Sie, `ARM_COMPATIBILITY_MODE` auf `true` zu setzen. +Wenn Sie jedoch Docker Desktop nicht verwenden können, versuchen Sie, `ARM_QEMU_MODE` auf `true` zu setzen. Dadurch wird der Container von der Verwendung von Box86 auf QEMU umgestellt, wenn steamcmd ausgeführt wird. ## FAQ diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md index fc10bfa1b..0f5a1261f 100644 --- a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md @@ -64,7 +64,7 @@ sidebar_label: Server Settings | DISABLE_GENERATE_ENGINE | 엔진설정의 생성을 비활성화 합니다.ini | true | true/false | | ENABLE_PLAYER_LOGGING | 플레이어가 접속 또는 종료시 로깅과 공지를 활성화 | true | true/false | | PLAYER_LOGGING_POLL_PERIOD | 플레이어의 접속과 종료를 확인하기위한 폴링시간(초) 설정 | 5 | !0 | -| ARM_COMPATIBILITY_MODE | 서버 업데이트를하기 위해 steamcmd를 실행시 호환성 레이어를 Box86에서 QEMU로 변경. 이 설정은 ARM64 호스트 전용입니다. | false | true/false | +| ARM_QEMU_MODE | 서버 업데이트를하기 위해 steamcmd를 실행시 호환성 레이어를 Box86에서 QEMU로 변경. 이 설정은 ARM64 호스트 전용입니다. | false | true/false | *설정하는 것을 적극 권장합니다. diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md index 273576886..086debc08 100644 --- a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md @@ -90,7 +90,7 @@ This means that the Docker host is unable to run AArch32 binaries such as Box86 compatibility layer which is the case for Apple Silicon. Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. -However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. +However, if you're unable to use Docker Desktop, then try setting `ARM_QEMU_MODE` to `true`. This will switch the container from using Box86 to QEMU when running steamcmd. ## FAQ diff --git a/scripts/start.sh b/scripts/start.sh index c57b9d09b..2b2a052f6 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -15,8 +15,8 @@ cd /palworld || exit # Get the architecture using dpkg architecture=$(dpkg --print-architecture) -if [ "$architecture" == "arm64" ] && [ "${ARM_COMPATIBILITY_MODE,,}" = true ]; then - LogInfo "ARM compatibility mode enabled" +if [ "$architecture" == "arm64" ] && [ "${ARM_QEMU_MODE,,}" = true ]; then + LogInfo "ARM QEMU mode enabled" export DEBUGGER="/usr/bin/qemu-i386-static" # Arbitrary number to avoid CPU_MHZ warning due to qemu and steamcmd @@ -45,26 +45,8 @@ fi if [ "$architecture" == "arm64" ]; then # create an arm64 version of ./PalServer.sh cp ./PalServer.sh ./PalServer-arm64.sh - - pagesize=$(getconf PAGESIZE) - box64_binary="box64" - - case $pagesize in - 8192) - LogInfo "Using Box64 for 8k pagesize" - box64_binary="box64-8k" - ;; - 16384) - LogInfo "Using Box64 for 16k pagesize" - box64_binary="box64-16k" - ;; - 65536) - LogInfo "Using Box64 for 64k pagesize" - box64_binary="box64-64k" - ;; - esac - sed -i "s|\(\"\$UE_PROJECT_ROOT\/Pal\/Binaries\/Linux\/PalServer-Linux-Shipping\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH $box64_binary \1|" ./PalServer-arm64.sh + sed -i "s|\(\"\$UE_PROJECT_ROOT\/Pal\/Binaries\/Linux\/PalServer-Linux-Shipping\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH /usr/local/bin/box64 \1|" ./PalServer-arm64.sh chmod +x ./PalServer-arm64.sh STARTCOMMAND=("./PalServer-arm64.sh") else From 2fd6b42d4a9cb6b2ecf94ba538c19ec9314e58c3 Mon Sep 17 00:00:00 2001 From: Son Date: Wed, 3 Jul 2024 18:39:52 -0400 Subject: [PATCH 02/13] update arm64 base image --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 766b6e30c..9f7219b68 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN wget -q https://github.com/gorcon/rcon-cli/archive/refs/tags/v${RCON_VERSION FROM cm2network/steamcmd:root as base-amd64 # Ignoring --platform=arm64 as this is required for the multi-arch build to continue to work on amd64 hosts # hadolint ignore=DL3029 -FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-06-23 as base-arm64 +FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-07-03 as base-arm64 ARG TARGETARCH # Ignoring the lack of a tag here because the tag is defined in the above FROM lines From 801ac98f349fd030dea315a2d3a36533a25c1823 Mon Sep 17 00:00:00 2001 From: Son Date: Thu, 4 Jul 2024 00:02:19 -0400 Subject: [PATCH 03/13] Update documentations + bump base image version --- Dockerfile | 2 +- README.md | 5 +++++ .../docs/getting-started/configuration/server-settings.md | 6 ++++++ docusaurus/docs/getting-started/quick-setup.md | 6 ++++++ 4 files changed, 18 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9f7219b68..c558ca703 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN wget -q https://github.com/gorcon/rcon-cli/archive/refs/tags/v${RCON_VERSION FROM cm2network/steamcmd:root as base-amd64 # Ignoring --platform=arm64 as this is required for the multi-arch build to continue to work on amd64 hosts # hadolint ignore=DL3029 -FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-07-03 as base-arm64 +FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-07-04 as base-arm64 ARG TARGETARCH # Ignoring the lack of a tag here because the tag is defined in the above FROM lines diff --git a/README.md b/README.md index 4fb6c45e1..451be5b2f 100644 --- a/README.md +++ b/README.md @@ -60,6 +60,11 @@ This container has also been tested and will work on both `x64` and `ARM64` base ## How to use +> [!TIP] +> For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. +> For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. +> For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. + Keep in mind that you'll need to change the [environment variables](#environment-variables). ### Docker Compose diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index 1e7d80ce1..0a1e8a490 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -11,6 +11,12 @@ sidebar_label: Server Settings How to change the Palworld Server Settings using Docker Environment variables. +:::tip +For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. +For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. +For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. +::: + ## Environment variables You can use the following values to change the settings of the server on boot. diff --git a/docusaurus/docs/getting-started/quick-setup.md b/docusaurus/docs/getting-started/quick-setup.md index 16dc9a410..a3803ab2d 100644 --- a/docusaurus/docs/getting-started/quick-setup.md +++ b/docusaurus/docs/getting-started/quick-setup.md @@ -36,6 +36,12 @@ Looking to host a server for Xbox players? [Follow this guide here!](https://pal ## Docker Compose +:::tip +For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. +For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. +For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. +::: + This repository includes an example [docker-compose.yml](https://github.com/thijsvanloef/palworld-server-docker/blob/main/docker-compose.yml) file you can use to set up your server. From b8bee604d14c103491e6b01c641acf72a21fe3d9 Mon Sep 17 00:00:00 2001 From: Son Date: Thu, 4 Jul 2024 18:54:44 -0400 Subject: [PATCH 04/13] set BOX64_DYNAREC_STRONGMEM to 1 --- scripts/start.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/start.sh b/scripts/start.sh index 2b2a052f6..a2097e961 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -45,6 +45,8 @@ fi if [ "$architecture" == "arm64" ]; then # create an arm64 version of ./PalServer.sh cp ./PalServer.sh ./PalServer-arm64.sh + + export BOX64_DYNAREC_STRONGMEM=1 sed -i "s|\(\"\$UE_PROJECT_ROOT\/Pal\/Binaries\/Linux\/PalServer-Linux-Shipping\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH /usr/local/bin/box64 \1|" ./PalServer-arm64.sh chmod +x ./PalServer-arm64.sh From 729693f97f097051a4f22407fae56dc0841a0a1d Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 16:42:53 -0400 Subject: [PATCH 05/13] remove qemu option and update to latest arm64 base image --- .env.example | 9 +++++ Dockerfile | 12 +++++-- .../configuration/server-settings.md | 1 - docusaurus/docs/known-issues/known-issues.md | 36 +++++++++++++++++-- .../configuration/server-settings.md | 1 - .../configuration/server-settings.md | 1 - scripts/start.sh | 10 ------ 7 files changed, 52 insertions(+), 18 deletions(-) diff --git a/.env.example b/.env.example index a2fe636e9..76341494f 100644 --- a/.env.example +++ b/.env.example @@ -93,3 +93,12 @@ ALLOW_CONNECT_PLATFORM=Steam USE_BACKUP_SAVE_DATA=True USE_DEPOT_DOWNLOADER=False INSTALL_BETA_INSIDER=False + +# Box64 Configs (Only relevant for ARM64 hosts) +# These can be adjusted if server keeps on crashing. +BOX64_DYNAREC_STRONGMEM=1 +BOX64_DYNAREC_BIGBLOCK=1 +BOX64_DYNAREC_SAFEFLAGS=1 +BOX64_DYNAREC_FASTROUND=1 +BOX64_DYNAREC_FASTNAN=1 +BOX64_DYNAREC_X87DOUBLE=0 \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 0495172d7..cff3e3402 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,7 +20,7 @@ RUN wget -q https://github.com/gorcon/rcon-cli/archive/refs/tags/v${RCON_VERSION FROM cm2network/steamcmd:root as base-amd64 # Ignoring --platform=arm64 as this is required for the multi-arch build to continue to work on amd64 hosts # hadolint ignore=DL3029 -FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-07-04 as base-arm64 +FROM --platform=arm64 sonroyaalmerol/steamcmd-arm64:root-2024-07-08 as base-arm64 ARG TARGETARCH # Ignoring the lack of a tag here because the tag is defined in the above FROM lines @@ -158,13 +158,21 @@ ENV HOME=/home/steam \ DISCORD_ERR_BACKUP_DELETE_MESSAGE_ENABLED=true \ ENABLE_PLAYER_LOGGING=true \ PLAYER_LOGGING_POLL_PERIOD=5 \ - ARM_QEMU_MODE=false \ ARM64_DEVICE=generic \ DISABLE_GENERATE_ENGINE=true \ ALLOW_CONNECT_PLATFORM=Steam \ USE_DEPOT_DOWNLOADER=false \ INSTALL_BETA_INSIDER=false +# Sane Box64 config defaults +# hadolint ignore=DL3044 +ENV BOX64_DYNAREC_STRONGMEM=1 \ + BOX64_DYNAREC_BIGBLOCK=1 \ + BOX64_DYNAREC_SAFEFLAGS=1 \ + BOX64_DYNAREC_FASTROUND=1 \ + BOX64_DYNAREC_FASTNAN=1 \ + BOX64_DYNAREC_X87DOUBLE=0 + # Passed from Github Actions ARG GIT_VERSION_TAG=unspecified diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index 9f8e2a95b..081e1c0d3 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -107,7 +107,6 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | -| ARM_QEMU_MODE | Switches the compatibility layer from Box86 to QEMU when executing steamcmd for server updates. This setting is only applicable for ARM64 hosts. | false | true/false | 0.30.0 | | ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | | USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index 4f5265791..f6dea30f4 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -74,6 +74,11 @@ it means that you'll need to look at the following: ## Only ARM64 hosts with 4k page size is supported +:::tip +This issue should not occur anymore after the addition of `USE_DEPOT_DOWNLOADER`. Instead, it should ask you to set the +said configuration to `true`. +::: + This error occurs when the container detects that the host kernel does not have a 4k page size, which is required for the emulation used for ARM64 architecture. The container relies on this specific page size for proper execution. @@ -100,9 +105,34 @@ problematic machine to prevent steamcmd from executing. This means that the Docker host is unable to run AArch32 binaries such as Box86 without an additional compatibility layer which is the case for Apple Silicon. -Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. -However, if you're unable to use Docker Desktop, then try setting `ARM_QEMU_MODE` to `true`. -This will switch the container from using Box86 to QEMU when running steamcmd. +Try setting `USE_DEPOT_DOWNLOADER` to `true`. This will switch the container from using steamcmd to +DepotDownloader instead. This should avoid the need for any AArch32 emulation. + +## Server keeps on crashing randomly! (ARM64 hosts) + +For ARM64 hosts, emulation of the server binaries and libraries is required. As such, huge updates can cause Box64 +(the emulator we use) to crash due to many reasons. Box64 has a lot of configuration options to tweak the emulator +for specific binaries. We will try to set appropriate defaults for these configs as we receive more reports. In general, +setting the following environment variables will give you the best chance of stability in exchange for performance: + +* `BOX64_DYNAREC_BIGBLOCK=0` (Default: 1) +* `BOX64_DYNAREC_SAFEFLAGS=2` (Default: 1) +* `BOX64_DYNAREC_STRONGMEM=3` (Default: 1) +* `BOX64_DYNAREC_FASTROUND=0` (Default: 1) +* `BOX64_DYNAREC_FASTNAN=0` (Default: 1) +* `BOX64_DYNAREC_X87DOUBLE=1` (Default: 0) + +See [Box64 usage documentation](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) for more info. + +Also, the container should have multiple Box64 variants for different host devices. This can be set using the `ARM64_DEVICE` +environment variable. + +For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. +For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. +For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. + +These builds are from the [ARM64 base image](https://github.com/sonroyaalmerol/steamcmd-arm64). If your device is not listed +above, consider creating an issue on the base image's repository. ## FAQ diff --git a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md index 8b958691e..b92ad19da 100644 --- a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md +++ b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md @@ -95,7 +95,6 @@ Es wird dringend empfohlen, die folgenden Umgebungsvariablen festzulegen, bevor | DISABLE_GENERATE_ENGINE | Ob die Engine.ini automatisch generiert werden soll | true | true/false | | ENABLE_PLAYER_LOGGING | Aktiviert das Protokollieren und die Benachrichtigung, wenn Spieler dem Spiel beitreten und es verlassen. | true | true/false | | PLAYER_LOGGING_POLL_PERIOD | Abfrageintervall (in Sekunden), um zu überprüfen, ob Spieler dem Spiel beigetreten sind oder es verlassen haben. | 5 | !0 | -| ARM_QEMU_MODE | Schaltet die Kompatibilitätsschicht von Box86 auf QEMU um, wenn steamcmd für Serverupdates ausgeführt wird. Diese Einstellung ist nur für ARM64-Hosts relevant. | false | true/false | *dringend empfohlen, festzulegen diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md index 0f5a1261f..90d06192c 100644 --- a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/getting-started/configuration/server-settings.md @@ -64,7 +64,6 @@ sidebar_label: Server Settings | DISABLE_GENERATE_ENGINE | 엔진설정의 생성을 비활성화 합니다.ini | true | true/false | | ENABLE_PLAYER_LOGGING | 플레이어가 접속 또는 종료시 로깅과 공지를 활성화 | true | true/false | | PLAYER_LOGGING_POLL_PERIOD | 플레이어의 접속과 종료를 확인하기위한 폴링시간(초) 설정 | 5 | !0 | -| ARM_QEMU_MODE | 서버 업데이트를하기 위해 steamcmd를 실행시 호환성 레이어를 Box86에서 QEMU로 변경. 이 설정은 ARM64 호스트 전용입니다. | false | true/false | *설정하는 것을 적극 권장합니다. diff --git a/scripts/start.sh b/scripts/start.sh index a2097e961..0982ba97f 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -15,14 +15,6 @@ cd /palworld || exit # Get the architecture using dpkg architecture=$(dpkg --print-architecture) -if [ "$architecture" == "arm64" ] && [ "${ARM_QEMU_MODE,,}" = true ]; then - LogInfo "ARM QEMU mode enabled" - export DEBUGGER="/usr/bin/qemu-i386-static" - - # Arbitrary number to avoid CPU_MHZ warning due to qemu and steamcmd - export CPU_MHZ=2000 -fi - IsInstalled ServerInstalled=$? if [ "$ServerInstalled" == 1 ]; then @@ -45,8 +37,6 @@ fi if [ "$architecture" == "arm64" ]; then # create an arm64 version of ./PalServer.sh cp ./PalServer.sh ./PalServer-arm64.sh - - export BOX64_DYNAREC_STRONGMEM=1 sed -i "s|\(\"\$UE_PROJECT_ROOT\/Pal\/Binaries\/Linux\/PalServer-Linux-Shipping\" Pal \"\$@\"\)|LD_LIBRARY_PATH=/home/steam/steamcmd/linux64:\$LD_LIBRARY_PATH /usr/local/bin/box64 \1|" ./PalServer-arm64.sh chmod +x ./PalServer-arm64.sh From cb7701b0f0fa32c0b6bbcb4fc079314e77fbab30 Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:06:32 -0400 Subject: [PATCH 06/13] separate table for arm64-only env vars --- .env.example | 14 ++++----- README.md | 29 ++++++++++++----- .../configuration/server-settings.md | 31 ++++++++++++++----- .../docs/getting-started/quick-setup.md | 6 ---- docusaurus/docs/known-issues/known-issues.md | 2 ++ 5 files changed, 54 insertions(+), 28 deletions(-) diff --git a/.env.example b/.env.example index 76341494f..7b44554ac 100644 --- a/.env.example +++ b/.env.example @@ -95,10 +95,10 @@ USE_DEPOT_DOWNLOADER=False INSTALL_BETA_INSIDER=False # Box64 Configs (Only relevant for ARM64 hosts) -# These can be adjusted if server keeps on crashing. -BOX64_DYNAREC_STRONGMEM=1 -BOX64_DYNAREC_BIGBLOCK=1 -BOX64_DYNAREC_SAFEFLAGS=1 -BOX64_DYNAREC_FASTROUND=1 -BOX64_DYNAREC_FASTNAN=1 -BOX64_DYNAREC_X87DOUBLE=0 \ No newline at end of file +# These can be adjusted if the server keeps on crashing. +BOX64_DYNAREC_STRONGMEM=1 # This can be set to 2 or 3 with 3 being the most stable but worst performance. +BOX64_DYNAREC_BIGBLOCK=1 # This can be set to 0 for better stability but worse performance. +BOX64_DYNAREC_SAFEFLAGS=1 # This can be set to 2 for better stability but worse performance. +BOX64_DYNAREC_FASTROUND=1 # This can be set to 0 for better stability but worse performance. +BOX64_DYNAREC_FASTNAN=1 # This can be set to 0 for better stability but worse performance. +BOX64_DYNAREC_X87DOUBLE=0 # This can be set to 1 for better stability but worse performance. \ No newline at end of file diff --git a/README.md b/README.md index 486c9ff47..b208db0d0 100644 --- a/README.md +++ b/README.md @@ -60,11 +60,6 @@ This container has also been tested and will work on both `x64` and `ARM64` base ## How to use -> [!TIP] -> For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. -> For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. -> For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. - Keep in mind that you'll need to change the [environment variables](#environment-variables). ### Docker Compose @@ -290,8 +285,6 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | -| ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | -| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | *highly recommended to set @@ -299,6 +292,28 @@ It is highly recommended you set the following environment values before startin *** Required for docker stop to save and gracefully close the server +### ARM64-exclusive environment variables + +ARM64 hosts can use the following variables to tweak their server setup. This includes known relevant Box64 configurations one can modify for better server stability/performance. + +For the Box64 configurations, please see their [USAGE](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) documentation for more info. + +> [!TIP] +> For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. +> For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. +> For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. + +| Variable | Info | Default Values | Allowed Values | Added in Version | +|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| +| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2,3 | 0.23.0 | +| BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | +| BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | +| BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | +| ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | +| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | + ### Game Ports | Port | Info | diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index 081e1c0d3..2ec99af35 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -11,12 +11,6 @@ sidebar_label: Server Settings How to change the Palworld Server Settings using Docker Environment variables. -:::tip -For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. -For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. -For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. -::: - ## Environment variables You can use the following values to change the settings of the server on boot. @@ -107,8 +101,6 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | -| ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | -| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | *highly recommended to set @@ -116,6 +108,29 @@ It is highly recommended you set the following environment values before startin *** Required for docker stop to save and gracefully close the server +## ARM64-exclusive environment variables + +ARM64 hosts can use the following variables to tweak their server setup. This includes +known relevant Box64 configurations one can modify for better server stability/performance. +For the Box64 configurations, please see their [USAGE](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) documentation for more info. + +:::tip +For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. +For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. +For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. +::: + +| Variable | Info | Default Values | Allowed Values | Added in Version | +|--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| +| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2,3 | 0.23.0 | +| BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | +| BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | +| BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | +| ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | +| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | + ### Game Ports The server needs the following ports by default. diff --git a/docusaurus/docs/getting-started/quick-setup.md b/docusaurus/docs/getting-started/quick-setup.md index a3803ab2d..16dc9a410 100644 --- a/docusaurus/docs/getting-started/quick-setup.md +++ b/docusaurus/docs/getting-started/quick-setup.md @@ -36,12 +36,6 @@ Looking to host a server for Xbox players? [Follow this guide here!](https://pal ## Docker Compose -:::tip -For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. -For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. -For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. -::: - This repository includes an example [docker-compose.yml](https://github.com/thijsvanloef/palworld-server-docker/blob/main/docker-compose.yml) file you can use to set up your server. diff --git a/docusaurus/docs/known-issues/known-issues.md b/docusaurus/docs/known-issues/known-issues.md index f6dea30f4..e82d2e9a4 100644 --- a/docusaurus/docs/known-issues/known-issues.md +++ b/docusaurus/docs/known-issues/known-issues.md @@ -127,9 +127,11 @@ See [Box64 usage documentation](https://github.com/ptitSeb/box64/blob/main/docs/ Also, the container should have multiple Box64 variants for different host devices. This can be set using the `ARM64_DEVICE` environment variable. +:::tip For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. +::: These builds are from the [ARM64 base image](https://github.com/sonroyaalmerol/steamcmd-arm64). If your device is not listed above, consider creating an issue on the base image's repository. From bc72cdce4802c63eb22942a611d26173c41d3de5 Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:09:06 -0400 Subject: [PATCH 07/13] fix markdown linting --- README.md | 5 +++-- .../docs/getting-started/configuration/server-settings.md | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index b208db0d0..c4d690ee3 100644 --- a/README.md +++ b/README.md @@ -294,9 +294,10 @@ It is highly recommended you set the following environment values before startin ### ARM64-exclusive environment variables -ARM64 hosts can use the following variables to tweak their server setup. This includes known relevant Box64 configurations one can modify for better server stability/performance. +ARM64 hosts can use the following variables to tweak their server setup. This includes +known relevant Box64 configurations one can modify for better server stability/performance. -For the Box64 configurations, please see their [USAGE](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) documentation for more info. +For the Box64 configurations, please see the their official documentation for more info. > [!TIP] > For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index 2ec99af35..7b70c43eb 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -112,7 +112,8 @@ It is highly recommended you set the following environment values before startin ARM64 hosts can use the following variables to tweak their server setup. This includes known relevant Box64 configurations one can modify for better server stability/performance. -For the Box64 configurations, please see their [USAGE](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md) documentation for more info. + +For the Box64 configurations, please see the their official documentation for more info. :::tip For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. From 138184e8d3c0daacd5d4ec320286a01c1eb01a5c Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:14:06 -0400 Subject: [PATCH 08/13] move USE_DEPOT_DOWNLOADER documentation back to general env vars --- README.md | 2 +- .../docs/getting-started/configuration/server-settings.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c4d690ee3..8000948d5 100644 --- a/README.md +++ b/README.md @@ -285,6 +285,7 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | +| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | *highly recommended to set @@ -313,7 +314,6 @@ For the Box64 configurations, please see the their official documentation for mo | BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | | BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | | ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | -| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | ### Game Ports diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index 7b70c43eb..011379c1a 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -101,6 +101,7 @@ It is highly recommended you set the following environment values before startin | DISABLE_GENERATE_ENGINE | Whether to automatically generate the Engine.ini | true | true/false | 0.30.0 | | ENABLE_PLAYER_LOGGING | Enables Logging and announcing when players join and leave | true | true/false | 0.31.0 | | PLAYER_LOGGING_POLL_PERIOD | Polling period (in seconds) to check for players who have joined or left | 5 | !0 | 0.31.0 | +| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | *highly recommended to set @@ -130,7 +131,6 @@ For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. | BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | | BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | | ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | -| USE_DEPOT_DOWNLOADER | Uses DepotDownloader to download game server files instead of steamcmd. This will help hosts incompatible with steamcmd (e.g. M-series Mac) | false | true/false | 0.39.0 | ### Game Ports From 892a362da6f0ba7d227dc7775fab51142779713a Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:19:51 -0400 Subject: [PATCH 09/13] change tip for better description --- README.md | 7 ++++--- .../docs/getting-started/configuration/server-settings.md | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 8000948d5..9cb3d7e5c 100644 --- a/README.md +++ b/README.md @@ -301,9 +301,10 @@ known relevant Box64 configurations one can modify for better server stability/p For the Box64 configurations, please see the their official documentation for more info. > [!TIP] -> For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. -> For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. -> For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. +> Set `ARM64_DEVICE` to the most appropriate setting for your device. `generic` is expected +> to work on all devices but better stability can be found with specifying your device. +> For more specific device compatibility, create an issue on the +> [base image repo](https://github.com/sonroyaalmerol/steamcmd-arm64). | Variable | Info | Default Values | Allowed Values | Added in Version | |--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index 011379c1a..e98908d19 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -117,9 +117,10 @@ known relevant Box64 configurations one can modify for better server stability/p For the Box64 configurations, please see the their official documentation for more info. :::tip -For best compatibility with **Apple Silicon**, set `ARM64_DEVICE` to `m1`. -For best compatibility with **Oracle ARM**, set `ARM64_DEVICE` to `adlink`. -For best compatibility with **Raspberry Pi 5**, set `ARM64_DEVICE` to `rpi5`. +Set `ARM64_DEVICE` to the most appropriate setting for your device. `generic` is expected +to work on all devices but better stability can be found with specifying your device. +For more specific device compatibility, create an issue on the +[base image repo](https://github.com/sonroyaalmerol/steamcmd-arm64). ::: | Variable | Info | Default Values | Allowed Values | Added in Version | From 151f79a76df7fddf4652aebada9575ea7574e9b2 Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:21:05 -0400 Subject: [PATCH 10/13] add space --- .../docs/getting-started/configuration/server-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index e98908d19..de4862b82 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -125,7 +125,7 @@ For more specific device compatibility, create an issue on the | Variable | Info | Default Values | Allowed Values | Added in Version | |--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| -| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2,3 | 0.23.0 | +| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2, 3 | 0.23.0 | | BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | | BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | | BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | From 0e81848570514c5af3ec32fd795d9d3f3736f9ef Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:22:22 -0400 Subject: [PATCH 11/13] add space again --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9cb3d7e5c..84a55c796 100644 --- a/README.md +++ b/README.md @@ -308,7 +308,7 @@ For the Box64 configurations, please see the their official documentation for mo | Variable | Info | Default Values | Allowed Values | Added in Version | |--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| -| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2,3 | 0.23.0 | +| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2, 3 | 0.23.0 | | BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | | BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | | BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | From e080628c33d9b99340ad6fb364dc112d62a3a65e Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 17:25:38 -0400 Subject: [PATCH 12/13] use specific urls for each box64 configs --- README.md | 12 ++++++------ .../getting-started/configuration/server-settings.md | 12 ++++++------ 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 84a55c796..1d41af179 100644 --- a/README.md +++ b/README.md @@ -308,12 +308,12 @@ For the Box64 configurations, please see the their official documentation for mo | Variable | Info | Default Values | Allowed Values | Added in Version | |--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| -| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2, 3 | 0.23.0 | -| BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | -| BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | -| BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | -| BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | -| BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_strongmem-)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2, 3 | 0.23.0 | +| BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_bigblock-)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | +| BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_safeflags-)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | +| BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_fastround-)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_fastnan-)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_x87double-)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | | ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | ### Game Ports diff --git a/docusaurus/docs/getting-started/configuration/server-settings.md b/docusaurus/docs/getting-started/configuration/server-settings.md index de4862b82..2f9300322 100644 --- a/docusaurus/docs/getting-started/configuration/server-settings.md +++ b/docusaurus/docs/getting-started/configuration/server-settings.md @@ -125,12 +125,12 @@ For more specific device compatibility, create an issue on the | Variable | Info | Default Values | Allowed Values | Added in Version | |--------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------| -| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2, 3 | 0.23.0 | -| BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | -| BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | -| BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | -| BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | -| BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_STRONGMEM | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_strongmem-)] Enable/Disable simulation of Strong Memory model | 1 | 0, 1, 2, 3 | 0.23.0 | +| BOX64_DYNAREC_BIGBLOCK | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_bigblock-)] Enables/Disables Box64's Dynarec building BigBlock. | 1 | 0, 1, 2, 3 | 0.23.0 | +| BOX64_DYNAREC_SAFEFLAGS | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_safeflags-)] Handling of flags on CALL/RET opcodes | 1 | 0, 1, 2 | 0.23.0 | +| BOX64_DYNAREC_FASTROUND | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_fastround-)] Enable/Disable generation of precise x86 rounding | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_FASTNAN | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_fastnan-)] Enable/Disable generation of -NAN | 1 | 0, 1 | 0.23.0 | +| BOX64_DYNAREC_X87DOUBLE | [[Box64 config](https://github.com/ptitSeb/box64/blob/main/docs/USAGE.md#box64_dynarec_x87double-)] Force the use of Double for x87 emulation | 0 | 0, 1 | 0.23.0 | | ARM64_DEVICE | Specify Box64 build to be used based on host device. This setting is only applicable for ARM64 hosts. | generic | generic, m1, rpi5, adlink | 0.39.0 | ### Game Ports From 7a2ae17ed4faecb4ac6984b0859fc343af57e07f Mon Sep 17 00:00:00 2001 From: Son Roy Almerol Date: Sun, 7 Jul 2024 18:24:14 -0400 Subject: [PATCH 13/13] revert ARM_COMPATIBILITY_MODE renames on translated docs --- .../current/known-issues/known-issues.md | 2 +- .../current/known-issues/known-issues.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md index 58956ad6a..a59f3b8b1 100644 --- a/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md +++ b/docusaurus/i18n/de/docusaurus-plugin-content-docs/current/known-issues/known-issues.md @@ -97,7 +97,7 @@ Dies bedeutet, dass der Docker-Host ohne eine zusätzliche Kompatibilitätsschic in der Lage ist, AArch32-Binärdateien wie Box86 auszuführen. Docker Desktop löst dieses Problem, indem es seine Container in einer VM (QEMU) mit einem kompatiblen Kernel ausführt. -Wenn Sie jedoch Docker Desktop nicht verwenden können, versuchen Sie, `ARM_QEMU_MODE` auf `true` zu setzen. +Wenn Sie jedoch Docker Desktop nicht verwenden können, versuchen Sie, `ARM_COMPATIBILITY_MODE` auf `true` zu setzen. Dadurch wird der Container von der Verwendung von Box86 auf QEMU umgestellt, wenn steamcmd ausgeführt wird. ## FAQ diff --git a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md index 086debc08..273576886 100644 --- a/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md +++ b/docusaurus/i18n/ko/docusaurus-plugin-content-docs/current/known-issues/known-issues.md @@ -90,7 +90,7 @@ This means that the Docker host is unable to run AArch32 binaries such as Box86 compatibility layer which is the case for Apple Silicon. Docker Desktop solves this by running its containers inside a VM (QEMU) with a compatible kernel. -However, if you're unable to use Docker Desktop, then try setting `ARM_QEMU_MODE` to `true`. +However, if you're unable to use Docker Desktop, then try setting `ARM_COMPATIBILITY_MODE` to `true`. This will switch the container from using Box86 to QEMU when running steamcmd. ## FAQ