box64 (0.3.4) unstable; urgency=low

* This version is Faster and more compatible
*    => The RV64 backend got faster and more stable, with lots of RVV 1.0 / xThreadVector support to emulate SSE/SSE2+ opcode (no AVX yet)
*    => On ARM64, Box64 now support more DRM types than before.
*    => BOX32 can run steam now. At least on ARM64 backend, it's still not working on RV64 and LA64 for now.
* Please check CHAGELOG.md for more details

-- Sebastien Chevalier <ptitseb@box86.org>  Thu, 10 Mar 2025 10:30:33 -0100

box64 (0.3.2) unstable; urgency=low

* Introduced Box32 to run 32bits apps on 64bits OS
*   => Box32 is a build option for Box64, and is disabled by default
*   => Optionnal binfmt integration available for Box32
*   => Wrapped some basics libs, including graphics and sounds so a few games already works
*   => Work In Progress, many issues remain to be fixed, but some Linux games are playable
* Introduced Native Flags. Can be controled with BOX64_DYNAREC_NATIVEFLAGS, but enabled by default
*   => Available on the 3 Dynarec backend, with different implementations
*   => ARM64 Dynarec build have all AVX/AVX2 extensions enabled by default
*   +> Can lead to large speedup on certain cases
* Improved Strong Memory Model emulation, with better default options and a more efficiant emulation
* Dynarec: RV64: using RVV (and XThreadVector) to implement SSEx opcodes, with some massive speedup when used!
* Some bugfix and improvment in the Signal handler and internal memory tracking
* Improvment to TRAP signal generation and Handling
* Improved CPUID opcodes again, and the various virtual file in /proc that represent those data
* Improved some x87 operations, like long double handling and infinity comparisons...
* Dynarec: ARM64 fixes to a few opcodes
* Dynarec: RV64 fixes to many opcodes
* Dynarec: LA64 fixes to a few opcodes
* Dynarec: RV64 fixes and improvments on LOCK prefixes opcodes
* Dynarec: Many optimisation on some individual opcodes, an all 3 backends
* WRAPPING: More libs and functions wrapped. Some wrapping fixes too
* WREPPING: New wrapperhelper to help coding new wrapping & fixing/enhancing existing one
* ElfLoader: Improved object fetching
* New build profile for SD865 and ORYON
* Changed the installation folder of x86 libs to avoid conflict with linux distro
* Added a few syscalls
* Some more Vulkan extensions wrapped
* More work on build system, and github CI (generating WCP archive), with some fixes on the Android version (still not 100% operational)

-- Sebastien Chevalier <ptitseb@box86.org>  Thu, 6 Dec 2024 10:30:33 -0100

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 <ptitseb@box86.org>  Thu, 9 Jul 2024 10:30:33 -0100

box64 (0.2.8) unstable; urgency=low

* Wrapping: More libs and function wrapping (gtk3, vulkan...)
* Reworked X11 Callback handling, for better stability
* Reworked exit and the load/unload of libs and symbol resolution
* Some more profiles in box64rc
* Better way to rename executable (including wine ones) so driver like mesa can apply the correct profile
* Reworked memory managment in the Dynarec, limiting amount of dynamic allocation
* Improved memory tracking and managment. Also introduce BOX64_MMAP32 to force 32bits compatible mmap for external libs (like mesa)
* => Allow Vulkan drvier on Wine/WOW64 games to allocate 32bits compatible memory, allowing dxvk on 32bits.
* Reworked memory managment in the Dynarec, limiting amount of dynamic allocation
* Lots of improvments in x87 handling (virtual stack, rounding, ffree, etc.)
* => should improve games stability
* Dynarec: ARM64 some opcodes optimisation, especialy shift and rotation ones
* Dynarec: RV64 lots of opcoded added.
* => Some games on linux now have a good speed. Game on Wine are still a bit slow, and dxvk still have issues
* Dynarec: Added Loogarch backend! Note that Loongarch are 16K pagesize platform by default.
* => Linux games are running, and with good speed, especialy on 3A6000 platforms. Games on Wine are not working yet due to 16k pagesize limitation
* Dynarec: Better handling of large block in the dynarec
* Dynarec: Lots of improvments and fixes to BOX86_DYNAREC_CALLRET optimisation.
* => It can be used on more software now, and combine with BOX64_DYNAREC_BOGBLOCKS 2 or 3 can gives some good speed boosts.

-- Sebastien Chevalier <ptitseb@box86.org>  Thu, 31 May 2024 17:30:33 -0100

box64 (0.2.6) unstable; urgency=low

 * X64Libs: Updated libstdc++ & libgcc_s
 * X64Libs: Use x86_64 vrsion of libunwind (it's needed by wine)
 * Dynarec: More opcodes on ARM64 & RV64
 * Dynarec: Fixed some flags propagation issues inside blocks
 * Dynarec: Improved Strong Memory Model emulation, introducing a 3rd level
 * Dynarec: ARM64: reworked shift and bit opcodes flags handling
 * Dynarec: RV64: Many fixes, making Wow64 apps running
 * Dynarec: ARM64: Added support for SSE4.2 (with CRC32 if supported by CPU)
 * Dynarec: ARM64: Added support for SHA (with hardware support if CPU allows it)
 * Dynarec: ARM64: The CALLRET optimisation has been improved and is now default
 * CPU: Remoworked how INT, priviliged opcodes and teh Trace flags works
 * CPU: Added full support for SSE4.2
 * CPU: Added full support for SHA extension
 * ElfLoader: rework how elf memory is handled
 * Emulation: Added some more syscalls
 * Emulation: Better handling of Signal (also handling SIGMAX correctly)
 * Emulation: Better support for POKEUSER/PEEKUSER (helps Windows Unity games)
 * Wrapping: More libs and some fixes in function wrapping (gtk3, vulkan...)
 * Wrapping: Removed faked libunwind wrapping
 * Hardware: Added more profile, with support ADLink Ampere Altra, Qualcomm 8Gen3, and Pi5 machines
 * OS: Added profile to build for Android and Termux.
 * OS: New option to use mold for a high speed link
 * => More hadware support, more functions wrapped for an improve compatibity
 * => More CPU extension, with ARM64 hardware support when possible, and improved CALLRET optimisation for an improved speed of emulation
 * => Some work also to reduce the memory footprint

-- Sebastien Chevalier <ptitseb@box86.org>  Thu, 15 Dec 2023 17:30:33 -0100

box64 (0.2.4) unstable; urgency=low

  * Added Dynarec for RISC-V
  * Added partial 32 bits support (WoW64 works)
  * Changed cpuid to display box64
  * Fixed steam, again
  * Improved hacked version for overridden malloc/free functions
  * More wrapped libs
  * More wrapped functions and syscalls
  * Reduced memory footprint
  * Added support for the BIND_NOW flags in ELF files
  * Added RTLD_NOLOAD support
  * Fixed some typos and general cleanup, again
  * Added a cosimulation mode (to compare the behaviour of the dynarec with the interpreter)
  * Added FASTNAN/FASTROUND handling for more opcodes
  * Better float/double/long double handling
  * Better dlopen/dlclose handling
  * More games in the rc file
  * Added BOX64_DYNAREC_MISSING to show only missing opcode, independantly of the log level
  * Added BOX64_RESERVE_HIGH to reserve addresses above 47bits
  * Improved multitreading support
  * Ukrainian translation of the README
  * => Dynarec now support RISC-V, large speedup on RISC-V 64, were games are now playable (like Stardew Valley on a Vision Five 2)
  * => Improved compatibility with more fixes in elf handling, more wrapped libs and functiond, more fixed opcodes and refined profile

-- Sebastien Chevalier <ptitseb@box86.org>  Thu, 10 Mar 2023 10:20:33 -0500

box64 (0.2.2) unstable; urgency=low

 * Added a hacked version for overridden malloc/free functions, enabling libcef (and derivative) to work.
 * Added rcfile handling: box64 now read "/etc/box64.box64rc" and "~/.box64rc" and apply per process parameters
 * Added BOX64_DYNAREC_CALLRET to optimized CALL/RET opcode using semi-direct native CALL/RET (get more than 10% speedup)
 * Added BOX64_DYNAREC_FORWARD to allow bigger Dynarec block to be build (can get more then 30% of Speedup!)
 * Improved memory protection tracking and signal handling, again
 * Simplified mutex handling (faster, cleaner)
 * Reduce memory used by the memory tracking (memory almost divide by 4 is some critical use case)
 * Added d3dadaptor9 wrapping
 * More wrapped libs (especially on the gtk familly)
 * Improved/fixed some Syscall handling
 * Refactored Strong Memory Model emulation (faster and more accurate)
 * Added some more opcode to ARM64 Dynarec, and fixed some other
 * Some fixes to flags handling in the Dynarec on some special cases
 * Refactor library loading/unloading, with refcount.
 * Some special cases fixes for dlopen (fixes deadcells, maybe others too)
 * Improved mmap mapping, espcially with MAP_32BITS flag
 * More wrapped functions and syscalls
 * Lots of improvment in the Rounding of float & double (Dynarec and Interpreter), and proper handling of denormals when converting to/from 80 bits long double
 * Added specific suppport for RK3588 board (needed some hack in signal handling, probably due to the use of a non mainlined kernel)
 * More support on the RV64 port
 * More support to build under musl environment

-- Sebastien Chevalier <ptitseb@box86.org>  Thu, 10 Mar 2023 10:20:33 -0500

box64 (0.2.0) unstable; urgency=low

 * Wrapped more vulkan function, dxvk 2.0 now works
 * Added support for overridden malloc/free functions
 * Refactor Dynarec memory management, reducing memory footprint (from 20% to 40% of Dynarec size)
 * Improved elf loader
 * Improved dlsym handling with RTLD_NEXT
 * Added BOX64_DYNAREC_SAFEFLAGS to allow finetuning Dynarec generated code handling of flags accross function calls and returns.
 * Added BOX64_BASH to setup x86_64 bash binary, so shell script can be run in x86_64 world
 * Added BOX64_ROLLING_LOG to have details log only on crash
 * Work on alignment for some of pthread structures
 * More wrapped libraries in the gtk family
 * Some fixes on the Dynarec x87 code (fixing a bunch of games like ut2004 or Piczle Puzzle)
 * Improved TLS Size handling (Unity3D games now works)
 * More PageSize Compile options
 * Improved execv family of function to have better box64 integration
 * Added support for wrapped libfuse so AppImage works
 * Adjusted the binfmt integration so AppImage are automaticaly picked
 * Improved FAudio, SDL2, GL (and more) wrapping
 * More wrapped libs, like libEGL.so, to helps emulated Qt4/5 libs to load
 * Improved Signal Handling and memory protection traking
 * Some signature fixes to some wrapped functions (in libc)
 * Added more syscalls
 * Added a lot of new opcodes to the ARM64 Dynarec
 * docs: add instructions for Debian-based Linux by @ryanfortner in #306
 * Fix typos and arch type string by @archanox in #321
 * Fix grammar by @Jai-JAP in #326
 * Enable 64k page size by @martinmanyhats in #334
 * Align address when call mprotect by @wannacu in #336
 * Add wrapped functions needed for 'ls -l'. by @stiltr in #294
 * add 18.04 tegra X1 github actions by @theofficialgman in #345
 * change order of matrix (to preview better under checkmark dropdown by @theofficialgman in #346
 * Backport SDL_DYNAPI_entry wrapper from box86. by @JohnnyonFlame in #374
 * Add SW64 base support by @wannacu in #382
 * fix overzealous replace in wrappers pathnames by @NobodyNada in #415
 * Create X64WINE.md by @WheezyE in #423
 * src: asm: Rename lr & fp registers to their x-equivalents by @fredldotme in #426
 * Malloc override by @ptitSeb in #437
 * Remove dynablocklist by @ptitSeb in #438
 * Fix Pkgbuilds by @Jai-JAP in #452

 -- Sebastien Chevalier <ptitseb@box86.org>  Thu, 17 Nov 2022 11:20:33 -0500

box64 (0.1.8) unstable; urgency=low

  * Added an option to get generated -NAN on SSE2 operation
  * Many small fixes and improvement to get SteamPlay (i.e. proton) working (along with box86)
  * Added some workaround for program calling uname to mimic x86_64 system
  * Added some granularity to mmap, and generic memory protection tracking improvment, to mimic x86 system (for wine stagging and proton)
  * Better clone syscall and libc implementation
  * Improved wrapping of GTK libs
  * More wrapped libs (more gtk libs, like gstreamer-1.0 among other non-gtk libs too)
  * More wrapped functions(with some tricky one, like dladdr1)
  * Some fixes and improvment to some wrapped functions
  * Refactor Dynarec:
  *   - better handling of SSE/x87 registers
  *   - optimisation to limit float/double conversion
  *   - better handling of "internal" jump inside a dynablock
  *   - make adding new architecture easier, by sharing as much infrastructure as possible
  * Improved elfloader
  * Improved some tests
  * Improved a bit the "Hotpage" handling and messages
  * Added more dynarec opcodes
  * A few fixes in some Dynarec opcodes
  * A bit more optimisation in some Dynarec opcodes
  * Don't quit on unsupported syscall, return -1 / ENOSYS error
  * Added some more Syscall
  * Wrapped Vulkan library. Vulkan and dxvk now supported!
  * Support building on PPC64LE (interpreter only)
  * Added support for Risc-V (interpreter only)

 -- Sebastien Chevalier <ptitseb@box86.org>  Tue, 18 Jan 2022 11:20:33 -0500
