
Box64 is now at version v0.4.4! There are some some nice Quality of Lfe improvements in this release, more optimisations, and more emulation accuracy to help with protected games. Let’s dig in!
Quality of Life
A new tool is now part of the box64: box64-configurator. This application, coded in python, will allow simple modification of the .box64rc file that handle custom profile. With this app, it’s now easier than ever to create and maintain custom profie for games. All variables are present, with help, and can be changed directly from the app, so there is no need to a text editor anymore (unless you are using debug features, which are not handled there).

Available in english and chines, the app also have a companion KDE plugin you are using it, for direct right-click operation when browsing files.
Another QoL improvement is that now, DynaCache is enabled by default. It will use fast compression (from libz) and limit the disk space used to 2Gb. DynaCache (that is disabled for everything that use BOX64_DYNAREC_DIRTY) save on disk the generated code, allowing everything that is used a 2nd time to be launch much faster, as code don’t need to be regenerated. You can check the state of the cache. it’s located at ~/.cache/box64 if you want to look at the files directly, but box64 can show more details, using box64 -dl to have the full details (or box64 -dl XXX to have only the name containing XXX listed). You can also use box64 -dc to clean the cache by removing obsolete DynaCache files (from older version) or DynaCache files where the original file is not present anymore (if you uninstalled something)
If the default value for DynaCache are not to your liking, you can use box64-configurator and create the special profile * the change the value. This special profile will be loaded before any other profile, so you can reduce or increase the cache size or globally disable DynaCache.
Speed improvements
The LoongArch backend had the most speed improvements for this version. With some fastpath of some opcodes (when no flags are requested, a faster way to generate de behaviour of the opcode is used), many structural changes (like a Dynarec Update Flags or a new zero upper optimization) and many other opcodes improvements.
The zero upper optimization is an interesting one. LoongArch (like RISC-V) use Sign Extension when “upgrading” a 32bits value to 64bits register. But x86_64 (like ARM64) use Zero Extension. This difference is an important one and leads to many case where the upper part of a register is zeroed out specificaly to avoid side effect of the Sign Extension. But of course, there are many cases where the force zeroed out of the upper part is useless, as some other operation just after might do it again before the full 64 bits register might be used.
LoongArch also got it’s handling of native flags and opcode fusion expanded to comis opcodes, as you can see in the following picture, showing a before / after effect of the transformation, with much less code being generated for the ucomiss opcode (and now on par with ARM64)


There is also some work on SSE rounding that is only on the LoongArch back-end for now, but will be integrated to the ARM64 one probably for the next release.
RISC-V also add some speed improvements, with more opcodes added to the dynarec (on the AVX side mostly), and some new RISC-V CPU extensions detected and used.
Last but not least, BOX64_DYNAREC_CALLRET=2 is now the default value, bringing some general speedup on all back-end (along with the faster startup with DynaCache).
Emulation Accuracy
In the ever improving emulation accuracy life of box64, there has been improvements in x87 handling, and some the TF flags handling (that handle the step-by-step debugging in x86_64 architecture) and more signal handling improvements, leading to more games running, especially Capcom & Sony games.
That new video done for the launch of Box64 v0.4.4 will show a few of them. Notice that, this time, there is just one video for all the 3 back-ends. The video will shows games on the 3 platforms currently fully supported… While the ARM64 and LoongArch platform are both quite powerful, with a current GPU and adequate CPU power, the RISC-V platform is showing it’s age, as both it’s CPU and GPU are now really under-powered, and it really shows in games, especially when compared to the other 2.
Conclusion
Faster and easier to use, you can now run more games on ARM64, Loongarch and RISC-V, and they will start and run faster then ever.
4 replies on “New Box64 v0.4.4 release”
> While the ARM64 and LoongArch platform are both quite powerful, with a current GPU and adequate CPU power, the RISC-V platform is showing it’s age, as both it’s CPU and GPU are now really under-powered
Interesting to read a “[this] is showing its age” wording in the wild, but not about elderliness but about infancy… 😁️
Very good news anyway! 🙂️ In the Dæmon Engine we started investigating the integration of box64 to run NaCl sandboxed code on platforms not supported by the NaCl sandbox (while the engine remains native). Maybe some shared druidic knowledge can help us speeding-it-up. 😉️
Nice! Glad to see box64 being evaluated for more uses. That’s the power of open source!
(And yeah, the Pioneer CPU is very young. It has a lots of cores, but each core is quite slow, without much of modern optimizations, like OoO execution for example. It’s like between an RPI2 & RPI3 power, but with more cores)
I understand none of this can you explain in few a words what’s new and improved 🙁
Box64 will load game faster, will run games a bit faster too, and more protected game. And you can use box64-configure (from a terminal) to fine-tune individual game configuration.