diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/COMPILE.md | 167 | ||||
| -rw-r--r-- | docs/USAGE.md | 14 |
2 files changed, 60 insertions, 121 deletions
diff --git a/docs/COMPILE.md b/docs/COMPILE.md index b050b848..a14292c4 100644 --- a/docs/COMPILE.md +++ b/docs/COMPILE.md @@ -1,45 +1,57 @@ Compiling/Installing ---- -#### Debian-based Linux +### Debian-based Linux You can use [@ryanfortner](https://github.com/ryanfortner)'s apt repository to install precompiled box64 debs, updated every 24 hours. ``` sudo wget https://ryanfortner.github.io/box64-debs/box64.list -O /etc/apt/sources.list.d/box64.list wget -qO- https://ryanfortner.github.io/box64-debs/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/box64-debs-archive-keyring.gpg -sudo apt update && sudo apt install box64 -y +sudo apt update && sudo apt install box64-arm64 -y ``` Alternatively, you can generate your own package using the [instructions below](https://github.com/ptitSeb/box64/blob/main/docs/COMPILE.md#debian-packaging). -#### for RK3399 +---- -Using a 64bit OS: +### The general approach is: ``` git clone https://github.com/ptitSeb/box64 cd box64 -mkdir build; cd build; cmake .. -DRK3399=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 +mkdir build; cd build; cmake .. ${OPTIONS} +make -j4 sudo make install ``` If it's the first install, you also need: ``` sudo systemctl restart systemd-binfmt ``` +- You can use `make -j1`, `make -j2` to prevent running out of memory +- You can also add `-DBAD_SIGNAL=ON` to the cmake command if you are on Linux Kernel mixed with Android, like on RK3588 or maybe Termux -#### for RK3588 / RK3588S - -Using a 64bit OS: +#### For instance, if you want to build box64 for Generic ARM64 Linux platforms, it would look like this: ``` git clone https://github.com/ptitSeb/box64 cd box64 -mkdir build; cd build; cmake .. -DRK3588=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo +mkdir build; cd build; cmake .. -D ARM_DYNAREC=ON -D CMAKE_BUILD_TYPE=RelWithDebInfo make -j4 sudo make install +sudo systemctl restart systemd-binfmt ``` -If it's the first install, you also need: +---- + +#### for RK3399 + +Using a 64bit OS: ``` -sudo systemctl restart systemd-binfmt +-D RK3399=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo +``` + +#### for RK3588 / RK3588S + +Using a 64bit OS: +``` +-D RK3588=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for Raspberry Pi 3 @@ -55,16 +67,8 @@ run out of memory at some point and need to run the build again. Still, this can be faster if your build is attended. ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DRPI3ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo +-D RPI3ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo make -# or e.g. make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt ``` #### for Raspberry Pi 4 @@ -72,15 +76,7 @@ sudo systemctl restart systemd-binfmt Warning, you need a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D RPI4ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for TEGRA X1 @@ -88,31 +84,16 @@ sudo systemctl restart systemd-binfmt Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DTEGRAX1=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D TEGRAX1=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` + #### for ODROID N2/N2+ Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DODROIDN2=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D ODROIDN2=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for Snapdragon 845 @@ -120,32 +101,21 @@ sudo systemctl restart systemd-binfmt Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DSD845=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D SD845=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` - ----- #### for Phytium Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DPHYTIUM=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install +-D PHYTIUM=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` -If it's the first install, you also need: + +#### for a generic ARM64 machine + +Using a 64bit OS: ``` -sudo systemctl restart systemd-binfmt +-D ARM64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for M1 @@ -153,38 +123,15 @@ sudo systemctl restart systemd-binfmt Only test on Asahi for now, using the default "16K page" kernel ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DM1=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D M1=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` - -#### for Other ARM64 Linux platforms - - `mkdir build; cd build; cmake .. -DARM_DYNAREC=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo; make -j$(nproc)` - -You can also add `-DBAD_SIGNAL=ON` to the cmake command if you are on Linux Kernel mixed with Android, like on RK3588 or maybe Termux - #### for LoongArch Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DLARCH64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D LARCH64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for RISC-V @@ -192,15 +139,7 @@ sudo systemctl restart systemd-binfmt Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DRV64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j`nproc` -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D RV64=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for PowerPC 64 LE @@ -208,15 +147,7 @@ sudo systemctl restart systemd-binfmt Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DPPC64LE=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j4 -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D PPC64LE=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for LX2160A @@ -224,22 +155,16 @@ sudo systemctl restart systemd-binfmt Using a 64bit OS: ``` -git clone https://github.com/ptitSeb/box64 -cd box64 -mkdir build; cd build; cmake .. -DLX2160A=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo -make -j$(nproc) -sudo make install -``` -If it's the first install, you also need: -``` -sudo systemctl restart systemd-binfmt +-D LX2160A=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo ``` #### for x86_64 Linux +``` +-D LD80BITS=1 -D NOALIGN=1 -D CMAKE_BUILD_TYPE=RelWithDebInfo +``` +If you encounter some linking errors, try using `NOLOADADDR=ON` (`cmake -D NOLOADADDR=ON; make -j$(nproc)`). - `mkdir build; cd build; cmake .. -DLD80BITS=1 -DNOALIGN=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo; make -j$(nproc)` - -If you encounter some linking errors, try using `NOLOADADDR=ON` (`cmake -DNOLOADADDR=ON; make -j$(nproc)`). +---- ### use ccmake diff --git a/docs/USAGE.md b/docs/USAGE.md index 32744566..5c67f0f8 100644 --- a/docs/USAGE.md +++ b/docs/USAGE.md @@ -197,11 +197,21 @@ Detect MonoBleedingEdge and apply conservative settings * 0 : Don't detect MonoBleedingEdge * 1 : Detect MonoBleedingEdge, and apply BIGBLOCK=0 STRONGMEM=1 if detected (Default) +#### BOX64_DYNAREC_JVM * +Detect libjvm and apply conservative settings +* 0 : Don't detect libjvm +* 1 : Detect libjvm, and apply BIGBLOCK=0 STRONGMEM=1 if detected (Default) + #### BOX64_DYNAREC_WAIT * Behavior with FillBlock is not availble (FillBlock build Dynarec blocks and is not multithreaded) * 0 : Dynarec will not wait for FillBlock to ready and use Interpreter instead (might speedup a bit massive multithread or JIT programs) * 1 : Dynarec will wait for FillBlock to be ready (Default) +#### BOX64_DYNAREC_MISSING * +Dynarec print the missing opcodes +* 0 : not print the missing opcode (Default, unless DYNAREC_LOG>=1 or DYNAREC_DUMP>=1 is used) +* 1 : Will print the missing opcodes + #### BOX64_SSE_FLUSHTO0 * Handling of SSE Flush to 0 flags * 0 : Just track the flag (Default) @@ -311,3 +321,7 @@ Those variables are only valid inside a rcfile: #### BOX64_EXIT * 0 : Nothing special * 1 : Just exit, don't try to run the program + +#### BOX64_RESERVE_HIGH +* 0 : Don't try to pe-reserve high memory (beyond 47bits) (Default) +* 1 : Try to reserve (without allocating it) memory beyond 47bits (seems unstable) |