Categories
Box64 Dev

Revisiting the dynarec

Since the last post about it, the dynarec (dynamic recompiler, a Just-In-Time recompilation of x86 code) changed a lot. It still works in four major steps, but now there are a lot more intermediary steps. So let’s see how it works now! Note: this article will focus on the ARM version of the dynarec on…

Categories
Box64 Dev

Optimizing AVX2

Note: this article is pretty technical. Basic understanding of what registers are is a strict minimum required to understand what follows. What is AVX? AVX (and its extension AVX2) are complex x86_64 instruction sets which extends the SSE4 instruction set. It mandates the existence of extensions of the 16 SSE 128-bits-wide XMM registers (called XMM0…

Categories
Box64 Dev Gaming General

New Box64 v0.3.0 Released

A new version of box64 just released. Note that box86 has not evolved enough and did not get a new release. Next time maybe? So what’s new on Box64? Well, AVX! But not only that, also AVX2, and BMI1, BMI2, ADX, FMA, F16C and RDRAND cpu extensions. While the later one are less well known,…

Categories
Box64 Box86

New version of Box64 v0.2.8 and Box86 v0.3.6

Finaly a new release of box64 and box86! And while box86 simply got some improvments backported from box64, box64 got a lot of new things. Starting with a new Dynarec target: Loongarch! Both 3A5000 and 3A6000 architecture are supported. This platform use a non x86 4K Pagesize, meaning that some software, like Wine, will not…

Categories
Box64 Box86 Dev General

How to create a wrapping

In a previous post, we talked about the mechanism behind library wrapping. In it, I said box86/box64 used some manually written files to correctly call functions. However, there is a big question: how are these files written? To follow this article, you will need at least a basic understanding of function signatures. The basics First,…

Categories
Box64 Box86

New version of Box64 v0.2.6 and Box86 v0.3.4

After sometime debugging some last issues, the new version of box64 and box86 are out. Most of the work has been done on Box64, with lots of improvments again on Emulation and Library wrapping. The CPU emulate up to SSE 4.2 now (it was only SSE 4.1 before), and it also handle the SHA extension.…

Categories
Box64 Box86

New version of Box86 v0.3.2 and Box64 v0.2.4

New releases of both box86 and box64 (with a silent re-release of box86 to include a critical fix for steam). While Box86 have seen little change, and was mostly fixes and some refactor to help load ELF file better, Box64 had major code contribution for this release. Box64 Dynarec now support RISC-V! Thanks to github…

Categories
Benchmark Box64 Non classé

Box64 and RISC-V

Box64 and RISC-V, the challenges of wrtting the Dynarec, and benchmarks

Categories
Benchmark Box64 Box86

Performances 2022

This article was initially publised for the FOSDEM 2022 virtual event. The host is gone and I’m (quickly) republishing it here. Box86 performances  Like for last year, I will present a series of benchmark to try show the efficiency (or not) of box dynarec. This year, I will benchmark both box86 and box64, to show…

Categories
Box64 Box86

New version Box86 v0.3.0 and Box64 v0.2.2

New version tagged for Box86 & Box64 New in those releases are a new hack for program that redirect Malloc function on box64. This allows for libcef and other chrome derivative to work now. That allows for the Full Steam client to work (including the BigPicture mode). The Heroic Launcher also works. You can connect…