OESF Portal | OESF Forum | OESF Wiki | LinuxPDA | #planetgemini chat on matrix.org | #gemini-pda chat on Freenode | #zaurus and #alarmz chat on Freenode | ELSI (coming soon) | Ibiblio


Welcome Guest ( Log In | Register )

> Running a 64bit dwarf-fortress through qemu., Just showing a 64 bit dwarf fortress on the Gemini
post Apr 18 2019, 12:11 PM
Post #1

Group: Members
Posts: 22
Joined: 12-April 19
From: UK
Member No.: 846,013

Hi all

Don't know whether people will find this useful.

But I managed to get a 64bit dwarf-fortress to run through qemu's user space emulation software.

Dwarf fortress is an open source video game with no ARM64 port.

This was achieved by installing qemu-user, enabling amd64 archictechture, downloading the prebuilt 64bit linux binaries from the dwarf-fortress website, and installing the required 64 bit libraries.

Some of the 64 bit libraries could not be installed correctly. So for one of them libpulse0 I apt downloaded it and unpacked the .deb file and put the libs in the correct location where the dwarf-fortress looks for them.

For the rest of them I apt downloaded them and wrote a bash script that dpkg force installs them and then runs the dwarf-fortress binary through qemu-x86_64 and after the app closes purges the force installed packages.

Performance is not very good obviously. (creating the world took a few hours because I set it to large tongue.gif)

Loading times are long but once the world is created. The game itself is actually playable. but does hang up freqently depending on what it is loading and the back of the Gemini gets a bit hot as it is constantly running a 100% CPU thread.

It may not be all that viable to run 64bit binaries on the Gemini. but I thought it was more interesting as proof that 64bit or 32bit binaries can actually be run on an ARM64. Which maybe people knew already but what the hey. I thought it was worth trying out.

Its important to note that any applications required mulithreading will fail because ARM CPUs do not support mulithreading. (I know this because I attempted to run valve's steam client in the same way, but qemu fails with a signal 11, segmentation fault, core dumped. When I looked it up people said it was to do with multithreaded applications)

In theory if you actually had an ARM64 CPU that supported multithreading I don't see why it wouldn't be possible to run mulithreaded 64 or 32bit apps through qemu-user.

Also in theory it might be possible to run a 64bit Windows program through running 64bit wine through qemu-x86_64 same way as done above. Bearing in mind that applications requiring multithreading probably wouldn't work.
Of course performance might be so terrible that the application may be rendered pretty much unusable at that point.

I may test this at some point later if I have some time to spare on it.

See the attached screenshot to see it running:
Attached Image

Its kind of a lot of work for not that much payoff but I hope some people find this to be an interesting or worthwhile experiment at the very least.
Go to the top of the page
+Quote Post
Start new topic
post Apr 19 2019, 01:38 AM
Post #2

Group: Admin
Posts: 984
Joined: 30-April 08
From: Italy
Member No.: 21,713

Well done, at least it is useful to know that 64bit binaries can be run under Gemian. The next step would be to make a arm64 port of it. From the screenshot it looks like it uses ncurses, so the port might not require a lot of effort.

Go to the top of the page
+Quote Post

Posts in this topic

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:


RSS Lo-Fi Version Time is now: 5th April 2020 - 06:19 PM