New Releases of Box86 and Box64 for May 2024

By

PtitSeb has been hard at work and the new versions of Box86 and Box64 are out! The hey highlights for this release are the following:

  • The Callret optimization is improved, delivering 10% to 20% increase performance in some cases (usually 32 bits games using WINE or Wow64)
  • The x87 support includes numerous fixes, useful for 32bits games
  • SSE4.2 support added
  • The RiSC-V backend has been massively improved. WINE/WoW64 now work with it (but DXVK is not yet supported)
  • Loongarch Dynarec now included. While still in early stages, it can make games run fast enough on Linux.
  • Pagesizes different from 4k are now supported on mac M1 or Loongarch-based computers. WINE does not work yet, but Linux client games should work fine.

Here is the full changelogs below.

Box86 Updated to v0.3.6

  • Wrapping: More libs and function wrapping (gtk3, vulkan…)
  • Reworked X11 Callback handling, for better stability
  • Reworked exit and the load/unload of libs
  • Some more profiles in box86rc
  • More SSE3+ opcodes in dynarec
  • Better way to rename executable (including WINE ones) so driver like Mesa can apply the correct profile
  • Better handling of the Hardware Counter and TSC emulation
  • Reworked memory managment in the Dynarec, limiting amount of dynamic allocation
  • PageSize detection and handling dynamic. Larger than 4K pagesize will be handled automatically. Note that box64 does not emulate 4K page size, so some program might still refuse to work on larger page (like Wine for example) => Linux Games can now load even on a 16K pagesize machine like a mac M1, and games (including Unity3D ones) can be played with no issues.
  • Lots of improvements in x87 handling (virtual stack, rounding, ffree, etc.) => should improve games stability
  • Better handling of large block in the dynarec => should speedup dynarec, and allow use of BIGBLOCK 2 or 3 on more software
  • Added suport for BOX86_DYNAREC_CALLRET optimisation. => backported from box64, can give 10% or more speed increase (but can also decrease speed in some cases). Still a bit crashy so use with care right now.

Release can be found here: Box86 0.3.6

Box64 Updated to v0.2.8

  • 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. Games 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.

Release can be found here: Box64 0.2.8