A Song of x86 on ARM - Part 1

A Song of x86 on ARM - Part 1

By Salvador Liébana

Early 2018, I got my first ARM SBC, an RPI3. I was not too young, not too old, in my late 20s… I always liked PC’s in general and retrogaming of course, but I always used x86 platforms to do that. The first OS I installed on my RPI3 was, like many, Retropie. I didn’t know that much about Linux back then, but I had some free time then to learn and tinker with my RPI3, and after two months of tinkering with Retropie I installed RPI OS and switched to MESA (the open source GPU drivers for Linux)…and not only that, I shifted to master MESAi, the latest version, because the one from the system, Raspbian, was extremely old, like MESA 13.5, something like that.

Immediately, I noted the power of MESA. The driver, developed by Eric Anholt, one of the best MESA developers, was performing like a champ while no other was really noticing how far were the Broadcom blobs against them. MESA on RPI3 also supported OpenGL 2.1 desktop profile, the same API that many desktop software and games (at least the old ones) use on x86 and x86_64 Linux platforms. That will be really important in order to run desktop class OpenGL games. Now, on RPI4 RPI OS and Retropie we use MESA by default, not the Broadcom blobs, and that made the transition of Retropie to the new platform a bit longer than expected for many. Why I removed Retropie and never went back? For several reasons, MESA; the need of a real desktop environment to tinker with my RPI3; and the necessity to experience the future, ARM Linux as desktop replacement platform.

There was one thing that made me feel really uncomfortable on RPI3 as a desktop replacement; well, many to be fair. But mostly one: desktop class gaming was missing due the CPU architecture. With OpenGL 2.1 I was able to run native open source games like Serious Sam TSE, Jedi Kight and others at very decent framerate with some limitations of course. But I was looking for something bigger, real x86 games on ARM…then I ended up finding Notaz's work on the Pandora handheld.

The Pandoraii was a mythical ARM Linux platform from 2010, not extremely powerful and not cheap at all, but it’s community gathered the best minds of the era on ARM Linux gaming. Thanks to Pandora developers like Notaz we have pcsx-reamediii, picodrive iv and several improvements on many other ARM Linux emulators that we enjoy on our more modern platforms.

Notaz in particular developed something really hard to accomplish and with very few antecedents on any architecture, static recompilationv of some x86 windows games to be able to run them on a different arch, here ARM Linux with WINE ARM, not WINE x86, but WINE ARM. But this was about a song of x86 on ARM and you are here talking about native games with WINE ARM…well, yes, but those games, Starcraft, Jazz Jackrabbith 2, Diablo 1 and 2, were x86 only before Notaz's sorceryvi, now those binaries were like native “ARM Windows software” able to be run on ARM Linux with WINE ARM!!! That was a fantastic journey on compiling wine like 40 times on my RPI3 trying to get the best performance from those binaries that Notaz provided. At that moment, I didn’t know anything about Linux and other distributions for RPI3, and with a very old Debian based Raspbian, I was used to compiling the dependencies to be able to compile big projects, like for example, Open Morrowind. No other RPI3 compiled more software than mRead Part 1 Herey old Pi3; it survived, but it was really tired with Salvador compilations with just one core and zram due to lack of enough RAM to deal with. My RPI3 was always busy, compiling kernels (wine ARM required a 3G/1G kernel that Raspbian didn’t provide because you would loose 256 MB of ram due to RPI3 limitations), compiling games, compiling wine, compiling everything on github that sounded fun….

After that amazing achievement thanks to the Notaz binaries I didn’t have anything more to do with WINE ARM, it was only able to run Windows RT software and the Notaz binaries, that’s all…Remember, WINE is not an emulator, and WINE ARM will not run x86 Windows Software!

Read on for Part 2


Previous article Introducing NEMS Linux for Indiedroid Nova: A Powerful Network Monitoring Solution

Leave a comment

Comments must be approved before appearing

* Required fields