diff --git a/debian/changelog b/debian/changelog index cce171baf..88afdd06f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,29 @@ +box64 (0.3.0) unstable; urgency=low + +* AVX and AVX2 implemented, along with BMI1, BMI2, ADX, FMA, F16C and RDANDR extension! +* Introduced BOX64_AVX env. var. to enable/disable AVX extension: +* => BOX64_AVX=1 enable AVX, BMI1, F16C and VAES extension +* => BOX64_AVX=2 also enable AVX2, BMI2, FMA, ADX,VPCLMULQDQ and RDRAND +* Dynarec: Implemented most AVX/AVX2 and friends in ARM64 Dynarec (using only NEON, so available on all ARM64 CPU) +* => ARM64 Dynarec build have all AVX/AVX2 extensions enabled by default +* Improved CPUID opcodes, adding a few leaf, fixing same. Returnning an Haswell type of CPU now (was Pentium IV before) +* Dynarec: Small optim in the emit_pf helper, on all 3 backends +* Dynarec: ARM64 some fixes to a few opcodes +* Dynarec: LA64 many new opcodes added, and fixes. +* Dynarec: RV64 some new opcodes added, many fixes. +* Dynarec: RV64 Adding some infrastructure to use RVV (if available) for SIMD emulation. +* Dynarec: Many small changes and fixes around handling of x87, registers and internal jump. +* WRAPPING: Added a workaround on SDL_GetThreadID to fix a race condition that was happening mostly on LA64 and broke many SDL games +* WRAPPING: More libs and functions wrapped. Some wrapping fixes too (including a nasty error on some rare libGL functions) +* WRAPPING: Wayland is now supported. Wine-wayland at least works now +* Dynarec: LA64 improved LOCK CMPXCHG handling, and better 16Byte LOCK handling too (fixes many Unity3D games) +* Dynarec: RV64 improved LOCK CMPXCHG handling +* COSIM: Many fixes and improvment, to make BOX64_DYNAREC_TEST more usable +* Detect when a Wine program use UnityPlayer.dll to atumaticaly use BOX64_DYNAREC_STRONGMEM=1 (unless it's already set), so more games just work +* ElfLoader: Added a new type of relocation + +-- Sebastien Chevalier Thu, 9 Jul 2024 10:30:33 -0100 + box64 (0.2.8) unstable; urgency=low * Wrapping: More libs and function wrapping (gtk3, vulkan...) diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 888d5b3ac..72ffb1548 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,3 +1,27 @@ +v0.3.0 +====== +* AVX and AVX2 implemented, along with BMI1, BMI2, ADX, FMA, F16C and RDANDR extension! +* Introduced BOX64_AVX env. var. to enable/disable AVX extension: + => BOX64_AVX=1 enable AVX, BMI1, F16C and VAES extension + => BOX64_AVX=2 also enable AVX2, BMI2, FMA, ADX,VPCLMULQDQ and RDRAND +* Dynarec: Implemented most AVX/AVX2 and friends in ARM64 Dynarec (using only NEON, so available on all ARM64 CPU) + => ARM64 Dynarec build have all AVX/AVX2 extensions enabled by default +* Improved CPUID opcodes, adding a few leaf, fixing same. Returnning an Haswell type of CPU now (was Pentium IV before) +* Dynarec: Small optim in the emit_pf helper, on all 3 backends +* Dynarec: ARM64 some fixes to a few opcodes +* Dynarec: LA64 many new opcodes added, and fixes. +* Dynarec: RV64 some new opcodes added, many fixes. +* Dynarec: RV64 Adding some infrastructure to use RVV (if available) for SIMD emulation. +* Dynarec: Many small changes and fixes around handling of x87, registers and internal jump. +* WRAPPING: Added a workaround on SDL_GetThreadID to fix a race condition that was happening mostly on LA64 and broke many SDL games +* WRAPPING: More libs and functions wrapped. Some wrapping fixes too (including a nasty error on some rare libGL functions) +* WRAPPING: Wayland is now supported. Wine-wayland at least works now +* Dynarec: LA64 improved LOCK CMPXCHG handling, and better 16Byte LOCK handling too (fixes many Unity3D games) +* Dynarec: RV64 improved LOCK CMPXCHG handling +* COSIM: Many fixes and improvment, to make BOX64_DYNAREC_TEST more usable +* Detect when a Wine program use UnityPlayer.dll to atumaticaly use BOX64_DYNAREC_STRONGMEM=1 (unless it's already set), so more games just work +* ElfLoader: Added a new type of relocation + v0.2.8 ====== * Wrapping: More libs and function wrapping (gtk3, vulkan...) diff --git a/docs/COMPILE.md b/docs/COMPILE.md index 072b2834d..6e16eb8fa 100644 --- a/docs/COMPILE.md +++ b/docs/COMPILE.md @@ -1,39 +1,11 @@ Compiling/Installing ---- -### Debian-based Linux -You can use the [Pi-Apps-Coders apt repository](https://github.com/Pi-Apps-Coders/box64-debs) to install precompiled box64 debs, updated every 24 hours. - -``` -# check if .list file already exists -if [ -f /etc/apt/sources.list.d/box64.list ]; then - sudo rm -f /etc/apt/sources.list.d/box64.list || exit 1 -fi +If you don't want to compile box64 yourself and prefer to use third-party pre-build version, go to the [end of the document](#pre-build-packages) for alternatives. -# check if .sources file already exists -if [ -f /etc/apt/sources.list.d/box64.sources ]; then - sudo rm -f /etc/apt/sources.list.d/box64.sources || exit 1 -fi - -# download gpg key from specified url -if [ -f /usr/share/keyrings/box64-archive-keyring.gpg ]; then - sudo rm -f /usr/share/keyrings/box64-archive-keyring.gpg -fi -sudo mkdir -p /usr/share/keyrings -wget -qO- "https://pi-apps-coders.github.io/box64-debs/KEY.gpg" | sudo gpg --dearmor -o /usr/share/keyrings/box64-archive-keyring.gpg - -# create .sources file -echo "Types: deb -URIs: https://Pi-Apps-Coders.github.io/box64-debs/debian -Suites: ./ -Signed-By: /usr/share/keyrings/box64-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/box64.sources >/dev/null - -sudo apt update -sudo apt install box64-generic-arm -y -``` - -Alternatively, you can generate your own package using the [instructions below](https://github.com/ptitSeb/box64/blob/main/docs/COMPILE.md#debian-packaging). +You can also generate your own package using the [instructions below](https://github.com/ptitSeb/box64/blob/main/docs/COMPILE.md#debian-packaging). +## Per-platform compiling instructions ---- ### The general approach is: @@ -278,7 +250,7 @@ Also, the Static Build is highly experimental, but feedback are always welcomed. ---- -Testing +## Testing ---- A few tests are included with box64. @@ -288,6 +260,39 @@ The tests are very basic and only tests some functionality for now. ---- -Debian Packaging +## Debian Packaging ---- Box64 can also be packaged into a .deb file ***using the source code zip from the releases page*** with `DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -us -uc -nc`. Configure any additional cmake options you might want in `debian/rules`. + +## Pre-build packages +---- +### Debian-based Linux +You can use the [Pi-Apps-Coders apt repository](https://github.com/Pi-Apps-Coders/box64-debs) to install precompiled box64 debs, updated every 24 hours. + +``` +# check if .list file already exists +if [ -f /etc/apt/sources.list.d/box64.list ]; then + sudo rm -f /etc/apt/sources.list.d/box64.list || exit 1 +fi + +# check if .sources file already exists +if [ -f /etc/apt/sources.list.d/box64.sources ]; then + sudo rm -f /etc/apt/sources.list.d/box64.sources || exit 1 +fi + +# download gpg key from specified url +if [ -f /usr/share/keyrings/box64-archive-keyring.gpg ]; then + sudo rm -f /usr/share/keyrings/box64-archive-keyring.gpg +fi +sudo mkdir -p /usr/share/keyrings +wget -qO- "https://pi-apps-coders.github.io/box64-debs/KEY.gpg" | sudo gpg --dearmor -o /usr/share/keyrings/box64-archive-keyring.gpg + +# create .sources file +echo "Types: deb +URIs: https://Pi-Apps-Coders.github.io/box64-debs/debian +Suites: ./ +Signed-By: /usr/share/keyrings/box64-archive-keyring.gpg" | sudo tee /etc/apt/sources.list.d/box64.sources >/dev/null + +sudo apt update +sudo apt install box64-generic-arm -y +``` diff --git a/src/box64version.h b/src/box64version.h index c90996663..35baf150a 100644 --- a/src/box64version.h +++ b/src/box64version.h @@ -2,7 +2,7 @@ #define __BOX64_VERSION_H_ #define BOX64_MAJOR 0 -#define BOX64_MINOR 2 -#define BOX64_REVISION 9 +#define BOX64_MINOR 3 +#define BOX64_REVISION 0 #endif //__BOX64_VERSION_H_