Categories
Non classé

New Box64 v0.3.6 released

A new release for Box64 has been tagged!

for this release: more bugfixes, some speedup, and a new sub-project: WowBox64.

Bugfixes

For bugfixes, there has been numerous fixes to the Dynarec, for all 3 supported backends. And some special care has been ported on the x87 side of things (well, not for LoongArch has the Dynarec there doesn’t handle x87 yet).

The x87 emulation now partly handle the Precision Bit. This settings on the x87 control word allow to set the internal precision to 32bits, 64bits or 80bits. While 80bits is something very x87 and is not really emulated on box64, 32bits and 64bits are perfectly handled. The new handlings allows box64 to correctly handle the low precision settings of 32bits. Previously, everything would be handled at 64bits precision internaly. While it would seems that this is fine, some old game (like the original GTA3) was actually selecting this low resolution settings for most of it’s engine. And keeping 64bits precision would lead to a segfault at load, as some loops would faild to get a stable result and would infinitly loop, until a stack overflow happens…

Other fixes have also been done to the x87 emulation, making more older game running fine.

Of courses more than just x87 part has recived bugfixes. The AVX emulation of the ARM64 dynarec received some, and Box32 too, making it more stable and able to run more games (altho, there are still some pending issue making it stays an experimental feature not activated by default).

Speed improvments

There has been a few different speed improvments in this cycle:

  1. The usual Dynarec optimisations and addition. The LoongArch and Risk-V backend received lots of new ocpodes, with many MMX ones (but not only) for older games.
  2. The ARM64 and Risc-V Dynarec received some new small (and different) internal optimisation
  3. A speed regression on the inter-block link has been fixed
  4. Box64 can now handle the Volatile Metadata of Windows executabletha allow, when present, to apply “slow read/write” operation to only the place when it’s needed. This is related to the Strong Memory model emulation of the x86 architecture, that can slow down things on Risk type arch, so this can bring some nice speedup on Windows programs (but not all program / dll have this metadata).

New subproject: WowBox64

There is now a new subproject in Box64: WowBox64 DLL. This will generate a Wine DLL named WowBow64.dll that can be used in the Hangover project (or other Wine for Arm64 build) to directly emulate 32bits x86 code from within an Arm64 project. While this only apply to ARM64 architecture for now, it’s an alternative way of emulating x86 code, that can give better speed (because Wine is not emulated), but is restricted to Windows program only.

The x64 part is not supported yet (based on the arm64ec ABI). That will be a next released.

For more information, take a look at the Hangover project.

New release

So go download the source or updated binary and take a look at some games running with that new version

Leave a Reply

Your email address will not be published. Required fields are marked *