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 Dev

Box64 running on M1 with Asahi

Box64 running on mac M1 with Asahi

Categories
Box64 Box86 Dev

A deep dive into library wrapping

After talking about the dynarec, we’re going to talk about library wrapping. This article will be very technical from start to finish. Note: until the “Differences” paragraph, everything said is identical for box86 and box64. As such, until then, you can replace every “box86” with “box64” and “x86” with “x86_64”. The first step: loading As…

Categories
Dev OSDev

A peek at OS-deving part 2: memory management

Note: this article supposes you have already read part 1. While it shouldn’t be required, you should still give it a try. Now that we can boot to C, we need to start working on the C library. Let’s start with memory management. What’s needed here? So, what is memory management? Well, it can be…

Categories
Dev OSDev

A peek at OS-deving part 1: booting

Have you ever wondered, “How does the computer boot? How does the OS know what to do when”? Well, I did too, and so took it upon myself to… develop an OS. Intro Well, when I say “develop an OS”, I mean that I started writing something that could boot into an emulator. I didn’t…

Categories
Box64 Box86 Dev

Inner workings

A high‑level view of box86/box64 and a low‑level view of the dynarec This article explains the technical details about how box86 and box64 works (at the high level for the start and a low level for the dynarec). At the start, box86 (and box64) will extract useful informations about the executable being run: where is…