X4: Foundations

1.0 2.0 4.0

Watching the completion of an Asgard battleship
Watching the completion of an Asgard battleship

Primary Buffer Panel

Ah yes… my favorite space sandbox. One of the games I keep blogging about a lot. This is the game I hacked a LUA plugin for to get game data out of the game. I’m also sideloading LuaSocket for the communication with my plumbing pipeline. I’ve yet to write up in detail how I managed to do this but the socket server implementation is already avaiable on https://github.com/bekopharm/x4-projects/wiki/Quick-manual

There are a bunch of videos showcasing X4: Foundations with my Primary Buffer Panel on my YouTube and PeerTube accounts.

Launch parameters

Nothing special. The game does offer the proper resolutions even for a multihead setup in windowed mode. I usually run it like this so sound and rendering doesn’t stop when the game looses window focus:

./X4 -nosoundthrottle -nocputhrottle -skipintro

It also allows resizing of the game window so this can even be scripted e.g. with wmctrl when the game is already running:

wmctrl -x -r X4.X4 -e 0,0,109,5760,1100

Takes a few second to re-init rendering though.

Head tracking

The head tracking is explained in great detail here. Sadly I’d have to settle with Wine because the native Linux version has no head tracking capabilities. I tried to feed this via UDP from my own extensions but the camera setter function is sadly not exposed in the API and will probably never be (I asked).

Best I can do is triggering the camera hotkeys for each corner via a virtual joystick device from Opentrack. Something still on my list to test is emulating mouse input for a free lock-around. This does usually block other joystick axis though so it may not be feasible.

The current solution works, albeit it’s not perfect.